Introduction: Dancing LED Goggles

Besides an amazing variety of art in all shapes and sizes, Burning Man has an abundance of music, blinky lights, and dust. While these goggles might not be a work of art, they certainly contribute to the enjoyment of Burning Man’s audio/visual overload while keeping the dust out of my eyes. The best part of them is, if I squint one eye, I can actually see out of them! The fate of Burning Man 2021 is still up in the air so if I can’t use these dancing on the Playa, I might just take them night skiing.

While I’ve been using individually addressable LEDs (commonly called NeoPixels) for a while now, my programming skills have always fallen short of creating some really cool interactive designs. I once made a shirt with an LED grid for my son that was able to display a variety of different colored designs. He wanted them to change in synch with different songs for a dance routine. It was tedious, but I hacked it together. He then wanted something more reactive, like those graphic equalizer shirts that were popular years ago. I’m sure there are some great Instructables out there, but I never got around to it and have felt his disappointment since. It is never good to let down your child, especially one practiced in the art of guilt.

Then I found the PixelBlaze v3 with the Sensor Expansion board on CrowdSupply. It is an LED driver board that is so simple to use it allowed me to “program” a graphic equalizer type display on my goggles in minutes. I use “program” in quotes because all I had to really do was select one of the already created patterns and wirelessly load it on my PixelBlaze. There was some configuration required, but nothing as complicated or arcane as I typically experience with boards that have such specific functions. No figuring out MAC addresses or typing out IPs and configuration codes. Let me walk you through my set up. With a tad more time and skill, you can create your own patterns, but the selection is decent to get started.

Supplies

  • PixelBlaze v3 + Sensor Expansion board
  • Ski goggles
  • WS2812B 144 LED/meter (you only need 100 LEDs so 1m will do fine)
  • LiPo battery switch
  • Wire (I used stripes out of some old CAT5 cable)
  • Black acrylic (for optional lens frame)
  • Soldering iron
  • Hot glue gun

Step 1: Step 1: Build LED Matrices

First I built out my two LED matrices, one for each eye. I chose the WS2812B “NeoPixel” LEDs that come in 144 LEDs per meter. Each LED is 7mmX 12MM so a 5 X 10 matrix is almost square, but still fits easily on my goggles. I cut 10 strips off my roll, each with 10 LEDs, and began soldering. This was the most difficult part since the pads are pretty small and if you don’t cut them exactly in half, it is tough to solder your connector wires onto the tiny pad. To make it easier, I would tin (add solder) to both the end of the wire and the pad before soldering them together. Using a thin gauge solder helps too.

It might seem obvious, but worth mentioning, that you solder your connections by following the arrows. Your 5V power, ground, and data wires from the PixelBlaze should go on a pad with an arrow pointing down the strip (“in”). At the end of your strip, the arrow is pointing “out” so you solder the wire on the “out” 5V to the 5V “in” pad on the next strip. Same for the “out” GND to “in” GND and “out” Data to “in” Data. Keep snaking your connector wires until you have 5 LED strips stacked on top of each other and then start with the second matrix. Make sure the last “out” set of wires is long enough to provide some spacing for the next matrix to be positioned properly.

Another soldering note. I started my matrix in a Cartesian fashion with LED 0 at the bottom left corner. While PixelBlaze can handle this (I’ll show you how in later steps), they recommend you follow computer graphic methodology with the first position at the top left and work your matrix down. I had already soldered mine together when I realized that and was thankful that it was not required. The flexibility of the PixelBlaze saved me a lot of time.

Because of my questionable solder job, I made sure I tested each strip before going any farther. I connected the wires to an Arduino and ran the simple test program on each strip of 10. I could’ve ran it on all 100 LEDs at once but that would’ve required extra power sources and it was easier to just write a program that turned on 10 at a time. Only two strips needed attention and once those were soldered up, I like to add some hot glue on the top and bottom of the solder joints to give it a little protection and strength.

Step 2: Step 2: Prepare PixelBlaze and Expansion Board

With the matrices all set, it was time to configure and program the PixelBlaze. I won’t go into heavy details, but instead will outline the steps since a really good set up is found on the website of the creator of the PixelBlaze, Ben Hencke.

I decided to solder the Sensor Expansion board direct onto the PixelBlaze since the profile is pretty small already and I didn’t see using them separately. The PixelBlaze can run LEDs with 3 or 4 wires (5v,GND, Data, Clock), so I did solder a four pin connector that comes standard with most LED strips in case I want it for future projects.

After connecting the USB to power up the PixelBlaze, I navigated to WiFi configuration page supplied by Ben’s setup instructions. The interface was super easy and I had PixelBlaze connected in seconds without having to type any command line gibberish.

Step 3: Step 3: Program the PixelBlaze

Before adding a pattern to your LEDs, you have to provide PixelBlaze with a “map” of your LED layout. Ben has a really good explanation for why the “physical layout” of the LEDs is kept separate from the patterns. Simply put, the patterns are designed to scale to any 2D or 3D layout, which makes it convenient and easy to use other people’s patterns, regardless of the shape or number of LEDs they used. My map was a 5 X 20 grid, but I added some physical space between the two 5 X10 matrices so it turned out to be a 5X29 grid. This diagram will be able to explain it a lot better than I can.

The last step, adding interactive pattern, was the easiest part. You select the Patterns tab, scroll down the list until you see one you like, select it, and within seconds it is uploaded to the PixelBlaze and on your LEDs. There is even a “Playlist” function where you can select multiple patterns and have them play sequentially for different durations. Since it is WiFi enabled, you can even use your phone to change the patterns on the fly. Adjusting the brightness can be done with a slider on the page. If you are smarter than me, you can even edit the existing patterns to suit your needs or create one from scratch with a number of functions using the in browser editor. I might eventually try my hand at that since he provides a number of functions that take advantage of the Sensor Expansion board’s accelerometer, light sensor, sound sensor, and 5 analog inputs.

Step 4: Step 4: Assemble and Dance

Once I had verified that the pattern was displaying on my LEDs properly, I proceeded to hot glue the LEDs onto the goggles. The LEDs come with an adhesive backing, but they didn’t feel secure enough on the curved shape of the goggles. I next added a LiPo battery with a switch across the battery lead. The profile of the PixelBlaze is small enough that I can wear the goggles with the two boards set on one side and the battery on the other. I still have room to see down the middle. In retrospect, I should’ve used black wires to connect the LEDs so they wouldn’t be so obvious and sloppy looking. I solved that by laser cutting a black acrylic frame over each matrix. More hot glue and I was ready for the music.

While the graphic equalizer pattern has been a hit so far, I feel the need to do more. I took the path of least resistance to produce what I think is a pretty cool fashion accessory, but I do have future plans to enhance my goggles. Now that I’m comfortable with the PixelBlaze interface, I plan on creating my own patterns and experimenting with the on board accelerometer and maybe some switches. Some future projects include a pattern made up of eyeballs in different positions. They can blink to music or roll around with the shake of my head. I’d also love to recreate the amazing Glow Flow sculpture and make it look like my goggles are filled with glowing liquid that flows around as I move my head. In theory, I just need to adjust the 3D map to a 2D map and load his code on my goggles and I’m off. There is a very active discussion board on the ElectroMage Forum - Pixelblaze crafters site so I know where to go to get help.

If they don’t cancel Burning Man again this year, I can finally try them out properly. Before any Burners comment, I know ski goggles are terrible for the Playa. The smaller profile of motorcycle goggles keep out the dust better and don’t fog up as bad. Still, I would not have been able to fit as many blinky light!

Microcontroller Contest

Participated in the
Microcontroller Contest