Reverse-Engineering the Steam Machine's LED Strip: From a Product Photo to a Kernel Module

(Claude helped with both the project and this post) It started with a spec sheet and a dumb question: how tightly packed are the LEDs in the Steam Machine’s front light bar? It ended with a cloned kernel driver, a strings dump of the Steam client itself, and a from-scratch Linux kernel module driving a WLED replica. This is the story of everything in between. Act 1: What can you learn from one product photo? The Steam Machine’s spec sheet gives you two numbers: 17 individually addressable RGB LEDs, and a case that’s 156mm wide. Divide one by the other and you get a density - about 109 LEDs per meter, roughly one LED every 9mm. Simple enough, if you’re willing to assume the strip runs edge-to-edge with zero bezel. It doesn’t, of course. Nothing does. So the real question became: how much margin is there, actually, and can we figure it out without a teardown? ...

July 19, 2026 · Gildas Le Nadan

Making WLED Lights React to Music — Without a Microphone

How I wired Home Assistant, Music Assistant, a Raspberry Pi, and a WLED ESP32-S3 together to get audio-reactive lights driven entirely from the music stream — no microphone required. (Claude helped with both the project and this post) The Goal I wanted my WLED-controlled lights to react to whatever was playing through my HiFi system — pulsing, flashing, and shifting colours in time with the music. The catch: I didn’t want a microphone picking up room noise, and I wanted it to work automatically whenever music played, without any manual intervention. ...

June 2, 2026 · Gildas Le Nadan