firmware

typeCAD/hal

typescript 🟦 ↝ 🪁 zephyr

Pins and ports as code
Each pin, bus, and part is a TypeScript object. The HAL checks you're using them the right way — mistakes show up in your editor, not on the board.
TypeScript becomes C++
You write TypeScript and get the C++ you'd have written by hand — nothing extra slowing it down.
Test on the real board
Write tests in TypeScript. The test runner sends them to the board, runs them there, and reports pass or fail back to your terminal — one command.
Catches mistakes early
Spots problems the C++ compiler cannot: a delay that freezes your screen, two parts fighting over one pin, a program bigger than the board.

Firmware with a type system

Boards, pins, and peripherals become typed objects that catch mistakes before the code ever leaves your machine.

Browse the HAL reference → Browse examples →

We use it on our own boards. If a doc needs work or something doesn't behave, open an issue — we'd rather hear about it.

© 2026 typeCAD — code-defined electronics github