Created a small "PCB Christmas Forest" which is going to light up my study table this Christmas.
In this video, I am going to show you guys how to design these PCBs and assemble them to create a small PCB Christmas Forest.

Designing The PCBs

Sorting Out Images

To start the designing process, I need transparent PNG images of the Christmas Tree, Star, Snowflake, Candy Cane etc.
So I went online, and did an "image search" and downloaded few black-and-white images of all the items that I need to design these PCBs.

Using the good old "MS Paint" I edited all these PNG files. 
I removed the rounded base and made the base flat so that it easily sits on the base plate. Then I removed a small portion from the bottom to expose a bit of copper. Pouring a blob of solder on this plate will hold the PCB nice and tight from the front side on the baseplate. 

In my design I have 3 different sizes of the trees. If you look closely, they are all extracted from the same tree by removing the bottom layer each time and hence generating a new size of the tree. 

Generating DXF File

For the customized shapes of the PCBs, we need to generate "DXF files" to set the "Board Outlines". I am using the "" application to fill in the white spaces of the tress as I only need the borders and nothing else from the original images. Then, I uploaded the images to "" and generated the DXF files. This website allows 10 free conversions in a day unless you have a paid account with them. 

Creating the Trees

Now, lets add a "New PCB" to our project and remove the default board outlines.
Then import the DXF files via File > Import > DXF menu. Make sure you have the "BoardOutLine" selected under layers when you import the dxf file.

Now lets import the image that will go on the Top Silk Layer. Put the image over the board outline and move it to the "TopSilkLayer". Then lets go ahead and decorate our tree. Once all set, lets hide the Top Silk Layer so that we can work on the rest of items.

Using the Rectangle tool from the "PCB Tools Plate" I added a rectangle to the bottom of the PCB. I exposed the copper, so that I can use this to hold the tree on the baseplate by poring a blob of solder on it. 

Next I randomly added few LEDs here and there at the bottom side of the board. Then I added few exposed copper rectangles at the back side of the board and connected them the LEDs. Remember this is just an example, the attached gerber is totally different from what you see onscreen. 

So, this is how the tree looks like in 3D. 

Creating the Baseplate

Now to create the baseplate, we again need to add a "New PCB" to our project and remove the default board outlines.
Then go to Tools > Set Board Outline.. and select the "Round Rectangular" from the "Type" selection. Specify the height, width and the radius of the edge and hit the "Apply" button.

Then go-ahead and add the rest of the components one by one either to the "TopLayer" or the "BottomLayer" of the board and connect them using wires. I grabbed the back and the front exposed rectangles from the tree and added them to the baseplate. This way the spacings will remain intact when we solder the trees on the baseplate. That's it easy as that. Now just go ahead and download your gerber file and send it for fabrication.

So, this is how my baseplate looks like. Bit complex, but it has the exact same logic that I just showed you guys.

Ordering Process

Once I had my design ready, I just had to upload the gerber file to the PCBWay's website and select the type, color and any other customization that I want and then just send it for fabrication.
For my project, I choose the black, red and the green colors.

The Code

The code I wrote is very simple. I have just turned on and off the LEDs after a 500ms delay. The top white LEDs turn on and off in the opposite order to the rest of the LEDs.
This code is just an example, you can write all sorts of funky stuff and load it to your Arduino board.

Testing on Breadboard

I tested my code on a breadboard before soldering the LEDs to the board. I wanted to see if the Arduino Nano can handle that many LEDs at once and I also wanted to check if combining different color LEDs on a same pin of Arduino will have any adverse effect.

The result was pretty promising:
 - I was able hook up 3 LEDs without any issues to all the Digital (except D13) and Analogue pins of the Arduino.
 - I was "not" able to combine yellow and orange LEDs with any other color on the same pin of Arduino.


So, this is what came in the mailbag. Have a look at the quality, its absolutely mind-blowing. 
Based on my design, the black one will stay at the back, the green one on right and the red one on the left hand side of the baseplate. 
Please make sure when you solder the trees, solder the small (red) one first, then the green one and finally the big black one at the back. This way, you will be able to solder them very easily, without going over or under the trees.
Now, lets start soldering.

Lets start by soldering the LEDs on the trees. Since the front side of the plate has all the decorations on it, I placed all the component markings at the back side of the plate. 
I then one by one soldered all the LEDs on the front side of the plates.
Please be careful while adding the colors, as mentioned earlier you cannot hook up yellow and orange with any other color on the same pin of an Arduino. Please follow my final coloring patter.

Now lets get the baseplate sorted. Lets start by soldering all the resistances to the board. 
Then, lets solder 2 x female pin headers to the board. These pin headers will house the Arduino Microcontroller in it.
After that, lets solder the 2 pin micro-USB port to the board.

Next, its time to solder the trees to the board. With lots of flux and very little solder this is what I ended up creating.

Since a lot of the LEDs were getting hidden behind the trees, I ended up removing a lot from the final version.
Just follow the onscreen color pattern and you will have a small Christmas forest sitting on your table in less than 30 minutes.
Merry Christmas and Happy New Year...


Thanks again for checking my post. I hope it helps you.
If you want to support me subscribe to my YouTube Channel:

Video: Video Link
Full Blog Post: Blog Post 
Code: Download
Image Resources : Download

Gerber Base : Download
Gerber Small Tree : Download
Gerber Medium Tree : Download
Gerber Big Tree : Download
GitHub : Visit

Support My Work:

Thanks, ca again in my next tutorial.