This page is intended to outline all of the CAN messages defined in codegen including their purpose and format. It is also a list of which boards send and receive each message to allow developers to note what functionality they are responsible for on the CAN bus.
Note: The data in the codegen repository should be taken as the source of truth. This page is intended to be used for the convenience of others who don't want to parse the format used in the repository, but this may not be kept up to date.
To make codegen simpler we have decided on four possible formats for CAN dataframes
U8 - 8 uint8_t
U16 - 4 uint16_t
U32 - uint32_t
U64 - 1 uint64_t
E - An empty message (a uint64_t containing a 0 value always)
Telemetry/Driver Display will handle all messages and will broadcast/log/display as deemed necessary.
IDs 0-13 are considered "CRITICAL" and require acknowledgement (ACK)
ID | Message Name | Sender | Intended Handler | Format | Fields | Description |
---|---|---|---|---|---|---|
0 | BPS Heartbeat | BMS Carrier | Centre Console | U8 | status | |
1 | Set relay states | Centre Console | BMS Carrier Solar 5 MPPTs Solar 6 MPPTs Motor Controller | U16 |
relay state | |
2-5 | RESERVED CRITICAL MESSAGES | |||||
6 | Power on main sequence | Centre Console | Motor Controller Pedal | U16 | sequence | |
7 | Power off sequence | Centre Console | Motor Controller Pedal | U16 | sequence | |
8 | Power on aux sequence | Centre Console | Motor Controller Pedal | U16 | sequence | |
9 | Drive Output | Centre Console | Motor Controller | U16 | drive output | |
10 | Set E-brake State | Centre Console | U8 | ebrake state | ||
11 | Regen Braking | Centre Console | Motor Controller | U8 | state | |
12 | RESERVED | |||||
13 | Ready to drive | Centre Console | Telemetry | U8 | ready state | |
14 | Relay open okay 5 MPPTs | Solar 5 MPPTs | Telemetry | E | ||
15 | Relay open okay 6 MPPTs | Solar 6 MPPTs | Telemetry | E | ||
16-17 | RESERVED | |||||
18 | Pedal Output | Pedal | Motor Interface | U32 | throttle output brake output | |
19-21 | RESERVED | |||||
22 | Drive State | Motor Controller | U16 | drive_state | ||
23 | Lights Sync | Power Distribution Rear | Lights Front | E | ||
24 | Lights | Steering | Lights | U8 | lights id state | |
25 | Horn | Steering | Lights | U8 | state | |
28 | Begin Precharge | Centre Console | Motor Controller | E | ||
29 | Precharge Completed | Motor Controller | Centre Console | E | ||
30 | Hazard | Centre Console | U8 | state | ||
31 | Discharge Precharge | Centre Console | Motor Controller | E | ||
32 | Battery Voltage Temperature | BMS Carrier | Telemetry | U16 | module ID voltage temperature | |
33 | Battery Aggregate Voltage and Current | BMS Carrier | Telemetry | U32 | voltage current | |
34 | State Transition Fault | Centre Console | Telemetry | U16 | state machine fault Reason | |
35 | Motor Controller Voltage/Current | Motor Controller | Telemetry | U16 | mc voltage 1 mc current 1 mc voltage 2 mc current 2 | |
36 | Motor Velocity | Motor Controller | Telemetry | U16 | vehicle velocity left vehicle velocity right | |
37 | Motor Status | Motor Controller | Telemetry | U32 | motor status left motor status right | |
38 | Motor Temps | Motor Controller | Telemetry | U32 | motor temp left motor temp right | |
39-40 | RESERVED | |||||
41 | Cruise Control Command | Steering | Telemetry | U8 | command | |
42 | Aux measurement main voltage | Power Select | Centre Console | U16 | aux voltage aux current aux temp main voltage | |
43 | DCDC Measurement Main Current | Power Select | Centre Console | U16 | DCDC voltage DCDC current DCDC temp main current | |
44 | Power Select Status | Power Select | Centre Console | U16 | fault bitset warning bitset valid bitset cell voltage | |
45 | UV Cutoff Notification | Power Distribution Front | Telemetry | E | ||
46 | Regen Braking Toggle Request | Steering | Centre Console | E | ||
47 | RESERVED | |||||
48 | Request to Charge | Charger | Centre Console | E | ||
49 | Allow Charging | Centre Console | Charger | E | ||
50 | Charger Connected State | Charger | U8 | is connected | ||
51 | Solar Data 6 MPPTs | Solar 6 MPPTs | Telemetry | U32 | data point type data value | |
52 | Solar fault 6 MPPTs | Solar 6 MPPTs | Telemetry Centre Console | U8 | fault fault data | |
53 | Charger Fault | Charger | Telemetry | U8 | fault | |
54 | Front Current Measurement | Power Distribution Front | Centre Console | U16 | current ID current | |
55 | Rear Current Measurement | Power Distribution Rear | Centre Console | U16 | current ID current | |
56 | RESERVED | |||||
57 | Battery Fan State | BMS Carrier | U8 | fan[8] | ||
58 | Battert Relay State | BMS Carrier | U8 | high voltage ground | ||
59 | Solar Data 5 MPPTs | Solar 5 MPPTs | Telemetry | U32 | data point type data value | |
60 | Solar fault 5 MPPTs | Solar 5 MPPTs | Telemetry Centre Console | U8 | fault fault data | |
61 | Rear Power Distribution Fault | Power Distribution Rear | Centre Console | U16 | fault data enclosure temperature data DCDC temperature data faulting output | See https://uwmidsun.atlassian.net/l/c/normaJUS for how to interpret PD fault messages. |
62 | Front Power Distribution Fault | Power Distribution Front | Centre Console | U16 | fault data faulting output | |
63 | Baby Driver | Baby Driver | Baby Driver | U8 | ID data[7] |