Tutorials
Embedded systems, CAN communication, and motor control — the same stack that runs our competition robots. Each tutorial stands alone, but they build on each other; go in order if you are new. You will want basic C++ and command-line familiarity, plus a Linux environment (or WSL) for the CAN tutorials.
Tutorials
-
C++ Introduction with Linux CAN (PDF) — basic C++ syntax, object-oriented programming, and Linux socket programming for CAN communication.
-
C++ Introduction with STM32 CAN Implementation (PDF) — CAN frame structure, hardware abstraction layers, and real-time embedded programming on STM32 microcontrollers.
-
Introduction to Motor3508 Code Analysis (PDF) — class inheritance, virtual functions, interrupt handling, bit manipulation, and PID control for the DJI M3508 motor.
Resources
- iRM Embedded repository — source code, examples, and the ARM GCC toolchain setup.
- STM32 documentation — hardware reference; use STM32CubeIDE for the hardware tutorials.
- CAN in Automation — protocol specifications.
- GitHub organization — all team repositories.
Getting help
Tutorials are maintained by Austin Yang (austiny2@illinois.edu). For hands-on help, come to the weekly Saturday meetings at the ECEB Open Lab, or ask on Discord.