TI BQ769X0 Based Monitors - Project thread

Feeling pretty stupid right now.

So this whole time I was expecting that we'd want a higher balance current than what most boards offer (normal is 50mA or less, with some offering up to ~100mA). So I wanted to have an external board for running much higher currents that would be fan cooled. However everything I'm seeing now seems to be pointing to ~100mA being sufficient for even the large packs we are running. The idea being that if even larger currents are needed to balance a pack, there's something wrong and it should be addressed.

In that case I'll take inspiration from the Libresolar design - at this point I should have just basically used his whole darn board. He uses external FETS to pass the balancing current through a 33 ohm resistor that determines the balancing current. 4v thru a 33ohm resistor comes out to ~120mA (which is sufficient) at around 1/2W power dissipation. I'm not exactly sure how much that will heat up the board or resistor but it does concern me. So what I'm going to do is to get the largest surface mount resistor and use that on the bottom side of the board with copper under the resistor so it spreads the heat out to the ground plane. That way, if cooling is needed, it'd be easier to do on the bottom via a heatsink. Since I can just go with a standard size, anyone can choose to use a lower/higher value resistor to increase or decrease balancing current.

Considering CNY, I need to make the changes and order within the next couple days. Anyone got any suggestions for additional expansions or improvements in the next couple days?
Also Korishan, I looked it up and the suggested schematic does have a resistor between V5x and the voltage input.
 
By supporting something like a bp-100 (they have larger as well) you can switch massive current without running it through the board. That would be nice for me. To have the board to keep track of cell voltages and keep it from over charging/discharging. Other than than my portable setup doesn't have too much else going on. Some DC stuff to usb and lights. The main current drain is the victron phoenix 24/1200 inverter which could be pulling 60ish amps.

I'm running the Victron Venus GX software on a rpi with a small touchscreen and usb ve.direct cables to each victron device. I can see how much solar or how much ac/dc power is going out pretty clearly. I can also see total battery voltage but I can't see the individual cells or protect the battery as a whole. So that is where a BMS would come in. Ideally it would run in the background with programmable voltage cut offs and then I can see my usage on the screen.
 
I was thinking of using something this: https://www.ebay.com/itm/2Pc-50A-10...or-Digital-Analog-Meter-Amp-Volt/282788295709

I haven't used one of those yet, so I don't know how accurate they are. Obviously they would have to be tested for accuracy on the Ohms and possibly at different voltage/amp ratings.

If the BQ couldn't read directly from it, then I was thinking of possibly using an ATTiny to do the remote monitoring, then report back the proper voltage back to the BQ current sensor. After all, it's only reading a voltage, so the ATTiny would just change the voltage on the return.
Again, I haven't done this, so I don't know how accurate this would be, or if it'd even work. I was thinking of going this route so the current shunt could be away from the monitoring station if need be, and still get good results. That way the heavy power leads wouldn't have to be ran in an awkward position. Just drop the shunt right at the battery, or right at the busbar connection before charger/inverter connections.
 
I understand the need for something to disconnect for OV/UV protection - what I was wondering was why you chose the VIctron product over any of the other available technologies. EG: DC Breaker, latching relay, SSR etc.

Well, the BQ chip supports a +-200mV signal for a shunt - the board I already have is setup for it, you just gotta plug it in.
For 200A that's a .001ohm shunt, half that for 100A etc. It has a 16bit ADC for current measurement. My problem with using a shunt is the amount of power lost to just using a shunt in general. If you open this other thread:
https://secondlifestorage.com/t-quick-arduino-bms?page=4
You'll see the issues with using a shunt for larger currents - basically you are wasting energy as heat whenever you use any current at all - it's always on. By using hall effect measurement, you get less accuracy and probably less robustness - but you lose no energy. The amount of heat generated at 200A is huge - 40watts - that's basically a soldering iron worth of heat.
For now, I'm going to move forward with a shunt since it's already there and supported. I was interested in using the hall effect sensor mentioned in that other thread, but that has a full scale voltage range that is much higher than what is supported by the BQ chip - and more of a nice to have than a need ATM.
 
How often are you running 200A?

