Commands
OBD-II adapter (ELM327 commands)
PID | Name | Description | Response Value |
---|---|---|---|
N/A | ELM_VERSION | OBD-II adapter version string | string |
N/A | ELM_VOLTAGE | Voltage detected by OBD-II adapter | Unit.volt |
Mode 01
PID | Name | Description | Response Value |
---|---|---|---|
00 | PIDS_A | Supported PIDs [01-20] | BitArray |
01 | STATUS | Status since DTCs cleared | special |
02 | FREEZE_DTC | DTC that triggered the freeze frame | special |
03 | FUEL_STATUS | Fuel System Status | (string, string) |
04 | ENGINE_LOAD | Calculated Engine Load | Unit.percent |
05 | COOLANT_TEMP | Engine Coolant Temperature | Unit.celsius |
06 | SHORT_FUEL_TRIM_1 | Short Term Fuel Trim - Bank 1 | Unit.percent |
07 | LONG_FUEL_TRIM_1 | Long Term Fuel Trim - Bank 1 | Unit.percent |
08 | SHORT_FUEL_TRIM_2 | Short Term Fuel Trim - Bank 2 | Unit.percent |
09 | LONG_FUEL_TRIM_2 | Long Term Fuel Trim - Bank 2 | Unit.percent |
0A | FUEL_PRESSURE | Fuel Pressure | Unit.kilopascal |
0B | INTAKE_PRESSURE | Intake Manifold Pressure | Unit.kilopascal |
0C | RPM | Engine RPM | Unit.rpm |
0D | SPEED | Vehicle Speed | Unit.kph |
0E | TIMING_ADVANCE | Timing Advance | Unit.degree |
0F | INTAKE_TEMP | Intake Air Temp | Unit.celsius |
10 | MAF | Air Flow Rate (MAF) | Unit.grams_per_second |
11 | THROTTLE_POS | Throttle Position | Unit.percent |
12 | AIR_STATUS | Secondary Air Status | string |
13 | O2_SENSORS | O2 Sensors Present | special |
14 | O2_B1S1 | O2: Bank 1 - Sensor 1 Voltage | Unit.volt |
15 | O2_B1S2 | O2: Bank 1 - Sensor 2 Voltage | Unit.volt |
16 | O2_B1S3 | O2: Bank 1 - Sensor 3 Voltage | Unit.volt |
17 | O2_B1S4 | O2: Bank 1 - Sensor 4 Voltage | Unit.volt |
18 | O2_B2S1 | O2: Bank 2 - Sensor 1 Voltage | Unit.volt |
19 | O2_B2S2 | O2: Bank 2 - Sensor 2 Voltage | Unit.volt |
1A | O2_B2S3 | O2: Bank 2 - Sensor 3 Voltage | Unit.volt |
1B | O2_B2S4 | O2: Bank 2 - Sensor 4 Voltage | Unit.volt |
1C | OBD_COMPLIANCE | OBD Standards Compliance | string |
1D | O2_SENSORS_ALT | O2 Sensors Present (alternate) | special |
1E | AUX_INPUT_STATUS | Auxiliary input status (power take off) | boolean |
1F | RUN_TIME | Engine Run Time | Unit.second |
20 | PIDS_B | Supported PIDs [21-40] | BitArray |
21 | DISTANCE_W_MIL | Distance Traveled with MIL on | Unit.kilometer |
22 | FUEL_RAIL_PRESSURE_VAC | Fuel Rail Pressure (relative to vacuum) | Unit.kilopascal |
23 | FUEL_RAIL_PRESSURE_DIRECT | Fuel Rail Pressure (direct inject) | Unit.kilopascal |
24 | O2_S1_WR_VOLTAGE | 02 Sensor 1 WR Lambda Voltage | Unit.volt |
25 | O2_S2_WR_VOLTAGE | 02 Sensor 2 WR Lambda Voltage | Unit.volt |
26 | O2_S3_WR_VOLTAGE | 02 Sensor 3 WR Lambda Voltage | Unit.volt |
27 | O2_S4_WR_VOLTAGE | 02 Sensor 4 WR Lambda Voltage | Unit.volt |
28 | O2_S5_WR_VOLTAGE | 02 Sensor 5 WR Lambda Voltage | Unit.volt |
29 | O2_S6_WR_VOLTAGE | 02 Sensor 6 WR Lambda Voltage | Unit.volt |
2A | O2_S7_WR_VOLTAGE | 02 Sensor 7 WR Lambda Voltage | Unit.volt |
2B | O2_S8_WR_VOLTAGE | 02 Sensor 8 WR Lambda Voltage | Unit.volt |
2C | COMMANDED_EGR | Commanded EGR | Unit.percent |
2D | EGR_ERROR | EGR Error | Unit.percent |
2E | EVAPORATIVE_PURGE | Commanded Evaporative Purge | Unit.percent |
2F | FUEL_LEVEL | Fuel Level Input | Unit.percent |
30 | WARMUPS_SINCE_DTC_CLEAR | Number of warm-ups since codes cleared | Unit.count |
31 | DISTANCE_SINCE_DTC_CLEAR | Distance traveled since codes cleared | Unit.kilometer |
32 | EVAP_VAPOR_PRESSURE | Evaporative system vapor pressure | Unit.pascal |
33 | BAROMETRIC_PRESSURE | Barometric Pressure | Unit.kilopascal |
34 | O2_S1_WR_CURRENT | 02 Sensor 1 WR Lambda Current | Unit.milliampere |
35 | O2_S2_WR_CURRENT | 02 Sensor 2 WR Lambda Current | Unit.milliampere |
36 | O2_S3_WR_CURRENT | 02 Sensor 3 WR Lambda Current | Unit.milliampere |
37 | O2_S4_WR_CURRENT | 02 Sensor 4 WR Lambda Current | Unit.milliampere |
38 | O2_S5_WR_CURRENT | 02 Sensor 5 WR Lambda Current | Unit.milliampere |
39 | O2_S6_WR_CURRENT | 02 Sensor 6 WR Lambda Current | Unit.milliampere |
3A | O2_S7_WR_CURRENT | 02 Sensor 7 WR Lambda Current | Unit.milliampere |
3B | O2_S8_WR_CURRENT | 02 Sensor 8 WR Lambda Current | Unit.milliampere |
3C | CATALYST_TEMP_B1S1 | Catalyst Temperature: Bank 1 - Sensor 1 | Unit.celsius |
3D | CATALYST_TEMP_B2S1 | Catalyst Temperature: Bank 2 - Sensor 1 | Unit.celsius |
3E | CATALYST_TEMP_B1S2 | Catalyst Temperature: Bank 1 - Sensor 2 | Unit.celsius |
3F | CATALYST_TEMP_B2S2 | Catalyst Temperature: Bank 2 - Sensor 2 | Unit.celsius |
40 | PIDS_C | Supported PIDs [41-60] | BitArray |
41 | STATUS_DRIVE_CYCLE | Monitor status this drive cycle | special |
42 | CONTROL_MODULE_VOLTAGE | Control module voltage | Unit.volt |
43 | ABSOLUTE_LOAD | Absolute load value | Unit.percent |
44 | COMMANDED_EQUIV_RATIO | Commanded equivalence ratio | Unit.ratio |
45 | RELATIVE_THROTTLE_POS | Relative throttle position | Unit.percent |
46 | AMBIANT_AIR_TEMP | Ambient air temperature | Unit.celsius |
47 | THROTTLE_POS_B | Absolute throttle position B | Unit.percent |
48 | THROTTLE_POS_C | Absolute throttle position C | Unit.percent |
49 | ACCELERATOR_POS_D | Accelerator pedal position D | Unit.percent |
4A | ACCELERATOR_POS_E | Accelerator pedal position E | Unit.percent |
4B | ACCELERATOR_POS_F | Accelerator pedal position F | Unit.percent |
4C | THROTTLE_ACTUATOR | Commanded throttle actuator | Unit.percent |
4D | RUN_TIME_MIL | Time run with MIL on | Unit.minute |
4E | TIME_SINCE_DTC_CLEARED | Time since trouble codes cleared | Unit.minute |
4F | unsupported | unsupported | |
50 | MAX_MAF | Maximum value for mass air flow sensor | Unit.grams_per_second |
51 | FUEL_TYPE | Fuel Type | string |
52 | ETHANOL_PERCENT | Ethanol Fuel Percent | Unit.percent |
53 | EVAP_VAPOR_PRESSURE_ABS | Absolute Evap system Vapor Pressure | Unit.kilopascal |
54 | EVAP_VAPOR_PRESSURE_ALT | Evap system vapor pressure | Unit.pascal |
55 | SHORT_O2_TRIM_B1 | Short term secondary O2 trim - Bank 1 | Unit.percent |
56 | LONG_O2_TRIM_B1 | Long term secondary O2 trim - Bank 1 | Unit.percent |
57 | SHORT_O2_TRIM_B2 | Short term secondary O2 trim - Bank 2 | Unit.percent |
58 | LONG_O2_TRIM_B2 | Long term secondary O2 trim - Bank 2 | Unit.percent |
59 | FUEL_RAIL_PRESSURE_ABS | Fuel rail pressure (absolute) | Unit.kilopascal |
5A | RELATIVE_ACCEL_POS | Relative accelerator pedal position | Unit.percent |
5B | HYBRID_BATTERY_REMAINING | Hybrid battery pack remaining life | Unit.percent |
5C | OIL_TEMP | Engine oil temperature | Unit.celsius |
5D | FUEL_INJECT_TIMING | Fuel injection timing | Unit.degree |
5E | FUEL_RATE | Engine fuel rate | Unit.liters_per_hour |
5F | unsupported | unsupported |
Mode 02
Mode 02 commands are the same as mode 01, but are metrics from when the last DTC occurred (the freeze frame). To access them by name, simple prepend DTC_
to the Mode 01 command name.
import obd
obd.commands.RPM # the Mode 01 command
# vs.
obd.commands.DTC_RPM # the Mode 02 command
Mode 03
Mode 03 contains a single command GET_DTC
which requests all diagnostic trouble codes from the vehicle. The response will contain the codes themselves, as well as a description (if python-OBD has one). See the DTC Responses section for more details.
PID | Name | Description | Response Value |
---|---|---|---|
N/A | GET_DTC | Get Diagnostic Trouble Codes | special |
Mode 04
PID | Name | Description | Response Value |
---|---|---|---|
N/A | CLEAR_DTC | Clear DTCs and Freeze data | N/A |
Mode 06
WARNING: mode 06 is experimental. While it passes software tests, it has not been tested on a real vehicle. Any debug output for this mode would be greatly appreciated.
Mode 06 commands are used to monitor various test results from the vehicle. All commands in this mode return the same datatype, as described in the Monitor Response section. Currently, mode 06 commands are only implemented for CAN protocols (ISO 15765-4).
PID | Name | Description | Response Value |
---|---|---|---|
00 | MIDS_A | Supported MIDs [01-20] | BitArray |
01 | MONITOR_O2_B1S1 | O2 Sensor Monitor Bank 1 - Sensor 1 | monitor |
02 | MONITOR_O2_B1S2 | O2 Sensor Monitor Bank 1 - Sensor 2 | monitor |
03 | MONITOR_O2_B1S3 | O2 Sensor Monitor Bank 1 - Sensor 3 | monitor |
04 | MONITOR_O2_B1S4 | O2 Sensor Monitor Bank 1 - Sensor 4 | monitor |
05 | MONITOR_O2_B2S1 | O2 Sensor Monitor Bank 2 - Sensor 1 | monitor |
06 | MONITOR_O2_B2S2 | O2 Sensor Monitor Bank 2 - Sensor 2 | monitor |
07 | MONITOR_O2_B2S3 | O2 Sensor Monitor Bank 2 - Sensor 3 | monitor |
08 | MONITOR_O2_B2S4 | O2 Sensor Monitor Bank 2 - Sensor 4 | monitor |
09 | MONITOR_O2_B3S1 | O2 Sensor Monitor Bank 3 - Sensor 1 | monitor |
0A | MONITOR_O2_B3S2 | O2 Sensor Monitor Bank 3 - Sensor 2 | monitor |
0B | MONITOR_O2_B3S3 | O2 Sensor Monitor Bank 3 - Sensor 3 | monitor |
0C | MONITOR_O2_B3S4 | O2 Sensor Monitor Bank 3 - Sensor 4 | monitor |
0D | MONITOR_O2_B4S1 | O2 Sensor Monitor Bank 4 - Sensor 1 | monitor |
0E | MONITOR_O2_B4S2 | O2 Sensor Monitor Bank 4 - Sensor 2 | monitor |
0F | MONITOR_O2_B4S3 | O2 Sensor Monitor Bank 4 - Sensor 3 | monitor |
10 | MONITOR_O2_B4S4 | O2 Sensor Monitor Bank 4 - Sensor 4 | monitor |
gap | |||
20 | MIDS_B | Supported MIDs [21-40] | BitArray |
21 | MONITOR_CATALYST_B1 | Catalyst Monitor Bank 1 | monitor |
22 | MONITOR_CATALYST_B2 | Catalyst Monitor Bank 2 | monitor |
23 | MONITOR_CATALYST_B3 | Catalyst Monitor Bank 3 | monitor |
24 | MONITOR_CATALYST_B4 | Catalyst Monitor Bank 4 | monitor |
gap | |||
31 | MONITOR_EGR_B1 | EGR Monitor Bank 1 | monitor |
32 | MONITOR_EGR_B2 | EGR Monitor Bank 2 | monitor |
33 | MONITOR_EGR_B3 | EGR Monitor Bank 3 | monitor |
34 | MONITOR_EGR_B4 | EGR Monitor Bank 4 | monitor |
35 | MONITOR_VVT_B1 | VVT Monitor Bank 1 | monitor |
36 | MONITOR_VVT_B2 | VVT Monitor Bank 2 | monitor |
37 | MONITOR_VVT_B3 | VVT Monitor Bank 3 | monitor |
38 | MONITOR_VVT_B4 | VVT Monitor Bank 4 | monitor |
39 | MONITOR_EVAP_150 | EVAP Monitor (Cap Off / 0.150\") | monitor |
3A | MONITOR_EVAP_090 | EVAP Monitor (0.090\") | monitor |
3B | MONITOR_EVAP_040 | EVAP Monitor (0.040\") | monitor |
3C | MONITOR_EVAP_020 | EVAP Monitor (0.020\") | monitor |
3D | MONITOR_PURGE_FLOW | Purge Flow Monitor | monitor |
gap | |||
40 | MIDS_C | Supported MIDs [41-60] | BitArray |
41 | MONITOR_O2_HEATER_B1S1 | O2 Sensor Heater Monitor Bank 1 - Sensor 1 | monitor |
42 | MONITOR_O2_HEATER_B1S2 | O2 Sensor Heater Monitor Bank 1 - Sensor 2 | monitor |
43 | MONITOR_O2_HEATER_B1S3 | O2 Sensor Heater Monitor Bank 1 - Sensor 3 | monitor |
44 | MONITOR_O2_HEATER_B1S4 | O2 Sensor Heater Monitor Bank 1 - Sensor 4 | monitor |
45 | MONITOR_O2_HEATER_B2S1 | O2 Sensor Heater Monitor Bank 2 - Sensor 1 | monitor |
46 | MONITOR_O2_HEATER_B2S2 | O2 Sensor Heater Monitor Bank 2 - Sensor 2 | monitor |
47 | MONITOR_O2_HEATER_B2S3 | O2 Sensor Heater Monitor Bank 2 - Sensor 3 | monitor |
48 | MONITOR_O2_HEATER_B2S4 | O2 Sensor Heater Monitor Bank 2 - Sensor 4 | monitor |
49 | MONITOR_O2_HEATER_B3S1 | O2 Sensor Heater Monitor Bank 3 - Sensor 1 | monitor |
4A | MONITOR_O2_HEATER_B3S2 | O2 Sensor Heater Monitor Bank 3 - Sensor 2 | monitor |
4B | MONITOR_O2_HEATER_B3S3 | O2 Sensor Heater Monitor Bank 3 - Sensor 3 | monitor |
4C | MONITOR_O2_HEATER_B3S4 | O2 Sensor Heater Monitor Bank 3 - Sensor 4 | monitor |
4D | MONITOR_O2_HEATER_B4S1 | O2 Sensor Heater Monitor Bank 4 - Sensor 1 | monitor |
4E | MONITOR_O2_HEATER_B4S2 | O2 Sensor Heater Monitor Bank 4 - Sensor 2 | monitor |
4F | MONITOR_O2_HEATER_B4S3 | O2 Sensor Heater Monitor Bank 4 - Sensor 3 | monitor |
50 | MONITOR_O2_HEATER_B4S4 | O2 Sensor Heater Monitor Bank 4 - Sensor 4 | monitor |
gap | |||
60 | MIDS_D | Supported MIDs [61-80] | BitArray |
61 | MONITOR_HEATED_CATALYST_B1 | Heated Catalyst Monitor Bank 1 | monitor |
62 | MONITOR_HEATED_CATALYST_B2 | Heated Catalyst Monitor Bank 2 | monitor |
63 | MONITOR_HEATED_CATALYST_B3 | Heated Catalyst Monitor Bank 3 | monitor |
64 | MONITOR_HEATED_CATALYST_B4 | Heated Catalyst Monitor Bank 4 | monitor |
gap | |||
71 | MONITOR_SECONDARY_AIR_1 | Secondary Air Monitor 1 | monitor |
72 | MONITOR_SECONDARY_AIR_2 | Secondary Air Monitor 2 | monitor |
73 | MONITOR_SECONDARY_AIR_3 | Secondary Air Monitor 3 | monitor |
74 | MONITOR_SECONDARY_AIR_4 | Secondary Air Monitor 4 | monitor |
gap | |||
80 | MIDS_E | Supported MIDs [81-A0] | BitArray |
81 | MONITOR_FUEL_SYSTEM_B1 | Fuel System Monitor Bank 1 | monitor |
82 | MONITOR_FUEL_SYSTEM_B2 | Fuel System Monitor Bank 2 | monitor |
83 | MONITOR_FUEL_SYSTEM_B3 | Fuel System Monitor Bank 3 | monitor |
84 | MONITOR_FUEL_SYSTEM_B4 | Fuel System Monitor Bank 4 | monitor |
85 | MONITOR_BOOST_PRESSURE_B1 | Boost Pressure Control Monitor Bank 1 | monitor |
86 | MONITOR_BOOST_PRESSURE_B2 | Boost Pressure Control Monitor Bank 1 | monitor |
gap | |||
90 | MONITOR_NOX_ABSORBER_B1 | NOx Absorber Monitor Bank 1 | monitor |
91 | MONITOR_NOX_ABSORBER_B2 | NOx Absorber Monitor Bank 2 | monitor |
gap | |||
98 | MONITOR_NOX_CATALYST_B1 | NOx Catalyst Monitor Bank 1 | monitor |
99 | MONITOR_NOX_CATALYST_B2 | NOx Catalyst Monitor Bank 2 | monitor |
gap | |||
A0 | MIDS_F | Supported MIDs [A1-C0] | BitArray |
A1 | MONITOR_MISFIRE_GENERAL | Misfire Monitor General Data | monitor |
A2 | MONITOR_MISFIRE_CYLINDER_1 | Misfire Cylinder 1 Data | monitor |
A3 | MONITOR_MISFIRE_CYLINDER_2 | Misfire Cylinder 2 Data | monitor |
A4 | MONITOR_MISFIRE_CYLINDER_3 | Misfire Cylinder 3 Data | monitor |
A5 | MONITOR_MISFIRE_CYLINDER_4 | Misfire Cylinder 4 Data | monitor |
A6 | MONITOR_MISFIRE_CYLINDER_5 | Misfire Cylinder 5 Data | monitor |
A7 | MONITOR_MISFIRE_CYLINDER_6 | Misfire Cylinder 6 Data | monitor |
A8 | MONITOR_MISFIRE_CYLINDER_7 | Misfire Cylinder 7 Data | monitor |
A9 | MONITOR_MISFIRE_CYLINDER_8 | Misfire Cylinder 8 Data | monitor |
AA | MONITOR_MISFIRE_CYLINDER_9 | Misfire Cylinder 9 Data | monitor |
AB | MONITOR_MISFIRE_CYLINDER_10 | Misfire Cylinder 10 Data | monitor |
AC | MONITOR_MISFIRE_CYLINDER_11 | Misfire Cylinder 11 Data | monitor |
AD | MONITOR_MISFIRE_CYLINDER_12 | Misfire Cylinder 12 Data | monitor |
gap | |||
B0 | MONITOR_PM_FILTER_B1 | PM Filter Monitor Bank 1 | monitor |
B1 | MONITOR_PM_FILTER_B2 | PM Filter Monitor Bank 2 | monitor |
Mode 07
The return value will be encoded in the same structure as the Mode 03 GET_DTC
command.
PID | Name | Description | Response Value |
---|---|---|---|
N/A | GET_CURRENT_DTC | Get DTCs from the current/last driving cycle | special |
Mode 09
WARNING: mode 09 is experimental. While it has been tested on a hardware simulator, only a subset of the supported commands have (00-06) been tested. Any debug output for this mode, especially for the untested PIDs, would be greatly appreciated.
PID | Name | Description | Response Value |
---|---|---|---|
00 | PIDS_9A | Supported PIDs [01-20] | BitArray |
01 | VIN_MESSAGE_COUNT | VIN Message Count | Unit.count |
02 | VIN | Vehicle Identification Number | string |
03 | CALIBRATION_ID_MESSAGE_COUNT | Calibration ID message count for PID 04 | Unit.count |
04 | CALIBRATION_ID | Calibration ID | string |
05 | CVN_MESSAGE_COUNT | CVN Message Count for PID 06 | Unit.count |
06 | CVN | Calibration Verification Numbers | hex string |
07 | PERF_TRACKING_MESSAGE_COUNT | Performance tracking message count | TODO |
08 | PERF_TRACKING_SPARK | In-use performance tracking (spark ignition) | TODO |
09 | ECU_NAME_MESSAGE_COUNT | ECU Name Message Count for PID 0A | TODO |
0a | ECU_NAME | ECU Name | TODO |
0b | PERF_TRACKING_COMPRESSION | In-use performance tracking (compression ignition) | TODO |