thefreeman’s HDR Anduril 2 high efficiency drivers - update : FWAA buck driver

277 posts / 0 new
Last post
Forsythe P. Jones
Offline
Last seen: 1 month 3 weeks ago
Joined: 08/15/2021 - 00:40
Posts: 413
Location: California

TK is very actively involved in SW development: see the current dynamic PWM thread for example. It is brilliant.

Regarding the new driver board: I realize this is BLF but given that this is a custom development, I’d rather have a board without compromises even if it costs a lot, than yet another cheap light that Aliexpress is already full of. So I’d want dacs and constant current drivers for flicker free dimming down to super low levels, a low power channel for the moon modes if that’s how it’s done, several aux channels for e.g. RGB pushbutton or rotary control, plenty of code space and cpu so that ramping can be calculated on the fly instead of with lookup tables, and also enough space for a USB communication stack and boot loader to make configuration and reflashing simpler. These are once again amazing times to be a flashlight modder.

thefreeman
thefreeman's picture
Online
Last seen: 2 min 22 sec ago
Joined: 01/06/2020 - 09:56
Posts: 976
Location: France

So to give an update, I received and built updated boards a while ago, I used 0603 and up passives as opposed to the 0402 of my first design :

 

(Don’t mind the poor solder job, I swapped some components here and there )

One issue that bothered me is the whine at low loads, the first driver I built also had some but it was very faint. The 2 others were more audible, I’m more sensible than the average person because I have hyperacousis, hence for me this is unacceptable.
As mentionned in the previous page at low loads the regulator starts to skip pulses for higher efficiency, at some point the frequency enters the audible range and vibrating components (inductor, MLCCs) can make audible noise. In this case the noise comes only from the capacitors and not the inductor.
There are several articles about MLCC noise : for example
They list several things that can influence the intensity of the noise such as :
Mounting orientation, vertical or horizontal internal layer, which are impossible to know in caps with a square section (the vast majority), vertical mounting is more noisy.
Solder filet size : too much solder leads to more noise.

Those two can explain the variation between the 3 drivers I’ve built, I verified the orientation thing by testing a few capacitors on the two orientations and indeed that affects the noise.

I also built drivers based on the TPS61178, but never heard anything despite it also having a pulse skipping mode, the reasons I think are that smaller cases make less noise, I used 0805 caps because I’m running it at a higher frequency, also because it has a shorter minimum pulse lentgh (being able to switch at 2MHz vs 0.5MHz for the TPS61288), so the transients are less energetic.

As mentionned in the article there are special MLCCs with less acoustic noise, the problem is that they are pretty rare, more expensive, don’t exist in 1206 case and up (AFAIK), I did try making those caps on interposer by adding a copper spacer under each terminals (as seen in the pics) it is as annoying to do as it works, additionally after finding the right orientation for the caps the driver makes barely any noise, not a realistic production method though, probably poor reliability too.

They also mention that when mounted on the opposite side of the board the vibrations can cancel out each over, that might be worth a try, along with trying caps with a rectangle square section to identify the internal layers orientation.

Another point is that the TPS61178 TPS61288 can’t maintain 5A@6.5V for long before it starts overheating and hiccuping, that is before the firmware even starts to throttle down, even on 2oz PCB with decent copper pours, in that regard my first design was better because the regulator was located closer to the edge where I could place a lot of thermal vias to a large copper pour on the back, though when located in the center in my second design the layouting is much simpler, by using a smaller batt+ pad (brass button only) I could place more vias. 4A seems to works fine.
I assume that the small size of the TPS61288 doesn’t help for thermal transfer either.

 

 

Anyway due to those issues I designed another driver based on the MP3431 and also built one a few weeks ago, the MP3431 has an ”ultrasonic mode” in which the frequency doesn’t drop below 23kHz (more like 30 in reality), hence no acoustic noise, there is also no need to apply a minimum load with a resistor in order to prevent flickering at very low currents.

