Introduction: 3D Printer Status Jacket
Runner Up in the
Internet of Things Contest 2017
This jacket has 40 neopixels sewn to the back to display the status of the 40 3D Printers in Duke’s Innovation Co-Lab Studio. Each light corresponds to one printer and is either blue (in use), green (available), or red (offline) to show the real-time status of the printer. The printer status is retrieved via Duke’s Innovation Co-Lab’s 3D printer status API, documented here: http://apidocs.colab.duke.edu/.
Step 1: Supplies and Tools Needed
- PowerBoost 500 Charger
- Lithium Ion Battery – 3.7v 2000mAh
- Particle Photon
- Sewable shield for photon
- 40 Adafruit flora rgb smart neopixels
- Conductive thread
- Regular thread
- Tape (painters or masking)
- Scrap of fabric for battery pocket
- Hand sewing needles
- Sewing machine
Step 2: Assembling the Jacket: Planning
1. Plan the layout of the neopixels with tape. Leave room for a continuous power rail on each side.
2. Plan where the battery and photon will go. Make sure these will not be too uncomfortable when you have the jacket on, and that they are close to the beginning of the line of neopixels.
Step 3: Sew on the Battery Pocket
Cut a square of scrap fabric a little larger than your battery and attach it to the jacket on three sides, leaving the side closest to the photon shield open. I did this after completing the rest of the jacket, but it will be much easier if you do it before the neopixels are attached
Step 4: Create the Power Rails
To create the power rails, cut three long strands of conductive thread and sew over them with a zig-zag stich on the sewing machine. See here for more pictures. You will need one along each side of the neopixels, close enough to hand sew the pixels to.
After attaching all the neopixels, I realized that the resistance over such a long power line was high enough that it wasn't fully powering the neopixels furthest from the Photon. To fix this, I extended both rails to loop back around and connect in a complete circle.
Step 5: Attach Neopixels to Power Rails
To attach neopixels to the power rails, sew along the first power rail under the zig zag stitching, stopping at each neopixel to attach the hole marked +. Repeat on the second rail, sewing through the holes on the neopixels.
Step 6: Create Data Line
To create the data line, stitch small connections between the arrow holes on each pair of neopixels. All the arrows should face the same way, pointing away from the photon.
Step 7: Attach Photon Shield and Photon
Sew on the photon shield, connecting the positive power rail to the 3V3 pin, the negative to Ground, and the data to D7.
Step 8: Attach Charger
Sew on the powerboost charger, connecting the positive pin on the charger to VIN on the Photon and the negative pin on the charger to Ground on the Photon. Put the battery in the pocket and connect to the charger.
Step 9: Write the Code: Create a Webhook
Create a Particle webhook to get the printer status data from the api. Use the Response Template field to customize the data that is sent to be only what you need. My webhook details are in the attached images.
Step 10: Write Photon Code
Write code to initialize lights, check webhook periodically, parse the webhook results, and change light colors accordingly. For my jacket, the code is here.
Flash the code to the photon and watch your lights change.
Step 11: Tips and Potential Problems
1. Near the photon and charger, there are many connections that may need to cross each other. Be careful not to let threads touch, which will create short circuits. I handled this by passing the thread to the back of the fabric when it needed to cross another thread. Another approach that might work well is to use heat shrink around lines that need to cross.
2. The PowerBoost charger that I used isn’t made to be sewn, so it was difficult making connections to the pins with conductive thread.
3. It’s very important to make tight connections to each component with the conductive thread, so sew them down very carefully, or you’ll need to reinforce them over time.
We have a be nice policy.
Please be positive and constructive.