TEMPer USB thermometer on Linux

Some time ago I bought a cheap USB thermometer called TEMPer. I was disappointed to find that it didn’t work on Fedora. It would only work on Windows using a poor piece of proprietary software.

I eventually found the blog of Tollef Fog Heen, who had managed to get his TEMPer to work. Unfortunately his solution involved patching and compiling a kernel.

However since then, it seems his patch has been integrated into the stock Fedora kernel and it is now possible to read the temperature from it.

The TEMPer device appears to be a USB-serial adapter, with a serial I2C device at the end of it. It’s not straightforward to extract the temperature from it, but Tollef Fog Heen has written a simple C program to return the temperature.

His program polls the TEMPer every second and prints the temperature to the command line. It doesn’t stop until you kill the program. I made a couple of tweaks to the code so it prints the temperature once, formatted as a raw number with no extra text, and then quits. You can find my modified source here.

Disclaimer: I don’t know C. I haven’t changed any of the logic of the code, only the way it prints the output. If the code is buggy, it wasn’t me! 😉

Now I have an executable that returns the temperature from the TEMPer, I can think about building some application that could use this. How about a Nagios plugin?


  1. Brendon
    November 11, 2011

    Hi Im a total newb with coding but I am wondering if it would be possible to create an app for this for android so I could plug one of these thermometers into my phone and read the temperature. I would be wanting a 5 sensor cable. If anybody has information regarding this please leave a reply. Thank you.

    • Jonathan
      December 1, 2011

      Hmm, whether that’s possible all depends on whether Android lets you access arbitrary USB devices. Probably not, without rooting!

Leave a Reply