Close

Technology Overview

A project log for BlinkNet

Synchronized LED Light Show

Alex BowenAlex Bowen 12/28/2018 at 16:480 Comments

Context

This project began life as an attempt to build a version of the common "firefly" light centerpieces I've seen at a number of weddings in the last few years. While working on prototypes, my fiance found [Bill Porter]'s project and liked what she saw.

The Hardware

Each unit consists of an ESP8266 module and three individual NeoPixels. The ESP connects to a Raspberry Pi 3 running the BlinkNet PiFFT server.

The Software

The Raspberry Pi is set up as a WiFi hotspot, and runs a simple python script that samples a USB microphone, applies DFT via NumPY, and pushes out the BlinkNet packet via a UDP multicast with this structure:

01234...74(n+1)...4(n+1)+4
number of lightsopcode client IDreserved  RGBW dataRGBW Data...

The first byte is the number of lights in the packet, meaning the total packet size is 4n+4 bytes total. The second byte is the opcode, detailed below. The third byte is the device ID (if applicable per the opcode). The fourth byte is reserved, and the remaining data is RGWB data for each LED.

Opcodes

Discussions