Mode AT - AT Commands

AT commands are used to configure and control the ELM327 adapter.

class obdii.modes.ModeAT[source]

Bases: GroupCommands

AT Commands

REPEAT = <Command Mode.NONE  REPEAT>

Repeat the last AT or OBD command performed

SET_BAUDRATE_DIVISOR = <Command Mode.AT <Template "BRD {hh}" ['hh']> SET_BAUDRATE_DIVISOR>

Try to set the RS232 baud rate divisor where the rate in kbps is 4000 divided by hh, with automatic fallback on failure

SET_BAUDRATE_TIMEOUT = <Command Mode.AT <Template "BRT {hh}" ['hh']> SET_BAUDRATE_TIMEOUT>

Set the baud rate handshake timeout, where the delay is hh multiplied by 5.0ms (00 selects the maximum timeout)

RESET_DEFAULTS = <Command Mode.AT D RESET_DEFAULTS>

Restore all settings, including protocol, headers, filters, masks and timers to their factory default values

ECHO_OFF = <Command Mode.AT E0 ECHO_OFF>

Disable echoing of characters received on the RS232 port back to the host computer

ECHO_ON = <Command Mode.AT E1 ECHO_ON>

Enable echoing of characters received on the RS232 port back to the host computer

FORGET_EVENTS = <Command Mode.AT FE FORGET_EVENTS>

Clear internal event flags, such as fatal CAN errors or low voltage resets, that may block protocol searches

VERSION_ID = <Command Mode.AT I VERSION_ID>

Display the device identification string and firmware version

LINEFEED_OFF = <Command Mode.AT L0 LINEFEED_OFF>

Disable sending of a linefeed character after each carriage return

LINEFEED_ON = <Command Mode.AT L1 LINEFEED_ON>

Enable sending of a linefeed character after each carriage return

LOWPOWER = <Command Mode.AT LP LOWPOWER>

Enter low power standby mode, reducing power consumption until awakened by activity or reset

MEMORY_OFF = <Command Mode.AT M0 MEMORY_OFF>

Disable the automatic saving of the last valid OBD protocol used

MEMORY_ON = <Command Mode.AT M1 MEMORY_ON>

Enable the automatic saving of the last valid OBD protocol used to non-volatile memory

READ_STORED = <Command Mode.AT RD READ_STORED>

Retrieve the single byte of data previously stored in the non-volatile memory

SAVE_DATA = <Command Mode.AT <Template "SD {hh}" ['hh']> SAVE_DATA>

Store a single byte of data hh in non-volatile memory that will persist through power cycles

RESET_SOFT = <Command Mode.AT WS RESET_SOFT>

Perform a software reset restoring defaults while preserving baud rate settings

RESET = <Command Mode.AT Z RESET>

Performs a complete hardware reset, restoring all settings and the default baud rate

DESCRIPTION = <Command Mode.AT @1 DESCRIPTION>

Display the device description string of the ELM327

DEVICE_ID = <Command Mode.AT @2 DEVICE_ID>

Display the stored 12-character device identifier previously programmed with @3, return an error if none is found

STORE_DEVICE_ID = <Command Mode.AT <Template "@3 {cccccccccccc}" ['cccccccccccc']> STORE_DEVICE_ID>

Permanently store a 12-character device identifier in memory that cannot be altered once set

PROG_PARAM_OFF = <Command Mode.AT <Template "PP {hh} OFF" ['hh']> PROG_PARAM_OFF>

Disable the specified hh Programmable Parameter, reverting it to its factory default

PROG_PARAMS_OFF = <Command Mode.AT PP FF OFF PROG_PARAMS_OFF>

Disable all Programmable Parameters and reverts them to factory defaults

PROG_PARAM_ON = <Command Mode.AT <Template "PP {hh} ON" ['hh']> PROG_PARAM_ON>

Enable the specified hh Programmable Parameter, allowing its assigned value to override the factory default

PROG_PARAMS_ON = <Command Mode.AT PP FF ON PROG_PARAMS_ON>

Enable all Programmable Parameters at the same time

PROG_SET_PARAM = <Command Mode.AT <Template "PP {hh} SV {yy}" ['hh', 'yy']> PROG_SET_PARAM>

