Monitoring a LiPo battery's balance connector?

I have a small robot project and I want to monitor the LiPo I’m using. From experience elsewhere, I know the cells in a LiPo can discharge in a surprisingly uneven manner so I’d like to monitor the individual cells via the balance connector.

As this isn’t the core of the project I was hoping to find a ready to go solution, e.g. a breakout with a balance connector and a small IC with e.g. I2C output that I could interface with. But no such luck :frowning:

The easiest thing to do would be to buy a low voltage alarm and desolder the buzzers and wire their connections into my MCU. I wouldn’t have per cell data but I’d know the alarm was monitoring the individual cells and activating the buzzer when the first of them went too low. E.g. this project on Instructables does exactly that.

The alternative with a bit more work would be to wire up something nice and tiny like an M0 trinket (although after taking 2 pins for I2C, to talk to the main MCU, I’d only have 3 analog capable pins left over - so maybe it’s a bit too tiny).

Usually one can find a fairly definitive looking project for this kind of thing, e.g. something in the learning sections of Pololu, Adafruit or Sparkfun. But I didn’t come across something that had that “this is definitely the answer” feel.

I did find this project (using a RaspIO Duino) and this one (involving a different resistor layout) using an Arduino Nano. The second one looks more convincing to my untrained eye (I’m a software person who hacks hardware in a somewhat cookbook style - generally after massively over investigating things).

Any other pointers or comments would be a great help :slight_smile: Thanks :slight_smile:

OK - to answer my own question a short time later.

An almost ideal ready-made solution would seem to be the FrSKY MLVSS sensor (there’s also a version called the FLVSS with an OLED but I don’t need the additional display). It speaks its own proprietary protocol called SmartPort - but there are at least two Arduino libraries for working with this protocol - e.g. this one from Jean-Christophe Heger and this one on RCGroups. I notice that Andre Bernet from the OpenTX project has contributed to the first one - so I’d take that as some kind of seal of approval :slight_smile:

The only downside is it doesn’t use a bus like I2C - instead, you have to dedicate a whole serial port to it (although at 57600bps it seems to operate just within what I understand SoftwareSerial is capable of on the 32U4).

Hello,

Thanks for letting us know you figured out how to monitor your battery balance.

-Dan