Protocol spec
Canonical HTTP, WebSocket, and BLE contract. Versioned, additive within a major.
A tiny OS that turns a $5 microcontroller into an AI-aware, scriptable LED lamp. Flash it once, set it up from the web, drop it into your home — Home Assistant, Homebridge, Node-RED, or just a browser tab. Stays on your network. Never phones home.
Free, open, and yours to tinker with — Apache 2.0.
One file per shape and chip. Pick your board and your lamp's form and you get exactly the files it needs. Flash once over USB with esptool; after that every update goes over the air.
Or skip the tools entirely. Plug in the board, pick it below, hit Flash from browser — firmware and effects land in one click, straight from Chrome or Edge.
Pick a board and a form to see its files.
Once the initial *-flash.bin is on the chip, every subsequent
update can be pushed wirelessly through /ota in any browser
or through the POST /api/ota endpoint. Dual OTA partitions
give you a free rollback on failure.
Designed around AI from the ground up — combined with the good old features any decent lamp should have.
shade() DSL; the firmware compiles them to bytecode for fast on-device playback. Save, edit, play — all without a server./control, /compose, /stream, /draw, /js, and /config. No app required.user / creator / admin). Hand them out via QR or over Bluetooth client-to-client. Revoke any time./draw, or from any app’s Draw tab. Save up to 30 drawings on the lamp and let the built-in carousel effect cycle through them.The wire contract between client and lamp is open and stable. HTTP for control, WebSocket for streaming, BLE for onboarding — pick the transports your project needs and target the spec directly. The firmware doesn't care whether the bytes come from our app, a CLI, or your own SDK.
Canonical HTTP, WebSocket, and BLE contract. Versioned, additive within a major.
Bearer tokens, user / creator / admin roles, share-key endpoints. Multi-tenant from day one.
Firmware source under Apache 2.0 lives next to these docs in the repository.