Assign the value yy to Programmable Parameter hh, the value takes effect only after the parameter is enabled with PP hh ON

PROG_SUMMARY = <Command Mode.AT PPS PROG_SUMMARY>

Display a summary of all Programmable Parameters, showing their values and whether they are enabled

CALIBRATE_VOLTAGE = <Command Mode.AT <Template "CV {dddd}" ['dddd']> CALIBRATE_VOLTAGE>

Calibrate the ELM327 voltage reading to a specific reference value, where dddd represents dd.dd volts

RESTORE_VOLTAGE = <Command Mode.AT CV 0000 RESTORE_VOLTAGE>

Restore the ELM327 voltage calibration to the original factory setting

READ_VOLTAGE = <Command Mode.AT RV READ_VOLTAGE>

Read the current input voltage at pin 2 and converts it to a decimal string

IGNITION_LEVEL = <Command Mode.AT IGN IGNITION_LEVEL>

Read and report the logic level of the ignition monitor input at pin 15 (IgnMon), return ON for high and OFF for low

LONG_MESSAGES_ON = <Command Mode.AT AL LONG_MESSAGES_ON>

Allow sending 8 byte messages and receiving unlimited length messages, bypassing the standard 7 byte limit

ACTIVITY_MONITOR_COUNT = <Command Mode.AT AMC ACTIVITY_MONITOR_COUNT>

Display the internal counter representing the time since OBD activity was last detected

ACTIVITY_MONITOR_TIMEOUT = <Command Mode.AT <Template "AMT {hh}" ['hh']> ACTIVITY_MONITOR_TIMEOUT>

Set the Activity Monitor timeout period to hh before low power mode is triggered

AUTO_RECEIVE = <Command Mode.AT AR AUTO_RECEIVE>

Automatically set the ELM327 to receive responses from the correct vehicle address based on the current message headers

ADAP_TIMING_OFF = <Command Mode.AT AT0 ADAP_TIMING_OFF>

Disable Adaptive Timing, forcing the timeout to always match the AT ST setting

ADAP_TIMING_AUTO = <Command Mode.AT AT1 ADAP_TIMING_AUTO>

Enable Adaptive Timing (default), automatically adjusts timeouts based on vehicle response times

ADAP_TIMING_AGGRESSIVE = <Command Mode.AT AT2 ADAP_TIMING_AGGRESSIVE>

Enable a more aggressive version of Adaptive Timing, adjusting timeouts more quickly for slow-response vehicles

BUFFER_DUMP = <Command Mode.AT BD BUFFER_DUMP>

Dump the content of the 12 byte OBD message buffer, showing the length byte followed by the stored messages

BYPASS_INIT = <Command Mode.AT BI BYPASS_INIT>

Activate the current OBD protocol by bypassing the protocol initialization or handshaking sequence

DESC_PROTOCOL = <Command Mode.AT DP DESC_PROTOCOL>

Display a text description of the current active OBD protocol, indicating ‘AUTO’ if automatic detection is enabled

DESC_PROTOCOL_N = <Command Mode.AT DPN DESC_PROTOCOL_N>

Display the number of the current active OBD protocol, prefixed with a ‘A’ if automatic detection is enabled

FILTER_TRANSMITTER_OFF = <Command Mode.AT FT FILTER_TRANSMITTER_OFF>

Disable any active message filter for received OBD messages

FILTER_TRANSMITTER_ON = <Command Mode.AT <Template "FT {hh}" ['hh']> FILTER_TRANSMITTER_ON>

Enable filtering to only accept messages where the transmitter address matches hh

HEADERS_OFF = <Command Mode.AT H0 HEADERS_OFF>

Disable the display of header bytes in responses

HEADERS_ON = <Command Mode.AT H1 HEADERS_ON>

Enable the display of header bytes, showing full message details including check digits and PCI bytes

IS_PROTOCOL_ACTIVE = <Command Mode.AT IA IS_PROTOCOL_ACTIVE>

Return whether the ELM327 considers the current protocol to be active (connected), returning Y for yes or N for no

MONITOR_ALL = <Command Mode.AT MA MONITOR_ALL>

Continuously monitor and display all messages on the OBD bus without responding, until interrupted via RS232 input

