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

  1. C++ Introduction with Linux CAN (PDF) — basic C++ syntax, object-oriented programming, and Linux socket programming for CAN communication.

  2. C++ Introduction with STM32 CAN Implementation (PDF) — CAN frame structure, hardware abstraction layers, and real-time embedded programming on STM32 microcontrollers.

  3. Introduction to Motor3508 Code Analysis (PDF) — class inheritance, virtual functions, interrupt handling, bit manipulation, and PID control for the DJI M3508 motor.

Resources

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.