Real-Time Embedded Firmware
Bare-metal C firmware on the STM32 NUCLEO-F411RE — interrupts, timers, and register-level debugging.
Embedded firmware in C using the STM32 HAL: GPIO interrupt-driven control, hardware timer configuration, UART, and PWM with precise floating-point duty-cycle computation at the register level — plus a live telemetry pipeline for debugging real hardware.
Code that answers to physics
Firmware is where software stops being abstract. A PWM duty cycle is a register value with a physical consequence; a missed interrupt is a visible glitch. This project is a deliberate tour of the STM32 peripheral set — GPIO, timers, UART, PWM — written in C against the HAL, with the interesting bugs living at the hardware–software interface.
Debugging happens where the evidence is: SWO trace output at 115200 baud for live telemetry, and GDB at the register level when behavior and intent disagree. Six such interface bugs were isolated and fixed through systematic failure-mode analysis.
Highlights
- GPIO interrupt-driven control, hardware timers, UART, and PWM peripheral interfacing on the STM32 NUCLEO-F411RE
- SWO telemetry pipeline at 115200 baud for live hardware diagnostics under Linux
- Resolved 6 hardware–software interface bugs through systematic register-level debugging and failure-mode analysis in GDB and STM32CubeIDE
- Deterministic execution pipelines under real-time constraints