Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
TI BQ769X0 Based Monitors - Project thread
Hey group,
I designed some boards for a 3-5s battery monitor and a 6-10s battery monitor. I used the clunky/awful easyEDA and ordered through their website, and I'll have the boards and components in about a week.
From there I'll solder it up (all SMD stuff) and report back on the success of this endeavor. I have a single board with the TI monitor chip and an esp8266 based controller on the board to read the data from the chip and broadcast it out via wifi or whatever - the board has room for additional headers if needed as output from the controller MCU.

As of now, balancing isn't on the same board as I wanted to take this problem one chunk at a time.  I was going to do a separate board for balancing (controlled by the MCU on the monitor board), so I have connectors setup on it for that but we'll see. Although the TI monitor chip does allow for balancing - I wanted to separate it out due to heat and current considerations - plus as I said, I'm taking it one step at a time. 

Looks like some others on easyEDA have BQ76930 designs that'r pretty similar to mine (of course you only find these things out after you've finished) - the main difference being that mine allows for selecting cell count on the board instead of having to create external jumpers  - also, they did a much better job Smile
Korishan likes this post
You can find many based on BQ769** Series. Even with ESP8266 included balancing and all.

I have done some too and some are on github
The Ultimate DIY Solar and build place
YouTube / Forum system setup / My webpage  Diy Tech & Repairs

Current: 10kW Mpp Hybrid | 4kW PIP4048 | 2x PCM60x | 100kWh LiFePo4 | 20kWh 14s 18650 |  66*260W Poly | ABB S3 and S5 Trip breakers
Upcoming: 14S 18650~30kWh
Are there really? At face value there are many, but everything I saw upon closer inspection were many abandoned projects. What I'm aiming for is something that is well documented that will be an asset to the community. Right now the only option is an expensive option. Once I get past the stage of showing that it actually works, I'll share what I have. Until then I'll keep it to myself so there isn't yet another halfway finished project floating around in the web. Even better if they were made and sold since right now there are no options besides battrium or other industrial level solutions. For those of us living in smaller places like vans and RVs, it makes no sense to spend the needed $500 for a battrium system when all the panels and batteries alone don't even add up to that. Additionally, the projects I found that were in the advanced stages were geared towards much smaller packs than we use (ebikes etc) so their balancing circuitry was insufficient for our uses.
Ok, I'm going to retract my "Won't share till it works" statement , I forgot I'm both not an EE, and not particularly smart.

I have shared the current existing diagram and board in EasyEDA - Note that I have immediately found issues with it - Primarily that the SDA and SCL should go to pins D1 and D2 - also, that I should hook up the Boot (aka T1 pin from the BQ chip) so that the MCU knows if the chip is even on (although I think Regout could do the same trick).

I also learned that the ESP8266 (or ESP8285) can't be powered by REGOUT from t he BQ chip - the datasheet says it should be able to do it, but it doesn't Sad Also, generally best NOT to use the voltage regulator on the BQ chip if you can use a separate chip that can handle more power.
Also, there are ~ 7 different BQ76930 chips  - different chips have different i2c addresses. I was unable to communicate with the chip until I did an i2c scan to figure out that the default 0x18 address is for every chip besides the one I got from LCSC.

When using the libresolar library, it would time-out the esp chip. I had to comment out the section for the bootcheck since it would just time-out the esp chip.
I will be updating the Github with the latest code:
Now I'm having trouble just generally communicating with the chip.

My test setup is an 8s holder hooked up, with the appropriate pins shorted for the BQ. The output is for some reason saying that the Overvoltage and Undervoltage are both tripped, even though that's not possible.

Hopefully I can figure it out on my own, but if anyone wants to help out, you can comment here or the Github.
Walde likes this post
Is this testing by chance on a breadboard? If so, it'd possible for a loose connection on jumper wires, or they come out completely. I've had this issue and caused the above trip.

Can you still see the i2c address if you do a scan? If not, the ic might be fried
Proceed with caution. Knowledge is Power! Literally! Cool 
Knowledge is Power; Absolute Knowledge is Absolutely Shocking!
Certified 18650 Cell Reclamation Technician

