$ account NabuCasa
This repository is a firmware build system for Silicon Labs wireless chips (EFR32, MGM210) used in Home Assistant hardware (SkyConnect, Yellow, ZBT-2, ZWA-2). It provides a Python-based CLI tool (`tools/build_project.py`) that reads YAML manifests, generates projects using the Silicon Labs Configurator (slc), applies SDK patches, compiles with GCC or LLVM, and produces signed/encrypted GBL firmware images. The repo also includes a multi-stage Dockerfile for reproducible builds, CI/CD pipelines, and a set of custom firmware extensions (LED effects, accelerometer driver, watchdog, Zigbee XNCP commands, Z-Wave Serial API commands) that demonstrate high-quality embedded engineering patterns such as priority-based LED management, temporal dithering for WS2812 LEDs, linker-wrapping for stack fixes, and Jinja-templated command dispatchers. The build system is well-architected with attention to reproducibility, LTO handling, and validation of linker wraps. While the firmware extensions are specific to NabuCasa hardware, many patterns are reusable in other Silicon Labs projects.