Module v4.2 swapping R19 and R20

I would also like to confirm, even if I swap R19 and R20 I still need to use attiny841_V420_SWAPR19R20 code correct ?

You ONLY use this version of the code if you HAVE SWAPPED R19 and R20, for unaltered V4.20 boards, use the V420 version.

@rolfbartels if you are not getting any dead shorts, I would flash the code and ensure the web interface shows the correct temperature (or near to it). Put your finger on top of the thermistor and the temperature should go up.

Thanks, Stuart, so I gathered I had to use that code as I was getting neg temp values with std 4.20.

Appreciate the response

You will, by swapping those two parts the module changes from reading against negative (ground) to reading against + battery voltage, hence the swap in sign.

@stuart Hi Stuart, I have found another issue, so I have swapped R19 and R20 and programmed them with SWAPR19R20 code.
All seems to work perfectly except I am getting high module temps 45 deg where its actually like 30 deg. So when in bypass the module barely burn off power as they reach 65deg way sooner. If I set the Internal temperature BCoef to 9999 (max) thern my temp is only 3 deg higher than actual and while bypassing the temps get to 65deg and stop and start again at 55 deg, and I have confirmed this with my thermal camera

In the attached picture I have a v4.21 module in 0/0 and then v4.2 modules in 0/1-0/5.
Am I suppose to calibrate the temps somewhere ?

Why do you have minus 13 on module 0?

What thermistors are you using the standard ones?

The -13 I fixed it was a bad solder by JLCPCB on R21
The ones where I am getting 45deg instead of like 25-30deg are the r19r20 I swapped, and all my modules are reporting the same higher temps,
I am using the thermistor as per the original BOM which is this one taken from my JLCPCB order history
https://lcsc.com/product-detail/NTC-Thermistors_Murata-Electronics-NCP18WB473J03RB_C86142.html

Just for good measure, I took a thermistor from a v4.21 board which shows the correct temp and installed it onto a v4.2 board and get the same higher temps, seems to be a problem with the code on the v4.2 modules or the R19R20 has caused other issue, which I really hope not as I have 50 of these modules

Hey @Stuart, have you had a chance to look into or test this ?

Hi @rolfbartels

The setting on the modules page for “Internal temperature BCoef” should remain at 4150 - this is the temperature curve of the thermistor.

On my test board, if I measure RESISTANCE with the module DISCONNECTED…

  • between pin 5 on the sensor (ground) and pin 3 (SCK) on the ISP header I get approx. 68kohms
  • between pin 2 on the sensor (reference) and pin 3 (SCK) on the ISP header I get 39kohm (its about 20 degrees in the room).

If you take the second resistance measurement and also put your finger on top of the thermistor (now labelled R20) the reistance should DROP.

Do you get similar readings? The second resistance will vary depending on the room temperature (at 25 degrees C is should be 47k)

I’m not expecting the values on screen to be perfect after this change, but they should be better than you are seeing. The actual value of the temperature isn’t important, its ensuring that we can measure a high temperature and then limit the balance to keep it at a setpoint.

Hi @stuart

Here are tests I have done now I have tested 2 cell modules v4.2 ( produced by JLCPCB where I swapped R19R20 and added ATTINY ) and v4.21 produced by JLCPCB and I only added the ATTINY

  • between ping 5 on sensor (GND) and pin 3 (SCK) on the IPS header I get 80kohms on both
  • between pin 2 on the sensor (reference) and pin 3 (SCK) on the ISP header I get 35komhs on both it’s about 28deg. 47K @ 25deg and resistance dropping on increased heat so looks correct
  • I have removed the thermistors and tested and I get the same 35kohms.
  • I swapped R19 and R20 around back into the incorrect locations and flashed with v4.21 and I now get the correct temps but the thermistor is too far to pick up heat from the resistor bank,
  • I swapped R19 and R20 into their correct locations and the temperatures seem correct but when the module get warn the temp drops rather than increases still running v421, can we try code were we change to output to increase temp reading rather than reduce ?
  • I re-flash with v420 R19R20 and the temp now reads 48deg, 20deg more than it should. can we not add an offeset ? and subtract 20deg ? I am happy to test these code basses, I have a termal camera and so can ensure that we are getting the desired result.

Thanks again Stuart for your assistance.

This is exactly what the R19R20 version of the code does!

If you take a look in packet_processor.cpp file in visual studio code, and then find the code below.

Change the “1225” to a lower number and reflash to see the results. I’m not expecting you to get perfect temperature readings but they should be within a couple of degrees C.

#if (defined(DIYBMSMODULEVERSION) && (DIYBMSMODULEVERSION == 420 && defined(SWAPR19R20)))
    //R19 and R20 swapped on V4.2 board, invert the thermistor reading
    onboard_temperature = 1225 - value;

@stuart awesome thanks, like you said don’t need perfect temperature but we do need it to be in a region that’s workable for the bypass to still work shot again I’ll feedback once I have tested

@stuart
So I set that value to 1040 and the room temp matches up to the actual and then while in bypass mode it track a little higher, the v4.21 module on the thermal peaks 64-65 degrees, and the v4.2 R19R20 swap peaks 67deg, in my mind this is close enough to a working solution,

Thank you again for your valued support, we really appreciate it.

Hi @rolfbartels, looking at the code you can see that the prototype V4.3 used a value of 1000 (that prototype also had the swapped R19 problem:-( )

Glad its working.

Has anyone else here who built the R19R20 swap cell modules have them running ? I have 50 of these modules and it seems for some reason once you swap the R19 and R20 around and program the ATTINY with the relevant R19R20 code the temperature are out by 20deg. so instead of reading 25degree they read 45deg which means that hardly bypass at all as they reach 60deg to soon, I am just trying to see if it’s only me and a problem with all 50 cell modules or are other people seeing the same thing ? Stuart has been trying to help me

I’m seeing the exact same thing on 30 modules. Ordered v4.2 and swapped R19R20. After the swap all internal temps show about 20C higher

Is the code the recent one from GitHub? There was a change made to that a few weeks ago, to change the offset. Probably needs swapping back

Indeed, I was using a build from January. Flashing with the current build solves the issue.