Mode AT - AT Commands
AT commands are used to configure and control the ELM327 adapter.
- class obdii.modes.ModeAT[source]
Bases:
GroupCommandsAT Commands
- 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
- 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_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_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)
- STANDARD_SEARCH = <Command Mode.AT SS STANDARD_SEARCH>
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_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
- 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
- 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