Some days ago I was looking for a temperature monitoring solution for some rooms and 19″-racks at the university. The Arexx TL-500 looked promising and I bought it. Unfortunately there are only Windows drivers available. But some people already analyzed the communication protocol and hacked a simple version of a linux driver:

http://www.algorithm-forge.com/techblog/2010/01/linux-usb-driver-for-the-arexx-tl-500-part-ii/

There’s even a small logger hardware (ARM-based) using this device:

http://rndhax.blogspot.com/2010/03/friendlyarm-mini2440-arexx-tl-500.html

As a python fan I couldn’t resist porting this to python to get a small and flexible script. It can be easily extended to save the data, create charts (maybe using matplotlib) or present a web interface.

By looking at the raw data I noticed that bytes 6 and 7 (maybe more?) contain a time value. Maybe it counts the seconds since the initialization of the device?

The first version of my script is mainly a port of the C program. The script uses pyusb 1.0, a python wrapper for libusb 1.0. You may have to install it manually, most linux distributions come with older versions.

http://download.j-raedler.de/Python/pyArexx/tl500_v0.2.zip

I plan to extend this to a python package using OO, cleaner interfaces, better error handling and more.