MONITOR_RECEIVER = <Command Mode.AT <Template "MR {hh}" ['hh']> MONITOR_RECEIVER>

Monitor the bus and display only messages sent to the specified receiver address hh, until interrupted via RS232 input

MONITOR_TRANSMITTER = <Command Mode.AT <Template "MT {hh}" ['hh']> MONITOR_TRANSMITTER>

Monitor the bus and display only messages sent by the specified transmitter address hh, until interrupted via RS232 input

LONG_MESSAGES_OFF = <Command Mode.AT NL LONG_MESSAGES_OFF>

Restrict message length to the standard OBD limit of 7 bytes (reverse AT AL)

PROTOCOL_CLOSE = <Command Mode.AT PC PROTOCOL_CLOSE>

Forcibly stop and deactivate the current protocol

RESPONSES_OFF = <Command Mode.AT R0 RESPONSES_OFF>

Disable automatic reception of vehicle responses, allowing commands to be sent blindly

RESPONSES_ON = <Command Mode.AT R1 RESPONSES_ON>

Enable automatic reception and display of vehicle responses (default)

SET_RECEIVE_ADDR = <Command Mode.AT <Template "RA {hh}" ['hh']> SET_RECEIVE_ADDR>

Set the receive address to hh, disabling auto receive and accepting only messages addressed to hh

SPACES_OFF = <Command Mode.AT S0 SPACES_OFF>

Disable space characters insertion in responses

SPACES_ON = <Command Mode.AT S1 SPACES_ON>

Enable space characters insertion between hex bytes in responses for better readability

SET_HEADER_11 = <Command Mode.AT <Template "SH {x}{y}{z}" ['x', 'y', 'z']> SET_HEADER_11>

Set a 3 digit 11 bit CAN identifier (header), leading zeros are added automatically

SET_HEADER = <Command Mode.AT <Template "SH {xx}{yy}{zz}" ['xx', 'yy', 'zz']> SET_HEADER>

Set a 3 byte message header

SET_HEADER_29 = <Command Mode.AT <Template "SH {ww}{xx}{yy}{zz}" ['ww', 'xx', 'yy', 'zz']> SET_HEADER_29>

Set a CAN 29 bit message header using 4 bytes

SET_PROTOCOL = <Command Mode.AT <Template "SP {h}" ['h']> SET_PROTOCOL>

Set the protocol to h and saves it as the new default in EEPROM, if set to 0, select automatic protocol detection

SET_PROTOCOL_AUTO = <Command Mode.AT <Template "SP A{h}" ['h']> SET_PROTOCOL_AUTO>

Set the protocol to h while enabling automatic detection on failure

PROTOCOL_ERASE = <Command Mode.AT SP 00 PROTOCOL_ERASE>

Set the protocol to automatic detection and clear the stored protocol from EEPROM

SET_RECEIVE_ADDR_ALT = <Command Mode.AT <Template "SR {hh}" ['hh']> SET_RECEIVE_ADDR_ALT>

Set the receive address to hh, disabling auto receive and accepting only messages addressed to hh (identical to AT RA)

Use the SAE J1978 standard protocol search sequence for initiating connections

SET_TIMEOUT = <Command Mode.AT <Template "ST {hh}" ['hh']> SET_TIMEOUT>

Set response timeout to hh * 4ms

SET_TESTER_ADDR = <Command Mode.AT <Template "TA {hh}" ['hh']> SET_TESTER_ADDR>

Temporarily set the tester (scan tool) address to hh, overriding the default PP 06 value

TRY_PROTOCOL = <Command Mode.AT <Template "TP {h}" ['h']> TRY_PROTOCOL>

Attempts to use protocol h without saving it to EEPROM

TRY_PROTOCOL_AUTO = <Command Mode.AT <Template "TP A{h}" ['h']> TRY_PROTOCOL_AUTO>

Attempts to use protocol h without saving it to EEPROM while enabling automatic detection on failure

IFR_OFF = <Command Mode.AT IFR0 IFR_OFF>

Disable all In-Frame Responses while not monitoring

IFR_AUTO = <Command Mode.AT IFR1 IFR_AUTO>

Send In-Frame Responses if the message is correct and the ‘K’ bit allows it while not monitoring (default)