(The through hole resistor was for a test)

Unfortunately it was still noisy on the low range, for another reason : unstability Sad . I put it aside to work on other things for a change, I got back to it recently and tweaked some values to make it stable by slowing down the Op-Amp, which leads to another issue : a current spike at startup, mostly visible at the bottom of the high range, I believe this is due to the Op-amp output now taking too long to rise at startup (if OPA output is low > FB is low > regulator thinks the output voltage is too low > need to rise the voltage > more current). This is something that Mike C warned me about and apparently that was an issue on the GXB172 too.


A solution is to delay the HDR FET at startup, there is still a small bump in brightness but it is much less pronounced since the higher value sense resistor limits the maximum current during the spike. Preferably this would be done in software just like the delay needed for the HDR FET when ramping from the low to high range In order to prevent a flash, I explained In detail why this delay is needed here.


Since I don’t have the skill to do that I added the delay in hardware which unfortunately requires 4 components because the delay needs to be only when the FET turns ON and not OFF (otherwise it flashes when ramping down...).
Additionally I improved the layout a bit for better thermal, also did some cost optimisation by using an inexpensive LDO and a better suited HDR FET that is also less costly. I should receive the boards in a few weeks.

  

JaredM
JaredM's picture
Offline
Last seen: 6 hours 50 min ago
Joined: 10/31/2011 - 13:33
Posts: 2386
Location: Pittsburgh, Pennsylvania

Great and inspiring work as always.

Concerning the noise and thermals.. have you considered potting?

thefreeman
thefreeman's picture
Online
Last seen: 2 min 22 sec ago
Joined: 01/06/2020 - 09:56
Posts: 976
Location: France

For the noise yes but I have doubts it will be reliably effective, according to the article it’s not just the caps that vibrate, they make the board vibrate and generate sound. It also makes the maintenance more annoying. I prefer potting to be optional, not required in order to correct a flaw of the driver.

For thermal I’m not sure it will have a significant effect ? But I don’t notice hiccups with the MP3431 at 5A/6.5V, with Mike C’s driver I built configured at 8A it did hiccup but there wasn’t thermal throttling in the test firmware, I think in practice it might not happen. I don’t personnaly plan to run it at those current anyway, maybe 6A max.

JaredM
JaredM's picture
Offline
Last seen: 6 hours 50 min ago
Joined: 10/31/2011 - 13:33
Posts: 2386
Location: Pittsburgh, Pennsylvania

I totally understand the desire to fix the root cause, and would attempt to do that myself.

Just thinking a dense thermal silicone plus a copper disc on top of the potting could really dampen the board and spread heat.

thefreeman
thefreeman's picture
Online
Last seen: 2 min 22 sec ago
Joined: 01/06/2020 - 09:56
Posts: 976
Location: France

Ah another point about the thermals is that I’m using BiSnAg solder, it has the lowest thermal conductivity at 20 W/m.K while SnPb is 50 and SAC 60, though I don’t know how much of an influence it has since the solder layer is quite thin.
I should probably test with SAC.

Forsythe P. Jones
Offline
Last seen: 1 month 3 weeks ago
Joined: 08/15/2021 - 00:40
Posts: 413
Location: California

You just need a software delay added to the code? That should be pretty easy. I’m juggling a few things over the next couple days but should be able to look into it for you. I’m not an expert with the Anduril code but I think I understand its basic operation. Of course others here such as TK could probably make such a patch in a few minutes.

Are you taking feature requests for the hardware? Is it too late for that? I have a few wishes…

thefreeman
thefreeman's picture
Online
Last seen: 2 min 22 sec ago
Joined: 01/06/2020 - 09:56
Posts: 976
Location: France

I messaged Toykeeper a few days ago about it but I haven’t got an answer yet.

I would greatly appreciate it.

