Difference between revisions of "RDing TEMPer"

From sigrok
Jump to navigation Jump to search
 
(22 intermediate revisions by 2 users not shown)
Line 7: Line 7:
== Hardware ==
== Hardware ==


* Main chip: Unknown, yet (markings were removed)
[[File:Rding temper sigrok 1.png|thumb|right|I2C, USB, LED]]
* Temperature sensor: [http://www.fairchildsemi.com/pf/FM/FM75.html Fairchild FM75] ([http://www.fairchildsemi.com/ds/FM/FM75.pdf datasheet])
[[File:Rding temper sigrok 2.png|thumb|right|I2C/USB closeup]]
* Some SO-8 chip: Unknown, yet (markings were removed)


Main chip pinout:
* '''Main chip''': [http://www.dz863.com/datasheet-827607263-TMU3101MS_Usb-Controller/ Tenx TMU3101MS] ([http://www.dz863.com/downloadpdf-cflolocfmpbs-TMU3101MS.pdf 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''': [http://www.fairchildsemi.com/pf/FM/FM75.html Fairchild FM75] ([http://www.fairchildsemi.com/ds/FM/FM75.pdf datasheet]), I2C slave address '''0x4f'''
* '''I2C EEPROM''': Unknown, yet (markings were removed), I2C slave address '''0x50'''
* '''Oscillator''': 6MHz


{| border="0" style="font-size: smaller" class="sigroktable"
'''Chip pinouts:'''
|-
!1
!2
!3
!4
!5
!6
!7
!8
!9
!10
!11
!12
!13
!14
!15
!16
!17
!18
!19
!20


|-
<table border="0">
|
<tr>
|
<th>Main chip pinout</th>
|
<th>I2C EEPROM pinout</th>
|
</tr>
|
|
| GND
|
|
| Oscillator
| Oscillator
|
|
|
|
|
|
|
|
|


|}
<tr style="vertical-align: top;">
  <td>
    {{chip_20pin|1=SCL|2=SDA|3=5V|4=5V|5=5V|6=5V|7=GND|8=5V|9=3.3V|10=Oscillator|11=Oscillator|12=5V|13=USB D-|14=USB D+|15=LED(5V)|16=5V|17=3.3V|20=3.3V}}
  </td>
  <td>
    {{chip_8pin|1=GND|2=GND|3=GND|4=GND|5=SDA|6=SCL|7=GND|8=3.3V}}
  </td>
</tr>
</table>


Unknown SO-8 chip pinout:
See [http://sigrok.org/gitweb/?p=sigrok-dumps.git;a=tree;f=i2c/rding_temper;hb=HEAD 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).


{| border="0" style="font-size: smaller" class="sigroktable"
'''Example usage:'''
|-
!1
!2
!3
!4
!5
!6
!7
!8


|-
<small>
| GND
$ '''sigrok-cli -i rding_temper_i2c_usb_led_sensor_5s.sr -P i2c:sda=0:scl=1'''
| GND
i2c: "START"
| GND
i2c: "ADDRESS READ" "0x4f"
| GND
i2c: "ACK"
| 3.3V
i2c: "DATA READ" "0x1d"
| 3.3V
i2c: "ACK"
| GND
i2c: "DATA READ" "0x80"
| 3.3V
i2c: "ACK"
i2c: "STOP"


|}
$ '''sigrok-cli -i rding_temper_i2c_usb_led_sensor_5s.sr -P 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"
</small>


== Photos ==
== Photos ==
Line 94: Line 74:
File:Rding temper pcb front.jpg|<small>PCB, front</small>
File:Rding temper pcb front.jpg|<small>PCB, front</small>
File:Rding temper pcb back.jpg|<small>PCB, back</small>
File:Rding temper pcb back.jpg|<small>PCB, back</small>
File:Rding temper sensor.jpg|<small>Sensor</small>
File:Rding temper sensor.jpg|<small>Sensor, EEPROM</small>
File:Rding temper sidepads.jpg|<small>Random pads on the side</small>
File:Rding temper sidepads.jpg|<small>Random pads on the side</small>
File:Rding temper main chip microscope.jpg|<small>Main chip, microscope</small>
File:Rding temper main chip microscope.jpg|<small>Main chip, microscope</small>
Line 106: Line 86:
== Resources ==
== Resources ==


* Protocol / device / software info: [https://relavak.wordpress.com/2009/10/17/temper-temperature-sensor-linux-driver/ 1], [http://search.cpan.org/~msulland/Device-USB-PCSensor-HidTEMPer-0.0201/lib/Device/USB/PCSensor/HidTEMPer/TEMPer/Internal.pm 2], [https://github.com/edorfaus/TEMPered/wiki/1130%3A660C 3], [http://www.circuitdb.com/articles/20 4], [http://www.linuxjournal.com/article/10809 5], [http://www.rjl.com.au/marketplace/Articles_show.asp?a=47 6], [https://github.com/search?langOverride=&q=temper&repo=&start_value=1&type=Repositories 7]
* [https://relavak.wordpress.com/2009/10/17/temper-temperature-sensor-linux-driver/ Relavak Labs: TEMPer Temperature Sensor Linux Driver] (libusb software)
* [http://www.linuxjournal.com/article/10809?page=0,0 LinuxJournal: Hack and / - Temper Temper] (article about Device::USB::PCSensor::HidTEMPer perl module)
* [http://www.polarnight.co.uk/blog/temper-usb-temperature-sensor-inside/ Polarnight blog: TEMPer USB Temperature Sensor – Inside!] (a teardown of an older TEMPer version)
* [https://wwwx.cs.unc.edu/~hays/archives/2010/03/entry_25.php bil: Software to support the TEMPer USB thermistor] (blog post)
* [http://blog.jonathangazeley.com/2009/10/nagios-plugin-for-temper-usb-thermometer/ Jonathan Gazeley: Nagios plugin for TEMPer USB thermometer] (also: [http://www.jonathangazeley.com/wp-content/uploads/2009/10/TEMPer2.c TEMPer2.c], code for the USB-to-serial version)
* [http://err.no/personal/blog/tech/2008-07-22-10-17_kernel_patches_TEMPer_thermometer.html Tollef Fog Heen's blog: Kernel patches and the TEMPer USB thermometer] (also: [http://err.no/src/TEMPer.c TEMPer.c])
* [http://www.no-feature.com/2008/01/taking-advantage-of-your-temper-device.html No Feature Left behind: Taking advantage of your TEMPer 1.0 USB device] (C#, .NET)
* [http://search.cpan.org/dist/Device-USB-PCSensor-HidTEMPer/ Device::USB::PCSensor::HidTEMPer] (Perl)
* [http://bailey.st/blog/2012/04/12/dirt-cheap-usb-temperature-sensor-with-python-sms-alerting-system/ Eclectic Security: Dirt cheap USB Temperature Sensor with python SMS alerting system] (also: [http://bailey.st/code/bitsofpy/Pytemp2sms/ Pytemp2sms])
* [http://www.circuitdb.com/articles/20 CircuitDB: Cheap temperature logging]
* [http://www.rjl.com.au/marketplace/Articles_show.asp?a=47 RJL: Using Cacti to measure temperatures]
* [https://sourceforge.net/projects/utac/ SourceForge: UTAC] (C#, .NET)
* Github: [https://github.com/edorfaus/TEMPered TEMPered], [https://github.com/lp0/temperhum temperhum], [https://github.com/jeixav/HID-TEMPerHUM HID-TEMPerHUM], [https://github.com/elpeo/rbtemper rbtemper], [https://github.com/ssllab/TEMPer1X TEMPer1X], [https://github.com/ssllab/temper1 temper1], [https://github.com/freemed/temper temper], [https://github.com/mj/temper temper], [https://github.com/olegstepura/temper-hum-hid temper-hum-hid]
 
[[Category:Device]]
[[Category:Thermometer]]
[[Category:Planned]]

Latest revision as of 18:22, 30 April 2013

RDing TEMPer

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

I2C, USB, LED
I2C/USB closeup
  • 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

Chip pinouts:

Main chip pinout I2C EEPROM pinout
SCL 1-   O -20 3.3V
SDA 2- -19
5V 3- -18
5V 4- -17 3.3V
5V 5- -16 5V
5V 6- -15 LED(5V)
GND 7- -14 USB D+
5V 8- -13 USB D-
3.3V 9- -12 5V
Oscillator 10- -11 Oscillator
GND 1-   O -8 3.3V
GND 2- -7 GND
GND 3- -6 SCL
GND 4- -5 SDA

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 -P 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 -P 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