Skip to content

rosterloh/zephyr-applications

Repository files navigation

Zephyr Applications

Getting Started

You need uv installed. Everything else — Python, west, and the Zephyr SDK — is managed by the tooling.

First-time setup

git clone https://github.com/rosterloh/zephyr-applications
cd zephyr-applications
uv sync                   # create .venv and install all Python tools
uv run pre-commit install # install pre-commit hooks
uv run poe setup          # west update (deps/) + Zephyr SDK toolchains

Building

Build any app against its default (or an explicitly allowed) board:

uv run poe app motor_controller                        # default: robotis_openrb_150
uv run poe app joystick_controller                     # default: adafruit_qt_py_esp32s3
uv run poe app rasprover --sysbuild                    # rasprover hw build + MCUboot
uv run poe app rasprover --board native_sim/native/64  # rasprover native_sim

Each app has an allowed-board list (see the app task in poe.toml); boards outside it are rejected.

Flashing

uv run poe flash motor_controller

Available tasks

uv run poe --help
Task Description
setup First-time workspace setup (west update + SDK install)
west-update Fetch/update all west dependencies into deps/
sdk-install Install Zephyr SDK toolchains for this project's targets
app <name> [--board <b>] [--sysbuild] Build an app for its default (or an explicitly allowed) board
flash <name> Flash a previously built app
agent-build <name> [--board <b>] [--sysbuild] app with tail-truncated logs written to logs/
run-rasprover-sim Run an already-built native_sim rasprover image
fmt Format Python scripts with ruff

Repository layout

.
├── applications/       # Zephyr applications
├── boards/             # Out-of-tree board definitions
├── deps/               # West-managed dependencies (git-ignored)
├── scripts/            # Utility scripts
├── poe.toml            # Task runner configuration
├── pyproject.toml      # Python dependencies (uv)
└── west.yml            # West manifest

Notes

  • golioth and pouch are excluded until pouch adds full_name to its board.yml (required by the current Zephyr board schema). Re-enable in west.yml to restore Golioth support to bluetooth_proxy_device. rasprover has had Golioth removed and builds cleanly without it.
  • pico_fw uses Zephyr's in-tree AIROC driver for the Pico W's CYW43439; the firmware blobs come from hal_infineon (fetched by poe blobs-fetch).
  • deps/ is git-ignored. Run uv run poe west-update to refresh after pulling changes to west.yml.

About

Zephyr applications monorepo

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors