Found very good article writen by here at Habr: https://habr.com/ru/post/369947/
Will duplicate the info here as backup and later add some addition info.
I-tool pinout:
Control unit I/o schematics:
UART specs:
- 250000 bps
- start bits: 1
- data bits: 8
- parity: no
- stop bits: 1
request packet:
data type | example | description | |
---|---|---|---|
0 | u16 | 0x2F02 | preambula(constant) |
2 | u8 | 0x05 | message ID |
3 | u16 | 0x0010 | Code of operation |
5 | u8 | 0x05 | data length |
6 | u16 | 0x498E | crc |
response packet:
data type | example | description | |
---|---|---|---|
0 | u16 | 0x2F02 | preambula(constant) |
2 | u8 | 0x0A | message ID |
3 | u16 | 0x0010 | Code of operation (from request packet) |
5 | u8 | 0x05 | data length |
6 | array | 0x5E 0x0A 0x1C 0x03 0x00 | data |
n-2 | u16 | 0x8F42 | crc |
Messages
Tool detection
Control unint sent this type of message each second (1 Hz) aftre powering up till receiving tool response.
Request:
- message ID: 0x05
- Code of operation: 0x0001
- Data Length: 2
Response:
- message ID: 0x07
- Data:
- 0x2802: i-Tool
Example:
- Request(hex):
02 2F ' 05 ' 01 00 ' 02 ' 3A 4D
- Response(hex):
02 2F ' 07 ' 01 00 ' 02 ' 02 28 ' C1 A4
Tool version detection
One request after tool detection.
Request:
- message ID: 0x05
- Code of operation: 0x0040
- Data Length: 2
Response:
- message ID: 0x07
- Data:
- [0]: (u8) Minor
- [1]: (u8) Major
Example:
- Request(hex):
02 2F ' 05 ' 40 00 ' 02 ' A7 67
- Response(hex):
02 2F ' 07 ' 40 00 ' 02 ' 00 01 ' D1 CC
- Minor: 0
- Major: 1
Tool status
50Hz sample rate.
Request:
- message ID: 0x05
- Code of operation: 0x0010
- Data Length: 5
Response:
- message ID: 0x0A
- Data :
- [0]: (u16) Temperature of the hot thermocouple junction(°C * 10)
- [2]: (u8) Temperature of the cold thermocouple junction(°C)
- [3]: (u16) flags (see further)
Flags:
15…2 | 1 | 0 |
---|---|---|
RESERVED | IDLE | OK |
RESERVED
IDLE
: 1 — no tool movementOK
: 1 — no errors
Example:
- Request(hex):
02 2F ' 05 ' 10 00 ' 05 ' 8E 49
- Response(hex):
02 2F ' 0A ' 10 00 ' 05 ' 52 0A ' 1C ' 03 00 ' 69 04
- Temperature of the hot thermocouple junction: 0x0A52 = 264.2 °C
- Temperature of the cold thermocouple junction: 0x1C = 28°C
- Flags: 0x0003 = IDLE | OK
CRC detection
CRC16 used – CRC-CCITT, XModem.
Example:
CRC-CCITT-XModem(0x02 0x2F 0x05 0x10 0x00 0x05) = 0x498E