Embedded Systems & Hardware

Focus: software meets siliconโ€”programming at the hardware boundary.


Bare Metal Programming

Programming without an OS.

Topic Description
Bare Metal Programming Direct hardware access
Bootloader Deep Dive System boot process

Microcontrollers

Small computers for embedded applications.

Topic Description
ESP32 Programming WiFi-enabled microcontroller
ESP32 Without Arduino Native ESP-IDF development

Real-Time Operating Systems

Deterministic embedded OS.

Topic Description
RTOS from Scratch in C Build your own RTOS

Firmware Development

Low-level system software.

Topic Description
Firmware Deep Dive Firmware development
Embedded Linux Linux on embedded devices
Embedded Linux Deep Dive Advanced embedded Linux

Assembly & Hardware Description

Lowest level programming.

Topic Description
ARM Assembly Projects ARM assembly programming
Verilog from Zero Hardware description language

Learning Tips

  1. Get hardware: No substitute for real devices
  2. Read datasheets: Primary documentation for hardware
  3. Use oscilloscopes/logic analyzers: See whatโ€™s happening
  4. Start simple: Blink an LED before building robots
  5. Understand timing: Real-time means real constraints

โ† Back to all projects