Skip to main content
FW version: Stable

Status Messages

This document describes the status messages format of the ESCx controller.

info
  • All listed datagram types are multicast
  • All listed payloads use big-endian format
warning

Payload byte positions differ from transfer layer byte positions (CAN, UART, USB, Bluetooth...) Before implementation, carefully review message creation guides for:

Relative Units

To optimize communication bandwidth, some data uses relative units and ranges instead of floating-point values. Ranges represent real units (Volts, Amps) and are transmitted in the Range and Reference message. Current range applies to all current values, and voltage range applies to all voltage values.

Converting relative units to absolute values:

VMEAS = (relative value / 32767) � VRANGE

Use the specified range when provided in the message description.

note

Range Examples: Voltage and current ranges remain constant for each specification. With a single controller type, ranges can be hardcoded.

Example:

  • esc3-sc1_24dxa0840
    • Urange = 80
    • Irange = 400
Controller Voltage RangeUrange
60V60
80V80
100V100
Controller Current RangeIrange
100A100
400A400
600A600

Status Message - Range and Reference

info

SID = 27 | multicast message

Payload byteDatatypeDescription
0-1uint16Urange - voltage range
2-3uint16Irange - current range
4-5uint16/driver/motor/Uref [V]
6-7uint16/driver/motor/Iref [A]

Status Message - Driver State 1

info

SID = 26 | multicast message

Payload byteBit / DatatypeDescription
0bit 0-3/driver/enabled
0bit 4-7Driver algorithm (BLDC: bit4 enabled, VECTOR: bit5 enabled)
1uint8/driver/stat
2uint8/driver/mode
3int8/driver/temp
4-5uint16/driver/limit
6-7uint16/driver/error

Status Message - Driver State 2

info

SID = 36 | multicast message

Payload byteDatatypeDescription
0-1int16/driver/cmd (-32767 to 32767)
2-3uint16/driver/totallimit (0 to 65535)
4-5uint16/driver/ptctemp [-] (no scaling)
6uint8/driver/imult (0 to 255)
7uint8/driver/umult (0 to 255)

Status Message - Supply 1

info

SID = 28 | multicast message

Payload byteDatatypeDescription
0-1int16/driver/supply/currentf in relative units
2-3int16/driver/supply/voltage in relative units
4-7int32/driver/supply/cap [mAh]

Status Message - Motor 1

info

SID = 30 | multicast message

Payload byteDatatypeDescription
0-1int16Motor current amplitude (q+d axis) in relative units
2-3int16/driver/motor/voltage in relative units
4-7int32/driver/motor/energy [J]

Status Message - Motor 2

info

SID = 31 | multicast message

Payload byteDatatypeDescriptionRange
0-1int16/driver/power in relative unitsUrange�Irange
2-3int16Mechanical angle [radian]3.14
4-5int16/driver/motor/rpmfint16 � 8
6-7int16/driver/motor/odo1

Status Message - Motor 3

info

SID = 32 | multicast message

Payload byteDatatypeDescription
0-1int16/driver/motor/currentq in relative units (pid_iq output)
2-3int16currentq reference (pid_iq input)
4-5int16/driver/motor/currentd in relative units (pid_id output)
6-7int16currentd reference (pid_id input)

Status Message - Motor 4

info

SID = 33 | multicast message

Payload byteDatatypeDescription
0-1int16Rthermistor [ohm]
2-3int16/driver/motor/mres [mohm]
4-5int16Actual motor torque [Nm] � 100
6-7int16Maximum possible torque [Nm] � 100