Introduction: Video Mapped LED Christmas Trees

About: JoeJoe is a PCB designer, artist, and make-hack-tinkerer who lives in San Francisco, CA. He is currently an Artist-in-Residence at the Autodesk Pier 9 Workshop, and also co-founded LumiGeek (…

For our DJ crew's annual Brass Tax Xmas Episode I constructed two spatially mapped LED christmas trees. Consisting of about 230 RGB pixels each and standing around 7 feet tall these trees were fully video capable and ran Modul8 content syphon-d into MadMapper. Here's how I went about it!

Step 1: Cut Some Christmas Trees...

No, you don't head to the forest to do this step. I engaged my trusty friend Metabeam to laser cut some christmas trees out of 3/16" plywood. In order for the pixels to be able to push in I needed to use a thin stock, and that also helped keep the weight down for transportation and setup.

The Coreldraw layout was split and cut out of two sheets of 4x4' stock.

Here's a short video in around 10x speed of the laser making quick work of a hundred or so holes.

After I had the cut plywood, I gave it to my excellent and talented friend Sherry Wong for a quick base coat of green paint. She also added a marvelous silver garland!

Step 2: Order Some LED Pixels

For this project, I chose some embedded WS2811 addressable RGB pixels in a plastic enclosure. It's hard to tell from the pictures, but these pixels have a little catch molded into the plastic so they'll grab the edges and hold tight when inserted in the proper size hole. This is a very fine line to walk since the plastic molding isn't perfect, and the laser kerf can vary depending on how flat your material is. If the holes aren't perfect it ends up being very difficult to get the pixels into the plywood, but more on that later-

The pixels showed up straight from China reeking of off-gassing plastic and glue which stunk up my whole apartment for a few days. You can find these on eBay and AliExpress quite easily in a few different form factors. If you order them from AliExpress, it's better to chose one of the air freight options instead of their default ePacket / China Post if you want to receive them in any sort of predictable and measurable timeframe.

Step 3: Inserting Pixels in the Tree

Ok, this was a huge pain. After the first 100 or so I had giant blisters on my index finger, thumb, and palm. I tried a few different techniques, but just pushing the pixel in with my right palm while supporting the hole from underneath with my left palm ended up being the way to go.

Because the plywood wasn't perfectly flat, some of the holes were smaller or larger than others; The size of the cut and the kerf are both affected by the focus from the top of the material. Whole sections of the tree would go neatly and quickly, and then the adjacent section would take 30 seconds or so to jam in a single pixel.

Overall this was a multi-hour endeavor and not exactly the highlight of this project.

As far as the wiring is concerned, I wired each tree in an identical zig-zag pattern and connected all of the JST connectors as I wired the strings. While this is fine for passing data through, there is no way that the wire could handle the sum current of the entire tree so I knew I was going to have to bring DC power in at a few points on the tree after all the pixels were inserted.

Step 4: Controller Box

For the controls, I once again used the PixLite16 board by Advatek. Each tree's WS2811 runs went to two headers on the board, one for the upper part and one for the lower part. I configured the board for 150 RGB pixels per header figuring each part would be its own DMX universe.

To protect the PCB at the club, I modified a Pelican case to hold the board and a Meanwell power supply sufficient for driving both of the trees simultaneously. Holes had to be cut in the side of the Pelican case for the ethernet cable, power cord, and the output wiring to the pixel runs (power and the data line).

Step 5: Mapping the Tree With MadMapper / MadLight

Using the MadLight functionality introduced into MadMapper, I built up the LED fixtures to make up the trees. I decided to do this in sections to keep a manageable amount of information on the fixtures editor screen.

As you can see in the pictures above, each tree ended up being composed of five parts. I set the pixel ordering to BGR for these particular modules, and the started clicking in the grid to add the addresses in the same order that I rigged the pixels into the holes. Parts 1, 2, and 3 would make up one ArtNet universe, and 4 and 5 would be a second.

After all of the parts were made, I added them to the surfaces pane and sized them so the trigger areas were all identical in size. From there I could easily drag an entire tree around in my window depending on its physical location on the stage or in relation to the projection screen.

Step 6: Final Soldering

Finally I went through the tree and added some DC injection points for power. With these little 5VDC pixels there isn't much headroom for long cable runs of the thin gauge wire that they factory uses, so I basically picked three or four points on the tree and soldered in a daisy chained jumper of 16AWG wire straight back to the power supply.

Step 7: Testing And... GO TIME!

Naturally having two giant LED xmas trees in your tiny apartment calls for a party, so we tested them out with some dinner and drinks. Everything was working as planned.

The next day I installed them both on the stage at F8 and spent the better part of the night VJing in Modul8. Mostly I cut the blue channel out of a bunch of video to keep it kind or 'christmas-y' for our party. However, with full RGB brightness turned up they were nearly blinding despite the diffused pixel enclosures!

Here's a video of an initial test and the trees in all their glory at a few points in the party.

Let's Party! Challenge

Participated in the
Let's Party! Challenge