A mashup of low-fi techniques and digital lighting: how to use NeoPixel LEDs with Fadecandy in an ornamental lantern.
The last few years have seen great contributions to the LED community that make creating one's own controllable lighting effects more accessible. I wanted to experiment with these new tools. In doing so I wanted the lanterns to be cheap and easy to make so that I could focus on the lighting design.
This is not a comprehensive Instructible, it's more of an overview of how to bring fabrication and LEDs together. In particular, I wanted to share some of the thinking behind some decisions that made it easier to make these with the tools at hand.
For this project I used:
- Polystyrene sheet
- Twist ties
- Hole punch (1/8th in)
- Paper fasteners
- Laser-cutter (optional)
- Vinyl cutter
- Soldering iron & accompanying electronics tools
- Fusion 360
This project was designed and fabricated in collaboration with Pier 9 Affiliate Artist Alex Schofield.
Step 1: Design
I started with the idea of making modular, conical lanterns. There are two parts: the frame and the diffusion material. The diffusion material is decorated with vinyl-cut patterns.
Alex and I worked together to design the frame. It's a simple "waffle" design of fins that fit into rings. We used a laser cutter for the cardboard frame, which as the advantage of making nice, regular perforations but it isn't necessary. The design is simple enough that could print it to make a paper pattern.
One consideration for designing the frame was that we wanted to have the parts fit in the laser cutter we were using, which has a 36" x 24" cutting bed. To solve this we chose to take advantage of gravity and have the LED strands and the diffusion material only supported by the frame at the top and to let the LEDs hang on their own lower down and to have the rigidity of the diffusion material keep the shape of the lantern.
We used Fusion 360 to draw the laser cut files for the frame and to lay out the pieces in the 36"x24" sheet.
Polystyrene sheet diffuses the LED light very smoothly and has a milky, matte finish. It holds a fold nicely (though it will split if creased too hard) and can be cut or drawn on. It is not safe to cut on the laser cutter, it should be cut by hand.
The shades for the lamp are four triangular panels that make up the cone. I needed an easy but strong way to attach the diffusion material to the frame. Using paper to prototype, my solution was to fold the edges of the panels and perforate them, then to use paper fasteners to go through the cardboard and the sheet. I like having the seam on the inside: it looks cleaner but takes more wrangling. For this approach, I added an inch to each side of the panel. The final panels are a triangle with a snipped tip. The long sides are 48" long, the base is 11.5" wide, and the tip is 2" wide.
To decorate the shades I made a vector design based on some tests that Alex was doing at the time, a lacy, net pattern. Cut out of white glossy vinyl, the pattern is silhouetted by the interior light. Here's how to make vinyl-cut patterns on the Roland Versacam.
Step 2: Electronics
A big part of my interest in this project was to experiment with the Fadecandy and NeoPixel LEDs, which are usually WS2811 strips. NeoPixel LEDs are individually controllable RGB LEDs, and the Fadecandy is a hardware driver for the NeoPixels that is designed to dither them. Fadecandy does very sophisticated color and gamma correction as well as temporal dithering, with 48 bits of color. All of this means that you can make soft, beautiful gradients and lighting with your LEDs.
The electronics are based almost entirely on this tutorial from Ada Fruit: 1,500 NeoPixel LED Curtain, recommended to me by the illustrious Jason Araujo. It shows how to wire the power and the Fadecandy data to the LED strips. The 4' cone is lit by 2x 45-LED strands.
I took a slightly different approach to my power harness by using a bus instead of quite so many soldered wires. I also made some nice laser-cut acrylic pieces to mount my electronics. The files for the mount are attached.
Step 3: Assembly
First I assembled the cardboard to make the frames, fitting the fins into the rings. For strength, I glued those connections. For safety, I sprayed it with flame-retardant spray and let it dry. Next, I mounted the LEDs to the frame with twist ties, taking advantage of the perforations I made. To keep the LEDS together inside the tip of the cone, I bound the end of LEDs with zip ties. This bundle hangs past the frame in the tip of the cone.
I cut out the polystyrene panels and applied the vinyl cut pattern to the diffusion material, taking the backing off the vinyl, then using the pattern as a guide to cut away the tip of the panel.
I used an extra fin as a template, lining it up with the panel and marking the hole pattern so that its spacing would match the cardboard frame perforations.
Crease diffusion material over one inch using a ruler. I wanted to get the sharpest crease that I could without breaking it. Try on a scrap. I hole-punched out the holes I had marked. I found a 1/8" hole punch, which makes a hole smaller than the head of a paper fastener.
All together now
Fasten with fasteners: I fastened the panels to the frame, then stapled each of the panels to the other where the frame ended.
The last panel is a bit tricky: it will go better if you have a crisp crease to the diffusion material and if you have a large enough opening at the bottom to get your hand in a bit.
Step 4: LED Mapping
As the tutorial covers, you can remap your LEDs with .JSON files. In the case of the 4' cone made of 45 LED strands, I mapped the first strand to the first lead and the second to the next.
TouchDesigner is overkill for this, but I use it all the time. In TouchDesigner, I used the Open Pixel Control Python library to send the commands to the Fadecandy. This was again with the advice and generous examples of Jason Araujo.
I represented the LEDs in space geometrically, in the order that the strands were wired. Next, I textured those points, and looked up their color in an image based on those texture coordinates. This way I am using a render-pipeline / image-based animation approach which then makes it easy to make new animations.
Step 5: Hang and Enjoy
This is part of a larger installation I created with Alex Schofield that was installed in the Fort Mason Chapel for the Soundwave Biennial 2016. The full installation also involved the help of Jason Arujo, Enrique Agudo, Alda Tchochiev, Sierra Helvey, Adam Carlucci, and Larisa Berger.