IFR_ON = <Command Mode.AT IFR2 IFR_ON>

Always send In-Frame Responses regardless of message errors while not monitoring

IFR_OFF_ALWAYS = <Command Mode.AT IFR4 IFR_OFF_ALWAYS>

Disable all In-Frame Responses, even during monitoring

IFR_AUTO_ALWAYS = <Command Mode.AT IFR5 IFR_AUTO_ALWAYS>

Send In-Frame Responses if the message is correct and the ‘K’ bit allows it

IFR_ON_ALWAYS = <Command Mode.AT IFR6 IFR_ON_ALWAYS>

Always send In-Frame Responses regardless of message errors or monitoring state

IFR_HEADER = <Command Mode.AT IFR H IFR_HEADER>

Use the header’s source byte for the In-Frame Response (default)

IFR_SOURCE = <Command Mode.AT IFR S IFR_SOURCE>

Use the source (tester) address for the In-Frame Response instead of the value in the header

FAST_INIT = <Command Mode.AT FI FAST_INIT>

Performs a fast initiation sequence for ISO 14230-4 KWP, requires protocol 5 to be active

SET_BAUDRATE_10400 = <Command Mode.AT IB 10 SET_BAUDRATE_10400>

Sets the ISO 9141-2 and ISO 14230-4 baud rate to the default of 10400

SET_BAUDRATE_12500 = <Command Mode.AT IB 12 SET_BAUDRATE_12500>

Sets the ISO 9141-2 and ISO 14230-4 baud rate to 12500

SET_BAUDRATE_15625 = <Command Mode.AT IB 15 SET_BAUDRATE_15625>

Sets the ISO 9141-2 and ISO 14230-4 baud rate to 15625

SET_BAUDRATE_4800 = <Command Mode.AT IB 48 SET_BAUDRATE_4800>

Sets the ISO 9141-2 and ISO 14230-4 baud rate to 4800

SET_BAUDRATE_9600 = <Command Mode.AT IB 96 SET_BAUDRATE_9600>

Sets the ISO 9141-2 and ISO 14230-4 baud rate to 9600

SET_ISO_INIT_ADDR = <Command Mode.AT <Template "IIA {hh}" ['hh']> SET_ISO_INIT_ADDR>

Sets the destination address for the ISO 9141-2 or ISO 14230-4 slow (5 baud) initiation sequence, default is $33

KEY_WORDS = <Command Mode.AT KW KEY_WORDS>

Display the two key word bytes received from the ECU during the initiation sequence

KEY_WORD_OFF = <Command Mode.AT KW0 KEY_WORD_OFF>

Disable key word checking, allowing initiation to proceed even if key word values are non-standard

KEY_WORD_ON = <Command Mode.AT KW1 KEY_WORD_ON>

Enable standard key word checking during initiation sequences (default)

SLOW_INIT = <Command Mode.AT SI SLOW_INIT>

Perform a slow initiation sequence for ISO 9141-2 or ISO 14230-4 KWP (5 baud), requires protocol 3 or 4 to be active

SET_WAKEUP = <Command Mode.AT <Template "SW {hh}" ['hh']> SET_WAKEUP>

Set the periodic wakeup messages interval to hh * 20 ms, keeps the ECU connection active, only supported for protocols 3, 4, and 5

SET_WAKEUP_STOP = <Command Mode.AT SW 00 SET_WAKEUP_STOP>

Stop sending periodic wakeup messages

WAKEUP_MESSAGE = <Command Mode.AT <Template "WM {xxxxxxxxxxxx}" ['xxxxxxxxxxxx']> WAKEUP_MESSAGE>

Override the default periodic wakeup message, accepts 1 to 6 bytes

CONFIRMATION_OFF = <Command Mode.AT C0 CONFIRMATION_OFF>

Disable confirmation of CAN message transmission errors, return to the prompt state a little quicker, requires an ELM327 >= 2.3

CONFIRMATION_ON = <Command Mode.AT C1 CONFIRMATION_ON>

Enable confirmation of CAN message transmission errors, requires an ELM327 >= 2.3

FORMAT_AUTO_OFF = <Command Mode.AT CAF0 FORMAT_AUTO_OFF>

