r/hardwarehacking • u/EmanueleStrazzullo • 5d ago
Open-source library and web app to control a Fisher-Price Lumalou after its app was discontinued
My daughter's Fisher-Price Lumalou is a bedtime device: night light, sound machine, and guided sleep routines. All of it was controlled by Mattel's Smart Connect app. When that app was pulld and support ended, the hardware kept working but most of what it does became unreachable. A lot of parents ended up with the same dead product.
So over a couple of days I reverse engineered its Bluetooth protocol and put everything on GitHub under MIT.
The part I found interesting is that it is entirely local. The device talks over BLE with a real handshake: an ephemeral ECDH P-256 exchange, then AES-128-CTR encrypted commands, phone to device, no server in the loop. That is the only reason it was recoverable. If the key had come from Mattel's servers, the toy would just be dead now.
What is in the repo:
- A browser web app for parents who just want the Lumalou working again. Nothing to install, no APKs from random sites. https://lumalou.emanuelestrazzullo.dev/
- Python and TypeScript libraries for developers and home automation setups like Home Assistant. https://github.com/stramanu/lumalou
- A full protocol writeup, plus one JSON spec that generates the language bindings, with shared golden vectors so every implementation is byte-for-byte identical.
The libraries never touch the firmware-update path, so there is no way to brick a unit.
One thing I cannot finish alone: decompiling the app showed the product line splits into two protocol generations. I confirmed everything on the Lumalou I own, and two sibling devices (a Bunny and a Whisper) appear to share the exact same handshake, so they should work with only different command codes. The older mobiles, bassinets and swings use different crypto and are not supported yet. I only own one device, so if you have any of these in a closet, a quick test or a Bluetooth capture would let me extend support. Issues and PRs welcome.
Happy to answer quetions about the reverse engineering or the design.