This page contains two lists of ELM327 commands, OBDII emission diagnostics commands, and 1996-1997 Volvo 850 specific keyword D3 B0 (KWPD3B0) commands:
elm327_volvo_850_scan_all.txt, which makes a thorough scan of a USA 1997 Volvo 850 T5. This is referred to as the "full blown" or "all" scan.
elm327_volvo_850_scan_combi_and_all_dtcs.txt, which scans the basic COMBI data -- ECU 51 B9xx and A5xx values -- as well as all the DTCs (for a USA 1997 Volvo 850 T5). This is referred to as the "quick summary" or "quick" scan.
If the ELM327 "ATSR 13" (or "ATRA 13") command is not used with my ELM327 clone, then the corresponding non-00-padded AExx, B9xx, and A0 commands, with associated "ATSH 83 xx 13" and "ATSH 82 xx 13" commands, can be sent to the ELM327 and the ELM327 will transform them into KWPD3B0 requests which look exactly like the KWPD3B0 requests sent by Vol-FCR and Brick-Diag Free. However, the ELM327 does not display the car's responses immediately. Instead, when neither "ATSR 13" nor "ATRA 13" is used, the ELM327 ATBD command has to be used to display the first response (or a 12-byte portion of it).
It was not until late 2013-10, over a year after discovering the 00-padding trick (that works with certain ECUs), that I learned about the "ATRA 13" command, and started the process of changing this site to use it. Then on 2018-03-22, I replaced the "ATRA 13" on this page with the more useful "ATSR 13".
This page will be retained a) as a historical record of the 00-padding examples that work with the 1996-1997 Volvo 850, and b) as 850-specific examples which require less switching of the header via the "ATSH 8y xx 13" commands. But future references elsewhere on this site (eg, at ELM327 Commands to Scan Volvo 850 and SVC70) will not use the 00-padding trick for AExx00, B9xx00, and A00000, since those do not work for the 1998 S70 / V70 / XC70 ECUs 51, 58, 2E & 2F (and probably some of the other 1997-1998 S/V/C70 ECUs).The following elm327_volvo_850_scan_all.txt list contains the commands to perform a fairly complete scan of a USA 1997 Volvo 850 T5. It should also be useful for your 1996-1997 Volvo 850.
If you copy from:
-- Begin elm327_volvo_850_scan_all.txt.
to:
-- End elm327_volvo_850_scan_all.txt.
then save that into a text file on your local machine,
it can serve at the very minimum as a useful "cheat sheet" of commands.
You can manually issue the commands/requests to the ELM327 using STNterm, Hyperterminal, Realterm, Tera Term, ZTerm, PuTTY, ptelnet, ckermit, etc. Or you could experiment with one of the terminal emulator's Send File mechanism to try and get the scan at least somewhat automated, assuming:
So far I've experimented with Realterm and have discovered several different ways to communicate with the Volvo 850 via Realterm and the ELM327. The most useful are:
The PutString mechanism in the ActiveX interface. This is the most versatile, since it sends quickly, doesn't generate any unexpected characters (ie, unexpected linefeeds), and when driven by a program that can accurately delay before issuing the next PutString, can be the workhorse of an automated Volvo 850 scan.
The Send ASCII mechanism. This can be used from either the ActiveX interface or from a WinXP CMD batch file, as long as the "Canned" strings are loaded beforehand. This approach is useful to lessen typing, but it doesn't allow the automation of sending many commands for several minutes.
Interactive typing, just like you can do with Hyperterminal or any other terminal emulator.
The following was originally useful, but is no longer recommended, due primarily to the a) STOPPED message, and b) connection problems mentioned below:
The Send File mechanism. I originally made a lot of progress with this approach. But it's noticeably slower than the PutString method, and I haven't been able to eliminate a stray linefeed that is getting generated (apparently from Realterm) in an untimely manner to cause the ELM327 to stop its present operation and generate a STOPPED message.
I have not been successful at using Realterm's "Send File" mechanism alone to establish a connection when issuing the ATSI command to explicitly perform an ISO9141-2 Slow Init or when issuing any OBDII or KWPD3B0 command which implicitly causes the ELM327 to attempt a Slow Init (usually a 0100, AE0100, or AE01 command). However, the ATSI, 0100, etc can successfully be issued manually in Realterm's terminal pane or, better yet, can successfully be issued via Realterm's "Send ASCII" mechanism. You can even use the "Send ASCII" mechanism at a specific time during a "Send File" operation in order to force the connection to succeed.
Even though the "Send File" mechanism does lessen typing, it is vastly inferior to using a program to control the timing of sequences of PutString calls.
Do not type the comments which are included in (parentheses) on the right side of the lines with ELM327 commands or data.
You do not need to type the comments that begin the line with hyphens (----) unless you absolutely want to. Otherwise, they'll generate unsightly question marks in your log. Only include the comments if you need them for explanation, or if they are getting automatically sent when the PutString or "Send File" mechanism is being used.
The ATSI and two following ATBD commands are optional.
To make it easier on yourself, just review volvo850diag (online docs). That page describes, volvo850diag, in which an HTML GUI, displayed by Internet Explorer and driven by Javascript (which has a timer mechanism), is controlled by you, using the volvo850diag buttons, to make Realterm send groups of ELM327 AT commands, OBDII emission diagnostic commands, and KWPD3B0 commands in a reliably throttled, well-timed manner, so that the Volvo 850 and ELM327 have enough time to finish responding.
volvo850diag uses Realterm's PutString mechanism very heavily, preloads the most likely commands that might be used by Realterm's "Send ASCII" mechanism to send individual commands, is very compatible with interspersing interactive input in Realterm yet eliminates (almost all) of the need to type interactively, and still allows use of Realterm's "Send File" button [though the latter's use is not recommended].
volvo850diag runs on a Windows (eg, WinXP/Win7/Win10) system.
volvo850diag is free and open source. It uses a Javascript file that can be customized by Volvo owners to add, delete, or rearrange commands, even if they have no prior Javascript programming experience.
volvo850diag should be considered if you want to avoid all the interactive typing of commands, or if you want to see examples of programming automated scans of the Volvo 850 with various combinations of ELM327 AT, OBDII, and KWPD3B0 commands, along with the delays necessary so it all flows well.
Click volvo850diag.zip to download the latest distribution. It gives you a thorough introduction to volvo850diag and explains how to install and configure volvo850diag, Realterm, IE, and any ELM327 drivers which might be necessary.
Use xiaotec "850 OBD-II" Android app to entirely avoid using either this page or volvo850diag.
Read
my evaluation of the "850 OBD-II" Android app.
Acquire an Android phone, tablet, etc;
else setup an Android emulator.
Download
xiaotec "850 OBD-II" app from Google Play.
Perform a little setup to get your ELM327 tool talking with "850 OBD-II" app.
Short and sweet.
-------------------------------------------------------------------------------
--
-- Begin elm327_volvo_850_scan_all.txt.
--
-- Scan (most) all Volvo 850 COMBI, SRS, ABS, AW 50-42, and Power Seats data
-- that I know how to access via KWPD3B0 *and* which is presently interpreted
-- by kwpd3b0_interpreter.html (or which might be interpreted sometime in
-- the future).
--
-- Then scan the essential Volvo 850 OBDII emission diagnostics data.
--
-------------------------------------------------------------------------------
---- Initial one-time setup for an ELM327 to establish the ISO9141-2 protocol.
-------------------------------------------------------------------------------
---- This first section only needs to be done if it never once has been done
---- for your ELM327 device, or if the protocol has been changed from
---- "ISO 9141-2" while working with other vehicles or while attempting to
---- connect with an ECU which does not exist on your vehicle.
----
---- A protocol change might have been forced by you or some software which
---- you are running, or the protocol might have been automatically switched
---- by the ELM327 device itself after either a successful or a failed
---- connection.
----
---- Some of you will be able to successfully substitute ATSP 3A for the
---- ATSP 3. That's especially the case if your vehicle contains *all* the
---- ECUs whose connection is attempted. However, many of you must use the
---- more restrictive ATSP 3 command which tries only "ISO 9141-2" connections.
----
---- Hint: I strongly suggest using ATSP 3 the very first time you use your
---- ELM327 device with your Volvo 850. That will eliminate some
---- unpredictable variables. Later, you can experiment with trying
---- ATSP 3A (to allow for greater flexibility when working with
---- additional vehicles).
-------------------------------------------------------------------------------
ATZ
ATL1 (if LF not inserted by the terminal emulator)
ATE1
ATI
AT@1
ATSP 3 (force "ISO 9141-2" as protocol)
ATDP
ATPPS
-------------------------------------------------------------------------------
---- Simple test to verify emission diagnostics are working somewhat
---- and to read the emission diagnostic DTCs and pending DTCs.
-------------------------------------------------------------------------------
ATZ
ATL1 (if LF not inserted by the terminal emulator)
ATE1 (if not the default; some terminal emulators require ATE0)
ATI (optional, if you already know it)
AT@1 (optional, if you already know it)
ATSP 3 (optional, if you already know protocol is "ISO 9141-2")
ATDP (optional, if you already know protocol is "ISO 9141-2")
ATPPS (optional, if no ATPP changes made recently)
ATIGN (optional, in case needed to understand PP 0E, etc)
ATSW CC (optional -- changes Keepalive timer to ~4 seconds)
ATS1 (if not the default -- ELM327 separates hex values with a space)
0100
0101
03
07
---- Check the battery voltage. Two ATRVs are required after powering up
---- some ELM327 clones. First one says 28.3 V. Second one is real voltage.
ATRV
ATRV
-------------------------------------------------------------------------------
---- ATPC init sequence for ECUs 51/58/01/6E/2E/2F.
----
---- Must be done at least once before beginning to talk to this ECU group
---- (but *after* the above ATZ init sequence to reestablish defaults, then
---- perform ATSP 3 and ATSW CC).
-------------------------------------------------------------------------------
ATPC
ATH1
ATAL
ATKW0
ATSR 13 (**very** important to ensure immediate responses)
-------------------------------------------------------------------------------
---- Read COMBI data (assuming ATH1 thru ATSR 13 already done).
-------------------------------------------------------------------------------
ATPC
ATIIA 51
ATWM 82 51 13 A1
---- Slow Init ECU 51.
ATSI (optional)
ATBD (optional)
ATBD (optional)
---- Read ECU 51 DTC data.
ATSH 84 51 13
AE0100 (DTCs)
AE0200 (DTC inactivity counters)
AE0500 (seems to be a list of some previous COMBI DTCs, ordered by DTC #)
---- Read ECU 51 B9 stored data.
B9F000
B90100
B90300
B90400
B90500
B90600
B90700
B90800
B90900
B90A00
B90B00
B90C00
B90D00
B90E00 (not available on some early 850)
---- Read ECU 51 A5 live data.
A50101
A50201
A50301
A50401
A50501
A50601
A50701
A50801
A50901
---- Read ECU 51 AD freeze frame data (one for each DTC listed via AE0100).
AD0100 (optional, use if DTC 01 is present)
AD0200 (optional, use if DTC 02 is present)
AD0300 (optional, use if DTC 03 is present)
AD0400 (optional, use if DTC 04 is present)
AD0500 (optional, use if DTC 05 is present)
AD0600 (optional, use if DTC 06 is present)
AD0700 (optional, use if DTC 07 is present)
AD0800 (optional, use if DTC 08 is present)
AD0900 (optional, use if DTC 09 is present)
AD0A00 (optional, use if DTC 0A is present)
AD0B00 (optional, use if DTC 0B is present)
AD0C00 (optional, use if DTC 0C is present)
AD0D00 (optional, use if DTC 0D is present)
AD0E00 (optional, use if DTC 0E is present)
AD1100 (optional, this seems to never manifest as a DTC)
ADxx00 (where xx = DTC #, ie, 01-0E, 10-11, 20)
-------------------------------------------------------------------------------
---- Read SRS data (assuming ATH1 thru ATSR 13 already done for another ECU).
-------------------------------------------------------------------------------
ATPC
ATIIA 58
ATWM 82 58 13 A1
---- Slow Init ECU 58.
ATSI (optional)
ATBD (optional)
ATBD (optional)
---- Read ECU 58 DTCs.
ATSH 84 58 13
AE0100
---- Read ECU 58 B9 stored data.
B9F000
B9F100
---- Read ECU 58 A5 live data.
A50101
A50201
A50301
A50401
A5xx01 (where xx = 00, 81-FF produce error 80, so might be allowed sometime)
---- Read ECU 58 AD freeze frame data (one for each DTC listed via AE0100).
AD0200 (optional, use if DTC 02 is present)
AD0300 (optional, use if DTC 03 is present)
AD0400 (optional, use if DTC 04 is present)
AD0700 (optional, use if DTC 07 is present)
AD0B00 (optional, use if DTC 0B is present)
AD0E00 (optional, use if DTC 0E is present)
AD0F00 (optional, use if DTC 0F is present)
AD5200 (optional, use if DTC 52 is present)
ADxx00 (where xx = any DTC which is present and xx = 01-17 or 41-57)
-------------------------------------------------------------------------------
---- Read ABS data (assuming ATH1 thru ATSR 13 already done for another ECU).
-------------------------------------------------------------------------------
ATPC
ATIIA 01
ATWM 82 01 13 A1
---- Slow Init ECU 01.
ATSI (optional)
ATBD (optional)
ATBD (optional)
---- Read ECU 01 DTC data.
ATSH 83 01 13
AE01
AE02
AE03
---- Read ECU 01 B9 stored data.
B9F0
B90F
B9xx (where xx = 0D, 70, 72 produce error 80, so might be allowed sometime)
---- Read ECU 01 A5 live data.
ATSH 84 01 13
A50101
A50701
A50901
A51001
A5F001
---- Read ECU 01 AD freeze frame data (one for each DTC listed via AE01).
AD1000 (optional, use if DTC 10 is present)
AD1100 (optional, use if DTC 11 is present)
AD1300 (optional, use if DTC 13 is present)
AD2000 (optional, use if DTC 20 is present)
AD2100 (optional, use if DTC 21 is present)
AD2300 (optional, use if DTC 23 is present)
AD3000 (optional, use if DTC 30 is present)
AD3100 (optional, use if DTC 31 is present)
AD3300 (optional, use if DTC 33 is present)
AD4000 (optional, use if DTC 40 is present)
AD4100 (optional, use if DTC 41 is present)
AD4300 (optional, use if DTC 43 is present)
AD6400 (optional, use if DTC 64 is present)
AD6500 (optional, use if DTC 65 is present)
AD6600 (optional, use if DTC 66 is present)
AD6700 (optional, use if DTC 67 is present)
AD7000 (optional, use if DTC 70 is present)
AD7200 (optional, use if DTC 72 is present)
AD7500 (optional, use if DTC 75 is present)
AD8000 (optional, use if DTC 80 is present)
ADxx00 (where xx = any DTC which is present)
--------------------------------------------------------------------------------
---- Read AW 50-42 data (assuming ATH1 thru ATSR 13 already done for other ECU).
--------------------------------------------------------------------------------
ATPC
ATIIA 6E
ATWM 82 6E 13 A1
---- Slow Init ECU 6E.
ATSI (optional)
ATBD (optional)
ATBD (optional)
---- Read ECU 6E DTC data.
ATSH 83 6E 13
AE01
AE02
---- Read ECU 6E B9 stored data.
B9F0
B900
B9C0
B9C1
B9C2
B9C3
---- Read ECU 6E A5 live data.
ATSH 84 6E 13
A50001
A50101 (Gear Shift Position and its Sensors)
A50201 (Brakes Status)
A50301 (Engine RPM [derived from ECM's load signal])
A50401
A50501 (ECONOMY vs. SPORT vs. WINTER)
A50601
A50701
A50801
A50901
A50A01
A50B01 (Battery Voltage)
A50C01 (ATF Temp)
A50D01
A50E01 ("Throttle position voltage" in xiaotec "850 OBD-II" app)
A50F01 ("Torque signal" in xiaotec "850 OBD-II" app)
A51001 (Transmission Input RPM [after torque converter])
A51201
A54001 (Dash "arrow" warning light status [from jonesrh analysis])
A54101 (Dash "arrow" warning light status [in xiaotec "850 OBD-II" app])
A54201
A54301
A54401
A54501
A54601
A54701
A54801 (Throttle Position %)
A57001
A57101
A57201 (N/P vs. R)
---- Read ECU 6E AD freeze frame data (one for each DTC listed via AE01).
AD0800 (optional, use if DTC 08 is present)
AD1300 (optional, use if DTC 13 is present)
AD1700 (optional, use if DTC 17 is present)
AD1800 (optional, use if DTC 18 is present)
AD1C00 (optional, use if DTC 1C is present)
AD2F00 (optional, use if DTC 2F is present)
AD3500 (optional, use if DTC 35 is present)
AD3600 (optional, use if DTC 36 is present)
AD3900 (optional, use if DTC 39 is present)
AD3F00 (optional, use if DTC 3F is present)
AD5000 (optional, use if DTC 50 is present)
ADxx00 (where xx = any DTC which is present)
-------------------------------------------------------------------------------
---- Read Power Seat Left data (assuming ATH1 thru ATSR 13 already done).
-------------------------------------------------------------------------------
ATPC
ATIIA AE
ATWM 82 2E 13 A1
---- Slow Init ECU 2E.
ATSI (optional)
ATBD (optional)
ATBD (optional)
---- Read ECU 2E DTC data.
ATSH 84 2E 13
AE0100
AE0200
---- Read ECU 2E B9 stored data.
B9F000
B9xx00 (where xx = 01-03 and 14-1C, is optional; little reason to scan,
since will never be interpreted by kwpd3b0_interpreter.html)
B9xx00 (where xx = 04-13 produce error 80, so might be allowed sometime)
---- Read ECU 2E A5 live data.
A5xx01 (where xx = 01-0C, is optional; little reason to scan,
since will never be interpreted by kwpd3b0_interpreter.html)
---- Read ECU 2E AD freeze frame data (one for each DTC listed via AE0100).
ADxx00 (where xx = any DTC which is present; little reason to scan,
since will never be interpreted by kwpd3b0_interpreter.html)
-------------------------------------------------------------------------------
---- Read Power Seat Right data (assuming ATH1 thru ATSR 13 already done).
-------------------------------------------------------------------------------
ATPC
ATIIA 2F
ATWM 82 2F 13 A1
---- Slow Init ECU 2F.
ATSI (optional)
ATBD (optional)
ATBD (optional)
---- Read ECU 2F DTC data.
ATSH 84 2F 13
AE0100
AE0200
---- Read ECU 2F B9 stored data.
B9F000
B9xx00 (where xx = 01-03 and 14-1C, is optional; little reason to scan,
since will never be interpreted by kwpd3b0_interpreter.html)
B9xx00 (where xx = 04-13 produce error 80, so might be allowed sometime)
---- Read ECU 2F A5 live data.
A5xx01 (where xx = 01-0C, is optional; little reason to scan,
since will never be interpreted by kwpd3b0_interpreter.html)
---- Read ECU 2F AD freeze frame data (one for each DTC listed via AE0100).
ADxx00 (where xx = any DTC which is present; little reason to scan,
since will never be interpreted by kwpd3b0_interpreter.html)
-------------------------------------------------------------------------------
---- Read all 850 emission diagnostic data (that I know of).
-------------------------------------------------------------------------------
ATZ
ATL1 (if LF not inserted by the terminal emulator)
ATE1 (if not the default; some terminal emulators require ATE0)
ATI (optional)
AT@1 (optional)
ATSP 3 (optional, if you already know protocol is "ISO 9141-2")
ATDP (optional, if you already know protocol is "ISO 9141-2")
ATH1 (alternatively, can use ATH0, like EasyObdII requires)
----
---- For details of OBDII emission diagnostic data, conversion formats, etc,
---- see question "How do I interpret all my Volvo 850's emission diagnostics
---- values obtained via manually issued commands to the ELM327?" in
---- https://jonesrh.info/volvo850/volvo_850_obdii_faq.rtf.
----
0100
0101
03
07
ATKW
0103
0104
0105
0106
0107
010C
010D
010E
010F (have seen on Motronic 4.4 on '96-'97 850 and '98 S70/V70/XC70)
0110
0111
0112 (if your vehicle has a Secondary Air system)
0113
0114
0115 (have seen on Motronic 4.4 on '96-'97 850 and '98 S70/V70/XC70)
011C (have seen on Motronic 4.4 on '96-'97 850 and '98 S70/V70/XC70)
011D (have seen on Motronic 4.4 on '96-'97 850 and '98 S70/V70/XC70)
011E (have seen on Motronic 4.4 on '96-'97 850 and '98 S70/V70/XC70)
0120 (have seen on Motronic 4.4 on '96-'97 850 and '98 S70/V70/XC70)
0140 (optional check just to be sure no more PIDs)
020200
020000
020300
020400
020500
020600
020700
020C00
020D00
-------------------------------------------------------------------------------
-- Final checks for any important changes.
-------------------------------------------------------------------------------
ATZ
ATL1
0100
0101
03
07
ATPC
ATH1
ATAL
ATKW0
ATSR 13
ATIIA 51
ATWM 82 51 13 A1
ATSH 84 51 13
A50701
ATPC
ATRV
-------------------------------------------------------------------------------
--
-- End elm327_volvo_850_scan_all.txt.
--
-------------------------------------------------------------------------------
The following elm327_volvo_850_scan_combi_and_all_dtcs.txt list is essentially a "quick summary scan" of a USA 1997 Volvo 850 T5. It's focus is: a) the most essential COMBI data, and b) all the DTCs (detectable on '97 850 T5). This is the one to use when you want to save some time -- when you just want to know if there's any DTCs and also want to check some of the COMBI data.
If you copy from:
-- Begin elm327_volvo_850_scan_combi_and_all_dtcs.txt.
to:
-- End elm327_volvo_850_scan_combi_and_all_dtcs.txt.
then save that into a text file on your local machine,
it can serve as your "quick summary scan cheat sheet".
You can manually issue the commands/requests to the ELM327 using a terminal emulator. Or you could experiment with the terminal emulator's Send File mechanism to try and get the summary scan somewhat automated.
Do not type the comments which are included in (parentheses) on the right side of the lines with ELM327 commands or data.
You do not need to type the comments that begin the line with hyphens (----) unless you absolutely want to.
The commands have been drastically minimized in this "quick scan" in expectation that you proceed strictly sequentially thru this file, and might very well be doing so by interactively typing the commands. All ATSI and ATBD commands have been removed.
As mentioned previously in a "...make it easier on yourself, just review volvo850diag..." hint, download the latest volvo850diag.zip. It'll save you lots of time if you're able to use it with Internet Explorer on a machine running Microsoft Windows.
On an Android device, the easiest way to accomplish the essentials of the following scan is to just download xiaotec "850 OBD-II" app from Google Play, then use its "Scan" function, and review its resultant Summary page.
------------------------------------------------------------------------------- -- -- Begin elm327_volvo_850_scan_combi_and_all_dtcs.txt. -- -- Scan all OBDII emission diagnostic DTCs and pending DTCs. -- Scan most essential Volvo 850 COMBI B9 (stored) and A5 (live) data. -- Scan all DTCs for these ECUs that are physically addressed and use the -- special Volvo keyword D3 B0 protocol: COMBI, SRS, ABS, AW 50-42, and -- Power Seats. -- ------------------------------------------------------------------------------- ---- Initial one-time setup for an ELM327 to establish the ISO9141-2 protocol. ------------------------------------------------------------------------------- ---- This first section only needs to be done if it never once has been done ---- for your ELM327 device, or if the protocol has been changed from ---- "ISO 9141-2" while working with other vehicles or while attempting to ---- connect with an ECU which does not exist on your vehicle. ---- ---- A protocol change might have been forced by you or some software which ---- you are running, or the protocol might have been automatically switched ---- by the ELM327 device itself after either a successful or a failed ---- connection. ---- ---- Some of you will be able to successfully substitute ATSP 3A for the ---- ATSP 3. That's especially the case if your vehicle contains *all* the ---- ECUs whose connection is attempted. However, many of you must use the ---- more restrictive ATSP 3 command which tries only "ISO 9141-2" connections. ---- ---- Hint: I strongly suggest using ATSP 3 the very first time you use your ---- ELM327 device with your Volvo 850. That will eliminate some ---- unpredictable variables. Later, you can experiment with trying ---- ATSP 3A (to allow for greater flexibility when working with ---- additional vehicles). ------------------------------------------------------------------------------- ATZ ATL1 (if LF not inserted by the terminal emulator) ATE1 ATI AT@1 ATSP 3 (force "ISO 9141-2" as protocol) ATDP ATPPS ------------------------------------------------------------------------------- ---- Simple test to verify emission diagnostics are working somewhat ---- and to read the emission diagnostic DTCs and pending DTCs. ------------------------------------------------------------------------------- ATZ ATL1 (if LF not inserted by the terminal emulator) ATE1 (if not the default) ATI (optional, if you already know it) AT@1 (optional, if you already know it) ATSP 3 (optional, if you already know protocol is "ISO 9141-2") ATDP (optional, if you already know protocol is "ISO 9141-2") ATPPS (optional, if no ATPP changes made recently) ATSW CC (optional -- changes Keepalive timer to ~4 seconds) ATS1 (if not the default -- ELM327 separates hex values with a space) 0100 0101 03 07 ---- Check the battery voltage. Two ATRVs are required after powering up ---- some ELM327 clones. First one says 28.3 V. Second one is real voltage. ATRV ATRV ------------------------------------------------------------------------------- ---- ATPC init sequence for ECUs 51/58/01/6E/2E/2F. ---- ---- Must be done at least once before beginning to talk to this ECU group ---- (but *after* the above ATZ init sequence to reestablish defaults, then ---- perform ATSP 3 and ATSW CC). ------------------------------------------------------------------------------- ATPC ATH1 ATAL ATKW0 ATSR 13 (**very** important to ensure immediate responses) ------------------------------------------------------------------------------- ---- Read most essential COMBI data (assuming ATH1 thru ATSR 13 already done). ------------------------------------------------------------------------------- ATPC ATIIA 51 ATWM 82 51 13 A1 ---- Read ECU 51 DTCs. ATSH 84 51 13 AE0100 ---- Read ECU 51 B9 stored data (for 850). B9F000 B90100 B90300 B90400 B90500 B90600 B90700 B90800 B90900 B90A00 B90B00 B90C00 B90D00 B90E00 (not available on some early 850) ---- Read most essential ECU 51 A5 live data (for 850). A50701 ------------------------------------------------------------------------------- ---- Read SRS DTCs (assuming ATH1 thru ATSR 13 already done for another ECU). ------------------------------------------------------------------------------- ATPC ATIIA 58 ATWM 82 58 13 A1 ATSH 84 58 13 AE0100 ------------------------------------------------------------------------------- ---- Read ABS DTCs (assuming ATH1 thru ATSR 13 already done for another ECU). ------------------------------------------------------------------------------- ATPC ATIIA 01 ATWM 82 01 13 A1 ATSH 83 01 13 AE01 AE03 ------------------------------------------------------------------------------- ---- Read AW 50-42 DTCs (assuming ATH1 thru ATSR 13 already done). ------------------------------------------------------------------------------- ATPC ATIIA 6E ATWM 82 6E 13 A1 ATSH 83 6E 13 AE01 ------------------------------------------------------------------------------- ---- Read Power Seat Left DTCs (assuming ATH1 thru ATSR 13 already done). ------------------------------------------------------------------------------- ATPC ATIIA AE ATWM 82 2E 13 A1 ATSH 84 2E 13 AE0100 ------------------------------------------------------------------------------- ---- Read Power Seat Right DTCs (assuming ATH1 thru ATSR 13 already done). ------------------------------------------------------------------------------- ATPC ATIIA 2F ATWM 82 2F 13 A1 ATSH 84 2F 13 AE0100 ------------------------------------------------------------------------------- -- Final checks. ------------------------------------------------------------------------------- ATPC ATRV ------------------------------------------------------------------------------- -- -- End elm327_volvo_850_scan_combi_and_all_dtcs.txt. -- -------------------------------------------------------------------------------
The "quick summary scan" is ~49-77 commands.