Page 1 of 1

Fying ADC BMS incorrect voltage readings

Posted: Mon Sep 22, 2025 9:25 pm
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

Re: Fying ADC BMS incorrect voltage readings

Posted: Tue Sep 23, 2025 1:46 pm
by johu
what readings do you get?
what is lasterr?
Best post 192.168.4.1/cmd?cmd=json

Re: Fying ADC BMS incorrect voltage readings

Posted: Tue Sep 23, 2025 8:13 pm
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.

Re: Fying ADC BMS incorrect voltage readings

Posted: Wed Sep 24, 2025 6:55 am
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

Re: Fying ADC BMS incorrect voltage readings

Posted: Wed Sep 24, 2025 12:28 pm
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

Re: Fying ADC BMS incorrect voltage readings

Posted: Wed Sep 24, 2025 12:29 pm
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
   }
}

Re: Fying ADC BMS incorrect voltage readings

Posted: Sun Sep 28, 2025 3:53 pm
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!

Re: Fying ADC BMS incorrect voltage readings

Posted: Wed Oct 01, 2025 7:14 am
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-)

Re: Fying ADC BMS incorrect voltage readings

Posted: Wed Oct 01, 2025 4:07 pm
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.

Re: Fying ADC BMS incorrect voltage readings

Posted: Fri Nov 14, 2025 10:20 pm
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.

Re: Fying ADC BMS incorrect voltage readings

Posted: Fri Nov 14, 2025 10:28 pm
by johu
Yeah, send it over, can only learn

Re: Fying ADC BMS incorrect voltage readings

Posted: Fri Nov 14, 2025 11:41 pm
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?

Re: Fying ADC BMS incorrect voltage readings

Posted: Sat Nov 15, 2025 9:24 am
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

Re: Fying ADC BMS incorrect voltage readings

Posted: Sat Nov 15, 2025 9:34 am
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

Re: Fying ADC BMS incorrect voltage readings

Posted: Sat Nov 15, 2025 8:58 pm
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

Re: Fying ADC BMS incorrect voltage readings

Posted: Mon Nov 17, 2025 9:02 am
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

Re: Fying ADC BMS incorrect voltage readings

Posted: Mon Nov 17, 2025 5:04 pm
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

Re: Fying ADC BMS incorrect voltage readings

Posted: Mon Nov 17, 2025 5:12 pm
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.

Re: Fying ADC BMS incorrect voltage readings

Posted: Mon Nov 17, 2025 9:54 pm
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

Re: Fying ADC BMS incorrect voltage readings

Posted: Tue Nov 18, 2025 10:53 am
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.

Re: Fying ADC BMS incorrect voltage readings

Posted: Tue Nov 18, 2025 5:57 pm
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?

Re: Fying ADC BMS incorrect voltage readings

Posted: Tue Nov 18, 2025 6:09 pm
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.