diy solar

diy solar

Differential I2C for BMS Data Interconnect

curiouscarbon

Science Penguin
Joined
Jun 29, 2020
Messages
3,014
Hello,

In process of planning 1+ packs to build and parallel together.

The BMS uses UART serial to communicate cell data. I want central arduino brain for management.

Anyone used this to link BMS? https://learn.sparkfun.com/tutorials/sparkfun-qwiicbus-hookup-guide
It's differential i2c over RJ45 cables.
18000-SparkFun_QwiicBus_-_MidPoint-01.jpg
I'm seriously considering it for my projects. Mentioned in the "why make this" is "need low cost open source CANBUS alternative" which is relatable.

For example, one microcontroller per BMS to translate from UART to I2C. Use I2C isolator, powered from local pack. Isolator: https://www.adafruit.com/product/4903
Each isolated i2c data port will connect to a common QwiicBus interface, leading to the arduino brain. This seems safe to me.

Isolator spec:
  • Safety-related certifications:
    • 4242-VPK isolation per DIN VDE V 0884-11:2017-01
    • 2500-VRMS isolation for 1 minute per UL 1577
    • CSA approval per IEC 60950-1 and IEC 62368-1 end equipment standards
    • CQC basic insulation per GB4943.1-2011

Anyone have thoughts on this approach? All feedback welcome.
 
Last edited:
In the past I thought about similar, my end result was different BMS.
(DIYBMS) (With WiFi, BT and CAN)

One of the reason to use Arduino was to collect the data into a database to monitor trends.

Openenergymonitor community

Is probably the place to be.
They have tonnes of possibilities for energy monitoring.

What is your goal?
 
Hello fhorst, thank you for your reply.
Thank you for mentioning your solution, I'll check out DIYBMS on the forum more.

My goal is to parallel multiple 24V packs to build ~10kWh (stationary for now) storage and beyond.
I'm using 100Ah Frey cells, and 100A 24V 8S JBD BMS. 2.5kWh per pack.

The general plan is to accumulate serial data from all BMS to central microcontroller that decides actions.

In the most robust form, each pack would have a dedicated contactor and shunt, and be brought online automatically when in the correct voltage range as the rail.
 
My goal is to parallel multiple 24V packs to build ~10kWh (stationary for now) storage and beyond.
What were the pros and cons of making four 8S packs and paralleling them into one 8S4P 10kWh pack versus a single pack of 4P8S?
........In the most robust form, each pack would have a dedicated contactor and shunt, and be brought online automatically when in the correct voltage range as the rail
What was the process for bringing one of the 8S packs back to the voltage of the pack so it could be automatically added back to the bigger pack?
 
What were the pros and cons of making four 8S packs and paralleling them into one 8S4P 10kWh pack versus a single pack of 4P8S?
Pros:
  • Per raw cell monitoring (mandatory feature)
  • Carry easy (50LB pack vs 200LB+ pack)
  • Maintenance easier (touch 8 cell vs touch 32 cell)
  • Resilience (only one pack needed to operate)
  • Hot swapping (per pack rail voltage sense and contactor)
Cons:
  • More components to fail (BMS, contactor, microcontrollers)
  • Multiple BMS to manage (data propagation)
  • Relies on software behavior (bugs, errors)

What was the process for bringing one of the 8S packs back to the voltage of the pack so it could be automatically added back to the bigger pack?
At first, "full charge rejoin" separately charge big and small pack to 3.5Vpc and press "GO" button. GO button tells system to compare small pack voltage to big pack voltage and close contactor if all values check out. This is where the arduino brain is handy. It's possible to take into account the individual pack voltages in addition to the simple rail voltage. This aspect I planned to be simple at first and become more automated over time (e.g. small per pack dc/dc converter to automatically match voltage then auto connect).

Eventually I want to be able to plug in one of these packs with an SB175 connector and it just talks to the system, charges or discharges to match big pack voltage using a small aux harness, then contactor brings it online at an appropriate time (voltage match, no/low system load).

Writing low level firmware is not a problem, so many of the features I will implement as needed when unavailable from existing parts.
 
Last edited:
I would place the multiple BMS as a pro.

Just follow the forum for a few months and you get an idea how many fail.

To consolidate their information, that's where the openenergymonitor is a great contribution with all its options (open source)

Arduino easy could be a part of that.
DIYBMS have attiny841 as "brains" on the cell modules :)

To automatically switch a pack, disconnect one that have problems, charge the "hot" swap up to level and insert it at the correct location and time...
Ambitious!!

LiFePO4 cells seldom fail after they have had their "burn in" period (few months)
Even in the few months, not many fail.

Many fail before...
Top charge going wrong, montage errors, shorts...
All done that, been there.. :-(

I don't see the need to do like that.
We live off grid, we're not a hospital that needs 24/7 or otherwise people die.
For those setups, security, finance, datacenter etc., Sure.

I'm sure it's a fun project!!
 
thank you for your input and the extra info about openenergymonitor and DIYBMS and attiny841

i agree strongly that simply thoroughly capacity testing and measuring internal resistance and matching all cells myself and then assembling them into a big parallel pack would probably work great for a long time, but the thought of even a single cell causing hidden problems does not sit well with me.

the system will likely protect medicine, so extra operational assurance is called for

i’m happy to temporarily back away from the more complicated features like auto pack insertion and just shut everything down for a little bit and do it manually. still pondering trade offs...

thanks again for your input @fhorst
 
The system I'm working on for a friend has 24v (S8) 260Ah BYD packs, mounted as 2*24= 48 S16 packs.
Each 2 packs have their own BMS.
He buys 9 packs.
(Laser welded, factory compressed)

If one pack (cell) would go bad, that section will stop , leaving the other 3 sets still connected to the backbone.
Sure, he reduce 260Ah still has 780Ah left.

The idea is to manually charge the remaining pack to 100%, just as the spare pack

Also charge the remaining 3*2, packs to 100%
Then disconnect charge, and reconnect the cells.

For him he has grid, just not stable.

The seller of the BYD packs installs them for him at his home, and uses ANT BMS and 5A active balancers.
ANT BMS is mosfet based, not my favourite type, but many work long time.

If they fail he can always switch to Chargery or other contactor based BMS.

For him it's not a problem to have external shunt to monitor power in-out.

He'll probably never look at the ANT BMS BT information, it doesn't tell him anything he can do something with.
Except when one isn't functional.
 
Back
Top