Packages
Board Targets
Name a board target (the qualified west build -b argument) and Cuttlefish generates a project-local board module with typed pins, peripherals, and build configuration — extracted from the Zephyr tree, no package to install. Cuttlefish checks your code against what the hardware can actually do.
| ESP32-S3 DevKitC | esp32s3_devkitc/esp32s3/procpu — ESP32-S3, USB serial, ADC, PWM, RGB LED |
| ESP32 DevKit | esp32_devkitc/esp32/procpu — ESP32-WROOM-32, 34 pins, dual I2C/SPI, WiFi, BLE, DAC |
| ESP32-C3 | esp32c3_devkitm/esp32c3 — RISC-V, 22 pins, WiFi 4, BLE 5, native USB |
| ESP32-C6 | esp32c6_devkitc/esp32c6/hpcore — RISC-V, 30 pins, WiFi 6, BLE 5.3, USB-OTG |
| Raspberry Pi Pico | rpi_pico/rp2040 — RP2040, 30 pins, dual I2C/SPI/UART, ADC, USB |
| Raspberry Pi Pico 2 | rpi_pico2/rp2350a/m33 — RP2350, 48 pins, dual I2C/SPI/UART, ADC, USB |
| Seeed XIAO nRF52840 | xiao_ble/nrf52840 — nRF52840, 11 pins, BLE, USB |
| WeAct Black Pill | blackpill_f411ce/stm32f411xe — STM32F411, USB, ADC, PWM, ST-Link/DFU |
The hardware-validated targets are listed above; every other board Zephyr supports (1,300+ variants) generates the same way at the derived tier. See the Board Targets page for the full feature table and how to use a target in a project.
Cuttlefish UI
Build device display screens using HTML and CSS. The pages below cover the element catalog, styling, display wiring, and the authoring API.
| Overview | how Cuttlefish UI works — HTML/CSS to display draw calls |
| Elements | the full HTML element catalog (<screen>, <text>, <button>, <list>, …) |
| CSS & Styling | box model, flexbox, colors, typography, theming |
| Display Configuration | wiring displays in cuttlefish.config.ts, touch input, display drivers |
| Authoring API | the ui.* functions (mount, signal, bind, drawCanvas, …) |