Introduction



There have been cases where a user chooses thermistors with values 1K or lower, while our pull-up resistor is considered to have value of 10K - hardcoded in the firmware. This can be an obstacle because the voltage divider in the ADC input will give very low values, not utilizing the full range of the ADC. This makes the input more susceptible to noise. 






Workaround



Until a permanent fix is implemented via Roborun+ trees and newer firmware version, there is an alternative solution. It is to use a lower value pull-up R, and change also the R25 setting so that the readings remain correct. 


We will use as an example, a thermistor with R25 = 603Ω and a desired pull-up R=600Ω. The process to do that is as follows : 



First, we write the voltage divider equation : 


 


where T stands for Temperature. Now using that formula for 25 degrees Celsius, we get :



Now we want to rewrite (1) and solve for Rt in relation to the voltage : 




Now comes the tricky part. Using the calculated-actual V25 = 2.506 V, we want to see what the firmware would expect to measure at 25 degrees, in order to define the R25 : 




Therefore, even though the real R25 = 603Ω , we have to set R25 = 10048Ω in Roborun to obtain correct values. The β25 constant does not change, because the rate of change of the temperature and resistance will not differ.




Note 

In the upcoming v3.2 firmware release, there will be a command ^TRPU to change the pull-up R value.