Frameworks
A framework decides which C++ Cuttlefish writes for your TypeScript — Zephyr RTOS kernel calls against devicetree, or standard desktop C++.
Most projects pick a framework through cuttlefish create, which asks what hardware you’re targeting and configures cuttlefish.config.ts for you. The pages below describe what each framework turns your code into, what you need installed, and how to start a project with it.
Comparison
| Framework | Turns code into | Build tool | Best for |
|---|---|---|---|
| Zephyr | Zephyr RTOS kernel + devicetree | west | The embedded target — nRF52840, ESP32, RP2040/RP2350, STM32, SAMD21 boards on Zephyr RTOS |
| Native | Standard C++ | g++ or clang++ | Desktop testing, simulations, and terminal apps |
Display and touch support
| Feature | Zephyr | Native |
|---|---|---|
| ILI9341 TFT | ✅ <zephyr/drivers/display.h> | — |
| ST7796S TFT | ✅ direct SPI¹ | — |
| SSD1306 OLED (mono) | ✅² direct display.* | — |
| SDL desktop | — | ✅ |
| FT6336U touch | ✅ I2C | — |
¹ On Zephyr, the ST7796S panel is driven over direct SPI writes rather than Zephyr’s standard display bridge, which does not work with this panel.
² The Zephyr SSD1306 profile (128×64 mono) targets direct display.* drawing; the @typecad/ui HTML/CSS adapter does not support mono displays.
Pick a framework
- Zephyr — generates native Zephyr RTOS firmware: devicetree-driven GPIO, kernel timing, and kernel timers for periodic tasks. Builds with
west. Pick this for production firmware on a supported board (Seeed XIAO nRF52840, ESP32-S3, ESP32, Raspberry Pi Pico, Pico 2, WeAct Black Pill) — or any board in your Zephyr tree. This is the flagship framework target. - Native — generates standard C++ with a
main()and compiles to a desktop executable. Pick this for testing HAL logic, running simulations, or building terminal apps with no hardware in the loop.