Incorrect readings from thermometer e-block

I’m just getting started with the Panda II Ultimate kit. After working through some basic tutorials, I stumbled upon this example.

The problem is the temperature readings. The temperature values output to the debug window are in the 37’ - 40’ F range… inside my house. This is obviously wrong as I’m sitting in my office wearing shorts and a t-shirt. The thermostat that actually runs my heating system says 63’F as does a small thermometer sitting across the room.

I get raw ambient readings from the thermometer eblock in the 3 - 4 range and, if I blow on the probe or hold it in my hands, the readings increase to 9 - 12.

I used the code as-in from the above tutorial, minus the logging to thingspeak. How do I troubleshoot this issue?

@ Scott7 - Welcome to the forum.


  1. Search the forum for similar issues. I believe the issue has come up and been solved several times already.

  2. Make sure your voltage is right on the eBlock. The analog pins can read up to 3.3V. The eBlocks are powered by 5V. I have a hunch this may be your issue as 3.3/5 (0.66) is roughly equal to 40/63 (0.63). The eBlock is a linear thermistor (google or wikipedia that term).

  3. This line of code is suspect:

thermometer.SetLinearScale(-22, 56);

That correlates to 0.0V = -22 and 3.3V = 56. This may be correct for the provided thermistor, but that needs to be confirmed. An easy way to check is check the temp of ice water and see what raw voltage it returns by using

thermometer.SetLinearScale(0, 3300);

These should get you started on solving the issue.

You have a power problem.
This sensor needs 5v to operate, probably you are running it on 3.3v.

Same issue:

Why do you write the thermometer e-block needs 5 volt power supply?
The description has been that a supply voltage of +1.8 V to +5 V.

I tested it out and with 5v it reads 22 degrees celcius (had it in my hand).
With 3.3v it reads 11 degrees celcius.

If an analog sensor with a voltage range of 0 to 5 volts connect to an analog pin of the USBizi then all voltages from 3.3 volts to 5 volts would been measured of 3.3 volts. You lose a part of of your measurement range.
The subsequent use of the SetLinearScale in the driver make the result foggy.

@ ransomhall, the issue was the jumper setting on the connect shield. After setting the jumper for 5V, the temperature readings were closer to what I was expecting.

Glad you figured it out. Have fun with you kit!