Introduction: Shadow Box Wall Art

Sometimes I love to have a challenging project where I can implement interesting, but complex ideas without limiting myself. My favorites are aesthetically pleasing projects, which I've completed a few already. While working on these projects I've thought of some cool combinations of these projects and twists to the original ideas. One of the criteria for this project was to use my new laser cutter. Having this in mind the idea of yet another shadow box came to mind naturally, because shadow boxes require a lot of cutting, are exceptionally visually satisfying and are suitable to express my ideas.

I found my experience with Arduino and LED diodes to be very useful for this project since to tell a story using a shadow box I've needed a lot of individually controllable LEDs. For this, I used a simplified circuit from my Star Ceiling which uses PCA9685 chips to control the diodes. I think this circuit is one of the best out there to control large numbers of LEDs. It's simple and relatively cheap, coding of PCA9685 boards is also easy and I needed it to be simple because there are a lot of RGBs. To precise, there are 31 individually controllable LED clusters, so I needed 93 PWMs outputs, this requires 6 PCA9685 boards (16 PWM per board), so I decided to go with 7 just in case. I think this circuit alone could be useful to many DIY projects out there, since the first time I've needed to control many LEDs it took me a lot of trial and error finding the best solution and I've come to the conclusion that this is the one because most of the alternatives are not very beginner friendly.
Using so many LED diodes (86 to be precise) was a technical challenge since I did not want to have a power chord since it kind of defeats the whole wall art purpose. Power bank was an answer, but 86 diodes and Arduino draw up to 6 Amps which is way too much for power bank, so I had to reduce the brightness and accidentally not to light them up all at full power.

The design of the box was not a hard decision since I wanted something dynamic and changing seasons are easily expressed on a tree. Vintage photo corners inspired the rest of the design.
Expressing all the seasons was a challenge, for example, it took a while to figure out how to have spring blossoms and fruits after in the same spot. Or how to express winter in a more interesting way than just making everything white. The answer was to use star ceiling fiber optic strands that I had left as a Christmas tree decorations, but it was challenging to make these strands invisible when not needed, see further steps to learn more about how I figured out how to do it. Falling autumn leaves was also an interesting challenge.

