Introduction: Light-up Shoe Attachments

These are shoe attachments that detect how much ambient light there is and light up in low light to make the wearer more visible to others! They're ideal for walking outside at night, whether you're running, going to the grocery store, or walking your dog. They're also intended to be adjustable, so multiple people can wear them, and you can fit them over different kinds of shoes.

I suggest reading through this whole thing and my notes/comments at the end before trying this; I think there's a lot of improvements that could be made.


Fabric for the straps

Fiber-optic fabric for the light-up portion

Micro:bit or other microcontroller (one for each shoe)

Super-bright LEDs (one for each shoe)

Ambient light sensors (one for each shoe)

Electrical wire


Electrical tape

Either more tape or heat-shrink tubing

To put things together:

Soldering iron and solder

Sewing machine and thread

Step 1: Measurements/Prototyping

Take measurements around your ankle and down the arch of your foot to get an idea of the dimensions you'll need for this project. This is what my prototype looked like; as you can see, I made the strip down the arch of my foot too short. I tried to fix this for my final version.

Step 2: Microcontroller Code

To start, check the range of your ambient light sensor, and how it responds to different levels of light. You'll want to attach it as an analog input so you get a range of values, rather than just 1 or 0.

The best way to do this depends on what kind of micro controller you're using. If you're using an Arduino or something similar, you can have the output go to a console on your computer, but if you're using a micro:bit, you can just have the output display on the micro:bit's LED array. Basically, though, you just want to take in the value from the ambient light sensor and output it somewhere you can check to see what values it gives in low light.

Mine gave an output of about 30-100 for low light, and less than 30 for no light. Use the values you get to calibrate when and how much you turn on your LED.

For the actual code, you'll want to map values in from the light sensor to values out to the LED. Make sure your LED is also connected as an analog output so you can change the brightness. (you can connect it as a digital output instead, if you just want it to turn on/off and not change brightness.)

When there's too much light (above 100 for me), output 0 (no light) to the LED.

When there's no light (below 30 for me), output 1023 (bright light) to the LED.

When light is between those two values, use a map function to map the brightness of the ambient light to the brightness of the LED. Dim ambient light should map to bright LED light, and bright ambient light should map to dim LED light. I'd also suggest using a floor function around the map function, since the map function will likely give you a lot more precision than you really need out of it.

In the end, my code looked like this. I'm using a micro:bit and javascript. Depending on your ambient light sensor, micro controller, and preferences, your code may look slightly different.

let n = 0
basic.forever(function () {

let a = pins.analogReadPin(AnalogPin.P1)

// Lower number -> Darker
// Higher number -> Lighter

if (a > 100) { // bright

n = 0

} else if (a < 30) { // dark

n = 1023

} else { // in between

n = Math.floor(, 30, 100, 1024, 0)) // map 30 to 1024, and 100 to 0


pins.analogWritePin(AnalogPin.P0, n)



Step 3: Circuit

First, split the ground to two wires. (This is because both the LED and light sensor need to connect to ground.)

Connect the LED to pin 0 (or whatever pin should output power to the LED), and one of the ground wires.

Connect the light sensor to pin 1 (or whatever pin is reading its input), 3V, and the other ground wire, according to the instructions for your light sensor.

I suggest doing these connections by soldering together the wires, so they're more permanent. However, be careful when putting the circuit into the straps later; the joints may break.

Once you've got the circuit soldered together, test it in a dark area of your house to make sure it still works.

Step 4: Dealing With the Fiber-optic Fabric

The fiber-optic fabric needs to have the bundle connected to the LED. Ideally, the fabric is the perfect size, but if it's not, you have two options: cut it or fold it to make it fit.

I personally prefer folding it, but I'll detail both methods and their pros/cons.

Step 5: Fiber-optic Fabric: Cut Method

Cut the fabric to slightly larger than the width you want. It tends to fray along the side, so you probably want to hem it as soon as you can- a serger is probably the easiest way to do this, but you could also try to fold some fabric over the edge to finish it. I don't suggest trying a rolled hem. (I left the edge raw, and it frayed past two of the fibers as I worked on it.)

Carefully cut up between two fibers until you get to the bundle at the top, and separate it into two bundles by cutting off the metal binding the fibers together. Once you've separated it, you need to re-bundle the fibers. This... is probably the hardest part of the project, in my opinion.

To re-bundle the fibers, most sources seem to suggest slipping heat shrink tubing over the fibers and carefully shrinking it. The problem with this is that you have to be very careful, and very patient. Fiber-optic fibers don't seem to play very well with heat, so it's easy for them to break, ruining one of the fibers going down the fabric, and there's a chance that the heat-shrink tubing will slip off the fibers.

You can also try to tape together the fibers into a bundle. The problem I ran into with this is that tape is much more free-form than heat-shrink tubing, so you may run into issues with getting all the fibers together in one place and getting light to all the fibers. Once the fibers are all bundled together, I suggest basting down a bit of bias tape or something over the top to protect the fibers.

You then need to attach the LED; you can do this with heat-shrink tubing (be careful; fiber optics don't like heat) or with tape. I suggest black electrical tape.

Step 6: Fiber-optic Fabric: Fold Method

With this method, you just fold the fabric into the dimensions you need. Folding it along the fibers is simple, and it lays fairly flat, since the fabric fibers fold well. Folding it against the fibers isn't the best idea, though; it results in an odd pillow-like shape. Since you wouldn't need to re-bundle the fibers, it may just be best to fold to the width you need and cut to the length you need.

Once you've folded to the right width/length, hand-sew the sides together to keep it from moving around.

You then need to attach the LED; you can do this with heat-shrink tubing (be careful; fiber optics don't like heat) or with tape. I suggest black electrical tape.

Step 7: [optional] Sanding the Fiber-optics

If you want, you can sand the fiber-optic fabric to try to make it show more light out the sides of the fibers. If you decide do this, here's my tips:

1. Sand lightly; the fabric is pretty delicate.

2. Sand parallel to the fiber-optics; if you sand perpendicular to them, you may tear the fabric.

3. Have patience; like I said, the fabric is delicate, and you want to make sure you don't tear it.

I used a 220 grit sanding block, which seemed to work, but YMMV.

Step 8: Making the Fabric Straps

Using measurements from step 1, you need to make a wide strap that fits around your ankle.

One side of the strap holds the micro controller and circuit, while the other just holds it around your ankle.

For the first side, measure around your circuit; you need to make sure it will fit in there comfortably. I didn't solder before making the straps, and that made fitting the circuit in the straps difficult.

On the outside of this strap, I put two small ribbons in loops to hold the battery pack. I left one side of the pouch open when first sewing it because I had to hand-sew it on the fiber-optic fabric, and needed an opening for the light sensor and fiber-optic bundle to go through.

On the inside of the micro controller pouch and the outside of the long strip, put velcro so you can easily put this on.

I suggest hand-sewing the straps to the fiber-optic fabric. Try it on once you've got the straps sewn on to make sure it fits, and take it to a dark area in your house to make sure the circuit still works. If the circuit isn't working, check the solder joints to make sure they didn't come apart, and make sure you're not getting a short anywhere in your circuit.

Step 9: Complete + Comments

The project is now complete! It didn't turn out quite as bright as I'd hoped- fiber-optic fabric is a tough material to work with- but I hope you found this helpful!

If I were to do this again, I'd definitely look into using EL wire or a different kind of fiber-optics; the fabric is very pretty, but not very bright, and it's not very sturdy. I'm not sure how well it would hold up to lots of movement.