Fying ADC BMS incorrect voltage readings

Topics concerning OEM and open source BMSes
Post Reply
Jacobsmess
Posts: 836
Joined: Thu Mar 02, 2023 1:30 pm
Location: Uk
Has thanked: 480 times
Been thanked: 137 times

Fying ADC BMS incorrect voltage readings

Post by Jacobsmess »

So, I've found a bit of time to try and get these board running again.
I've got 7 boards that run following fixing D1 (diode) and U11 (voltage regulator).
Of the 7, 4 are giving faulty voltage readings.
(BMS1, BMS2, BMS4 and BMS7). So far I've not run them in series, so I'm just testing with a bank of 16 cells at a time until I can get them reading correctly.
I've gone through all the components on the left of the board (cell tap inputs) and measured each resistor and FET. All but one board appear to be fine (FET readings around 0.6V for most bar Q1 and Q5 which read around 0.7V).
I've checked the boards with a thermal imaging camera and cannot see any particular components that appear too hot, checking the 17pin plug confirms the wiring it correct (3.8Vbetween each pin).

I'm at a bit of a loss as to what next to check and how to check it.

Any guidance or tips of what to check would be great.
Hardware version is V2.1 and I'm running the latest firmware....
Help me O-I Community, you're my only hope ;)
Thanks
User avatar
johu
Site Admin
Posts: 6968
Joined: Thu Nov 08, 2018 10:52 pm
Location: Kassel/Germany
Has thanked: 454 times
Been thanked: 1771 times
Contact:

Re: Fying ADC BMS incorrect voltage readings

Post by johu »

what readings do you get?
what is lasterr?
Best post 192.168.4.1/cmd?cmd=json
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
Jacobsmess
Posts: 836
Joined: Thu Mar 02, 2023 1:30 pm
Location: Uk
Has thanked: 480 times
Been thanked: 137 times

Re: Fying ADC BMS incorrect voltage readings

Post by Jacobsmess »

johu wrote: Tue Sep 23, 2025 1:46 pm what readings do you get?
what is lasterr?
Best post 192.168.4.1/cmd?cmd=json
Thanks, I'll try post the jsons tomorrow.
Voltage readings anywhere from -1V to 4V. It seems as though the difference between the 1st incorrect voltage and the 2nd is 3.8V but im not entirely sure. I'll check tomorrow.
Last error has shows Cell_Polarity on some, nothing on others, when I chance the number of cells down to 8 and then increase back to 16 (with saving params and power cycling) this clears. I'm not entirely sure this is related however.
User avatar
johu
Site Admin
Posts: 6968
Joined: Thu Nov 08, 2018 10:52 pm
Location: Kassel/Germany
Has thanked: 454 times
Been thanked: 1771 times
Contact:

Re: Fying ADC BMS incorrect voltage readings

Post by johu »

Interesting! With this method you could find the faulty channel.
That said, errinfo should also show the channel where supposed reverse polarity is detected
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
Jacobsmess
Posts: 836
Joined: Thu Mar 02, 2023 1:30 pm
Location: Uk
Has thanked: 480 times
Been thanked: 137 times

Re: Fying ADC BMS incorrect voltage readings

Post by Jacobsmess »

So this is an example of one BMS with 2 broken channels (U2 and U3). The incorrect values jump around quite a lot.
From -0.5625v to 1.75v
Attachments
17587168518412006753905334515680.jpg
Jacobsmess
Posts: 836
Joined: Thu Mar 02, 2023 1:30 pm
Location: Uk
Has thanked: 480 times
Been thanked: 137 times

Re: Fying ADC BMS incorrect voltage readings

Post by Jacobsmess »

errinfo is 0, lasterr is none
output from http://192.168.4.1/cmd?cmd=json

Code: Select all

