Nanjg 105C (and variants) on 2 x CR123 cells (6V Nominal)

I've had a few requests recently for some P60 dropins that could run on 2xCR123 primaries. Officially and from reading the experience of several other forum members it seems that the attiny13a MCU is capable of living at up to 6V, but I still wanted to drop the voltage down into the sweet spot. I also was a little bit worried about the 7135s burning off that much extra voltage, which it turns out wasn't something I needed to worry about.

The following are a few data points and thoughts about the experiment:

Test setup:
-qlite driver (105C) with 8 x 380mA 7135 chips

  • added 4.3v zener diode over input capacitor, but left polarity protection diode in place
  • removed R2 resistor to disable low-voltage protection (fools MCU) to allow fuller usage of cells

-2 x CR123 lithium primaries in series (6V unloaded)
-XM-L2 U2 1D on Noctigon

-At 0.16A input (DMM read) the fresh cells read 5.97V, after several minutes neither the 7135s or the zener diode were very warm.
-At 3.01A input (DMM read) fresh cells almost immediately drop down to approximately 4 volts. Neither the zener diode or the 7135s get too hot to hold after several minutes and the 7135 chips didn't thermally regulate (this is expected based on the input voltage).

-At continued 3.01A usage, the CR123 cells get warm, not too hot to hold but much warmer than a LiCo cell. I wouldn't try and push them any harder than this and would probably lower the amp draw for continued usage.

I ran the driver through two complete sets of CR123s varying from high to low and no damage ensued.

Conclusion: You can run a 105C based driver safely from 2xCR123 cells. I am not sure if the addition of the zener diode is necessary, but may be beneficial to the MCU when running the light at lower power levels.

You must replace the polarity diode with a 200 ohm or so resistor… you get reverse polarity protection and don’t risk blowing the zener. Without it you can easily fry the zener.

Obviously there is an electrical phenomena I'm not aware of, would you please explain? (I am not saying this in a questioning tone, but in an inquisitive tone, I would really like to know) My thinking was this: The zener diode is only burning off the extra voltage once it reaches 4.3v and can handle 0.5w of heat generation, it doesn't get warm without the resistor limiting the current even after 30 minutes of running at around 6V, so why does it need it? The voltage isn't as high as the 8.4v encountered with 2s LiCo cells. I can easily add a resistor if it is necessary.

Basically the zener acts like a dead short circuit when the voltage reaches 4.3V. It regulates the battery voltage by loading it down excessively. That’s why your series diode is getting hot. The current limiting resistor prevents that.

The zener controls the voltage, the resistor only limits the current to protect the zener. With resistor/without resistor won't substantially alter the voltage available to the MCU.

I drew this up to show the circuit without all the other distractions, initially to show how to find the right zener when you have a box of scavenged parts and don't know what voltage they are. The MCU connects in the same spot where the voltmeter is.

Now remove the resistor, and see what the circuit looks like. :O

The original D1 polarity protection diode already drops something like 0.6v, did you measure voltage at the MCU #8 on a stock driver? It'll be perfectly fine without either the zener or resistor running from 2xCR123s.

The zener also provides reverse polarity protection (when the resistor is included). If the battery is connected backwards the zener will clamp the CPU voltage at –0.6V, not enough to damage anything.

Also the Nanjg protecion diode is a schottky diode and only drops around 0.25V (not 0.6V) at the currents the CPU draws.

Cool! Thanks for the info. That's why I post here... so I can pick your brains!

What I didn't know is that the zener would provide reverse polarity protection when added over the top of the capacitor... has anybody actually tested this? I think I'm going to just for the sake of knowing! I am willing to potentially sacrifice a driver for the team.

I've only tested it once on a stock driver, it popped the D1 diode like a fuse. Driver still worked after the diode was replaced.

I have seen a few of my family and friends insert cells backwards in my XinTD V4 with qlite then try and turn it on... no damage to the driver.

Thank you for this info! Very useful.

Great info here guys thank you

