I think they have to be NTC but otherwise you can calibrate the bms to the sensors.
Flying ADC 16 channel BMS 96S test
-
- Posts: 700
- Joined: Thu Mar 02, 2023 1:30 pm
- Location: Uk
- Has thanked: 362 times
- Been thanked: 103 times
Re: Flying ADC 16 channel BMS 96S test
Re: Flying ADC 16 channel BMS 96S test
Few more days passed, and here’s the latest status...
Good news: Delta is dropping by about 1mV per day. I raised cell voltage from ~3.7V to ~3.9V and ignored delta changes in between. Now I’m keeping it between 3.85V and 3.92V to make it easier to track delta differences over time.
After three days, it looks like delta has dropped almost 3mV. I expect delta to stabilize around 2mV, although battery experts say 10mV is already good enough.
Firmware Update Issues
Two days ago, I checked the firmware repo and saw recent changes, so I decided to update to the latest build and test. That didn’t go as smoothly as I hoped...
I update via ST-Link since CAN updates have been hit-or-miss for me. I don't remove boards from the location, just disconnect cables.
My process:
1. Power off boards
2. Disconnect battery
3. Flash firmware
4. Reconnect battery
5. Power on boards
After updating to CI build #21, BMS3 (board #4) didn’t start properly—its LED flashed about half as often as the others. I then tried flashing CI #20, and everything seemed fine. I let it run overnight, but in the morning, only the master board was working—all other boards had their LEDs off.
You can see when that happened on the first chart around 02/19 01:00.
Checking logs, the boards worked for about 110 minutes before shutting down one by one. The same issue happened when I flashed CI #17 and CI #15.
I believe these firmware versions were 0.22B and 0.23B.
In the end, I flashed CI #11 (v0.20B), and everything seemed to be working again.
Strange Voltage Readings on BMS2
However, after flashing, something strange started happening with BMS2 (board #3) readings. Some cell voltages randomly jump to 0 or ridiculous values.
I checked connections and all looks solid.
At first, I thought it was a logging/decoding issue, but I also spotted the same thing in the Web UI.
Here’s a video showing the issue:
You can see the issue at 2:43 and 4:09—umin drops to -3.9V or 0mV, even though there are no cells with 0mV or negative values reported. Delta also reflects these incorrect values. In charts, I see some kV readings or 0V spikes.
This issue only started appearing after the firmware flash but I'm sure it's HW error. Not sure why it happened because of disconnected battery when flashing. Can you guess what is wrong with the board and what I should test? I received a spare boad few days ago and I can replace it if that is the best option.
I think this reading errors are visible on the first chart after 02/19 16:45—you can see drops in 0_Avg voltages since then.
Please let me know if you need more info.
ISA shunt CAN mapping
I have tried to create a idc CAN map for current value sent by ISA shunt.
I used this map: But I get some strange readings...
I'm expecting values for idc around 0.1A but getting from 2000 to over 10k.
What is wrong with my map?
Here is the latest info about pack...lowest grid shows range from 3905-3915mV Thanks for your help.
Good news: Delta is dropping by about 1mV per day. I raised cell voltage from ~3.7V to ~3.9V and ignored delta changes in between. Now I’m keeping it between 3.85V and 3.92V to make it easier to track delta differences over time.
After three days, it looks like delta has dropped almost 3mV. I expect delta to stabilize around 2mV, although battery experts say 10mV is already good enough.
Firmware Update Issues
Two days ago, I checked the firmware repo and saw recent changes, so I decided to update to the latest build and test. That didn’t go as smoothly as I hoped...
I update via ST-Link since CAN updates have been hit-or-miss for me. I don't remove boards from the location, just disconnect cables.
My process:
1. Power off boards
2. Disconnect battery
3. Flash firmware
4. Reconnect battery
5. Power on boards
After updating to CI build #21, BMS3 (board #4) didn’t start properly—its LED flashed about half as often as the others. I then tried flashing CI #20, and everything seemed fine. I let it run overnight, but in the morning, only the master board was working—all other boards had their LEDs off.
You can see when that happened on the first chart around 02/19 01:00.
Checking logs, the boards worked for about 110 minutes before shutting down one by one. The same issue happened when I flashed CI #17 and CI #15.
I believe these firmware versions were 0.22B and 0.23B.
In the end, I flashed CI #11 (v0.20B), and everything seemed to be working again.
Strange Voltage Readings on BMS2
However, after flashing, something strange started happening with BMS2 (board #3) readings. Some cell voltages randomly jump to 0 or ridiculous values.
I checked connections and all looks solid.
At first, I thought it was a logging/decoding issue, but I also spotted the same thing in the Web UI.
Here’s a video showing the issue:
You can see the issue at 2:43 and 4:09—umin drops to -3.9V or 0mV, even though there are no cells with 0mV or negative values reported. Delta also reflects these incorrect values. In charts, I see some kV readings or 0V spikes.
This issue only started appearing after the firmware flash but I'm sure it's HW error. Not sure why it happened because of disconnected battery when flashing. Can you guess what is wrong with the board and what I should test? I received a spare boad few days ago and I can replace it if that is the best option.
I think this reading errors are visible on the first chart after 02/19 16:45—you can see drops in 0_Avg voltages since then.
Please let me know if you need more info.
ISA shunt CAN mapping
I have tried to create a idc CAN map for current value sent by ISA shunt.
I used this map: But I get some strange readings...
I'm expecting values for idc around 0.1A but getting from 2000 to over 10k.
What is wrong with my map?
Here is the latest info about pack...lowest grid shows range from 3905-3915mV Thanks for your help.
-
- Posts: 700
- Joined: Thu Mar 02, 2023 1:30 pm
- Location: Uk
- Has thanked: 362 times
- Been thanked: 103 times
Re: Flying ADC 16 channel BMS 96S test
I had issues when trying to flash over CAN with multiple boards connected. If I flashed the first board then all others dropped off completely with on temporarily bricked. I had to disconnect and reflash them one by one over the STM link.
- johu
- Site Admin
- Posts: 6618
- Joined: Thu Nov 08, 2018 10:52 pm
- Location: Kassel/Germany
- Has thanked: 341 times
- Been thanked: 1484 times
- Contact:
Re: Flying ADC 16 channel BMS 96S test
Ah yes, the newer firmwares have a POST (power-on self test) and apparently that fails. This is indicated by the slowly flashing LED. In "lasterr" you can see why.
On said module there is probably an issue with the i2c comms to the ADC. Of course I don't understand why it shows now. I have changed the I2C comms timing in the latest firmware, supposedly for the better
I also changed the turn-off behaviour as you saw. It turns off 2 hours after seeing the last current flow. Will change that, as long as enable is on it shouldn't turn off.
Does the ISA current decode ok when you do it manually? You specified little endian in the mapping
On said module there is probably an issue with the i2c comms to the ADC. Of course I don't understand why it shows now. I have changed the I2C comms timing in the latest firmware, supposedly for the better
I also changed the turn-off behaviour as you saw. It turns off 2 hours after seeing the last current flow. Will change that, as long as enable is on it shouldn't turn off.
Does the ISA current decode ok when you do it manually? You specified little endian in the mapping
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
Re: Flying ADC 16 channel BMS 96S test
I will look into it over the weekend... will update to latest and check errors.johu wrote: ↑Fri Feb 21, 2025 10:18 am Ah yes, the newer firmwares have a POST (power-on self test) and apparently that fails. This is indicated by the slowly flashing LED. In "lasterr" you can see why.
On said module there is probably an issue with the i2c comms to the ADC. Of course I don't understand why it shows now. I have changed the I2C comms timing in the latest firmware, supposedly for the better
Do you think that some component failed or there might be trace continuity issues?
Yes, was thinking it was something with self tests.
Argh... I should come to that last night.

I remember I saw it somewhere:
viewtopic.php?f=41&t=4468
Question: how I will handle constant 70mV load reported from the shunt if I want to use idle func from the BMS?
Is there some threshold that can be set?
Should I map idcavg also? To the same signal?
Thanks
Re: Flying ADC 16 channel BMS 96S test
CAN mapping for ISA shunt is working nicely after configured correctly.
Here is configuration for idc and power:
Here is configuration for idc and power:
- johu
- Site Admin
- Posts: 6618
- Joined: Thu Nov 08, 2018 10:52 pm
- Location: Kassel/Germany
- Has thanked: 341 times
- Been thanked: 1484 times
- Contact:
Re: Flying ADC 16 channel BMS 96S test
Cool. Now just need to receive the integrator (Ah) value or integrate the current in the BMS.
The hard coded threshold is 0.8A
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
-
- Posts: 78
- Joined: Mon Oct 16, 2023 2:37 am
- Location: Willemstad, Curaçao
- Has thanked: 39 times
- Been thanked: 13 times
Re: Flying ADC 16 channel BMS 96S test
Hi there, im trying to get some bms reading on a nextion display, i cant seem to filter cellmax from the can data.
the value keeps changing, like it getting the counter also.
on the wiki it says :
16 13 umax maximum cell voltage of module i
30 2 counter counts from 0-3 (anti-freeze)
what am i missing in my code?
i highlighted the line for the cellmax reading.
all the other lines are reading just fine
the value keeps changing, like it getting the counter also.
on the wiki it says :
16 13 umax maximum cell voltage of module i
30 2 counter counts from 0-3 (anti-freeze)
what am i missing in my code?
i highlighted the line for the cellmax reading.
all the other lines are reading just fine
Re: Flying ADC 16 channel BMS 96S test
Why do you use different code for min and max? It's the same thing just on different bytes. So, code for min should return correct value for the max if you read from bytes 2 and 3.
Re: Flying ADC 16 channel BMS 96S test
I've updated all boards to the latest firmware again CI #21.
Board #4 is slowly flashing and reporting opmode error and lasterr BALANCER_FAIL.
It also reports 0V on all channels. Turned off balancing for now on all boards as this reading affects total reading.
I think that with latest firmware readings are more stable... I don't see jumps on edge cells readings anymore and board #3 doesn't report strange values, all looks pretty stable.
I will pull out board #4 and try to check what is happening... that board is the board where I changed resistors and FETs earlier.
Board #4 is slowly flashing and reporting opmode error and lasterr BALANCER_FAIL.
It also reports 0V on all channels. Turned off balancing for now on all boards as this reading affects total reading.
I think that with latest firmware readings are more stable... I don't see jumps on edge cells readings anymore and board #3 doesn't report strange values, all looks pretty stable.
I will pull out board #4 and try to check what is happening... that board is the board where I changed resistors and FETs earlier.

- Proton
- Posts: 238
- Joined: Sat May 06, 2023 2:23 am
- Location: Georgia/US
- Has thanked: 160 times
- Been thanked: 26 times
Re: Flying ADC 16 channel BMS 96S test
@johu
I finaly got my new connectors and installed back the BMSses. First time I made sure they connect and briffely checked the voltages on each one and saw some voltages were off but I said that I will check the wires later after I install the new connectors.
BMS 1and 3 have all batttey voltrages correct.
BMS 2 and 4 have most of the voltages correct and some of them not correct.
BMS 5 has all voltages incorrect as 4808v and is running hot.
For some reason BMS 6 does not light up at all.
I only have a cheap thermal camera but you cann see the difference.
it has 12v and ENA_IN is 2.8v
I finaly got my new connectors and installed back the BMSses. First time I made sure they connect and briffely checked the voltages on each one and saw some voltages were off but I said that I will check the wires later after I install the new connectors.
BMS 1and 3 have all batttey voltrages correct.
BMS 2 and 4 have most of the voltages correct and some of them not correct.
BMS 5 has all voltages incorrect as 4808v and is running hot.
For some reason BMS 6 does not light up at all.
I only have a cheap thermal camera but you cann see the difference.
it has 12v and ENA_IN is 2.8v
- johu
- Site Admin
- Posts: 6618
- Joined: Thu Nov 08, 2018 10:52 pm
- Location: Kassel/Germany
- Has thanked: 341 times
- Been thanked: 1484 times
- Contact:
Re: Flying ADC 16 channel BMS 96S test
Ouch. So BMS5 certainly has a hardware problem. You could flash the latest firmware to just that and see what it brings up. 2 and 4 might just be bad cell connections. No idea what's going on with #6 also. Sad thing is they all tested ok as far as I remember. I think I'll send you a number of v2.2 replacement boards.
You can set "enable" to "On" to resume operation. Will add some more debug output to find out more accurately what tests as bad.
Cool, some good news

Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
-
- Posts: 78
- Joined: Mon Oct 16, 2023 2:37 am
- Location: Willemstad, Curaçao
- Has thanked: 39 times
- Been thanked: 13 times
Re: Flying ADC 16 channel BMS 96S test
i did try that at first, but in the case of cellmin and cellavg, the 2 bytes contain only voltage data.
cell max, which is byte 2 and 3, shares byte 3 with the counter (bit 30 and 31). so i need to isolate those bits to get the reading and i dont really know how to do that.
- Proton
- Posts: 238
- Joined: Sat May 06, 2023 2:23 am
- Location: Georgia/US
- Has thanked: 160 times
- Been thanked: 26 times
Re: Flying ADC 16 channel BMS 96S test
I will try the upgrade today. I have an older 2.0 vewrsion board that I ordered lontime ago to test. can that be combined with the version 2.1?
- johu
- Site Admin
- Posts: 6618
- Joined: Thu Nov 08, 2018 10:52 pm
- Location: Kassel/Germany
- Has thanked: 341 times
- Been thanked: 1484 times
- Contact:
Re: Flying ADC 16 channel BMS 96S test
Yes they are all compatible
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
- Proton
- Posts: 238
- Joined: Sat May 06, 2023 2:23 am
- Location: Georgia/US
- Has thanked: 160 times
- Been thanked: 26 times
Re: Flying ADC 16 channel BMS 96S test
https://github.com/jsphuebner/FlyingAdcBms
I went on the github and cannot find Firmware or Download firmware. where do I find the new firmware?
I went on the github and cannot find Firmware or Download firmware. where do I find the new firmware?
- johu
- Site Admin
- Posts: 6618
- Joined: Thu Nov 08, 2018 10:52 pm
- Location: Kassel/Germany
- Has thanked: 341 times
- Been thanked: 1484 times
- Contact:
Re: Flying ADC 16 channel BMS 96S test
All versions are here: https://github.com/jsphuebner/FlyingAdcBms/actions
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
- Proton
- Posts: 238
- Joined: Sat May 06, 2023 2:23 am
- Location: Georgia/US
- Has thanked: 160 times
- Been thanked: 26 times
Re: Flying ADC 16 channel BMS 96S test
I am lost here:
I click on the first link and BMS firmware binary but I ncannot click it.
and I am guessing that I can pograde te firmware from ESP32, correct?
I click on the first link and BMS firmware binary but I ncannot click it.
and I am guessing that I can pograde te firmware from ESP32, correct?
Re: Flying ADC 16 channel BMS 96S test
I think you just need to login to github and you will get download icon next to the artifact.
- Proton
- Posts: 238
- Joined: Sat May 06, 2023 2:23 am
- Location: Georgia/US
- Has thanked: 160 times
- Been thanked: 26 times
Re: Flying ADC 16 channel BMS 96S test
I ungraded #5 and now it is displaying all values as 0V instead of 4808v
I swapped BMS 2 with BMS 3 and now BMS2 is showing the right voltages and BMS 3 is showing the voltages BMS2 ws showing before swap, so the wires from the batteries are good. also tested them with the voltmeter.
Should I upgrade the other 2 that are not working right ?
.
I swapped BMS 2 with BMS 3 and now BMS2 is showing the right voltages and BMS 3 is showing the voltages BMS2 ws showing before swap, so the wires from the batteries are good. also tested them with the voltmeter.
Should I upgrade the other 2 that are not working right ?
.
- Proton
- Posts: 238
- Joined: Sat May 06, 2023 2:23 am
- Location: Georgia/US
- Has thanked: 160 times
- Been thanked: 26 times
Re: Flying ADC 16 channel BMS 96S test
I upgraded one of the 2 boards displaying some of the voltages wrong and now on the 0.23B is displaying all voltages 0v , like the BMS that is overheating.
Update: I upgraded the 2nd BMS that was showing the wrong voltages and after upgrade is still showing the wrong voltages. so the BMS that overheats and one of the 2 that was showing the wrong voltages are now showing the 0v on all 16 batteries and the other one is still showing the wrong voltages.
Update: I upgraded the 2nd BMS that was showing the wrong voltages and after upgrade is still showing the wrong voltages. so the BMS that overheats and one of the 2 that was showing the wrong voltages are now showing the 0v on all 16 batteries and the other one is still showing the wrong voltages.
- johu
- Site Admin
- Posts: 6618
- Joined: Thu Nov 08, 2018 10:52 pm
- Location: Kassel/Germany
- Has thanked: 341 times
- Been thanked: 1484 times
- Contact:
Re: Flying ADC 16 channel BMS 96S test
Looks like the bottom mosfet (Q5) is blown. It needs replacing with a 100V type in case you want to try that. The one I use is called BSS123
All voltages 0 is the result of a failed self test, lasterr tells you which test failed. You can resume by setting enable=On
All voltages 0 is the result of a failed self test, lasterr tells you which test failed. You can resume by setting enable=On
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
- Proton
- Posts: 238
- Joined: Sat May 06, 2023 2:23 am
- Location: Georgia/US
- Has thanked: 160 times
- Been thanked: 26 times
Re: Flying ADC 16 channel BMS 96S test
I can change it. Both boards that show 0v ?
Also...
on the board that is not working at all, it's missing D1. Probably I touched it when I removed the old connector.
Do you have a part number for that? or should I move D1 from the BMS that is overheating? It will be the test to see how good I am at "welding"
Also...
on the board that is not working at all, it's missing D1. Probably I touched it when I removed the old connector.
Do you have a part number for that? or should I move D1 from the BMS that is overheating? It will be the test to see how good I am at "welding"
- johu
- Site Admin
- Posts: 6618
- Joined: Thu Nov 08, 2018 10:52 pm
- Location: Kassel/Germany
- Has thanked: 341 times
- Been thanked: 1484 times
- Contact:
Re: Flying ADC 16 channel BMS 96S test
Oh! yes that would explain it
just put any diode you have handy or even bridge it. It's reverse polarity protection.
The FETs will only help on board 11. 13 and 14 seem to have additional problems, i.e. more blown FETs

The FETs will only help on board 11. 13 and 14 seem to have additional problems, i.e. more blown FETs
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
- Proton
- Posts: 238
- Joined: Sat May 06, 2023 2:23 am
- Location: Georgia/US
- Has thanked: 160 times
- Been thanked: 26 times
Re: Flying ADC 16 channel BMS 96S test
I found a T4 Diode and now the board is working. it was displaying 2 or 3 cells with the wrong voltages and after upgrade, now is showing 0V on all cells. I guess I will have to replace Q5 like on the other 2 boards.
Can we repair the overheating board? let me know if I can do it remotelly. I am getting preety good at welding.
Summary:
- all boards are on the latest firmware.
- 2 work fine
- 3 are displaying 0V after upgrade and before upgrade were displaying 2-3 cells with the wrong voltages.
- 1 Displaying 0V and overheating.
Can we repair the overheating board? let me know if I can do it remotelly. I am getting preety good at welding.
Summary:
- all boards are on the latest firmware.
- 2 work fine
- 3 are displaying 0V after upgrade and before upgrade were displaying 2-3 cells with the wrong voltages.
- 1 Displaying 0V and overheating.