Brief introduction
In China‘s DIY market, we often use Flashlight housing like DDH-D8B combined with Luminus SBT90.2 Emitter to create a far distance thrower type flash light. This housing can accept 30/32mm driver /w 14mm maximum height. But we did not have many options when selecting a proper driver for it. At the beginning I tried several Direct Drive or Buck type Driver and they did not work properly(even I got it properly installed) and fried my emitter for two times. So that’s why I created this project for a brand new 32mm 3S1P 21700 LI-ION Input buck driver perfectly suited for SBT90.2 emitter. Which Capable to drive SBT90.2 emitter to 33 Amps of current /w efficiency up to 98%.
Performance and etc.
This is the Physical look of the driver. The copper looking things which is a custom fabricated copper block to effectively conduct heat from MOSFET and inductor to housing via thermal gap filler to keep the MOSFET away from overheat.
performance
This Driver includes a runtime and error logging system which will log a lots of information during Flashlight Running. This allow enthusiast user and manufacturer to track runtime statistic and find out what causes driver failure. this is a log example which shows a lot of information which collected by this system. The red circle means Average LED power and green circle means Average Battery Power. and the driver efficiency can be calculated by Output divide by input power which is 107.59/110.59=0.97729=97.729%
and here is a brief performance information of this driver
- Topology : ‘Shunt-Less’ Average Current controlled Constant Cureent Buck.
- Input : Accept any type battery between 8.6-14.5V
- Output : Any 3V typical Vf LEDs for 8.6-14.5V input and capable to driving it up to 45Amps . for 6V LEDs you need at lease 9.6V input and maximum current will be limited to 35 Amps.
- Dimming method : hybrid dimming. 20KHz PWM dimming for 0.5-1A output and 16bit Analog DC dimming for any >1A output.
- Firmware System : FlashLight OS Version V1.4.5 by redstoner_35(Me). Configurable via built-in USB Type-C console port on driver via embedded CLI or visual config file editor. No side key sequence(like double click & hold in Anduril) required.
- Current regulation accuracy : ± 2%
- Battery telemetry accuracy : ± 5%
- Processor Subsystem : Holtek Semi HT32F52352 32bit ARM Cortex M0+ MCU running at 48MHz.130048 Bytes of Code Space and 65536 Bytes of EEPROM to store log and config information.
- Thermal Control : PID based constant temperature control, configurable via embedded CLI or visual config file editor.
- Standby Current : 17mA @ P1(MCU is running at full speed and all peripherals enabled wait for user operation) 150uA @ P2(Deep-Sleep mode, MCU is clocked down to 32KHz and nearly all peripherals has been Disabled, This mode will automatically entered when no operation after a user programmable prior)
Hardware Architecture
Typical Buck LED Driver will use something like this. A Constant Voltage type Buck Controller(Like LM24702) which controls a pair of MOSFET in monolithic half-bridge configuration to chop DC into High Current PWM pulse and go through an inductor to smooth current into a nearly stable constant current which goes into LED’s Positive lead. after going through LED, the current will be sensed by a shunt resistor than amplify by some kinds of OP-Amp to voltage signal with proper level than fed into controller. Controller will adjust duty cycle based on this signal to archive constant current.
As the beginning, I thought its impossible to fit a 40A+ capable constant current buck converter in a sardine can like 32mm PCB via old school method.
But after I got inspired from CPU VRM on computer motherboard. I got a crazy idea which no one ever to try it in FlashLight driver. That’s using INTELLI-PHASE DrMOS solution. Than I Came up with a topology like this.
In this topology, The ouput of PWM Controller will be converted to Tri-State PWM Signal than being accepted by DrMOS and being use to control internal highly optimized MOSFET. For Current regulation, the DrMOS will provide a current source type sense output which is internal thermally compensated. Then I just need to use a simple circuit to provide BIAS and convert current output to differential voltage than fed into the PWM controller. because the current sense is loselessly sensed by Rds(on) of internal MOSFET. Means no external Shunt resistor is needed to regulate the LED Current. this crazy idea has four benefits.
- No need to consider footprint cost and thermal management of shunt resistor.
- No extra power loss by shunt resistor can improve efficiency.(for example, 35A LED current will generate 35^2*(5/1000)=6.125W Power loss on a 5mOhm shunt resistor)
- No isolation is required for Negative terminal of LED means much easier installation.
- No thermal drifting of shunt resistor for much accurate current regulation.
Also, DrMOS has a pair of highly optimized FET and packed with suitable driver which capable running at extreme high switching frequency to allow me to reduce the size of output capacitor and inductor. In my design, I choose a extremely high switching frequency of 1.1MHz. That means a 10x11mm footprint Coil Craft XAL1010 inductor can meet the requirement. for comparison,typical buck LED driver with external FET can only runs at 300-500KHz and require a much larger size inductor like 17x17mm(1770) to met desired Saturate Current (Isat) requirement.
Example flash Light build using this driver
This is three example far distance type thrower I build using this driver and DDH-D8B housing. Two of them is SBT90.2 White emitter drive to 33Amps when turbo activated. And the last one is using SBT-90-R red emitter which drive to 25 Amps when turbo activated.
About FlashLight-OS
I also designed my firmware system for this driver. because this driver has a much powerful 32Bit ARM Processor running at 48MHz, that means I can create a very usable CLI based config system and also allow visual config edit in a PC. So that what i came with.
After the firmware complete power-on self-test sequence, the driver will boot into a built-in intractable CLI for tuning which you can access via built-in USB Type-C Ports on the driver. This CLI is very user friendly like bash inside a linux. you can use Tab to automatically complete the command and parameters. press Ctrl+C can force the CLI to interrupt the current task.
This Driver also includes a very powerful log system. Which will collect information while flashlight is running or experience a fault. this allows enthusiast user and manufacturer to track runtime statistic and find out what causes it when failure occurred.
In runtime log, this information is being collected:
- Average and Maximum LED forward Voltage.
- Average and Maximum LED forward Current.
- Average and Maximum LED power.
- Average and Maximum LED Temperature.
- Total LED runtime.
- Average and Maximum temperature of driver MOSFET.
- Average and Maximum temperature throttle level.
- Average and peak efficiency.
- Minimum, Average and Maximum Battery input voltage.
- Average and Maximum battery current.
- Average and Maximum battery power.
- Total Discharged Battery Capacity.
- Battery UVLO Alert count.
- Battery/LED Over-Current fault count.
- LED Open/Short circuit fault count.
- LED/Driver over-heat fault count.
- Other Fault count.
Also, this driver has a built-in self-test routine called ‘Pre-biased-startup’. Driver will push a very small current into LED in order to make sure LED is properly connected before push full current into it. this can prevent catastrophic failure cause by improper LED connection or failed sub-system in driver itself. If error occurred during self-test. The driver will power-down immediately and log error information into ROM for you to trace what happened.
(Sorry About the missing picture, After I complete the editing,the forum said I can only put one picture in this topic as a new user)