{
   "gain":{
      "unit":"mV/dig",
      "id":3,
      "value":586,
      "isparam":true,
      "minimum":1,
      "maximum":1000,
      "default":586,
      "category":"BMS",
      "i":0
   },
   "correction0":{
      "unit":"ppm",
      "id":14,
      "value":-1250,
      "isparam":true,
      "minimum":-10000,
      "maximum":10000,
      "default":-1250,
      "category":"BMS",
      "i":1
   },
   "correction1":{
      "unit":"ppm",
      "id":15,
      "value":1500,
      "isparam":true,
      "minimum":-10000,
      "maximum":10000,
      "default":1500,
      "category":"BMS",
      "i":2
   },
   "correction15":{
      "unit":"ppm",
      "id":16,
      "value":1000,
      "isparam":true,
      "minimum":-10000,
      "maximum":10000,
      "default":1000,
      "category":"BMS",
      "i":3
   },
   "numchan":{
      "unit":"",
      "id":4,
      "value":16,
      "isparam":true,
      "minimum":1,
      "maximum":16,
      "default":16,
      "category":"BMS",
      "i":4
   },
   "balmode":{
      "unit":"0=Off, 1=Additive, 2=Dissipative, 3=Both",
      "id":5,
      "value":0,
      "isparam":true,
      "minimum":0,
      "maximum":3,
      "default":0,
      "category":"BMS",
      "i":5
   },
   "ubalance":{
      "unit":"mV",
      "id":30,
      "value":4500,
      "isparam":true,
      "minimum":0,
      "maximum":4500,
      "default":4500,
      "category":"BMS",
      "i":6
   },
   "idlewait":{
      "unit":"s",
      "id":12,
      "value":60,
      "isparam":true,
      "minimum":0,
      "maximum":100000,
      "default":60,
      "category":"BMS",
      "i":7
   },
   "turnoffwait":{
      "unit":"s",
      "id":58,
      "value":72000,
      "isparam":true,
      "minimum":0,
      "maximum":999999,
      "default":72000,
      "category":"BMS",
      "i":8
   },
   "idlethresh":{
      "unit":"A",
      "id":55,
      "value":0.5,
      "isparam":true,
      "minimum":0,
      "maximum":10,
      "default":0.5,
      "category":"BMS",
      "i":9
   },
   "dischargemax":{
      "unit":"A",
      "id":32,
      "value":200,
      "isparam":true,
      "minimum":1,
      "maximum":2047,
      "default":200,
      "category":"Battery Characteristics",
      "i":10
   },
   "nomcap":{
      "unit":"Ah",
      "id":9,
      "value":100,
      "isparam":true,
      "minimum":0,
      "maximum":1000,
      "default":100,
      "category":"Battery Characteristics",
      "i":11
   },
   "icc1":{
      "unit":"A",
      "id":43,
      "value":50,
      "isparam":true,
      "minimum":1,
      "maximum":2000,
      "default":50,
      "category":"Battery Characteristics",
      "i":12
   },
   "icc2":{
      "unit":"A",
      "id":44,
      "value":30,
      "isparam":true,
      "minimum":1,
      "maximum":2000,
      "default":30,
      "category":"Battery Characteristics",
      "i":13
   },
   "icc3":{
      "unit":"A",
      "id":45,
      "value":20,
      "isparam":true,
      "minimum":1,
      "maximum":2000,
      "default":20,
      "category":"Battery Characteristics",
      "i":14
   },
   "icutoff":{
      "unit":"A",
      "id":57,
      "value":2,
      "isparam":true,
      "minimum":1,
      "maximum":200,
      "default":2,
      "category":"Battery Characteristics",
      "i":15
   },
   "ucv1":{
      "unit":"mV",
      "id":46,
      "value":3900,
      "isparam":true,
      "minimum":3000,
      "maximum":4500,
      "default":3900,
      "category":"Battery Characteristics",
      "i":16
   },
   "ucv2":{
      "unit":"mV",
      "id":47,
      "value":4000,
      "isparam":true,
      "minimum":3000,
      "maximum":4500,
      "default":4000,
      "category":"Battery Characteristics",
      "i":17
   },
   "ucellmax":{
      "unit":"mV",
      "id":29,
      "value":4200,
      "isparam":true,
      "minimum":1000,
      "maximum":4500,
      "default":4200,
      "category":"Battery Characteristics",
      "i":18
   },
   "ucellmin":{
      "unit":"mV",
      "id":28,
      "value":3300,
      "isparam":true,
      "minimum":1000,
      "maximum":4500,
      "default":3300,
      "category":"Battery Characteristics",
      "i":19
   },
   "ucellhyst":{
      "unit":"mV",
      "id":56,
      "value":4150,
      "isparam":true,
      "minimum":1000,
      "maximum":4500,
      "default":4150,
      "category":"Battery Characteristics",
      "i":20
   },
   "ucellkp":{
      "unit":"",
      "id":59,
      "value":1,
      "isparam":true,
      "minimum":0,
      "maximum":100,
      "default":1,
      "category":"Battery Characteristics",
      "i":21
   },
   "ucellki":{
      "unit":"",
      "id":60,
      "value":1,
      "isparam":true,
      "minimum":0,
      "maximum":100,
      "default":1,
      "category":"Battery Characteristics",
      "i":22
   },
   "ucell0soc":{
      "unit":"mV",
      "id":17,
      "value":3300,
      "isparam":true,
      "minimum":2000,
      "maximum":4500,
      "default":3300,
      "category":"Battery Characteristics",
      "i":23
   },
   "ucell10soc":{
      "unit":"mV",
      "id":18,
      "value":3400,
      "isparam":true,
      "minimum":2000,
      "maximum":4500,
      "default":3400,
      "category":"Battery Characteristics",
      "i":24
   },
   "ucell20soc":{
      "unit":"mV",
      "id":19,
      "value":3450,
      "isparam":true,
      "minimum":2000,
      "maximum":4500,
      "default":3450,
      "category":"Battery Characteristics",
      "i":25
   },
   "ucell30soc":{
      "unit":"mV",
      "id":20,
      "value":3500,
      "isparam":true,
      "minimum":2000,
      "maximum":4500,
      "default":3500,
      "category":"Battery Characteristics",
      "i":26
   },
   "ucell40soc":{
      "unit":"mV",
      "id":21,
      "value":3560,
      "isparam":true,
      "minimum":2000,
      "maximum":4500,
      "default":3560,
      "category":"Battery Characteristics",
      "i":27
   },
   "ucell50soc":{
      "unit":"mV",
      "id":22,
      "value":3600,
      "isparam":true,
      "minimum":2000,
      "maximum":4500,
      "default":3600,
      "category":"Battery Characteristics",
      "i":28
   },
   "ucell60soc":{
      "unit":"mV",
      "id":23,
      "value":3700,
      "isparam":true,
      "minimum":2000,
      "maximum":4500,
      "default":3700,
      "category":"Battery Characteristics",
      "i":29
   },
   "ucell70soc":{
      "unit":"mV",
      "id":24,
      "value":3800,
      "isparam":true,
      "minimum":2000,
      "maximum":4500,
      "default":3800,
      "category":"Battery Characteristics",
      "i":30
   },
   "ucell80soc":{
      "unit":"mV",
      "id":25,
      "value":4000,
      "isparam":true,
      "minimum":2000,
      "maximum":4500,
      "default":4000,
      "category":"Battery Characteristics",
      "i":31
   },
   "ucell90soc":{
      "unit":"mV",
      "id":26,
      "value":4100,
      "isparam":true,
      "minimum":2000,
      "maximum":4500,
      "default":4100,
      "category":"Battery Characteristics",
      "i":32
   },
   "ucell100soc":{
      "unit":"mV",
      "id":27,
      "value":4200,
      "isparam":true,
      "minimum":2000,
      "maximum":4500,
      "default":4200,
      "category":"Battery Characteristics",
      "i":33
   },
   "sohpreset":{
      "unit":"%",
      "id":53,
      "value":100,
      "isparam":true,
      "minimum":10,
      "maximum":100,
      "default":100,
      "category":"Battery Characteristics",
      "i":34
   },
   "idcgain":{
      "unit":"dig/A",
      "id":6,
      "value":10,
      "isparam":true,
      "minimum":-1000,
      "maximum":1000,
      "default":10,
      "category":"Sensor setup",
      "i":35
   },
   "idcofs":{
      "unit":"dig",
      "id":7,
      "value":0,
      "isparam":true,
      "minimum":-4095,
      "maximum":4095,
      "default":0,
      "category":"Sensor setup",
      "i":36
   },
   "idcmode":{
      "unit":"0=Off, 1=AdcSingle, 2=AdcDifferential, 3=IsaCan",
      "id":8,
      "value":0,
      "isparam":true,
      "minimum":0,
      "maximum":3,
      "default":0,
      "category":"Sensor setup",
      "i":37
   },
   "tempsns":{
      "unit":"0=None, 1=Chan1, 2=Chan2, 3=Both",
      "id":52,
      "value":0,
      "isparam":true,
      "minimum":0,
      "maximum":3,
      "default":0,
      "category":"Sensor setup",
      "i":38
   },
   "tempres":{
      "unit":"Ohm",
      "id":50,
      "value":10000,
      "isparam":true,
      "minimum":10,
      "maximum":500000,
      "default":10000,
      "category":"Sensor setup",
      "i":39
   },
   "tempbeta":{
      "unit":"",
      "id":51,
      "value":3900,
      "isparam":true,
      "minimum":1,
      "maximum":100000,
      "default":3900,
      "category":"Sensor setup",
      "i":40
   },
   "pdobase":{
      "unit":"",
      "id":10,
      "value":500,
      "isparam":true,
      "minimum":0,
      "maximum":2047,
      "default":500,
      "category":"Communication",
      "i":41
   },
   "sdobase":{
      "unit":"",
      "id":11,
      "value":10,
      "isparam":true,
      "minimum":0,
      "maximum":63,
      "default":10,
      "category":"Communication",
      "i":42
   },
   "enable":{
      "unit":"0=Off, 1=On",
      "id":48,
      "value":1,
      "isparam":true,
      "minimum":0,
      "maximum":1,
      "default":1,
      "category":"Testing",
      "i":43
   },
   "testchan":{
      "unit":"",
      "id":49,
      "value":-1,
      "isparam":true,
      "minimum":-1,
      "maximum":15,
      "default":-1,
      "category":"Testing",
      "i":44
   },
   "testbalance":{
      "unit":"0=Off, 1=Additive, 2=Dissipative, 3=Both",
      "id":54,
      "value":0,
      "isparam":true,
      "minimum":0,
      "maximum":2,
      "default":0,
      "category":"Testing",
      "i":45
   },
   "reboot":{
      "unit":"0=Off, 1=On",
      "id":61,
      "value":0,
      "isparam":true,
      "minimum":0,
      "maximum":1,
      "default":0,
      "category":"Testing",
      "i":46
   },
   "version":{
      "unit":"4=0.29.31.B",
      "id":2001,
      "value":4,
      "isparam":false
   },
   "hwrev":{
      "unit":"0=Unknown, 1=v1.x, 2=v2.0, 3=v2.1, 4=v2.2, 5=v2.3, 6=v2.4",
      "id":2104,
      "value":3,
      "isparam":false
   },
   "opmode":{
      "unit":"0=Boot, 1=GetAddr, 2=SetAddr, 3=ReqInfo, 4=RecvInfo, 5=Init, 6=SelfTest, 7=Run, 8=Idle, 9=Error, 10=Reboot",
      "id":2000,
      "value":8,
      "isparam":false
   },
   "lasterr":{
      "unit":"0=NONE, 1=MUXSHORT, 2=BALANCER_FAIL, 3=CELL_POLARITY, 4=CELL_OVERVOLTAGE,",
      "id":2101,
      "value":0,
      "isparam":false
   },
   "errinfo":{
      "unit":"",
      "id":2102,
      "value":0,
      "isparam":false
   },
   "modaddr":{
      "unit":"",
      "id":2045,
      "value":0,
      "isparam":false
   },
   "modnum":{
      "unit":"",
      "id":2046,
      "value":0,
      "isparam":false
   },
   "totalcells":{
      "unit":"",
      "id":2074,
      "value":16,
      "isparam":false
   },
   "counter":{
      "unit":"",
      "id":2076,
      "value":13,
      "isparam":false
   },
   "uptime":{
      "unit":"s",
      "id":2103,
      "value":494,
      "isparam":false
   },
   "chargein":{
      "unit":"As",
      "id":2040,
      "value":0,
      "isparam":false
   },
   "chargeout":{
      "unit":"As",
      "id":2041,
      "value":0,
      "isparam":false
   },
   "soc":{
      "unit":"%",
      "id":2071,
      "value":0,
      "isparam":false
   },
   "soh":{
      "unit":"%",
      "id":2086,
      "value":100,
      "isparam":false
   },
   "chargelim":{
      "unit":"A",
      "id":2072,
      "value":50,
      "isparam":false
   },
   "dischargelim":{
      "unit":"A",
      "id":2073,
      "value":0,
      "isparam":false
   },
   "idc":{
      "unit":"A",
      "id":2042,
      "value":0,
      "isparam":false
   },
   "idcavg":{
      "unit":"A",
      "id":2043,
      "value":0,
      "isparam":false
   },
   "power":{
      "unit":"W",
      "id":2075,
      "value":0,
      "isparam":false
   },
   "tempmin":{
      "unit":"°C",
      "id":2044,
      "value":127,
      "isparam":false
   },
   "tempmax":{
      "unit":"°C",
      "id":2077,
      "value":-40,
      "isparam":false
   },
   "uavg":{
      "unit":"mV",
      "id":2002,
      "value":3357.21875,
      "isparam":false
   },
   "umin":{
      "unit":"mV",
      "id":2003,
      "value":0,
      "isparam":false
   },
   "umax":{
      "unit":"mV",
      "id":2004,
      "value":3847.0625,
      "isparam":false
   },
   "udelta":{
      "unit":"mV",
      "id":2005,
      "value":3847.0625,
      "isparam":false
   },
   "utotal":{
      "unit":"mV",
      "id":2039,
      "value":53715.78125,
      "isparam":false
   },
   "u0":{
      "unit":"mV",
      "id":2006,
      "value":3814.75,
      "isparam":false
   },
   "u1":{
      "unit":"mV",
      "id":2007,
      "value":3824.6875,
      "isparam":false
   },
   "u2":{
      "unit":"mV",
      "id":2008,
      "value":1.15625,
      "isparam":false
   },
   "u3":{
      "unit":"mV",
      "id":2009,
      "value":0,
      "isparam":false
   },
   "u4":{
      "unit":"mV",
      "id":2010,
      "value":3827.15625,
      "isparam":false
   },
   "u5":{
      "unit":"mV",
      "id":2011,
      "value":3825.96875,
      "isparam":false
   },
   "u6":{
      "unit":"mV",
      "id":2012,
      "value":3825.96875,
      "isparam":false
   },
   "u7":{
      "unit":"mV",
      "id":2013,
      "value":3826.5625,
      "isparam":false
   },
   "u8":{
      "unit":"mV",
      "id":2014,
      "value":3847.0625,
      "isparam":false
   },
   "u9":{
      "unit":"mV",
      "id":2015,
      "value":3847.0625,
      "isparam":false
   },
   "u10":{
      "unit":"mV",
      "id":2016,
      "value":3847.0625,
      "isparam":false
   },
   "u11":{
      "unit":"mV",
      "id":2017,
      "value":3847.0625,
      "isparam":false
   },
   "u12":{
      "unit":"mV",
      "id":2018,
      "value":3845.3125,
      "isparam":false
   },
   "u13":{
      "unit":"mV",
      "id":2019,
      "value":3847.0625,
      "isparam":false
   },
   "u14":{
      "unit":"mV",
      "id":2020,
      "value":3846.5,
      "isparam":false
   },
   "u15":{
      "unit":"mV",
      "id":2021,
      "value":3841.53125,
      "isparam":false
   },
   "uavg0":{
      "unit":"mV",
      "id":2047,
      "value":3357.21875,
      "isparam":false
   },
   "umin0":{
      "unit":"mV",
      "id":2048,
      "value":0,
      "isparam":false
   },
   "umax0":{
      "unit":"mV",
      "id":2049,
      "value":3847.0625,
      "isparam":false
   },
   "tempmin0":{
      "unit":"°C",
      "id":2078,
      "value":127,
      "isparam":false
   },
   "tempmax0":{
      "unit":"°C",
      "id":2079,
      "value":127,
      "isparam":false
   },
   "uavg1":{
      "unit":"mV",
      "id":2050,
      "value":0,
      "isparam":false
   },
   "umin1":{
      "unit":"mV",
      "id":2051,
      "value":0,
      "isparam":false
   },
   "umax1":{
      "unit":"mV",
      "id":2052,
      "value":0,
      "isparam":false
   },
   "tempmin1":{
      "unit":"°C",
      "id":2087,
      "value":0,
      "isparam":false
   },
   "tempmax1":{
      "unit":"°C",
      "id":2088,
      "value":0,
      "isparam":false
   },
   "uavg2":{
      "unit":"mV",
      "id":2053,
      "value":0,
      "isparam":false
   },
   "umin2":{
      "unit":"mV",
      "id":2054,
      "value":0,
      "isparam":false
   },
   "umax2":{
      "unit":"mV",
      "id":2055,
      "value":0,
      "isparam":false
   },
   "tempmin2":{
      "unit":"°C",
      "id":2089,
      "value":0,
      "isparam":false
   },
   "tempmax2":{
      "unit":"°C",
      "id":2090,
      "value":0,
      "isparam":false
   },
   "uavg3":{
      "unit":"mV",
      "id":2056,
      "value":0,
      "isparam":false
   },
   "umin3":{
      "unit":"mV",
      "id":2057,
      "value":0,
      "isparam":false
   },
   "umax3":{
      "unit":"mV",
      "id":2058,
      "value":0,
      "isparam":false
   },
   "tempmin3":{
      "unit":"°C",
      "id":2091,
      "value":0,
      "isparam":false
   },
   "tempmax3":{
      "unit":"°C",
      "id":2092,
      "value":0,
      "isparam":false
   },
   "uavg4":{
      "unit":"mV",
      "id":2059,
      "value":0,
      "isparam":false
   },
   "umin4":{
      "unit":"mV",
      "id":2060,
      "value":0,
      "isparam":false
   },
   "umax4":{
      "unit":"mV",
      "id":2061,
      "value":0,
      "isparam":false
   },
   "tempmin4":{
      "unit":"°C",
      "id":2093,
      "value":0,
      "isparam":false
   },
   "tempmax4":{
      "unit":"°C",
      "id":2094,
      "value":0,
      "isparam":false
   },
   "uavg5":{
      "unit":"mV",
      "id":2062,
      "value":0,
      "isparam":false
   },
   "umin5":{
      "unit":"mV",
      "id":2063,
      "value":0,
      "isparam":false
   },
   "umax5":{
      "unit":"mV",
      "id":2064,
      "value":0,
      "isparam":false
   },
   "tempmin5":{
      "unit":"°C",
      "id":2095,
      "value":0,
      "isparam":false
   },
   "tempmax5":{
      "unit":"°C",
      "id":2096,
      "value":0,
      "isparam":false
   },
   "uavg6":{
      "unit":"mV",
      "id":2065,
      "value":0,
      "isparam":false
   },
   "umin6":{
      "unit":"mV",
      "id":2066,
      "value":0,
      "isparam":false
   },
   "umax6":{
      "unit":"mV",
      "id":2067,
      "value":0,
      "isparam":false
   },
   "tempmin6":{
      "unit":"°C",
      "id":2097,
      "value":0,
      "isparam":false
   },
   "tempmax6":{
      "unit":"°C",
      "id":2098,
      "value":0,
      "isparam":false
   },
   "uavg7":{
      "unit":"mV",
      "id":2068,
      "value":0,
      "isparam":false
   },
   "umin7":{
      "unit":"mV",
      "id":2069,
      "value":0,
      "isparam":false
   },
   "umax7":{
      "unit":"mV",
      "id":2070,
      "value":0,
      "isparam":false
   },
   "tempmin7":{
      "unit":"°C",
      "id":2099,
      "value":0,
      "isparam":false
   },
   "tempmax7":{
      "unit":"°C",
      "id":2100,
      "value":0,
      "isparam":false
   },
   "u0cmd":{
      "unit":"0=None, 1=Discharge, 2=ChargePos, 3=ChargeNeg",
      "id":2022,
      "value":0,
      "isparam":false
   },
   "u1cmd":{
      "unit":"0=None, 1=Discharge, 2=ChargePos, 3=ChargeNeg",
      "id":2023,
      "value":0,
      "isparam":false
   },
   "u2cmd":{
      "unit":"0=None, 1=Discharge, 2=ChargePos, 3=ChargeNeg",
      "id":2024,
      "value":0,
      "isparam":false
   },
   "u3cmd":{
      "unit":"0=None, 1=Discharge, 2=ChargePos, 3=ChargeNeg",
      "id":2025,
      "value":0,
      "isparam":false
   },
   "u4cmd":{
      "unit":"0=None, 1=Discharge, 2=ChargePos, 3=ChargeNeg",
      "id":2026,
      "value":0,
      "isparam":false
   },
   "u5cmd":{
      "unit":"0=None, 1=Discharge, 2=ChargePos, 3=ChargeNeg",
      "id":2027,
      "value":0,
      "isparam":false
   },
   "u6cmd":{
      "unit":"0=None, 1=Discharge, 2=ChargePos, 3=ChargeNeg",
      "id":2028,
      "value":0,
      "isparam":false
   },
   "u7cmd":{
      "unit":"0=None, 1=Discharge, 2=ChargePos, 3=ChargeNeg",
      "id":2029,
      "value":0,
      "isparam":false
   },
   "u8cmd":{
      "unit":"0=None, 1=Discharge, 2=ChargePos, 3=ChargeNeg",
      "id":2030,
      "value":0,
      "isparam":false
   },
   "u9cmd":{
      "unit":"0=None, 1=Discharge, 2=ChargePos, 3=ChargeNeg",
      "id":2031,
      "value":0,
      "isparam":false
   },
   "u10cmd":{
      "unit":"0=None, 1=Discharge, 2=ChargePos, 3=ChargeNeg",
      "id":2032,
      "value":0,
      "isparam":false
   },
   "u11cmd":{
      "unit":"0=None, 1=Discharge, 2=ChargePos, 3=ChargeNeg",
      "id":2033,
      "value":0,
      "isparam":false
   },
   "u12cmd":{
      "unit":"0=None, 1=Discharge, 2=ChargePos, 3=ChargeNeg",
      "id":2034,
      "value":0,
      "isparam":false
   },
   "u13cmd":{
      "unit":"0=None, 1=Discharge, 2=ChargePos, 3=ChargeNeg",
      "id":2035,
      "value":0,
      "isparam":false
   },
   "u14cmd":{
      "unit":"0=None, 1=Discharge, 2=ChargePos, 3=ChargeNeg",
      "id":2036,
      "value":0,
      "isparam":false
   },
   "u15cmd":{
      "unit":"0=None, 1=Discharge, 2=ChargePos, 3=ChargeNeg",
      "id":2037,
      "value":0,
      "isparam":false
   },
   "cpuload":{
      "unit":"%",
      "id":2038,
      "value":29.375,
      "isparam":false
   },
   "serial":{
      "unit":"",
      "value":"43014017",
      "isparam":false
   }
}
Jacobsmess
Posts: 836
Joined: Thu Mar 02, 2023 1:30 pm
Location: Uk
Has thanked: 480 times
Been thanked: 137 times

