Module 5 of 19

Module 5: Embedded programming

What the official assignment asks for, and what bare-minimum and exceptional work could look like.

2026 cohort lecture: 11 Feb 2026. Check the current schedule for your cohort.

Unofficial

Paraphrased from the Fab Academy 2026 class page, retrieved 24 Oct 2026. The official page is the authority and may have changed: read it on fabacademy.org.

What the official assignment asks for

Microcontroller architectures, toolchains, languages, development environments, serial communication and debugging.

Group assignment

  • Demonstrate and compare the toolchains and development workflows for available embedded architectures.

Individual assignment

  • Browse through the data sheet for a microcontroller.
  • Write and test a program for an embedded system using a microcontroller to interact (with input and/or output devices) and communicate (with wired or wireless connections).

Extra credit (optional, as marked on the official page)

  • Assemble the system.
  • Try different languages and/or development environments.

Bare-minimum vs exceptional

Author's interpretation

Author's interpretation, not official Fab Academy grading. Use it to aim your work and check your documentation, and confirm what counts with your instructor.

Bare-minimum

  • Group work: a comparison of the toolchains and workflows for at least two architectures, in your own words, with what you did and what differed in practice (setup, programming, debugging).
  • Datasheet reading shown: name the microcontroller and quote the specific facts you used (pin functions, electrical limits, peripherals or registers) with the page or section.
  • A program running on a microcontroller that both interacts with an input and/or output device and communicates over a wired or wireless link. The assignment names both, so show both.
  • Evidence it works: the code in your repo, a photo or short video, and the serial or other output.
  • A plain explanation of how the code works and which board, toolchain and settings you used.

Exceptional

  • The official extras: the system assembled (running on a board you made) and more than one language or development environment tried, with an honest comparison.
  • Going below the library: use timers, interrupts or registers directly where it matters, and show what you learned from the datasheet by doing it.
  • A debugging story: something that failed, how you found the cause, and what you changed.
  • Code that someone else can reuse: commented, with the exact build steps and versions, and files named clearly.
  • A link to your final project: how this program becomes part of it.