Just before Christmas my mother asked me about fixing an old fiber-optic Christmas tree that she had. I opened it up to discover that the color wheel had already been replaced with a mirror, a 12v 20W halogen, and a non-original color wheel.
It was also evident that it had been hot enough in the past to partially melt the housing.
I told her that I could probably not fix it for this year but after Christmas I would look at upgrading it to LEDs. I then proceeded to research a simple RGB LED driver circuit. I settled on an ATtiny13 and some transistors I had laying around. I found several example circuits and firmware, todbot and unixbigot. Both of these are very similar, however my final design is based on the second and uses his firmware.
Once I had a prototype on a breadboard I decided to do a quick layout in Kicad to help position the components on the perfboard. I then used a 1:1 printout to mark the locations of the components.
To power the project I wanted to use the existing barrel jack connector since it already fit in the housing.
This worked well as common 5.5mm x 2.1mm plugs fit. The next problem was that I lost the 7805 chips that I had, so I tried using a LM317 this worked however it gets very hot. So I ordered some new 7805 chips and wired that up to regulate the wall adapter to 5v.
There are more pictures here