Re: Fying ADC BMS incorrect voltage readings

Post by Jacobsmess »

Oh, thanks for editing my post to make the code legible (whomever it was). I didnt realise it could be entered as such!
User avatar
johu
Site Admin
Posts: 6968
Joined: Thu Nov 08, 2018 10:52 pm
Location: Kassel/Germany
Has thanked: 454 times
Been thanked: 1771 times
Contact:

Re: Fying ADC BMS incorrect voltage readings

Post by johu »

Never commented on this. Never seen channels fail that way. "Normally" some FET fails shorted and skews all other readings.
Are you absolutely sure u2 and u3 voltages make it to the board?
Jacobsmess wrote: Sun Sep 28, 2025 3:53 pm Oh, thanks for editing my post to make the code legible (whomever it was). I didnt realise it could be entered as such!
Used the next best online json formatter, then wrapped it in 'code' tags 8-)
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
Jacobsmess
Posts: 836
Joined: Thu Mar 02, 2023 1:30 pm
Location: Uk
Has thanked: 480 times
Been thanked: 137 times

Re: Fying ADC BMS incorrect voltage readings

Post by Jacobsmess »

johu wrote: Wed Oct 01, 2025 7:14 am Never commented on this. Never seen channels fail that way. "Normally" some FET fails shorted and skews all other readings.
Are you absolutely sure u2 and u3 voltages make it to the board?



