1. Introduction
  2. Background
  3. Hardware/knowledge requirements
  4. Setting up a development environment
    1. Linux
    2. Windows
    3. macOS
    4. Verify the installation
    5. Setting up your IDE
  5. Meet your hardware
    1. micro:bit v2
    2. Rust Embedded terminology
  6. Meet your software
    1. Build it
    2. Flash it
    3. Debug it
    4. Light it up
  7. Hello World
    1. Toggle it
    2. Spin wait
    3. NOP
    4. Timers
    5. Portability
    6. Board support crate
  8. Registers
    1. RTRM
    2. (mis)Optimization
    3. 0xBAAAAAAD address
    4. Spooky action at a distance
    5. Type safe manipulation
  9. LED roulette
    1. The challenge
    2. My solution
  10. Serial communication
    1. *nix tooling
    2. Windows tooling
  11. UART
    1. Send a single byte
    2. Send a string
    3. Naive approach and write!
    4. Receive a single byte
    5. Echo server
    6. Reverse a string
    7. My solution
  12. I2C
    1. The general protocol
    2. LSM303AGR
    3. Read a single register
    4. Using a driver
    5. The challenge
    6. My solution
  13. LED compass
    1. Magnitude
    2. The challenge
    3. My solution
  14. Punch-o-meter
    1. Gravity is up?
    2. The challenge
    3. My solution
  15. Snake game
    1. Game logic
    2. Controls
    3. Non-blocking display
    4. Final assembly
  16. What's left for you to explore
  17. General troubleshooting
  18. How to use GDB
  19. Magnetometer Calibration