Build a Bare-Metal Bootloader for a Wearable-Device Prototype
Overview
What this challenge is about.
Write a bare-metal C bootloader for the Cortex-M4 target (no operating system, custom linker script, vector-table relocation). Implement: SHA-256 image validation (use a public-domain reference impl), dual-bank firmware layout (active + staging), BLE-based OTA receive path (the BLE stack is provided as a static library), fallback-to-recovery if the new image fails to boot 3 times in a row. Get end-to-end OTA working on the actual hardware prototype. Deliver: bootloader source (under 6 KB compiled), integration test plan run on hardware, 5-page handoff doc, and a hardware-bringup checklist for the next batch of devices.
The Brief
What you'll do, and what you'll demonstrate.
Build a 6 KB bare-metal bootloader with SHA-256 validation and BLE OTA support that replaces a USD 4 per-device commercial bootloader.
Earning criteria — what you'll demonstrate
- Write bare-metal C with custom linker scripts and vector-table relocation
- Implement firmware-image validation with cryptographic hashes
- Design and implement a dual-bank OTA update flow
- Handle fallback-to-recovery with bounded boot-attempt counters
Program Fit
Where this fits in your program.
Sharpens the same skills your degree expects you to demonstrate.
Skills
Skills you'll demonstrate.
Each one shows up on your verified credential.
Careers
Roles this prepares you for.
Real titles. Real skill bridges. Pick the one closest to your trajectory.
Career mappings coming soon.