576 addressable RGB LEDs (WS2812B).
14 A worst-case at full white, clamped to a 60 W PSU. PWM timing via SPI/PCM; no flicker tolerated. Thermal management matters for certification.
F# firmware daemon on Raspberry Pi.
Render loop locked to 60 FPS while WiFi reconnect, OTA download, and temperature throttling run alongside. State-aware rendering on an embedded device — deliberate, not clever.
A C# developer API that reads like React.
Stateful components, async/await, hooks-style patterns — compiled to run deterministically on the embedded host.
Browser simulator with hot reload.
Three minutes from git clone to first pixel visible. Zero hardware required to start. Removes the single biggest friction that kills hobbyist hardware platforms.
Cloud backend with OTA and mobile apps.
TypeScript/Express + PostgreSQL + Auth0 + React/Ionic/Capacitor on iOS and Android. Signed OTA firmware, user accounts, app storage, device management.
Signed OTA with rollback.
Watchdog plus dual-partition strategy. A bad update does not brick the device.
CE certification.
EMC (emissions + immunity), RoHS, product safety. Six months of back-and-forth; outsourced lab, in-house compliance docs.
Self-manufacturing.
Every unit hand-assembled: solder two PCBs, crimp AC adapter cables, 3D-print ~200 dome parts, press-fit LEDs, screw frame, box. Two to four hours per device. The 100-unit cap is a time budget, not a business decision.
Packaging design + production.
Custom branded cardboard, foam inserts, Avery stickers, printed DE/EN A5 manuals. No contract packaging — every choice our own.
Brand identity, end-to-end.
Logo in-house and polished with Wabaki. Professional photo + video shoot. Pixel-art avatars by Marc Duiker. Community showcase apps by Urs Enzler.