I have been struggling with a silly 2x 18W fluoro tube light on the ceiling of my workshop for quite a while now. I have been wanting to upgrade it with more up to date LED's.
Now, I have used Cree's CXA2011 chips before and they are fantastic, but a bit of a nuisance to drive because they operate at 42V which is quite high. Late last year Cree added some new chips to their CXA range. I went for the CXA2520, which is easier to drive at 36V and produces more light than the CXA2011 modules.
So, it was time to design a driver for the CXA2520. As I am converting my workshop power to off grid, a 12V lamp would be ideal so that I don't have to convert to 240V and then down again to drive the lamp.
Micrel provided the answer for me in the form of their MIC3223. It was cheap, operates from IIRC 5V -20V input, provides programmable constant current up to 1A and can boost up to 37V MAX. Another bonus is that the switch is built in to the MIC3223, so no silly external MOSFETs are required. It switches at 1MHz. It even accommodates PWM dimming control, but you need an external MOSFET for that function of course, but no big deal.
All you need is an inductor, a snubber, diode, a few resistors for programming constant current, high voltage cutoff point and a few capacitors for decoupling.
All of the external components will fit within 1206 packages, so a nice easy, small single sided board layout can be used.
I designed my circuit pretty close to that described in Micrel's datasheet.

I designed the board in Eagle, but I have made it larger that it needs to be because the larger dimension fits nicely inside the case that I intend to use.
I soldered it all on by hand because my PID oven project has ground to s shuddering halt.

This is the LED on a temporary heatsink for now.

At first the circuit powered up and worked straight away - which was a bit disappointing. However, the fun began when the LED started flashing on and off at 1 or 2 second intervals.
After much debugging, I figured that the bottom pad, which is also pin 17 or EXP on the diagram did not flow. I figured this by the higher than expected temperature of the MIC3223.
I gave the board a quick whirl in my trusty frying pan and then everything worked as it should. The MIC3223's temperature dropped too.
At 12V we are consuming 1.7ish Amps. 20.4W.
On the output, we are running at about 35.5V, 545mA. 19.34W
This makes the circuit about 94% efficient.

The LED current remains constant with input voltages as low as 5V and I've taken it up to 18V with no problems. MAX Vin is 20V. With such low input voltages, I could even make a bicycle light with two Lithium batteries

Of course the current increases, but there you go.
The LED can be driven harder than I am, but I'm not so sure it's necessary. The current tube light measures 100 lux from the ceiling with the light meter on the floor. The single LED measures 160 lux and 100 lux if it's 1 metre off axis from the light meter. I'll be making four such lights.
Next thing is to do the mechanical bits. I'll update when it's done.