Wouldnt it be better to just remove one 40w bulb in the house or just make sure your wiring is 1 size bigger? :) Doing that and you save more than you loose on the shunt and still can keep the shunt and its higher resolution. Many people often get stuck in obvious losses... But whats more obvious is losses everywhere else like in the inverter or in wires between stuff :D
 
For me, I'd be using around 40A max, and that's with every light, fan, device in the house turned on. The only reason I'd need a 100A sensor is for those start up times of the compressors to know how high the spikes were. And even then, that surge is only for about 2 seconds, tops.

It's not like we're all running electric heaters to bake paint on cars with these power walls ;)


If you'd like a good hall effect sensor, check this out by ROHM: https://www.allaboutcircuits.com/news/a-new-non-contact-current-sensor-ic-from-rohm-semiconductor/
It outperforms even a standard shielded sensor

Altho, it's not quite available for prime time yet. Buuuut, might be able to do something comparable on a slightly larger footprint.
 
I like the BP for portable installations because I can "power off" the system. I also have a breaker for the system as well but this is a big relay that can take some load.

For the system to power on the BMS would have to agree and the user would need to push the ON Switch. To power off the user breaks the circuit with the switch or the BMS senses a problem and shuts it down.

There are good BMS systems for large scale power wall but not in the 2-4kwh portable range. I'm not going to try and stuff a batrium system into a pelican case that is already heavy. This seems like a good portable alternative.
 
gpn said:
I'm not going to try and stuff a batrium system into a pelican case

Common now, it'll fit. You just need a bigger hammer ;)
 
  • Like
Reactions: gpn
Well, my issue is that I am currently running a 12v (soon to be 15v) system. With my 3kw inverter and running a microwave to heat up my depressing bachelor dinners, and let's say the fridge kicks on... It's not so much that it will be often, but it will need that peak power capacity. Eventually, I am going to move to a 24V system for obvious reasons - but until then I don't want to invest in a new inverter, water pump, buck converters for all of my lights, etc.

I actually only use the inverter very occasionally - I've converted most of my electronics to DC - Only my fridge, microwave, and power tools run on the inverter.

I'm working on updating the schematic now - my goal is to finish today and put in an order tomorrow to get parts and boards before CNY. When I finish updating the board I'll send out an update to this thread if anyone wants to pick it apart.

What I really want to do is have the ability to output 24v to trip a breaker, and an on-board relay to trip sensors like the one on the BP. I'm going to try and get that into my next board order. Anyone else got ideas of what else I should add?
For now I'm sticking with the shunt just for ease of use reasons.
 
Well it only took 5 hours, but I finished adding:
~200mA of balancing (adjustable, I put in FETS that can do up to 600mA)
5v 3A buck converter to power the ESP8266 (it'll need its onboard voltage reg) as well as to power accessories such as 5v relays and other goodies.
2 MCU pin ports for controlling accessories (not sure what for yet :))
Nets so everything should be easier to understand

https://easyeda.com/mikethezipper/10s-batt-management-with-balancing

Now that I finished with the schematic I'm working on the board I'm hoping to have this board ordered tomorrow, so if anyone wants to take a gander and pick at it, now is the time :)
 
Looks a lot better on the schematic design :)

Labels make things so easy for layout and separate sections.
 
Just realized there's no point ordering today since it's already the weekend in china - So if anyone has anything they think I should add - or any tips on the layout of the inductor for the buck converter or anything else - nows the time.

On a separate board I'm going to make a buck upconverter to get to 24v as well as some relays for tripping breakers or Victron doodads- the works. It'll plug into the data/power connector on the main BMS board. It will be controlled via the two output lines from the MCU.

I'd prefer to use JST or other connectors on these boards - but I don't have a set of professional crimpers, and I doubt most others do either.
 
So I have a version of the board on my EasyEDA with on-board 200mA balancing - however, I'm basically just now learning that really, that's way too low for any powerwall application basically ever.

So in addition to that design, I'm adding one with a JST-XH connector (I know, right after I said I wouldn't) that will go to a separate board just for balancing. I'm aiming to support up to around 3A balancing on the external board, although higher currents will require active cooling.

I found out that JST-XH cables in many pin/conductor counts are readily available on amazon/ebay - so that's saving me a TON of work. I was going to go down the D-Sub road but that would have been horrible.