What I already did a while ago is to allow to put a pin high or low for a part of the ramp with a modification in fsm-ramping.c : https://pastebin.com/Zz5LgZr1 (sorry I haven’t set up a bazaar account yet) Line 96-108 and 193-200 where I copied the code from LED_ENABLE_PIN (line 84-91 and 184-191) so that I can use the same level_min level_max functionality with LED2_ENABLE_PIN (originally this one is for the second power channel, in multi led channel lights and it follows LED_ENABLE_PIN).

 

Which allows me to put this in the cfg file : 

#define LED_ENABLE_PIN_LEVEL_MIN 1 // boost and Op amp enable
#define LED_ENABLE_PIN_LEVEL_MAX 150
#define LED2_ENABLE_PIN_LEVEL_MIN 30 // HDR FET is on from  ramp level 30 to 150
#define LED2_ENABLE_PIN_LEVEL_MAX 150

On some of my drivers the HDR FET turns ON on pin low so I put that instead :

#define LED2_ENABLE_PIN_LEVEL_MIN 1 //
#define LED2_ENABLE_PIN_LEVEL_MAX 29 // pin low i.e. FET on from 30 to 150

 

So firstly it shouldn’t use the LED2_ENABLE_PIN , adding a few other pins could also be useful for other stuff to be turned on/off a a certain ramp level. (I’m thinking for example about some regulator that don’t switch automatically to pulse skipping mode at low loads, or drivers with more than one LED channel)

 

And then the delay, which needs to be only when the FET turns on (can be pin high or low*) at a ramp level for switching to the low value sense resistor (high current range) and when starting up (specific to the MP3431 to prevent the startup flash but that could be an issue with other regulators too).

*For example I have this driver I just received the boards for : 

   

 

A dual 6A buck with common cathode and HDR for tint ramping, it use two PFETs for the high side sense resistor and are enabled on pin low.

 

Forsyth P. Jones wrote:

Are you taking feature requests for the hardware? Is it too late for that? I have a few wishes...

I can’t guarantee anything but sure ask away.

id30209
id30209's picture
Offline
Last seen: 6 hours 41 min ago
Joined: 05/17/2018 - 12:20
Posts: 2097
Location: Croatia

I love how they look.

Your dedication to details is crazy!

WTB Titanium 4sevens 2xAA tube

kennybobby
kennybobby's picture
Offline
Last seen: 9 hours 45 min ago
Joined: 05/10/2017 - 09:13
Posts: 992
Location: huntspatch, alabama

Ideas for some hardware mods,

If you increased the value of C4 (1nF) it would slow down the turn ON of Q1. Also if you added a cap in parallel to R4 on the input side you could add some delay. And a cap in parallel to R7 would slow down the turn ON. This is referenced from the schematic in your linked post.

For HDR FET, to quickly turn OFF Q2 you should add a resistor in parallel to C6 from the gate to source. Otherwise the gate charge has no path to bleed off.

Now i used to think that i was cool,
drivin' around on fossil fuel,
until i saw what i was doin',
was drivin' down the road to ruin. --JT

thefreeman
thefreeman's picture
Online
Last seen: 2 min 22 sec ago
Joined: 01/06/2020 - 09:56
Posts: 976
Location: France

Ah the linear driver. I think C4 should be kept as the minimum value that can prevent oscillations, any further slowing down would be undesirable, same for C3 that is dependent on the maximum current ripple deemed acceptable.

A resistor in parallel to C6 in order to quickly discharge it would need to be a very low value which will create a voltage divider, Q2 won’t be able to turn on.

Edit :

Quote:
Otherwise the gate charge has no path to bleed off.

It discharges through the diode and then the MCU’s pin, with a resistor (R11) to limit the current.

iamlucky13
Offline
Last seen: 3 hours 5 min ago
Joined: 06/22/2018 - 09:18
Posts: 1040
Location: USA
thefreeman wrote:

