Though the circuit isn’t complex, it needs to fit into a very tiny space. You’ll need sharp tools in good shape, wire in multiple gauges (26 ga for power, 30 ga for signals), stinky adhesives and — most of all — patience and perseverance.
Also, heads up: this requires really solid soldering. Poi get dropped, they collide and they smack into things. The plastic soda capsule that’s so useful against moisture and playa dust does nothing to reduce physical shock. Cold solder joints — where solder beads up on the surface, not flowing smoothly between parts — will not withstand shock. Connections will break (often invisibly) and your poi will misbehave or stop working entirely, and you’ll be sad. The Adafruit Guide to Excellent Soldering demonstrates some good solder joints vs. duds.
Okay! No more doom & gloom, let’s get on with this thing!
The circuit consists of two 16-pixel DotStar strips, the Trinket microcontroller, LiPoly battery and packpack, and a single button and switch. Charging and programming are through the USB port.
Before doing any soldering or other work, do this: using a small dab of E6000 glue or 5 minute epoxy, reinforce the wires coming off the LiPoly battery. We’ll make a sharp bend there later and don’t want the wires breaking off.
Peel the tape up a little and get the glue underneath, where the wires connect to the board. Don’t let the metal E6000 tube contact the terminals! Set aside to dry completely.
If you don’t already have the DotStar library for Arduino installed, skip ahead to the “Code” page for a moment and set that up, then return here. Go ahead and download the poi software as long as you’re there.
If you peer closely at the LED strip you’ll see the + and – connections are labeled, and arrows show the direction of data from “in” to “out” … but these 144 LED/m DotStar strips are packed so tightly, there’s no space for “data in” or “clock in” labels!
Manufacturers make production changes from time to time…so rather than give you a specific pinout, it’s best if you decipher it and make a note for yourself to refer to later…
Use jumper wires and a spare Arduino if you have one, else you can solder temporary connections to the Trinket board.
+ and – connect to 5V and GND on the Arduino (or USB+ and GND on Trinket).
Load up the the strandtest example sketch included with the DotStar library.
Change the 'NUMPIXELS' value to 64 (enough LEDs for two poi). Just below this, you’ll see 'DATAPIN' and 'CLOCKPIN'. If using a Trinket, change these to 1 and 2. Then connect wires from the two defined pins to the two free connections on the strip. Press the upload button to transfer the code to the Arduino board.
If the strip lights up, fantastic! Now you know the positions of the clock & data pins relative to + and –. Write it down!
It’s normal for just the first section of the strip to cycle colors, not the whole thing, and you’ll see one white pixel at the end of the lit section.
If the strip does not light up, either switch the two wires, or switch the two numbers in the code (and upload again). If it still doesn’t light up, try connecting at the opposite end of the strip (you might also need to try the clock/data swap again at this end).
If no combination seems to work, start a new thread in the Adafruit Forums for help. Please try to provide at least one photo that clearly shows your connections between the strip and Arduino, and any other relevant information you can provide (computer operating system, version of Arduino IDE, etc.).
When it works and you have your notes, disconnect all the wires.
Now open the 'poi' sketch (if you didn’t download this before, skip ahead to the “Code” page for the link). Select Tools→Board→Adafruit Trinket 16 MHz, plug a USB cable into one of your Trinket boards and then press the Upload button. Repeat with the second board. This pre-loading step will make it easier to test the electronics later before everything’s sealed up.
Using snips or a hobby knife, cut and peel the rubber coating off the DotStar strip. The ends of the strip are sealed with a rubbery glue that peels away with enough scraping and swearing.
The wires can be desoldered from the strip and the ends cleaned up with a Q-tip dipped in rubbing alcohol. Or if it’s easier, you can just sacrifice one LED and clip it (and the wires) off the end (there’s a few more LEDs than we need for the poi).
For each poi you’re making, cut two 16-pixel segments from the strip. These tightly-packed strips have only one set of solder pads between LEDs…you’ll want to make cuts so the pads remain on the INPUT end of each segment…pads aren’t needed on the output end.
Double…no, triple check that you are cutting sixteen (16) LEDs and leaving pads on the INPUT end!
Trim the corners away to help it fit the end of the tube. This might not be 100% necessary, but it’s one of those nice touches like a sandwich cut diagonally.
Use a hobby knife or a file to scratch away the trace between these two solder pads on the LiPoly backpack.
Parts suppliers change from time to time. If your power switches have these really long legs, clip them down to about half their length (~1/8" or 3mm is good).
Test fit the switch and pushbutton in the cutaways at the bottom of the 3D printed insert. Use a file to clear away any support material or cruft that interferes with their positioning. Both of these parts should be slightly recessed, their tips sitting flush with the bottom face — not protruding — test by pressing down against your work surface.
The button might be a little wobbly. That’s okay, we’ll glue the snot out of it later.
Before we do any soldering, let’s lay out all the pieces to familiarize ourselves with the plan…see where every piece fits and do any last-minute cleanup of the 3D printed parts.
- The flat areas on the insert are where the LED strips will go, with the input pads toward the tip.
- There’s a slot at the tip where the Trinket board will nestle.
- Another slot mid-way holds the LiPoly backpack. The edge of this board needs to sit juuuust flush with the edge of the insert…if it protrudes, there’s probably still some plastic cruft still to be scraped away in the slot. The battery connector should point “down,” toward the base.
- The battery slots into the base, with the wires pointed “out.” Be sure there’s no stabby plastic residue in the slot…file it smooth if necessary.
- Switch and button were already test-fit, you know where those go.
Prep work done! Flick on your soldering iron for the next phase…