Here goes. Hopefully I didn't mess anything up. Your risk, not mine. Only buy and build what YOU want. I have nothing to do with it. :)
Parts list for 16.8V input, 12V nominal output, driving 4p xhp-35 at 2.5A per LED, 576 khz, 10A total (can go higher, but it’s an experimental driver)
The Parts
(see shopping list below if impatient)
MCU: Attiny85 the normal one, attiny85-20SUR I believe is usually fine. V version is also fine I think. (However if driving with 4.2V an attiny85V should probably be used because this driver presently requires an LDO for the mcu even for 1S batteries and the LDO will need to operate below the lowest battery level, needs more thought though and wil require some resistor value changes)
LDO: MIC5235 3.0V (other voltages CAN work, but require some resistor value changes)
Buck IC: LM3409 10-MSOP-PowerPad (or EP)
Inductor, must be 17.15*17.15mm or very close. 10uH absolute minimum inductance. 30mohm max resistance.
Vishay IHLP6767GZER150M11 is a good choice since resistance matters most. It's very expensive though, $6!!, but other alternatives are about the same.
Diode, "8PowerTDFN" (might be compatible with similarly named footprints?) STPS30M60DJF-TR has a low 0.5V Vf and low leakage current when hot.
Mosfet:
Powerflat 5x6 p-channel FET (PFET), Infineon BSC084P03NS3 G Balances low Rdson with low gate capacitance. Gate charge divided by voltage should be less than ~12nF at worst. Half that is better. Rds on should probably be less than 20mOhm at worst. Low Rdson is good for high power. Low gate charge is good for low-current efficiency. It's usually some tradeoff.
Caps:
C2 10.uF 0805, Vcc bypass 4V minimum, 6.3V or more highly preferred, 10%
Cf 1uF 0603, Gate drive bypass, 16V 10%
C1 10uF 1206 , LDO input bypass, 35V 10%
Cf2 10uF 1206, Iadj voltage filter, 4V minimum (6.3 preferred). 10%, x7r preferred but 125C rated should do. Alternative: 220uF for soft mode transitions. Tantalum and high ESR (ohms even) are OK here.
Cin 10uF 1206 or 1210, Input cap, 35V 10%, two minimum, 3 x 1206’s should fit. 4 might fit and is even better. <20% dissipation factor at 1Mhz, 10% prefered.
Co 10uF 1206 or 1210, Output cap, 35V 10% One is enough but two is insurance. <10% dissipation factor (5 is better), with good performance up to 1Mhz.
Just buy ten of 1206 10 uF caps and you’re set. Cin and Co should be high quality caps.
Coff 470pf 0603 35V Buck off-time cap.
All caps should be ceramic unless stated, X7R or better strongly preferred (125C or higher rated) .
Resistors:
R1 220k 0603 for e-switch 22k for clicky maybe. (with OTC mods now under development, the clicky issue will dissappear)
R2 12k 0603 for e-switch, 1.2k for clicky maybe.
R5 4.7 ohm 0603 1/8 to 1/4 watt might be wise here, but 1/10 should be ok I think.
BR This has no purpose on this light. You can use the pads to get voltage for wiring something.
Rf2 3.9K 0603
Rf3 2.7K 0603 (Could use 4.7k and 3.3k also for a little softer mode transitions with the 220uF cap)
Roff 4.7k 0603 with the 470pf Cf, this will give very roughly 580 khz, which seems ok.
Rsense, 2512, current sense resistors, X 3. 0.074 ohm each, 2W rated, adjusted for max current, see below.
Ruv2, any value, 0-ohm is even ok. 4.7k is also fine for example
Ruv1, leave off.
All resistors should be 1% tolerance, rated for high temperature, 155C preferred, 1/10 W or more unless specified
Jumpers
You will need to jumper the battery pad to 4S for this setup. That requires 1 jumper. To my surprise most SMD jumpers are specced only at <50ohm. Vishay has some in 1218 and 2010 rated to < 4 or 5 mohms and 12 to 20 A for about $0.50 cents each. Personally, I'd just use some solid copper wire.
Adjustments
RSense
Max current occurs at 0.248V drop across Rsense.
So Rsense_total=0.248/Imax.
But there are three resistors, so if they are the same, they should each be:
Rses1=3*0.248/Imax. Err on the high side of resistance values to be safe.
But no software adjustment can ever make the current higher than the max value set here.
Ex: 2.5A for xph35*4= 10A total.
Rses= 3*0.248/10=0.074 , closest match, 0.075 ok.
Soft mode transitions:
To achieve slow (~0.33 s RC) you can use a Cf2 of 220uF and adjust speed by increasing or decreasing Rf2 and Rf3. Some options are:
Rf2: 3.9K, Rf3: 2.7K (flintrock's favorite) ~0.35s RC time
Rf2 4.7K, Rf3 3.3K ~.43s RC time requires one less new value. Much larger and the current control circuit gets an offset, but it should be < 0.7% offset with these values still. Twice as high could still be ok but I think these RC values should feel nice. PWM will be used to get lowest modes anyway so a small control offset is ok.
These are chosen to prioritize standard resistor values, but either matches the max control voltage to better than 1.2% after bias current correction. For best precision you can use a 1.02K and a 715ohm, but won’t get very soft mode transitions and probably won’t notice the precision improvement. If you’re using a 10uF cap anyway, then you can as well use these lower resistor values.
Expert tuning:
Roff:
In brief, increasing Roff decreases buck frequency, nearly proportionally, and of course decreasing Roff increases frequency. You can vary it by about twice in either direction. Higher frequency uses more switching power which is important for low power modes, however lower frequency has more ripple current which also impacts low power modes. For middle modes, low frequency is best. For lowest modes, it's not clear yet (maybe never will be).
The frequency of the buck is determined by the offtime and the duty cycle. The duty cycle is approximately Vo/Vin. The off time is given by equation 4 in the manual:
http://www.ti.com/lit/ds/symlink/lm3409-q1.pdf
or approximated by equation 6 (might as well use 4).
The frequency is (1-Vo/Vin)/t_off. As Vin gets very close to Vo this approaches 0 frequency, so as you near direct drive for low batteries or high current, the buck just stays on. For 16.8V in and 12 to 13V out, a good frequency target is probably around 500khz.
Iadj:
Rf2, Rf3, Cf2, LDO voltage, and a pwm duty cycle all determine the current set point. This set point is controlled by a voltage intput to the IC and you can read about how that's achieved here:
Only duty cycle should really need to be adjusted though (through software modes) for current control. Max current is adjusted with the sense resistor, not with this. Of course software could limit the duty cycle, but that’s not the safest approach to limiting current.
LM3409 low voltage shutoff
Ruv1, Ruv2 are the voltage divider for buck IC shutoff. This is redundant with MCU shutoff. You can leave off Ruv1 entirely and use pretty much any value at all for Ruv2 then. This will disable this feature.
If you want to use this feature, there are two concerns, the cuttoff value and the hysteresis. If the IC cuts off at 2.7V but the unloaded battery voltage recovers to 3.1V and the hysteresis is only 0.1V, it will immediately turn back on because the IC is still powered. There is no mechanism to interface this with software to lock out or lower the mode, so it will probably flicker on and off. Best is probably to have very large hysteresis. Presumably a power cycle will reset the hysteresis and mode programming that starts in low modes could allow the light to be turned back on at lower power, so the best solution is probably to use a large hysteresis. Hysteresisis in volts per cell h is:
h=.000011*V*Ruv2
Then
Ruv1=1.24*Ruv2/(Voff-1.24)
So a 110k Ruv2 would give 1.2V/cell hysteresis, should be enough, and pairs well with a 33k Ruv1 for a 2.7V cuttoff, 36k for 2.5V, or 30k for 2.9V. These are not included in the default shopping list. The default shopping list leaves this feature disabled.
Shopping list
Digikey carts will apparently expire and they only work on digikey.
This is better:
References | Quantity | digikey | Description | ||||
U1 | 1 | ATTINY85-20SURCT-ND | IC MCU 8BIT 8KB FLASH 8SOIC | ||||
LDO | 1 | 576-2783-1-ND | IC REG LDO 3V 0.15A SOT23-5 | ||||
U2 | 1 | LM3409MY/NOPBCT-ND | IC LED DRIVER CTRLR DIM 10MSOP | ||||
L1 | 1 | 541-1287-1-ND | FIXED IND 15UH 14A 14.4 MOHM SMD | ||||
D1 | 1 | 497-12421-1-ND | DIODE SCHOTTKY 60V 30A POWERFLAT | ||||
Q1 | 1 | BSC084P03NS3 GCT-ND | MOSFET P-CH 30V 14.9A TDSON-8 | ||||
C2 | 10 | 1276-2872-1-ND | CAP CER 10UF 16V X7R 0805 | ||||
Cf | 1 | 311-1446-1-ND | CAP CER 1UF 16V X7R 0603 | ||||
Cf2,Cin,Co,C1 | 10 | 1276-6767-1-ND | CAP CER 10UF 50V X7R 1206 | ||||
Cf2 alternate | 1 | 490-13970-1-ND | CAP CER 220UF 6.3V X5R 1206 | ||||
Coff | 10 | 1276-1094-1-ND | CAP CER 470PF 50V X7R 0603 | ||||
R1 | 10 | 311-220KHRCT-ND | RES SMD 220K OHM 1% 1/10W 0603 | ||||
R2 | 10 | 311-12.0KHRCT-ND | RES SMD 12K OHM 1% 1/10W 0603 | ||||
Roff, Ruv1 | 10 | 311-4.70KHRCT-ND | RES SMD 4.7K OHM 1% 1/10W 0603 | ||||
R5 | 10 | RNCP0603FTD4R70CT-ND | RES SMD 4.7 OHM 1% 1/8W 060 | ||||
Rf2 | 10 | 311-3.90KHRCT-ND | RES SMD 3.9K OHM 1% 1/10W 0603 | ||||
Rf3 | 10 | 311-2.70KHRCT-ND | RES SMD 2.7K OHM 1% 1/10W 0603 | ||||
Rsns | 3 | 696-1670-1-ND | RES SMD 0.075 OHM 1% 2W 2512 |
See section above about the battery contact jumper, not listed in this table.
The 10 uf 1206 Ci Co caps keep going on backorder. That's because they are cheap and seem to be really nice caps.
These are an alternative, at twice the price, and slightly worse ESR, but still good and maybe available much faster: 1276-3103-1-ND, or 1276-3102-1-ND
USING THE SHOPPING LIST:
You can install
https://1clickbom.com/ in firefox (doesn't work as well in chrome)
And cut the table above and hit paste in the browser tool, and "complete" (hit complete several times actually, waiting for it to update between each, seems to help) to get shopping carts at all digikey, mouser, Newark, Farnell, (no arrow :() .. Click the add to cart icon on each to automatically create a shopping cart on any of them. Click "copy" and you get a table with part numbers from all of them. It's pretty nice actually. Of course a few parts are missing at mouser etc because these were chosen at digikey.
Updates, changed C2 to 10uf and now 0805, as needed for LDO. Chanted R1 and R2 to work with 1.1V reference as now standard in bistro.
-Removed JMP from cart, added Jumper section for battery jumper explanation.
-Updated description of BR in line with this board.