Hardware
.
Datasheets
Boost Controller PAM2803
MCU ATtiny13A
Diode (3A) BAT60A
Mosfet IRLML6244TRPbF
Mosfet NXP PSMN2R4-30MLD
Inductor Coilcraft XFL5030
Inductor Wurth 744316220 5040
.
Circuit Diagram
This is the basic schematic for the shared boards.
Version 17C and 17D have an additional gate resistor R4.
.
Partlist Overview
This partlist overview is based on the recommendations in the PAM2803 datasheet and the parts that are used in the FastTech driver.
Boost Controller
Diodes Incorporated PAM2803
SOT-23-6
L1
Inductor (L), min. 2.2µH, 4.7µH recommended
DC resistance (Rdc) as low as possible, 2A current rating, size according to PCB used
All commercially available driver with PAM2803 seem to use 2.2µH
D1
Schottky-Diode (D), min. 2A, Vf as low as possible
size according to PCB used
C1
Input Capacitor (Cin)
min. 2.2µF, X5R or X7R recommended
I recommend 10µF
SMD0805
C2 / C3
Output Capacitor (Cout) and Decoupling Capacitor for MCU
I added C3 in parallel to allow easier adding of capacitance
Combined value: more than 10µF, 18µF seem to work, 22µF recommended,
(datasheet says: min. 6.8µF for the boost circuit, but even 10µF are not enough for working reliably with MCU)
X5R or X7R recommended
SMD0805 (C2) / SMD0603 (C3)
R1
Current Sense Resistor (Rs / R)
~0.120 Ohm for 750mA (2cell)
The PAM2803 datasheet has a table for Rs/output ratio
SMD0805
Microcontroller Unit (MCU)
ATTiny13A-SSU
Package 8S1
FET
N-Channel
SOT-23-3 or LFPAK33
R2
Resistor between LED+ and GND, derived from FastTech driver
(and value might vary with production batch)
150 kOhm (“18D” / “154”)
SMD0603
R3
Pulldown Resistor between gate and source
(value is definitely varying with production batch)
33 kOhm (“333”) / 10 kOhm (“103”)
SMD0603
R4 (only 17C and 17D)
Gate Resistor between Pin6 and gate
~33 Ohm
SMD0603
OTC (optional)
Off-Time-Capacitor
1µF, X5R or X7R
SMD0603
.
Board Design Goals in Eagle
- leave enough space for the Pomona programming clip
- place LED wire pads straight across each other
- no components on spring side
.
Board Size
Oshpark boards are not covered with copper to the very edge of the board, the fab leaves a rim of 0.3mm bare PCB. That’s why all my boards have their radius increased by these 0.3mm. The boards are 15.6mm and 17.6mm in overall diameter, so the actual copper ground ring is 15.0mm and 17.0mm.
The boards have to be sanded down, but having copper right to the edge
- makes soldering GND to a pill much easier
- helps a press fit driver to make better contact and
- helps with current and heat.
.
Assembling a driver
I recommend a reworking station, I use a - quite cheap - Youyue858D+. I consider hand soldering a real challenge on these boards.
This is mainly because the 0805 and 0603 parts are not standard eagle-size but custom made with a reduced footprint. When creating the brd-files I quickly realized that there is not enough space for standard parts.
And when harvesting the components from the FastTech driver a rework station is ideal anyway.
Always check for continuity, or to be precise: check there isn’t continuity where it’s not supposed to be. The parts are really packed together tighly, they only just avoid clearance errors in eagle. So there is a risk for shorts.
.
Low Voltage Protection (LVP)
Toykeeper hinted that Eneloops get damaged when drained completely, so an LVP might be useful. The boost circuit continues to suck energy from the cell even if the LED does not light up any more.
LVP comes in 2 flavours: warning and cutoff. Cutoff being the crucial part here. So far the ideas are
- cutting PWM to the Fet
- shutdown the PAM2803 (Pin4 SHDN) via the ATtiny
- shutdown the PAM2803 with a voltage divider at Pin4
With primaries (lithium, alkalines…) a cutoff is of course unneeded, as these cells are meant to be drained. So we need the sweet spot where the LED does not light up any more (when even primaries are not of use in the light) and the Eneloop is yet unharmed.
The boost circuit stops boosting at around 0.9V, the LED starts blinking at this point.
At first I thought this is a kind of warning but it seems it’s simply the controller stopping, the cell regaining some voltage, controller starts boosting again, the cell sags voltage under the load and the controller stops again.
The blinking (together with the obvious dimming of the LED long before this point) is why I think we don’t need an LVP warning. It’s obvious when the cell is low.
So a cutoff at some point below 0.9V would be good to save an Eneloop as long as possible.
But any cutoff would still not be complete, but eat some (reduced) energy: The ATtiny in sleep mode, the PAM2803 in ShutDown, even the voltage divider is an open circuit to the cell. We only buy some time to realize the light is off, but still powered. For now I’ve abandoned the idea.
.
Moon mode
This looks tough for now.
Even at PWM=1 I can’t get lower than this:
I tried 3 frequencies and it’s the same as with linear driver, the higher the frequency the lower the output on low levels.
4.7 kHz (fuse 65) : 25mA
18 kHz (fuse 75) : 15mA
37.5 kHz (fuse 7a) : 9mA
This is with fresh cells of course, and no difference between 1AA and 2AA.
The brightness is fading, naturally, as the cell(s) is(are) drained. Down to <1mA at the end. But this is not what I call Moon. It’s not even a low Low in my book.
37.5 kHz seems to be the highest the ATtiny13A can offer as frequency and I never used it in a driver before. At least whining should then be no more issue. Any other downsides with this high frequency? Other ideas for a lower Low? Suggestions welcome.
Edit: @fixed it made several suggestions in this post.
.
Off Time Capacitor
Only yet tested at my Nanjg110 conversion. Should work.
Some timing adaption will surely be necessary as the value of C2 (and C3) will interfere with OTC timing.
For now it’s quite low on my priority list.
For a 2 mode light it’s not needed (and the lack of Moon does not really suggest more modes on a 1xAA light… sheesh).
For a simple off-time-memory (2 timeframes: short/long) the brownout detection should be sufficient anyway, then no OTC is needed.