esp32.diy

NightDriverStrip: ESP32 LED Effects Firmware Build Guide

Oct 11, 2026 · 5 min read

Intermediate 1.6k stars 240 forks G-code GPL-3.0 Updated 2026-08-14

The NightDriverStrip web installer showing the device and project selection dropdowns before flashing.

TL;DR NightDriverStrip is open-source firmware that turns an ESP32 into a multi-channel LED controller with dozens of built-in effects, audio reactivity, WiFi, and OTA updates. You can flash a ready-made build in minutes using the browser-based web installer, or dive into the C++ source to create your own effects.
What you need
  • ESP32
  • WS2812B LED strip
  • HUB75 LED matrix
  • M5StickC Plus
  • M5STICKCPLUS
  • M5STACKCORE2
  • ATOMLIGHT
  • LILYGOTDISPLAYS3
  • OLED display
  • TFT display
  • LCD display
  • Microphone module
BoardESP32 (multiple variants)
FrameworkArduino / PlatformIO
LanguageC++
LicenseGPL-3.0
Latest Releasev2.0.1 (2026-06-14)
DifficultyIntermediate

What You Will Build

NightDriverStrip turns an ESP32 into a powerful LED controller capable of driving up to 8 channels of WS2812B-style strips or HUB75-style matrices simultaneously. Once flashed, your device hosts its own web interface so you can switch between dozens of built-in effects from a browser on any phone or computer on your network.

Effects range from simple colour washes to audio-reactive animations that pulse and beat-match to music in real time — provided your board has or is connected to a microphone. Multiple ESP32s can run in sync using NTP, making it possible to build large, coordinated LED installations. The firmware also accepts compressed LED colour data over TCP/IP on port 49152, which is how the companion NightDriver desktop client streams custom effects to the device.

What You Need

Hardware

Software (Web Installer path)

Software (Source code path)

Typical use cases

Audio-Reactive LED Art

Connect a microphone and let NightDriverStrip analyse beats and frequencies to drive light shows that respond to music in real time.

Multi-Room Synchronised Lighting

Flash several ESP32 boards with the same configuration and use NTP-based sync to run coordinated effects across multiple strips or panels simultaneously.

WiFi-Controlled Ambient Lighting

Mount a WS2812B strip behind a TV or desk and control colours and effects from any browser on your network using the built-in web UI.

HUB75 Matrix Display

Drive a HUB75 LED matrix panel with the same firmware to create animated displays for signs, clocks, or decorative panels.

How It Works

NightDriverStrip runs a main effect loop on the ESP32, cycling through whichever effects you have configured. Each effect drives the LED channels directly via the chip pins. When WiFi is enabled, the firmware:

Audio-reactive effects use samples from a connected microphone to perform beat detection and frequency analysis, then drive the LEDs accordingly. Feature flags in globals.h or platformio.ini let you enable or disable WiFi, the web server, audio, OTA updates, and display support without changing core logic.

Flash with the Web Installer (Quickest Path)

If you want lights running in under five minutes without touching source code, the web installer is the place to start.

  1. Connect your ESP32 board to your computer with a USB cable.
  2. Open Chrome, Edge, or Opera and go to: https://plummerssoftwarellc.github.io/NightDriverStrip
  3. Select your device from the first drop-down (for example, "M5StickC Plus").
  4. Select the project you want from the second drop-down. Each label shows letters indicating which features — WiFi, web server, audio, etc. — are enabled in that build.
  5. Click CONNECT, choose the correct serial port from the dialog (usually labelled "USB Serial Port (COMn)"), and click Connect.
  6. In the next dialog, click INSTALL <project> FOR <device>.
  7. If this is your first flash of NightDriverStrip on the device, check the erase box to start clean, then click NEXT.
  8. Confirm by clicking INSTALL and wait roughly two minutes for the process to complete.
  9. After flashing, follow the on-screen prompts to enter your WiFi SSID and password.
  10. Once connected, you can visit the device's web UI by typing its IP address into a browser.

After the web server starts (allow up to a minute), the UI lets you switch effects and view live performance statistics.

Build from Source with PlatformIO

Use this path when you want to customise effects, change pin assignments, or enable features not included in the pre-built images.

1. Set up credentials

Copy include/secrets.example.h to include/secrets.h and set your WiFi SSID and password inside include/secrets.h. Do not edit secrets.example.h — it is committed to the repository.

2. Enable WiFi (optional but recommended)

In globals.h or platformio.ini, set:

#define ENABLE_WIFI 1

3. Build and upload the DEMO configuration

The README recommends starting by building the DEMO configuration with PlatformIO and uploading the resulting binary to the ESP32. Refer to the build pointers section of the repository for the exact build commands.

4. Wire the LED strip

Connect your WS2812B strip's data line to the pin defined as LED_PIN0 in include/globals.h. Per the README, example pin assignments are:

Also connect the strip's GND and 5 V rails to an adequate external power supply.

5. Access the web UI

Once the device boots and connects to WiFi, open a browser and enter the device's IP address. Use the icons on the left side of the UI to toggle views and change the active effect.

Extending the Project and Known Limits

Ideas to take it further

Limitations to be aware of

Verdict

NightDriverStrip is a mature, actively maintained firmware project with an unusually low barrier to entry thanks to its browser-based web installer — you can have LED effects running on a supported board in a few minutes with no toolchain setup. Makers who want to go further will find a well-structured C++ codebase with clear extension points for custom effects, multi-device sync, and audio reactivity, though meaningful customisation does require PlatformIO and some C++ familiarity.

Sources

github.comPlummersSoftwareLLC/NightDriverStrip — repository & README plummerssoftwarellc.github.ioOfficial website

Facts in this article come from the project's public README and GitHub metadata at the time of writing. Images belong to their respective owners and link back to the original source.