DIY Light-Up Kicks
2017-10-02 | By SparkFun Electronics
License: See Original Project Wearables Arduino
Courtesy of SparkFun
Introduction
The DIY Light-Up Kicks are high top sneakers embedded with a WS2812 Addressable LED Strip and a Qduino Mini Microcontroller. The LEDs are easily programmable and re-programmable for countless customizations of color, pattern, and animation. In this tutorial, we will go through the step-by-step process of building this project.
Required Materials
To follow along with this guide, you will need the following:
- (2) Lithium-Ion Battery – 850 mAh
- (2) Qduino Mini – Arduino Dev Board
- Hook-up Wire – White (22 AWG)
- LED RGB Strip – Addressable, Sealed (1m)
You Will Also Need:
- High Top Sneakers (Cloth or canvas is preferable to leather)
- Soldering Iron
- Solder
- Wire Cutters
- Wire Strippers
- Super Glue
- Hot Glue Sticks
- Hot Glue Gun
- White Felt
- Scissors
- Needle and Thread
- Velcro
Suggested Reading
If you aren’t familiar with the following concepts, we recommend checking out these tutorials before continuing.
- How to Solder: Through-Hole Soldering: This tutorial covers everything you need to know about through-hole soldering.
- Installing an Arduino Library: How do I install a custom Arduino library? It's easy!
- Working with Wire: How to strip, crimp and work with wire.
- What is an Arduino?: What is this 'Arduino' thing anyway?
- Installing Arduino IDE: A step-by-step guide to installing and testing the Arduino software on Windows, Mac, and Linux.
- Light-Emitting Diodes (LEDs): Learn the basics of LEDs as well as some more advanced topics to help you calculate requirements for projects containing many LEDs.
- Addressable LED Strip Hookup Guide: Add blinking lights to any holiday decoration with our Holiday Lights Kit.
Hardware Overview
The two main components that the Light-Up Kicks use are the following:
- Qduino Mini - Arduino Dev Board
- WS2812 Addressable RGB LED Strip
The brains behind the Light-Up Kicks are a set of Qduino Mini - Arduino Dev Boards, a small Arduino-compatible microcontroller that includes a switch AND a LiPo battery connector.
Qduino Mini Technical Specifications:
This board also features:
- SPI, I2C, UART available
- Two RGB LEDs built-in - one for Charge Status, TX, RX, and the other user programmable
- AP2112K 3.3V 600mA Regulator
- MCP73831 LiPo Battery Charger
- MAX17048 LiPo Battery Fuel Gauge
WS2812 Addressable RGB LED Strip
The WS2812 Addressable LED Strip is a long strip with WS2812 RGB LEDs. Each individual LED is addressable through your microcontroller. They are preterminated with 0.1" spaced 3-pin connectors as well as a 2 wire power connector. Hooking these LEDs up to a microcontroller can be done by either soldering leads to the connection pads or using the existing wire power connectors. DIN should always connect to a digital pin which will be assigned to the LED strip in your code. VCC and GND can connect to their respective pads on the Qduino Mini. A longer strip might need a more powerful or separate power source than this project requires.
Note: It is usually advised to include a small smoothing capacitor in between VCC and GND of your LED strip to protect the first few LEDs from power surges. While it is suggested to use the smoothing capacitor with the addressable LEDs, the LiPo battery provides sufficient power to the addressable LEDs without any fluctuations in current drawn by the LED strip. In this setup, it is not necessary to use a capacitor.
Software Installation
Arduino IDE
The Qduino Mini - Arduino Dev Board is programmable via the Arduino IDE. If this is your first time using Arduino, please review our tutorial on installing the Arduino IDE.
Qduino Drivers and Board Add-On
If this is your first time working with the Qduino, you will need to add the board through the board’s manager to your program. Please visit the Qduino hookup guide for detailed instructions on installing drivers and programming a Qduino via the Arduino IDE.
Addressable LED Library
If this is your first time working with addressable LEDs, you will also need to download the Adafruit Neopixel Library. For Arduino IDE users, click on the button below to download a copy of the NeoPixel library along with some example code SparkFun has created.
DOWNLOAD ZIP FILE: NEOPIXEL LIBRARY
If you have not previously installed an Arduino library, please check out our installation guide.
Example Code
The below code is designed to animate a strip of 39 addressable LEDs. In order to test before soldering, our first step will be to program the microcontrollers.
/******************************************************************************
LED Sneakers by
Melissa Felderman @ SparkFun Electronics
This sketch directly lifts code from Adafruits Neopixel Library.
To learn more about the neopixel library and to view more sample code,
please visit here:
https://learn.adafruit.com/adafruit-neopixel-uberguide/overview
*****************************************************************************/
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 6
int numPix = 39 //UPDATE THIS WITH THE NUMBER OF LEDs ON YOUR STRIP
Adafruit_NeoPixel strip = Adafruit_NeoPixel(numPix, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin();
strip.show(); // Initialize all pixels to 'off'
}
void loop() {
rainbow(20);
rainbowCycle(20);
theaterChaseRainbow(50);
}
void rainbow(uint8_t wait) {
uint16_t i, j;
for(j=0; j<256; j++) {
for(i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, Wheel((i+j) & 255));
}
strip.show();
delay(wait);
}
}
// Slightly different, this makes the rainbow equally distributed throughout
void rainbowCycle(uint8_t wait) {
uint16_t i, j;
for(j=0; j<256*5; j++) { // 5 cycles of all colors on wheel
for(i=0; i< strip.numPixels(); i++) {
strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
}
strip.show();
delay(wait);
}
}
//Theatre-style crawling lights with rainbow effect
void theaterChaseRainbow(uint8_t wait) {
for (int j=0; j < 256; j++) { // cycle all 256 colors in the wheel
for (int q=0; q < 3; q++) {
for (int i=0; i < strip.numPixels(); i=i+3) {
strip.setPixelColor(i+q, Wheel( (i+j) % 255)); //turn every third pixel on
}
strip.show();
delay(wait);
for (int i=0; i < strip.numPixels(); i=i+3) {
strip.setPixelColor(i+q, 0); //turn every third pixel off
}
}
}
}
// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
WheelPos = 255 - WheelPos;
if(WheelPos < 85) {
return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
}
if(WheelPos < 170) {
WheelPos -= 85;
return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
}
WheelPos -= 170;
return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
}
When you are ready, copy and paste the below program into a new window in your Arduino IDE. Update the value for int numPix to reflect the number of pixels on your strip around the shoe's sole. Make sure the correct board is selected by going to Tools > Board > Qduino Mini. Then, connect your Qduino to your computer via USB. Turn it on, and select the active port from Tools > Port. Now all you need to do is upload the program to your Qduino by hitting the upload button!
Testing Your Code
To test the program before putting it together on the shoe, try using a combination of IC hooks, alligator clips, and jumper wires to create the circuit shown below and turn on your Qduino. Make sure to connect the LiPo battery to the Qduino for sufficient power. If the LEDs animate with rainbow patterns, you are ready to move on!
Having a hard time seeing the circuit? Click on the wiring diagram for a closer look.
Since each shoe will have a Qduino attached to control its own set of addressable LEDs, make sure to upload code to the second Qduino. Follow the steps to upload code. make sure to have the correct board and COM port selected when uploading to the second Qduino.
Putting It Together
Now that we have tested our program with our parts, it’s time to put everything together.
STEP 1:
Measure the length of your shoe’s sole with the LED strip. While taking note of the length, cut one LED strip to the desired shoe length between the gold pads. Cut part of the flexible silicon jacket that is used to seal the addressable LED strip so that there is room to solder to the pads.
Then cut three pieces of hook-up wire, around 3-4 inches each. Strip a tiny bit at one end of each piece.
Solder each wire to each of the three pads on the LED strip.
Heads up! Make sure to solder to the DIN pad and not the DOUT pad on the opposite side of the strip. The strip will not work if you have connected to DOUT.
STEP 2:
Remove the backing from the clear rubber protection around the LED strip. Starting with the soldered pads at the inner heel, begin to wrap the strip around the shoe sole. While the clear rubber does have some adhesive on the back - it is not enough to weather walking. Use super glue to make sure the LED strip is secured to the shoe sole.
STEP 3:
Make a small hole in the shoe directly above the end of the strip with the leads attached.
STEP 4:
Thread the soldered leads through the hole from the outside to the inside of the shoe.
STEP 5:
Glue the programmed Qduino to the inner ankle area, making sure to place it in a way that it will not rub against your body.
STEP 6:
The following diagram illustrates the circuit we will be putting together visually.
Having a hard time seeing the circuit? Click on the wiring diagram for a closer look.
Carefully solder the LED strip leads to the Qduino.
STEP 7:
Insulate all exposed wire and solder with hot glue.
STEP 8:
Add a small piece of Velcro to the outer side of the shoe, directly on top of the area with the Qduino glued on the other side.
STEP 9:
Add the complimentary piece of Velcro to one side of your battery.
*PLEASE NOTE: It is never a good idea to apply heat to a LiPo battery using a hot glue gun. A safer solution is to secure the battery with Velcro.
STEP 10:
Poke another hole in the shoe, this time right below your Qduino.
STEP 11:
Thread the battery leads through the new hole from the outside to the inside.
STEP 12:
Attach the battery to the outer side of the shoe via the Velcro.
STEP 13:
Connect the battery to the Qduino via the JST connector.
STEP 14:
Cut out two small patches of white felt. One should be slightly larger than the Qduino and one slightly larger than the battery.
STEP 15:
Sew or super glue the felt patched over your electronics, protecting them from the elements as well as protecting your ankles from scratching against the hardware.
STEP 16:
Repeat steps 1-16 for the other shoe.
STEP 17:
Use the switch on the Qduino to turn your shoes on, and enjoy!
Resources and Going Further
Now that you’ve successfully made your own DIY Light-Up Kicks, it’s time to design your own LED animation! If you’d like to learn more about the QDuino Mini or the Neopixels, you should check out these links:
- NeoPixel Library (ZIP)
- Qduino Mini Quickstart Guide
- Qduino Mini GitHub Repository
- Adafruit NeoPixel Überguide (PDF)
- Adafruit NeoPixel GitHub Repository
Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.
Visit TechForum