TLED - Matter-over-Thread LED Controller
I built a Matter-compatible LED strip controller firmware for the ESP32-C6 that runs over Thread. No WiFi, no cloud, just native Matter over Thread mesh
networking.
Full disclosure: This entire firmware was written by AI (Claude by Anthropic). I have not read or written a single line of code β I only provided
direction, tested on real hardware, and deployed. Use at your own risk.
GitHub: github.com/maui1911/TLED
Web Installer: maui1911.github.io/TLED (flash directly from your browser!)
What it does
- Matter over Thread β shows up natively in Home Assistant, Apple Home, Google Home
- Full RGB + RGBW control β color picker, brightness, on/off
- Smooth transitions β 300ms fades on all changes
- Thread router β device joins the mesh and can route for other Thread devices
- Web installer β flash from Chrome/Edge, no toolchain needed
- USB serial configuration β set LED count, GPIO, type, brightness without recompiling
- Temperature sensor β exposes the ESP32-C6βs internal chip temperature as a sensor entity in HA
- Watchdog & health monitoring β auto-reboots on hang, periodic heap/temperature logging
- NVS persistence β everything survives reboots
- 3D printable enclosure β parametric OpenSCAD design with ready-to-print STLs included
Hardware
- Board: [DFRobot Beetle ESP32-C6] (tiny 25x20.5mm β any ESP32-C6 should work though)
- LED strips: WS2812B, WS2811, or SK6812 (RGBW)
- Power: External 5V supply (~60mA per LED at full white)
- Thread border router: HomePod Mini, Apple TV 4K, Google Nest Hub, SLZB-06, etc.
Wiring
ESP32-C6 LED Strip
βββββββββ βββββββββ
GPIO 5 ββββββββ DIN (Data In)
GND ββββββββ GND
5V ββββ External 5V Power Supply
Getting started
- Visit the Web Installer (link above) in Chrome/Edge
- Click Install, select your ESP32-C6
- Configure LED count, GPIO, and LED type via the Configure tab
- Commission in Home Assistant: Settings β Devices & Services β Add Integration β Matter β Scan QR code
Thatβs it. No ESP-IDF, no compiling, no command line.
Enclosure
Designed a small parametric enclosure in OpenSCAD for the Beetle board. Friction-fit lid, USB-C cutout, wire slit. STL files are in the repo, or customize
the .scad file.
Known limitations
- No OTA updates β Matter OTA crashes on ESP32-C6 (appears to be an ESP-Matter SDK bug). Use the web installer for updates.
- Effects not exposed β Rainbow, breathing, candle, chase are implemented in code but not yet accessible from HA (no Matter cluster or serial command
for them yet) - No segments/zones β whole strip is one color for now
Whatβs next
Iβd like to expose the built-in effects to Home Assistant somehow and eventually add segment support. Contributions welcome!