Awhile back, I was fortunate enough to be invited to a semi-weekly “build night.” It’s a casual gathering where a bunch of random folks hack on all sorts of things: software, hardware, AI tooling, art. It is awesome! There are some seriously inspiring people there.

One longtime attendee showed off a project involving 3D-printed tiki sculptures lit from within by LEDs. Each sculpture had an ESP32 inside, controlling the LEDs and communicating via Bluetooth LE. A scroll wheel controller mounted on top could change the brightness and pattern, and the effects would sync across all the sculptures. It was ridiculously cool!

I happened to randomly have an ESP32 dev kit sitting inside a box of random electronics in my garage. I ordered a few more (these things are ridiculously cheap) and decided to experiment. Despite not having touched ESP32s before, it felt like a fun challenge.

Ultimately, I ended up cutting off a few LEDs from a WS2812 LED strip, soldering some wires up to the necessary connectors and then plugged them into a breadboard.

After snipping a few LEDs off a WS2812 strip and wiring them up to a breadboard, I used VS Code and the PlatformIO extension to vibe-code a basic Bluetooth host and client (shout-out to Claude for the help!).

The result?

  1. The host ESP32 registers itself as a Bluetooth service using a UUID, loops through a series of colors, and broadcasts the current color value.
  2. The client ESP32 scans for that UUID. If it finds it, it listens for the color data and updates its own LED. If not, it pulses red with a slow “heartbeat” to signal it’s waiting.

You can see it in action, below. Pretty wild! It starts off with the host disconnected. The only communication between the two is via Bluetooth.