// the take
A reference skeleton for structuring an out-of-tree Zephyr RTOS application, showing how to lay out custom boards, drivers, devicetree bindings, west modules, and CI. It's aimed at embedded developers starting a new Zephyr-based firmware project who need a working template to copy from rather than a library to depend on.
Covers the real pain points of Zephyr app structure in one place: west T2 topology, out-of-tree drivers and libraries, custom devicetree bindings, and a custom board (custom_plank) with its own defconfig and pinctrl. Ships working GitHub Actions for build and docs plus a Twister integration test example, so the CI wiring can be lifted wholesale. Tagged in lockstep with upstream Zephyr releases, so you know exactly which Zephyr version a given tag targets instead of guessing compatibility.
It's a template, not a product — there's no ongoing functionality to adopt, just patterns to copy and then maintain yourself, including keeping pace with Zephyr's own breaking changes across releases. Getting it running requires a full west workspace and Zephyr SDK install first, which is a multi-gigabyte, multi-step setup before you see anything work. The example drivers (blink, a stub sensor) are intentionally trivial, so it doesn't show how the same patterns hold up with real peripheral complexity, power states, or bootloader/OTA integration that most production firmware actually needs.
We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →