What's the easiest, least intrusive way to monitor voltage, charging status, and remaining charge of a USB battery pack?

Battery packs and charging circuits for mobile projects can be complicated and expensive to design. Meanwhile, there are a ton of relatively cheap, small, high capacity Lipo battery packs with a convenient USB jack for charging and discharging. Unfortunately, they're designed for consumer uses like recharging cell phones, and not for tinkering, so there's no formal interface for getting battery status.

If you wanted to wire one of these into a microcontroller or SBC so the system could report remaining charge, is the only option to break one open, hope you don't destroy it in the process, and hope the charging circuitry is hackable?

Possible solutions I've thought of are:

  1. Using an ADC to directly read the voltage on the battery output, but this probably wouldn't work since the output from the battery is regulated at 5V. Even close to being dead, it'll probably still read 5V.

  2. Wire a coulomb counter in series with the battery. This would probably be able to track total energy charged/discharged, but it wouldn't have a reference point, so it still wouldn't be able to tell you remaining charge. Also, on batteries with multiple jacks, you'd have to have a separate counter for each output you used.

Are there any other options?

  • \$\begingroup\$ Be aware that not all USB battery "power banks" are created equal. Several units I have looked at only show 5V on their output when there is next to no load. Put 500mA or 2A load on some of these and you are more likely to see something more like 4.6 to 4.75V on the output. I also did some constant current discharge on several units and logged voltage with a data logger. The best ones hold a constant output voltage till some point and then the output just shuts down like a brick wall. The crappier ones would have their output voltage taper down as the internal battery starts to die. \$\endgroup\$ Apr 19, 2015 at 2:51
  • \$\begingroup\$ You're right about the Coulomb counter - you can't tell how much charge a battery holds the first time you charge it. However, you could keep track of the amount of electricity a battery pack has in each charge to estimate a reference point. Does that help you at all? \$\endgroup\$
    – Greg d'Eon
    Apr 19, 2015 at 2:52
  • \$\begingroup\$ If you do decide to use a Coulomb counter "gas gauge" chip you can also pre-condition the power banks before deployment. Fully charge them and then set the initial reference from there. In parallel with your deployments you can also run some longer term tests with repeated charge and discharge cycles on some units to collect some realistic data on actual battery pack capacity. Sadly it is a fact that many of these units are advertised with capacity numbers that are totally warped out of reality. \$\endgroup\$ Apr 19, 2015 at 2:58
  • 1
    \$\begingroup\$ Many of the USB powerbanks have their own 'capacity remaining' indicators on them with either a percentage or a number of LED. Might be easier to just get one of those. If you wanted to hack your own, if you measure the voltage of the battery at the connection of the positive and negative of the battery pack to the powerbank's electronics, you will get an accurate reading of the battery's voltage. \$\endgroup\$
    – Filek
    Apr 19, 2015 at 3:14
  • \$\begingroup\$ I doubt those battery packs have a Coulomb counter. If I were designing one, I would not include a Coulomb counter because it drives up the cost, and doesn't really provide any benefit (no way to convey information to user anyway). Cell voltage is not a good way to determine remaining capacity because the voltage does not change rapidly during the wide middle part of the discharge curve. But I think opening a pack and sensing cell voltage (prior to the 5V boost) is your only option. You can have four levels: full, high, medium, low. Or some such. Good luck! \$\endgroup\$
    – user57037
    Apr 19, 2015 at 3:47

3 Answers 3


I'll put the links in an answer so I don't run out of room again.

I have used this one.

There is also this one

Like I said before in the comments, the first one does more than just measure voltage and then approximate the capacity. When first connected it charged the battery to 4.2 volts and shut down, but read the capacity as only 85%. On the second discharge, it read the capacity as 0% at 3.5 volts, and still allowed discharge until about 3.1 volts before it stopped the discharge. After that it got more and more accurate with each charge/discharge cycle. It is far from perfect, but more accurate now. It has problems with accuracy under about 3.5 volts as the batteries tend to be closer to empty than the pcb thinks, so it always reports abouts 30% remaining when it is closer to 20%. Other than that it seems to be OK. I doubt it is coloumb counting or I think that it would get more accurate. However, I have only done full charge/recharges maybe 5 or 6 times and after that it has been 30 or 40 partial charges/recharges.

The second link is to an interesting looking fuel guage. It measures the impedance and current of your battery pack. It differs from the first link as the first one is a charger as well and protects from over charge and over discharge and protects from short circuit. I have not yet used the fuel guage from the second link so I can't say whether it actually works as advertised.

Hope this helps.

If the ebay link is dead, I will try to find another.

  • \$\begingroup\$ It would be great if you could record the IC part numbers you have on these boards, as they can't be seen from the images. \$\endgroup\$
    – pjc50
    Apr 21, 2015 at 10:08
  • \$\begingroup\$ @pjc50 - The boards are already installed so I don't have access to them. I will try to disassemble one to get at the board, but I don't think it can be done without breaking some plastic bits. \$\endgroup\$
    – Filek
    Apr 21, 2015 at 21:53
  • \$\begingroup\$ @Filek, did you find a solution? I'm having the same problem. \$\endgroup\$
    – Miguel
    Sep 21, 2020 at 10:10
  • \$\begingroup\$ @Miguel - there are other gadgets similar to the ones in the links, and there are USB dongles that measure the energy leaving the USB port and you connect the dongle in the USB port first, then plug in what ever you want and measure the energy used. Look at this: aliexpress.com/item/… \$\endgroup\$
    – Filek
    Sep 23, 2020 at 1:47
  • \$\begingroup\$ @Miguel - From the energy used (that the dongle tells you) then you can calculate the state of charge of your battery, assuming you know how large your battery is and that it was fully charged. Even if you don’t know your battery’s size, this dongle will calculate it for you \$\endgroup\$
    – Filek
    Sep 23, 2020 at 1:49

I recently bought a few usb battery packs around 20000mah varying price from $23 to $40, to check if battery capacity is close to 20000mah I discharge battery until it no longer output, then recharge and monitor with a USB tester dongle (my USB tester is quite hefty in term of thing it can measure and display, it displays V,A,mah,Wh,D+/D- . I was able to get full refund for battery pack that is way under capacity like 5000mah instead something close to 20000.
Maybe off topic but I also use the USB test to test USB cable, USB solar panel output. I got USB tester on amazon, I don't think one can find 'coulomb meter' easily 8-)

Link to my USB tester USB tester


I use a 9v rechargeable battery through a circuit that delivers 5v wired to a usb plug. I have a voltage divider connected to the battery and tap off a voltage that is safe for my arduino to measure on its analog port. I monitor the analog reading and trigger a warning when it hits a threshold value before the battery dips too low to supply the 5v usb circuit.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.