1. Introduction
  2. Preparation
  3. 1. Prerequisites
  4. 2. Getting Started
  5. Lab Exercises
  6. 3. Tools and Environments
  7. 4. Interfacing with Sensors
  8. 5. Peripherals
  9. 6. Interrupts
  10. 7. Robot
  11. 8. Hill Climb
  12. 9. Track and Line Following
  13. Appendices
  14. 10. Documentation
  15. 11. Acronyms
  16. 12. Using a Debugger
  17. 13. Non-nix Setup
  18. 14. Project Ideas
  19. Notes for VM users
  20. Notes for Windows Users
  21. Notes for Instructors

Embedded Systems Labs

Documentation and Tutorials

Programming in C

  • C introduction

Unix Command-line Tools

  • bash cheat sheet
  • GitHub git cheat sheet
  • Unix reference card
  • Command line reference

Pololu 3pi+ 2040 robot

  • User's Guide
  • Robot Libraries and Example Code for C
  • 3pi 2040 Control Board Schematic

RP2040 and RPi-Pico Programming

  • Getting Started (pdf)
  • Raspberry Pi Pico C/C++ SDK
  • Pico SDK documentation
  • SDK source code
  • SDK examples
  • Pico Extras
  • RP2040 Datasheet (pdf)

Processor Reference

  • ARM Cortex-M0+ datasheet
  • ARM Cortex-M0+ Technical Reference Manual
  • Armv6-M Architecture Reference Manual

General Raspberry Pi Documentation

  • Raspberry Pi datasheets

Host computer tools

  • Nix (for installation)
  • Lingua Franca
  • picotool (for downloading to the platform)
  • screen terminal (for seeing standard out over USB)