RDing TEMPer
Revision as of 00:25, 26 June 2012 by Uwe Hermann (talk | contribs)
The RDing TEMPer is a USB-based temperature logger.
See RDing TEMPer/Info for more details (such as lsusb -vvv output) about the device.
Hardware
- Main chip: Tenx TMU3101MS (datasheet)
- The markings were removed, but we're relatively sure it's this chip, due to lsusb and pin/feature matching (see below).
- Temperature sensor: Fairchild FM75 (datasheet), I2C slave address 0x4f
- I2C EEPROM: Unknown, yet (markings were removed), I2C slave address 0x50
- Oscillator: 6MHz
Main chip pinout:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SCL | SDA | 5V/high | 5V/high | 5V/high | 5V/high | GND | 5V/high | 3.3V | Oscillator | Oscillator | 5V/high | USB D- | USB D+ | LED (5V) | 5V | 3.3V | 3.3V |
I2C EEPROM pinout:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|
GND | GND | GND | GND | SDA | SCL | GND | 3.3V |
See these example sigrok captures for the I2C, USB, and LED traffic going on while the device is queried from the PC (see also screenshots on the right-hand side).
Example usage:
$ sigrok-cli -i rding_temper_i2c_usb_led_sensor_5s.sr -a i2c:sda=0:scl=1 i2c: "START" i2c: "ADDRESS READ" "0x4f" i2c: "ACK" i2c: "DATA READ" "0x1d" i2c: "ACK" i2c: "DATA READ" "0x80" i2c: "ACK" i2c: "STOP"
$ sigrok-cli -i rding_temper_i2c_usb_led_sensor_5s.sr -a usb:dm=3:dp=4:signalling=low-speed usb: "SYNC INVALID!" "001001001100100" usb: "SYNC INVALID!" "000000000000110000000111111100100000000010001" usb: "SYNC INVALID!" "0000000000011100000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111001000101111" usb: "SYNC INVALID!" "000000000000001001000010011" usb: "OUT DEV 47 EP 0" "00000001100001111111010000001001" usb: "DATA1 00 00 00 00 00 00 00 00 " "000000011101001000000000000000000000000000000000000000000000000000000000000000001111110100101111" usb: "SYNC INVALID!" "00000000101001011" usb: "OUT DEV 47 EP 0" "00000001100001111111010000001001" usb: "DATA0 00 00 00 00 00 00 00 00 " "000000011100001100000000000000000000000000000000000000000000000000000000000000001111110100101111" usb: "SYNC INVALID!" "00000000101001011" usb: "IN DEV 47 EP 0" "00000001100101101111010000001001" usb: "DATA1 " "00000001110100100000000000000000" usb: "ACK " "0000000101001011"
Photos
Protocol
HID-based.
Resources
- Relavak Labs: TEMPer Temperature Sensor Linux Driver (libusb software)
- LinuxJournal: Hack and / - Temper Temper (article about Device::USB::PCSensor::HidTEMPer perl module)
- Polarnight blog: TEMPer USB Temperature Sensor – Inside! (a teardown of an older TEMPer version)
- bil: Software to support the TEMPer USB thermistor (blog post)
- Jonathan Gazeley: Nagios plugin for TEMPer USB thermometer (also: TEMPer2.c, code for the USB-to-serial version)
- Tollef Fog Heen's blog: Kernel patches and the TEMPer USB thermometer (also: TEMPer.c)
- No Feature Left behind: Taking advantage of your TEMPer 1.0 USB device (C#, .NET)
- Device::USB::PCSensor::HidTEMPer (Perl)
- Eclectic Security: Dirt cheap USB Temperature Sensor with python SMS alerting system (also: Pytemp2sms)
- CircuitDB: Cheap temperature logging
- RJL: Using Cacti to measure temperatures
- SourceForge: UTAC (C#, .NET)
- Github: TEMPered, temperhum, HID-TEMPerHUM, rbtemper, TEMPer1X, temper1, temper, temper, temper-hum-hid