Pat Pannuto

Topics in Embedded Systems & The Internet of Things

M3 sensor on a finger
Luxapose image processing pipeline
Signpost platform deployed outside
TotTag ranging platform
Opo interaction tracker clipped to a tie
Powerblade power meter on a plug

CSE291 A00 - Spring 2021

Meets Tu/Thr from 15:30 to 16:50 in WARR WEST (tent on the Warren mall!).
Zoom link for remote participants (Note: Requires UCSD login).

Pat Pannuto is the instructor, and their office is CSE 3202 (right in the corner).
→ Office hours: Fridays, 12-1:30, via Zoom

Nishant Bhaskar is the TA for the course.

Additional office hours available by appointment, generally afternoons are preferred.

Quick Links: Paper Reviews | Participation | Class Project | Schedule | Final Exam / Presentations

Click here for the UCSD Embedded Lunch Seminar (Thr 12:30-1:30) – All are welcome!


Researchers, policy makers, citizen scientists, and curious individuals have an innumerable array of questions about the world around them. How does physical proximity affect disease transmission? What changes would have the greatest impact on the carbon footprint of an urban environment? What is the historical air quality like for asthmatics in the neighborhoods where I am shopping for houses? This course is about the design and implementation of platforms and systems capable of capturing the data to answer such questions.

Formally, this is the study of embedded systems and wireless sensor networks. These are computing systems that are deployed widely in the physical world, which creates unique constraints in their physical size, deployment, management, communication, energy availability, and operation. We will begin with a history of impactful deployments, then study each of the pieces in turn, both traditional sensor architectures and more exotic designs such as energy harvesting systems, synchronous wirelss communication, and how to do machine learning with less than 1 MB of memory.

Target Audience

The intended audience of this course is PhD students or masters students who are interested in pursuing a PhD in the future. This is a research-oriented class. It's designed to bring people up to speed on the history as well as the state of the art in mobile computing and to gain experience with the design, early implementation, and evaluation of a research idea.


This class is made of three co-equal components: pre-class reviews, in-class participation, and a quarter-long project.

Paper Reviews

Before each class you must read each paper and then write a short review. This should be more than a simple summary of the paper. Here are some questions to consider while reading and writing your reviews to help guide you:

  • What is the problem this paper addresses, and why is it important?
  • What is the hypothesis of this paper?
  • How was this hypothesis evaluated? What supported it, what refuted it?
  • What are the limits of this system (when does it fail)?
  • What is this most similar to that you are already familiar with; how does it compare, differ?
  • At what point did you decide you liked – or didn't like – the paper, why?

Submitting Reviews

We will use the HotCRP review system – the same tool used by many conferences to review papers.

Reviews are due the day before class. HotCRP will automatically cut off submissions at 12:01am on the morning of class. We will create accounts for all enrolled students during the first week of classes. If you need an account or have other issues, please e-mail me.


We will rotate through class members to lead discussion each session. Leads should be prepared to give an overview of the paper's key ideas and to guide a discussion about the strengths and weaknesses of the paper, how it relates to prior and/or subsequent work, and what the core takeaway(s) of the paper may be.

When not the lead, everyone else is expected to have read the papers and to actively participate in the class discussions.

Discussion Lead

Each paper has roughly 35 minutes of class time. For discussions, this should generally allow for a 5 minute introduction followed by 30 minutes of discussion.

Updated May 4: When you are leading discussion, you have three primary responsibilities:

  1. Prepare a summary presentation of the paper. This summary should be reasonably polished / prepared in advance. The summary should recount the major concepts introduced in the paper, give an overview of the core technical details, and crisply identify any hypotheses presented in the work, how they were evaluated, and any conclusions that can be drawn.

  2. Prepare and share a summary others' paper reviews. Try to first identify any points of confusion or desired clarifications, so that we can start the discussion by getting everyone up to speed. Then propose (at least) three topics of discussion from the paper. Try to include (at least) one that looks at the paper's strengths, one that looks at potential weaknesses, and one that looks beyond the ideas directly discussed in the paper. Share this summary and discussion prompts in the class slack before the start of class.

  3. Lead discussion! Start with your summary presentation, then any remaining clarifications, and then the more open-ended discussion segment.

