Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
266 changes: 266 additions & 0 deletions obd_profiles/mg_zs_ev.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,266 @@
#
# MG ZS EV vehicle profile
#
# Everything here is read from the VCU at 0x7E3 (replies 0x7EB) using UDS
# ReadDataByIdentifier. On this vehicle the OBD gateway exposes exactly one
# diagnostically reachable ECU: an enumeration of every request address in
# 0x700-0x7FF answered only at 0x7DF and 0x7E3. The BMS documented at 0x781 in
# older MG datasets does not respond here, with the CAN receive filter fully
# open (ATCF 000 / ATCM 000), so pack SOC is not reachable by that route.
#
# Legend:
# obd: mode, pid, offset, type [, ecu=<id>]
#
# The did space was enumerated by sweeping 0xB000-0xBFFF at 0x7E3; unsupported
# dids answer 0x7F 0x22 0x31, so the 111 dids below are an exhaustive map of
# the page rather than a guess. Dids whose meaning is not yet established are
# carried raw and hidden: polling them records a history that can be diffed
# across vehicle states (parked, charging, ready, driving) to identify them.
#
# Signals biased by a zero point (speed BA00 is (raw-20000)/100, and the pack
# currents use 20000/32767/40000 offsets) are carried raw pending bias support
# in the value-spec grammar, as the J1979 A-40 temperatures are.
#

