animation of someone playing a light-up guitar

What’s cooler than a guitar that lights up when you play it? Nothing.

Hardware

This whole idea was inspired by Adafruit’s Neopixel LED strips. These are chains of RGB LEDs on a flexible PCB, with each light individually addressable.

The lights are controlled by an Adafruit Trinket M0, which is an absolutely amazing tiny microcontroller board.

The guitar is an old Squier Stratocaster. It’s my first guitar, which I bought way back when I was in high school. It’s not exactly a good guitar, at least not in the sense of sounding pleasant or staying in tune. But I’ve grown quite attached to it, so I thought adding a little bling would be a nice way to give it a second life.

Input stage

The Trinket has multiple built-in ADCs. It has a number of reference voltages you can choose from, including an internally regulated 1V reference. I can see maybe 300mV peak-to-peak coming out of my guitar if I strum pretty hard, so the 1V reference seems fine. But the guitar’s raw signal is centered around ground, so half the signal will clip if we just feed it directly to the ADC. So we need to bias the input signal upward to avoid clipping. A simple voltage divider circuit does the trick.

Software

To read the input signal, calling the familiar Arduino analogRead in a loop won’t cut it here: you can’t read fast enough to get a clean audio signal that way. Instead we need to set up the ADC to free-running mode, where it keeps sampling continuously and triggers an interrupt every time there’s a new sample to read.

From there, I feed the raw signal through a high-pass filter to remove any remaining DC bias. This goes through a network of bandpass filters and envelope followers; the outputs determine when to set off the lights.

Assembly

Holy smokes this was difficult. First was carving the trench that the lights live in. I borrowed my wife’s Dremel for the task. It took hours.

Next I opened up the front of the guitar and chopped up the wiring so I could splice a JST cable into the output. I also carved a hole in the pick guard to place the on/off switch, which I secured in place with Sugru.

After that, I had to find a spot for the new electronics. The guitar originally had a floating bridge, where you could access the springs from the back. I removed the springs, squeezed in some wooden shims to hold the bridge in place, and then there was just barely enough room for the battery and the Trinket.

Real world result

Dear lord, this is so much fun to play. I’ve wasted hours just playing it in front of a mirror and watching the lights twinkle.

animation of someone playing a light-up guitar

The sad thing is, due to the coronavirus, I’ve only had the opportunity to play this in public once.