This page contains two lists composed of a) ELM327 commands, b) OBDII emission diagnostics commands, and c) Volvo specific keyword D3 B0 protocol (KWPD3B0) commands. The OBDII and KWPD3B0 commands are both formatted for ELM327 processing -- ie, they don't contain the ISO9141-2 header or checksum, since the ELM327 will add the header and checksum when transforming the commands into requests which the Volvo can understand.
The two lists are:
elm327_volvo_850_svc70_scan_all.txt, which makes a fairly thorough scan of the '96-'97 Volvo 850 and '97-'98 Volvo S70 / V70 / XC70. This is referred to as the "full blown" or "all" scan.
elm327_volvo_850_svc70_scan_combi_and_all_dtcs.txt, which scans the basic COMBI data -- ECU 51 B9xx and A5xx values -- as well as all the DTCs of all the known ECUs. This is referred to as the "quick summary" or "quick" scan.
The following elm327_volvo_850_svc70_scan_all.txt list contains the commands to perform a fairly complete scan of your 1996-1998 Volvo 850/S70/V70/C70/XC70.
If you copy from:
-- Begin elm327_volvo_850_svc70_scan_all.txt.
to:
-- End elm327_volvo_850_svc70_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, several different Android-based ELM327 terminal emulators, 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/S70 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/S70/V70/C70/XC70 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, AE01, or B9F0 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 following ATBD and ATKW commands are optional.
To make it easier on yourself, checkout 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 / S70 / V70 / C70 / XC70 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/S70/V70/C70/XC70 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_svc70_scan_all.txt. -- -- Scan (most) all Volvo 850/S70/V70/C70/XC70 COMBI, SRS, ABS, AW 50-42, -- Power Seats, Motronic 4.4, MSA 15.7, Immobilizer, '98 ECC, '98 VGLA, and -- '98 Add Heater 912-D 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/SVC70 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/S70/V70/C70/XC70. 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/7A/11/41/29/2D/18. ---- ---- 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) ATKW (optional) ---- Read ECU 51 DTC data. ATSH 83 51 13 AE01 (DTCs) AE02 (DTC inactivity counters) AE05 (seems to be a list of some previous COMBI DTCs, ordered by DTC #) ---- Read ECU 51 B9 stored data. B9F0 B9F1 (optional, seen on some SVC70) B901 B902 (optional, seen on some SVC70) B903 B904 B905 B906 B907 B908 B909 B90A B90B B90C B90D B90E (not available on some early 850) B90F (optional, seen on some SVC70) B910 (optional, seen on some SVC70) B912 (optional, seen on some SVC70) B913 (optional, seen on some SVC70) B914 (optional, seen on some SVC70) B915 (optional, seen on some SVC70) ---- Read ECU 51 A5 live data. ATSH 84 51 13 A50101 A50201 A50301 A50401 A50501 A50601 A50701 A50801 A50901 A50A01 (optional, seen on some SVC70) A50B01 (optional, seen on some SVC70) A50C01 (optional, seen on some SVC70) ---- Read ECU 51 AD freeze frame data (one for each DTC listed via AE01). 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) AD0F00 (optional, use if DTC 0F is present) (probably for SVC70 only) AD1000 (optional, use if DTC 10 is present) AD1100 (optional, this seems to never manifest as a DTC) ADxx00 (where xx = DTC #, ie, 01-11, 14-17, 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) ATKW (optional) ---- Read ECU 58 DTCs. ATSH 83 58 13 AE01 ---- Read ECU 58 B9 stored data. B9F0 B9F1 ---- Read ECU 58 A5 live data. ATSH 84 58 13 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 AE01). 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) ATKW (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) ATKW (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 2E ATIIA AE ATWM 82 2E 13 A1 ---- Slow Init ECU 2E. ATSI (optional) ATBD (optional) ATKW (optional) ---- Read ECU 2E DTC data. ATSH 83 2E 13 AE01 AE02 ---- Read ECU 2E B9 stored data. B9F0 B9xx (where xx = 01-03 and 14-1C, is optional; little reason to scan, since will never be interpreted by kwpd3b0_interpreter.html) B9xx (where xx = 04-13 produce error 80, so might be allowed sometime) ---- Read ECU 2E A5 live data. ATSH 84 2E 13 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 AE01). ATSH 84 2E 13 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) ATKW (optional) ---- Read ECU 2F DTC data. ATSH 83 2F 13 AE01 AE02 ---- Read ECU 2F B9 stored data. B9F0 B9xx (where xx = 01-03 and 14-1C, is optional; little reason to scan, since will never be interpreted by kwpd3b0_interpreter.html) B9xx (where xx = 04-13 produce error 80, so might be allowed sometime) ---- Read ECU 2F A5 live data. ATSH 84 2F 13 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 AE01). ATSH 84 2F 13 ADxx00 (where xx = any DTC which is present; little reason to scan, since will never be interpreted by kwpd3b0_interpreter.html) ------------------------------------------------------------------------------- ---- Read Motronic 4.4 (KWPD3B0) data (assuming ATH1 thru ATSR 13 already done). ------------------------------------------------------------------------------- ATPC ATIIA 7A ATWM 82 7A 13 A1 ---- Slow Init ECU 7A. ATSI (optional) ATBD (optional) ATKW (optional) ---- Read ECU 7A DTCs. ATSH 83 7A 13 AE01 ---- Read ECU 7A B9 stored data. B9F0 B901 B902 B903 B904 B905 B906 ---- Read ECU 7A AD freeze frame data (one for each DTC listed via AE01). ATSH 84 7A 13 AD0C00 (optional, use if DTC 0C is present; EFI-153 -- HO2S sensor signal, rear [P0136 (faulty), P0137 (low), or P0138 (high)]) AD0E00 (optional, use if DTC 0E is present; EFI-522 -- Rear HO2S, preheating malfunction [P0141]) AD0F00 (optional, use if DTC 0F is present; EFI-435 -- Front HO2S slow response [P0133]) AD1000 (optional, use if DTC 10 is present; EFI-436 -- Rear HO2S compensation [P0133]) AD1A00 (optional, use if DTC 1A is present; EFI-231 -- Long term fuel trim, part load [P0171 or P0172]) AD1B00 (optional, use if DTC 1B is present; EFI-232 -- Long term fuel trim, idling [P0172 or P0171]) AD1D00 (optional, use if DTC 1D is present; EFI-666 -- DTC in transmission CM) AD3E00 (optional, use if DTC 3E is present; EFI-543 -- Misfire exhaust value of at least one cylinder [P1310]) AD5E00 (optional, use if DTC 5E is present; EFI-611 -- Fuel Tank system, large leakage [P0455]) AD6100 (optional, use if DTC 61 is present; EFI-612 -- Fuel Tank system, small leakage [P0442]) AD7300 (optional, use if DTC 73 is present; EFI-121 -- Mass Air Flow (MAF) sensor signal [P0102, P0103]) AD7B00 (optional, use if DTC 7B is present; EFI-123 -- Engine Coolant Temperature (ECT) sensor [P0116 (faulty), P0117 (low), or P0118 (high)]) AD7C00 (optional, use if DTC 7C is present; EFI-251 -- Ambient Temperature sensor signal [P0111 (sporadic), P0112 (low), or P0113 (high)]) ADFD00 (optional, use if DTC FD is present; EFI-514 -- Engine coolant fan, low speed) ADxx00 (where xx = any DTC which is present) ---- Read ECU 7A A5 live data. ATSH 84 7A 13 A50101 (Engine RPM) A50201 (ECT, ie, Engine Coolant Temp) A50301 (Battery Voltage) A50401 (Throttle Position) A50501 (Vehicle Speed) A50701 A50801 A50901 (Ignition Timing Advance) A50A01 (M44 A50A Status) (slot 1 = CEL, CEL request by TCM, Warmup Cycle, Trip Cycle, Driving Cycle) (slot 2 = Fuel Pump Relay, Engine on/off, Active Fault, Fuel Cut-off, Throttle Position) A50B01 (M44 A50B Status) (slot 1 = EVAP Canister Shut-off Valve, SAS Pump, Engine Cooling Fan) (slot 2 = Turbo/non-Turbo, Gear (P-N vs. others), TCM Requested Ignition Retard) A50C01 (Intake Air Temp and Ambient Air Temp) (slot 1 = Ambient Air to M44 (instantaneous) = purported Intake Air Temp) (slot 2 = Ambient Air to M44 (damped, or default) [Ambient Air to M44 (damped) is oftentimes closer to actual Ambient than Ambient Air to COMBI displayed in Dash]) A50D01 (Atmospheric Pressure) A51001 (MAF, ie, Mass Air Flow) A51201 (Internal Load Signal) A51401 (Front O2 Sensor Output Voltage) A51501 A51601 (Rear O2 Sensor Output Voltage) A51701 A51801 (Short Term Fuel Trim) A51901 A51A01 (Long Term Fuel Trim, Partial Load) A51C01 A53801 A54001 A54101 A55001 A56001 (M44 ECM Temp) A56801 A58101 A58201 A58301 (M44 A583 live combo: Engine RPM, Internal Load Signal, Battery Voltage, Vehicle Speed, Coolant Temp, M44 Ambient Temp, Atmospheric Pressure, several not-yet-fully-understood Temps, etc) A58401 A58501 A58601 A58701 A58801 A58901 A58A01 A5xx01 (for more M44 live data details, search volvo850diag.zip's .js file for: "159506", "M44-scaling", and "rkam") ---- Read ECU 7A A7 data. ATSH 87 7A 13 A700 F8DF 0101 (A/C approved) A700 0020 0101 (A/C compressor status) A700 002D 0101 (A/C relay status) A700 FB4D 0101 (Flywheel adaption) A700 FABD 0101 (Fuel trim status) A700 FAA1 0101 (Ignition retard by knock) A700 006E 0102 (Injection time) A700 FAD9 0101 (SAS valve) A700 FFC4 0101 (Turbo duty cycle) A700 FA9F 0101 A700 FA84 0101 A700 F871 0101 A700 FB4C 0101 A700 FCE4 0101 ------------------------------------------------------------------------------- ---- Read MSA 15.7 (KWPD3B0) data (assuming ATH1 thru ATSR 13 already done). ------------------------------------------------------------------------------- ATPC --ATIIA 11 ATIIA 91 ATWM 82 11 13 A1 ---- Slow Init ECU 11. ATSI (optional) ATBD (optional) ATKW (optional) ---- Read ECU 11 DTC data. ATSH 83 11 13 AE01 AE02 ---- Read ECU 11 B9 stored data. B9F0 B9F2 B9F1 B9F3 B901 B903 B904 B905 B906 B907 B908 B909 B90A B90B B90C ---- Read ECU 11 A5 live data. ATSH 84 11 13 A50101 A50201 A50301 A50401 A50501 A50601 A50701 A50801 A50901 A5xx01 (for MSA 15.7 live data details, search volvo850diag.zip's .js file for: "MSA 15.7") ---- Read ECU 11 AD freeze frame data (one for each DTC listed via AE01). ATSH 84 11 13 AD2000 (optional, use if DTC 20 is present; EFI-714 -- Fuel Shut-off Valve signal) AD2B00 (optional, use if DTC 2B is present; EFI-715 -- Fuel Regulation) AD2E00 (optional, use if DTC 2E is present; EFI-716 -- Fuel Quantity Actuator signal) AD3400 (optional, use if DTC 34 is present; EFI-717 -- Fuel Quantity Regulator Position sensor signal) AD3600 (optional, use if DTC 36 is present; EFI-732 -- Accelerator pedal position sensor signal) ADxx00 (where xx = any DTC which is present) ------------------------------------------------------------------------------- ---- Read Immobilizer 2/3 data (assuming ATH1 thru ATSR 13 already done). ------------------------------------------------------------------------------- ATPC --ATIIA 41 ATIIA C1 ATWM 82 41 13 A1 ---- Slow Init ECU 41. ATSI (optional) ATBD (optional) ATKW (optional) ---- Read ECU 41 DTC data. ATSH 83 41 13 AE01 AE02 ---- Read ECU 41 B9 stored data. B9F0 B9xx (unknown what other B9xx values are available) ---- Read ECU 41 A5 live data. ATSH 84 41 13 A5xx01 (unknown what A5xx values are available) ---- Read ECU 41 AD freeze frame data (one for each DTC listed via AE01). ATSH 84 41 13 ADxx00 (where xx = any DTC which is present) ------------------------------------------------------------------------------- ---- Read '98 S70/V70/XC70 ECC data (assuming ATH1 thru ATSR 13 already done). ------------------------------------------------------------------------------- ATPC ATIIA 29 ATWM 82 29 13 A1 ---- Slow Init ECU 29. ATSI (optional) ATBD (optional) ATKW (optional) ---- Read ECU 29 DTC data. ATSH 83 29 13 AE01 AE02 AE04 AE06 ---- Read ECU 29 B9 stored data. B9F0 B9F1 B9F2 (longest KWPD3B0 response ever seen; uses a 4-byte header) B901 B902 B903 B904 B905 B906 B907 B908 B909 B90A B90B B90C B90D B90E B911 B912 B913 B9E0 B9E1 B9xx (unknown how to interpret most of that ECC B9xx stored data) ---- Read ECU 29 A5 live data. ATSH 84 29 13 A50101 A50201 A50301 A50501 A50701 A50801 A50901 A50A01 A50C01 A50D01 A50F01 A51201 A51301 A51401 A51501 A51601 A51701 A51801 A51901 A52101 A52201 A52301 A52401 A52601 A52701 A52801 A54001 A54201 A55001 A55201 A55301 A55501 A55601 A55701 A55801 A55901 A55A01 A55B01 A55C01 A55D01 A55E01 A56001 A56101 A56201 A56301 A56401 A56501 A56601 A56701 A56801 A56901 A56A01 A56B01 A56C01 A56D01 A56E01 A57201 A57301 A57401 A57501 A57601 A57701 A57801 A57901 A57C01 A57D01 A57E01 A57F01 A58401 A58501 A58601 A58701 A58801 A58901 A58B01 A58C01 A58D01 A59001 A59101 A59201 A59301 A59401 A59501 A59601 A59701 A59801 A59901 A59A01 A59B01 A59C01 A59D01 A59F01 A5A001 A5A101 A5A201 A5A301 A5A401 A5A901 A5AA01 A5AB01 A5AC01 A5AD01 A5AE01 A5AF01 A5B001 A5B101 A5B201 A5B301 A5B401 A5B701 A5B801 A5B901 A5BA01 A5BB01 A5BC01 A5BF01 A5C001 A5C301 A5C501 A5C701 A5C901 A5E801 A5E901 (2nd longest KWPD3B0 response ever seen; uses a 4-byte header) A5xx01 (unknown how to interpret any of that ECC live data) ---- Read ECU 29 AD freeze frame data (one for each DTC listed via AE01). ATSH 84 29 13 AD3700 ADxx00 (where xx = any DTC which is present) ------------------------------------------------------------------------------- ---- Read '98 S70/V70/XC70 VGLA data (assuming ATH1 thru ATSR 13 already done). ------------------------------------------------------------------------------- ATPC --ATIIA 2D ATIIA AD ATWM 82 2D 13 A1 ---- Slow Init ECU 2D. ATSI (optional) ATBD (optional) ATKW (optional) ---- Read ECU 2D DTC data. ATSH 83 2D 13 AE01 AE02 AE05 ---- Read ECU 2D B9 stored data. B9F0 B9F1 B9F2 B924 B925 B926 B928 B929 B92A B92B B9xx (unknown how to interpret most of that VGLA B9xx stored data) ---- Read ECU 2D A5 live data. ATSH 84 2D 13 A57001 A57101 A57201 A57601 A5xx01 (unknown how to interpret any of that VGLA live data) ---- Read ECU 2D AD freeze frame data (one for each DTC listed via AE01). ATSH 84 2D 13 ADxx00 (where xx = any DTC which is present) ------------------------------------------------------------------------------- ---- Read '98 S70/V70/XC70 Add Heater 912-D data (assuming ATH1 thru ATSR 13 already done). ------------------------------------------------------------------------------- ATPC --ATIIA 18 ATIIA 98 ATWM 82 18 13 A1 ---- Slow Init ECU 18. ATSI (optional) ATBD (optional) ATKW (optional) ---- Read ECU 18 DTC data. ATSH 83 18 13 AE01 AE02 ---- Read ECU 18 B9 stored data. B9F0 B9xx (unknown what other B9xx values are available) ---- Read ECU 18 A5 live data. ATSH 84 18 13 A5xx01 (unknown what A5xx values are available) ---- Read ECU 18 AD freeze frame data (one for each DTC listed via AE01). ATSH 84 18 13 ADxx00 (where xx = any DTC which is present) ------------------------------------------------------------------------------- ---- Read all 850/SVC70 OBDII 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 ---- ---- These show NO DATA on every Volvo 850/SVC70 that I've seen scan them. ---- You can safely bypass these and jump to the "Final checks". ---- 0108 (fails with NO DATA) 0109 (fails with NO DATA) 010A (fails with NO DATA) 010B (fails with NO DATA) 0116 (fails with NO DATA) 0117 (fails with NO DATA) 0118 (fails with NO DATA) 0119 (fails with NO DATA) 011A (fails with NO DATA) 011B (fails with NO DATA) 011F (fails with NO DATA) 0900 (fails with NO DATA) 0902 (fails with NO DATA) ---- ---- These have only been seen on a USA 1995 850 NA w/ M43. ---- * See https://www.matthewsvolvosite.com/forums/viewtopic.php?f=1&t=85982&start=90#p482412 for details. ---- 0160 (PIDs used in 61-80 range) 0168 (Intake air temperature sensor) 016E (Injection pressure control system) 016F (Turbocharger compressor inlet pressure) 0170 (Boost pressure control) 0171 (Variable Geometry turbo (VGT) control) 0172 (Wastegate control) 0173 (Exhaust pressure) 0176 (Turbocharger temperature) 0178 (Exhaust Gas temperature (EGT) Bank 1) 0180 (PIDs used in 81-A0 range) ------------------------------------------------------------------------------- -- 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_svc70_scan_all.txt. -- -------------------------------------------------------------------------------
The following elm327_volvo_850_svc70_scan_combi_and_all_dtcs.txt list is essentially a "quick summary scan" of a 1996-1998 Volvo 850/S70/V70/C70/XC70. It's focus is: a) the most essential COMBI data, and b) all the DTCs of all the known ECUs. 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_svc70_scan_combi_and_all_dtcs.txt.
to:
-- End elm327_volvo_850_svc70_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, ATBD, and ATKW commands have been removed.
As mentioned previously in a "...make it easier on yourself, checkout 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_svc70_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 all ECUs (whose physical address is known) and -- which use the special Volvo keyword D3 B0 protocol: -- COMBI, SRS, ABS, AW 50-42, Power Seats, Motronic 4.4, MSA 15.7, -- Immobilizer, '98 ECC, '98 VGLA, '98 Add Heater 912-D. -- ------------------------------------------------------------------------------- ---- 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/S70/V70/C70/XC70. 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/7A/11/41/29/2D/18. ---- ---- 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 83 51 13 AE01 ---- Read most essential ECU 51 B9 stored data. B9F0 B901 B903 B904 B905 B906 B907 B908 B909 B90A B90B B90C B90D B90E (not available on some early 850) ---- Read most essential ECU 51 A5 live data. ATSH 84 51 13 A50701 A50901 ------------------------------------------------------------------------------- ---- Read SRS DTCs (assuming ATH1 thru ATSR 13 already done for another ECU). ------------------------------------------------------------------------------- ATPC ATIIA 58 ATWM 82 58 13 A1 ATSH 83 58 13 AE01 ------------------------------------------------------------------------------- ---- 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 2E ATIIA AE ATWM 82 2E 13 A1 ATSH 83 2E 13 AE01 ------------------------------------------------------------------------------- ---- Read Power Seat Right DTCs (assuming ATH1 thru ATSR 13 already done). ------------------------------------------------------------------------------- ATPC ATIIA 2F ATWM 82 2F 13 A1 ATSH 83 2F 13 AE01 ------------------------------------------------------------------------------- ---- Read Motronic 4.4 (KWPD3B0) DTCs (assuming ATH1 thru ATSR 13 already done). ------------------------------------------------------------------------------- ATPC ATIIA 7A ATWM 82 7A 13 A1 ATSH 83 7A 13 AE01 ------------------------------------------------------------------------------- ---- Read MSA 15.7 (KWPD3B0) DTCs (assuming ATH1 thru ATSR 13 already done). ------------------------------------------------------------------------------- ATPC --ATIIA 11 ATIIA 91 ATWM 82 11 13 A1 ATSH 83 11 13 AE01 ------------------------------------------------------------------------------- ---- Read Immobilizer 2/3 DTCs (assuming ATH1 thru ATSR 13 already done). ------------------------------------------------------------------------------- ATPC --ATIIA 41 ATIIA C1 ATWM 82 41 13 A1 ATSH 83 41 13 AE01 ------------------------------------------------------------------------------- ---- Read '98 S70/V70/XC70 ECC DTCs (assuming ATH1 thru ATSR 13 already done). ------------------------------------------------------------------------------- ATPC ATIIA 29 ATWM 82 29 13 A1 ATSH 83 29 13 AE01 ------------------------------------------------------------------------------- ---- Read '98 S70/V70/XC70 VGLA DTCs (assuming ATH1 thru ATSR 13 already done). ------------------------------------------------------------------------------- ATPC --ATIIA 2D ATIIA AD ATWM 82 2D 13 A1 ATSH 83 2D 13 AE01 ------------------------------------------------------------------------------- ---- Read '98 S70/V70/XC70 Add Heater 912-D DTCs (assuming ATH1 thru ATSR 13 already done). ------------------------------------------------------------------------------- ATPC --ATIIA 18 ATIIA 98 ATWM 82 18 13 A1 ATSH 83 18 13 AE01 ------------------------------------------------------------------------------- -- Final checks. ------------------------------------------------------------------------------- ATPC ATRV ------------------------------------------------------------------------------- -- -- End elm327_volvo_850_svc70_scan_combi_and_all_dtcs.txt. -- -------------------------------------------------------------------------------
The "quick summary scan" is ~51-109 commands, depending on # of ECUs scanned, etc.