Disable CAN automatic formatting, requiring all CAN data bytes to be provided and displayed exactly as sent and received

FORMAT_AUTO_ON = <Command Mode.AT CAF1 FORMAT_AUTO_ON>

Enable CAN automatic formatting, automatically handling PCI bytes, padding, and simplifying CAN send and receive data

CAN_EXT_ADDR_OFF = <Command Mode.AT CEA CAN_EXT_ADDR_OFF>

Turn off CAN extended addressing and restores default receive address

CAN_EXT_ADDR = <Command Mode.AT <Template "CEA {hh}" ['hh']> CAN_EXT_ADDR>

Enable CAN extended addressing by inserting the hh value as the first data byte of all CAN messages that you send

SET_CAN_EXT_ADDR_RX = <Command Mode.AT <Template "CER {hh}" ['hh']> SET_CAN_EXT_ADDR_RX>

Set CAN extended receive address to hh

SET_ID_FILTER = <Command Mode.AT <Template "CF {hhh}" ['hhh']> SET_ID_FILTER>

Set the CAN ID filter to hhh for 11bit identifiers, allowing only matching CAN messages to be received

SET_ID_FILTER_LONG = <Command Mode.AT <Template "CF {hhhhhhhh}" ['hhhhhhhh']> SET_ID_FILTER_LONG>

Set the CAN ID filter to hhhhhhhh for 29bit identifiers, allowing only matching CAN messages to be received

FLOW_CONTROL_OFF = <Command Mode.AT CFC0 FLOW_CONTROL_OFF>

Disable automatic sending of CAN Flow Control and J1939 CTS messages

FLOW_CONTROL_ON = <Command Mode.AT CFC1 FLOW_CONTROL_ON>

Enable automatic sending of CAN Flow Control and J1939 CTS messages

SET_ID_MASK = <Command Mode.AT <Template "CM {hhh}" ['hhh']> SET_ID_MASK>

Set the 11bit CAN ID Mask to hhh where 1 signifies a required bit match, and 0 ignored

SET_ID_MASK_LONG = <Command Mode.AT <Template "CM {hhhhhhhh}" ['hhhhhhhh']> SET_ID_MASK_LONG>

Set the 29bit CAN ID Mask to hhh where 1 signifies a required bit match, and 0 ignored

SET_CAN_PRIORITY = <Command Mode.AT <Template "CP {hh}" ['hh']> SET_CAN_PRIORITY>

Set the 5 most significant bits of a 29bit CAN ID to hh for message priority, default is 18hex

RESET_CAN_ADDR = <Command Mode.AT <Template "CRA" []> RESET_CAN_ADDR>

Reset the CAN receive address filters to their default values

SET_CAN_ADDR = <Command Mode.AT <Template "CRA {hhh}" ['hhh']> SET_CAN_ADDR>

Set the CAN receive address to hhh, adjusting mask and filter to accept only matching 11bit IDs

SET_CAN_ADDR_LONG = <Command Mode.AT <Template "CRA {hhhhhhhh}" ['hhhhhhhh']> SET_CAN_ADDR_LONG>

Set the CAN receive address to hhhhhhhh, adjusting mask and filter to accept only matching 29bit IDs

CAN_STATUS = <Command Mode.AT CS CAN_STATUS>

Display CAN transmit and receive error counts, with ELM327 >= 2.2 also show the current frequency of the signal at the CAN input

SILENT_MONITORING_OFF = <Command Mode.AT CSM0 SILENT_MONITORING_OFF>

Disable CAN silent monitoring, allowing the ELM327 to send ACKs and interact with the bus

SILENT_MONITORING_ON = <Command Mode.AT CSM1 SILENT_MONITORING_ON>

Enable CAN silent monitoring, preventing the ELM327 from sending ACKs or altering bus traffic

SET_TIMER_MULTIPLIER_1 = <Command Mode.AT CTM1 SET_TIMER_MULTIPLIER_1>

Set the timeout multiplier to 1 for all CAN protocols (default)

SET_TIMER_MULTIPLIER_5 = <Command Mode.AT CTM5 SET_TIMER_MULTIPLIER_5>

Set the timeout multiplier to 5 for all CAN protocols