Used the next best online json formatter, then wrapped it in 'code' tags 8-)
Thanks, I'll double check but it did appear so. I checked the voltages between one connector terminal and the first resistor.
Jacobsmess
Posts: 836
Joined: Thu Mar 02, 2023 1:30 pm
Location: Uk
Has thanked: 480 times
Been thanked: 137 times

Re: Fying ADC BMS incorrect voltage readings

Post by Jacobsmess »

So I psyched myself up to try and identify the issue again this evening, given the rain....
I jumped directly from the connector pin for U2 and U3 to the resistor for the relevant channel but it made no difference to the voltage readings on the webUI....
Any other suggestions on how to test this?
@Johu Would it be possible/practical to send a board to you for diagnosis? I am happy to pay if you think it could be possible.
User avatar
johu
Site Admin
Posts: 6968
Joined: Thu Nov 08, 2018 10:52 pm
Location: Kassel/Germany
Has thanked: 454 times
Been thanked: 1771 times
Contact:

Re: Fying ADC BMS incorrect voltage readings

Post by johu »

Yeah, send it over, can only learn
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
Jacobsmess
Posts: 836
Joined: Thu Mar 02, 2023 1:30 pm
Location: Uk
Has thanked: 480 times
Been thanked: 137 times

Re: Fying ADC BMS incorrect voltage readings

