Introduction: Christmas Frame

This project was done as a part of the Christmas decorations.

It is just a frame which displays Christmas stuff:

  • Static icons (i.e. Christmas tree, snowflake, Santa's hat...).
  • A marquee for text (i.e. Merry Christmas) or wider images.
  • Snow.

Step 1: Materials

We need the following material (can be adapted as desired, needed or availability):

  • A controller board: Arduino nano.
  • A matrix of leds: 22x22 from BTF-LIGHTING (WS2812B (aka NeoPixels) compatible).
  • A cardboard or paper: white paper.
  • A photo frame: the cheapest I found ;) (you can use a prettier one).
  • A capacitor: 1000uF.
  • A resistor: 390 Ohms.
  • Several wires: as needed.
  • Duct tape.
  • A 5V power source: the matrix at full power can consume 145W. The brightness of the leds has been reduced by software, in this way you can use a power source of 25W.

And tools:

  • Scissors.
  • Cutter.
  • Soldering iron.
  • Any other you need.

Step 2: Construction

It is very simple to perform.

The cardboard/paper is used to hide the leds matrix, but it must let the light pass. I recommend that it be white or black, other colors will distort the colors of the leds. Cut to the size of the frame and put on it.

Take the matrix and center it on the frame. Fasten with duct tape.

Now it's time for the back cover of the frame. Place it, calculate and mark the place where the wires will come out. Then remove it and make the holes. In this case the back cover is made with hard cardboard so with scissors and cutter was easy to make the holes. You can mark what connection will come out through what hole as reference.

Pass the wires through the holes and close the frame.

In the 5V and GND wires, solder the capacitor in parallel and other wires long enough to get the power source. Be aware of polarity!!!

The DO signal will be unconnected (no more matrix). For the DI signal, the matrix come with a piece of wire with the suitable connector.

Now you should program the Arduino before embedded it or make an access point to the USB connector for future programming. At this point, I make the development/tests with a breadboard until the program was done.

Solder the piece of wire with the Arduino. Put the 390 ohm resistor in series with the signal line (in this case D13) and use duct tape to protect it, solder the rest of the wires to 5V and GND as appropriate.

The final step is to fasten the Arduino in the back of the frame. I utilize the same bag in which the Arduino came from the seller (easy, cheap and ecologic: reuse), and duct tape for the fastening. Don't forget to connect the Arduino to the matrix and the power wire to the power source.

Step 3: Programming

Download the code

The code is hosted here. you can clone or download as you prefer.


As discussed before, the matrix can consume up to 145W. On the other hand, the brightness of the leds has been reduced by software, in this way you can use a power source of less power. If the function setBrightness() is linear, I suppose the max power will be between 25W and 30W. I used one of 200W, simply because it was available to me.

So when connecting the Arduino to the computer, be sure of:

  • Disconnect the leds matrix from the Arduino.
  • Or ensure the external power source is on.

otherwise the current drawn from the matrix will come from the USB port, which could be damaged.


There is no special requirement for programming in this project. So the programming process is like any other Arduino programming. You need the Arduino IDE.

  • Connect the Arduino to the computer.
  • Launch the Arduino IDE.
  • Load the project.
  • Press the "upload" button and wait until finished.
  • Disconnect the Arduino and now you can finish the construction.

Step 4: Result

The work is done.

The only thing left to do is admire the result.

And Merry Christmas!!!

P.S. some ideas are around to improve...