DLC_OFF = <Command Mode.AT D0 DLC_OFF>

Disable display of the CAN Data Length Code

DLC_ON = <Command Mode.AT D1 DLC_ON>

Enable display of the CAN Data Length Code

SET_FLOW_CONTROL_MODE = <Command Mode.AT <Template "FC SM {h}" ['h']> SET_FLOW_CONTROL_MODE>

Set the Flow Control response mode to h, 0 = fully automatic, 1 = user defined, 2 = user defined data

SET_FLOW_CONTROL_HEADER = <Command Mode.AT <Template "FC SH {hhh}" ['hhh']> SET_FLOW_CONTROL_HEADER>

Set the Flow Control CAN header to hhh for 11bit IDs

SET_FLOW_CONTROL_HEADER_LONG = <Command Mode.AT <Template "FC SH {hhhhhhhh}" ['hhhhhhhh']> SET_FLOW_CONTROL_HEADER_LONG>

Set the Flow Control CAN header to hhhhhhhh for 29bit IDs

SET_FLOW_CONTROL_DATA = <Command Mode.AT <Template "FC SD {xxxxxxxxxx}" ['xxxxxxxxxx']> SET_FLOW_CONTROL_DATA>

Set 1-5 bytes for CAN Flow Control messages, used only in Flow Control modes 1 or 2

PROTOCOL_B_BAUDRATE = <Command Mode.AT <Template "PB {xx} {yy}" ['xx', 'yy']> PROTOCOL_B_BAUDRATE>

Set Protocol B parameters xx and yy, overriding PP 2C and PP 2D values for the next initialization without changing stored programmable parameters

RTR_MESSAGE = <Command Mode.AT RTR RTR_MESSAGE>

Send a Remote Transmission Request message which contains no data bytes

VARIABLE_DLC_OFF = <Command Mode.AT V0 VARIABLE_DLC_OFF>

Disable the forcing of variable data lengths for CAN messages (default)

VARIABLE_DLC_ON = <Command Mode.AT V1 VARIABLE_DLC_ON>

Forces the current CAN protocol to use variable data length messages

MONITOR_DM1 = <Command Mode.AT DM1 MONITOR_DM1>

Continuously monitors for J1939 Diagnostic Mode 1 (DM1) messages, including support for multi-segment transport protocols

FORMAT_ELM = <Command Mode.AT JE FORMAT_ELM>

Enable J1939 ELM data format, automatically reversing byte order for PGN requests

FORMAT_HEADER_OFF = <Command Mode.AT JHF0 FORMAT_HEADER_OFF>

Disable J1939 header formatting, displaying the ID information as four separate bytes

FORMAT_HEADER_ON = <Command Mode.AT JHF1 FORMAT_HEADER_ON>

Enable J1939 header formatting, isolating priority bits and grouping PGN information (default)

FORMAT_SAE = <Command Mode.AT JS FORMAT_SAE>

Enable J1939 SAE data format, sending bytes in standard SAE (little-endian) order without reversal

J_SET_TIMER_MULTIPLIER_1 = <Command Mode.AT JTM1 J_SET_TIMER_MULTIPLIER_1>

Sets the J1939 ST timer multiplier to 1

J_SET_TIMER_MULTIPLIER_5 = <Command Mode.AT JTM5 J_SET_TIMER_MULTIPLIER_5>

Sets the J1939 ST timer multiplier to 5

MONITOR_PGN = <Command Mode.AT <Template "MP {hhhh}" ['hhhh']> MONITOR_PGN>

Monitor for J1939 PGN hhhh

MONITOR_PGN_N = <Command Mode.AT <Template "MP {hhhh} {n}" ['hhhh', 'n']> MONITOR_PGN_N>

Monitor for J1939 PGN hhhh, fetching n messages before stopping

MONITOR_PGN_LONG = <Command Mode.AT <Template "MP {hhhhhh}" ['hhhhhh']> MONITOR_PGN_LONG>

Monitor for J1939 PGN hhhhhh

MONITOR_PGN_LONG_N = <Command Mode.AT <Template "MP {hhhhhh} {n}" ['hhhhhh', 'n']> MONITOR_PGN_LONG_N>

Monitor for J1939 PGN hhhhhh, fetching n messages before stopping