When you are discussion lead, you do not need to submit reviews for either your paper or the other paper (though you should still read it!).

Class Project

This class will feature a quarter long project of your own choosing. Project scope should be commensurate with group size – an individual project is acceptable, though advised against. A core goal of the project is to demonstrate mastery of the scientific method: namely to clearly articulate a hypothesis and to design and implement experiments that (in)validate the hypothesis (note: a project with a negative result may still be a highly successful project!). The goal of the project is to learn how to propose a research idea, to then collect preliminary data to probe the viability of that idea, and finally to practice communicating this process in writing.

Here is a document with some project ideas to help seed your thinking.

The project will have three milestones:

Week 3
Monday, April 12: One to two page proposal writeup that includes your hypothesis, motivation, and at least one experiment you intend to run.
Week 6
Monday, May 3: Three to four page draft that includes a literature review ("Related Work"), proposed experiments, and their expected outcomes.
Week 10
Tuesday, June 1: Final five to six page paper that includes outcome of small-scale experiments / prototype / etc. This should resemble an early-to-mature draft of an academic workshop paper.


Date Topic Lead Pre-Class Assignment
Week 1: Introduction, Motivation, Potential, and Pitfalls
Mar 30 Introduction Pannuto
Apr 1 Ubiquitous Computing Pannuto No paper reviews this week, just read and think about these:
Week 2: Great Deployments Past
Apr 5 Project Group Formation Deadline Work with Nishant to register your project group.
Apr 6 Early Lessons
Pre-reading questions:
  • What kinds of things are “obvious today,” but were new then?
  • Why do we (as researchers) bother doing deployments? (They're expensive, hard, require many person-hours...)
Pannuto Sign up for to lead discussion by submitting a pull request. Conflicts resolved by timestamp (first come, first serve).
Read and review:
For those wanting more...
Apr 8 Scale
Pre-reading questions:
  • Where do you place the line between what work “belongs to” research and industry?
  • Why do we (as researchers) bother doing big deployments? (They're even more expensive, hard, require many person-hours...)
Pannuto Read and review:
For those wanting more...
Week 3: Everything is an Energy Problem
Apr 12 Project Milestone 1 Deadline One page proposal writeup that includes your hypothesis, motivation, and at least one experiment you intend to run.
Apr 13 Early Insights in Low Power Systems
Pre-reading questions:
  • What's duty cycling? Why didn't we always do this?
  • Why is there a gap between the power performance hardware is capable of and what it actually achieves?
  • How do we balance the lifetime of one device versus a system of devices? (Does it always matter if one node dies early?)
Gabriel Marcano - Virtual Battery

Pannuto - TinyDB
Read and review:
For those wanting more...
Apr 15 Energy Harvesting
Pre-reading questions:
  • What's the relation between power source and reliability? How do other system components affect this?
  • Is this actually new? What energy harvesting, embedded systems are common, established, and well-older than Pat? What's different now?
  • What's the definition of intermittent computing?
Jennifer - GameBoy (Sections 6-7 are optional)

Dhananjay - Capacitance
Read and review:
For those wanting more...
Apr 16 Project Milestone 1 Feedback Deadline This is a course staff commitment – we will have feedback on each project proposal back to you by end of day.
Week 4: Communication (Part I)
Apr 20 Great Ideas in Traditional Communication
Pre-reading questions:
  • What is a MAC protocol, and why has there been so much academic research on them?
  • What is different (or not!) about WSN nodes versus phones, laptops, etc? What impact does that have on their communication mechanisms?
Bili Dong - Long Live IP

Pannuto - RI-MAC
Read and review:
For those wanting more...
Apr 22 Project Workshop Day Pannuto Bring printed copies of revised project proposal drafts to class.
Week 5: Communication (Part 2)
Apr 27 Synchronous communication protocols
Pre-reading questions:
  • What is synchronous communication?
  • What is different (or not!) about WSN nodes versus phones, laptops, etc? What impact does that have on their communication mechanisms?
Alex - TunnelScatter

Nishant - IT Backscatter
Read and review:
For those wanting more...
Apr 29 Spectrum
Pre-reading questions:
  • How do devices communicate wirelessly? How do they utilize the spectrum?
  • What challenges arise when we want to connect thousands of embedded/IoT devices wirelessly?
  • Why is it important for us to understand how, when and who uses wireless spectrum?
Yeswanth - Unlicensed LPWANs

Raghav - SparSDR
Read and review:
For those wanting more...
Week 6: Platforms
May 3 Project Milestone 2 Deadline Three to four page draft that includes a literature review ("Related Work"), proposed experiments, and their expected outcomes.
May 4 Hardware Platform Design
Pre-reading questions:
  • ...
Shanti - Firestorm

Nishant - Telos
Read and review:
For those wanting more...

Keep-Quit-Start feedback

  • Papers, Reading, & Reviews
    • Highlights: Good selection; interesting array of topics; reviews are very helpful to understanding when time is put into them
    • Background: Some topic areas require more background, advance framing. Action: Supplement pre-reqading Q's with background links where appropriate; refine discussion start (see leading below).
    • Consistency in self-effort: Not always good at getting reviews in on time (or done well on time). Action: (See leading below).
  • Discussions
    • Highlights: All very engaged; learn a lot from the discussion; consistently strengthen understanding
    • Leading: Missing summary and context (ed: weakness of no slides); discussion topics less set. Action: Pending discussion in class: Leads no longer required to write reviews; instead, use time to write explicit 3~5 minute summary; post meta-review and discussion seeds to slack before class starts.
    • Hybrid: Mixed experience; much improved with new A/V setup; hard to consistently interact. Action: Pat & Nishant will more actively watch Zoom, use hand raise or chat, and invite comments in middle as well as end.
    • Moderation: Ensure balance across speakers; promote less speaking folks more; consider cutting off less relevant tangents. Action: Discuss interaction techniques in class; explicit tracking by Pat for a bit.
  • Project
    • Highlights: Workshop day very good; milestones are helpful.
May 6 Software Platform Design (aka Embedded OSes)
Pre-reading questions:
  • What are the requirements of multi-processing (or multi-app, and what's the difference)?
  • Why have prior embedded systems been single-task, what is changing?
Olivia - TinyOS decade

John - ContikiOS
Read and review:
For those wanting more...
Week 7: Actual, computer-y things
May 10 Project Milestone 2 Feedback Deadline This is a course staff commitment – we will have feedback on each project proposal back to you by end of day.
May 11 ML at the Very Edge
Pre-reading questions:
  • How to decide between edge, local compute?
  • What is, and is not, different about edge compute capabilities?
  • How to manage whole ML systems (training, execution, updates)?
Colin - TinyTL

Ronald - MCUNet
Read and review:
For those wanting more...
May 13 Writing workshop Pannuto I strongly, strongly encourage you to check out the Writing Hub, which is where these resources came from, and where there are many more resources, both for day-to-day and workshop-style events, available.
For the second half, recall these are just opinions on just one type of technical writing:
Week 8: CPS-IoT Week
May 18 Workshop Day Signup Sheet Pick a workshop to attend; come to class prepared to give highlights of interesting ideas and conversations from one session (or equivalent) of the workshop.
May 20 Conference Day(s) Signup Sheet Pick one session to attend; come to class prepared to give highlights of interesting ideas and conversations from the session.
Week 9: Security
May 25 Individual Device Security
Pre-reading questions:
  • How would you express the trust/threat model of physically deployed sensing systems?
  • How do we balance pragmatism and security; in theory, in practice?
  • How can we enforce or prove the state of the physical world?
Huanlei - Dolphin Attack

Nishant - Pacemaker/ICD
Read and review:
For those wanting more...
May 27 Security for systems of devices
Pre-reading questions:
  • What properties do blockchains actually provide?
  • What risks are similar, different between IoT devices and more traditional computers?
Xiaohan - WAVE

Nishant - Automobile
Read and review:
For those wanting more...
Week 10: Special Topics
Jun 1 In-person class is cancelled. You’re encouraged to check out Dhanajay and Nishant's presentation at HotOS, which starts just before the normal during class period (and to participate in the discussion there!). Otherwise, please use the time to improve your projects and writeups.

Due by Midnight

Submit a draft of your final project report to HotCRP.

Reviews will be assigned at this time.

Jun 3 Smart Cities in the Real World Lilly Irani

Due by Midnight

Each person will be assigned to review two other project papers, similar to how we have reviewed papers from class. The goal is to provide constructive feedback to your peers for their final reports.

Finals Week

Jun 7

3–6 PM

Final Presentations Pannuto

Submit final papers via HotCRP.

See presentation details below.

Final Exam / Presentations

Instead of a final exam, we will have a "mini-conference" where each project will give a conference-style presentation on their research project.

Presentation Details

We will use the final exam slot for presentations. The class has been assigned a final exam timeslot of 3-6pm, Monday, June 7th.

Some guidelines for your presentation:

  • Length:
    • For 1-person teams, target around 8:00 minutes in length (no shorter than 6:00, no longer than 12:00).
    • For 2-person teams, target around 10:00 minutes in length (no shorter than 8:00, no longer than 15:00).
  • Ideally should include a demo component that highlights the system you have built in operation. Take some time with this (around 2:00)! Show off your hard work and all the cool things it does!
  • Try to tell a story with your presentation. Here is one rough template (you do not have to follow this precisely, it is simply an example of how to organize such a presentation):
    • Begin with an introduction that lays out the problem and why it is important [about 1:00]
    • Then, succinctly explain what you actually built/did [about 0:30]
      • What is the hypothesis you are exploring in this work?
    • [Demo opportunity here]
    • Next, look at some of the related work in this problem space, how does your solution differ from what came before? What ideas do you build on? [about 1:00]
    • After that, look at how you designed your system. What tradeoffs did you have to consider in your design, what choices did you make in how to build your system and why did your make those choices? [about 2:00]
    • Now, answer the question does it work. Talk about how you evaluated your system (and why that is a reasonable evaluation); compare this with prior systems if appropriate [about 2:30]
    • [Demo opportunity here]
    • Finally, what is the impact and result of this work? Tie back to your hypothesis. What questions might someone interested in this want to explore further? [about 1:00]
    • [Demo opportunity here]

Final Paper Details

Final writeups are due on Monday, June 7th. Ideally, these would be submitted before your presentations, but we will leave the paper submission system open until midnight.

A friendly reminder: It is easy to focus on experiments and results, but the primary goal of this writing exercise is to learn how to motivate, frame, and present your work in the broader corpus of scientific literature.

The milestones are very much intended to build up this document. You have already written 1-2 pages of introduction and motivation as well as 1-2 pages of background and related work (both of which have feedback you should incorporate!). The final experimental push is just 1-2 pages on top of this. The final document is only one-third experimental results, do not let that take up too much more than one-third of your focus in writing.

Finally, to be very clear: Your project does not have to work. Negative results are healthy and to be expected, particularly in projects that encourage probing the question of whether something is possible and whether it is an idea worth pursuing further. If you do have negative results, what is important is to articulate why. Did you find something fundamental about why your proposed idea will not work, or does it seem an engineering shortcoming (if so, what evidence do you have that future work could solve this)? Note here that even for negative results, the motivation for the work should still be compelling and well-articulated (why was this something worth trying?).


I would have written a shorter letter, but I did not have the time.

I am generally reticent to put a hard cap on things, as that just encourages space games. At the same time, submission venues do have limits, and learning to write succinctly is a very valuable skill. Target 5-6 pages, do not go over 7. References don't count towards the limit. If you find you are using 7 pages, it should be figures pushing you towards the limit, not text.

For format, please use sigconf from acmart.


For those projects who are willing, we'll post final papers and presentations here on the course website.

Creative Commons License

This work is licensed under a Creative Commons Attribution 4.0 International License. Copyright Pat Pannuto, 2021.