Introduction: Musical Shoes
This project is a fun way to create beats while hitting the dance floor. It's also a great beginner level project that uses Arduino, bluetooth, and soft conductive fabric switches.
A few months back I came across an easy way to trigger sound files while being able to choose and change the sounds on a whim. I combined this with my love of making musical interfaces to create a fun and easy project to share.
How do they work? There are three soft switches made of conductive fabric on the bottom of each shoe that are connected to an Adafruit Feather Bluefruit 32u4 board. The board is programmed to be recognized as a bluetooth keyboard so whenever a switch is closed it's read as a keystroke. For example, when a switch closes it's the same as the "n" key getting hit on the computer's keyboard. These keystrokes are mapped to sound files using a piece of free software called Soundplant. The shoes wirelessly connect through bluetooth and each time you tap a toe or click a heel a sound file will play from the computer. Connect a bluetooth speaker to the computer to get louder and better sound!
Step 1: Gather Materials
Download the attached .zip file. This file contains the design files for the board holder and sole switches. It also has the Arduino sketches needed and lots of sound files for you to play with.
Pair of sneakers
Get enough to cover the bottom of the sneakers with a 3" border all around plus a little extra. I bought a piece of hide from my local leather store for $40 that would cover several pairs.
3/16 (5mm) Thick neoprene
Enough to cover the bottom of each shoe 1 time plus a little extra. I couldn't find neoprene so I ended up buying a generic foam-type performance fabric that is about 1/8" thick. Because it is a little thinner I got enough to cover the bottom of each shoe 2 times. If you can't get neoprene, the idea is to get a material that is firm, thick, and that will not wear down over time.
1/16 (1.5mm) Thick neoprene
USB cable A/MicroB to connect Feather to Computer
To comfortably fit in battery box. You can make the box larger to accommodate a battery with more capacity.
Locking connectors for 4 conductors or male/female headers (the headers may not stay together well while dancing)
Soldering iron and tools
Step 2: Find Awesome Dancers! (optional)
Or you can rock them yourself. I sought out some real dancers because I knew it would take some serious coordination and dancing know-how to get great rhythms. With some research, I was able to find two incredible professional dancers in the Bay Area:
Agatha Rupniewski AKA Agatron of IRON LOTUS Street Dance Company & BRS Dance Styles
Jenay "Shinobijaxx" Anolin of Mix'd Ingrdnts
With a short amount of time in the sneakers, they were able to make cool rhythms and pull some impressive shapes. Here are just a few short clips of them playing with the shoes. Make sure to check out the promo video on the Intro step. It was very hard to choose which clips to include. Hope you enjoy them!
Step 3: Prototype + Feedback
It's always best to start with a prototype when building something interactive. Since the shoes were to be identical I started by making and testing one shoe. I thought about some obvious places where the switches could be. I put one switch on the heel, the ball of the foot, and on the big toe. Everything got taped and velcroed together so it could be removed later. Make sure that the Vecro and tape are strong enough to hold things in place. You want the prototype to hold together well enough to get an accurate representation of the final build.
If the shoes are for you, then you will be making the decisions on where the switches go, how many, + more. I'm not a super good dancer so I looked to the dancers that I had found and contacted for this information. They tried them on did some shimmying and gave me their opinion. Based on their valuable feedback switches were moved and one switch on each foot was given an off/on switch so each shoe could go from three switches to just two. You can see where I marked some new switch placements in the photo above.
Step 4: How They Work
The circuit for each shoe is made of three switches. One switch can be turned "off" so the wearer does not activate it as they are dancing. This came from observing the shoes on the dancer and getting the feedback that simpler was better. This way if three sounds per foot turn out to be too much, one sound can be turned off leaving the toe and heel triggers.
The pair has six switches in total, each switch triggers one sample. The sample can be anything you want. The board used acts like a USB keyboard. I used Soundplant so I could use my own sounds but also tried out the keyboard controller in GarageBand. GarageBand worked but I wasn't able to load and use my own sounds.
Each shoe has a rechargeable LiPo battery with an on/off switch and connects wirelessly through Bluetooth to the computer.
Step 5: Make Sole Pattern
Trace the shoe's sole shape onto a piece of paper. This is your pattern for the neoprene sole you are going to put on the bottom of each shoe. Alternatively, you can print and use or alter the pattern given in the Gather Materials step.
Draw where each foot switch is going to be and what area you want the switch to cover. Cut out each marking and the sole shape.
Step 6: Cut Out Sole Sensor Sandwich
This pattern is used to make your sole sensor sandwich. The final layers are stacked in this order.
Let's make the center 3/16" layer first. Trace around the outer edge and around each switch on the thicker neoprene. My middle material is a little thinner than 3/16" neoprene so I cut an additional two middle layers from the 1/16" neoprene to stack the two together. Cut out the marked switches creating holes in this middle layer.
Now, on to the top and bottom layers. These layers will have the conductive fabric on them creating the contacts for each switch. Trace around the outer edge and around each hole for the three switches onto the 1/16" thick neoprene. Do not cut out the holes, only cut around the outer edge. My cuts are without the heel extension which I needed to add later. The pattern attached to this 'ible includes it!
Step 7: Iron on Soft Circuit
Use the holes cut from the paper pattern to trace a switch shape onto the white side of the conductive fabric. Draw a 1/4" border around the shape and cut out. Repeat with each switch cutting two for each switch that mirror each other. With three switches on each shoe, you should have a total of twelve in the end. Iron them on the top and bottom sole pieces over the markings you made.
The switch contacts are now in place! Time for the rest of the circuit. Cut strips of conductive fabric 3/16" wide. Each sole has top and bottom contacts. The bottom contacts all go to ground on the microcontroller so they all get connected. For the top contacts each gets connected to their own digital input pin on the microcontroller so they get their own trace.
First, place the three traces, cut the traces 1/2" from the extension's edge and iron down. Then connect each trace to its own contact.
Leave enough room on one side for the ground trace to lay, remember you do not want any of the traces to touch each other or a short circuit will occur. Connect all three contacts. Repeat for the other sole.
Step 8: Test Soft Circuit
After ironing the circuit check each connection with a multimeter especially all the points where you ironed fabric on top of itself.
After the connections are checked stack the layers of each sole together to get ready to test each switch. Stitch the layers together using a basting stitch. Clip an alligator lead to the one ground lead and one to one of the switch leads. Press to test, if you hear a beep readily the switch is working! If not, disassemble the layers and check your connections again.
If all the switches are working grab a needle and thread and stitch the layers together around the edge and up the heel extension stopping at the top of the traces. Your soles switches are ready!
Step 9: Add Female Connector
With three switches going to three digital in pins and one common ground, there are four traces in total that you need to connect to the Feather microcontroller. I built two pairs of shoes and needed to use the same two Feather and battery combos for each pair, so I put a connector between the sole circuit and board and battery.
To attach a connector to the sole circuit, cut a small piece of perfboard that is at least 4 rows wide and 3 holes long. Gather female and male crimp pins. Strip off 4 conductors of ribbon cable and cut a short length. Crimp the females pins on and slide them into the connector half with the lock on it. Solder the connector to the perfboard.
Using conductive thread sew each trace to a row on the perfboard.
Step 10: Solder Circuit
Solder the circuit as shown in the diagram. The switch on the ball of the foot is the only one that you can turn on and off individually. This is because it was the one that was easier to hit while standing idle in the shoes. The options gives the wearer more options.
The digital pins 2, 3, and 5 on the Feather connect to each switch contact on the top of the sole and the ground pin connects to all three on the bottom half of the sole. Solder the pushbutton between the battery and the connector taking note of what gets connected to the "in" and "out" pin.
Step 11: Add Male Connector
After the circuit is completed attach the male crimp pins to the end of the four conductor cable.
Step 12: Mold Leather
The switch sandwich goes on the outside of the shoe. It was tried on the inside but proved to be too sensitive. It turns out the actual sole of the shoe is a needed barrier between the switches and the force of the foot. This sandwich needs to be attached to the bottom of the shoe and protected. Veg tanned leather is a great material for this because it works well as a sole and can be molded around and up the shoe then sealed in place. Gather these items:
- plastic wrap
- medium sized bowl filled with warm water
- 1 - 2 towels
- veg tanned leather
- cutting tool
- ball-point pen
Trace the sole pattern onto the back of the leather then measure and mark a 1.5" - 2" border all around. Cut this piece out, flip it and use it to cut another piece from the leather.
Place the leather pieces in a bowl of warm water and let them soak for a minute. Take a piece out and squeeze out any excess water back into the bowl. Turn the shoe upside down and start to smooth and stretch the leather around the bottom of the shoe. Stretch the leather up and over the sole's edge creating a wall that travels up onto the side of the shoe all around. Smooth out any wrinkles that occur as best as you can, it doesn't have to be perfect. Secure the leather by tightly wrapping Saran Wrap around where the leather bends up the side of the shoe. Let dry overnight.
Step 13: Create Cases
The circuit and battery get tucked into a case which the on/off switch for power and the middle switch also get mounted to. The case can either be laser cut or by hand. To make sewing easier the holes are precut in the leather. I based my design on one made by my awesome leatherworking co-worker Mikaela Holmes. If cutting by hand the holes can be punched using an awl to making sewing a little easier.
Use a blade to carefully score where the creases are. Then fold the crease back to open it up and use the blade to shave off the corners of material created by the cut. This creates more room for the material to fold onto itself when bent in the directions it's meant to be. Next, pop in the power pushbutton and slide switch from the back. Press the pin on the slide switch outward so they lay flat. Use hot glue to secure them in place and put some electrical tape over the power switch to cover any exposed metal.
Double up some thread and knot the end. To begin thread the needle through the first set of holes, grab the end of the thread and make a square knot. Sew together the sides going through each set of holes multiple times. Glue velcro onto the flap so it securely closes over the hardware.
Step 14: Attach Sole Switches
There are three parts to the sole switch case, the molded bottom which you have already made, a strip of leather 1.5" wide and a semi-circle cut out. The strip should be as long as it takes to wrap it around the shoe's circumference where the sole meets and the semi-circle should be cut so it's large enough to cover the heel extension. You can cut out the strip and semi-circle later on.
Take the Saran Wrap off and remove the leather soles. Put the sole switches in them and see how they fit. The leather will be folded in some areas, that's ok. They need to be trimmed anyways. Trim the top edge off of the leather soles as much as you can while still leaving about 3/8" above the sole switch. This will clean things up a bit.
Grab the Barge glue and apply to the inside top edge of the leather sole and on the shoe's side where the sole overlaps. Press the leather sole onto the shoe smoothing out any wrinkles. Apply glue to the leather strip and cover the top edge of the sole with it all the way around to the back. Next, apply glue to the semi-circle and press that over the heel extension to cover it up and secure it to the shoe.
Step 15: Upload Sketch
Connect the board to the computer using a micro USB cable.
Double-click the rightFinal.ino and leftFinal.ino sketches found in the code folder downloaded in the GatheredMaterials step to open in the Arduino IDE. For the sake of convenience I've included one for each shoe but if you compare them the only differences are the characters they print when a switch is pressed. You will be told that each needs to live in a folder of the same name. Find the Arduino folder that holds all of your sketches and the two folders created. Drop a copy of the BluefruitConfig.h file in each folder. Hit the Verify button in the Arduino sketch window to check to see that it compiles with no errors. If you get an error check that you have a BluefruitConfig.h in your folders and close then reopen the Arduino IDE.
Connect the Feather to the computer via the USB cable and choose the correct board and port under the Tools menu. If you haven't used the Feather yet you will need to add the board through Arduino's board manager. Adafruit has a great tutorial on how to do this.
Upload the sketch and open the serial monitor. Open your computer's bluetooth preferences. The two Feathers will pop up as a device you can pair with. Choose to pair with both of them and connect to the devices. The blue lights on the boards will go on once they do. Once you pair the boards with your computer it will remember them, meaning when you turn one off and on again it will now automatically connect.
After you connect the boards, go back to the serial monitor and press a switch. A different character will print depending on what switch you press. Cool! The switches are working! A letter will also type in the text field at the top of the window.
Once that is working, plug in the battery and unplug the board from your computer to go wireless. Open a word editing document and press the switches. A character for each switch will type in the doc. Hooray! You have created a wireless keyboard... of sorts. :)
Step 16: Add Case With Circuit to Shoe
Clip the case connector to the one coming from the heel. Stick a length of 1" velcro to the back of the case and on the shoe where you want them to be. I recommend placing them out of the way like on the outer side so they don't get in the way while dancing.
When the battery runs out detach and charge via a micro USB cable using the charging circuit on the Feather
Step 17: Wear and Make Music!
Download Soundplant if you haven't already.
Open the Sound folder downloaded from the Gather Materials step. Drag and drop sound files on the "n", "v", "b", "d", "s", and "a" keys. The switches on the bottom on the shoes correspond to each of these characters. When pressed, each corresponding sample will trigger.
Have fun and make sure to share your creations and any videos of your very own DIY musical shoes!