APPA 55II

From sigrok
Jump to navigation Jump to search
RS 55II

The APPA 55II is a logging thermometer with two thermocouple inputs and an optical RS-232 output. It supports K,J thermocouple types.

The device sends temperature measurements at approximately 3Hz to the host, but it acquire new mesure at only approximately 1Hz.

A clone is also sold under the name RS 55II (aka RS 615-8212).

Hardware

Thermometer:

USB cable:

RS-232 cable:

Photos

Those pictures are from the RS 55II clone.

Protocol

Data is sent on the serial port at 9600 baud with 8 data bits, no parity, 1 stop bit. The thermometer can send live samples as well as memory logged records.

Generic Packet Format

All the data sent by the thermometer is packetized following this generic format.

Byte Description
0-1 Packet synchronization pattern : 0x55 0x55
2 Packet type
3 Content size
4-(size+3) Packet content
size+4 Packet checksum (simple sum of bytes 0 to size+3)

Packet type 0x00 content: live data

This type of packet contains live values which are displayed on the screen, especially the primary and secondary temperature displays and the time display, as well as the related flags. It also contains the live samples from the two temperature probes, whether they are displayed or not.

Byte Bit Description
0 Probe type: 1 for K type, 2 for J type
1 Selected display unit: 1 for °C, 2 for °F, 3 for °K
2-3 Temperature the primary display shows (16 bits signed little endian)
4 0 Primary display temperature factor: 0 when temperature is in °, 1 when temperature is in tenth of °
1 Unknown (always 0)
2-3 Primary display unit: 1 for °C, 2 for °F, 3 for °K
4 Primary display shows T1-T2
5 Primary display shows ---- (no probe connected, reported temperature is 0x7FFF)
6 Primary display shows ---- (during boot/initialization)
7 Primary display does not show a temperature (in setup menu for example)
5 0-1 Source for the primary display: 1 for T1, 2 for T2, 3 for T1-T2
2-3 Unknown (always 0)
4-7 Special primary display modes: 0x10 for Setup, 0x20 for Hold, 0x50 for log recall
6-7 Displayed time (16 bits little endian, representing 100*hours + minutes)
8 0-6 Unknown (always 0)
7 No time is currently displayed (the displayed time value is meaningless)
9 0-3 Unknown (always 0)
4-7 Source for the displayed time: 0x10 for Setup menu, 0x30 for Logging time, 0x60 for log Recall time, 0x80 for MAX/MIN/AVG time
10-11 Temperature the secondary display shows (16 bits signed little endian)
12 0 Secondary display temperature factor: 0 when temperature is in °, 1 when temperature is in tenth of °
1 Unknown (always 0)
2-3 Secondary display unit: 1 for °C, 2 for °F, 3 for °K
4 Secondary display shows T1-T2
5 Secondary display shows ---- (no probe connected, reported temperature is 0x7FFF)
6 Secondary display shows ---- (during boot/initialization)
7 Secondary display does not show a temperature (in setup menu for example)
13 0-1 Source for the secondary display: 1 for T1, 2 for T2
2-3 Calculated value on the secondary display: 1 for MAX, 2 for MIN, 3 for AVG
4-7 Special secondary display modes: 0x10 for Setup, 0x20 for Hold, 0x40 for Logging index, 0x70 for log Recall index
14-15 Temperature from T1 even if it is not on the display (16 bits signed little endian)
16 0 T1 temperature factor: 0 when temperature is in °, 1 when temperature is in tenth of ° (seems to be fixed to tenth of °)
1 Unknown (always 0)
2-3 T1 unit: 1 for °C, 2 for °F, 3 for °K (seems to be fixed to °C)
4 Unknown (always 0)
5 No probe connected on T1 (reported temperature is 0x7FFF)
6 Invalid temperature for T1 (during boot/initialization)
7 Unknown (always 0)
17-18 Temperature from T2 even if it is not on the display (16 bits signed little endian)
19 0 T2 temperature factor: 0 when temperature is in °, 1 when temperature is in tenth of ° (seems to be fixed to tenth of °)
1 Unknown (always 0)
2-3 T2 unit: 1 for °C, 2 for °F, 3 for °K (seems to be fixed to °C)
4 Unknown (always 0)
5 No probe connected on T2 (reported temperature is 0x7FFF)
6 Invalid temperature for T2 (during boot/initialization)
7 Unknown (always 0)

Packet type 0x18 content: Logged data start

This type of packet indicate the start of logged data transfer. Live data transmission is interrupted until a logged data end packet is transmitted.

Byte Description
0 Unknown (always 0)

Packet type 0x11 content: Log metadata

This type of packet is transmitted right after a logged data start packet, to indicate the number of records and data size that will follow.

Byte Description
0-1 Number of records that will be transmitted (16 bits little endian)
2-3 Unknown (always 0)
4-5 Unknown number, related to the size of the whole logged data transmission (16 bits little endian)

It always seems to match the following equation: (((20*nb_records)/32)+4)*32

6-7 Unknown (generally 0, sometimes 1)

Packet type 0x14 content: Logged data

A bunch of those packets are transmitted right after a log metadata packet. Each of them contains a limited range (always 32 bytes ?) dump of the log memory of the device. The content of all those consecutives logged data packets should be concatenated to reconstitute the whole content of the device log memory.

The log memory is composed of a succession records, of 20 bytes each. Here is the format of each record:

Byte Description
0 Unknown (always 0)
1 Unknown (generaly 0, but different for the first record)
2 Hour at wich this log entry was recorded
3 Minute at wich this log entry was recorded
4 Second at wich this log entry was recorded
5-6 Unknown (always 0)
7 Probe type: 0 for K type, 1 for J type
8-10 Unknown (always 0)
11 Maybe the temperature factor: 0 when temperature is in °, 1 when temperature is in tenth of ° (seems to be fixed to tenth of °)
12-13 Recorded temperature from T1 in tenth of °C, or 0x7FFF when no probe was connected (16 bits signed little endian)
14-15 Recorded temperature from T2 in tenth of °C, or 0x7FFF when no probe was connected (16 bits signed little endian)
16 Unknown (always 0)
17 Unknown (systematically cycles between 0x0A, 0x1E, 0x12, 0x26, 0x1A, 0x0E, 0x22 and 0x16)
18-19 Unknown number, related to the position of this record in the log memory (16 bits little endian)

It always seems to match the following equation: (((20*record_index)/32)+4)*32

Packet type 0x19 content: Logged data end

This type of packet indicates the end of logged data transfer. Live data transmission starts again right after this packet. There is no content in this packet type (content size is 0).