I don’t normally do Xmas projects but thought I would give it a shot this year, I had to start thinking about this project before I had even finished the atmega_eyes halloween project which I normally don’t do.

I wanted to make a Xmas decoration, something to put on the mantelpiece or even hang in the tree. I wanted to try out WS2812 aka neoPixels so make it really bright and blinky. It’s basicilly a atmega328 with 6 WS2812 and a button. Let’s take a look at the hardware BOM


Main PCB

Like I said I wanted to try using WS2812 with this project, like most of my project it’s powered by a atmega328. I tried to keep it as simple as possible to get it done in the time frame So I kept the hardware to a minimum.

  • Atmega328 (optiboot bootloader)
  • 16mHz cyrstal
  • 2 x 22µF capacitors
  • 6 x WS2812 LED’s
  • 3X 2 male headers
  • Push button
  • PCB

Charging lipo board

I wanted to use a lipo battery to power this project, Found a lipo charger board suitable for charging a 3.7v lipo battery. I needed away to boost the 3.7v to 5v so I found a DC-DC boost converter. I decided to tie it all together on its oven PCB board along with a switch to switch power to the boost converter and switch between charging the battery and just powering the project.

  • lipo battery 500mAh
  • lipo battery charger
  • DC-DC boost converter 5v
  • 3 way switch
  • JST male/female connectors
  • PCB

Schmatics – atmega_tree_schmatics


I thought that when moving away from Arduino It would be hard to find librarys for things but lucky for me there was a WS2812 library for AVR out there. This is the best library I could find, it also includes library’s for ARM and Arduino if that floats your boat. My only grip is that I had to rewrite the Makefile but other than that it’s a great library, Here is a copy of my Makefile if your interested HERE.

I always try and make my files as open and usable for everyone, You can find all my code for #atmega_tree on my GITHUB along with my gerbers for the board and other things related to the project.


AVR Github code – https://github.com/facelessloser/Atmega_tree/tree/master/avr_code/atmega_tree_final

Gerber files for atmega_tree – https://github.com/facelessloser/Atmega_tree/tree/master/gerbers

Gerber files for lipo battery charger board – https://github.com/facelessloser/lipo_battery_charger

Non square PCB’s

If like me you haven’t delved into the world of non square PCB’s I thought I would give you some tips.

I ordered my PCB’s at oshpark which charge you for the smallest square that your board will fit into, so bear that in mind when ordering because it will be more expensive than you think.

Always check ahead of time with your board house that they will be able to do the size and shape you want


Here are a few tips I picked up while working on this project.

  • When adding a ISP programming headers to your project, Instead of buying these expensive (im a cheap skate) IDC headers just use a 2 x 3 2.54mm pitch male headers. This will also save space on a PCB too
  • When buying non square/rectangle boards from oshpark, they will charge you for the smallest square/rectangle your design will fit into. So bear in mine when designing your board


Time laps

Hardware tour

WS2812 protips


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s