This is roughly what we’re aiming for:
In the NeoPixel Painter guide, I recommended 3/4" pine molding for a frame and white elastic as a diffuser. For most people, if you’re building a 1-meter DotStar Pi Painter, this is still the best approach…these materials are the easiest to acquire and work with.
For the giant 2-meter painter, the same pine molding felt just a little too flexy, but thicker 1" stuff was heavy. I opted for 1" aluminum square tubing…extremely light and stiff, and wires could be run down the middle…but in hindsight, simple old wood really is fine. I’m just stubborn and spent way too long finishing the project with aluminum. Use whatever material you’re comfortable working with.
One construction element that has improved since the prior guide is 3D printing, and I used it every opportunity for enclosures and other parts. You really don’t need 3D printing though…all that stuff in the NeoPixel guide about mint tins and improvised parts is still 100% relevant!
Batteries too have changed, with high-current, high-capacity USB battery banks (for charging tablets, etc.) now much more common. We’ll use this instead of the Neopixel Painter’s NiMH + UBEC arrangement (though that’s still a viable option too, if you already have parts around).
For a 1-meter DotStar Pi Painter, using a USB power bank with two outputs, plan for wiring something like this:
For illustration purposes only; not to scale. Not shown here, the level-shifter chip should be mounted on a Perma-Proto Pi HAT (or a solderless breadboard is OK while prototyping & testing). Additional connections like the controls and halt button aren’t shown here (we’ll get to that later). Some points of interest here:
- Connect LED strip to the higher-current USB port.
- Use beefy 18 gauge wire for power, to minimize voltage drop. Narrower-gauge wire is fine for everything else.
- +5V and ground are connected at opposite ends of the LED strip. Doesn’t matter which. This is on purpose and ensures more uniform power to all LEDs.
- The 74AHCT125 chip Vcc is connected to the + wire on the LED strip, not 5V from the Raspberry Pi.
- Ground is linked between the Raspberry Pi and the LED parts of the circuit, but keep the 5V supplies separate.
- Try to minimize the distance between the Pi, level shifter and LED strip input; high-speed SPI signals fare best over short distances. To help keep it upright and stable, install the Pi at the bottom of the frame with the data direction arrows pointing upward.
Use USB DIY connector shells (Type A male) for power, do not hack up old USB cables for this…most have narrow-gauge power wires and can’t handle a lot of current.
The outer two pins carry power. Get the polarity correct or there will be…trouble.
You may need to Dremel or file the exit channel slightly to accommodate 18 gauge wires.
After soldering and testing polarity with a multimeter, I secured everything with 5-minute epoxy to provide some strain relief, then closed and clamped the shells.
It’s OK to use a regular USB cable for powering the Raspberry Pi…but it sticks out the side and might get accidentally unplugged. The custom DIY cable can go straight to any 5V and ground points on the Perma-Proto Pi HAT and makes for a neater package.
Things are changed slightly for a 2-meter painter:
+5V and ground connect near the middle of the strip rather than the ends. This is possible since the LEDs strips were previously unsheathed.
Again the 74AHCT125 is powered from the LED strip, not the Raspberry Pi. Doing this wrong could possibly damage the first LED on the strip!
See notes on Assembly Part 3 page about power; with an optional second battery bank powering just the Raspberry Pi, you can crank up the brightness of the LEDs!
This photo is from the NeoPixel Painter guide, but the idea is the same here: LED strip is secured to the frame with Permatex 66B adhesive or with carpet tape.
With a wooden frame, wires can be carefully stapled in place.
Since my LED strip was unsheathed, and the support frame was conductive aluminum, I 3D-printed a bunch of these channel pieces. This was time-consuming and ridiculous overkill and is why I’d suggest the wooden frame.
An opaque enclosure for the Raspberry Pi is vital — it prevents LEDs on the board from making light streaks in photographs. This one is 3D-printed from a design on Thingiverse, but you can use a ready-made case or improvise something from cardboard or a mint tin.
The lid pops off to access the halt button…a small tactile switch between GPIO21 and ground. Here you can spot the 74AHCT125 level-shifter chip on the Perma-Proto HAT.
Every DotStar Painter will be unique, built from your personal skill set and materials on hand. On the chance that some of the 3D files are useful to anyone else, they’re available on Thingiverse:
The Pi enclosure is derived from the Raspberry Pi B+ Face Case.
There’s still lots more to do, but first…
Double-check your connections, power it up (push the button on the USB power bank to turn it on) and be ready to pull the plugs if you observe a “blue smoke” problem. If everything looks good, log in and try the strandtest script again:
cd DotStarPiPainter python3 strandtest.py
cd DotStarPiPainter python3 strandtest.py
You should see the red-green-blue light sequence down the entire strip again. If not, review the troubleshooting steps on the prior page.
Yes, this is actually from the light painter, it’s not just a copied-and-pasted overlay.