DIY - PCB Christmas Forest
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.
Video: https://youtu.be/wYbmAVPLWmo
Please subscribe to my channel
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 "paint.net" 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 "https://convertio.co/" 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.
Soldering
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
Thanks again for checking my post. I hope it helps you.
If you want to support me subscribe to my YouTube Channel: https://www.youtube.com/user/tarantula3
- Video: https://youtu.be/wYbmAVPLWmo
- Full Blog Post: http://diy-projects4u.blogspot.com/2022/12/pcb-christmas-forest.html
- Code: https://github.com/tarantula3/PCB-Christmas-Forest-v1.0/blob/main/Code.ino
- Image Resources : https://github.com/tarantula3/PCB-Christmas-Forest-v1.0/blob/main/Image%20Resources.zip
- Gerber Base : https://github.com/tarantula3/PCB-Christmas-Forest-v1.0/blob/main/Gerber_PCB_Christmas%20Tree%20BASE%20v1.0.ZIP
- Gerber Small Tree : https://github.com/tarantula3/PCB-Christmas-Forest-v1.0/blob/main/Gerber_PCB_Christmas%20Tree%20SMALL%20v1.0.zip
- Gerber Medium Tree : https://github.com/tarantula3/PCB-Christmas-Forest-v1.0/blob/main/Gerber_PCB_Christmas%20Tree%20MED%20v1.0.zip
- Gerber Big Tree : https://github.com/tarantula3/PCB-Christmas-Forest-v1.0/blob/main/Gerber_PCB_Christmas%20Tree%20LARGE%20v1.0.zip
Support My Work:
- BTC: 15cNh9hup8jidCVPwa1DTcxeoh2FPijVrX
- LTC: LbquH9Ku78vHtcm3LZnWXpD1JQWdKzeV4v
- DOGE: DEB2QBAihnBRhGsaB8P7kz559TDiucQhX6
- ETH: 0x5d8c9ba0e54d8354d4af81871db26daa190d2194
- BAT: 0x939aa4e13ecb4b46663c8017986abc0d204cde60
- LBC: bZ8ANEJFsd2MNFfpoxBhtFNPboh7PmD7M2
- COS: bnb136ns6lfw4zs5hg4n85vdthaad7hq5m4gtkgf23 Memo: 572187879
- BNB: 0x5d8c9ba0e54d8354d4af81871db26daa190d2194
Thanks, ca again in my next tutorial.