final project go back

final project

  • physical manifestation of a decentralized network

  • - demonstrate p2p encrypted messaging; a user walks into the dome, records a message and watches their voice encrypt & decrypt above their heads in a sequence of binary encodings denoted by addressable LEDs located on the struts of the dome. I abondoned this idea becuase I felt it didn't incorperate all the skills I had learned throughout this course, so you can check out my exploration of networking & interfacing an ESP8266-12E and a RPi with a set of neopixels here.

    thank u, next: how to build a shoe in 48hrs

  • What does it do?
    - it's a shoe with LEDs that won't come apart as I dance ebcause the electronics are embedded. I was inspired at the last 99fridays of the (a giant monthly dance party at the Media Lab) to build something that would have a cushy sole for dancing and could be turned on/off "Dorothy-style". I talk more about it in the #considerations section.

  • Who's done what beforehand?
    - Someone LEDs on a shoe here
    - Someone else made a heel with embedded electronics here and Sam C. made a sole with capactive interaction here

  • What did you design?
    - custom fit sole mold
    - sole
    - shoe canvas cut
    - canvas design
    - flexy LED strip(s)
    - flexy patch circuit controller
    - switch board that outputs a pulsing LED sequence

  • What materials and components were used?

  • Material/Component Price Origin Reference
    1206 SMD LEDs 0.10-1.00 Digikey
    Copper Vinyl CBA Shop
    9V battery (and battery clip!) 2.00 amazon
    Various resistors 0.5-2.00 CBA Shop/Digikey
    3.3V Voltage regulator 0.5-2.00 CBA Shop/Digikey
    N-MOSFET 0.5-2.00 CBA Shop/Digikey
    ATTiny45 1.00-3.00 CBA Shop/Digikey
    Canvas/thread CBA Shop
    XTC-30 Epoxy Coating Smooth-on
    Smooth-On Eco-Flex 00-35 FAST Smooth-on
    Smooth-On Eco-Flex 00-50 (not as fast) Smooth-on

  • What parts and systems were made?
    - the shoe (mold for the sole, the sole, the canvas of the shoe)
    - the electronics (LED strip, controller)
  • What processes were used?
    - 3D scanning/modeling
    - 3D printing for random casting materials
    - 2D designing
    - computer controlled cutting
    - subtractive/additive modeling/molding/casting
    - electronics design/production/programming
    - embroidery/sewing
  • What questions were answered?
    - can you make a shoe in 48hrs? (YES!...kinda)
    - are embedding electronics in shoes useful? (Yes)
    - can you make a shoe from 3D scanning a different shoe? (Yes)
    - is the shoe structurally sound? (Yes...)
  • How was it evaluated?
    - quality of the canvas/sole bind (good)
    - diffusion of light in the smooth-on sole (realyl good!)
    - can I dance in this shoe? (TBD)
  • What are the implications?
    - shoes are one of those articles we take for granted every day...creating a shoe with a sole made me appreciate my shoe a little more.
  • what tasks have been completed, and what tasks remain?
    - trouble shoot more on the controller (ARGHHHH)
    - make the other shoe (with a similar, but optimized work flow with a couple different molds and a 3D print of my foot)
    - rechargable battery converter
    - battery strap (ankle?)
  • what has worked? what hasn't?
    - things that work: the shoe structure, the embedding of LED strips into the sole, the LEDs that pulse (with adafruit flora to test the code)
    - things that currently don't: the controller
  • what questions need to be resolved?
    - better method for creating foot shape with canvas material
  • what will happen when?
    - more troubleshooting for the controller (12/17)
    - different board design? (future)

  • 99fridays/Wizard Of Oz/Grandpa gif


    “The Wizard of Oz” is a lovely story that I grew up watching.


    Being from Florida [and growing up as a Disney child], I’ve seen these shoes in real life at one of the Disney parks. I took a hard pivot on my final project from this other thing to attempting to make a shoe loosely inspired by Dorothy’s Ruby Red heels she used for transportation. I was also inspired to pursue this project at the last 99fridays of the semester where I taped a strip of 3528 LED and the joy I felt with lit up feet dancing the night away…

    LED strip kept falling off while I was dancing...

    shoe issues Also this Grandpa gif

    controller circuit

    design goal: build a circuit that will controls LED strips with a switch. 1206 SMD LEDs requre 30mA an LED for max brightness. I don't need max brightness, so I'm using a 9V ~500mAh external battery to power the LED strip and ATTiny45. I used a 3.3V regulator to protect the Tiny and an N-Mosfet for LED strip control.

    p2p p2p p2p p2p

    round #1: i want the board to sit nested in the fabric of the shoe, so i turned to my trusted alley, the Roland vinyl cutter to make this board. p2p p2p p2p

    LED strips

    Below is the circuit and schematic for the vinyl cut strip. Calculation here is 15 SMD LEDs 1206 at 30mA per LED strip for max brightness according to the spec sheet

    Weeding LED strips

    LED strip solder

    dome dome

    vinyl cutting the strips


    don't forget to clean the blade before cutting!

    dome dome


    after creating plugging the jumper wires from the LED controller board into the USBTiny programmer, Neil’s ATTiny45 program was used to create a makefile for initial testing to make sure I could talk to the LED controller board. the first error I got was the dreaded rc = -1, which Ben the TA gave us a checklist to follow whenever we received such an error:
    • Board is milled correctly (traces are properly isolated).
    • No shorts between power and/or data lines.
    • No open circuits between t44 pins and corresponding connector pins.
    • Solder joints are in good condition.
    • No unintended solder bridges between adjacent pins / traces.
    • t44 is oriented correctly on board (check pin 1 indicator).
    • Required clock source is present on board (depending on how you set fuses) and in good condition.
    • No swapped data signals. (For instance, verify that MOSI goes to MOSI and MISO goes to MISO.)

    after going thorugh the checklist, we found that there is a short *sometimes* between VCC and GND. When there isn’t a short, avrdude found some content mismatch and gave up trying to fuse. Weird. Although I really wanted to see this circuit live on acetate for its flexible attributes that fit so nicely with fabric, I will be milling a board on the shopbot because there’s zero time left to play…

    round #2: milling the board on the ShopBot. note to future self (and all Mac 2012+ users). if you export your PNG from Eagle straight into mods, a funky sizing error will occur, so be sure to change whatever your DPI is to 2000 and make sure the size of the board makes sense before printing.

    boo mods yay mods controller dome

    UPDATE #1:the board was programmed...but avrdude still delivers the rc = -1...WHYYY. i checked all pins and connections and everything seems to be powered at a happy voltage...

    UPDATE #2: i programmed the Adafruit Flora with my simple program (located in at the repo link at the top of the page) and it works! The button press turns the pulsing LEDs on and off.

    //Oceane Boulais adapted from bildr
    //Released under the MIT License - Please reuse change and share
    //Simple code to output a PWM sine wave signal on pin 9 of ATTINY45 with a swtich 
    //(button) on 
    #define ledPin 0
    #define buttonPin 8
    // variables will change:
    int buttonState = 0;         // variable for reading the pushbutton status
    void setup(){
      //initialize button pin as input
      pinMode(buttonPin, INPUT);
      //initialize led pin as output
      pinMode(ledPin, OUTPUT);
    void loop(){
      // read the state of the pushbutton value:
      buttonState = digitalRead(buttonPin);
      // check if the pushbutton is pressed. If it is, then buttonState is HIGH and start pulse:
      if (buttonState == LOW) {
          for(int i = 0; i<360; i++){
            //convert 0-360 angle to radian (needed for sin function)
            float rad = DEG_TO_RAD * i;
            //calculate sin of angle as number between 0 and 255
            int sinOut = constrain((sin(rad) * 128) + 128, 0, 255); 
            analogWrite(ledPin, sinOut);
          }     }else {
        // turn LED off:
        digitalWrite(ledPin, HIGH);

    3D scan/print

    I needed to scan my shoe in order to get an idea of the shape that I should model aroud for a custom-fit sole. Here, I am modeling the negative component in Rhino and embossing the sole with text. Shout out to the Rhino wizard Sam R. for all the help on this powerful (but frustrating) platform!
    dome dome

    I printed out a small box for the LED strips to sit and cure in before placing them in the mold. I ended up not using it because placing them in the mold directly was much more effective...
    dome dome

    molding & casting

    molding CNC

    I bought some 2” thick dense insulation foam from Home Depot and secured it down to the sacrificial layer on the big ShopBot. Tom from the CBA shop helped set up the toolpaths and about 1.5hrs later, the custom mold came out!

    dome dome dome dome dome

    I got a little too agressive with removing the extra side pieces of the mold and accidentally cracked it in half. Luckly the crack fit nicely back together and I kept on molding! The pot time for the ecoflex is about 18m, but the cure time was 3hrs. I was able to take my foot out after about 45m (Note: although I didn't experience any thermal fluctuations while the Ecoflex was curing, Neil reminded me that it can be potentially very dangerous and unpredictable.)

    dome dome dome dome


    final product


    Although I couldn't get my microntrollers to work in time, I was able to upload the code to an Adafruit Flora to demonstrate the concept. I was frustrated that not everything came together, but ti was an enlightening process regardless. Note to future potential cobblers: soles made of Ecoflex are too squishy; a sturdier/less squishy substance would work better in the future!

    go back