Pigweed and Bazel for Embedded Development
summary
Pigweed makes Bazel handle real embedded firmware workflows: it builds binaries for multiple cores in one Bazel invocation, uses transitions (and in Bazel 8 replaces many with platform-based flags in Bazel 8 plus a generic platform_data rule), and wires host-side Python flashers that embed and flash firmware so a single bazel command builds M4 and M7 images and runs a flasher. Example projects include an STM32H755 dual‑core motor controller and the Pigweed Sense on an RP2040 Pico2; unit tests run on host or get flashed to device and report results. It also uses label flags for cross-repo config (e.g. FreeRTOS configs).
AI-written summary · about
chapters (9)
- 0:00Pigweed and embedded intro
- 3:28Bazel’s three eras in embedded
- 5:57Manual era challenges
- 6:18Transition era improvements
- 7:00Barkour motor controller case
- 15:29Modern era with platform flags
- 17:15Demo: Pigweed Sense on Pico
- 23:22Modern era recap and future
- 24:45Q&A
related talks
32mFrom Pre‑Silicon To Production: Firmware Development on Zephyr
36mEmbedded Development Made Easy: A Guide to FOSS Platforms and Maxing product value
56mEnhanced Embedded Systems with Nerves
57mKeynote: The Demarcation of the Edge of Innovation
25mMicrocontrollers with Gleam
48mZephyr Project on Beetle
36mBoF: Multibuild for Zephyr RTOS
17mPoster/Demo Previews
