At a Less Than Jake concert I noticed that Vinnie Fiorello’s drums had LED lights inside. They would periodically change colors while the roadie set up the band’s gear, but stayed one solid color during the performance. Less Than Jake have an energetic live show and these static lights just wouldn’t do — I knew I could build them something better!
I needed to make something interactive but small enough to fit entirely into the drum itself. I also knew that there was no way any touring musician would want to pull out a laptop and reprogram an Arduino on stage, so I had to make it easy to make changes on the fly.
I chose the Huzzah32 not only for its tidy size, but because I also wanted to take advantage of its Wi-Fi and, potentially in later versions, Bluetooth interfaces. The lights are standard WS2812B LED strips with 60 lights per meter. To capture the drum hits, I used an accelerometer breakout board, the LIS3DH, which supports a tap mode.
I set up the Huzzah32 to be its own access point and server. The name of this access point (“DrumLights”) and its WPA key (“HelloRockview”) can be changed by altering this line in the code: WiFi.softAP(“DrumLights”, “HelloRockview”);. When you connect, you’ll automatically be taken to a webpage on your default browser (I had some issue with this on Android but it worked great on every other OS I tried). If it fails to launch, just point your browser to 192.168.4.1to pull up the configuration page.
On the configuration page you can change three options: Flash, Brightness, and Sensitivity. Flash will make all the lights flash very brightly white for 0.1 second before changing color — a very dynamic effect, but it might be too much for some. Brightness allows you to change how bright the LEDs will be when normally on. Sensitivity determines how hard the drum must be struck to trigger the LEDs; the farther to the right the slider is moved, the harder it is to trigger the color change.
Set up your Huzzah32 in your Arduino environment. First, install the latest driver package from GitHub, following the instructions for your particular OS. Then you’ll be able to select the “Adafruit ESP32 Feather” from the Board menu under Tools in the Arduino IDE.
You will also need to install the Adafruit_LIS3DH and Adafruit_Sensor libraries. These along with other documentation on the LIS3DH sensor can be found at Adafruit.
To interface with the LEDs, you will need the Adafruit NeoPixel library, which can be installed from the library manager in your Arduino IDE. Make sure to restart Arduino after installing all of these packages.
The WS2812B LEDs are best purchased in longer strips, but you only need about 44″ for a 14″ snare drum. There’s a line between each LED, so count out 68 LEDs and cut between the 68th and 69th.
The soldering of this project is pretty straightforward with only one trick. You have two devices that need to be connected to ground, but only one ground pin on the Feather platform.
I simply twisted my two ground wires together and pushed them through the hole and soldered them in place. We are using the SPI interface on the LIS3DH board because at the time of writing, I2C was not working well on the ESP32 platform. This requires a few more wires but nothing that the system can’t handle.
See the wiring diagram for full wiring details.
I added a bit of support to the fragile connection where the wires connect to the LED strip. Using a spare piece of plastic (an SD card case), I cut a splint that I then hot-glued to the wires and the LED strip. With everything in its protective waterproofing tube, I capped each end of the LED strip with more hot glue to seal it. I used some heat-shrink tubing at the soldered end to keep it all together and looking nice.
Once the board is wired up, download the code from Github, open it in your Arduino IDE, and upload it to your board. Once complete, you should be able to tap on the sensor and see the lights change color. If you don’t tap them for 30 seconds they will go into demo mode, changing color every 5 seconds.
Of course, you wouldn’t want to just have these bare components dangling around in your drum so I designed a 3D-printable case for it all. The wired-up accelerometer is placed in the bottom of the case where it will be closest to the drum. The Huzzah32 is stuck to the inside of the lid with double-sided tape. There is a support for the LED strip on the side of the case that can be tightened down with a zip tie.
Finally, the Flash function pulls a lot of current — I found I needed a USB power supply able to output at least 1.2 amps.
Now you’re ready to shock the world with your snare drum light show. I gave mine to Vinnie; he’s testing it out! Attach the parts inside your drum however you like. I think good quality velcro is the best bet but hey, it’s your instrument, make music and have fun with it.