elements:
obd: 0x22, 0xB000, 0, u8, ecu=0x7E3 desc: did_b000, , low, "Unknown B000"
obd: 0x22, 0xB001, 0, u8, ecu=0x7E3 desc: did_b001, , low, "Unknown B001"
obd: 0x22, 0xB002, 0, u8, ecu=0x7E3 desc: did_b002, , low, "Unknown B002"
obd: 0x22, 0xB003, 0, u16, ecu=0x7E3 desc: did_b003, , low, "Unknown B003"
obd: 0x22, 0xB007, 0, u16, ecu=0x7E3 desc: did_b007, , low, "Unknown B007"
obd: 0x22, 0xB00C, 0, u16:0.01V, ecu=0x7E3 desc: hv_voltage, V, medium, "HV Pack Voltage"
obd: 0x22, 0xB00D, 0, u16, ecu=0x7E3 desc: did_b00d, , low, "Unknown B00D"
obd: 0x22, 0xB00E, 0, u16, ecu=0x7E3 desc: did_b00e, , low, "Unknown B00E"
obd: 0x22, 0xB00F, 0, u16, ecu=0x7E3 desc: did_b00f, , low, "Unknown B00F"
obd: 0x22, 0xB010, 0, u16, ecu=0x7E3 desc: did_b010, , low, "Unknown B010"
obd: 0x22, 0xB011, 0, u8, ecu=0x7E3 desc: did_b011, , low, "Unknown B011"
obd: 0x22, 0xB014, 0, u8, ecu=0x7E3 desc: did_b014, , low, "Unknown B014"
obd: 0x22, 0xB080, 0, u16, ecu=0x7E3 desc: did_b080, , low, "Unknown B080"
obd: 0x22, 0xB081, 0, u16, ecu=0x7E3 desc: did_b081, , low, "Unknown B081"
obd: 0x22, 0xB100, 0, u16, ecu=0x7E3 desc: did_b100, , low, "Unknown B100"
obd: 0x22, 0xB101, 0, u16, ecu=0x7E3 desc: did_b101, , low, "Unknown B101"
obd: 0x22, 0xB102, 0, u16, ecu=0x7E3 desc: did_b102, , low, "Unknown B102"
obd: 0x22, 0xB103, 0, u16, ecu=0x7E3 desc: did_b103, , low, "Unknown B103"
obd: 0x22, 0xB104, 0, u16, ecu=0x7E3 desc: did_b104, , low, "Unknown B104"
obd: 0x22, 0xB120, 0, u16, ecu=0x7E3 desc: did_b120, , low, "Unknown B120"
obd: 0x22, 0xB140, 0, u8, ecu=0x7E3 desc: did_b140, , low, "Unknown B140"
obd: 0x22, 0xB141, 0, u8, ecu=0x7E3 desc: did_b141, , low, "Unknown B141"
obd: 0x22, 0xB142, 0, u8, ecu=0x7E3 desc: did_b142, , low, "Unknown B142"
obd: 0x22, 0xB180, 0, u8, ecu=0x7E3 desc: did_b180, , low, "Unknown B180"
obd: 0x22, 0xB181, 0, u8, ecu=0x7E3 desc: did_b181, , low, "Unknown B181"
obd: 0x22, 0xB182, 0, u16:0.01V, ecu=0x7E3 desc: aux_voltage, V, medium, "Auxiliary Bus Voltage"
obd: 0x22, 0xB188, 0, u8, ecu=0x7E3 desc: did_b188, , low, "Unknown B188"
obd: 0x22, 0xB18B, 0, u8, ecu=0x7E3 desc: did_b18b, , low, "Unknown B18B"
obd: 0x22, 0xB18C, 0, u8, ecu=0x7E3 desc: did_b18c, , low, "Unknown B18C"
obd: 0x22, 0xB18D, 0, u8, ecu=0x7E3 desc: did_b18d, , low, "Unknown B18D"
obd: 0x22, 0xB18E, 0, u8, ecu=0x7E3 desc: did_b18e, , low, "Unknown B18E"
obd: 0x22, 0xB18F, 0, u8, ecu=0x7E3 desc: did_b18f, , low, "Unknown B18F"
obd: 0x22, 0xB193, 0, u8, ecu=0x7E3 desc: did_b193, , low, "Unknown B193"
obd: 0x22, 0xB194, 0, u8, ecu=0x7E3 desc: did_b194, , low, "Unknown B194"
obd: 0x22, 0xB195, 0, u8, ecu=0x7E3 desc: did_b195, , low, "Unknown B195"
obd: 0x22, 0xB1A0, 0, u8, ecu=0x7E3 desc: did_b1a0, , low, "Unknown B1A0"
obd: 0x22, 0xB1A2, 0, u8, ecu=0x7E3 desc: did_b1a2, , low, "Unknown B1A2"
obd: 0x22, 0xB1A3, 0, u8, ecu=0x7E3 desc: did_b1a3, , low, "Unknown B1A3"
obd: 0x22, 0xB309, 0, u8, ecu=0x7E3 desc: did_b309, , low, "Unknown B309"
obd: 0x22, 0xB400, 0, u8, ecu=0x7E3 desc: did_b400, , low, "Unknown B400"
obd: 0x22, 0xB403, 0, u16, ecu=0x7E3 desc: did_b403, , low, "Unknown B403"
obd: 0x22, 0xB404, 0, u16, ecu=0x7E3 desc: did_b404, , low, "Unknown B404"
obd: 0x22, 0xB405, 0, u8, ecu=0x7E3 desc: did_b405, , low, "Unknown B405"
obd: 0x22, 0xB407, 0, u8, ecu=0x7E3 desc: did_b407, , low, "Unknown B407"
obd: 0x22, 0xB40A, 0, u8, ecu=0x7E3 desc: did_b40a, , low, "Unknown B40A"
obd: 0x22, 0xB40C, 0, u8, ecu=0x7E3 desc: did_b40c, , low, "Unknown B40C"
obd: 0x22, 0xB40E, 0, u8, ecu=0x7E3 desc: did_b40e, , low, "Unknown B40E"
obd: 0x22, 0xB480, 0, u8, ecu=0x7E3 desc: did_b480, , low, "Unknown B480"
obd: 0x22, 0xB483, 0, u16, ecu=0x7E3 desc: did_b483, , low, "Unknown B483"
obd: 0x22, 0xB484, 0, u16, ecu=0x7E3 desc: did_b484, , low, "Unknown B484"
obd: 0x22, 0xB580, 0, u8, ecu=0x7E3 desc: did_b580, , low, "Unknown B580"
obd: 0x22, 0xB582, 0, u16, ecu=0x7E3 desc: dcdc_hv_raw, , medium, "DC/DC HV Side (raw)"
obd: 0x22, 0xB583, 0, u16:0.1A, ecu=0x7E3 desc: dcdc_out_current, A, medium, "DC/DC Output Current"
obd: 0x22, 0xB584, 0, u16:0.1V, ecu=0x7E3 desc: dcdc_out_voltage, V, medium, "DC/DC Output Voltage"
obd: 0x22, 0xB587, 0, u8, ecu=0x7E3 desc: did_b587, , low, "Unknown B587"
obd: 0x22, 0xB5D0, 0, u8, ecu=0x7E3 desc: did_b5d0, , low, "Unknown B5D0"
obd: 0x22, 0xB700, 0, u16, ecu=0x7E3 desc: did_b700, , low, "Unknown B700"
obd: 0x22, 0xB701, 0, u16, ecu=0x7E3 desc: did_b701, , low, "Unknown B701"
obd: 0x22, 0xB702, 0, u8, ecu=0x7E3 desc: did_b702, , low, "Unknown B702"
obd: 0x22, 0xB703, 0, u8, ecu=0x7E3 desc: hv_contactor, , high, "HV Contactor State"
obd: 0x22, 0xB705, 0, u16, ecu=0x7E3 desc: did_b705, , low, "Unknown B705"
obd: 0x22, 0xB706, 0, u16, ecu=0x7E3 desc: did_b706, , low, "Unknown B706"
obd: 0x22, 0xB70C, 0, u16, ecu=0x7E3 desc: did_b70c, , low, "Unknown B70C"
obd: 0x22, 0xB70D, 0, u16, ecu=0x7E3 desc: did_b70d, , low, "Unknown B70D"
obd: 0x22, 0xB70E, 0, u16, ecu=0x7E3 desc: did_b70e, , low, "Unknown B70E"
obd: 0x22, 0xB70F, 0, u16, ecu=0x7E3 desc: did_b70f, , low, "Unknown B70F"
obd: 0x22, 0xB710, 0, u16, ecu=0x7E3 desc: charge_limit, , medium, "Charge Limit (raw)"
obd: 0x22, 0xB711, 0, u16, ecu=0x7E3 desc: did_b711, , low, "Unknown B711"
obd: 0x22, 0xB712, 0, u16, ecu=0x7E3 desc: charge_power_max, , medium, "Max Charge Power (raw)"
obd: 0x22, 0xB713, 0, u16, ecu=0x7E3 desc: did_b713, , low, "Unknown B713"
obd: 0x22, 0xB717, 0, u8, ecu=0x7E3 desc: charge_flag, , high, "Charge Flag"
obd: 0x22, 0xB71B, 0, u8, ecu=0x7E3 desc: charge_state, , high, "Charge State"
obd: 0x22, 0xB780, 0, u8, ecu=0x7E3 desc: did_b780, , low, "Unknown B780"
obd: 0x22, 0xB781, 0, u8, ecu=0x7E3 desc: did_b781, , low, "Unknown B781"
obd: 0x22, 0xB900, 0, u8, ecu=0x7E3 desc: did_b900, , low, "Unknown B900"
obd: 0x22, 0xB904, 0, u8, ecu=0x7E3 desc: did_b904, , low, "Unknown B904"
obd: 0x22, 0xB981, 0, u16, ecu=0x7E3 desc: did_b981, , low, "Unknown B981"
obd: 0x22, 0xBA00, 0, u16, ecu=0x7E3 desc: speed_raw, , medium, "Vehicle Speed (raw, biased 20000)"
obd: 0x22, 0xBA01, 0, u16, ecu=0x7E3 desc: did_ba01, , low, "Unknown BA01"
obd: 0x22, 0xBA02, 0, u8, ecu=0x7E3 desc: did_ba02, , low, "Unknown BA02"
obd: 0x22, 0xBA40, 0, u8, ecu=0x7E3 desc: did_ba40, , low, "Unknown BA40"
obd: 0x22, 0xBA41, 0, u8, ecu=0x7E3 desc: did_ba41, , low, "Unknown BA41"
obd: 0x22, 0xBB01, 0, u16, ecu=0x7E3 desc: did_bb01, , low, "Unknown BB01"
obd: 0x22, 0xBB02, 0, u8, ecu=0x7E3 desc: did_bb02, , low, "Unknown BB02"
obd: 0x22, 0xBB05, 0, u8, ecu=0x7E3 desc: did_bb05, , low, "Unknown BB05"
obd: 0x22, 0xBB06, 0, u8, ecu=0x7E3 desc: did_bb06, , low, "Unknown BB06"
obd: 0x22, 0xBB0A, 0, u16, ecu=0x7E3 desc: did_bb0a, , low, "Unknown BB0A"
obd: 0x22, 0xBB80, 0, u16, ecu=0x7E3 desc: did_bb80, , low, "Unknown BB80"
obd: 0x22, 0xBB89, 0, u8, ecu=0x7E3 desc: did_bb89, , low, "Unknown BB89"
obd: 0x22, 0xBB8E, 0, u16, ecu=0x7E3 desc: did_bb8e, , low, "Unknown BB8E"
obd: 0x22, 0xBB90, 0, u8, ecu=0x7E3 desc: did_bb90, , low, "Unknown BB90"
obd: 0x22, 0xBB91, 0, u8, ecu=0x7E3 desc: did_bb91, , low, "Unknown BB91"
obd: 0x22, 0xBB93, 0, str19, ecu=0x7E3 desc: did_bb93, , low, "Unknown BB93"
obd: 0x22, 0xBB94, 0, str19, ecu=0x7E3 desc: did_bb94, , low, "Unknown BB94"
obd: 0x22, 0xBB96, 0, str19, ecu=0x7E3 desc: did_bb96, , low, "Unknown BB96"
obd: 0x22, 0xBB97, 0, str19, ecu=0x7E3 desc: did_bb97, , low, "Unknown BB97"
obd: 0x22, 0xBB99, 0, str19, ecu=0x7E3 desc: did_bb99, , low, "Unknown BB99"
obd: 0x22, 0xBB9A, 0, str19, ecu=0x7E3 desc: did_bb9a, , low, "Unknown BB9A"
obd: 0x22, 0xBC00, 0, u8, ecu=0x7E3 desc: did_bc00, , low, "Unknown BC00"
obd: 0x22, 0xBC01, 0, u8, ecu=0x7E3 desc: did_bc01, , low, "Unknown BC01"
obd: 0x22, 0xBC02, 0, u8, ecu=0x7E3 desc: did_bc02, , low, "Unknown BC02"
obd: 0x22, 0xBC03, 0, u8, ecu=0x7E3 desc: did_bc03, , low, "Unknown BC03"
obd: 0x22, 0xBC04, 0, u8, ecu=0x7E3 desc: did_bc04, , low, "Unknown BC04"
obd: 0x22, 0xBC05, 0, u8, ecu=0x7E3 desc: did_bc05, , low, "Unknown BC05"
obd: 0x22, 0xBC06, 0, u8, ecu=0x7E3 desc: did_bc06, , low, "Unknown BC06"
obd: 0x22, 0xBC0B, 0, u16, ecu=0x7E3 desc: did_bc0b, , low, "Unknown BC0B"
obd: 0x22, 0xBC0C, 0, u16, ecu=0x7E3 desc: did_bc0c, , low, "Unknown BC0C"
obd: 0x22, 0xBC0D, 0, u16, ecu=0x7E3 desc: did_bc0d, , low, "Unknown BC0D"
obd: 0x22, 0xBC0E, 0, u16, ecu=0x7E3 desc: did_bc0e, , low, "Unknown BC0E"
obd: 0x22, 0xBC0F, 0, u16, ecu=0x7E3 desc: did_bc0f, , low, "Unknown BC0F"
obd: 0x22, 0xBC10, 0, u16, ecu=0x7E3 desc: did_bc10, , low, "Unknown BC10"
obd: 0x09, 0x02, 1, str17 desc: vin, , const, "VIN"

