Saturday, October 10, 2015

ZB2L3 v2.0 ZHIYU battery tester

I've got another battery tester to play with!  This tester is a ZB2L3 v2.0 by ZHIYU.  It's rated for a max of 15v, 3A, and 9999AH - so you can test your 12v lead acid batteries with it, if you care.

It looks something like this:

Mine came from eBay as a 1.5v~12v Battery Capacity Meter discharge Tester 18650 li-ion lithium lead-acid.  $7.98 shipped - not half bad!

The manual for this board is surprisingly readable.  It includes error messages, and also has a calibration mode (of which I don't have sufficiently precise hardware to actually use right now).

Manual Translation

1.5v-12v Battery Capacity Tester External Load Discharge Capacity Test 18650 (yes, this is keyword spam).

Operating Parameters

Power supply voltage: DC 4.5-6V (micro USB)
Working current: Less than 70mA (I assume this means for the micro USB interface)
Discharge voltage: 1.00-15.00V, resolution 0.01V
Termination voltage range: 0.5V-11V (precision 0.1V)
Current range: Max 3.000A, resolution 0.001A
Maximum voltage error: 1%+0.3V
Maximum current error: 2%+/- 0.010A

The board will show the battery capacity up to 9999Ah.  The decimal shifts to indicate proper units.

Note: This circuit is designed with a DC bias to improve voltage measurement accuracy.  When the terminals are not connected, the unit will display a small voltage (0.06v on mine).  This does not affect the actual measurement.  If you short the input terminals, the unit will display 0v (mine does).  To understand this principle, consult the superposition theorem in electrical engineering.

Method of Use

  1. Fully charge the battery you're testing.
  2. Connect the battery under test to the input terminals (center terminals) in the proper manner.  This device may be damaged by reverse polarity.  Connect the load to the proper (outer) terminals, and connect the micro USB power (do not use a desktop or laptop - use a standalone cell phone charger).  The battery voltage will be displayed.
  3. To start the test with the automatically determined termination voltage, press the "OK" button.  The display will flash the termination voltage 3 times and begin testing.  If you wish to set the termination voltage yourself, press "+" or "-" to modify the termination voltage as desired, then press "OK" to start the test.
  4. The tester connects the battery to the load, and displays the capacity (Ah), discharge current (A), and battery voltage (V), cycling the display through each.  When the battery voltage reaches the specified termination voltage, the battery is disconnected, and the display shows the capacity (Ah) with a rapid blinking to indicate the test is done.  Press "OK" to solidly illuminate the display with the capacity, then press "OK" again to reset the unit for another test.

Error Codes

Err1: Battery voltage greater than 15v.
Err2: The battery voltage is lower than the specified termination voltage.
Err3: The battery is unable to withstand the discharge current (too much sag?)
Err4: The discharge current is >3.1A.

Calibration Operation

(I have not attempted calibration.  This is my best attempt to translate the instructions.)

To enter calibration mode, press all three keys when the tester is powered on.

The unit will display 0u0A.  Short the input positive and negative terminals and press OK.

The unit will display J10u.  Apply 10.00V to the positive and negative inputs and press OK.

The unit will display J2.0A.  Apply a constant 2.0A DC current across the unit (short the load, perhaps?  I'm not sure how to hook this up) and press OK.

The unit will sanity check the calibration data.  If it likes it, it will show 4 calibration numbers after existing, otherwise it will discard it.

Syonyk's Quick Operation Guide

Connect a battery and a load.  Plug it in.  Press "+" and "-" to adjust the auto-detected cutoff voltage (which usually will be close to what you want).  Press "OK."

It cycles through Ah, A, and V while running.  Caution: Your resistors will get hot.

Wait until it's done and flashing to see the final capacity.  It's really, really straightforward to use.


This is a very simple testing unit, and it's reasonably flexible.  It has an connection for a battery, and a connection for a load.  What you do with these is up to you, as long as you stay within the 15V/3A limits.  This allows for a great amount of flexibility in testing, assuming you're willing to change the loads around or create your own custom load banks for the unit (though be aware of the 3A limit - you can't put too much load on a battery through this unit).

It doesn't do anything fancy - it pretty much just counts coulombs and displays voltage.  Which, sometimes, is just what you need.  Nicely, you can use this with a +5v PSU (so a USB power bank), or a 12v battery, or pretty much whatever you want - just set the cutoff voltage properly before you start.

Unlike another tester, this one doesn't pulse the battery or anything unexpected - it just sits there, drawing current, until the battery hits the cutoff voltage.  This is a very good thing. :)  The downside is that using a resistive load means the amperage drops over the discharge (Ohm's Law and all), but the flexibility of being able to use "pretty much anything" as a load is worth a lot!


It's pretty good.  It reads a bit high when unloaded, but this is noted in the documentation and it seems to drop down to reflect reality when loaded.  As it's not doing anything fancy except cutoff voltage, it's fine.  I have no real complaints here.

Testing Results

I've run my 18650s through this, as I have with other devices.  Amperage drops over the test as the voltage drops, as is expected for a simple ohm's law device.  But, I'm just looking for something sane-ish out of the values.

7.5 Ohm Resistor (0.54A-0.41A)

Battery A: Discharge: 2695mAh.  Recharge: 2689mAh.
Battery B: Discharge: 2708mAh.  Recharge: 2620mAh.

3.75 Ohm Resistor (2x 7.5 ohm in parallel) (1.06A-0.81A)

Battery A: Discharge: 2633mAh.  Recharge: 2621mAh.
Battery B: Discharge: 2661mAh.  Recharge: 2702mAh.

This tester reasonably shows slightly less capacity at a 1A discharge vs at a 0.5A discharge, so that's good.


This is a pretty handy tester to have around.  Not only does it handle individual cells, it will handle packs and 12v batteries and such - keep it below 3A, and you're good!  You will want to grab some different resistors, if you're testing higher voltage batteries, but a decent set of resistors and this will handle an awful lot of your needs.

And it's, like, $8. :)

That said, you can do better if individual cell testing is your goal.  This would be a nice pack tester, and a handy tool, but I wouldn't suggest it for individual cell work.


  1. Thanks a lot for this tutorial. I just received my tester, and there wasn't any manual.

  2. The only manual is in the ebay description. When I got mine I rewrote the manual and put it on Github: . Basically the same as you wrote. I did one cute thing: attached the thing to a small heatsink with resistors on 0.1" posts in a configuration that lets me jumper them for 3.75, 7.5 and 15 Ohm.

    Did you try to figure out the schematic? The marked/visible ICs are 1117 LDO regulator, 321 op amp and 8205 which I think is another LDO. There's probably a microcontroller under the LED display that sequences it and integrates the charge. A pity they didn't spit the data over USB: it'd be a neat trick to collect data on a PC and plot the discharge curve.

    1. Very cool! No, I didn't bother to reverse engineer it. My interest is in how accurate it is, and it seems good enough for my needs.

    2. I have one and it produced weird results. The cell voltage was correct when not discharging and rose when discharging through the load. The current reading was lies. It was going to be more effort than it was worth to return the module for credit/replacement. In the interest of reverse engineering I unsoldered the LED display. As expected, there's more underneath the LED display. There's a Titan Microelectronics TM1650 I2C controlled LED display and keyboard driver. The microcontroller is a ST 8S003F3P6, which is an 8 bit, 20 pin micro with the usual flash and multifunction pins. The 8205 noted above is almost certainly a FET to turn the load on and off. As I learn more, I'll post more.

  3. From the picture on GitHub, przemek got a version 1.0, whereas Russell and I got v.2.0. The components are clearly in different places. I don't know whether there is any functional difference.

  4. I had no big resistors to take, so i created a 3.5ohm resistor with small 1W resistors, coated the metal parts with hot glue(to prevent electrolysis), and put them inside a container filled with water, works too well.

  5. Actually, I got 2.0 too; I was being lazy and used the picture from ebay IIRC.

  6. I like the price. But is is a shame there is no serial data out. Assuming a micro-controller is underneath it would have cost nothing to expose a pin with the serial data. I wonder if anyone has looked to see what mcu it has. If it were one I'm familiar with (like PICs) I'd consider writing alternate firmware and soldering to another pin for data.

    Thanks for your review!

    1. Just curious to know if you'd managed to data log the readings. Thanks

  7. Gee, also wondering if these are the same batteries tested with the first tester you did? Probably not but how did the pulsing tester capacity vary from this one? The same battery tested under same ambient temperatures and recharge level would shed light on whether that issue was significant after all. I'd pay a bit more for the serial data and internal resistance value.

    If they are the same batteries they seem to be fairly close. In this test you used 0.5 and 1.0 A vs. 0.25 and 1.0 A for the first unit.

    Also, saw this other discharge tester on ebay with fan and heat sink and wonder if you are still testing more units. Looks nice but also doesn't have any serial data.

    1. Same batteries used for all my testers. If you want to chat about this stuff, the contact form is to the right.

      I still need to write up my ZB206+, and I'll take a look at the unit you linked.

  8. hello, very nice write up! I just got one of these, v2.1 from for about $5 shipped. I was wondering about using it to test some 12V sealed lead acid batts I have. Using the included resistor, it starts out at about 1.5A load and that resistor starts getting quite hot. I would like to apply a load closer to the 3A limit of the device. Could I use some 12V incandescent bulbs as the load? I'm sure I can find one or a combination that would be close to 3A. would that work?

    1. Edward -

      Yes, any sort of load will work fine. 12v/40W bulbs should get you close to 3A (fully charged is around 14v, so 3A@14v = 42W.

  9. Thanks for the in depth review. I'm just curious to know if you have figured out or can suggest how the reading can be logged on an SD card. I'm currently working on a Arduino project that involves this discharger. Any suggestion from anyone would be greatly appreciated.

    1. I never bothered figuring it out. I was given the software, but I don't like running random Chinese binaries on my systems, so I never played with it.

      If you're using an Arduino, grab a precision voltmeter, a shunt, and do the calculations yourself.

    2. I'm designing and building a machine to automate the charge and discharge of batteries so I don't need to baby sit them. I can setup a camera to take a picture of the reading display on the dischargers but I wanted something more professional as a setup

    3. Sure, but you could very easy build a watt-hour and amp-hour meter into the Arduino controlling the system as well with a few additional components and avoid the whole mess. You'll need to reset the discharger somehow, which will involve likely replacing the buttons with links to the Arduino.

  10. Thanks a lot for this tutorial, very nice.

    I have a question about this module. What do you think about use it for test the consuption rate of a weather station, based in Arduino platform attached to a 6V / 4.5A batery? This wil be only for monitoring continuosly the batery state. The weather station consumption is about 30mA.

    The ZB2L3 will be powered, by a solar panel and a DC-DC buck to suply 5V.

    I can implement a voltage divider for this step, but I would like to use the ZB2L3 to do this (perhaps is not a good idea).


    1. I don't see why you'd use this instead of a voltage divider and current sense shunt if you want to monitor a weather station based around an Arduino.

  11. I will implement a voltage divider and a current sense. On the other hand I will buy a ZB2L3 for play, I like it!

    Thanks Rusell.

    1. Let me know if you figure out the serial interface. I didn't care enough to really spend time on it with a tester that I wasn't a huge fan of.

  12. Actually I'm working with StampPlot Pro as a little DAQ, the Arduino serial interface is very basic.

  13. Hi,

    An interesting review from ebay:

    "A word of warning to everyone, DO NOT BUY THIS DISCHARGER! The problem with this discharger is it assumes you have a constant current load hooked up to the discharger and that said constant current is 2 amps. The problem is that the resistor provided with the discharger will not discharge the battery at a constant current as it is a resistor. I plugged in this discharger and set everything up with the 7.5 ohm resistor and the discharger said it was discharging the battery at 2 amps, and this simply isn't true. Because if we do some math with ohms law, we will see that this simply isn't true:

    Battery voltage vs fixed resistor value of 7.5 ohms:
    4.2/7.5 ohm= 0.56 amps. The charger read 2.0 amps
    4.0/7.5 ohm= 0.53 amps. The charger read 2.0 amps
    3.8/7.5 ohm= 0.50 amps. The charger read 2.0 amps
    3.6/7.5 ohm= 0.48 amps. The charger read 2.0 amps
    3.4/7.5 ohm= 0.45 amps. The charger read 2.0 amps
    3.2/7.5 ohm= 0.42 amps. The charger read 2.0 amps
    3.0/7.5 ohm= 0.40 amps. The charger read 2.0 amps

    I tried calibrating each discharger, but it ended up doing nothing. Since the discharger is calculating the capacity based off the fact that a constant 2 amps is being discharged (when really the discharge current is varying), this discharger is unusable for me. I cannot recommend buying this."

    - what is the truth? There is a very big difference between capacity measured via professional tester and this cheap meter? I just want to test my 18650 baterries.

    Or it would be better to measure capacity with Arduino? Like here:

    1. Mine did report reasonable amperages during discharge - you may have a defective one.

      However, if you want a good tester, I recommend the ZB206+ - I reviewed one of those as well, and it's the only one I reviewed that I still use.

      If you need one and are in the US, contact me - I have a few spares laying around with battery holders that will work for 18650s.

    2. I agree with Russell Graves that this sounds like a defective tester. Like Russell's, my tester show plausible current readings.

  14. I got the same defective results.maybe someone could figure out the calibration....or point out the MANUFACTURERS website?

  15. I just calibrated a couple of these today. Your guide is correct, except for the last step.
    You really need a variable bench power supply. You connect your load resistor where it is supposed to go, and connect the input to the power supply. Simply set it to 2 amps, and if you feel the resistors heat up, press OK. Calibration done, and now super accurate.

    1. That assumes you trust your bench power supply. :)

    2. Well, yes, of course. But I did some measurements with a multimeter, that I'm sure I can't afford. Just though it would be good to update the original post with this information. I was personally really confused about the "short the load" part, until I did some testing myself.. :p

    3. This comment has been removed by the author.

    4. I've bought two of these testers, but I have a problem with them when I am using it.
      When I connect fully charged battery, the voltage on the meter shows 4.2V, the same, when I use the multimeter.
      Clicking OK, it shows a cut-off voltage of 3V which is fine, but as soon I press OK, the voltage on the multimeter stays at 4.2v (on the terminals) but the tester voltage drops (on the LCD) to 3.6V.
      This cause that all measurements are incorrect. A battery that I know that is about 1500 mhA is showing as 600 mhA.
      Does it mean that it is faulty?
      I have performed the calibration wit one and two resistors but still nothing. Should I try to calibrate without the resistor or somehow different?

    5. Hi Maciej
      What load resistor do you use? If you put a high load on a small battery, then it seems probable that the voltage drops to 3.6V. Sounds like your multimeter reading is wrong.

      Your 1500mAh battery, was that tested to be 1500mAh using a similar load? If you test it with a higher load, the capacity will be less.

      I'm inclined to think that your tester is working.

    6. Maciej Jozefiak - it sounds like either you have a lot of resistance between the battery and the tester, or you're pulling a lot of current through the cell, causing significant voltage sag, and reduced capacity.

    7. Hi guys,

      Thank you for reply. I am testing Samsung\LG 18650 batteries from laptop packs.
      When they are charged the voltage is 4.2V.
      The resistance is single 5W 7 Ohm resistor which came with the meter.
      Could it be that I messed up the configuration during the calibration process?
      What resistor do you put during this calibration porcess?

    8. I didn't calibrate mine. I left it as-is.

      Really, though, this is not the best tester out there. The ZB206+ is a radically better tester for not much more money.

  16. Hello Russell! In the test results you published you also inclided recharge results. What device or setup did you use to get the recharge amp-hour readings? Thanks.

    1. Andrew - it's not mentioned in this article, but probably in some others. I have a VTC4 charger that I use for charging NiMH and lithium cells.

  17. Hi: Thanks for the tutorial. Has anyone made a circuit to add to the battery tester to prevent hooking a battery up backwards? I'd appreciate any details for doing that.

  18. I notice the resistor supplied is 7.5Ohm and 5W. If this is used to test a 12V car battery the current would be approaching 2A. With 12V (or perhaps 14.5V) across the load resistor and 2A through it, shouldn't the resistor need a power rating of 30W or more?

    1. Good point.

      Also note that you should avoid testing lead-acid batteries if at all possible. They don't like being totally depleted.

    2. Yes, this is not a good resistor to use with a 12V battery. And as Rune notes, draining lead acid batteries is generally a bad plan anyway. You can set a high termination voltage and only test part of the capacity, but you'd definitely need a bigger load resistor. The 100W units are good for stuff like that.

  19. I want to ask ... I buy this module often error 4 & error 3 ... which I use current 18650 brand sanyo 2100mah battery ... the solution how ??

  20. Hmm, I've got this tester and am experiencing strange behavior. First of all when it meassures a constant volatge, at variates about 0.2v around the real value constantly. When it acually tests, the voltage seems stable but it is 0.3V too low! Have tried calibrating in multiple ways and that does also influence the default voltage-meassuring before starting the test, but once actually starting the test, the voltage is wrong again by the same ammount. This way it sadly is unusable...
    Guess my unit is defective?

    1. Are you seeing the voltage drop from a battery under load? A high load on a small battery could easily exhibit 0.3V drop. Check with a separate multimeter. But, this isn't a tester I use anymore because I've found better testers (check the battery tester category of posts).

  21. hi boss ... i want to ask ... i use 5w 10ohm resistor ... how to read the battery capacity ??? while the number indicated 900ah ??? how many mah my battery ???

    1. There should be a decimal point in there. The capacity is indicated in amp-hours, but look for the decimal.

  22. Have you seen:

    An excellent breakdown of why these units are punk. Circuit analysis and how obe should have designed them



    Have you seen this analysis? Excellent breakdown of what the design engineer did wrong.....


  24. Bad board, like says, bad values, and the new calibration works different and not good.
    When i calibrate with 1000mA the display gives by 100mA real current already 1000mA.
    It looks like that i must calibratate with 9999mA. But that is above the specifications.
    Not usable for a good measuring value. Better to make a Arduino version!!
    Who have a better solution? Thanks.


Comments on older posts are moderated due to spam issues. If you don't see your comment immediately, and you weren't just spamming me with some irrelevant comment and a link to whatever site you're trying to SEO, your comment should show up relatively soon. If you're trying to use my blog for your SEO purposes, your comments will never show up, so don't waste your time.