The electronics for this project are fairly straight forward. The whole thing is powered by the Circuit Playground Bluefruit board and then we'll be daisy chaining 12 NeoPixel buttons to the Circuit Playground. The NeoPixel buttons are a really great way to freely place your NeoPixels throughout your project while keeping everything really compact. The PCB features the surface mount pixels that you've come to know and love on the NeoPixel strips along with a resistor and capacitor on top, which means that you don't have to build out that circuit in your wiring. On the back there are six pads: 5V in, GND in, DATA in, 5V out, GND out and DATA out. This makes soldering really straight forward. And speaking of soldering…
When you have a lot of small components to solder together across a large area, it can be a little intimidating, but fear not! I have a strategy for getting all these pixelated NeoPixels connected up and rainbow swirling in no time.
Take the 3D printed mounts and mount all of the NeoPixel buttons into the inner NeoPixel slot so that the back of the button is flush with the back of the mount.
Then, take your plastic bauble and place them in the drilled holes in the tree, mounting them in place with the 3D printed mounts. Your NeoPixels should all be facing out into the baubles.
This is a great opportunity to figure out the order of your NeoPixels and number them with some faint pencil right on the back of tree. This will help with wiring and coding.
Now we can get into the wiring. Take your wire spool and pull out wire between the first two NeoPixels to figure out the correct length between the outputs from the first NeoPixel and inputs on the second NeoPixel. I recommend working with one signal at a time. Continue this for the remaining NeoPixels and once you have all the wire cut for one signal, strip the ends of each piece so that they'll be ready for tinning and soldering.
On the NeoPixel buttons, tin the pads for the signal you're working with. Then, starting either at the beginning or end of your NeoPixel button chain, tin your first piece of wire and solder the ends to the tinned pads on the NeoPixel button. Continue this process for the entire signal flow and then repeat for the two remaining signals, paying close attention to your NeoPixel order; especially with the DATA signal.
We'll be using three pads on the Circuit Playground Bluefruit: GND, VOUT and A1, to connect to our NeoPixels. VOUT is the 5V power output, which the NeoPixels need and A1 will be data out. All three of these pads are on the same side of the Circuit Playground so it will make wire management a little easier. First tin the pads on the Circuit Playground and then cut three pieces of wire long enough to reach the first NeoPixel at the top of the tree when the Circuit Playground is mounted in the star at the top. Strip and tin those pieces of wire and then solder them to the Circuit Playground pads.
Next, take your 3D printed star case and mount the Circuit Playground Bluefruit into the case, running the three wires through the back cutout. Then attach the star to the top of the tree. Tin the input pads on the first NeoPixel and then solder the three wires from the Circuit Playground Bluefruit to the input pads on the NeoPixel.
You may want to take this opportunity to check the continuity of your circuit with a multimeter to make sure you don't have any loose or missed connections.
One final touch for the Circuit Playground Bluefruit is to add a power switch and a power input extension via a JST connector; the same size that fits into the battery input on the CircuitPlayground. Take a slide switch one pin to the power wire on the JST input connector and a second pin to the power wire on the JST output connector. Use one wire to connect GND between the two JST connectors.
With the Circuit Playground Bluefruit outside of the star case, slot the slide switch into the cutout in the back. Connect the JST output in our power circuit to the JST input on the Circuit Playground Bluefruit. This allows us to comfortably plug-in a LiPo battery that can sit behind the Circuit Playground inside the case or run the wiring out the back to receive power in a different way. Most importantly though, we have a way to turn the whole tree on or off via a hardware switch.