Hello, folks. I’m new here. I basically run a small electronics design and manufacture shop (by small I mean I’m the only tech and I got two guys doing assembly 4 days a week) in the US and decided a few months ago that I’d try building a flashlight driver. I’ve gone through a couple concept prototypes and will shortly have some 17mm disc PCBs of a functonal design in hand. I have a 501b body and a small zoomer in hand to play with, as well as a handful of XM-L2 U2 LEDs. I’m new to the culture so please excuse my lack of familiarity with terminology.
What I’m working on uses a voltage-mode buck regulator intended to pull from a single 18650 and provide up to 2.5A of current to the LED. I know that’s not a lot for some of you guys but it means around 800 lumens from an XM-L2, which I think would be pretty good for a single-cell pocket light. Current is monitored through a small series resistor and current sense amplifier and periodically sampled by a microcontroller’s ADC. The microcontroller adjusts the buck regulator output on the fly, initially to ramp up to target current and then to calibrate it as conditions (LED temperature, battery voltage) change over time. The buck driver is capable of 100% duty cycle so it goes into direct-drive mode when battery voltage is insufficient for desired current.
I haven’t coded in mode switching yet but it’s possible. Last-mode memory is also possible. Strobe modes will be fairly trivial as the micro can set the voltage arbitrarily lower than LED’s Vf and then snap it back to a target setpoint quite rapidly. Toggling the buck controller’s enable line would be simpler but would be wasteful due to output capacitor discharge. Brightness is directly controlled by adjusting LED current without the need for linear regulators or PWM FETs so it should be quite efficient and flicker-free.
The microcontroller can also monitor battery voltage and completely power down the buck driver when it reaches a minimum threshold.
I’m currently designing around a PIC12F1571 but the 1572 has twice the code space and would therefore be more desirable for anyone wanting complex modes. The PCB as designed has some test points for easy in-system programming of the microcontroller.
I plan to get some efficiency curves from various cell voltages and current setpoints, which should help make predictions about battery life under various conditions, once I have my PCBs in hand. The design prioritizes efficiency and reliability.
Eventually this will become a commercial product (firmware source will be available, but written in assembler because it’s better), assembled in and sold from my shop in Missouri, and at that time discussion will shift to the appropriate area of the forum. For now it’s just an R&D project and I figured I’d seek advice on desirable features and such from people who both know and care more about flashlights than I do. I think this is the right place, but if it’s not feel free to move this thread.
If it goes well, I may try and learn more, work on higher-current versions for larger lights. Might see what I can do with a buck/boost for stable brightness in the bottom half of the battery’s discharge curve. Who knows.
So, any opinions? Criticisms? Anything I’ve foolishly overlooked? Anything I’m doing wrong?