Just wanted to take a second to thank you guys for this thread. I finally understand why the zener diode mod works. What I was struggling with was the basics of a diode, that the voltage drop doesn't vary much based on the current going through it. So the MCU will always see ~4.3v.

However, and this would be a much worse alternative, but, forgoing reverse polarity protection, couldn't the zener diode just be swapped for another 220 ohm resistor and the MCU would see half of the battery voltage? Either way that voltage dividing circuit will be chewing up about 19mA.

Not sure what thread to put this in but I’m trying to figure out different R1 and R2 values to use(bypassing the Zener for the voltage ladder) and thought I’d post how I think the existing ladder values work(based on R1 19.1k and R2 4.7k).

R1+R2= 19100+4700=23800
Current equals 4.2/23800=.18mA

At 4.2V pin 7 reads R2/(R1+R2) x 4.2= (4700/23800) x4.2 =.83V
At 3V pin 7 reads .59V

To regain low voltage sensing with the Zener mod we would need to bypass the Zener to R1, severing the trace between R1 and pin 8 and changing the resistor values so that at 6V pin 7 again sees .59V. Is this correct?

Working backwards,
Total R assuming .18mA from 8.4V is 8.4/.00018=46.7k
.59V = R2/(R1+R2) x 6V or .59/6 = R2/46700 or R2 = 4600 ohms and R1 = 42100.

At 8.4V pin 7 would see .83V.

Would this work?

Here's a repost of my post in the oshpark thread last week:

You're on the right track, but you forgot that the zener diode will prevent the MCU from ever seeing anything above 4.3v (at least the one most of us are using.) The fix (at least in theory) is to bypass the zener diode/capacitor for the voltage readout circuit. Matt has a few untested boards on Oshpark that implement this idea. In theory, it should work, but I am no EE and am just working with the limited information and knowledge I've got.

Above is basically what Matt has done with the modified BLF boards.

Basically just cutting the trace that runs after the diode and zener mode that feeds the voltage sense resistors and then running the batt+ line directly to them. The zener mod makes it so that they never see over 4.3v, rendering the voltage readings useless.

Here’s the math I used to find the resistance values:

(2.9 v per cell, voltage taken directly from bat + w/ no diode)
(5.8 * 4700 * 255) / (19100 +4700)*(1.1) = Approx. 265.

6,951,300 / 26,180 = Approx. 265. Too high! (255 max range)

Now we look at replacing the 4700 resistor with a 19100 resistor:

(5.8 * 4700 * 255) / (19100 + 19100)*(1.1) = Approx. 165.

6,951,300 / 42,020 = Approx. 165. Bingo!

So, with two 19.1K resistors in the circuit it should work, I'll let ya know when I find out.

I read that and understood the part about cutting the trace and jumpering B+ to R1 but didn’t comprehend how you did the math(where does 255 come from?) I see your numbers but no explanation of where they come from. That’s why I included the formulas along with the calculations. Easier for someone to tell me where I went wrong this way.

The voltage sensor's 8-bit output (0-255)?

It would certainly be easier to replace just R2 with another 19.1k than both with new values but which is correct, RMM, me, both?

Tido has a good explanation in the "readme" of the BLF-VLD driver:

Thanks Richard (and Tido), that explains it perfectly. My calculation also didn’t take into account the vdrop across the diode. Have you tried swapping the 19.1k in for the 4.7k yet?

I realized I had not accounted for the voltage drop across D1 in my calculations and when I did it over I got values of 45k for R1 and 4430 for R2. This gives a ratio of .08962.

With this ration, Pin 7 sees .52v when Vb is 5.8.

The stock R1 and R2 resistors with a single cell have pin 7 at .52V when Vb is 2.9V(the difference between this and the quote above is D1 and lower warning level).

The closest values I could find at mouser were 45.3k and 4420 which give a ratio of .0889. At Vb = 5.8V pin 7 sees .516V which I think means that the warning would come at a slightly higher voltage ~5.85V which may or may not be significant if Vref is not very accurate.

Somewhere out there on the learning curve, way up high…

Rich, just consider this plan b if 19.1k doesn’t work.