Tim pointed out a couple of issues with my board and has been giving me suggestions so props to him! I'm hoping to have the board finalized this week.
 
So I've finished the basics of the schematic for the balancing board with balancing mosfets / resistors, and an arduino nano to monitor temps.
What I'm wondering now is if it makes sense to let the TI BQ chip "control" balancing. As in, the main MCU tells the BQ chip to balance, at which point it shorts together the + and - of the cell to be balanced. The Balance board then notices this short, and turns on a mosfet to dump power thru a resistor. If I have a nano there already to monitor temps (which I thought was just a good idea), then I could have the main MCU talk to that slave and have it control balancing - this means I could give full voltage to the mosfet gate (instead of a max of 2v via the BQ chip, I could get 3.3-5v). Then I would not need a 12 conductor cable to the balance board and instead just use a 5/6 conductor cable.

I'm just wondering what is the best solution in terms of robustness and safety. The slave that controls balancing could be set to automatically turn off balancing if it loses communication with the MCU - just hoping to get people's opinions on this.
 
For anyone who cares, I finished the following:

BMS board with on-board 200ma balance current:
https://easyeda.com/mikethezipper/10s-batt-management-with-balancing
BMS board with off-board balance of up to ~3A, and the balance board which was designed to support heatsinks with active cooling (think CPU cooler)
https://easyeda.com/mikethezipper/10s-batt-manager-with-off-board-balancing
and:
https://easyeda.com/mikethezipper/balance-board-5s

This is for the 6-10s version. If this sucker works out, I'll be making the 3-5s version for those with 12v systems. Since the balance boards are modular, you use one for 3-5s, and two of the same boards for the 6-10s version. As-is, though, the i2c wouldn't work for the second board since they don't share a common ground. At this point I don't really care to fix that, although this could be fixed by either making the balance board in a 10s configuration (holy expanding scope Batman!) or changing the i2c connectors to 4 conductor versions and using isolators on the balance boards.

Anyways, here are the links for your comments and suggestions:
 
So I guess strike one for dealing with Chinese companies (although it isn't their fault most likely). My boards and components have been sitting in US customs for the past 4 days while I'm stuck here twittlin my thumbs.
 
Better to be twitting them than widdling them ;)

Yeah, sometimes that stuff gets stuck for a week. I had something to get stuck in Jax for almost 2 weeks (it was "supposedly" coming from Cali, but I'm guessing not really)
 
Ok so I finally got my boards and components in.
Initial impressions: The footprints on EasyEDA are all messed up many of these components do not match the footprint they are supposed to be per the board. I was still able to populate a board, just ticks me off.

I think I figured out a cheaper alternative to the dinkle connectors - the mystery chinese connectors look like they are made using the same molds , but they are obviously made from a cheaper plastic. however, the plating seems good.

Also, the balance board looks kinda awkward - I'm looking forward to testing this thing and seeing how hot it gets :) I have provisions for bare resistors, resistors with a heatsink, and active cooling with a PWM fan - so this'll be fun to see if I can burn my place down.

I've looked through the balancing code in the SW and it's pretty simple and doesn't have any sort of smarts. Unfortunately, it leaves no way to just tell something to start balancing - I would need to do this manually.
I've got some coding to do so that I can trigger balancing on command for testing - so that's my next step. Hopefully by the end of this weekend I'll have the system up and running.
 
Mikethezipper said:
I'm just wondering what is the best solution in terms of robustness and safety. The slave that controls balancing could be set to automatically turn off balancing if it loses communication with the MCU - just hoping to get people's opinions on this.

If you have smart per-cell monitoring boards, you'd want the balance unit to automatically kick in even if the MCPU was off-line. This is what batrium cellmons do, they work independently unless told to do otherwise by the watchmon cpu.

In your case the sub-balance boards are simple & you'd probably want them to not attempt balancing without control or you might just end up with flat cells.
 
Well, since this isn't per-cell monitoring like batrium, it wouldn't really help in this case. But regardless, how does a longmon for example know when to balance if the main controller is offline? It just seems like without something there to monitor everything, it could end badly...
 
Back
Top