Stage 1 of 10 · 7 lessons · ~6 weeks
C for embedded
Learn the C ideas every embedded engineer needs, bits, registers, pointers and memory, and set up Python properly on Raspberry Pi OS for the application code you will write.
Start: Why C still runs the hardwareLessons· one lesson for each topic, in this order
Do this
- Write set, clear, toggle and test macros for a bit and use them on a variable.
- Rewrite an old exercise using only stdint.h types.
- Trace five pointer snippets on paper, then run them to check.
- Build a program for your board or a simulator and read its flash and RAM use.
- Break a program by removing volatile from an interrupt flag with optimisation on, then fix it.
Start with· follow one of these
- VideoFreeModern Embedded Systems Programming (video course)
Quantum Leaps (Miro Samek) · Intermediate
Free lessons that step down to the machine level: watch the first segment on C, bits, pointers and memory
- CourseFreeCS50: Introduction to Computer Science
Harvard University · Beginner
The weeks on C and memory give you pointers, arrays and malloc explained clearly, free
Keep handy
Also worth your time
Before moving on: A small C program, compiled for your board or a simulator, that sets, clears and tests bits in a variable standing in for a register, uses only stdint types, and prints its memory use from the build output.

You will write Python on the Pi, but do not skip this stage. Registers, masks and memory explain what gpiozero and every driver are doing, and you will need C the day you add a Pico or read a sensor's register map.