Cheap DIY 12S balance charger idea

The cells are individual, not in a “pack”

2 Likes

Aha. Of course. Bummer. So need a supply for each cell. As said

I turned out the problems I had were due to the B- not being connected. I thought it’s the same rail as the BC0, but apparently not. Now it works like a charm. I started to work on intercepting the communication between the PC module and the BMS. It turns out the data sent by the PC module is exactly as documented here and that’s exactly what I used in my last attempt to connect an Arduino. I must have done something wrong. Will try again.

BTW, when I connect the charger, the voltage on the first and the last cell increases quite a bit. Without the charger connected, I have all cells pretty much in balance, say around 4.10V. When I connect the charger, all voltages go up a little bit, maybe to 4.15V, but the first and the last cell go much higher, like 4.25V. Measured by both the BMS and multimeter. Is that normal?

1 Like

If you hook up the charger without bms, does it have the same behavior?

yes 10char

Woohoo, looks like I’m getting somewhere. :slight_smile:

image

image

6 Likes

Sounds like a problem with the pack? Not the bms. As if the resistance of the series connetions varies (a lot?). Or weak cells in the first and last groups but that seems unlikely.

Ooh so exciting. 2 input vega coming soon?

That was my first thought, too. However, if that was the case, wouldn’t the cells get out of balance when charging/discharging? I do not balance the cells. I merely monitor the voltages. I only have the battery pack shortly, but there were at least 3 discharge/charge cycles and the cells apparently discharge/charge evenly. The first cell is slightly (~0.02V) higher than the other cells, but it has been like that from the beginning and isn’t drifting away. All other cells are within 0.005V difference.

I just needed something with display and UART and realized I have a fair amount of such devices on hand. :smiley: There have already been requests for displaying individual cell voltages on Davega. I said no to that, but I’m rethinking now. The problem is that there’s only one UART on ATMEGA328 and also not many people use the LLT smart bms. Instead, I’m thinking of making a simple I2C cell voltage monitoring module that I could hook up with the Davega I2C pins, which are still unoccupied. The module could be just a voltage divider and three ADS1115 on the same I2C bus. These are 4-channel 16bit ADC modules, so by using three, up to 12S would be supported. The resolution would be more than enough with 16bit ADC. I’m not sure how accurate these ADS1115 are though. I’ll probably buy some and do some testing.

1 Like

I’ve been wanting per cell monitoring pretty bad, bad enough to at least attempt to put smartbms in every board.

From ignorantly googling around, voltage divider for something like 12s will have stacking error, and resistors have quite a bit of variability?

ASD1115, looks like it has 4 16bit ADC, but that’s in single ended mode (common ground). In differential mode there are only ADC.

I think a BMS chip (maybe from TI, maybe same family as smartbms or diebms?) will have all the voltmeters in one easy to use package, and probably cost less than rigging a bunch of ADC and voltage dividers?

1 Like

I have actually played with it a few months back. Here’s what I have done on a perfboard with two ATTINY84 chips (I had to use two to get enough ADC pins) and a bunch of resistors.

IMG_1603 IMG_1604 IMG_1605

It kinda works, but the ADC pins on ATTINY84 are only 10bit and they are not very accurate, so especially the voltage reading on the last cell is ±0.1V, which is pretty bad.

There’s not really a stacking error. You measure the voltage on the last cell by measuring the 11S voltage and the 12S voltage and substract the values. The problem is that the resolution decreases with each cell. You get a usable resolution on the first cell, but the resolution on the last cell is 12 times worse (on 12S battery) and that’s unusable if measured with 10bit ADC. However, with a 16bit ADC, you would still get a pretty good resolution even on the last cell.

The variability in the resistors is not a problem. You don’t need exactly 1/2, 1/3, 1/4, etc dividers as long as you know the exact ratios of the dividers, which is a matter of simply measuring the exact resistance of the used resistors. You then adjust the measured voltage correctly in software.

