Requirements
Five numbered requirements, each one testable: an alarm above a limit, hysteresis so it does not chatter, a button that silences the buzzer, and a change request handled by editing one constant.
Open it in the simulatorTake your own device from an idea to a tagged release: a brief, testable requirements, a layered architecture, a driver from the datasheet, self-tests and unit tests, a watchdog and a power budget, then the write-up.
0 of 7 done
7 lessons in 4 chapters, about 8 hours on a simulated ESP32-C3-DevKitM-1. Free, in your browser, every step checked by the simulator.
Five numbered requirements, each one testable: an alarm above a limit, hysteresis so it does not chatter, a button that silences the buzzer, and a change request handled by editing one constant.
Open it in the simulatorA BME280 temperature driver written straight from the datasheet: registers, calibration, the integer compensation formula, error codes instead of wrong numbers, a configurable address and a plausibility check that catches a chip that reset.
Open it in the simulatorA task watchdog that reboots a stuck loop and says why, a FAULT state that recovers by itself when the sensor comes back, and a battery budget worked out from the firmware's own measured awake time.
Open it in the simulatorEach lesson opens when the one before it is done, and each chapter ends in a project.
Choose the device, prove the parts, and write requirements you can test.
The brief, the reference device and the bring-up: scan the I2C bus, check the chip id, predict a reading, and prove the LED, the buzzer and the button all work before writing a single feature.
0 of 6 steps
Five numbered requirements, each one testable: an alarm above a limit, hysteresis so it does not chatter, a button that silences the buzzer, and a change request handled by editing one constant.
0 of 7 steps
Layers, a state machine, a command shell and a driver from the datasheet.
Three layers that only talk downward: drivers, a state machine with IDLE, ALARM and FAULT, and a serial command shell with a table of commands you extend with one of your own.
0 of 6 steps
A BME280 temperature driver written straight from the datasheet: registers, calibration, the integer compensation formula, error codes instead of wrong numbers, a configurable address and a plausibility check that catches a chip that reset.
0 of 6 steps
Self-tests, unit tests, a watchdog, recovery and a power budget.
Self-tests at boot that print PASS or FAIL, a test command for the bench, and unit tests of a pure state machine function that run on the chip, catch a real hysteresis bug, and grow by one case.
0 of 6 steps
A task watchdog that reboots a stuck loop and says why, a FAULT state that recovers by itself when the sensor comes back, and a battery budget worked out from the firmware's own measured awake time.
0 of 6 steps
A version, release notes, a demo and the write-up for your portfolio.
Greenhouse guard 1.0.0: a version string, a version command, release notes with known issues, a version bump, a demo run, and the README, demo script and shared project link that make it a portfolio piece.
0 of 6 steps
All 7 lessons, in order, each with what it covers. Any of them opens in the editor right away.
Every lesson runs in the simulator with nothing to buy. When you want the real thing, these kits have the parts.
Pick the starter kit you own and run every lesson in its manual with the same parts on the same pins.
See every kitYes. All 7 lessons of Firmware capstone: your own device are free and run in your browser, with nothing to install and no parts to buy before you start.
No. Every lesson runs on a simulated ESP32-C3-DevKitM-1 with its parts on the canvas, and the simulator checks each step as you go. When you want to build it for real, the same wiring and code work on a real board.
About 8 hours: 7 lessons in 4 chapters, each one a few short steps. Your progress is kept, so you can stop after any lesson and pick up where you left off.
Each chapter ends in a project that puts it together: Requirements, Drivers and Power and reliability.
With "Pick a device", and each lesson builds on the one before it. New to circuits? Electronics basics is the course that starts from zero.