Hi,
We are using two SMBus Battery monitors and they are connected to the flight controller. We have flashed the latest stable firmware. We are able to read pack voltages, current, temperature and remaining capacity of both the packs. But we are able to read the cell voltages of only one pack. I think the firmware reads the cell voltages from both the battery packs, but the voltages read from the first pack gets replaced with the voltages read from the second pack.
Has anyone faced this issue earlier? How can we resolve this issue?
The address of the second battery pack needs to be changed, and then both packs will be recognized as two separated entities.
Ask the manufacturer how to do that.
Both the battery monitors have different addresses. Seems Mission Planner gets cell voltages of first monitor only.
Confirmed from one of the contributor on Github. He has asked me to use plugins to get the above information
Hello, may I ask how you implemented SMBUS? What specific configurations need to be modified?
We have our own inhouse developed BMS which supports SMBus Communication for Smart Batteries. You’ll have to change the battery monitor type to SMBus Generic and change the I2C bus (usually 0 or 1) and I2C address parameter. After this, ideally it should start reading all the data.
i was reading the ardupilot source code and i found this function:
AP_BattMonitor_DroneCAN::handle_battery_info_aux_trampoline
in here at line 231. it says the batt_option must be set for AllowSplitAuxInfo which is 1<<7 in here line 61. but the for loop breaks at the fisrt one matches the condition and never go to next entities. am i wrong?
i also tested changing battx_monitor parameters. battery_cellx is shown just for the batt_monitor not batt2_monitor or else even that i used just one of them at the same time.
