Intro: Make a Pixel Star String
So, it's now the post-(insert holiday reference here) home lighting season and you're eyeing the decorations you painstakingly/haphazardly erected/threw-up and hinting to your significant other "It sure would be nice to have these up come next July... it would be sooooo festive!" only to be met with that icy stare, and you are thinking how the display can be improved come next year(c'mon, work with me here). Most of you probably got a 3D printer as a gift and you're wondering "What should be my first project". Well, I'm here to save your brain from all that pesky activity and give you an Instructable filled with 3D printer watching (invite your friends), tedious part fabrication, acrid solder fumes, Arduinoing (is that a word?) frenzy and even more tedious wire cutting and preparation.
It all started a couple of months ago, when my wife and I were taking stock of our inventory of exterior lighting when we discovered that one of the star-shaped strings of incandescent lights had a burned-out lamp. Being an expert in this field, I immediately procured a new bulb and replaced it. Upon powering up and re-testing the offending string, (que "Jaws" music) the entire section of that color suffered what we in the field of Incandescent Holiday Lighting (IHC) refer to as "cascade failure" wherein all the lamps Burn Out (BO) at once. At this point, being faced with replacing all 30 lamps (that's Thirty - with a capital "T"), I decided to spend the next 3 days designing my own 3D printed version using State of the Art (SOTA) LEDs and an additional five days fabricating and assembling my own String O' Stars (SOS). My wife expressed doubts as to the efficacy of the trade-off between replacing the lamps and the design/fabrication cycle but I was not deterred. The following are the steps which will allow you, fellow Instructable enthusiast, to follow in my triumph.(or folly depending on which one of us you agree with-HW(his wife).
Step 1: What You Will Need.
Parts List, controller star:
- 1 3D printed compartmented star hub
- 1 3D printed star hub cap
- 1 3D printed star hub programming port plug
- 1 Arduino controller (Pro Mini) per string
- 1 5 or 12 volt, 2 Amp wall power supply (the so-called "Wall Wart")
- Silicone sealant – optional
- FTDI programming interface
Parts List, all stars
- 1 3D printed star hanger/LED holder
- 9 3D printed star LED holder
- 5 3 mm X 50 mm spoke rod
- 5 3 mm X 100 mm spoke rod
- 1 10 element string of WS2811, IP68, 5 or 12 volt programmable LEDs (depending on the power supply)
- 3 conductor ribbon cable
- 5 minute epoxy
The 5 volt power supply must source enough current to drive the number of stars in your string. Using the basic program provided here (which limits the LED brightness to 50%), I have driven 19 stars with a 2 amp "wall wart" supply.
There are two types of star hubs; one is flat with holes for the star spokes and one has a compartment for an Arduino Pro Mini in addition to the holes.
If another type of Adrduino board is used, an external enclosure will have to be used/designed/fabricated and the simple flat version can be used for all of the stars. Otherwise, using the Pro Mini, the first star will have to be the compartmented version referenced in this Instructable. It has a port opening for the required FTDI programming interface. The remaining stars will be made with the simple hub version. The rod stock for the star spokes was purchaced at my local home supply store. It is used in the hanging of suspended ceilings.
The 3 conductor ribbon cable started out as 4 conductor cable used for connecting programmable LEDs. The LEDs come in 50 element lengths That’llget you… let’s see… as x approaches … carry the one …uh…5! Yeah 5, 10 pixel LED strings/stars!
Step 2: Preparation
First, print all of the parts and cut all of the spokes for the number of stars in your desired string. Determining the number of each part is a great exercise for those households containing 3rd graders (although they may not think so.)
Note: I used PLA filament to print the parts in order to determine how much they would hold up to the weather. If you are not up for such experimentation, ABS may be a better alternative.
I printed parts using a layer thickness of 0.3 mm, 3 top/bottom layers, 3 walls and 30% infill.
Cutting the metal spoke rods can be tedious but is best accomplished with a rotary tool with a cutting wheel while listening to Idina Menzel singing "Let It Go" on a loop. When you finish, you will be stronger because of it and the hero of every four year old for your ability to lip-sync the song in its entirety. (Proven from experience.) A simple jig for cutting the rods can be made by cutting a couple of grooves in a piece of 1" x 2" wood. Use a finishing nail to set the length (I have dibs on this for an Instructable).
Cut a number of ribbon cable pieces equal to the number of stars in your string minus 1 (x=# of stars; x -1) (oooo, algebra!). The length of each piece is determined by the maximum distance you want between the stars. I chose 16 inches because it has absolutely nothing to do with the Fibonacci sequence.
Step 3: Control Star Assembly
Assemble the Pro Mini compartmented star (I couldn't think of a cool name for the star containing the controller... Death Star was taken).
Skip this step if you opt for an external processor.
If necessary, solder the programming pins (the ones with the 90 degree bend) in place. Most, if not all, Pro Minis have programming access to the TX, RX, VCC and GND connections duplicated on the end of the board; the end closest to the regulator. For some inexplicable reason, some boards have the programming pin sequence reversed. Make a note of the arrangement on the Pro Mini which you use and attach the FTDI interface accordingly when uploading the software.
Due to space limitations it is better to hard solder the connecting wiring to the Pro Mini. In any case the wires from the power supply will have to be split, the 5 volt and ground going to both the controller and the LEDs (see schematic). The data output from the controller (D11 in this case) is wired to the DIN connection of the first LED. Note that, if a 12 volt power supply is being used, it will be wired to the RAW/VIN pin of the Pro Mini. Wire to the VCC pin only if you are using a 5 volt supply or enjoy the smell of melting voltage regulators.
Mount the Pro Mini using double-sided foam tape with the programming pins facing the port opening on the star hub.
Secure the hub compartment cap to the hub with the M3 screws, guiding the power supply/LED data wires through the opening in the cap rim.
After assembly and testing and before placing in an out-of-doors environment, seal exposed hub openings with an appropriate silicone sealant.
Step 4: Assemble Star Frames
To assemble a star, you will need a hub, a LED holder with hanger, nine LED holders, 5 50 mm spoke rods and 5 100 mm spoke rods. Mix the epoxy and apply into each of the holes in the hub and each LED holder. Insert a spoke rod in each hub hole, alternating 50 and 100 mm spoke rods. Insert the LED holder with hanger onto one of the longer spoke rods (note the star orientation when assembling the compartment-ed star) and a LED holder onto each of the remaining spoke rods. Rotate each of the holders so that the slotted side* of each faces the same direction. In the case of the Pro Mini container star, face the slotted sides away from the compartment cover.
*The IP68 LED has 4 barbs 90 degrees apart which fit through slots in one side of the LED holder. Thus the holders will be defined as having a "slotted side" and a "back side".
Step 5: Solder the LED Strips
Optionally remove the fourth wire from the ribbon cable (the blue one in my case). Separate the remaining ribbon cable wires at the ends and strip approximately 3/16" from each wire on both ends. Tin each with solder. Do the same with the ends of the 10-element LED strip. Pre-position heat shrink tubing on the wires and lap solder each ribbon cable wire end to its corresponding LED wire output end. (Yeah, it's not great soldering technique, but we're not assembling Falcon Heavys here.) Slide the tubing over the solder joints and heat. Shrink another section of tubing over these connections Repeat this process, connecting each 10 LED section together with ribbon cables.
The data input and output ends of the LED string can be identified by viewing where on the LED capsule the wires are connected. If one squints ones eyes really hard, the markings on the input can be made out.
Step 6: Assemble the LEDs Into the Star Frames
Insert the LEDs into the star holders starting with the first LED in STAR0(PIX0). Insert it into the back side of the hanger holder pressing the LED body barbs through the holder slots. While viewing the back side of the star frame assembly, insert the LEDs, in order, into the holders in a clockwise direction. Rinse and repeat for each 10 LED pixel section and its star frame.This results in a string with the power supply/controller on the left side with the stars laid out to the right.
Step 7: Programming the Star String
The StarProgram sketch supplied is based on the Adafruit NeoPixel library and contains some example sequences to drive the stars. The program also controls the current demand on the power supply by limiting the max brightness of the pixels. The color pallet is limited to six predefined colors.
The Arduino Pro Mini does not have a USB interface for programming and therefore requires the use of a USB FTDI adapter module. Assemble the FTDI to a USB cable and connect the cable to one of the USB ports on your computer. Load the Arduino IDE and identify the board, processor and port in the tools menu. Connect the FTDI to the Pro Mini through the programming port in the star hub component enclosure. This seems like a pretty straightforward process except that (if you’ve gotten the assembly this far and can plainly see) there is no room for the FTDI module. If programming through the port hole is required, an “extension cord” assembled using Dupont type male-to-female connectors will be necessary. After the connection to the Pro Mini is made, upload the “StarProgram” sketch. If the USB port can supply enough current, and all of the Instructable "stars" have aligned, the LEDs should begin their display.
“When it is dark enough, you can see the stars.” ― Ralph Waldo Emerson