35's Xtern Ripper V1.0 High Efficiency 32mm Buck Driver

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)

9 Thanks

Here is the example far distance type thrower flashlight that I created for this driver to show the capabilities of them. The red beam one is using SBT-90-R Red emitter with 25Amps of driving current. The other one which uses SBT-90 Gen2 emitter with 33 Amps of driving current.
IMG_20230805_000109.jpg

Welcome to BLF @redstoner_35 and nice first post right there :grin:

Indeed those VRM PMICs seem quite suited for powering SBTs in a small amount of space considering their original purpose, the integrated current monitor is quite practical.
The driver looks very nicely made, very professional :+1:

I’m curious about the purpose of the two massive diode(?) On the back ? Also is the 1mΩ sense resistor for Iin monitoring ?

1 Thank

Welcome! Impressive design. Lots of smart people seems to enjoy this forum.

1 Thank

thanks. Those diode lookings things are SMD tant.polymer capacitor uses as the input bulk capacitor to reduce input ripple.
The 1mOhm shunt is use for batttery sensing as three function. The first one is capture battery information for log system and UVLO. And the second one is use as columb gauge to provide accurate battery life information based on discharged capacity instead of guessing via battery voltage. Lastly its use for backup current regulation error detector. The driver will automatically determine a threshold via your mode setting. If battery output is greater than these value the driver will immediately shuts off to prevent output too much current and fried the emitter.

Ah yes that makes more sense.

1 Thank

yea, And also after I finish bug testing for about two month, I’ll gonna to release the entire firmware source code and PCB design to github as a open source buck driver project. And a dual phase interleaving version at 46mm size is In development which capable of over 100Amps for 3V LEDs.

2 Thanks

Very cool, I’m eager to see it.

So it goes only down to 0.5A? That’s an arbitrary limit ? With PWM dimming it should be able to dim much more no ?

That 0.5A limit is because the PWM controller has a minimum pulse width limit of analog dimming pin. so If the duty cycle goes too low,the controller will just turns off because it will considered the very short pulse width dimming signal is noise and ignore it. After a week of tuning,0.5A is the minimum current that I can get without LED goes off or blinking randomly.

You are using a PWM controller ? not outputing PWM directly from the MCU? Or do you mean the 20ns or so min pulse width ( looking at a few MPS DrMOS datasheet) ?

yep, I didn’t use MCU to output PWM and direct control the DrMOS. That method is not safe because If MCU has some internal trouble or software lockup. the current regulation will lost control and kill the emitter. Also MCU’s PWM timer did not have enough accuracy when set to 1.1 MHz output.
So I use an extra PWM controller from Linear Technology. And that minimum pulse width limit is the built-in noise filtering mechanic of Analog dimming input for that controller. (even they did not list in datasheet) And any input that shorter than 1mS will be ignored.

There are microcontrollers that are specifically made for digital control of dc-dc converters like STM32F334 or TI C2000, the smallest are in 5x5mm QFN package so they should be viable for a flashlight driver.
Then you wouldn’t need the PWM controller and you would have better control of the PWM signal.

1 Thank

Attiny1616 loaded with soft to switch few GAN mosfets, no?

This sounds like an interesting driver. I got a few DDH hosts as well and the 32mm driver size is not very common. Also, the increased efficiency of a buck driver over a FET driver is intriguing.

I would be glad to buy or build (if it is not too complicated) one of these drivers.

A FET driver is technically the most efficient, but when PWM dimming the LED efficacy is lower since it’s pulsed at full current ( edit : not just the LED, the cell, the wires, springs etc, because conduction losses increase exponentially with current)
A well designed high current buck like this is only very slightly less efficient, but the LED efficacy durring dimming is much better, hence the whole system efficacy is as well. + full regulation and in this case and also more current than what can be achieved with direct drive.

3 Thanks

this driver has two double sided 4 layer PCBs with over 120 parts. most of them is 0402 size capacitor/resistor and a lots of very small(2x
2mm) SON-8 parts. so it won’t be an easy job to build by hand. it tooks me 4-6hours to build one.

2 Thanks

Also buck driver has a much less ΔI/ΔT because the current always passes through LED without pulsing. That means much less EMI and reduces the chance of making annoying noise during dimming operation. For example, my LUMINTOP GT-98(uses FET driver /w Andruil 2) always make very annoying beeper like noise(only goes away when turbo activated and FET keeps on without PWM) when dimming.

And one more things that I did not mentioned is that Type-C port on the driver also can be use for DFU. If you hold the side switch before plug-in the USB cable to that port than plug it in,the driver will boot to USB DFU mode and you can upgrade/downgrade the firmware directly. No programmer or special equipment required, just need a simple USB cable.

3 Thanks