Introduction: Sound Reactive Equalizer Skirt
For a while, I've wanted to design a piece that interacts with sound. The Equalizer Skirt has integrated electronics which react to the noise level in its environment. The integrated LEDs are arranged as equalizer bars to highlight the sound-reactive behavior. Depending on the intensity of sound, only a few or all LEDs light up.
Integrating the right electronics without making them visible wasn't too easy since the skirt has a skin-tight fit. Also I wanted the Equalizer Skirt to look like a regular skirt without any holes in it whenever the lights are off. It took me some time finding the right LEDs and method, since pre-made LED-strips or LED-strands were too bulky and not flexible enough for the skirt.
Using conductive thread is usually an easy way to integrate electronics. However, when it comes to connecting multiple RGB LEDs to a strip the conductive thread's resistance is too high. The LEDs need to be sewn pretty close together otherwise they will start to flicker and/or show the wrong color.
In this instructable, I'll show you how to make a custom-made, very thin and flexible LED-strip as well as how to hook up the electronics and integrate the lights into the leather.
Step 1: The Design
This leather skirt has 5 columns with 3 to 6 lights each and 20 LEDs in total. The LEDs and electronics are attached to the inside of the skirt. The lights shine through holes in the top layer which are secured with eyelets and hot glue. Since the eyelets look like little studs, the skirt still looks nice even when the lights are off.
Step 2: Supplies
- or get a skirt
- 20 x RGB LEDs [type WS2812B] from SparkFun
- Microcontroller [Flora] from Adafruit
- Microphone Amplifier from Adafruit or SparkFun
- 3.7 - 5 V Battery from SparkFun or Amazon
- Flexible wire [silicone or PVC coated] from Adafruit
- Heat shrink
- 3 x Male jumper wires
- 3 x Female jumper wires
- 10 cm sticky-backed Velcro
20 x ¼” Eyelets
- Soldering iron
- Solder wire
- Eyelet tool kit
- Hot glue gun + glue
- Measuring tape
- Fabric chalk or pen
- Needle & thread
- Sewing machine
- Computer & USB-cable
- Soldering helping hands tool
- Crocodile snaps
- Wire crimp tool
Step 3: WS2812B RGB LEDs
In the picture above you can see 'naked' WS2812B RGB - SMD LEDs. Each LED is 5 x 5 mm small and has a red (R), a green (G) and a blue (B) LED as well as a tiny driver chip. WS2812B LEDs are addressable what means that you can control the color and brightness of each individual LED. Therefore, almost every imaginable pattern can be programmed.
Each LED has four soldering contacts: one for ground, one for power, and one for data input and one for data output. The ground pin is marked with a cut out edge on top of the LED, next to the ground pin is the data input pin. Diagonal across from data input is data output, which will be connected to the data input pin of the next LED. The last pin is the power pin. The data pins are necessary for transmitting the information about how bright and what color the LEDs should be.
If you need more information, go to Sparkfun's product page where you can find the datasheet, an hookup guide and an LED tutorial.
Step 4: Microphone Amplifier
The Electret Microphone Amplifier board from Adafruit comes with a 20-20KHz electret microphone as well as 3 soldering pins to connect it to a microcontroller. OUT needs to be connected with the microcontroller pin defined in the code, GND will be connected to ground and VCC to a power source between 2.4 - 5 V. Use the "quietest" power supply available on the board. On the Flora this would be the 3.3 V pin.
The Electret Microphone Amplifier is great for audio recording or audio-reactive projects like this LED skirt. You can find more information about the microphone in the Adafruit datasheet.
Step 5: Wearable Microcontroller
There are many wearable microcontrollers to choose from. You can find an overview of different boards in step 3 of the Jellyfish Skirt instructable. For this project a board with some more processing power and memory is necessary because the code is a little complex. Working with a smaller board will most likely be more complicated or won't work at all because there's not enough memory.
Step 6: Power Supply
Using power banks instead of "naked" lithium polymer (LiPo) batteries is safer because the battery is protected in an aluminium case. Power banks are also easier to recharge and handy in case you want to charge other devices like your phone. However, in this project I'm working with a "naked" lithium polymer battery because I need a small and flat battery. Since the skirt has a tight fit there isn't that much extra room for a big power bank.
The LiPo comes with a 2-pin JST connector, which can be plugged into the microcontroller. The battery has about 4.2 V when fully charged and dies at 3.0 V. The LEDs should run on a 5 V power supply but they also work with a 3.7 V battery.
Calculating the running time of your battery:
One LED draws about 60 mA (milliamps) of current. Imagine you have 20 LEDs on your strip, they will at most draw 1,200 mA in total. A 1200mAh (milliamp hours) battery can supply 1200mA for an hour; so if your battery has the capacity of 2,500 mAh the LEDs will light up for at least two hours:
2,500 mAh / 1,200 mA = 2.08 h
However, if you decided on a LiPo check out Sparkfun's LiPo Battery Care Tutorial first.
Step 7: Design and Sew the Skirt
The design is based on a classic skirt pattern with a high waist. There are two darts in both the front and back. On the back of the skirt I added a zipper and moved two (of the original four darts) into the center back. Because the LED-strip might itch a little, I'd also recommend sewing a lining into the skirt. I shortened the length of the skirt to 42 cm long. Check out this "how to sew a skirt" tutorial if you need some help.
In the end, the LED-strip as well as battery, microphone and microcontroller will be attached to the inside of the skirt. All-in-all it might be a little heavy for softer materials like cotton and the weight might pull on the fabric. For my skirt I used thin leather and had no such problem.
In case you don't want to sew your own skirt, just go ahead and use one you already have. Make sure the fabric is thick enough.
Step 8: Design LED Layout
Now think about how many LEDs you want to use for your skirt and where to attach them. The leather skirt has 20 LEDs in total. 5 columns with 3 to 6 LEDs each are arranged on the right side of the skirt. Since the LEDs will be sound reactive, I wanted them to look like equalizer bars.
Mark the LED spots on top of your skirt with some fabric chalk. Later on all LEDs will be connected in a line. The beginning of the LED-string will be in the center of the front of the skirt.
Step 9: Cut Holes Into Skirt
In the next step go ahead and integrate the eyelets into the top layer of the skirt [not the lining]. Cut a small hole into the fabric at every marked spot. Watch out: cut a small hole first and check if the eyelet fits inside. If the hole is even just a little too big, the eyelet will fall out.
Place the deeper eyelet onto the top layer of the skirt, through the hole. Hold on to the eyelet and carefully turn the skirt inside out.
Step 10: Insert Eyelets
Now place the metal (or sometimes rubber) mold underneath the top eyelet. Place the washer on top of the backside of the eyelet. Hold the stamp on top of the deeper eyelet and with a hammer, carefully bring the eyelet and washer into their permanent position. Repeat until all the eyelets are in the skirt.
Step 11: Solder First LED Onto Ground Wire
Now it's time to solder the individual lights together into an LED-string. Make sure to use very flexible wire because it will be easier to work with. Cut a wire long enough to connect all LEDs. This will be the continuous ground wire.
Use little scissors to remove a little bit of the plastic around the ground wire after the first 10 cm. Place the first LED inside the soldering helping tool facing down. Secure the ground wire inside the opposite clip. Move both clips together until the blank wire part is right next to the ground pin of the LED. Then push the hot soldering iron on top of the wire and ground pin and heat up for about two seconds. Take the solder wire and hold it right next to the soldering iron above the pin and blank wire. Then wait until some solder wire has melted and the LED has been secured to the wire. Remove the solder wire before the soldering iron and wait until the joint is cold.
Note: The shorter side of the wire (extra 10 cm) needs to be on the same side as the data IN pin. Otherwise, the LED-strip will be upside down and the data won't be able to travel in the right direction.
Step 12: Solder Some More
For the second LED, measure the distance between the first and the second eyelet of your skirt. Use small scissors to remove the silicone or PVC coating around wire where the second LED will be soldered on. Solder the second LED onto the ground wire and repeat until each eyelet has its own LED.
Step 13: Solder Power Wire Onto LED-strip
Cut a wire as long as the ground wire. This wire will be soldered onto the power pin (diagonally across from the ground pin) of the LEDs. Once again remove the silicone or PVC coating around the wire in the same spots and solder the wire onto the power pin.
Step 14: Solder Data Wire in Between LEDs
Now go ahead and solder individual, shorter wires in between the data pins of the LEDs. The data wire is cut between every light, so the data signal will run through the LED's chip before passing on to the next LED. You’ll need a data wire on the first LED of your strip (data IN pin) but no wire on the data out pin of your last LED.
Tip: It helps melting some solder wire over the ends of the wire before soldering the wires onto the pins.
Step 15: Download Arduino IDE, Install the Neopixel Library and Upload the Code
In case you haven’t worked with an Arduino microcontroller before, you'll need to download the Arduino IDE (Integrated Development Environment). This is software for writing programs and uploading them onto your Arduino microcontroller. The library comes with some basic example programs. You can download the software from the Arduino website. When working with the Flora, follow the steps on the Adafruit website to modify your Arduino IDE.
Since there is no example program in the Arduino library for RGB LEDs, you’ll need to download an additional library to work with. Adafruit's NeoPixel library is easy to understand and work with. Download the library here. Open the Arduino IDE and install the library by going to Manage Libraries. A window will open and you'll have to select the Adafruit zip file.
Now open a new sketch by going to File > New. Go to the LED Ampli-Tie page and copy and paste the code into your sketch. In the code, change the number of LEDs to the actual number of LEDs you're using in your project. You also need to define the pin your LED-strip will be connected to on the microcontroller and the pin for the microphone. Now select your microcontroller via Tools > Board. After connecting your microcontroller with a USB cable to your laptop, click on the arrow in the top left corner of the sketch. This will upload the program onto your microcontroller. If an orange error shows up in your sketch, copy the text and do a Google search to find a solution.
Note: The analog (A) pin doesn't necessary have the same number as the digital (D) pin. The digital pin numbers are written on the board. You can find the analog pin numbers on the Flora Pinout Diagram. The pin defined in your code for your microphone needs to be an analog pin - the LED-strip a digital pin.
Step 16: Test You LED-strip
First, prepare your microcontroller. You'll need to cut three female jumper wires and solder them onto your microcontroller. Solder the data wires onto the pins you defined in your code (I used D10 and D12 but you should be using D6 and D9 - those pins are already defined in the Ampli-Tie code). The two ground and power wires can be soldered onto one pin each. Secure the joints with some hot glue.
Then cut three male jumper wires and solder them onto the beginning of your LED-strip. Secure the joint with some heat shrink. It will help you connect and disconnect your lights from your board. It is also safer because the plug will come off before a wire rips off the board or LED-strip.This can easily happen when wearing electronics.
Now you can connect your LED-strip with the board and test it. I uploaded the NeoPixel strandest (program for lighting up the LEDs without a microphone) first to see if all the lights are working. You also need to connect the board to a LiPo or your computer for a power supply. As you can see in the picture I used crocodile snaps first.
Step 17: Prepare Your Microphone
Solder a wire onto each pin. Use the other three female jumper wires and solder those onto the ends of the wires. Then, upload the LED Ampli-Tie code onto your micocontroller. Remember to change the number of LEDs as well as the analog and digital pin in the code. Connect your lights and microphone with your board and test it.
Step 18: Integrate LEDs Into Skirt
When all LEDs are working you can go ahead and integrate the LEDs into your skirt. Turn the skirt inside out and put some hot glue around the first eyelet. Place the first LED (the side which lights up facing down) into the first eyelet on top of the glue. Then put some hot glue on top of the LED, let it cool down for a bit and push it down with your finger until cold. If the soldering joints aren't secured enough, put some more glue on top. Repeat until all LEDs are glued into an eyelet.
Step 19: Fill in Eyelets
After all of the LEDs are are glued into the eyelets, turn the skirt to the right side again and fill in the eyelets with hot glue. Carefully hold the hot glue gun a little above the eyelet and let some glue drip into the eyelet. For an even and smooth surface, slowly move the heat gun in circles while filling in the eyelet.
Step 20: Integrate Electronics Into Skirt
In the last step, cut three sticky-backed Velcro pieces: one for the microphone, one for the microcontroller and one for the battery. Stick the rough Velcro piece onto your electronics and the matching softer side inside your skirt onto the leather. It helps wearing the skirt and choosing a good spot for the electronics before sticking the velcro onto the leather.
Step 21: Wear Your Skirt
All set. Now you can plug in the battery, microphone and lights into your microcontroller and light up.
If you want to learn more about RGB LEDs and programming your own patterns, check out the FastLED library. For mapping your LEDs and adding switch buttons to your project, I recommend working with the RGBShades library from macetech.
In case you have any questions or something isn't clear, feel free to ask.
Enjoy wearing your lights!