The goal for the final project is to create a low-power embedded system that interacts with the world in an interesting way. In previous years, we have focused on motion as a means to requiring the tight timing that bare-metal embedded systems can provide.
You should work in teams of between 2 and 4. The project will be due on the last day of finals.
Please put together a written report, 2-3 pages, which includes a description of your concept and actual design. Include pedagogical information about any sensors or special devices you have used. Diagrams, pictures, and drawings are welcome. In addition, create two videos: one longer, formed as a presentation (i.e., with slides) of your design and implementation, and one shorter (two minutes or less) functioning as a brief advertisement mainly focused on showing off your working product. On Canvas, submit either a link to a project site or your written presentation, your code, and links to both videos.
For extra credit, create a GitHub project (for your code and other design files) and an associated website with your written presentation content.
Scores range from 0 to 120. A functional device that meets all core requirements earns an 80. The remaining 40 points are complexity bonuses awarded for ambitious code, sophisticated PCB design, and exceptional demo videos.
Core requirements — 80 points
1. Functional product (30 pts)
| Criterion | Points |
|---|---|
| Device powers on independently and can be handed to the instructor | 10 |
| Real inputs and real outputs working together in real time | 10 |
| Final product matches the proposal (partial credit if scope changed — document why) | 10 |
2. Custom PCB & hardware (20 pts)
| Criterion | Points |
|---|---|
| MSPM0 is the computational brain on a custom PCB (using the Launchpad for compute = 0/15) | 15 |
| Device is self-powered — not drawing from the Launchpad's power rail | 5 |
Note: breakout boards hanging from wires will reduce your score. The more things are dangling, the less impressed I’ll be.
3. New MSPM0 module — required (10 pts)
| Criterion | Points |
|---|---|
| Uses at least one MSPM0 hardware module not covered in labs | 10 |
Modules already covered in labs: TIMG/TIMA timer interrupts, PWM, SPI transmit. Everything else counts — ADC, I²C, UART, DMA, DAC, comparator, RTC, etc. The module must be evident in your code and explained in your report.
4. Code quality (10 pts)
| Criterion | Points |
|---|---|
| Code is readable and well commented | 5 |
| Good system architecture — hardware modules used where appropriate, minimal busy-waiting | 5 |
5. Presentation (10 pts)
| Criterion | Points |
|---|---|
| Written report (2–3 pages): concept, architecture, and pedagogical content on sensors/devices used | 4 |
| Long presentation video with slides — explains design and implementation decisions | 3 |
| Short demo video (≤ 2 min) — shows the product working | 3 |
Complexity bonuses — up to +40 points
6. Code complexity bonus (up to +15 pts)
Significant lines of code (SLOC, excluding blanks and comments) as a proxy for implementation
depth. Please include a SLOC count in your report — run cloc on your source directory.
| SLOC | Points |
|---|---|
| < 200 | 0 |
| 200 – 400 | 5 |
| 400 – 700 | 8 |
| 700 – 1000 | 11 |
| 1000 – 1500 | 13 |
| > 1500 | 15 |
7. PCB design complexity bonus (up to +15 pts)
| Signal types present on board | Points |
|---|---|
| Power + simple digital I/O only | 3 |
| + analog signals or RF | 6 |
| + high-speed or impedance-matched traces | 9 |
| + mixed-signal layout with ground plane partitioning | 12 |
| Integration bonus | Points |
|---|---|
| All external components soldered directly — no dangling breakout boards | +3 |
8. Video joy bonus (up to +10 pts)
The short demo video is genuinely fun to watch. It shows ambition, craft, or just makes me smile. Awarded at instructor discretion — think of it as the “would I show this in a recruitment video for the class?” bonus.
Additional Extra credit:
GitHub repo with code and design files, plus an associated project website → up to +5 pts.
2015