*For example I have this driver I just received the boards for : 


   


 


A dual 6A buck with common cathode and HDR for tint ramping, it use two PFETs for the high side sense resistor and are enabled on pin low.

Very cool. I hope it functions as intended. This is really approaching ultimate driver status.

What is the target host?

thefreeman
thefreeman's picture
Online
Last seen: 2 min 22 sec ago
Joined: 01/06/2020 - 09:56
Posts: 976
Location: France

D4v2 (22mm)

id30209 wrote:

I love how they look.


Your dedication to details is crazy!


Thanks Big Smile
thefreeman
thefreeman's picture
Online
Last seen: 2 min 22 sec ago
Joined: 01/06/2020 - 09:56
Posts: 976
Location: France

While waiting for the new boards I measured the efficiency :

Forsythe P. Jones
Offline
Last seen: 1 month 3 weeks ago
Joined: 08/15/2021 - 00:40
Posts: 413
Location: California

I haven’t forgotten this and will try to look into an Anduril patch soon. There’s just been a lot going on here.

Barkuti
Barkuti's picture
Offline
Last seen: 1 day 18 hours ago
Joined: 02/19/2014 - 14:46
Posts: 5576
Location: Alhama de Murcia, Spain

thefreeman wrote:
While waiting for the new boards I measured the efficiency :

Congrats! This certainly is remarkable, although the dip in efficiency at low input voltage and high current is too. Guess this in practice should be inconsequential. I'd love to see figures at 2.8V.

Now I really wonder how other same class drivers fare in this regard. 

The human mind, and its programming, is at the forefront of a particular battle of The Light vs evil dark forces. Nearly every human being on this beautiful planet “Earth” has some sort of negative mind programming in its mind. And you better take care of your mind programming, or someone else will in this wicked world.

Please avoid fully quoting lenghty posts, namely with nested quotes. Trim quotes down to the essential. Helps with neatness and legibility. Thanks.

I recommend saying no to Covid vaccine. Listen to your spirit or soul. Innocent 

Keanu Reeves may need your help. Join his Telegram channel here.

thefreeman
thefreeman's picture
Online
Last seen: 2 min 22 sec ago
Joined: 01/06/2020 - 09:56
Posts: 976
Location: France
Forsyth P. Jones wrote:
I haven’t forgotten this and will try to look into an Anduril patch soon. There’s just been a lot going on here.

No worries of course.

Barkuti wrote:

Congrats! This certainly is remarkable, although the dip in efficiency at low input voltage and high current is too. Guess this in practice should be inconsequential. I’d love to see figures at 2.8V.


Now I really wonder how other same class drivers fare in this regard. 

I’m quite satisfied with the numbers, one thing to note is that I measured this with a current clamp (UT210E) so it’s not super accurate. I do have precision shunts but I still haven’t made a board for them, I’ll need 4 voltmeters too…

At 3V the efficiency indeed decreases more, the input current is 12.65A at 5A out. The datasheet shows higher efficiency at 30W but in my case I have a reverse polarity protection PFET (5.2mΩ max at Vgs=-2.5V) costing ~2% and the 10mΩ current sense resistor costing a little less than 1%. I assume that in their test board they use large traces and maybe even larger copper weight, decreasing resistance and heating, they don’t say what inductor they use unfortunately.

I could gain maybe 1% by using a 1.8uH XAL7070 (4.5mΩ), for the flat version with the XAL7030 there should be a significant difference between 2.2 (15.1mΩ) and 1.5uH (8.4mΩ). I kept the 3rd output cap emplacement to help manage the higher ripple current with a lower inductance.

kennybobby
kennybobby's picture
Offline
Last seen: 9 hours 45 min ago
Joined: 05/10/2017 - 09:13
Posts: 992
Location: huntspatch, alabama

i saw a couple of diagrams in which they used a 1.5uH. Haven’t checked out their evaluation board yet, but that is a little hot-rod of a boost converter.