As it's probably obvious by now, this is not one day or even one week project, but I still wanted to share it with you all while hoping that this will not discourage, but inspire you to create your own epic DIY project.


  • 100x 2N2222 transistor (or other NPNs like 2N3904).
  • 100x RGB LED diodes
  • 100x 0.25W 100Ohm
  • 200x 0.25W 150Ohm
  • 100x 0.25W 10k Ohm
  • 7x PCA9685 boards
  • 1x Pushbutton
  • 1x On-Off button
  • 1x Arduino Nano
  • PCBs for the circuits.
  • USB A cable with one female side (or both) and micro USB or whatever one is used by your Arduino nano
  • Fiber optics. The fishing line doesn’t work. How much you need depends on the number of stars/size of the ceiling / where the circuit is. I used a few different thickness fibres for greater effect.
  • Power Bank. Pretty much any will work, LEDs draw less than 0.5A if coded correctly.
  • Black acrylic paint
  • Wood glue
  • Shrink tubes
  • A lot of wires ( I used probably around 300 ft of wires and I'm not even kidding )
  • wire connectors
  • Aluminium tube of 5mm inner diameter
  • 2mm plywood and laser cutter
  • Soldering equipment
  • pink-ish paper for apples

Step 1: Laser Cutting

I've started this project before my laser cutter arrived, so I ordered some of the parts from the online cutting service. They did the cutting and shipped the next day!

There's a lot of cutting to do. My laser took maybe half a day of cutting including updates. Since I did a lot of updating to the design and only when writing this instructable I've combined all the laser cutting files, I might have missed something, so let me know in comments if that's the case, I'll recheck my drafts.

Step 2: Putting the Box Together

The shadow box itself consists of 6 main layers of plywood and the back. After you have all the parts cut out, it's very intuitive which layer goes where. Use the photos for guidance.

Few notes about the process:

  • Acrylic paint is for painting sides of some layers with very thin "walls" of plywood, so light doesn't shine through where it is not supposed to.
  • Part of the first (facade) layer is sanded from behind in spots where "falling" leaves will be, so RGB LEDs can shine through the plywood. LEDs are not bright enough to shine through plywood which is not sanded. Sanding should be carried out carefully since it's easy to sand too much as you can see in a photo. I've used a sanding drill bit for this.
  • Making holes for fiber optics is a chore. The holes must not be visible from the good side, but also must be deep enough so the light from fiber-optic strands is visible. I've tried doing it in two different ways. Frist - drilling holes with small drill bits the size of fiber optic strands, but I've kept ruining the plywood by drilling too deep, but it's doable. The second option is laser cutting holes from behind roughly 3/4 of the plywood thickness deep and then cleaning the holes with a small drill bit (by hand). Both work options work, but both require a lot of patience.
  • I forgot to take a photo, but the pink-ish paper listed in materials is used to cover laser-cut blossoms. Glue it on spots where the blossoms are, so when the layer with apples is glued onto it, the blossom will be invisible and a light shines through the paper very well, so when the apple LED is off and blossom LED is on, you can see only the blossom. It's a bit hard to explain, but I think the idea is clear from the video.

Step 3: Gluing the Optic Fibers and Power Bank Box

The power bank box and optic fiber holder can be glued separately from the main box and then glued onto it.

Glue the fiber optic strands into the holes made for them. See the previous step for description on how to do them. Make strands are long enough to reach the LEDs.

Glue the on-off button to the side panel.

Step 4: Circuit and Arduino Code

The Circuit itself is not complicated, I've used it in my star ceiling instructable and works well. The hard part is soldering so many LEDs. It gets repetitive very soon...

The code used is also from Star Ceiling Instructable, but it's somewhat modified to achieve LED fading patterns I like. The code takes almost all the memory of Arduino nano, mainly because of a large number of LEDs that have to be controlled and because I have not optimized it very well, but don't be discured from using after seeing it's size.

!!! I do not recommend powering this circuit with your computer, since it can only supply 500mA and almost 100 RGB LEDs on full power draw much more, ~6Amps to be precise. 500mA is fine as long as LEDs are coded to be at a reduced brightness, but it's safer to upload the code to Arduino when PCA boards are disconnected from it. Power Bank is cheaper to replace.. The code I use for this project limits the brightness so it does not reach 500mA.

LED mapping code is for finding which PWM controls which LED, since I've connected them randomly.

Few more notes:

  • For pushbutton, I used Arduino PushButton Example.
  • On-Off button should be soldered at the beginning of a positive USB line.
  • If there is more than one LED controlled by the same PWM pin (for example canopy of the tree requires a lot of LEDs) than on the PCA board connect these LEDs to the same 2N2222 collector.
  • Don't forget to connect all the grounds!

Step 5: Gluing LED Diodes and USB Port

This is another part of this craft that is heavily time-consuming. Gluing 86 LED diodes takes time and there's not that much space to go around. When all the LEDs are glued I could not put on the back plywood panel because of all the wiring, so I had to improvise an extension of the box. It's important not to mix LED's. Holes for different type of LEDs are different depth because of the layers, this helps to distinguish which one goes where.

Glue the female USB A to the back of the power bank box, but check if power bank cable fits nicely before gluing.

Drill the hole for push-button in the preferred spot. I covered the pushbutton with an apple, so I chose to install it at the bottom of the shadow box, so it looks like a fallen apple. Solder 10k ohm resistor to the button.

Step 6: Sorting Fiber Optics Into Groups

Fiber optics are supposed to represent Christmas light decorations, there are 7 RGB diodes to control them, so strands must be sorted into clusters of similar size.

After sorting fibers insert them into small 5mm diameter tubes cut from aluminum or something similar. 5mm is chosen so it fits nicely on standard RGB diodes.

Step 7: Gluing of Back Cover and Decorations

Glue the plywood sliders on the removable backside panel.

I've designed small cutouts on the back panel, so the shadow box can be hung on the wall. Just glue the cover pieces, so all the wiring is not visible from the backside and more importantly, cannot be damaged by the wall mounts.

Glue decorative pieces. I've laser cut many different-sized branches, apples, leaves, and birds and just glued where I thought it looked best.

Step 8: Enjoy!

Upload the final code, fine-tune the colors and timing and enjoy!

Lighting Challenge

Participated in the
Lighting Challenge