Skip to main content
Firmware 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
Interface Configuration
Advanced

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

Controller sendingCAN ID: 0x0D8(27 << 3) + 0 controller address
Datagram byteValue / typeDescription
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

Controller sendingCAN ID: 0x0D0(26 << 3) + 0 controller address
Datagram byteValue / typeDescription
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

Controller sendingCAN ID: 0x120(36 << 3) + 0 controller address
Datagram byteValue / typeDescription
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

Controller sendingCAN ID: 0x0E0(28 << 3) + 0 controller address
Datagram byteValue / typeDescription
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

Controller sendingCAN ID: 0x0F0(30 << 3) + 0 controller address
Datagram byteValue / typeDescription
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

Controller sendingCAN ID: 0x0F8(31 << 3) + 0 controller address
Datagram byteValue / typeDescription
0-1int16/driver/power in relative units. Range: Urange*Irange.
2-3int16Mechanical angle [radian]. Range: 3.14.
4-5int16/driver/motor/rpmf. Range: int16 * 8.
6-7int16/driver/motor/odo. Range: 1.

Status Message - Motor 3

Controller sendingCAN ID: 0x100(32 << 3) + 0 controller address
Datagram byteValue / typeDescription
0-1int16/driver/motor/currentqf in relative units
2-3int16/driver/motor/voltageq in relative units
4-5int16/driver/motor/currentdf in relative units
6-7int16/driver/motor/voltaged in relative units

Status Message - Motor 4

Controller sendingCAN ID: 0x108(33 << 3) + 0 controller address
Datagram byteValue / typeDescription
0-1int16Rthermistor [ohm]
2-3int16/driver/motor/mres [mohm]
4-5int16Actual motor torque [Nm] * 100
6-7int16Maximum possible torque [Nm] * 100