Post by Jacobsmess »

I did some probing with one of the BMS units hooked up to 16 cells and can verify voltage was getting to the FETs and noticed slightly different voltage readings across legs of the fets. Could this be a tell tale sign? Is it worth checking voltage at each Fet leg for signs of issues?
User avatar
johu
Site Admin
Posts: 6968
Joined: Thu Nov 08, 2018 10:52 pm
Location: Kassel/Germany
Has thanked: 454 times
Been thanked: 1771 times
Contact:

Re: Fying ADC BMS incorrect voltage readings

Post by johu »

Did I ever suggest to use the "testchan" parameter? It locks the mux to one channel. Then you can do more detailed measurements, e.g. gate-source voltage of the involved FETS
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
Jacobsmess
Posts: 836
Joined: Thu Mar 02, 2023 1:30 pm
Location: Uk
Has thanked: 480 times
Been thanked: 137 times

Re: Fying ADC BMS incorrect voltage readings

Post by Jacobsmess »

No, I'll look into it.
So set test channel to any channel I want to check and then manually check voltage on the relevant fets with a multimeter? Or is there something more sophisticated at play?
I did look but could not find any information on the forum or wiki documenting how specifically to use testchan (for electronics dummies like me).

Edit: its probably also worth mentioning I'm on the unmodified 2.1 hardware if that makes a difference.
Thanks
User avatar
johu
Site Admin
Posts: 6968
Joined: Thu Nov 08, 2018 10:52 pm
Location: Kassel/Germany
Has thanked: 454 times
Been thanked: 1771 times
Contact:

Re: Fying ADC BMS incorrect voltage readings

Post by johu »

Jacobsmess wrote: Sat Nov 15, 2025 9:34 am So set test channel to any channel I want to check and then manually check voltage on the relevant fets with a multimeter?
That
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
Jacobsmess
Posts: 836
Joined: Thu Mar 02, 2023 1:30 pm
Location: Uk
Has thanked: 480 times
Been thanked: 137 times

Re: Fying ADC BMS incorrect voltage readings

Post by Jacobsmess »

So something that might be considered progress...

I connected a working BMS (BMS1) up to 16 cells, set testchan to 1 and measured voltages between V0 and the bottom row of the fet line starting with Q5. Voltage patterns made sense.
I then connected a non-working BMS (BMS4), this board usually gives faulty U2 and U3 readings.
Before I had chance to measure the voltages I noticed it was heating up on the fets and resistors once testchan was activated (set to anything other than -1). It heated to over 150degC (the range of my thermal imaging camera) and caused Q5 to desolder itself.
Any idea on what could cause this?
I'm reluctant to connect another BMS board up and potentially cause more damage but appreciate it might be necessary.
Thanks
User avatar
johu
Site Admin
Posts: 6968
Joined: Thu Nov 08, 2018 10:52 pm
Location: Kassel/Germany
Has thanked: 454 times
Been thanked: 1771 times
Contact:

Re: Fying ADC BMS incorrect voltage readings

Post by johu »

Ok, that is a pretty obvious "some FET is always conducting" fault. Surprised this didn't show with the diode test.
Since you're in the UK sending stuff back and forth is a bit of a hassle (I have to drive to customs, pay import VAT). So could you go over it again yourself? With Q5 taking itself out of the circuit do things still get hot with testchan?
Jacobsmess wrote: Mon Nov 17, 2025 9:02 am Any idea on what could cause this?
I think another FET must be permanently conducting
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
Jacobsmess
Posts: 836
Joined: Thu Mar 02, 2023 1:30 pm
Location: Uk
Has thanked: 480 times
Been thanked: 137 times

Re: Fying ADC BMS incorrect voltage readings

Post by Jacobsmess »

Yes im more than happy to try and get to the bottom of the issue myself, unfortunately my knowledge in this area is pretty limited but I'm enjoying learning.

I need to check what is and what isn't working on BMS4 again following this morning events. I'll try again this evening.

I'll check temps on the board again and also go over everything to see what has and hasn't survived.
Jacobsmess
Posts: 836
Joined: Thu Mar 02, 2023 1:30 pm
Location: Uk
Has thanked: 480 times
Been thanked: 137 times

Re: Fying ADC BMS incorrect voltage readings

