You might notice a couple of unusual things here:
- + and – are connected to opposite ends of the NeoPixel strip (using the extra end wires). This is a little trick to ensure more uniform color and brightness along its length. When a long strip is powered from just one end, the furthest pixels may be dim or tinted red.
- The Arduino draws power off the NeoPixel strip; there’s no split in the UBEC output. This saves some wiring, since the Arduino needs to connect to the input end of the strip anyway.
- There’s a 3-pin JST connector between the Arduino and NeoPixel strip. We don’t currently offer these for sale…you’ll either need to find one from a parts supplier such as Digikey or Mouser, or — once you’ve tested the NeoPixel strip and are 100% confident in its operation — you can cut the plug off the output end and use that for the Arduino side of the connection (you may need to splice in a little extra length to the wires).
Connected to the Arduino is a minimal “user interface” of one dial and one button. The dial sets the image brightness at startup, and then the painting speed after that. The button triggers playback of the image (repeatedly if held down).
These components could be installed directly on the prototyping area of the shield, provided cutouts are made in the enclosure. To offer more flexibility in how the paintbrush is used, we instead mounted these on a Perma-Proto board and ran wires. A 4-pin JST connector (a type we do carry) lets us swap out the control board for specialized variants.
The rotary encoder mentioned here is a complex and pricey option. Not for everyone, its explained on the last page of the guide. You can leave this out, or add a vestigial 3-pin JST connector to add this feature later.
To better fit the narrow clearance under the lid of the mint tin, the wires were routed on the underside of the shield rather than the top.
There’s a 3-pin JST connector for the LEDs, a 4-pin JST connector for the control board, and an optional second 3-pin JST for a rotary encoder.