In the continuing saga (Part 1, Part 2) of this NeoPixel-festooned Halloween costume…will quickly focus on just one narrow topic here. There’s an event this weekend, and if I really scramble might have something partly wearable by then (though Learn guide and further posts will still follow later). I’m in-between “prototype” and “finished” wiring at the moment and wanted to pass along some tips about wiring on big NeoPixel projects.
Over the years, between Adafruit and personal projects, I’ve put hundreds of NeoPixel strips into things. Not just the ready-wired fixed-length strips, but mostly cutting and assembling custom sizes from full reels. The NeoPXL8 library and associated hardware, with 8 strips in parallel, has accelerated this use.
It’s rare that I’ll hard-wire these strips directly to the microcontroller or driver. Strips sometimes take a bit of abuse…solder pads may crack, very occasionally a pixel may fail and not pass data to anything further down the line, so quick replacement is desirable. Mostly though, I often want the parts to be reusable in other things, as with this Halloween project where some of the LEDs could get re-used in a Christmas display later. Thus I’ll incorporate 3-pin JST SM connectors wherever possible.
So here’s a puzzle: given that the wires in this costume (and in the Holiday Icicles project) are all different lengths…is it preferable to have same-length pigtails on all the strips and varying length wires to the driver…or varying pigtail to each strip and same-length on the driver?
My preference, when possible, is same-length pigtails on the strips. Especially when re-using parts between projects, or building a few spare strips. It’s nothing about signal integrity (little difference), just convenience. If everything on the strips is the same size and length, interchangeability becomes much easier! Worst case, one might take a long strip and cut the tail end shorter, but the “head end” still fits all the same.
Another puzzle: JST connectors are “gendered” — there’s a pin end and a socket end. Better to have the pins on the strip or the driver side?
With most ready-made strips, including those from Adafruit, the industry seems to have largely standardized on putting the socket at the head end of the strip, and pins on the driver or the tail end. That’s convenient in that you can jam jumper wires right in for quick testing and prototyping.
In my own projects though, I always go the other way: pins at the head of the strip, socket on driver and/or tail end of strip. It’s for the same reason electrical extension cords are oriented the way they are: so there’s no live voltage on an exposed end. Although JST connectors are shrouded, a workbench is often cluttered in screwdrivers, nuts and bolts, solder blobs and other small bits that could get in there. I don’t recall an instance of this actually happening, but it’s a possibility. This does unfortunately mean that commercial LED strip testers/drivers won’t connect directly with my projects, so I tend to keep a couple blank pigtails around. It’s all just personal preference, not some law of nature.
None of this is likely an issue with occasional onesy-twosey NeoPixel projects, it’s just when things start to grow out of hand. Another practice I’ve gotten into is buying empty JST SH shrouds and pins in bulk from Digi-Key, and crimping my own connectors:
The ready-made JST pigtails are still really handy for the same-length strip ends mentioned earlier. But for the varying-length wiring harness end…in the past I’d solder and heat-shrink the opposite pigtail, but it’s cleaner (and, with practice, quicker) to crimp these. A good crimper tool isn’t cheap but is so worth it when working in bulk.
As things currently stand on the Halloween reaper project: NeoPixel strips are installed in the cloak, the prototype wiring harness (recycled from the Icicle Lights project) has been removed and replaced with final wires, next is to cut the ends to a uniform length and hook up to a NeoPXL8 FeatherWing.