Making Embedded Systems, 2nd Edition
Elecia White's book on building embedded software that survives real hardware: architecture, inputs and timers, interrupts, peripherals, debugging, connected devices, optimisation, maths, power and motors. The second edition (O'Reilly, 2024) adds IoT, motors and data handling. A practical bridge from tutorials to professional firmware.
2nd edition (2024)
Companion GitHub repository · Sept 2026
About 425
Publisher listings · Sept 2026
Book
Other
O'Reilly Media (Elecia White)
About 425 pages, a few weeks alongside projects
Intermediate
Paid (print, ebook and audiobook)
What the book is about
Making Embedded Systems: Design Patterns for Great Software is a book by Elecia White, an embedded engineer whose work ranges from DNA scanners to children's toys. It teaches the habits and designs that make firmware robust on resource-limited hardware, for intermediate and experienced programmers on any platform. The second edition, published by O'Reilly in 2024, adds chapters on IoT and networked sensors, motors and movement, and data handling strategies.
What is inside
The companion GitHub repository lists the chapters: an introduction to embedded development, creating a system architecture, getting your hands on the hardware, outputs, inputs and timers, interrupts, managing the flow of activity (main loops and state machines), communicating with peripherals (UART, SPI, I2C, USB), putting together a system (displays, ADCs, flash and digital sensors), getting into trouble (debugging, stack problems and hard faults), building connected devices (updates, security and monitoring), doing more with less (RAM, code space and cycles), maths on small processors, reducing power consumption, and motors and movement.
Is it worth your time?
Yes, once you have built a few projects from tutorials and want to know how professionals structure firmware. It explains why things go wrong, not only how to make them work: how to read schematics and datasheets, how to design an architecture you can test, how to think about interrupts, and how to cut power and memory use. The connected devices chapter is directly relevant to IoT work, covering firmware updates, security and device health.
Prerequisites and time
You should know C and have blinked an LED and read a sensor on some board. The book is about 425 pages and reads well one chapter at a time alongside a project, so plan a few weeks.
How to read it
Read chapters 1 to 6 early, since they shape how you structure any project. Then read the chapter that matches the stage you are in: peripherals when you wire sensors, debugging when things break, connected devices when you add MQTT, and power when you move to batteries. Use the companion repository for code, spreadsheets and links.
What you can do after it
- Sketch a system architecture before writing firmware.
- Handle interrupts, main loops and state machines deliberately.
- Debug stack problems and hard faults methodically.
- Plan updates, security and monitoring for connected devices.
- Reduce power, RAM and code size where it matters.
Free or paid?
The book is paid, available in print, as an ebook and as an audiobook, and in O'Reilly's subscription library. The companion repository is free.
Common questions
Is it tied to one chip? No. Examples are general and apply to Arduino, ESP32, STM32 and other platforms.
First or second edition? The second edition, which is updated and expanded.
Best for: learners ready to go from working prototypes to well-designed firmware.
Ready to start?
Opens on O'Reilly Media (Elecia White) in a new tab.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.