- Introduction
- 1. Background
- 2. Hardware/knowledge requirements
- 3. Setting up a development environment
- 3.1. Linux
- 3.2. Windows
- 3.3. macOS
- 3.4. Verify the installation
- 3.5. Setting up your IDE
- 4. Meet your hardware
- 4.1. micro:bit v2
- 4.2. micro:bit v1
- 4.3. Rust Embedded terminology
- 5. LED roulette
- 5.1. Build it
- 5.2. Flash it
- 5.3. Debug it
- 5.4. Light it up
- 5.5. It blinks
- 5.6. The challenge
- 5.7. My solution
- 6. Serial communication
- 6.1. *nix tooling
- 6.2. Windows tooling
- 7. UART
- 7.1. Send a single byte
- 7.2. Send a string
- 7.3. Naive approach and write!
- 7.4. Receive a single byte
- 7.5. Echo server
- 7.6. Reverse a string
- 7.7. My solution
- 8. I2C
- 8.1. The general protocol
- 8.2. LSM303AGR
- 8.3. Read a single register
- 8.4. Using a driver
- 8.5. The challenge
- 8.6. My solution
- 9. LED compass
- 9.1. Calibration
- 9.2. Take 1
- 9.3. Solution 1
- 9.4. Take 2
- 9.5. Solution 2
- 9.6. Magnitude
- 10. Punch-o-meter
- 10.1. Gravity is up?
- 10.2. The challenge
- 10.3. My solution
- 11. Snake game
- 11.1. Game logic
- 11.2. Controls
- 11.3. Non-blocking display
- 12. What's left for you to explore
- General troubleshooting
- How to use GDB