Now i used to think that i was cool,
drivin' around on fossil fuel,
until i saw what i was doin',
was drivin' down the road to ruin. --JT

thefreeman
thefreeman's picture
Online
Last seen: 2 min 22 sec ago
Joined: 01/06/2020 - 09:56
Posts: 976
Location: France

Yep they do use 1.5uH in the example circuits, I only had 2.2uH 7070 and 7030 in my inventory but I took a few 1.5uH 7030 with my last order.

thefreeman
thefreeman's picture
Online
Last seen: 2 min 22 sec ago
Joined: 01/06/2020 - 09:56
Posts: 976
Location: France

Trying to adapt it to the FW1A/3A.

There are several issues with this light, firstly the shallow driver cavity which doesn’t allow the use of 3mm tall inductors, 2mm tall ones are too anemic to be used with say 3A@6V for a B35AM, or 2~3A@9V for a 3535 triple. I don’t exactly know how deep it is but if it’s more than 2.3~2.4mm then we could use a 0.8mm PCB with a spacer.
The second issue is the flawed stock design of the switch tube assembly, there should obviously be a spring somewhere to account for manufacturing tolerance, but in the case of the use of a handmade spacer it is even more important.

I found small spring loaded contacts that could potentially work :

They are 0.63-1.25mm tall giving sufficient play for the switch tube to make a good connection.

But that means that the switch tube has to be shortened by ~0.8mm, which I suppose should be doable with a file or sand paper, maybe by mounting it on a drill to turn it.

Anyway I don’t have any FWxA, I used webplotdigitiser to get dimensions from the lume1 PCB, but if anybody has one disassembled laying around I’d be thankful for precise measurements.

Quadrupel
Quadrupel's picture
Offline
Last seen: 26 min 20 sec ago
Joined: 12/03/2017 - 10:40
Posts: 754
Location: Lithuania

What’s so special about this host anyway apart of complicated design of back E-switch and tight driver space.

thefreeman
thefreeman's picture
Online
Last seen: 2 min 22 sec ago
Joined: 01/06/2020 - 09:56
Posts: 976
Location: France

Well, as you said, the tail e-switch I suppose, though I’m not a fan of tail switches so you wont find me defending it.

g_damian
g_damian's picture
Offline
Last seen: 6 hours 45 min ago
Joined: 08/20/2017 - 06:52
Posts: 677
thefreeman wrote:
I found small spring loaded contacts that could potentially work

looks similar to manker mc13

Quadrupel
Quadrupel's picture
Offline
Last seen: 26 min 20 sec ago
Joined: 12/03/2017 - 10:40
Posts: 754
Location: Lithuania

BLF Q8 have nice host for creativity and crying for better driver. If you are bored, you can try to design proper boost driver for 6v or 12v led config ;))

thefreeman
thefreeman's picture
Online
Last seen: 2 min 22 sec ago
Joined: 01/06/2020 - 09:56
Posts: 976
Location: France

Do you know the dimensions ? I have an MF01, 4×18650 too :
Driver 48mm
Cavity ID 47mm (not counting the three mounting holes)
Cavity depth 11mm

Ideally it should be a relatively universal 4×18650, 3×21700 boost driver, capable of 1S and 2S input, with say… 2 phases, either 1 or 2 output channels.

Quadrupel
Quadrupel's picture
Offline
Last seen: 26 min 20 sec ago
Joined: 12/03/2017 - 10:40
Posts: 754
Location: Lithuania

Found some pic of Q8 insides Plenty space for 10+mm coil.
Q8 driver diameter about 47.5mm
Here Texas Ace FET+1+N Q8 driver , but you can download source code and use only outlines and drill file ;))
Order from OSH Park

