The original LED was a single battery-powered white LED with a large diffuser.
The original LED's circuit board was used to mount the RGB LED as the board fit into the fixture's holder.
The driver circuits for each of the LED's channel had the following requirements:
- Must be constant current.
- Must work with 5.0V--didn't want to need more than one voltage for this project.
A tried-and-true constant BJT/MOSFET LED driver was used. For non-buck/boost drivers, this driver provides probably the lowest drop-out for of any constant-current driver, and it's a relatively low parts count.
With the 2N3904, the voltage between the base and emitter is about 0.5 V. This and the 300mA maximum current per LED channel value gives the minimum value for R1.
As can be seen, the complete circuit is quite simple.
The original plan would've placed the circuit in a much smaller enclosure so the layout is more compact than required.
The perfboard itself ended up being an almost perfect fit for the enclosure chosen. A snip of diagonal pliers on each corner finished that fit.
The soldering was a mess. It was made even worse by a couple of mistakes that fortunately didn't fry anything before diagnosis and repair.
A barrel power connector was installed in the side of the enclosure, and a hold was drilled for the light's wire. Additionally, a connector for the wire, rotary encoder module, and programming header was installed.
All the inside was done and ready to close up.
U.S. quarter for size comparison.
The control panel underlay process is straight-forward, and is documented here: https://github.com/oelgern/box_underlays/wiki Be sure to check it out.
The finished controller uses a wall-wart (not pictured) for power.
A white wire hanger was used to hold the light onto the tree.
The project repo--contains schematic, board layout, control panel, and source files--can be found at: https://github.com/oelgern/crm114b
The control panel template repo can be found at: https://github.com/oelgern/box_underlays