Reproduction Environment

Appendix status: Initial reference

This page records the supported environment. Exact install and flash procedures will be expanded alongside the week chapters.

Hardware and operating systems

Layer

Reference environment

MCU

STM32F411CEU6 Black Pill, 100 MHz

Firmware tooling

STM32CubeMX project, CMake through the ST VS Code extension

SBC

Raspberry Pi 4B

SBC operating system

Ubuntu Server 24.04 LTS

Robotics middleware

ROS 2 Jazzy

CAN

MCP2515/TJA1050, 500 kbit/s

Repository workflow

The Raspberry Pi uses a sparse checkout of this repository. Do not edit the Pi copy directly. The reproducible path is local edit, Git push, Pi pull, build, and hardware test.

Build the notes locally

Use Python 3.12 and install the pinned documentation dependencies:

python -m venv .venv-docs
.venv-docs/Scripts/python -m pip install -r docs/textbook/requirements.txt
.venv-docs/Scripts/sphinx-build -W --keep-going -b html docs/textbook build/textbook

On Linux, replace Scripts with bin. Serve build/textbook over HTTP so the static search index and relative assets behave the same way as GitHub Pages.

Deployment

Pull requests run the strict build without deployment. A documentation change merged to main uploads the generated HTML through the official GitHub Pages artifact workflow. The repository’s Pages source must be set to GitHub Actions once before the first deployment.