device-template:
component:
id: info
template: DeviceInfo
element: type, "vehicle"
element: manufacturer_name, "MG"
element: model_name, "ZS EV"
element-map: vin, @vin
component:
id: battery
element-map: voltage, @hv_voltage
element-map: contactor, @hv_contactor
component:
id: charging
element-map: state, @charge_state
element-map: active, @charge_flag
element-map: power_max, @charge_power_max
element-map: limit, @charge_limit
component:
id: aux
element-map: voltage, @aux_voltage
element-map: dcdc_voltage, @dcdc_out_voltage
element-map: dcdc_current, @dcdc_out_current
element-map: dcdc_hv, @dcdc_hv_raw
component:
id: raw
hidden: true
element-map: speed, @speed_raw
element-map: b000, @did_b000
element-map: b001, @did_b001
element-map: b002, @did_b002
element-map: b003, @did_b003
element-map: b007, @did_b007
element-map: b00d, @did_b00d
element-map: b00e, @did_b00e
element-map: b00f, @did_b00f
element-map: b010, @did_b010
element-map: b011, @did_b011
element-map: b014, @did_b014
element-map: b080, @did_b080
element-map: b081, @did_b081
element-map: b100, @did_b100
element-map: b101, @did_b101
element-map: b102, @did_b102
element-map: b103, @did_b103
element-map: b104, @did_b104
element-map: b120, @did_b120
element-map: b140, @did_b140
element-map: b141, @did_b141
element-map: b142, @did_b142
element-map: b180, @did_b180
element-map: b181, @did_b181
element-map: b188, @did_b188
element-map: b18b, @did_b18b
element-map: b18c, @did_b18c
element-map: b18d, @did_b18d
element-map: b18e, @did_b18e
element-map: b18f, @did_b18f
element-map: b193, @did_b193
element-map: b194, @did_b194
element-map: b195, @did_b195
element-map: b1a0, @did_b1a0
element-map: b1a2, @did_b1a2
element-map: b1a3, @did_b1a3
element-map: b309, @did_b309
element-map: b400, @did_b400
element-map: b403, @did_b403
element-map: b404, @did_b404
element-map: b405, @did_b405
element-map: b407, @did_b407
element-map: b40a, @did_b40a
element-map: b40c, @did_b40c
element-map: b40e, @did_b40e
element-map: b480, @did_b480
element-map: b483, @did_b483
element-map: b484, @did_b484
element-map: b580, @did_b580
element-map: b587, @did_b587
element-map: b5d0, @did_b5d0
element-map: b700, @did_b700
element-map: b701, @did_b701
element-map: b702, @did_b702
element-map: b705, @did_b705
element-map: b706, @did_b706
element-map: b70c, @did_b70c
element-map: b70d, @did_b70d
element-map: b70e, @did_b70e
element-map: b70f, @did_b70f
element-map: b711, @did_b711
element-map: b713, @did_b713
element-map: b780, @did_b780
element-map: b781, @did_b781
element-map: b900, @did_b900
element-map: b904, @did_b904
element-map: b981, @did_b981
element-map: ba01, @did_ba01
element-map: ba02, @did_ba02
element-map: ba40, @did_ba40
element-map: ba41, @did_ba41
element-map: bb01, @did_bb01
element-map: bb02, @did_bb02
element-map: bb05, @did_bb05
element-map: bb06, @did_bb06
element-map: bb0a, @did_bb0a
element-map: bb80, @did_bb80
element-map: bb89, @did_bb89
element-map: bb8e, @did_bb8e
element-map: bb90, @did_bb90
element-map: bb91, @did_bb91
element-map: bb93, @did_bb93
element-map: bb94, @did_bb94
element-map: bb96, @did_bb96
element-map: bb97, @did_bb97
element-map: bb99, @did_bb99
element-map: bb9a, @did_bb9a
element-map: bc00, @did_bc00
element-map: bc01, @did_bc01
element-map: bc02, @did_bc02
element-map: bc03, @did_bc03
element-map: bc04, @did_bc04
element-map: bc05, @did_bc05
element-map: bc06, @did_bc06
element-map: bc0b, @did_bc0b
element-map: bc0c, @did_bc0c
element-map: bc0d, @did_bc0d
element-map: bc0e, @did_bc0e
element-map: bc0f, @did_bc0f
element-map: bc10, @did_bc10