[Introduction](README.md)
- [Background](01-background/README.md)
- [Hardware/knowledge requirements](02-requirements/README.md)
- [Setting up a development environment](03-setup/README.md)
    - [Linux](03-setup/linux.md)
    - [Windows](03-setup/windows.md)
    - [macOS](03-setup/macos.md)
    - [Verify the installation](03-setup/verify.md)
    - [Setting up your IDE](03-setup/IDE.md)
- [Meet your hardware](04-meet-your-hardware/README.md)
    - [micro:bit v2](04-meet-your-hardware/microbit-v2.md)
    - [micro:bit v1](04-meet-your-hardware/microbit-v1.md)
    - [Rust Embedded terminology](04-meet-your-hardware/terminology.md)
- [LED roulette](05-led-roulette/README.md)
    - [Build it](05-led-roulette/build-it.md)
    - [Flash it](05-led-roulette/flash-it.md)
    - [Debug it](05-led-roulette/debug-it.md)
    - [Light it up](05-led-roulette/light-it-up.md)
    - [It blinks](05-led-roulette/it-blinks.md)
    - [The challenge](05-led-roulette/the-challenge.md)
    - [My solution](05-led-roulette/my-solution.md)
- [Serial communication](06-serial-communication/README.md)
    - [\*nix tooling](06-serial-communication/nix-tooling.md)
    - [Windows tooling](06-serial-communication/windows-tooling.md)
- [UART](07-uart/README.md)
    - [Send a single byte](07-uart/send-a-single-byte.md)
    - [Send a string](07-uart/send-a-string.md)
    - [Naive approach and `write!`](07-uart/naive-approch-write.md)
    - [Receive a single byte](07-uart/receive-a-single-byte.md)
    - [Echo server](07-uart/echo-server.md)
    - [Reverse a string](07-uart/reverse-a-string.md)
    - [My solution](07-uart/my-solution.md)
- [I2C](08-i2c/README.md)
    - [The general protocol](08-i2c/the-general-protocol.md)
    - [LSM303AGR](08-i2c/lsm303agr.md)
    - [Read a single register](08-i2c/read-a-single-register.md)
    - [Using a driver](08-i2c/using-a-driver.md)
    - [The challenge](08-i2c/the-challenge.md)
    - [My solution](08-i2c/my-solution.md)
- [LED compass](09-led-compass/README.md)
    - [Calibration](09-led-compass/calibration.md)
    - [Take 1](09-led-compass/take-1.md)
    - [Solution 1](09-led-compass/solution-1.md)
    - [Take 2](09-led-compass/take-2.md)
    - [Solution 2](09-led-compass/solution-2.md)
    - [Magnitude](09-led-compass/magnitude.md)
- [Punch-o-meter](10-punch-o-meter/README.md)
    - [Gravity is up?](10-punch-o-meter/gravity-is-up.md)
    - [The challenge](10-punch-o-meter/the-challenge.md)
    - [My solution](10-punch-o-meter/my-solution.md)
- [Snake game](11-snake-game/README.md)
    - [Game logic](11-snake-game/game-logic.md)
    - [Controls](11-snake-game/controls.md)
    - [Non-blocking display](11-snake-game/nonblocking-display.md)
- [What's left for you to explore](explore.md)

---

[General troubleshooting](appendix/1-general-troubleshooting/README.md)
[How to use GDB](appendix/2-how-to-use-gdb/README.md)

<!-- - [Async IO: The future](17-async-io-the-future/README.md) -->
<!--     - [Timer](17-async-io-the-future/timer.md) -->
<!--     - [Serial](17-async-io-the-future/serial.md) -->
<!--     - [The challenge](17-async-io-the-future/the-challenge.md) -->
<!--     - [My solution](17-async-io-the-future/my-solution.md) -->
<!--     - [Another challenge](17-async-io-the-future/another-challenge.md) -->
<!--     - [My other solution](17-async-io-the-future/my-other-solution.md) -->
<!--     - [More challenges](17-async-io-the-future/more-challenges.md) -->
---
