While working on a new 3D printer design on a hot day in mid summer my mind naturally wandered into thinking about Christmas house lighting. My father taught me, by example, that holiday lighting displays, hung about the exterior of ones home, could lift spirits in the cold start of winter weather. To this end (and because this was something most people did in 1950s suburbia) we strung a respectable amount of colored lights around the house's facade and into and through the bushes in front. I have always subscribed to this effort, whenever able, through my adult life.
In the past few years I have seen, on television and online, the proliferation of massive computer controlled Yule displays in the yards and on the houses of the (maybe not so) common homeowner. While I will assert that I do NOT suffer from "Lighting Display Envy", I have lately wanted to add a small version to my otherwise static holiday lighting. To this end, I researched pixel displays and how to implement them.
My concept started out as a small tree-shaped object welded using metal rods such as the ones used to hang suspended acoustic ceilings. I had seen a You-Tube video in which the rods were spot welded to metal hoops to make a tree-shaped frame with the lights secured to the vertical members. I said to myself "Self, you can do that". After procuring the needed materials: rod stock, metal hoops, welder and assorted supplies, I merrily set out to teach myself to spot weld so that I could complete the task. After some time, though, I said to myself "Self, you ignorant fool. You can't weld!". After many more attempts, though, I was able to "blob" things together and,as my friend later told me, "That's what grinders are for".
Although I will use these welded versions, it occurred to me that I have perfectly good 3D printers just waiting for something to do. After some preliminary design, I came to the conclusion that "This could work!". I designed and printed all the parts, cut and painted the rods and hoops and assembled my tree. With the addition of the pixel strips, an Arduino Uno, a power supply and programming from the Adafruit Neopixel library, I had a pretty nice looking/working tree.
Now as to the title of this Instructable; for the nitpickers it should probably be "Build a 3D Pixel Tree and Yes I Know the Metal Parts are Not 3d Printed But All the Other Parts Are)", or something similar.
Step 1: What-You-Will-Need:
My tree(s) are going to be displayed outside, thus the waterproof enclosure/wiring below.
- a 3d printer capable of making the parts needed (yes I know this is a deal breaker for some of you but think of it this way: you can tell your spouse/yourself "This is something I REALLY need!".
- Metal rod stock; you can get this at most home improvement centers. It's the stuff used to hang acoustic ceiling, 7/64 inch (2.7 mm) in diameter.
- 1 metal hoop 19 inch outside diameter. Available at many craft stores; used to make wreaths.
- 1 metal hoop 10" O.D. (see 19" above)
- 1 3D printed top cap
- 1 3D printed top cap clamp
- 12 3D printed side rod clips
- 8 3D printed cross brace clips
- 1 3D printed bottom sleeve
- 22 M3 x 3mm knurled nut inserts (Available on Amazon)
- 20 M3 x 10 mm Hex Socket Round Head Machine Screw
- 2 M3 x 25 mm Hex Socket Round Head Machine Screw
- 2 5 meter, 150 Pixels WS2812B Individually Addressable RGB LED Strip , DC 5V, Waterproof IP67
- 1 Arduino Uno
- 1 5V 15A power supply
- 3 Waterproof cable gland joints, approx. 6 mm diameter
- 4 Waterproof male/female connector sets
- 120 VAC power cord
- 1 Waterproof enclosure 200 x 120 x 75 mm
- a sufficient length of 3-conductor wire approx. 6 mm in diameter
- GE Silicon II glue
Step 2: Print the 3d Parts:
I printed the 3D parts using ABS filament with a layer height of 0.3 mm. I used ABS because my trees are going to be outside. For an inside-only tree, PLA should be fine.
Step 3: Cut and Prepare the Rods:
Note: At this point,when I previewed this Instructable, the pictures for each step seemed to be placed in the next step. If you can see pictures for this step, as Emily Litella would say...".Nevermind."
Cut 12 rods 33" (838 mm) and 4 rods 18 7/8" (480 mm). Sand/file the ends to remove burrs. Since I am going to display my trees outside, I sanded, cleaned and applied a thin coat of spray paint (black) to all the metal rods.
Bend the 33" rods at 15.6 degrees, 2 inches (51 mm) from the end. This can be accomplished more easily using the Side Rod Bending Jig.
Step 4: Prepare the Clips
Each one of the 3D printed clips requires a knurled nut insert to be, uh, ...inserted.
Insert (there's that word again) one of the 25 mm screws into the side of the clip with the countersink for the head. Place one of the knurled nut inserts (this is getting silly) onto the screw. Place something -a sliver of wood or a piece of cardboard- in the "jaws" of the clip to keep it from collapsing and tighten the screw until the knurled nut (hey, I didn't use insert ...rats!) seats into the plastic; don't over tighten (it needn't be flush with the surface). Remove the screw. Repeat for the remaining clips.
Assemble the top cap clamp and seat the knurled nuts in a similar manner.
Step 5: Tree Assembly- Mounting the Clips:
Select the 12 side rod clips and place them with the knurled nut facing the same direction 30 degrees apart around the perimeter of the 19" hoop. It helps with the positioning to draw a layout diagram on a large sheet of paper (use the positioning template and extend the lines with a straight edge). It will require some effort to push the clips onto the hoop rim. Starting at an angle at the corner of the clip and rocking through the jaw will eventually get it to snap in place.
When all 12 of the side rod clips are in place, add the cross-brace clips. Place the hoop, with the knurled nuts of the side rod clips facing up, on a flat surface and select a space between two of the side rod clips. Place two clips, the left one with the nut facing down and the right one facing up. To determine if the cross brace clips are oriented properly, temporarily install two of the cross brace rods; they should be parallel. If not, swap the clips.
Rotate the hoop 180 degrees and place two more clips in the same orientation. Rotate the hoop 90 degrees and repeat the process. In the end there should be 8 cross-brace clips with the nuts alternating between pointing up and down. The cross-brace rods should be parallel with no bending near the clips.
Step 6: Tree Assembly- Vertical Rods:
This is where having a helper makes things easier. Position the clips/hoop assembly on a flat surface with the nuts of the side rod clips facing upward. Place the straight end of one of the vertical rods into one of the side rod clips and the bent end into one of the holes in the top cap. Do the same for three other equally spaced clip/cap pairs. Now that the assembly is relatively stable, install the remaining rods.
Place the top cap clamp around the exposed sections of vertical rods. Insert the screws into the clamp and tighten equally, alternating sides until the clamp is snug. At this point turn the tree on its side and tighten the side rod clip screws making sure that the end of the rod is flush to the bottom of the clip.
Step 7: Tree Assembly- Cross Brace and Bottom Sleeve
Insert the 18 7/8 inch cross brace rods into the bottom sleeve. Place a couple of 2x4 wood pieces on each side and set the tree assembly on them. Align the cross brace rods with the cross brace clips and insert the rods into two of the clips on one side. Insert the rods in the clips on the opposite side. Repeat for the second pair of cross brace rods.
Make sure that the assembly is standing straight and tighten the top cap clamp screws (it will have a tendency to twist when the screws are not sufficiently tightened). Tighten all of the rod clips; do not over tighten. The assembly should be fairly rigid and not twist easily.
Place the 10 inch hoop over the tree assembly, letting it rest on the vertical side rods. Adjust the hoop until it is parallel to the bottom hoop. Secure with 4 inch wire ties.
Step 8: Electronics-Pixel Strip:
And now for something completely different...
It wouldn't be much of a pixel tree without some pixel lights. This tree uses 2- 5 meter strips each with 30 WS2812B pixel lights per meter (a total of 300, count 'em, LEDs). The strips are modified to be spliced together with the input end connector replaced with one which is waterproof.
The strips themselves are water resistant, enclosed in a clear tube. The ends each have connectors soldered to pads on each end so that strips can be daisy chained. Remove all the connectors from both strips. Solder a female waterproof connector to the data input (DI) and power supply pads (5V, GND) on the input end of the first strip, sealing it with silicon and installing the cap from the original connector.
Solder the output end of the first strip to the input end of the second strip using the circuit pads. Apply silicon adhesive and heat shrink tubing to weatherproof the connection.
Seal off the output end of the second strip with silicon adhesive and replace the cap.
Step 9: Tree Assembly- Decorating the Tree
As for wrapping the pixel strip on the tree frame, i.e. decorating the tree, I end up on the side of the Lilliputians and start at the small, or top, end. Of course, if you are of the Blefuscuian persuasion, starting at the large/bottom end is quite as acceptable although these instructions will not cover that instance.
Start by securing the non-connector end of the pixel strip assembly to one of the side rods just under the top cap. Wrap the strip around the tree frame, leaving a space of approximately 60 mm between loops. A gauge stick is helpful here; a piece of electrical tape around a metric ruler works well (and besides, it's the only thing I took a picture of). As you go, loosely secure a wire tie at 180 degree intervals; do not tighten but allow the strip to be adjusted through the tie. After all of the strip has been placed on the tree frame, it is a mater of personal preference to adjust the strip so that so that it looks symmetrical and balanced. It is easier to adjust the strip if it can be in operation (wait until after the next step is completed).
After all adjustment are made and the tree looks as you like, tighten the wire ties snugly, by hand. Do not over-tighten.
Step 10: Electronics- a Box With Circuits and Stuff
In order to control the pixel strip we need two things: a power supply and a device to send it the formatted data to tell it what LED needs what color at what time.
The actual implementation can be varied depending on where and how the tree(s) are going to be displayed. This is how my implementation was accomplished.
In order to be used outdoors, the electronics require a waterproof enclosure with waterproof external connections. A box capable of driving two pixel trees needs three external connections: 1 120 VAC connection and 2 LED strip data/power connections.
Drill 3 holes in the sides of the enclosure to accommodate them and mount the waterproof feedthroughs(glands) in the holes.
For the power supply, the guts removed from a 5 Volt 15 Amp inline power supply purchased on Amazon is used. Remove the enclosure and un-solder the 120 volt AC input and 5 volt DC output wires (Note where the connections are located.)
Feed the removed 120 V cord through its feedthrough and re-solder to the power supply module. Solder 4-5 inch wires to the +5 V and ground connections of the power supply module.
Feed the male connector wires of two of the connector sets through their respective waterproof gland.
Connect/solder the +5 V and ground wires to the Arduino Uno (using the appropriate pin connectors) and to the +5 V and ground wires of the external connectors. Connect the Arduino Uno digital output pin (~6 in this case) to the data wire of the external connectors.
Attach the power supply module and Arduion Uno to a 3D printed sub panel which is, in turn, mounted to the bottom of the interior of the enclosure.
Data is programmed, via USB connector, into theArduino Uno using the Adafruit NeoPixel library in the Arduino IDE.
Make two Data/Power Supply cords by soldering the remaining male/female waterproof connector pairs to an appropriate length of 3 conductor round electrical cable. Seal the connections with silicone adhesive and heat shrink tubing.
Program the Arduino Uno; connect the tree(s), cables and circuit box. Power the circuit box. Enjoy.
Step 11: Blank Page
This page left intentionally blank.