Sure, that’s why you need the voltage divider. You don’t measure individual cells. Rather, you measure the first cell, first two, first three, etc. Like this.

The main problem I see with the voltage divider is that the cells get constantly discharged over the resistors. Even worse, the discharge is uneven. The first cell gets discharged most while the last gets discharged least. Even though the current flow can be kept low by using high enough resistors, this would get the cells out of balance eventually, especially should the measuring module be connected to the battery all the time. There’s no easy way to turn it off.

I don’t think it would cost less. Three ASD1115 would be around $5 and resistors cost almost nothing. I agree that a BMS chip would be a more elegant and generally better solution though. It just seems terribly complicated. I read through the datasheet of the TI bq76940 that the LLT Smart BMS uses and there were too many things I didn’t understand at all. Plus, it doesn’t seem you can use the chip alone. The datasheet contains a schematics of circuits to be used with the BMS chip and there’s a bunch of other components. You can probably exclude many if you only want to measure the cell voltage. Still, it didn’t seem at all easy to figure out, at least for a hobbyist like myself. A voltage divider, on the other hand, is simple and straightforward.

2 Likes

Very nice!

I have a similar BMS and don’t understand the power routing. So I know left side is B- and right side is C-/P-. In the App I can activate and deactivate charging and discharging which both works like set in the app (when I power down the discharge mosfet, the ESC doesnt work anymore, when I power down the charge mosfet the charger doenst charge anymore, when I power down the discharge and charge is still on: I can still charge but not discharge, never tried discharge:on charge:off and charge then).

So now I am thinking about how this works, I got a clue but that makes no sense: since the B- is on the left side, does that mean the current is flowing from B- through the little shunts/fueses to and through the first row of mosfets to the middle and then through second row of mosfets to right?

And how does charging from the C-/P- work if the discharge fet is powered off?

Since you have your BMS opened, did you check for this? Mine is currently in use in a batterypack 150km away from me… :confused:

I believe that if the charge MOSFET is enabled, it connects the B- and C-. If the discharge MOSFET is enabled, it connects the B- and P-. That is, the MOSFETs simply close the charge/discharge circuits.

1 Like

But my BMS has C- and P- on same connector. I charge through discharge wires/pad… also this would mean the battery pad is the middle one and there are same number of discharge mosfets as charge mosfets…

From how you describe the BMS behaves, I don’t believe the C- and P- are actually the same pad. I would check continuity between them with a multimeter.

Oh, I missed this bit. Then that must really be one pad. I don’t know how that works then, sorry.

Are you able to follow the path of the main current via the multimeter in your testsetup? Mine is currently not open…

Not sure what you mean. After more thinking about your BMS though, I believe it could allow the current to only pass in one direction. When discharge is disabled, only current from P/C- to B- is allowed and vice versa for charge being disabled. I believe that could be achieved with two MOSFETs and two diodes. That’s just an uneducated guess though. I don’t really know much about BMSes.

Could you use diodes or mosfets with the 12 separate lipo chargers and the earlier mentioned charging/balancing scheme using one power supply and not short? Still trying

The short happens because all the negatives of each charger, on both the supply and output end, are electrically wired together (common ground). So if you hook all the chargers up, shorts everywhere.

I believe the only reasonable way to isolate power circuits is transformers. So if you put a transformer between the single power supply and the 1s chargers, as long as nothing else is completing the circuit to ground, you have floating power supplies, which is safe. It can even be a 1-to-1 transformer (5 volts in, 5 volts out).

And transformers work via alternating current (doh), so practically, 120vac -> splitter -> transformer -> 5vac -> 5vdc -> 1s charger seems the simplest to do. dc-dc I guess is possible but you have to convert to ac and back somewhere.

I hope I’m not completely wrong again lol.

1 Like

Could maybe do a single to multiple transformer at least. Simplify a bit.