thefreeman
thefreeman's picture
Online
Last seen: 2 min 22 sec ago
Joined: 01/06/2020 - 09:56
Posts: 976
Location: France
Quadrupel wrote:
Found some pic of Q8 insides Plenty space for 10+mm coil. Q8 driver diameter about 47.5mm Here Texas Ace FET+1+N Q8 driver , but you can download source code and use only outlines and drill file ;)) Order from OSH Park

That’s perfect, thanks.

icpart
Offline
Last seen: 1 hour 14 min ago
Joined: 04/15/2019 - 01:13
Posts: 369
Location: Bulgaria

Hi thefreeman. Very interesting progress over your designs. Also I am impressed from your skills in electronic design for that little time you are here in forum. It is interesting about that dual buck driver which you are designed. More interesting is how do you share the current between two DC/DC converters. Are they work in parallel or just that buck drivers are used in dual channel configuration for high dynamic range?
About current spike there is problem with opamp feedback. It is very slow to go in regulation for that little time. Solution is to be used better high speed OP. Some time ago as you I was interested to design some boost driver with MP3431 and TPS61088 and tried some PSpice simulation and that current spike is very obvious. See my post in thread about Convoy MP3431 driver.
https://budgetlightforum.com/comment/1649396#comment-1649396
I think we can share some ideas about improvement of that design.
About FW3A I have the measurement about tail PCB because some time ago I designed PCB for tail swich mod with better push button. Also I made the PCBs but the now because of shortage of components I can’t find buttons in stock now like many Attiny85 chips.

thefreeman
thefreeman's picture
Online
Last seen: 2 min 22 sec ago
Joined: 01/06/2020 - 09:56
Posts: 976
Location: France
icpart wrote:
Hi thefreeman. Very interesting progress over your designs. Also I am impressed from your skills in electronic design for that little time you are here in forum.

Thanks for the compliment Blushing

Quote:
It is interesting about that dual buck driver which you are designed. More interesting is how do you share the current between two DC/DC converters. Are they work in parallel or just that buck drivers are used in dual channel configuration for high dynamic range?

It’s basically two independent buck LED drivers controlled by one MCU.
I guess there are two ways to make a tint adjustable light, either use one power channel that shared via PWM between two LED channel (e.g. Sofirn IF25, tterev3’s drivers), or use one power channel per LED channel.
Anduril only supports the second case, and IMO it’s the only viable way with DC-DC converters otherwise there can be audible noise when the power channel is shared.
That said the HDR function with tint ramping is not supported yet in Anduril.

Quote:
About current spike there is problem with opamp feedback. It is very slow to go in regulation for that little time. Solution is to be used better high speed OP. Some time ago as you I was interested to design some boost driver with MP3431 and TPS61088 and tried some PSpice simulation and that current spike is very obvious. See my post in thread about Convoy MP3431 driver. https://budgetlightforum.com/comment/1649396#comment-1649396 I think we can share some ideas about improvement of that design.

Op-Amps with the required precision have a fairly low bandwidth, the MCP6V66 is a little higher I think but I’m not sure that will change much. To achieve good stability with good bandwidth I think the right way is to use a type 2 compensator instead of type 1 used currently, but determining the right values to use is still a bit too advanced for me, there is also the 2 additional components cost.

That said with the TPS61288 and TPS61178 the output was stable with a low value for the compensator capacitor and no spike at start up.

Forsythe P. Jones
Offline
Last seen: 1 month 3 weeks ago
Joined: 08/15/2021 - 00:40
Posts: 413
Location: California

Is that a battery contact in the center of the board? Do you consider a spring contact instead? That would free up a little board space. Using just a PCB contact seems iffy, especially at high current. There was a guy on CPF who was an aircraft machinist or something like that, who did a bunch of research on contact materials and then made some contact discs from (idr exactly) a special phosphor bronze or something like that. Maybe I can find the CPF thread with the details. He sent me a few of the discs and I soldered a couple into lights, where they worked very well, and I have a few left. I could send you a couple for experimentation if you want.

Pages