How to Create DIY Festival Badges That Automatically Sync with Each Other

Introduction

At many music festivals, attendees wear glowing badges or wristbands that flash in sync with the performance. While commercial versions rely on centralized transmitters or complex pairing, maker Tony Goacher developed a clever alternative: badges that synchronize themselves without any infrastructure. Each badge uses an ESP32 microcontroller and the ESP-NOW wireless protocol to share a local clock tick. All badges in range automatically converge to the highest clock value, enabling synchronized LED sequences. This guide walks you through building your own self-syncing festival badges from scratch.

How to Create DIY Festival Badges That Automatically Sync with Each Other
Source: hackaday.com

What You Need

Step-by-Step Instructions

Step 1: Prepare Your Development Environment

Install the Arduino IDE and add ESP32 board support. Open File > Preferences and paste the following URL into Additional Boards Manager URLs: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json. Then go to Tools > Board > Boards Manager, search for esp32, and install it. Next, install the FastLED library (or Adafruit NeoPixel) via Sketch > Include Library > Manage Libraries.

Step 2: Assemble the Badge Circuit

Connect the ESP32 to the LED ring as follows:

If using a breadboard, insert the ESP32 so that pins are accessible. Connect the battery pack's positive to the ESP32's VIN (or 5V) and negative to GND. Tip: Add a 100 µF capacitor across the LED ring power lines to avoid voltage spikes.

Step 3: Understand the ESP-NOW Synchronization Mechanism

The key idea: each badge maintains an internal clock tick counter that increments at a fixed rate (e.g., every 10 ms). When a badge broadcasts its current tick value via ESP-NOW, all nearby badges receive it. If a receiving badge has a lower tick value, it jumps to the received value; if it is equal or higher, it stays. This way, the highest tick propagates and all badges converge. No master device is needed—the network self-organizes.

Step 4: Write the Code

Open the Arduino IDE and create a new sketch. Below is a simplified structure you can expand using the GitHub files:

  1. Include libraries: #include <esp_now.h>, #include <WiFi.h> (required for ESP-NOW), and #include <FastLED.h>.
  2. Define constants: number of LEDs (16), data pin, clock tick interval (e.g., 10 ms).
  3. Set up ESP-NOW: Initialize WiFi in station mode, register a send callback and a receive callback.
  4. Implement broadcast: Every tick interval, increment the local tick and broadcast it.
  5. Implement receive: In the receive callback, check the received tick; if higher than local, update local.
  6. Add LED animation: Use the synchronized tick to drive patterns like rainbow, pulse, or chase.

Refer to Tony's GitHub files for the full code. The critical function is the ESP-NOW receive handler that performs the clock sync.

How to Create DIY Festival Badges That Automatically Sync with Each Other
Source: hackaday.com

Step 5: Upload and Test

Select your ESP32 board from Tools > Board and the correct COM port. Upload the sketch. Power up two badges within 5-10 meters of each other (ESP-NOW range is roughly 30 meters indoors). You should observe that after a few seconds, their LED patterns align perfectly. To verify, you can add serial print statements showing local tick values.

Step 6: Encase and Wear

For a festival-ready badge, place the ESP32, battery, and LED ring inside a 3D-printed or laser-cut enclosure. Use a lanyard or clip. Ensure good ventilation for the ESP32 (it can get warm). Apply hot glue to secure connections.

Resources and Tips

Conclusion

By following these steps, you’ll have a set of festival badges that synchronize automatically without any central hub. The approach is elegant: leveraging ESP-NOW for peer-to-peer clock propagation creates a decentralized, self-healing network. Whether you’re enhancing a music event or just enjoying a DIY project, these badges bring a professional-looking synced light show to any gathering. For deeper understanding, check out how commercial concert wristbands use similar concepts but with a master transmitter.

Video demonstration and additional details are available in the original article (see link in resources).

Recommended

Discover More

Instructure Data Breach Report: Lessons in Journalistic Verification6 Game-Changing Updates in Copilot Studio’s .NET 10 WebAssembly UpgradeNew Quiz Pushes Python Developers to Master Metaclasses – And Know When to Avoid ThemMastering Bug Fixes in sched_ext: A Guide to AI-Assisted Code Review for the Linux Kernel10 Essential Insights into Microsoft Agent Framework for .NET Developers