Post by Jacobsmess »

So I had some more time on this. Looking at BMS7 I get erroneous values for U10 and U11 (-1.15625mV and 1.15625mV respectively).

Firstly I took a BMS giving good results (BMS3) set testchan to 1 and took readings across every fet terminal from V0-V16.
I then swapped the board for the above BMS7 and repeated the measurements checking again BMS3. Somewhat unfortunately they resulted in the same values (give or take 0.01V which was likely due to my cack handed measuring rather than anything else).
I was hoping to find a smoking gun but no dice.

Any other suggestions on what to check?

Thanks
User avatar
johu
Site Admin
Posts: 6968
Joined: Thu Nov 08, 2018 10:52 pm
Location: Kassel/Germany
Has thanked: 454 times
Been thanked: 1771 times
Contact:

Re: Fying ADC BMS incorrect voltage readings

Post by johu »

I think you should set testchan to 10 and 11, respectively to test the voltages of the faulty channels. Like said, the mux is thereby locked to the channel you specify. -1 turns off channel testing, any larger value turn on the given channel.
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
Jacobsmess
Posts: 836
Joined: Thu Mar 02, 2023 1:30 pm
Location: Uk
Has thanked: 480 times
Been thanked: 137 times

Re: Fying ADC BMS incorrect voltage readings

Post by Jacobsmess »

So check to check my approach. If I use a known good BMS, set testchan to 10 and measure voltages between pin 9 (negative) and the fets on channel pin 10 (positive) then compare the same setup with BMS7 (with the faulty readings on U10 and U11) would this work? What should or shouldn't I expect to see for a faulty Fet?
Jacobsmess
Posts: 836
Joined: Thu Mar 02, 2023 1:30 pm
Location: Uk
Has thanked: 480 times
Been thanked: 137 times

Re: Fying ADC BMS incorrect voltage readings

Post by Jacobsmess »

Following this approach I found that using testchan 11 on a good BMS I get around 3.7V between connector pin V10 and then probing along V11 I get around 6.6V at Q77 onwards.

I guess this shows a failed fet at Q77 (rather than Q81) which is the next fet along and also gives 6.6V.
Post Reply