Status Messages
This document describes the status messages format of the ESCx controller.
- All listed datagram types are multicast
- All listed payloads use big-endian format
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.
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 Range | Urange |
---|---|
60V | 60 |
80V | 80 |
100V | 100 |
Controller Current Range | Irange |
---|---|
100A | 100 |
400A | 400 |
600A | 600 |
Status Message - Range and Reference
SID = 27 | multicast message
Payload byte | Datatype | Description |
---|---|---|
0-1 | uint16 | Urange - voltage range |
2-3 | uint16 | Irange - current range |
4-5 | uint16 | /driver/motor/Uref [V] |
6-7 | uint16 | /driver/motor/Iref [A] |
Status Message - Driver State 1
SID = 26 | multicast message
Payload byte | Bit / Datatype | Description |
---|---|---|
0 | bit 0-3 | /driver/enabled |
0 | bit 4-7 | Driver algorithm (BLDC: bit4 enabled, VECTOR: bit5 enabled) |
1 | uint8 | /driver/stat |
2 | uint8 | /driver/mode |
3 | int8 | /driver/temp |
4-5 | uint16 | /driver/limit |
6-7 | uint16 | /driver/error |
Status Message - Driver State 2
SID = 36 | multicast message
Payload byte | Datatype | Description |
---|---|---|
0-1 | int16 | /driver/cmd (-32767 to 32767) |
2-3 | uint16 | /driver/totallimit (0 to 65535) |
4-5 | uint16 | /driver/ptctemp [-] (no scaling) |
6 | uint8 | /driver/imult (0 to 255) |
7 | uint8 | /driver/umult (0 to 255) |
Status Message - Supply 1
SID = 28 | multicast message
Payload byte | Datatype | Description |
---|---|---|
0-1 | int16 | /driver/supply/currentf in relative units |
2-3 | int16 | /driver/supply/voltage in relative units |
4-7 | int32 | /driver/supply/cap [mAh] |
Status Message - Motor 1
SID = 30 | multicast message
Payload byte | Datatype | Description |
---|---|---|
0-1 | int16 | Motor current amplitude (q+d axis) in relative units |
2-3 | int16 | /driver/motor/voltage in relative units |
4-7 | int32 | /driver/motor/energy [J] |
Status Message - Motor 2
SID = 31 | multicast message
Payload byte | Datatype | Description | Range |
---|---|---|---|
0-1 | int16 | /driver/power in relative units | Urange�Irange |
2-3 | int16 | Mechanical angle [radian] | 3.14 |
4-5 | int16 | /driver/motor/rpmf | int16 � 8 |
6-7 | int16 | /driver/motor/odo | 1 |
Status Message - Motor 3
SID = 32 | multicast message
Payload byte | Datatype | Description |
---|---|---|
0-1 | int16 | /driver/motor/currentq in relative units (pid_iq output) |
2-3 | int16 | currentq reference (pid_iq input) |
4-5 | int16 | /driver/motor/currentd in relative units (pid_id output) |
6-7 | int16 | currentd reference (pid_id input) |
Status Message - Motor 4
SID = 33 | multicast message
Payload byte | Datatype | Description |
---|---|---|
0-1 | int16 | Rthermistor [ohm] |
2-3 | int16 | /driver/motor/mres [mohm] |
4-5 | int16 | Actual motor torque [Nm] � 100 |
6-7 | int16 | Maximum possible torque [Nm] � 100 |