Please come join in general chit-chat and randomness at Discord Chat (channels: general, 3d-printing, linux&coding, 18650, humor, ...)
(this chat is not directly affiliated with SecondLifeStorage; VALID email req'd)
where did you find those pluggable screw connectors? i must have done a hundred searches in easyeda and on lcsc looking for those
The testing was on the PCB. Since the PCBs were so cheap and breadboarding takes so darn long, I opted to just have PCBs made, with some extra pads to solder in jumpers n such when I found out how I screwed up Smile
Last night I made some more progress - found out what was wrong. Now I"m having issues getting voltage readings (it communicates with chip and has no errors). When I have it read voltages for the individual cells or the pack it just responds with a 0. The ADC is shown as energized and active.

If you open the EasyEDA project they should be in there - they are made by Dinkle - the worst name I could ever imagine. If you just go to connectors, set it to Dinkle only, 1 row, 6 positions - they are in there. The BOM isn't complete because it doesn't show the extras like the male side of the connectors or the jumpers I had to use, so I'll see if I can share the BOM I ordered. I feel ya though, I spent forever searching for connectors on there.

Also EasyEDA screws things up in the BOM. For example, they didn't concatenate all parts of the same PN, so I had multiple orders for the same part number, each of which didn't reach the minimum order qty - so they put in three separate orders for the same capacitors (qty 2 each with a min of 50) and were trying to order 150 of these parts when I only needed 6 of them. Also, there is a lot of work to be done to get the BOM cost down.
Basically, the Dinkle connectors are almost three times the cost of the Chinese variants - but since I can't read Chinese and the datasheets suck, I wasn't sure if the male/female Chinese connector combo would actually work together. I meant to order a couple so I could switch to those, but alas, I forgot.

My goal is that if I can get the darn thing to just work as intended, I'll do another order of PCBs and components with everything fixed - and a separate set with boards for balancing. My first order alone was ~100$, so I think by the time this is all said and done I'm going to be at the bottom of a deep hole with a marginally functional BMS. My hope was that others who were interested could work with me and help me do a good job of documenting everything.

I think the cost of the final board will be around ~$3 plus ~$15 components. Hopefully we can get boards pre-populated by LCPCB since populating it and reflowing isn't super fun, and not in most user's list of things they want to deal with. Hopefully we can get a group-buy or something (although by then I'll have my board)

I really really really like the Libresolar BMS, my problems with it are: it has some documentation - just enough to get me excited, but too little for me to be able to adapt it to our needs easily. Also, it's onboard MCU isn't friendly for our uses. I want something that we can program via USB since most users don't want to have to have a separate programmer etc. I want it to be doable via the arduino IDE (I'm too ignorant to even know the correct nomenclature for this stuff).
Just looked over the mbed library (there are two libraries from libresolar - one is for the arduino which is older, and the mbed version which is newer) - although it isn't directly arduino compatible, it has many added functions that are needed.
The first one that jumps out is auto detection of i2c address and whether CRC is required or not.
The arduino library requires one to manually adjust the i2c address and has no CRC support that I can tell. The mbed will basically automatically scan for the four possibilities (by writing 0x19 to the BQ) and then seeing if the settings used resulted in a successful read/write cycle.
Additionally it includes an SOC calculator (Need to double check that it's based on the max and min voltages) and some other goodies.

Cool stuff. I'll try and merge the two libraries tonight or tomorrow and put them into Github
Looking over your EasyEDA schematic. Word of advice, make all your routes 90* angles. All lines should straight. This makes things a 'lot' easier to read and understand.

Why do you have D2? It's not in the TI schematic. What's the purpose of it? It connections Batt- with Batt+ bypassing all the cells.

Also, the connection between C6C and C5BC should go directly to VC5x. you have it going through the resistor R10
Proceed with caution. Knowledge is Power! Literally! Cool 
Knowledge is Power; Absolute Knowledge is Absolutely Shocking!
Certified 18650 Cell Reclamation Technician

Please come join in general chit-chat and randomness at Discord Chat (channels: general, 3d-printing, linux&coding, 18650, humor, ...)
(this chat is not directly affiliated with SecondLifeStorage; VALID email req'd)
Hey Kori,

I've mostly updated the schematic to have sharper corners Smile. D2 exists only because it was in the reference design from TI. I'll double check the connection to VC5x, but not too sure what the negative affect of having a resistor there would be.

I've been having issues communicating because the chips I got from LCSC require CRC checks on all data transmissions. The Libresolar library for ARM processors has built in CRC support, while the older arduino library does not. I'm working on migrating the CRC support into the arduino library. If I'm successful I'll see if I can update the libresolar library as I've seen a few requests for it.
Korishan likes this post

Forum Jump:

Users browsing this thread: 1 Guest(s)