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

FrameworkTurns code intoBuild toolBest for
ZephyrZephyr RTOS kernel + devicetreewestThe embedded target — nRF52840, ESP32, RP2040/RP2350, STM32, SAMD21 boards on Zephyr RTOS
NativeStandard C++g++ or clang++Desktop testing, simulations, and terminal apps

Display and touch support

FeatureZephyrNative
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.