AC500+2 B300S and AC500 + 4 B300S BMS ISSUE

To Bluetti Support:
I have two AC500s and six B300S in the following configurations AFTER updating the firmware on each unit, over the internet, using the Bluetti phone app (Version 1.3.6). They were purchased on Indiegogo. BOTH are configured to Working Mode = Customixed UPS
Grid Charge = Enabled
Time Control = Disabled
Configuration 1 SOC Setting = 30% Low to 85% High
Configuration 2 SOC Setting = 30% Low to 86% High

All batteries were initially charged to 100%. In both configurations 1 and 2, the Customized UPS SOC mode does not balance the four batteries to 86% EACH (See spread Below)

In Configuration 1, the four batteries are connected per the user manual, but they display as numbers 1, 2, 3, and 4. This is correct.
In Configuration 2, the two batteries are connected per the user manual but they display as numbers 1 and 3, not 1 and 2. This is NOT correct

AC500 (SN: 2238001609928) with two B300S batteries
DSP: 4045.04
ARM: 4044.04
HNI: 6051.04
IoT: 9041.03
BMI: 1022.08
Overall SOC=86%
Batt1 SOC = 82%
Batt2 SOC = 0% (no battery)
Batt3 SOC = 90%
Batt4 SOC = 0% (no battery.

AC500 (SN: 2234000199054) with four B300S batteries
Comm Board: 2232000527759
DSP: 4045.08
ARM: 4044.04
HNI: 6051.04
IoT: 9041.02
BMI: 1022.08
Overall SOC=85%
Batt1 SOC = 92%
Batt2 SOC = 93%
Batt3 SOC = 60%
Batt4 SOC = 97%

In customized UPS Mode, I would expect the BMI to charge balance the batteries all to the high SOC settings (86% and 85 percent respectively). Is this correct? If not, please advise as to the reason for this inconsistency and how to repair it.

Thank you,
Reg Parks


  1. The battery pack number is randomly assigned, as long as they are all identified, there is no problem.
  2. You can connect two of the four B300S to the AC500 first, and then connect one B300S each, not all in series.
    First set to standard mode and charge to 100%, then set to custom mode. See if the difference in SOC will be smaller

Hope the above reply will be of some help.

1 Like

Inverter and batteries are communicating via CAN bus protocol with automatic address assignment. It’s normal for batteries to be allocated by the system to slots that are non increasing.
About the SoC between batteries connected to the same AC300/AC500 it’s normal to have a discrepancy in the charge level between batteries. The configuration SoC setting is the average SoC between batteries and not a SoC that will be kept on each battery.
If you would like to level the SoC of each battery so it is more close between each battery you can do a full discharge to 0% and full charge to 100% to allow the BMS to better equalize the in and out energy. This is recommented once every 3/6 months depending on usage.
In any case, all the power will be used from all of your batteries. No matter the level of discrepancy.
In any case the BMSs of all the batteries will keep a perfect voltage equalization between all of their cells, no matter which percent will be shown to you on the interface.
Keeping an equalized voltage between cells and batteries is honestly and technically speaking the only things that matters here.
Please always remember that battery percent (%) in a lithium battery array is calculated by in and out energy and not by battery voltage. There’s no way to know the charge of lithium or LiFePo4 battery by just looking at his voltage. So, the percent that’s shown to you on the interface is just an indication of how much energy it was taken from the battery based on the last full discharge and full charge during which the BMS calculated how much total energy was actually stored.
To conclude, probably Bluetti could have done a batter job in keeping the charge level similar between batteries.
However, the DC current sensor on batteries (could it be a shunt or a passive coil) that signals about how much energy is stored and taken it always add up a minimal error to the reading for mechanical and electromagnetic reasons (especially at low consumptions) and so it’s never too precise to allow the BMS to do up and down on percent and keep it constantly precise over time.
Also, being all the batteries in a shared bus, the current from each battery is taken simultaneously and since current is always taking the easiest path, that will also generate discrepancies on the charge level of each battery.
So, in fact we could say that a small percent discrepancy is part of the architecture, and this everything doesn’t change the fact that a full equalization is always needed once in a while.


Thank you for the prompt replies.
I will run Charge-Discharge cycles on all the batteries
What is IoT and why did the two AC500s not update to the same IoT version when I updated each one over the internet?
Configuration 1 = 9041.03
Configuration 2 = 9041.02

1 Like

IoT is the module that carry on communication translation from the internal components on the CAN bus to bluetooth and Bluetti cloud services using MQTT.
I will not worry about different versioning between devices and subsystems, from what I learnt the versions you are seeing are a byproduct of hardware revision, firmware and calibration. Bluetti is using the serial numbers to know which unit has which hardware and so which versions best suits the components while doing an update.
Just be sure to check for firmware updates every now and again.

1 Like

Thanks for the prompt reply. Great answers. do you work for Bluetti or just geek out on this stuff?

This is a bit off topic, but can I put my AC500 on top of 3x stacked B300s. I want to ensure I am not stacking more than what is recommended. I can’t seem to find the stacking limitations anywhere.