diff --git a/README.md b/README.md
index edbf31e..b16085f 100644
--- a/README.md
+++ b/README.md
@@ -1,19 +1,21 @@
-# sc1-data-format
-Format for the byte arrays sent from firmware to software within the solar car and from the solar car to the engineering dashboard. The format also contains additional information about each piece of data that is collected from the solar car, as detailed below.
+# sc-data-format
+Format for the byte arrays sent from firmware to software within the solar car and from the solar car to the telemetry visualization dashboards. The format also contains additional information about each piece of data that is collected from the solar car, as detailed below.
## Format
The following information is listed within the format for each piece of data being collected from the solar car:
-* Name - A name to identify each piece of data.
-* Number of bytes - The number of bytes that each piece of data takes up within the byte arrays mentioned above. This value depends on the data type (see next point).
-* Data type - The data type that each piece of data should be interpreted as. This is used for consistency when constructing and unpacking the byte arrays.
-* Units - The units of each piece of data, if applicable (empty string if not applicable).
-* Nominal minimum - The nominal minimum value for each piece of data, expressed as a number and assumed to be in the same units as previously listed. The value of a given piece of data should not fall below this value during normal operation.
+* **Name** - A name to identify each piece of data.
+* **Number of bytes** - The number of bytes that each piece of data takes up within the byte arrays mentioned above. This value depends on the data type (see next point).
+* **Data type** - The data type that each piece of data should be interpreted as. This is used for consistency when constructing and unpacking the byte arrays.
+* **Units** - The units of each piece of data, if applicable (empty string if not applicable).
+* **Nominal minimum** - The nominal minimum value for each piece of data, expressed as a number and assumed to be in the same units as previously listed. The value of a given piece of data should not fall below this value during normal operation.
* The default value, when the nominal minimum value for a piece of data is not yet known, is 0.
-* Nominal maximum - The nominal maximum value for each piece of data, expressed as a number and assumed to be in the same units as previously listed. The value of a given piece of data should not exceed this value during normal operation.
+* **Nominal maximum** - The nominal maximum value for each piece of data, expressed as a number and assumed to be in the same units as previously listed. The value of a given piece of data should not exceed this value during normal operation.
* The default value, when the nominal maximum value for a piece of data is not yet known, is 100.
-* Category/Subsystem - Indicates the category or electrical subsystem that each piece of data belongs to. This value is currently only used for categorizing data when selecting what will be shown in the graphs in the engineering dashboard.
+* **Category/Subsystem** - Indicates the category or electrical subsystem that each piece of data belongs to. This value is currently only used for categorizing data when selecting what will be shown in the graphs in the engineering dashboard.
* Ideally, each piece of data would belong to a specific electrical subsystem. However, sometimes it makes more sense to categorize certain pieces of data, like data from sensors that aren't necessarily collecting data about a specific subsystem, differently.
+* **CAN ID (hex)** - a hexadecimal identifier for the CAN message associated with the datum. This allows the firmware and software to correlate values with specific bus frames.
+* **Bit offset** - the offset in bits within the CAN message payload where the value starts. This is used when packing/unpacking the field from a CAN frame.
For each piece of data, the information described above will be listed as follows:
- "name": [\<num bytes\>, "data_type", "units", \<nominal min\>, \<nominal max\>, "Category/Subsystem"]
+ "name": [\<num bytes\>, "data_type", "units", \<nominal min\>, \<nominal max\>, "Category/Subsystem", "CAN ID (hex)", bit offset]
diff --git a/format.json b/format.json
index d651505..6561ac8 100644
--- a/format.json
+++ b/format.json
@@ -1,185 +1,223 @@
-{
- "accelerator_pedal": [4, "float", "%", 0, 1, "MCC;Sensors"],
- "speed": [4, "float", "mph", 0, 100, "MCC;Motor Controller I/O"],
- "mcc_state": [1, "uint8", "", 0, 7, "MCC;Firmware"],
- "fr_telem": [1, "bool", "", 0, 1, "MCC;Driver Buttons/Switches"],
- "crz_pwr_mode": [1, "bool", "", 0, 1, "MCC;Driver Buttons/Switches"],
- "crz_spd_mode": [1, "bool", "", 0, 1, "MCC;Driver Buttons/Switches"],
- "crz_pwr_setpt": [4, "float", "W", 0, 100, "MCC;Firmware"],
- "crz_spd_setpt": [4, "float", "mph", 0, 100, "MCC;Firmware"],
- "eco": [1, "bool", "", 0, 1, "MCC;Driver Buttons/Switches"],
- "main_telem": [1, "bool", "", 0, 1, "MCC;Driver Buttons/Switches"],
- "foot_brake": [1, "bool", "", 0, 1, "MCC;Sensors"],
- "regen_brake": [4, "float", "%", 0, 1, "MCC;Sensors"],
- "motor_current": [4, "float", "A", 0, 100, "MCC;Sensors"],
- "motor_power": [4, "float", "W", 0, 100, "MCC;Firmware"],
- "mc_status": [1, "uint8", "", 0, 0, "MCC;Motor Controller I/O"],
-
-
- "driver_eStop": [1, "bool", "", 0, 0, "High Voltage;Shutdown"],
- "external_eStop": [1, "bool", "", 0, 0, "High Voltage;Shutdown"],
- "crash": [1, "bool", "", 0, 0, "High Voltage;Shutdown"],
- "discharge_enable": [1, "bool", "", 0, 0, "High Voltage;Shutdown"],
- "discharge_enabled": [1, "bool", "", 0, 0, "High Voltage;Shutdown"],
- "charge_enable": [1, "bool", "", 0, 0, "High Voltage;Shutdown"],
- "charge_enabled": [1, "bool", "", 0, 0, "High Voltage;Shutdown"],
- "isolation": [1, "bool", "", 0, 0, "High Voltage;Shutdown"],
- "mcu_hv_en": [1, "bool", "", 0, 0, "High Voltage;Shutdown"],
- "mcu_stat_fdbk": [1, "bool", "", 0, 0, "High Voltage;Shutdown"],
-
- "mppt_contactor": [1, "bool", "", 1, 1, "High Voltage;MPS"],
- "motor_controller_contactor": [1, "bool", "", 1, 1, "High Voltage;MPS"],
- "low_contactor": [1, "bool", "", 1, 1, "High Voltage;MPS"],
- "dcdc_current": [4, "float", "A", 0, 100, "High Voltage;MPS"],
- "dcdc_deg": [1, "bool", "", 1, 1, "High Voltage;MPS"],
- "use_dcdc": [1, "bool", "", 0, 0, "High Voltage;MPS"],
- "supplemental_current": [4, "float", "A", 0, 100, "Battery;Supplemental"],
- "supplemental_voltage": [4, "float", "V", 0, 100, "Battery;Supplemental"],
- "supplemental_deg": [1, "bool", "", 1, 1, "Battery;Supplemental"],
- "use_supp": [1, "bool", "", 0, 0, "High Voltage;MPS"],
- "est_supplemental_soc": [4, "float", "%", 0, 100, "Battery;Supplemental"],
- "bms_mpio1": [1, "bool", "", 0, 1, "High Voltage;IO"],
-
-
- "park_brake": [1, "bool", "", 0, 1, "Main IO;Sensors"],
- "air_temp": [4, "float", "degC", 0, 100, "Main IO;Sensors"],
- "brake_temp": [4, "float", "degC", 0, 100, "Main IO;Sensors"],
- "dcdc_temp": [4, "float", "degC", 0, 100, "Main IO;Sensors"],
- "mainIO_temp": [4, "float", "degC", 0, 100, "Main IO;Sensors"],
- "motor_controller_temp": [4, "float", "degC", 0, 100, "Main IO;Sensors"],
- "motor_temp": [4, "float", "degC", 0, 100, "Main IO;Sensors"],
- "road_temp": [4, "float", "degC", 0, 100, "Main IO;Sensors"],
- "l_turn_led_en": [1, "bool", "", 0, 1, "Main IO;Lights"],
- "r_turn_led_en": [1, "bool", "", 0, 1, "Main IO;Lights"],
- "brake_led_en": [1, "bool", "", 0, 1, "Main IO;Lights"],
- "headlights_led_en": [1, "bool", "", 0, 1, "Main IO;Lights"],
- "hazards": [1, "bool", "", 0, 0, "Main IO;Lights"],
- "main_5V_bus": [4, "float", "V", 0, 100, "Main IO;Sensors"],
- "main_12V_bus": [4, "float", "V", 0, 100, "Main IO;Sensors"],
- "main_24V_bus": [4, "float", "V", 0, 100, "Main IO;Sensors"],
- "main_5V_current": [4, "float", "A", 0, 100, "Main IO;Sensors"],
- "main_12V_current": [4, "float", "A", 0, 100, "Main IO;Sensors"],
- "main_24V_current": [4, "float", "A", 0, 100, "Main IO;Sensors"],
- "bms_can_heartbeat": [1, "bool", "", 1, 1, "Main IO;Firmware"],
- "hv_can_heartbeat": [1, "bool", "", 1, 1, "Main IO;Firmware"],
- "mainIO_heartbeat": [1, "bool", "", 1, 1, "Main IO;Firmware"],
- "mcc_can_heartbeat": [1, "bool", "", 1, 1, "Main IO;Firmware"],
- "mppt_can_heartbeat": [1, "bool", "", 1, 1, "Main IO;Firmware"],
-
-
- "mppt_mode": [1, "bool", "", 0, 1, "Solar Array;MPPT"],
- "mppt_current_out": [4, "float", "A", 0, 7, "Solar Array;Sensors"],
- "string1_temp": [4, "float", "degC", 20, 50, "Solar Array;Sensors"],
- "string2_temp": [4, "float", "degC", 20, 50, "Solar Array;Sensors"],
- "string3_temp": [4, "float", "degC", 20, 50, "Solar Array;Sensors"],
- "string1_V_in": [4, "float", "V", 0, 60, "Solar Array;Sensors"],
- "string2_V_in": [4, "float", "V", 0, 60, "Solar Array;Sensors"],
- "string3_V_in": [4, "float", "V", 0, 60, "Solar Array;Sensors"],
- "string1_I_in": [4, "float", "A", 0, 7, "Solar Array;Sensors"],
- "string2_I_in": [4, "float", "A", 0, 7, "Solar Array;Sensors"],
- "string3_I_in": [4, "float", "A", 0, 7, "Solar Array;Sensors"],
-
-
- "pack_temp": [4, "float", "degC", 0, 55, "Battery;BMS CAN"],
- "pack_internal_temp": [4, "float", "degC", 0, 100, "Battery;BMS CAN"],
- "pack_current": [4, "float", "A", -24.4, 48.8, "Battery;BMS CAN"],
- "pack_voltage": [4, "float", "V", 77.5, 113.15, "Battery;BMS CAN"],
- "pack_power": [4, "float", "W", -2760.86, 5521.72, "Battery;Firmware"],
- "populated_cells": [2, "uint16", "", 0, 100, "Battery;BMS CAN"],
- "soc": [4, "float", "%", 0, 100, "Battery;BMS CAN"],
- "soh": [4, "float", "%", 0, 100, "Battery;BMS CAN"],
- "pack_amphours": [4, "float", "Ah", 57, 57, "Battery;BMS CAN"],
- "adaptive_total_capacity": [4, "float", "Ah", 0, 100, "Battery;BMS CAN"],
- "fan_speed": [1, "uint8", "", 0, 6, "Battery;BMS CAN"],
- "pack_resistance": [4, "float", "mOhm", 0, 100, "Battery;BMS CAN"],
- "bms_input_voltage": [4, "float", "V", 12, 24, "Battery;BMS CAN"],
-
- "bps_fault": [1, "bool", "", 0, 0, "Battery;BMS"],
-
- "voltage_failsafe": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "current_failsafe": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "relay_failsafe": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "cell_balancing_active": [1, "bool", "", 1, 1, "Battery;BMS CAN"],
- "charge_interlock_failsafe": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "thermistor_b_value_table_invalid": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "input_power_supply_failsafe": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
-
- "discharge_limit_enforcement_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "charger_safety_relay_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "internal_hardware_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "internal_heatsink_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "internal_software_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "highest_cell_voltage_too_high_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "lowest_cell_voltage_too_low_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "pack_too_hot_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "high_voltage_interlock_signal_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "precharge_circuit_malfunction": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "abnormal_state_of_charge_behavior": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
-
- "internal_communication_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "cell_balancing_stuck_off_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "weak_cell_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "low_cell_voltage_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "open_wiring_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "current_sensor_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "highest_cell_voltage_over_5V_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "cell_asic_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "weak_pack_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "fan_monitor_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "thermistor_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "external_communication_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "redundant_power_supply_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "high_voltage_isolation_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "input_power_supply_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
- "charge_limit_enforcement_fault": [1, "bool", "", 0, 0, "Battery;BMS CAN"],
-
- "cell_group1_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group2_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group3_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group4_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group5_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group6_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group7_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group8_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group9_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group10_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group11_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group12_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group13_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group14_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group15_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group16_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group17_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group18_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group19_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group20_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group21_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group22_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group23_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group24_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group25_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group26_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group27_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group28_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group29_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group30_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
- "cell_group31_voltage": [4, "float", "V", 2.5, 3.65, "Battery;BMS"],
-
-
- "tstamp_ms": [2, "uint16", "ms", 0, 999, "Software;Timestamp"],
- "tstamp_sc": [1, "uint8", "s", 0, 59, "Software;Timestamp"],
- "tstamp_mn": [1, "uint8", "min", 0, 59, "Software;Timestamp"],
- "tstamp_hr": [1, "uint8", "hr", 0, 23, "Software;Timestamp"],
- "tstamp_unix": [8, "uint64", "ms", 0, 0, "Software;Timestamp"],
- "lat": [4, "float", "Degree", 0, 0, "Software;GPS"],
- "lon": [4, "float", "Degree", 0, 0, "Software;GPS"],
- "elev": [4, "float", "meter", 0, 0, "Software;GPS"],
- "lap_count": [4, "int32", "", 0, 1000, "Software;Lap Counter"],
- "current_section": [4, "int32", "", 0, 100, "Software;Lap Counter"],
- "lap_duration": [4, "uint32", "ms", 0, 600000, "Software;Lap Counter"],
-
- "optimized_target_power": [4, "float", "kW", 0, 10, "Race Strategy;Model Outputs"],
- "maximum_distance_traveled": [4, "float", "m", 0, 100000, "Race Strategy;Model Outputs"]
-}
-
-
+{
+ "abnormal_state_of_charge_behavior": [1, "bool", "", 0, 0, "Battery;BMS", "100", 0],
+ "adaptive_total_capacity": [2, "float", "Ah", 0, 100, "Battery;BMS", "100", 32],
+ "bms_input_voltage": [2, "float", "V", 12, 24, "Battery;BMS", "102", 24],
+ "bps_fault": [1, "bool", "", 0, 0, "Battery;BMS", "FFF", 0],
+ "cell_asic_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 23],
+ "cell_balancing_active": [1, "bool", "", 1, 1, "Battery;BMS", "100", 3],
+ "cell_balancing_stuck_off_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 17],
+ "cell_group1_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group2_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group3_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group4_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group5_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group6_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group7_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group8_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group9_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group10_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group11_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group12_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group13_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group14_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group15_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group16_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group17_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group18_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group19_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group20_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group21_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group22_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group23_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group24_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group25_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group26_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group27_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group28_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group29_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group30_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "cell_group31_voltage": [2, "float", "V", 2.5, 3.65, "Battery;BMS", "103", 8],
+ "charge_interlock_failsafe": [1, "bool", "", 0, 0, "Battery;BMS", "100", 4],
+ "charge_limit_enforcement_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 31],
+ "charger_safety_relay_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 1],
+ "current_failsafe": [1, "bool", "", 0, 0, "Battery;BMS", "100", 1],
+ "current_sensor_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 21],
+ "discharge_limit_enforcement_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 0],
+ "external_communication_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 27],
+ "fan_monitor_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 25],
+ "fan_speed": [1, "uint8", "", 0, 6, "Battery;BMS", "102", 56],
+ "high_voltage_interlock_signal_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 0],
+ "high_voltage_isolation_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 29],
+ "highest_cell_voltage_over_5V_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 22],
+ "highest_cell_voltage_too_high_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 5],
+ "input_power_supply_failsafe": [1, "bool", "", 0, 0, "Battery;BMS", "100", 6],
+ "input_power_supply_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 30],
+ "internal_communication_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 16],
+ "internal_hardware_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 2],
+ "internal_heatsink_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 3],
+ "internal_software_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 4],
+ "low_cell_voltage_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 19],
+ "lowest_cell_voltage_too_low_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 6],
+ "open_wiring_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 20],
+ "pack_amphours": [2, "float", "Ah", 57, 57, "Battery;BMS", "102", 0],
+ "pack_current": [2, "float", "A", -24.4, 48.8, "Battery;BMS", "101", 0],
+ "pack_internal_temp": [1, "float", "degC", 0, 100, "Battery;BMS", "102", 48],
+ "pack_resistance": [2, "float", "mOhm", 0, 100, "Battery;BMS", "101", 48],
+ "pack_temp": [1, "float", "degC", 0, 55, "Battery;BMS", "102", 40],
+ "pack_too_hot_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 7],
+ "pack_voltage": [2, "float", "V", 77.5, 113.15, "Battery;BMS", "101", 16],
+ "populated_cells": [1, "uint16", "", 0, 100, "Battery;BMS", "102", 16],
+ "precharge_circuit_malfunction": [1, "bool", "", 0, 0, "Battery;BMS", "100", 0],
+ "redundant_power_supply_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 28],
+ "relay_failsafe": [1, "bool", "", 0, 0, "Battery;BMS", "100", 2],
+ "soc": [1, "float", "%", 0, 100, "Battery;BMS", "101", 32],
+ "soh": [1, "float", "%", 0, 100, "Battery;BMS", "101", 40],
+ "thermistor_b_value_table_invalid": [1, "bool", "", 0, 0, "Battery;BMS", "100", 5],
+ "thermistor_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 26],
+ "voltage_failsafe": [1, "bool", "", 0, 0, "Battery;BMS", "100", 0],
+ "weak_cell_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 18],
+ "weak_pack_fault": [1, "bool", "", 0, 0, "Battery;BMS", "100", 24],
+
+ "pack_power": [4, "float", "W", -2760.86, 5521.72, "Battery;Firmware", "FFF", 0],
+
+ "est_supplemental_soc": [4, "float", "%", 0, 100, "Battery;Supplemental", "FFF", 0],
+ "supplemental_current": [4, "float", "A", 0, 100, "Battery;Supplemental", "FFF", 0],
+ "supplemental_deg": [1, "bool", "", 1, 1, "Battery;Supplemental", "FFF", 0],
+ "supplemental_voltage": [4, "float", "V", 0, 100, "Battery;Supplemental", "FFF", 0],
+
+ "bms_mpio1": [1, "bool", "", 0, 1, "High Voltage;IO", "FFF", 0],
+
+ "dcdc_current": [4, "float", "A", 0, 100, "High Voltage;MPS", "FFF", 0],
+ "dcdc_deg": [1, "bool", "", 1, 1, "High Voltage;MPS", "FFF", 0],
+ "low_contactor": [1, "bool", "", 1, 1, "High Voltage;MPS", "FFF", 0],
+ "motor_controller_contactor": [1, "bool", "", 1, 1, "High Voltage;MPS", "FFF", 0],
+ "mppt_contactor": [1, "bool", "", 1, 1, "High Voltage;MPS", "FFF", 0],
+ "use_dcdc": [1, "bool", "", 0, 0, "High Voltage;MPS", "FFF", 0],
+ "use_supp": [1, "bool", "", 0, 0, "High Voltage;MPS", "FFF", 0],
+
+ "bms_chrg_en": [1, "bool", "", 0, 1, "High Voltage;Shutdown", "300", 0],
+ "chrg_en_fdbck": [1, "bool", "", 0, 1, "High Voltage;Shutdown", "300", 0],
+ "charge_enable": [1, "bool", "", 0, 1, "High Voltage;Shutdown", "300", 0],
+ "charge_enabled": [1, "bool", "", 0, 1, "High Voltage;Shutdown", "300", 0],
+ "crash": [1, "bool", "", 0, 1, "High Voltage;Shutdown", "300", 0],
+ "bms_dschrg_en": [1, "bool", "", 0, 1, "High Voltage;Shutdown", "300", 0],
+ "dschrg_en_fdbck": [1, "bool", "", 0, 1, "High Voltage;Shutdown", "300", 0],
+ "bms_mpo1": [1, "bool", "", 0, 1, "High Voltage;IO", "300", 0],
+ "driver_estop_fdbck": [1, "bool", "", 0, 1, "High Voltage;Shutdown", "300", 0],
+ "ext_estop_fdbck": [1, "bool", "", 0, 1, "High Voltage;Shutdown", "300", 0],
+ "dcdc_deg": [1, "bool", "", 0, 1, "High Voltage;MPS", "FFF", 0],
+ "supp_deg": [1, "bool", "", 0, 1, "High Voltage;Supplemental", "FFF", 0],
+ "isolation": [1, "bool", "", 0, 1, "High Voltage;Shutdown", "300", 0],
+ "isolation_fdbck": [1, "bool", "", 0, 1, "High Voltage;Shutdown", "300", 0],
+ "lo_cont_telem": [1, "bool", "", 0, 1, "High Voltage;MPS", "300", 0],
+ "mc_cont_telem": [1, "bool", "", 0, 1, "High Voltage;MPS", "300", 0],
+ "mppt_cont_telem": [1, "bool", "", 0, 1, "High Voltage;MPS", "300", 0],
+ "mcu_stat_fdbk": [1, "bool", "", 0, 1, "High Voltage;Shutdown", "300", 0],
+ "mcu_hv_en": [1, "bool", "", 0, 1, "High Voltage;Shutdown", "25", 0],
+ "supp_is": [4, "float", "A", 0, 100, "High Voltage;Sensors", "302", 0],
+ "sense_vsupp": [4, "float", "V", 0, 100, "High Voltage;Sensors", "303", 0],
+ "use_supp": [1, "bool", "", 0, 1, "High Voltage;MPS", "300", 0],
+ "use_dcdc": [1, "bool", "", 0, 1, "High Voltage;MPS", "300", 0],
+ "dcdc_is": [4, "float", "A", -50, 50, "High Voltage;Sensors", "301", 0],
+
+ "crz_pwr_mode": [1, "bool", "", 0, 1, "MCC;Driver Buttons/Switches", "FFF", 0],
+ "main_telem": [1, "bool", "", 0, 1, "MCC;Driver Buttons/Switches", "FFF", 0],
+
+ "crz_pwr_setpt": [4, "float", "W", 0, 100, "MCC;Firmware", "FFF", 0],
+ "crz_spd_setpt": [4, "float", "mph", 0, 100, "MCC;Firmware", "FFF", 0],
+ "mcc_state": [1, "uint8", "", 0, 7, "MCC;Firmware", "FFF", 0],
+ "motor_power": [4, "float", "W", 0, 100, "MCC;Firmware", "FFF", 0],
+
+ "foot_brake": [1, "bool", "", 0, 1, "MCC;Sensors", "FFF", 0],
+ "motor_current": [4, "float", "A", 0, 100, "MCC;Sensors", "FFF", 0],
+
+ "bms_can_heartbeat": [1, "bool", "", 1, 1, "Main IO;Firmware", "FFF", 0],
+ "hv_can_heartbeat": [1, "bool", "", 1, 1, "Main IO;Firmware", "FFF", 0],
+ "mainIO_heartbeat": [1, "bool", "", 1, 1, "Main IO;Firmware", "FFF", 0],
+ "mcc_can_heartbeat": [1, "bool", "", 1, 1, "Main IO;Firmware", "FFF", 0],
+ "mppt_can_heartbeat": [1, "bool", "", 1, 1, "Main IO;Firmware", "FFF", 0],
+
+ "headlights_led_en": [1, "bool", "", 0, 1, "Main IO;Lights", "FFF", 0],
+
+ "air_temp": [4, "float", "degC", 0, 100, "Main IO;Sensors", "FFF", 0],
+ "brake_temp": [4, "float", "degC", 0, 100, "Main IO;Sensors", "FFF", 0],
+ "dcdc_temp": [4, "float", "degC", 0, 100, "Main IO;Sensors", "FFF", 0],
+ "mainIO_temp": [4, "float", "degC", 0, 100, "Main IO;Sensors", "FFF", 0],
+ "main_12V_current": [4, "float", "A", 0, 100, "Main IO;Sensors", "FFF", 0],
+ "main_24V_bus": [4, "float", "V", 0, 100, "Main IO;Sensors", "FFF", 0],
+ "main_24V_current": [4, "float", "A", 0, 100, "Main IO;Sensors", "FFF", 0],
+ "motor_controller_temp": [4, "float", "degC", 0, 100, "Main IO;Sensors", "FFF", 0],
+ "motor_temp": [4, "float", "degC", 0, 100, "Main IO;Sensors", "FFF", 0],
+ "road_temp": [4, "float", "degC", 0, 100, "Main IO;Sensors", "FFF", 0],
+
+ "brake_led_en": [1, "bool", "", 0, 1, "PDC;Lights", "20A", 0],
+
+ "eco": [1, "bool", "", 0, 1, "PDC;Motor Controller I/O", "207", 1],
+ "mc_status": [1, "uint8", "", 0, 0, "PDC;Motor Controller I/O", "207", 2],
+ "speed": [4, "float", "mph", 0, 100, "PDC;Motor Controller I/O", "208", 0],
+
+ "accelerator_pedal": [4, "float", "%", 0, 1, "PDC;Sensors", "200", 0],
+ "main_12V_bus": [4, "float", "V", 0, 100, "PDC;Sensors", "202", 0],
+ "main_5V_bus": [4, "float", "V", 0, 100, "PDC;Sensors", "203", 0],
+ "main_5V_current": [4, "float", "A", 0, 100, "PDC;Sensors", "204", 0],
+ "park_brake": [1, "bool", "", 0, 1, "PDC;Sensors", "207", 3],
+ "regen_brake": [4, "float", "%", 0, 1, "PDC;Sensors", "201", 0],
+
+ "batt_i": [4, "float", "A", -50, 50, "Powertrain;Sensors", "503", 0],
+ "i_12v": [4, "float", "A", 0, 20, "Powertrain;Sensors", "500", 0],
+ "supp_i": [4, "float", "A", 0, 100, "Powertrain;Sensors", "502", 0],
+ "supp_v": [4, "float", "V", 0, 100, "Powertrain;Sensors", "504", 0],
+ "v_12v": [4, "float", "V", 0, 15, "Powertrain;Sensors", "501", 0],
+
+ "BATT_POS_CONT_MCU": [1, "bool", "", 0, 1, "Powertrain;Status", "505", 1],
+ "ESTOP_MCU": [1, "bool", "", 0, 1, "Powertrain;Status", "505", 0],
+ "MC_CONT_MCU": [1, "bool", "", 0, 1, "Powertrain;Status", "505", 6],
+ "MCU_BATT_EN": [1, "bool", "", 0, 1, "Powertrain;Status", "505", 4],
+ "MPPT_CONT_MCU": [1, "bool", "", 0, 1, "Powertrain;Status", "505", 5],
+ "PPC1_DCDC_INVALID": [1, "bool", "", 0, 1, "Powertrain;Status", "505", 2],
+ "PPC1_SUPP_INVALID": [1, "bool", "", 0, 1, "Powertrain;Status", "505", 3],
+
+ "maximum_distance_traveled": [4, "float", "m", 0, 100000, "Race Strategy;Model Outputs", "FFF", 0],
+ "optimized_target_power": [4, "float", "kW", 0, 10, "Race Strategy;Model Outputs", "FFF", 0],
+
+ "elev": [4, "float", "meter", 0, 0, "Software;GPS", "FFF", 0],
+ "lat": [4, "float", "Degree", 0, 0, "Software;GPS", "FFF", 0],
+ "lon": [4, "float", "Degree", 0, 0, "Software;GPS", "FFF", 0],
+
+ "current_section": [4, "int32", "", 0, 100, "Software;Lap Counter", "FFF", 0],
+ "lap_count": [4, "int32", "", 0, 1000, "Software;Lap Counter", "FFF", 0],
+ "lap_duration": [4, "uint32", "ms", 0, 600000, "Software;Lap Counter", "FFF", 0],
+
+ "tstamp_hr": [1, "uint8", "hr", 0, 23, "Software;Timestamp", "FFF", 0],
+ "tstamp_mn": [1, "uint8", "min", 0, 59, "Software;Timestamp", "FFF", 0],
+ "tstamp_ms": [2, "uint16", "ms", 0, 999, "Software;Timestamp", "FFF", 0],
+ "tstamp_sc": [1, "uint8", "s", 0, 59, "Software;Timestamp", "FFF", 0],
+ "tstamp_unix": [8, "uint64", "ms", 0, 0, "Software;Timestamp", "FFF", 0],
+
+ "mppt_mode": [1, "bool", "", 0, 1, "Solar Array;MPPT", "401", 0],
+
+ "mppt_current_out": [4, "float", "A", 0, 7, "Solar Array;Sensors", "FFF", 0],
+ "string1_I_in": [4, "float", "A", 0, 7, "Solar Array;Sensors", "403", 0],
+ "string1_V_in": [4, "float", "V", 0, 60, "Solar Array;Sensors", "402", 0],
+ "string1_temp": [4, "float", "degC", 20, 50, "Solar Array;Sensors", "404", 0],
+ "string2_I_in": [4, "float", "A", 0, 7, "Solar Array;Sensors", "408", 0],
+ "string2_V_in": [4, "float", "V", 0, 60, "Solar Array;Sensors", "407", 0],
+ "string2_temp": [4, "float", "degC", 20, 50, "Solar Array;Sensors", "409", 0],
+ "string3_I_in": [4, "float", "A", 0, 7, "Solar Array;Sensors", "413", 0],
+ "string3_V_in": [4, "float", "V", 0, 60, "Solar Array;Sensors", "412", 0],
+ "string3_temp": [4, "float", "degC", 20, 50, "Solar Array;Sensors", "414", 0],
+
+ "crz_spd_mode": [1, "bool", "", 0, 1, "Steering Wheel;Driver Buttons/Switches", "300", 3],
+ "headlight": [1, "bool", "", 0, 1, "Steering Wheel;Lights", "300", 0],
+ "left_blink": [1, "bool", "", 0, 1, "Steering Wheel;Lights", "300", 1],
+ "right_blink": [1, "bool", "", 0, 1, "Steering Wheel;Lights", "300", 2],
+ "hazards": [1, "bool", "", 0, 1, "Steering Wheel;Lights", "304", 0],
+ "direction_switch": [1, "bool", "forward/reverse direction", 0, 1, "Steering Wheel;Driver Buttons/Switches", "300", 3],
+ "horn": [1, "bool", "", 0, 1, "Steering Wheel;Driver Buttons/Switches", "300", 4],
+ "crz_mode_a": [1, "bool", "", 0, 1, "Steering Wheel;Driver Buttons/Switches", "300", 5],
+ "crz_set": [1, "bool", "", 0, 1, "Steering Wheel;Driver Buttons/Switches", "300", 6],
+ "crz_reset": [1, "bool", "", 0, 1, "Steering Wheel;Driver Buttons/Switches", "300", 7],
+ "regen_brake": [4, "float", "%", 0, 1, "Steering Wheel;Sensors", "301", 0],
+ "throttle": [4, "float", "%", 0, 1, "Steering Wheel;Sensors", "302", 0],
+ "drive_mode": [1, "uint8", "", 0, 1, "Steering Wheel;Driver Buttons/Switches", "303", 0]
+}