ERSA i-tool protocol and interface schematics

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
  • IDLE1 — no tool movement
  • OK1 — 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