"Singing" Christmas tree


NEW UPDATED VERSION, december 2009: uses more advanced PIC16F628A, some additional functionality like soft LED flashing (PWM dimmer) and two LED flashing styles has also been implemented.


More stable internal PIC oscillator (4 MHz) rather than external RC oscillator circuit clocks the CPU now.


Key (TI1) functionality: Push and hold the key at power up (MCU reset) to cancel authomatic melody plaback triggering every 60 minutes. Push and hold the key during LED flash for longer than 1,5 seconds to switch between LED flashing programms.


Printed circuit board (link below) is 600 dpi GIF. The necessary PIC fuse settings are contained in the firmware file (.hex).


Circuit schematic



Firmware 16F628A hex file

Photo assembly



PREVIOUS VERSION: uses older PIC16F84, consider this version as obsolet.


I have designed this Christmas toy in November 1997. Since that time over 20 examples have been successfully finished and given as gifts to the friends. There is not much to say about it. Everything could be seen from the circuit schematics and PCB layout. The compiled hex file is for PIC16F84 and already includes fuse settings. It is necessary for WDT fuse to be set to OFF and oscillator type to RC. The circuit doesn't need any tuning. Maybe the value of the capacitor C2 should be changed slightly, if "tempo" of the music, played by this Christmas tree, would be too fast (increase the capacity) or too slow (lower it). The voltage regulator is not needed, if four dry or NiMH mignon (AA) cells are used as power supply. If they are a "Duracell Alkaline", they should last much more than 100 hours. In this case it is necessary to implement "low currant - wide angle" LED to get enough brightness also when watching the Christmas tree from the side. In the case this Christmas tree is power supplied from a "wall-adapter", the value of the resistors, connected in serial with LED, may be decreased and normal "currant-wasting" J LED may be used.


Circuit schematic


PIC 16F84 hex file

Photo 1

Photo 2


Back to S56AL page!