volvo850diag -- Volvo 850 S70 V70 C70 comm via ELM327, Realterm, Internet Explorer, Javascript (online docs)

Warnings!
  1. volvo850diag is provided for your convenience.  You can adapt it as you see fit, but absolutely NO WARRANTY is provided with it.

  2. You must download the "local" version of volvo850diag from https://jonesrh.info/volvo850/volvo850diag.zip in order to use volvo850diag for '96-'98 Volvo 850 / S70 / V70 / C70 / XC70 communication. This "online" version of volvo850diag does not do that. Instead, this "online" version is included here for documentation purposes so: a) you can see the GUI in the blue and red colored boxes below, and b) you can read the Intro, Requirements, First Time Use, and Typical Use sections before deciding to download anything.  Do not expect this online version to perform any useful actions if you press the buttons in the blue box, or if you press buttons or check/uncheck any checkboxes in the red OPTIONS box. Instead, download volvo850diag.zip and install volvo850diag using the instructions in the Requirements section below, then run volvo850diag.html locally.  That local version of volvo850diag.html *will* respond to the button presses, checkbox checking/unchecking, etc (like you expect a GUI to do).

  3. volvo850diag requires ActiveX and Javascript.  It uses Javascript for the buttons, etc.  It uses Realterm's ActiveX interface as the communication workhorse.  volvo850diag also uses the WScript.Shell ActiveX object to read 3 potentially used environmental variables that can define the COM port # used by Realterm as well as override the default directories used for an automatically generated log file and for the ELM327 scripts (which are essentially snippets of the commands from ELM327 Commands to Scan Volvo 850 and SVC70). Consequently, ActiveX must be allowed when Internet Explorer begins. Internet Explorer is the only browser that I know of which can successfully run the "local" version of volvo850diag.html.


       

       <<< Need to "Start Realterm".



            


 

ECUs (either 850 or S70/V70/C70/XC70)

ECU 51  
    
      

ECU 58    

ECU 01    

ECU 6E    

ECU 2E    

ECU 2F    

ECU 7A  
          

ECU 11    

ECU 41    

ECUs (S70/V70/C70/XC70 only)

ECU 29    

ECU 2D    


                                             

       

OPTIONS

Save all changes, or Cancel all changes, or Exit Options box                 
  1. Change "scanner_type" (**only if** your ELM327-compatible device is *not* working).

    Select scanner type (only if necessary)    
  2. Change "volvo_model" (to most closely match your car).

    Select Volvo model    
  3. Select or deselect ECUs that should be scanned during the "all ECUs" functions that reside on the line containing the "Read All DTCs" button through the "My Extra Scans" button.

    Select ECUs used by both '96-'97 850 and '97-'98 S70/V70/C70/XC70                
         
       
       
                  
    Select ECUs used only by '97-'98 S70/V70/C70/XC70            
       
  4. Optionally, select your ECM (Engine Control Module). This is for informational purposes only. If selected, this information will be included near the beginning of the log file.

    Select an ECM
      
  5. It is usually best to not change "default_set_protocol_cmd" (but you can if necessary).

    Select default ATSP command (only if necessary)    
  6. Select or deselect miscellaneous scan options.

    Select options that are used strictly in "My Extra Scans"    
      -- Continuously Scan multiple KWPD3B0 ECUs after 1 init. 15 min.
           -- Continuously Scan important OBDII live data. 15 min.
    -- Scan OBDII w/ 1st init / multiple KWPD3B0 ECUs w/ 2nd init, repeat...
  7. Click "Save", then press F5 and answer "Yes" to any ActiveX prompts.
    Else click "Cancel" if you've made changes and want to discard the changes.
    Else click "Exit Options".

    Save all changes, or Cancel all changes, or Exit Options box                 

       

Intro to volvo850diag.html

volvo850diag uses MS Internet Explorer to drive an ELM327 device via Javascript and Realterm to communicate with a Volvo 850 to: a) obtain the emission diagnostics, and b) communicate with the COMBI, SRS, ABS, AW 50-42, Power Seats, Motronic 4.4, etc. using the Volvo 850 keyword D3 B0 protocol (KWPD3B0).

It was the quickest way I could see (back in 2013) to:

It definitely helps eliminating typing errors when compared to using a terminal emulator (eg, Hyperterminal, STNterm, PuTTY, OBD Now Terminal, Bluetooth USB WIFI Terminal, etc) to interactively type each and every command to the ELM327.

It should be useful to new Volvo 850 owners that already have an ELM327 device, yet don't have a VAG/COM KKL cable, since it can do the read and clear functions just mentioned, and since it can:

It might even be useful to veteran Volvo 850 maintainers that don't already have Brick-Diag, or even existing Vol-FCR users, since it can:

and it can:

Furthermore, it can also issue some Motronic 4.4 control functions to test various components: Engine Coolant Fan (both High and Low), EVAP Canister Purge (CP) Valve, EVAP Canister Shut-off Valve, SAS/PAIR Pump, SAS/PAIR Valve, Fuel Pump Relay, A/C Relay, each Injector, as well as Idle Air Control (IAC) Valve, Internal Load Signal, and Turbo Control Valve (TCV).

All the functions (mentioned in the last several paragraphs) can be performed only from the "local" version of this page (included in the volvo850diag.zip download described in the Requirements section).

Then the interpretation of the most important logged ELM327 communication can be obtained at jonesrh's Volvo 850 V70 keyword D3 B0 protocol interpreter, if you don't want to hassle with learning how to interpret the ELM327's hexadecimal responses.

Notes:
  1. The volvo850diag distribution is designed to be downloaded to your local machine and run from there. There's some instructions in the following Requirements section to help you with downloading the latest distribution and setting it up.

  2. You should use Microsoft's Internet Explorer to run the "local" version of volvo850diag.html, since Realterm's ActiveX interface is heavily used to accomplish the semi-automation. I believe there are very few other browsers that can interface with ActiveX.  You will need to Allow Blocked Content, both script and ActiveX controls, when IE asks you.

  3. Also, you must enable Javascript for volvo850diag to work.

Requirements

Core Requirements

The requirements to use volvo850diag.html -- the "local" page, not this "online" page -- are:

Installation and Setup of volvo850diag

To install and configure volvo850diag from the volvo850diag.zip distribution, follow this guide:

  1. Extract the files wherever you choose with whatever unzipper you want to (WinZip, 7-Zip, ALZip, etc), but make sure your extraction uses the subdirectory structure in the .zip file:

    COPYING_(CC0_legal_code).txt
    readme_volvo850diag.txt
    setx_envir_vars.bat
    volvo850diag.html
    volvo850diag.ico
    \volvo850diag_files
    volvo850diag_all_ecus_scan.js
    volvo850diag.css
    *.jpg
    \logs
    volvo850diag_YYMMDD_HHMMSS.log
    \screen_snapshots
    readme_screen_snapshots.txt
    Win7_IE11_Options_Advanced_*.png  (7, from IE11 used for testing)
    volvo850diag_v0_8_snapshot_??_*.png  (27)
    \scripts
    elm327_clear_CEL_*.txt       (1 is for any OBDII-compliant vehicle)
    elm327_volvo_850_*.txt       (only 2 are 850-specific)
    elm327_volvo_850_svc70*.txt  (most are for 850 and S70/V70/C70/XC70)
    elm327_volvo_svc70_*.txt     (15 are SVC70-specific)
    \saved_from_elm327_volvo_850_svc70_scan_html
    *_850_svc70_scan_*.txt  (2, for 850 and S70/V70/C70/XC70)
    \saved_from_elm327_volvo_850_scan_html
    *_850_scan_*.txt  (2, 850-specific)
    \touchscan_obdwiz
    readme_(for_*_scripts_adapted_for_touchscan_and_obdwiz).txt
    touchscan_*.txt  (26, adapted for OBDwiz & Touchscan use)
  2. and preserves the individual files' modification dates.

    Hint:
    Extract using unzipper program; *not* as Windows compressed folder.

    My copy from the volvo850diag.zip via the Win10 Window Explorer compressed folders facility did not expand properly.

    Usually I copy the volvo850diag directory structure between computers. It is very seldom that I expand a downloaded volvo850diag.zip file, like most volvo850diag users would do after downloading from https://jonesrh.info/volvo850/volvo850diag.zip. But shortly after the release of v0.8beta58, I tested that method by copying from the zip file using Win10's File Explorer (aka Windows Explorer) compressed folders view into the \Desktop\local_volvo850diag_(v0_8beta58) folder and discovered there is a problem -- at least on my Win10 system when copying or extracting the files from the volvo850diag.zip compressed folder into another folder.

    When that was done, the following unacceptable anomalies occurred:

    1. Immediately after displaying volvo850diag.html, there was a popup about the options not being saved.  [What in the world caused that?!?!?!]

    2. The "Allow ActiveX" oriented dialog boxes did not appear immediately after volvo850diag.html display.

    3. There was a prompt about running Realterm which I had never seen before on any of my WinXP, Win7, or Win10 systems. [I don't recall if this occurred immediately after display of volvo850diag.html or after clicking "Start Realterm"].

    4. The individual files' modification dates were those when the copy from the compressed folder occurred (ie, days after the v0.8beta58 release date) -- not 2016-08-19 or before (ie, not the release date or before).

    Those are *NOT* proper behaviors.

    My solution to this problem was to extract the files from volvo850diag.zip using WinZip.

    The details of my solution (with adaptations for the v0.9 release) were/are:

    • delete from that Desktop folder all the files just copied or extracted as a compressed folder,
    • open up volvo850diag.zip using WinZip instead [probably any separate unzipper program would work, eg, 7-Zip, ALZip, etc],
    • select all the files and unzip them (using the unzipper's Extract All function or Select All / Extract function combo),
    • ensure the unzipping preserves the relative directory structure represented inside the zip,
    • ensure the individual files' modification dates are no later than the date of the volvo850diag release [which in the case of volvo850diag v0.8beta58 was 2016-08-19, and in the case of volvo850diag v0.8 was 2017-07-27, and in the case of volvo850diag v0.9 is 2019-07-14] -- except that the folder dates will, of course, have today's date on them, since Windows created them today,
    • display "\Desktop\local_volvo850diag_(v0_9)\volvo850diag.html" by right-clicking it, selecting "Open With" then "Internet Explorer" (to presumably run IE11 on Win10),
    • follow the procedures documented elsewhere on this page to:
      • enable ActiveX and scripting,
      • (optionally) click Options, change and Save any of the options, else click "Exit Options",
      • click "Start Realterm",
    • verify that the 4 unacceptable anomalies above -- a thru d -- did not occur.
  3. Briefly review the resultant directory structure.

    Then review the volvo850diag_v0_8_*.png screen snapshots in numerical order to get a brief pictorial overview of what the volvo850diag / IE / Realterm combo looks like.  They might help you get the initial "scanner_type" setup accomplished.

    Those volvo850diag_v0_8_*.png screen snapshots are also available online here.

    The GUI in volvo850diag v0.9 does differ somewhat from the GUI in v0.8, but it is similar enough that these v0.8 .png screen snapshots should still be helpful.

  4. Review the readme_volvo850diag.txt file.

    1. It contains an extensive list of enhancements made in volvo850diag v0.6, v0.7, several v0.8betaNN, v0.8, up thru v0.9.

    2. Read "Setup of scanner_type" section and ensure scanner_type is defined properly in volvo850diag.html.

      If necessary, edit volvo850diag.html to define scanner_type properly.

      Strong Hint:
      In your very first display of the (local) volvo850diag.html file, I suggest you bypass the editing of scanner_type, and instead use the Options box's "scanner_type" pulldown list (**if** your ELM327-compatible device does *not* immediately work on the first try).

      There is a "scanner_type" pulldown list (in the pastel red OPTIONS box) from which you can select a possible scanner type.  That is an easy way -- in a single selection -- to specify several things: ScanTool.net OBDLink device or non-OBDLink device, USB or not, Bluetooth or not, COM port #, and speed.  Using it involves clicking Options (while Realterm is not running), selecting the desired value in the scanner_type pulldown list, clicking Save, then waiting for the page to reload.

      This scanner_type value is maintained with session cookies (in the "local" version of volvo850diag), so it should remain set during the present IE session. But when you redisplay volvo850diag.html in a new IE session (ie, new tab or new window), scanner_type will once again begin as the "hardcoded" value (ie, whatever value it is equated to in volvo850diag.html).

    3. Read "Setup of volvo_model" section and ensure volvo_model is defined accurately.

      If necessary, edit volvo850diag.html to define volvo_model properly.

      Strong Hint:
      In your very first display of the (local) volvo850diag.html file, I suggest you bypass the editing of volvo_model (in volvo850diag.html), and instead use the Options box's "volvo_model" pulldown list to select one of the following items that accurately describes your Volvo model: 850, S70, V70, C70, XC70.  Or, better yet, select an item that also identifies the model year: 95 850, 96 850, 97 850, 97 S70, 97 V70, 97 C70, 97 XC70, 98 S70, 98 V70, 98 C70, 98 XC70 (*if* one of those accurately describes your car).  If no choices fit your car, then leave volvo_model set to 850SVC70.

      In volvo850diag v0.9, there is a new "volvo_model" pulldown list (in the pastel red OPTIONS box) from which you can select a possible Volvo model.  Using it involves clicking Options (while Realterm is not running), selecting the desired value in the volvo_model pulldown list, clicking Save, then waiting for the page to reload.

      This volvo_model value is maintained with session cookies (in the "local" version of volvo850diag), so it should remain set during the present IE session. But when you redisplay volvo850diag.html in a new IE session (ie, new tab or new window), volvo_model will once again begin as the "hardcoded" value (ie, whatever value it is equated to in volvo850diag.html).

    4. Read "Changing the default protocol" section so you're aware that volvo850diag now explicitly issues a set protocol command so that you don't have to remember to do that.  That section will tell you how to change the supplied default (ATSP 3) if you ever decide to experiment with something different or if you want to revert to the behavior of the oldest versions of volvo850diag.

      • However, do *not* edit default_set_protocol_cmd during your initial volvo850diag setup. The distributed default (ATSP 3) has the greatest likelihood of success during your first attempts to connect. So on your initial volvo850diag setup, just skip to item e below.

      If necessary, edit volvo850diag.html to define default_set_protocol_cmd properly.

      Alternatively, click Options, select the desired value in the default_set_protocol_cmd pulldown list, click Save, then wait for the page to reload.

      This default_set_protocol_cmd value is maintained with session cookies (in the "local" version of volvo850diag), so it should remain set during the present IE session. But when you redisplay volvo850diag.html in a new IE session (ie, new tab or new window), default_set_protocol_cmd will once again begin as whatever value you have it equated to in volvo850diag.html.

    5. Briefly read "Potential .js file edits" section to get an overview of possible edits.

      • On the first run of volvo850diag, you probably should avoid all .js file edits.

      • As you become more familiar with volvo850diag, then you might consider trying some of the edits mentioned in "Potential .js file edits".

    6. Read "Reset SRI (ie, Reset SERVICE Light) -- auto-magically with an ELM327" and "Reprogram SRI Limit(s)" sections so you're aware that you can easily turn off the SERVICE light and that you can easily change the 3 interval limits which control when the SERVICE light comes on.

    7. Read "ECUs 7A, 11, 41, 29, 2D, 18 scanning" section so you're aware that some Motronic 4.4, MSA 15.7, and Immobilizer scanning has been included, as well as some scanning of the 1998 S70/V70/C70/XC70 ECC and VGLA, and some scanning of the 1998 S70/V70/XC70 Add Heater 912-D.

      Hint:
      volvo850diag v0.9 includes four (4) new lines of "ECU xx" functions, one each for:

      • ECU 11 (MSA 15.7)
      • ECU 41 (Immobilizer)
      • ECU 29 ('97-'98 SVC70 ECC)
      • ECU 2D ('97-'98 SVC70 VGLA)
    8. Read "Scanning of some ECUs can be enabled/disabled" so you're aware that almost all ECUs now can have their scanning enabled and disabled on a per ECU basis.

      For example:

      • If you have a manual transmission, you can disable scanning of ECU 6E.

      • If you have one or both Power Seats, you can enable the scanning of ECU 2E (Power Seat Left) and/or ECU 2F (Power Seat Right).

      • If you don't have a Motronic 4.4, you can disable the volvo850diag v0.7 introduced scanning of ECU 7A.

      • If you have a MSA 15.7, you can enable the volvo850diag v0.8beta45 introduced scanning of ECU 11.

      • If you have an Immobilizer, you can enable the volvo850diag v0.8beta45 introduced scanning of ECU 41.

      • If you have a 1998 S70/V70/C70/XC70 and have ECC (Electronic Climate Control), you can enable the volvo850diag v0.7 introduced scanning of ECU 29.

      • If you have a 1998 S70/V70/C70/XC70 and have VGLA, you can enable the volvo850diag v0.7 introduced scanning of ECU 2D.

      • If you have a 1998 S70/V70/XC70 and have the ability to Add Heater 912-D, you can enable the volvo850diag v0.8beta45 introduced scanning of ECU 18.

      Furthermore:

      • If you want to disable SRS scanning for any reason, you can disable scanning of ECU 58.

      • If you want to disable ABS scanning for any reason, you can disable scanning of ECU 01.

      Some things to keep in mind:

      • You can edit the volvo850diag.html flags which control this ECU enabling/disabling whenever you feel comfortable doing so. It's not necessary to do so during your first use of volvo850diag.

      • If you have a Volvo 850 with automatic transmission and Motronic 4.4, you may never have the need to edit those flags, since the volvo850diag v0.9 distribution begins with the following ECUs enabled: 51 (COMBI), 58 (SRS), 01 (ABS), 6E (AW 50-42), and 7A (Motronic 4.4).

      • And even if you do not have an automatic transmission, or do not have a Motronic 4.4, you could still choose to avoid editing the .html files scan_ecu_xx variables, and just use the OPTIONS box's ability to enable/disable the ECUs via their checkboxes (followed by the necessary clicking of "Save").  That's certainly easy enough to do (even if you have to do it every single time you run volvo850diag).  The only ECU which can not have its scanning disabled via the OPTIONS box is ECU 51 (COMBI).

      • The ECU enabling/disabling flags only apply in the "all ECUs" scans: "Read All DTCs", "Quick Scan All ECUs", "Full Scan All ECUs", and the "Minimal Scan" (and v0.9-enabled CCSwOmK1i loop, etc) inside "My Extra Scans".  You'll still always have the ability to use the ECU nn buttons, even when an ECU is disabled for the "all ECUs" scans.

  5. In WinXP/Win7 Control Panel, select System / Advanced / Environment Variables. Then in the "User variables for ..." pane perform items 4a, 4b, and 4c listed below.  Or, alternatively, use the "setx_envir_vars.bat" CMD Prompt batch file (mentioned in the below Hint concerning Win10 and SETX commands) that's necessary for certain Win10 situations.

    In Win10 Control Panel, search for "envir", then select "Edit environment variables for your account".  If there's no response when you click that, and if you are running from an Administrator level account, and if you will always be running volvo850diag from that Administrator level user account, then click "Edit system environment variables" and edit either the user or the system environment variables using the instructions listed in items 4a, 4b, and 4c below.

    Hint: Win10 may require use of SETX commands.
    In Win10, if there's no response when you click "Edit environment variables for your account", and you will be running volvo850diag from a standard (ie, low privilege, non-Administrator) user account, then you'll have to resort to using some CMD Prompt's SETX commands to setup the user level environment variables.  An example "setx_envir_vars.bat" CMD Prompt batch file is included in the volvo850diag distribution. Open it using a text editor, edit it as you see fit, then, while still reviewing items 4a, 4b, and 4c below to ensure setx_envir_vars.bat accomplishes its desired purpose, run setx_envir_vars.bat either from CMD Prompt or from File Explorer (Windows Explorer).  After running it, follow the instructions in setx_envir_vars.bat to open a new CMD Prompt window and check that the RT_ELM327* environment variables got defined properly, and be sure to close existing volvo850diag sessions and run a new volvo850diag / IE session.

    setx_envir_vars.bat is known to work on WinXP and Win10 (and probably works on the intervening Windows versions).
    1. Strongly suggested.

      Click New. Create an environment variable called RT_ELM327_LOGS_DIR. It will point to a directory where a uniquely named Realterm capture log is automatically created every time you press volvo850diag's "Start Realterm" button. Be sure the RT_ELM327_LOGS_DIR definition ends with a backslash (\)

      You'll probably want to define this for the \logs directory created during the .zip file extract, since Realterm will not create the directory dynamically if it does not exist.

      For example, if you had extracted the zip file into a folder on your Desktop labeled "local_volvo850diag_(v0_9)", and if your Windows login name was "850owner", then you'll probably find it most convenient to define the RT_ELM327_LOGS_DIR environment variable similar to the following on Win7/Win10:

      C:\Users\850owner\Desktop\local_volvo850diag_(v0_9)\logs\

      or the following on WinXP -- either the abbreviated form:

      C:\DOCUME~1\850owner\Desktop\local_volvo850diag_(v0_9)\logs\

      or the long form:

      C:\Documents and Settings\850owner\Desktop\local_volvo850diag_(v0_9)\logs\

      If you don't define RT_ELM327_LOGS_DIR, then the default for the Logs directory is whatever directory that the TEMP environment variable indicates.

      If you can't use an environment variable, then you can manually select the directory after Realterm begins (by typing into Realterm's Capture tab's Capture "File" text box), or you can search the volvo850diag.html file (using a text editor) for "Force logs directory here" to see the line in which to hardcode the logs directory variable (ie, logs_dir).

    2. Only required if you plan to use Realterm's Send File button.

      Click New again, and create another new User environment variable. Call it RT_ELM327_SEND_FILES_DIR. Define it to point to the directory where you have extracted the ELM327 scripts, ie, wherever the \scripts directory is. Be sure the RT_ELM327_SEND_FILES_DIR definition ends with a backslash (\).

      If you don't define RT_ELM327_SEND_FILES_DIR, then the default for the Send Files directory is whatever directory that the TEMP environment variable indicates.

      If you can't use an environment variable, then you can manually select the directory after Realterm begins, or you can search volvo850diag.html for "Force scripts directory here" to see the line in which to hardcode the scripts directory.

    3. Strongly suggested if you will *always* be using the same ELM327 tool.

      However, really only required if scanner_type does not imply one of the symbolic "ports" listed below *or* if the symbolic port can not be connected to successfully.

      Click New again, and create a third new User environment variable. Call it RT_ELM327_PORT. It is the ELM327 COM port # which you should have determined when you installed the ELM327 serial drivers.

      If you don't know your ELM327 COM port #, then refer to How to Setup an ELM327 on WinXP for some help in determining the ELM327's COM port name (eg, COM8) which you can then extract the COM port # (eg, 8).

      The values of RT_ELM327_PORT include only the # portion of the COMn or COMnn name.  For example:

      • For COM7, RT_ELM327_PORT would be defined simply as: 7 (only that single character).

      • For COM25, RT_ELM327_PORT would be defined simply as: 25 (only those two characters).

      If you don't define RT_ELM327_PORT, then the port # will default to:

      • \Silabser0, if scanner_type equals ELM327 or ELM327-CP210x.
        That will probably work if your ELM327 uses a CP210x chip.

      • \VCP0, if scanner_type equals ELM327-FTDI.
        That will probably work if your ELM327 uses a FTDI chip.

      • \VCP0, if scanner_type equals OBDLink.
        That will usually work with an OBDLink SX USB device.
        If your OBDLink SX is VCP1 instead, then you probably have two FTDI devices plugged in simultaneously -- eg, a VAG/COM KKL FTDI USB cable for use by Vol-FCR might have been plugged in first, then an OBDLink SX USB cable for use by volvo850diag might have been plugged in afterwards. In that case, if you stop the programs using both of the FTDI devices, unplug both devices from their USB ports, then plug the OBDLink SX cable back in first, then the OBDLink SX USB cable should now be \VCP0 and should now work with volvo850diag. See the Multiple FTDI devices cause higher \VCPn note for more details.

      • \BthModem0, if scanner_type equals ELM327-Bluetooth or ELM327-BthModem0 or OBDLink-BthModem0.
        That will work if your generic ELM327, or your ScanTool.net OBDLink LX, OBDLink MX, or OBDLink MX+, uses Bluetooth and its COM port # is synonymous with \BthModem0.

      • \BthModem1, if scanner_type equals ELM327-BthModem1 or OBDLink-BthModem1.
        That will work if your generic ELM327, or your ScanTool.net OBDLink LX, OBDLink MX, or OBDLink MX+, uses Bluetooth and its COM port # is synonymous with \BthModem1.

      • \BthModem2, if scanner_type equals ELM327-BthModem2 or OBDLink-BthModem2.
        That will work if your generic ELM327, or your ScanTool.net OBDLink LX, OBDLink MX, or OBDLink MX+, uses Bluetooth and its COM port # is synonymous with \BthModem2.

      • \BtPort0, if scanner_type equals ELM327-BtPort0 or OBDLink-BtPort0.
        That will work if your generic ELM327, or your ScanTool.net OBDLink LX, OBDLink MX, or OBDLink MX+, uses Bluetooth and its COM port # is synonymous with \BtPort0.

      • \BtPort1, if scanner_type equals ELM327-BtPort1 or OBDLink-BtPort1.
        That will work if your generic ELM327, or your ScanTool.net OBDLink LX, OBDLink MX, or OBDLink MX+, uses Bluetooth and its COM port # is synonymous with \BtPort1.

      • \BtPort2, if scanner_type equals ELM327-BtPort2 or OBDLink-BtPort2.
        That will work if your generic ELM327, or your ScanTool.net OBDLink LX, OBDLink MX, or OBDLink MX+, uses Bluetooth and its COM port # is synonymous with \BtPort2.

      • \BthModem1, if scanner_type is not one of the expected values that have been programmed for. This "fallback" port # was changed in the volvo850diag v0.8beta45 release from its volvo850diag v0.7 (and earlier) value of \Silabser0, since the most common type of ELM327 tool seems to be the ultra-cheap Bluetooth devices, and setting this up to be \BthModem1 -- a different value than what ELM327-Bluetooth equates to -- might increase the likelihood of success.

      The scanner_type variable is defined in the volvo850diag.html file's "Define configuration constants" section. See the readme_volvo850diag.txt's "Setup of scanner_type" section for more details.

    To see what your RT* and TEMP environment variables are, type the following WinXP/Win7/Win10 CMD Prompt commands:

    > set rt
    > set temp

    TEMP is assumed to not have a terminating backslash (\), whereas RT_ELM327_LOGS_DIR and RT_ELM327_SEND_FILES_DIR do have the backslash.

    Adapt those "step 4" instructions involving Control Panel to your Windows version as you deem fit.

  6. Display your "local" copy of volvo850diag.html in Internet Explorer.

    This should be the version of volvo850diag.html extracted from the volvo850diag.zip mentioned above, not a Saved copy of the "online" volvo850diag.html page.

  7. Read the two Warnings at the top of the "local" volvo850diag.html page (at least the first time you display it).

    Also, read the Important README Notes for new volvo850diag v0.9.

  8. The first time you display the "local" volvo850diag.html, page down to the Intro to volvo850diag.html section, familiarize yourself with it, see if you've met all the Requirements, and check out the First Time Use and Typical Use sections.

  9. Once you get everything straightened out to the best of your knowledge, follow the instructions in the First Time Use section.

Note:
You do not need to be connected to the internet to run the "local" version of volvo850diag, the one extracted from volvo850diag.zip. That local volvo850diag.html page is intended to be run locally.

The only things you might want the internet for are: a) to access the online pages which are linked to in the instructions, and especially, b) to access the Volvo 850 V70 keyword D3 B0 protocol interpreter (when you want to alternate between scanning and interpretation, instead of completing all the scanning, closing volvo850diag, then getting the interpretations afterwards).

Hint:
Even though it's true you don't have to be connected to the net while using the (local) volvo850diag / Realterm GUIs, sometimes you might find it convenient to run your local copy of volvo850diag in IE, click on one of the Volvo 850 V70 keyword D3 B0 protocol interpreter links -- all of which will open up the online interpreter in a separate IE tab or window (since switching away from the volvo850diag window will close Realterm) -- then switching back and forth between the local volvo850diag and the online interpreter tab/window as the need dictates.

(better) Hint:
But probably less confusing would be to open up the online interpreter window in a non-IE browser.  That way you have less likelihood of getting confused between the multiple IE tabs.  And you would have greater potential for displaying the interpreter window simultaneously with the Realterm window and/or window displaying the log file and/or volvo850diag (IE) window -- depending on the display size of your Windows laptop, tablet, phone, etc.

First Time Use of volvo850diag and Realterm

The first time you use volvo850diag and Realterm you might follow procedures similar to the following, where it is assumed that Realterm is not already running:

  1. (optional, to lessen problems establishing ISO9141 connection)

    Turn off realtime virus protection (if and only if you are not connected to the internet). Stop or turn off any other Windows facility or program which you think could be a CPU hog that might disrupt the ability of volvo850diag and Realterm to respond to Volvo communication and either: a) thwart establishment of a ISO9141-2 connection, or b) cause data loss once the connection is established.

    Also, wait until the computer becomes quiescent if it has just been (re)booted, or if it has just returned from hibernation.

  2. Plug in the ELM327 compatible cable/device to the car's J1962 OBDII port.

    Plug in the ELM327 cable to an available USB or serial port, as appropriate, or pair your bluetooth ELM327 with your laptop / tablet / phone, or do whatever it takes to get your ELM327 "hooked" to your computer.

    During one of those two sub-steps, you should have seen the ELM327's light(s) indicate to you that the ELM327 device is ready to communicate. This will vary with each manufacturer's device. My ELM327 v1.5 clone USB cable cycles 5 lights, then leaves one of them on red. My OBDLink SX USB cable flickers its single light, then leaves it on green. Both of them illuminate the lights only after connecting to the USB port. The Bluetooth ELM327 devices -- including OBDLink LX BT, OBDLink MX BT, OBDLink MX+ BT, and cheap ELM327 BT clones -- have their own unique lighting behavior. It is usually quite easy to understand (after reading their literature).

    You can turn the ignition to position II either before you plug in the ELM327 or after you plug in the ELM327, but it's probably best that you let the ELM327's 1-2 second self tests complete before you turn on the Volvo's ignition, and/or that you let the Volvo's 5-10 second initial self tests complete (eg, the bell quits dinging) before you plug in the ELM327.

    If you prefer, you can delay the "ignition to pos II" action until step 24, just before issuing the first commands to the Volvo.

  3. Display volvo850diag.html with Internet Explorer.

    Verify there are only two Warnings at the top of the "local" volvo850diag.html page. If you've never read the warnings, then do so now.

    If you see three Warnings, then you're using the "online" version of volvo850diag.html, instead of the "local" version. The online version is good for reading the instructions and familiarizing yourself with volvo850diag, but it can **NOT** run Realterm successfully to talk with your Volvo. So if you see three Warnings, then back up to the Requirements section volvo850diag distribution requirement paragraph and start afresh from there.

  4. In Win7/Win10 IE11, if the bottom of the page has a popup box that says: "Internet Explorer restricted this webpage from running scripts or ActiveX controls.", along with an associated "Allow blocked content" box, then click on Allow blocked content, and skip to step 8.  If you fail to perform this on Win7/Win10 IE11, your "Start Realterm" button will not start Realterm, and your "Options" button will not jump to the OPTIONS box.

    In WinXP IE8, if the top of the page says: "To help protect your security, Internet Explorer has restricted this webpage from running scripts or ActiveX controls that could access your computer. Click here for options...", and if there's an exclamation mark without any accompanying text in the left side of the Status bar, then go to the next step.

    However, if another message appears at the bottom of the IE11 page or top of the IE8 page, there's potentially something wrong. It's up to you to figure out how to proceed from that situation. First make sure that you are using the "local" version of volvo850diag.html extracted from the volvo850diag.zip distribution mentioned in Requirements section volvo850diag distribution requirement paragraph. Do not use a saved copy of the "online" volvo850diag.html. I had lots of problems doing it that way. That's why I created this "local" version.

    Maybe your different message at the top is due to you having different Security settings than I have in my Internet Explorer.

    For example, Mike91 mentions in this brickboard.com post:

    "The main problem I had was getting Active X working from volvo850diag.html with my Win XP laptop and IE8. I finally realized that all the volvo850diag files when unzipped had an Advanced Property that indicated the file was blocked because it was from another computer. I manually opened the properties for each file and removed the block."

    and in answer "A6" of this 1-day-later post, he further explains the problem / solution:

    "The Blocked property appeared when selecting the file in Windows Explorer and viewing its properties. I have never seen this before - it happened on my WinXP laptop but not on another WinXP desktop machine. Perhaps it is related to some security setting. Active X would not work until I clicked the Unblock button. I uploaded an image showing the file property window."

    [Apparently, you have to paste the image link at the bottom of that page into a new tab/window in order to see the Windows Explorer Advanced Properties dialog box that contained the "Unblock" button.]

    If that example doesn't help you, then you'll have to figure out by yourself if your problems arise due to: different IE security settings, or some other reason. I haven't a clue.

    Hints:
    There's a couple of things that might help you if you get stuck here or in the next several steps (before step 22):
    • Refer to the Win7_IE11_Options_Advanced*.png snapshots provided in the \screen_snapshots directory, *if* you suspect your Win7/Win10 IE11 options might not be setup correctly.  The options shown in those images are what was used by the Win7 IE11 test machine for volvo850diag v0.8betaNN and v0.8.

    • Refer to the brief pictorial overview of the volvo850diag / IE / Realterm combo that's available both a) in the \screen_snapshots directory's volvo850diag_v0_8_*.png images, and b) online here.  Those v0.8 .png images should still be useful at showing a little bit of the initial volvo850diag v0.9 setup.  Review those images in numerical order and pay attention to the filenames, since the filenames are the only textual documentation provided with the images.
  5. In Win7/Win10 IE11, click on the Allow Blocked Content button in the "Internet Explorer restricted this webpage from running scripts or ActiveX controls" popup at the bottom of the IE11 page. Then skip to step 8.

    In WinXP IE8, click on the box at the top of the Internet Explorer's display pane, then either click Allow Blocked Content... (or type A).

  6. In WinXP IE8, an additional Security Warning dialog box appears that says: "Allowing active content such as script and ActiveX control can be useful. However, active content might also harm your computer. Are you sure you want to let this file run active content?"

  7. In WinXP IE8, select Yes (or type Y).

  8. An Internet Explorer dialog box appears which says: "An ActiveX control on this page might be unsafe to interact with other parts of the page. Do you want to allow this interaction?"

    Select Yes (or type Y).

  9. Let's take a breather.

    At this point, hopefully you've done all the enabling of ActiveX and scripting that you need to.  If you discover that your "Options" button will not jump to the OPTIONS box, that's a strong indicator that ActiveX / scripting is still not sufficiently enabled.

    On Win7 IE11, if you see a box (near the center of the screen) appear very briefly then disappear (when performing the following steps), that often indicates you have an error that was attempted to be reported, but IE script debugging has not been enabled (as described above), so the fleeting box was erased immediately. After enabling IE11 script debugging, press F5, then start again at step 8. [Else bypass the F5 and just start afresh at step 3.]  The next time around your "Webpage Error" will hopefully persist, so you can then find the problem and fix it.

  10. The "Start Realterm" button should be followed by: <<< Need to "Start Realterm".

  11. Click Start Realterm.

  12. A Realterm window titled "Realterm: Automation Server 2.0.0.70" should open then immediately change its title to Realterm for Volvo 850 SVC70 Diagnostics via ELM327.  You probably will not even see the first "...Automation Server..." title.

    If you don't see the Realterm window, but instead see several newly displayed paragraphs between the "Start Realterm" button and the "Read All DTCs" button, then: a) on WinXP IE8, you should read those paragraphs and double-click on the "Done" with exclamation mark on the lower left in the Status bar, or b) on Win7/Win10 IE11, you should view the message displayed in the white text area of the "Webpage Error" script debugging box. If the error messages say: "Automation server can't create object", then you most probably answered "No" to that "An ActiveX control on this page...Do you want to allow this interaction?" question mentioned in step 8.

    You'll have to press F5 to refresh the page, then start again at step 8.

    Warning / Hint / Solution:
    Use IE script debugging if no "Done" in IE Status bar
    If your Status bar doesn't show the "Done" with exclamation mark, yet you still have several paragraphs remaining between the "Start Realterm" and "Read All DTCs" buttons, then you'll have to "wing it" to figure out your problem. I encountered that situation when testing volvo850diag / Realterm on a Win7 system while using IE11 and on a Win10 system while using IE11. I haven't been able to determine how to get the "Done" with exclamation mark to appear in IE11. It seems that behavior might have been removed from IE10 or IE11 (supposedly for performance reasons). So I temporarily enabled script debugging for IE in order to locate the source of the error. That involved clicking on the IE11 equivalent to IE8's Tools / "Internet Options" / Advanced, then unchecking "Disable script debugging (Internet Explorer)".

    Repeat: If your Status bar doesn't show the "Done" with exclamation mark, yet you still have several paragraphs remaining between the "Start Realterm" and "Read All DTCs" buttons, then enable IE script debugging, leave the IE11 "Webpage Error" window open, and use that window -- in conjunction (if necessary) with the Console log window provided with the F12 Developer Tools -- to (hopefully) determine the source of the error. For details on how to enable IE11 script debugging and how to use it with the F12 Developer Tools' Console log, refer to the Strong Hint for Win7/Win10 IE11 Error Debugging shown in the Core Requirements section.

  13. If the Realterm window did appear, but the paragraphs between the "Start Realterm" and "Read All DTCs" buttons still remain, then the most likely problem is that the ELM327 is not plugged in yet. If that's the case, then: a) double-click on IE8's "Done" with exclamation mark, or b) look in IE11's "Webpage Error" popup, and check if the "ie_BadId - Specified comport doesn't exist" error has occurred. If that's the case, then plug in the ELM327, press F5 to refresh the page, then start again at step 8.

    If the ELM327 was already plugged in, but you still have the "ie_BadId - Specified comport doesn't exist" error, then the most likely problem is: a) the "scanner_type" variable in volvo850diag.html doesn't match your type of ELM327 compatible device, and/or b) the RT_ELM327_PORT environment variable has not been defined for your ELM327 device's COM port. See step 3b in "Installation and Setup of volvo850diag" in order to define "scanner_type" properly. Alternatively, see step 4c in "Installation and Setup of volvo850diag" in order to define the RT_ELM327_PORT environment variable (after you've successfully installed any drivers needed by your ELM327, if any, and determined the COM port #). When finished with that "scanner_type" editing or environment variable setup, press F5 to refresh the page, then start again in this section at step 8.

    Otherwise, if the ELM327 was already plugged in and you think either "scanner_type" or RT_ELM327_PORT is defined properly, then volvo850diag is probably manifesting some sort of HTML or Javascript error. To determine what the error is, you'll have to either: a) double-click "Done" with exclamation marks in IE8 Status bar, or b) use the IE11 "Webpage Error" box and F12 Developer Tools Console log (as described above), That should tell you on which line of the volvo850diag.html or volvo850diag_all_ecus_scan.js files that the error occurred. Good luck with the debugging. Most of these problems can be solved with mild persistence, maybe a little bit of research on the net relating to Javascript or HTML, and/or resorting to IE8 to quickly isolate Javascript syntax errors (since IE8 is superior to IE11 at immediately isolating the Javascript error's line #). It will probably also involve editing volvo850diag.html and/or volvo850diag_all_ecus_scan.js, saving the edit, pressing F5 to refresh the page, then starting again at step 8.

  14. If the IE8 Status bar simply says "Done" or the IE11 "Webpage Error" box does not appear, then you're probably good to go.  The "Warnings" box (at the top of the page) should be gone, and there should be no explanatory paragraphs between the "Start Realterm" and "Read All DTCs" buttons. There should be a Realterm for Volvo 850 SVC70 Diagnostics via ELM327 window that has appeared, and it should have most of its values already setup to talk with the ELM327.

  15. The Realterm window is a bit larger than the default Realterm window (that appears when running Realterm from the Start menu). And it should have a red Capture box at the bottom, which indicates that Capture has already been turned on and is ready to start recording in the file specified by the Capture pane File field. If the Capture box is not red, then you can click on the "..." button, specify a filespec, then click Start: Overwrite 1-3 times until both the "Start: Overwrite" and "Start: Append" buttons are dimmed, the Stop Capture button is available for pressing, and the Capture pane is red.

    If you want to change the directory that volvo850diag instructs Realterm to write the Capture log file to, you can do so by defining the RT_ELM327_LOGS_DIR environmental variable. It will take effect the next time Internet Explorer runs volvo850diag.html. So if you want it changed now, first create or edit the RT_ELM327_LOGS_DIR as described in step 4a of the "Installation and Setup of volvo850diag" section, then start afresh at step 3 in this "First Time Use" section.

    The filename will always be in the form: volvo850diag_YYYYMMDD_HHMMSS.log, where the suffix is for the year, month, day, hour, minute, second that the capturing was begun. Since the log file is always created, you'll have to be attentive to occasionally deleting any log files which are no longer useful to you.

    The final thing to mention about Realterm's Capture tab is that the Direct Capture box should not be clicked, since we need to view the message exchange in the terminal pane and sometimes even type into the terminal pane. One or both of those doesn't seem to work when Direct Capture is checked.

  16. Once you become familiar with how Realterm operates you can skip to step 19. The following two steps are for beginners and for debugging strange behavior.

  17. Click Realterm's Display tab.

    • The "Display As" is set to Ansi. This is the only setting that seems to do everything we need it to do.

    • The little box to the lower right of the "Display As" words seems to work OK either checked or unchecked.

    • The "Half Duplex", "Invert", and "7Bits" flags should be unchecked.

    • The "newLine mode" flag is your choice. I leave mine unchecked, but you can try yours checked to see the differing results, if you so choose.

    • The default for Data Frames Bytes was 2. I've used it at 80, 120, and now 132. There is one of the keyword D3 B0 protocol responses that is 121 bytes long. So that's why I chose 132. If you're going to feed the log into the Volvo 850 V70 keyword D3 B0 protocol interpreter to get the log interpreted, this "Data Frames Bytes" should be higher than the length of the longest message. Otherwise, the (less than brilliant) interpreter will not recognize the message.

    • Realterm v2.0.0.70 is very persnickety about increasing the "Rows". That's a very good way to generate an access violation. If you need Rows larger, then you should change it in the volvo850diag.html source where it says "Rows=", then rerun volvo850diag.

  18. Click Realterm's Port tab.

    • The "Baud" should say 38400 for most ELM327 devices (or 115200 for OBDLink devices). If 38400 doesn't work for your ELM327, then you'll have to change it to the proper baud rate by editing the "RT.baud=" line in volvo850diag.html. You can use the following two notes as a guide to which line will need editing if your device's baud rate is different from 38400 or 115200.

      Note on most commonly used ELM327 baud rates:
      By far and away the most commonly used ELM327 baud rate is 38400:

      RT.baud=38400;

      The second most commonly used ELM327 baud rate is 115200:

      RT.baud=115200;

      But normally you should not have to worry about this, since proper defining of "scanner_type" will cause the proper baud rate to be setup for you automatically.

      Note only for those that must change to a speed other than 38400 or 115200:
      For those of you who must change the speed to something other than 38400 or 115200 (eg, 9600, 19200, 57600, etc), you can change it in the Realterm window's Port tab, but eventually you should change it in the volvo850diag.html source that is driving this window, so you'll never have to change it on the Port tab again.  For example, if you needed to change the baud rate to 57600 baud, then change the following line in volvo850diag.html:
      RT.baud=38400;
      to:
      RT.baud=57600;
    • Parity=None, Data Bits=8 bits, Stop Bits=1 bit, Hardware Flow Control=None.

    • The "Port" field you may have to change.

      If you haven't already successfully specified the COM Port # with the RT_ELM327_PORT environment variable, then it will default to the COM Port # associated with the symbolic device names "\Silabser0", "\VCP0", "\BthModem0", "\BthModem1", "\BthModem2", "\BtPort0", "\BtPort1", or "\BtPort2", depending on how scanner_type has been defined.  See RT_ELM327_PORT setup instructions for details.

      You should have already detected/adjusted your COM port # with the instructions at How to Setup an ELM327 on WinXP. So its just a matter of using that same COM port # in Realterm's "Port" field, either by manually selecting on the Port tab, forcing the Port # to always be set via the RT_ELM327_PORT environment variable, or relying on the "\Silabser0", "\VCP0", "\BthModem0", "\BthModem1", "\BthModem2", "\BtPort0", "\BtPort1", or "\BtPort2" symbolic device names to successfully specify the port. That last case (of relying on one of the symbolic device names) will oftentimes work if your ELM327 uses a CP210x, FTDI, or Bluetooth chip *and* you have the scanner_type variable defined to correctly reflect that chip, or you specifically have defined scanner_type to reflect the specific symbolic port name for your ELM327.

      To have Realterm reevaluate your particular Port # used for ELM327 communication, follow this procedure (which is customized for my ELM327 v1.5 USB clone that uses a CP210x chip):

      1. Click the Port tab.
      2. Click the arrow for the Port # pulldown.
      3. Search for an entry that says "\Silabser0" or at least begins with "\Silabser". If you see it, skip to step e.
      4. If you don't see it, then double click "(double click to scan ports)". Then once "(double click to scan ports)" appears as the selected port, double click it again. If an entry beginning with "\Silabser" appears, then go to step e.  If it doesn't appear, then there's likely a problem with your ELM327 driver setup. So click the volvo850diag's Close Realterm box to exit Realterm, then follow the guide at How to Setup an ELM327 on WinXP. Once that is done, refresh the volvo850diag page and begin afresh with step 3.
      5. Select the entry that begins "\Silabser", then click the Open button twice so that the Port status appears as "nn 38400 8N1 None", where "nn" is your newly selected Port #.

      or follow this alternate procedure (which is customized for my OBDLink SX USB that uses a FTDI chip):

      1. Click the Port tab.
      2. Click the arrow for the Port # pulldown.
      3. Search for an entry that says "\VCP0". If you see it, skip to step e.
      4. If you don't see it, then double click "(double click to scan ports)". Then once "(double click to scan ports)" appears as the selected port, double click it again. If an entry beginning with "\VCP0" appears, then go to step e.  If it doesn't appear, then there's likely a problem with your ELM327 driver setup. So click the volvo850diag's Close Realterm box to exit Realterm, then follow the guide at How to Setup an ELM327 on WinXP. Once that is done, refresh the volvo850diag page and begin afresh with step 3.
      5. Select the entry that begins "\VCP0", then click the Open button twice so that the Port status appears as "nn 115200 8N1 None", where "nn" is your newly selected Port #.

      or follow this generic procedure which uses the COM Port # which you are certain applies to your ELM327:

      1. Click the Port tab.
      2. Click the arrow for the Port # pulldown.
      3. Search for the entry for your known COM Port #.  If you see it, skip to step e.
      4. If you don't see it, then double click "(double click to scan ports)". Then once "(double click to scan ports)" appears as the selected port, double click it again. If an entry for your known COM Port # appears, then go to step e.  If it doesn't appear, then either you don't have the cable attached properly (or bluetooth paired properly) to your computer -- that's probably the most likely explanation -- or there's a problem with your ELM327 driver setup (or the post-"driver installation" configuration), or you're confused about what the COM Port # is or should be, or ??...I'm out of ideas...??  So click the volvo850diag's Close Realterm box to exit Realterm, ensure the ELM327 is properly "connected" to your computer, review the guide at How to Setup an ELM327 on WinXP, exit this page then redisplay it, and review this page again starting with the Requirements section.
      5. Select the entry that contains your known COM Port #, then click the Open button twice so that the Port status appears as "nn yyyyyy 8N1 None", where "nn" is that known COM Port #, and yyyyyy is the baud rate (typically 38400, 115200, 57600, or 9600).

      or adapt one of those three procedures for your particular ELM327 device.

      Multiple FTDI devices cause higher "n" in \VCPn
      Note that when you have multiple FTDI devices plugged in, eg, when you have an OBDLink SX USB cable and a VAG/COM KKL FTDI USB cable plugged in simultaneously, the "n" of the OBDLink SX cable's \VCPn may be something besides 0, depending on what sequence the FTDI devices were plugged in.

      If OBDLink SX USB was the first FTDI device to be plugged in, then it will still be the default \VCP0 device. All subsequent FTDI devices that are plugged in will be \VCP1, \VCP2, etc.

      But if you take that same scenario -- OBDLink SX USB plugged in first (and becomes \VCP0), then VAG/COM KKL FTDI USB is plugged in next (and becomes \VCP1), then unplug OBDLink SX for any reason, then the VAG/COM KKL FTDI USB still remains as \VCP1. If you then, plug the OBDLink SX back in, it becomes \VCP2 (not \VCP0).

      Only after the last FTDI device is removed, does the "n" of \VCPn get reset back to 0.

      For example, if you then unplug both the OBDLink SX and VAG/COM KKL FTDI USB cables, then plug the OBDLink SX back in all by itself, then the OBDLink SX becomes \VCP0 again.

      If you encounter this "multiple FTDI devices" problem often, then you'll probably be better off going to the trouble of setting the RT_ELM327_PORT environment variable instead. It will work regardless of how many other FTDI device are plugged in and regardless of what sequence they were plugged in.
    • The little box to the right of the "Change" button seems to work OK either checked or unchecked.

    • One other strange thing before leaving the Port tab. In the lower right corner, there is a status that normally says "Port: Closed". Even though the status says "Closed", you can still communicate with the ELM327 to issue AT commands. And you can almost always -- even though the status still says "Port: Closed" -- even communicate with the Volvo 850 / S70 / V70 / C70 / XC70 using any of the other volvo850diag buttons which use Realterm's PutString mechanism ("Read All DTCs" thru ECU 7A "Clear DTCs") or using Realterm's "Send ASCII" or "Send File" buttons.

      However, on very rare occasions, a status of "Port: Closed" will not work. I've tried to open the port automatically, but maybe I'm not issuing something correctly. So keep this in mind, especially when you have consistent failures when trying to establish communication via 0100 or the other OBDII diagnostic commands. You might need to (re-)perform the next step.

  19. Click Realterm's Port tab. If the status in the lower right corner says "Port: Closed", then click the Open button 2 times, until the Port status changes to nn 38400 8N1 None, where the initial "nn" is your particular Port #.

    For your specific ELM327, the speed might be different from 38400. For example, on a ScanTool.net OBDLink SX USB, OBDLink LX BT, OBDLink MX BT, or OBDLink MX+ BT, the speed would change to nn 115200 8N1 None.

    Hint #1:
    The OBDLink LX BT can actually operate at either 115200 baud or 38400 baud.  So if nn 115200 8N1 None doesn't work, then try nn 38400 8N1 None -- or vice versa.

    Hint #2:
    The toggling of the Open button is rarely necessary, so I suggest you usually skip this step, and perform it only when forced to.
  20. Click Realterm's Send tab.

    • The Send tab is where we'll stay most of the time while scanning these Volvos.

    • Most things should be setup for you correctly on Realterm's Send tab. The primary things that you'll see changing on that Send tab as you press the volvo850diag buttons are:

      • There's two strings which you can send by pressing the Send ASCII button on their respective lines. If you click on the little arrow to the right of the commands, it will show other strings in the list, if any. You can usually get by without ever using these buttons, but sometimes they come in handy for issuing a single request, especially ones which you can't remember the syntax of. Each button can have a total of 10 strings in their pulldown list.  volvo850diag populates them with what I think the most useful commands / requests are for whatever volvo850diag button was pressed.

      • "Dump File to Port" shows the name of a file which will be sent, if you press Send File. It is only applicable when using Send File. Due to the problems mentioned in a prior note, it's probably seldom, if ever, that you'll be using "Send File", so it's unlikely you'll need to worry about this "Dump File to Port".

      • The Delays (to the right of the Send tab's Stop button) change as the need arises. Those Delays are only applicable when using Send File, so you'll seldom, if ever, need to worry about them. [See volvo850diag.html source if interested in more details.]

    • At the top of the Terminal pane there is some yellow text that ends with a timestamp (followed by the ELM327 ">" prompt). I've found the timestamps convenient when analyzing the logs, so they're sometimes inserted when starting an operation, and they're almost always inserted when finishing an operation. You can manually generate a similar timestamp by pressing one of the Timestamp buttons on the volvo850diag HTML display, but only after  Realterm has started and you see the "Realterm is ready" text to the right of the "Start Realterm" button.

    • If you ever see an RR91 appear, you can assume the ELM327 has generated an ERR91 message, which means you'll need to unplug the ELM327 then replug it back in and you may need to go back to the Port tab then click the Open button twice. The same actions should probably be taken for most any of the ELM327's ERRnn messages (which tend to display as RRnn).

      Recovering an unresponsive ELM327...
      You might first try: a) issuing an ATZ command with one of the Send ASCII buttons, or b) clicking once in Realterm's Terminal pane (where the yellow text appears), then typing ATZ and pressing the Enter key. See if that works to get the ELM327 communicating again properly (and its lights appearing normally). Oftentimes it does. If it did, then be sure to also issue an ATL1 command also with Send ASCII or by typing it in the Terminal pane.

      If there's no response from the ATZ command or if the lights indicate the ELM327 is locked up, then unplug and plug back in the ELM327 cable, then on the Port tab, Close and re-Open the port by clicking the Open button twice. Try an ATZ and ATL1 then.

      Another way which you can recover an ELM327 when its lights lock up and it is in a BUFFER FULL state is to simply click one of the volvo850diag buttons which issue an ATZ / ATL1 soon after they begin, eg, "Read All DTCs", "Quick Scan All ECUs", "Full Scan All ECUs", "My Extra Scans", "ATZ Setup for OBDII Emission Diagnostics", "ATZ Setup for ECUs 51/58/01/6E/2E/2F...", or "ATZ Reset SRI". This will usually unlock the ELM327. You might even use this as your preferred "recovering an unresponsive ELM327" mechanism.

  21. Set the ELM327 to use the ISO9141-2 protocol as its first choice.

    Note:
    As of volvo850diag v0.7, this step is no longer necessary, **IF** you have not redefined the default_set_protocol_cmd variable in volvo850diag.html.
    See the "Changing the default protocol" section of readme_volvo850diag.txt for details.

    If you have not re-defined that variable, then volvo850diag will automatically set the protocol for you, and you can safely skip now to the next step (step 22).

    If you have re-defined that variable but it now equals "ATSP 3", "ATSP 3A", or "ATSP A3", then you're still good to go, volvo850diag will automatically set a workable protocol for you, and you can safely skip now to the next step (step 22).

    If you have re-defined that variable to be some alternative protocol -- eg, "ATSP 0", "ATSP 5A", "ATSP 6A", etc -- then you're a pioneer, on your own, and have to decide for yourself what to do.

    If you have re-defined that variable to be a comment -- eg, "--ATSP 3" or "--ATSP 3A (or ATSP 3)" [notice the beginning hyphens which make it a comment] -- in order to maintain the volvo850diag v0.5 and v0.6 behavior, or just so you have absolute control of the protocol, then that's perfectly acceptable. However, you'll need to continue with the present step and make sure that the protocol is setup properly with the ATSP 3 or ATSP 3A commands...

    You will need to set the ELM327 to use the ISO9141-2 protocol as its first choice at least once -- the very first time you use the ELM327 for the Volvo 850 / S70 / V70 / C70 / XC70. After that first time, it depends on a combination of: a) what the default_set_protocol_cmd variable in volvo850diag.html equals, b) what the last successfully connected protocol was, c) what the last protocol specified by an ATSP or ATTP command was, d) whether an ATM1 command was in effect before your last successful connect, and/or e) whether your ELM327 is packaged into your cable, Bluetooth device, etc, with pin 5 set to 5V (to automatically powerup as if an ATM1 had been issued).

    The very first time you use the ELM327 for the 1996-1998 850/S70/V70/C70/XC70 (or other late-'90s Volvos), set the protocol as either ISO9141 (via ATSP 3), or ISO9141 with a fallback to any protocol (via ATSP 3A or ATSP A3). To do this:

    • click on the little arrow to the right of the pulldown list in the 2nd line which contains a "Send ASCII" button,
    • select either ATSP 3 (recommended) or ATSP 3A,
    • press the Send ASCII button,
    • select ATDP,
    • press Send ASCII,
    • verify the protocol is either ISO 9141-2 (for ATSP 3) or AUTO, ISO 9141-2 (for ATSP 3A or ATSP A3).

    If you only use the ELM327 with one protocol, then you'll probably only have to do this step one time. But if you use the ELM327 with multiple protocols, you'll likely have to repeat this step each time you return to using the ELM327 to communicate with one of these late-'90s KWPD3B0-conversant Volvos.

  22. Position your volvo850diag and Realterm windows where you can see both of them simultaneously.

  23. Move Realterm's Terminal pane vertical scroll bar slider as far to the bottom as it will go in the vertical scroll bar.

    This is necessary to see the bottom line of the Terminal pane (eg, to see each character as it is being typed by you or is being sent using Realterm's PutString or Send File mechanisms).

  24. Turn the ignition to position II, if you haven't done so already.

  25. In volvo850diag, click Quick Scan All ECUs.  This is the suggested first scan.

    Notice how new text appears in the Terminal pane at the top of the Realterm window. All that you have to do is observe the text to see that the scanning is proceeding like you expected, then wait for it to finish.

    It takes about 3.2 minutes for a Quick Scan All ECUs (using the distributed volvo850diag's enabled ECUs).

    When the operation is finished, you can bypass all the details below if you so choose and jump directly to the Scanning Cleanup section.

Hint:
For the time being, I'd suggest you use either the Read All DTCs, Quick Scan All ECUs, Full Scan All ECUs, My Extra Scans, or ATZ Reset SRI buttons and bypass everything in the remainder of the First Time Use section, unless you need to use one of the Clear DTCs buttons, or unless you need to repeat a scan for only 1 or 2 ECUs.

The next two steps in this First Time Use section deal with the buttons in the 3rd part of the blue box -- the OBDII Emission Diagnostics portion.

The two steps also serve as explanations for: a) how to manually type commands / requests into the Realterm Terminal pane, b) how to use the Send ASCII buttons, and c) how to use the Send File mechanism.

If you have a European or other non-USA 850 and S70/V70/C70/XC70, your OBDII emission diagnostic capability is likely non-existent (or close to useless). If you know for certain that your Volvo does not have OBDII emission diagnostic capability, and if you don't mind skipping the explanations on manual interactive input, Send ASCII buttons, and the Send File button, then you can go ahead and skip to step 28.

Note on OBDII capability for non-USA cars:
It's worth noting that (as of 2019-06-08) kwpd3b0_interpreter has seen several non-USA '96-'98 850 and S70/V70/C70/XC70 that do have useful OBDII capability with somewhere between 13 and 20 PIDs.  Most of those cars are suspected to be using either: a) USA ECMs, or b) non-USA ECMs that have been reflashed like the USA ECMs.  That's sheer speculation.  In any case, it is possible for '96-'98 850/S70/V70/C70/XC70 to use the USA-mandated OBDII emission diagnostics in cars which conventional wisdom says have no OBDII emission diagnostic capability.

So if you have a non-USA 850/SVC70, it might be worth a try to run the OBDII Scan at least once just to see what happens.

Also, I've seen 850 from Europe, Thailand, Australia, New Zealand (and an SVC70 from Europe) that did have their transmission ECU respond to an OBDII emission diagnostic request (yet their engine ECU did *not* respond to any OBDII request).  But those cases are of limited use, since they seem to only be able to report that there is only 1 PID (ie, 0101 -- for the transmission only). And, in some cases, they have reported an OBDII transmission DTC (eg, P0120 or P0755).

Here's the breakdown of the non-USA cars which *did* have OBDII emission diagnostics responses of some kind (at some point in time):

- 2 -- OBDII 13 PIDs. 7a? No (is presumed to have Motronic 4.3). Canada.
- 1 -- OBDII 13 PIDs. Australia (before M44 replaced probably a M43).
- 2 -- OBDII 14 PIDs. 7A? Yes. France, Sweden.
- 3 -- OBDII 19 PIDs. 7A? Yes. Netherlands, Sweden.
- 1 -- OBDII 20 PIDs. 7A? Unknown. Finland.
- 9 -- OBDII 20 PIDs. 7A? Yes. Canada, France, Germany, Denmark, Finland, Poland, New Zealand.
- 1 -- OBDII 0101 for transmission only. OBDII 0100? Unknown. 7A? Unknown. UK.
- 2 -- OBDII 0100 and 0101 for transmission (probably) only. Poland, Thailand.
- 1 -- OBDII 0100 and 0101 for transmission (probably) only. 7A? No. Fenix 5.2? Yes. Finland.
- 5 -- OBDII 0100 and 0101 for transmission only. 7A? No. France, Czechia, Sweden, Finland.
- 3 -- OBDII 0100 and 0101 for transmission only. 7A? No. 11 (MSA 15.7)? No. UK, Netherlands, Australia.
- 1 -- OBDII 0100 and 0101, 03, 07 for transmission only. 7A? No. Fenix 5.2? Yes. Australia.
- 3 -- OBDII 0100 and 0101, 03, 07 for transmission only. 7A? No. Germany, Australia, New Zealand.

The non-USA OBDII responses were first seen by kwpd3b0_interpreter on a 2014-09-12 scan.

Any good OBDII software package will be superior to the volvo850diag OBDII functions, because most any OBDII software package will automatically interpret its raw data into something immediately meaningful to you. Oftentimes, those packages will also include the ability to see repeated updates via a Live Data function and may also include some sort of plotting capability. If you already have such a package setup, then you can just skip these OBDII steps and jump to step 28.

But if you don't yet have such an OBDII package setup or find it temporarily inconvenient to use, then volvo850diag's crude OBDII functions might be helpful.

The crude OBDII emission diagnostics capability provided with volvo850diag can be used to:

However, volvo850diag only provides the raw OBDII data, without any interpretation.

Hints for interpreting OBDII data:
The kwpd3b0_interpreter.html page can interpret most of your OBDII emission diagnostic responses if you paste them into the Paste Volvo 850/SVC70 Communication here box and press Interpret.

You've also got the option to look at the Volvo 850 OBDII FAQ question: "How do I interpret all my Volvo 850's emission diagnostics values obtained via manually issued commands to the ELM327?" to see some breakdowns, explanations, and examples of responses to 0100, 0101, 03, and other 01xx requests.  But with this second option, you'll have to do your own interpreting.

So much for the introduction to volvo850diag's OBDII capabilities. Now let's briefly explore it.

  1. Click ATZ Setup for OBDII Emission Diagnostics, then wait for the setup commands to finish. It takes about 9 seconds. A timestamp will appear when finished.

  2. Click OBDII Scan. It will attempt to perform all the following requests / commands, except that it will not try to clear the Emission DTCs.  [You'll have to clear the Emissions DTCs via the Clear DTCs button.]

    • 0100 -- Supported PIDs, KeepAlive.
    • 0101 -- # DTCs, MIL (Check Engine Light), Readiness Monitors.
    • 03 -- Read Emission DTCs (Engine/Fuel DTCs).
    • 07 -- Read Pending Emission DTCs.
    • 04 -- Clear Emission DTCs and Pending Emission DTCs.
    • 0103 -- Fuel System Status.
    • 0104 -- Calculated LOAD.
    • 0105 -- Engine Coolant Temp.
    • 0106 -- Short Term Fuel Trim.
    • 0107 -- Long Term Fuel Trim.
    • 010C -- Engine RPM.
    • 010D -- Vehicle Speed.
    • 010E -- Ignition Timing Advance.
    • 010F -- Intake Air Temp --
                  [only on Motronic 4.4 (according to mercuric);
                  seen on 20 of 40 850/S70/V70/C70/XC70 w/ M44.]
    • 0110 -- MAF.
    • 0111 -- Absolute Throttle Position.
    • 0112 -- Commanded Secondary Air Status -- [only some cars]
    • 0113 -- Location of Oxygen Sensors.
    • 0114 -- O2 Bank 1 Sensor 1 (O2S11).
    • 0115 -- O2 Bank 1 Sensor 2 (O2S12) -- [seen on 27 of 40 850/SVC70 w/ M44].
    • 011C -- OBD Requirements Vehicle Designed For --
                  [seen on 27 of 40 850/S70/V70/C70/XC70 w/ M44].
    • 011D -- Location of Oxygen Sensors (O2S11-O2S42) (alternative) --
                  [seen on 26 of 40 850/S70/V70/C70/XC70 w/ M44].
    • 011E -- Power Take Off (PTO) Status -- [seen on 26 of 40 850/S/V/C/XC70 w/ M44].
    • 0120 -- PIDs used in 21-40 range -- [seen on 26 of 40 850/SVC70 w/ M44].
    • 01?? -- ??...others might need to be added here, eg, note how
                  this USA '95 850 NA wagon w/ Motronic 4.3, manufactured 1995-03,
                  had 10 additional OBDII PIDs between 0168 and 0180
                  [thank you Aleksi for making us aware of some more OBDII PIDs
                  on at least one of the '95-'98 850/SVC70]...??
    • 020200 -- PID responsible for the OBDII emissions Freeze Frame (if any).
    • 020000 -- Supported Freeze Frame (FF) PIDs.
    • 020300 -- FF Fuel System #1.
    • 020400 -- FF Calculated LOAD Value.
    • 020500 -- FF Engine Coolant Temp.
    • 020600 -- FF Short Term Fuel Trim.
    • 020700 -- FF Long Term Fuel Trim.
    • 020C00 -- FF Engine RPM.
    • 020D00 -- FF Vehicle Speed.
    • 02??00 -- ??...others might need adding here for MSA15.7/etc...??
    • ATRV -- Read battery voltage.

    That's the easiest way to do an OBDII Emission Diagnostics scan. If that's sufficient for you, then go to step 28 now. Otherwise, explore some alternative ways to do OBDII scanning.

    Issue the OBDII emission diagnostics requests: 0100, 0101, 03, 07, etc.

    You can enter them interactively as follows:

    • Click once in the Realterm terminal pane (where the yellow text is).

    • Type 0100, then press the Enter key.

      After a few seconds, it should respond with two lines containing "41 00" that look somewhat like the following if you have headers turned off (via ATH0):

      BUS INIT: ...OK
      41 00 80 00 00 00 
      41 00 BE 1D B0 00 
      

      or like the following if you have headers turned on (via ATH1):

      BUS INIT: ...OK
      48 6B 1F 41 00 80 00 00 00 93 
      48 6B 17 41 00 BE 1D B0 00 96 
      

      Sometimes the "BUS INIT: ...OK" line does not appear. But that's OK as long as the other two lines do appear.

    • Type 0101 and press Enter to get a bunch of diagnostic states.

    • Type 03 and press Enter to see the emission diagnostic DTCs, if any.

      If the ELM327 responds with "NO DATA", then there are no OBDII DTCs.

    • Type 07 and press Enter to see any pending emission diagnostic DTCs, if any.

      If the ELM327 responds with "NO DATA", then there are no Pending OBDII DTCs.

    • Type 04 and press Enter if you want to clear all the OBDII emission diagnostic DTCs, pending DTCs, freeze frames, etc.

    But an easier way to issue these requests is by clicking the appropriate Send ASCII button. For example:

    • Click the Send ASCII button on the 1st line, the one that displays the 0100 request.

    • Click the Send ASCII button on the 2nd line, the one that initially displays the 0101 request.

    • Select one of the 03, 07, 04, 0103, 0104, 0105, ..., up thru 0113, 0114 requests via the little pulldown arrow to the right of either of the two boxes that allow command entry and are on a line with a "Send ASCII" button. If your desired emission diagnostic command appears in one of those pulldown lists, then select it and press the Send ASCII button that's on that line.

    If you want to issue a lot more emission diagnostic commands in one single action, then:

    • Change "Dump File to Port" from "elm327_volvo_850_svc70_01nn_02nn00.txt" to refer to the one of the "elm327_volvo_850*_01nn*.txt" variants provided in the distribution, or some edited version of one of those files that includes only the emission diagnostic commands which you want to send.

      Edit only the filename portion of that "Dump File to Port" field.  Be sure to leave the existing directory intact.

    • Click Send File and watch the Realterm's terminal pane. In particular note the responses to: 0100, 0101, 03, 07.

The same general techniques just mentioned in step 27 can usually be used for other buttons in the blue box:

The remaining steps in this First Time Use section deal with the buttons in the large 4th part of the blue box -- the ECU specific portion.

  1. Click volvo850diag's ATZ Setup for ECUs 51/58/01/6E/2E/2F... button. Notice how text appears in the Terminal pane at the top of the Realterm window. Also, on the volvo850diag page, there is a "Setup in progress..." message that appears for 11-14 seconds and buttons are disabled and enabled as the situation warrants.

    When all the Setup buttons are enabled, you can assume that the in-common commands used by the KWPD3B0-conversant ECUs (51, 58, 6E, 01, 2E, 2F, 7A, 11, 41, 29, 2D, 18, ...) have been issued successfully.

    You perform this step once, immediately before you press a Setup button for one of those ECUs, regardless what its number is. Subsequently, when you switch to another ECU, you can bypass this "ATZ Setup for KWPD3B0 ECUs" step and press the new ECU's Setup button, unless the ELM327 has been reset via power down, ignition off, ATZ, ATD, ATWS, unplugging / replugging, or has locked up or issued the ERRnn or RRnn messages.  In those cases, you'll likely have to repeat this step.

  2. Click volvo850diag's ECU 51 Setup button.

    Notice that the ATPC, ATIIA, and ATWM commands appear in Realterm's Terminal pane. Buttons on the ECU 51 line disable and enable as appropriate. 

    When Setup finishes, volvo850diag's "ECU 51 setup in progress..." message disappears.

  3. Users of ELM327 v1.2 thru v1.3a should skip to step 44 and first try Read DTCs, since the ATSI command is not available prior to ELM327 v1.4, and the Read DTCs should trigger an implicit Slow Init before reading the DTCs.

    If the ATSI buttons are unhighlighted, and if "var allow_ATSI = 0;" in volvo850diag.html, then skip to step 44 and first try Read DTCs, since the ATSI buttons have been disabled via the "allow_ATSI = 0;".

    Click the ECU 51 ATSI button. This performs an explicit Slow Init by issuing an ATSI command.

    However, the commands after the ATSI will vary depending on your definition for "scanner_type":

    1. If scanner_type = "ELM327", "ELM327-CP210x", "ELM327-FTDI", "ELM327-Bluetooth", "ELM327-BthModem0", "ELM327-BthModem1", "ELM327-BthModem2", "ELM327-BtPort0", "ELM327-BtPort1", "ELM327-BtPort2" -- or, in fact, any value which does not begin with "OBDLink" -- then it is assumed your ELM327 compatible device has a functional ATBD command.  For this case...

      An ATSI command is sent to the ELM327 and followed immediately by an ATBD command, then several seconds later, another ATBD is sent. Their successful responses will look like the following where zz can be any random hexadecimal characters:

      >ATSI
      BUS INIT: ...OK
      
      >ATBD
      06 51 55 D3 B0 4F AE zz zz zz zz zz zz 
      
      >ATBD
      05 82 51 13 A1 87 zz zz zz zz zz zz zz 
      

      The existence of: a) the BUS INIT: ...OK, and b) the beginning of the 1st ATBD response being in the form of 06 xx 55 D3 B0 4F yy, where xx is the ECU # (or ECU # with high bit set), the 3rd-6th bytes are 55 D3 B0 4F, and yy is the complement of xx, is a highly reliable indicator that the Slow Init worked correctly. The 2nd ATBD response being 05 82 xx 13 A1 cs, where xx is the ECU # and cs is the checksum, verifies that the KeepAlive has been sent by the ELM327 to the proper ECU. The zz instances are extraneous garbage in the ATBD buffer.

      If all that is the case -- ie, the bolded items in the grey box above appear in Realterm's Terminal pane and have the patterns just explained -- then skip to step 44.

      Otherwise, skip to the alternative, manual approaches mentioned in steps 31-35 (ATSI / ATKW) and steps 37-42 (ATSI / ATBD / ATBD), and try one (or both) of them.

    2. If scanner_type begins with "OBDLink"...

      For a ScanTool.net OBDLink SX USB, OBDLink LX BT, OBDLink MX BT, or OBDLink MX+ BT device, the ATBD command is useless, so a single ATKW command immediately follows the ATSI. Their successful response will look like the following:

      >ATSI
      BUS INIT: ...OK
      
      >ATKW
      1:D3 2:B0
      

      The existence of: a) the BUS INIT: ...OK, and b) the 1:D3 2:B0 is a usually reliable indicator that the Slow Init worked correctly.

      If all that is the case -- ie, the bolded items in the grey box above appear in Realterm's Terminal pane, the 1st keyword was D3, and the 2nd keyword was B0 -- then skip to step 44.

      Otherwise, just continue to the ATSI / ATKW alternative, manual approach which begins in step 31.

  4. Notice that the two lines in the Realterm window that contain the two Send ASCII buttons have the ATSI and the ATKW commands in them. That makes it very easy for you to manually issue ATSI, wait for the "BUS INIT: ...OK" response, then issue an ATKW. So now do that (as shown in the next several steps)...

  5. Press the Send ASCII button for ATSI.

  6. Wait 4-8 seconds for it to finish.

  7. Press the Send ASCII button for ATKW.

  8. If the ATSI produced the response "BUS INIT: ...OK" and if the ATKW produced the response "1:D3 2:B0", then you're good to go. The keywords of D3 and B0, in conjunction with the OK after the BUS INIT, are a strong indicator that the Slow Init worked. If that's the case, then skip to step 44.

  9. If you have an OBDLink SX USB, OBDLink LX BT, OBDLink MX BT, or OBDLink MX+ BT device, then skip to step 43.

  10. Notice that the two lines in the Realterm window that contain the two Send ASCII buttons have the ATSI and the ATBD commands in them. That makes it very easy for you to manually issue ATSI, wait for the "BUS INIT: ...OK" response, immediately issue an ATBD, followed 4-5 seconds later by another ATBD. So now do that (as shown in the next several steps)...

  11. Press the Send ASCII button for ATSI.

  12. Immediately after the response to ATSI is finished, press the Send ASCII button for ATBD.

  13. Wait 4-5 seconds.

  14. Press the Send ASCII button for ATBD again.

  15. If the ATSI produced the response "BUS INIT: ...OK" and if the 1st ATBD produced a response that begins "06 51 55 D3 B0 4F AE...", then you're good to go. The "55 D3 B0 4F" is a fairly strong indicator that the Slow Init worked. The "51" as the 2nd byte and the "AE" (ie, complement of "51") as the 7th byte say that you've inited ECU 51. And all 7 of the ATBD bytes taken together indicate 100% certainly that the Slow Init worked.

    As an extra check, see if the response to the 2nd ATBD is "05 82 51 13 A1 87...". That indicates that the KeepAlive is being sent by the ELM327 automatically as Tester 13 to ECU 51. If that's the case, then skip to step 44.

  16. If the ATSI did not produce the response "BUS INIT: ...OK", then first check in the lower right hand corner of the Realterm window that the Port status is: "nn 38400 8N1 None" (or "nn 115200 8N1 None"), where "nn" is your Port #, 38400 applies to most ELM327 devices, and 115200 applies to OBDLink devices [though OBDLink LX BT can use either 38400 or 115200].

    • If the Port status is "Closed", then repeat step 19, then perform steps 32-35.

    • If the Port status includes the "38400 8N1 None" (or "115200 8N1 None" for scanner_type beginning with "OBDLink"), then perform steps 32-35. Very infrequently, a second attempt at the ATSI is necessary.

    • If a 2nd attempt at repeating the ATSI / ATKW instructions in steps 32-35 fails, then fallback to one of these:

      • Begin again at step 29.
      • Begin again at step 28.
      • Attempt to recover with step 20's Recovering an unresponsive ELM327... instructions, then begin again at step 28. This is especially a good recovery candidate a) when more than one of the ELM327 lights are constantly lit, even when there's no communication, or b) when the lights are flickering constantly even when there's no known communication being sent (other than the every 3-4 seconds KeepAlive message). And it definitely is what you should do if c) you see ERR91, RR91, or most any of the ERRnn or RRnn messages from the ELM327.
      • Reevaluate your Port # as described in step 18. Begin again there at step 18. This is a likely problem when you first begin to use Realterm. But after you get it setup properly, this problem should seldom, if ever, return.
  17. Press Read DTCs for ECU 51 (COMBI).

    When it finishes volvo850diag's Full Scan, Quick Scan, and Clear DTCs buttons will also be enabled (ie, clickable), there will be a message underneath the 3 lines of volvo850diag's ECU 51 buttons, and in Realterm's Terminal pane a timestamp will follow the response to the Read DTCs request. Use the message that's below the 3 lines of volvo850diag's ECU 51 buttons as a guide in what to do next.

  18. Experiment to see how all the volvo850diag buttons work, how they are disabled and re-enabled, what messages appear in the volvo850diag window, and what yellow text appears in Realterm's Terminal pane.

    volvo850diag Button Behavior and Rules

    Since the buttons are now disabled (most of the time) when it is inappropriate to use them, it is fairly self-evident what you can click next. The basic rules to keep in mind are:
    • Generally, volvo850diag buttons will be disabled when it is inappropriate to use them.

    • The volvo850diag buttons Close Realterm, Timestamp, and Cancel can be clicked anytime they are enabled. This allows for:

      • exiting Realterm (cleanly) any time after it has started normally,
      • timestamping anything you desire once Realterm is running normally,
      • cancelling anything which is taking too long.
    • The Read All DTCs, Quick Scan All ECUs, Full Scan All ECUs, My Extra Scans, ATZ Setup for OBDII Emission Diagnostics, ATZ Setup for ECUs 51/58/01/6E/2E/2F..., and ATZ Reset SRI buttons, when clicked, will immediately cancel any other in-progress function.

    • The ECU nn Setup buttons and the other ECU nn buttons are sometimes enabled when it is inappropriate to use them. In those cases, if you click them, an ...Either: a) wait for it to finish, or b) press "Cancel" dialog box is displayed, which you'll then OK.

    • Since volvo850diag does not know when Realterm finishes a "Send File" operation, it is up to the user to act as the gatekeeper to avoid performing two different functions at the same time. The easiest way to avoid that problem is to never use the Realterm's Send File button. But if you do use it, then remember that as long as Realterm's "Dump File to Port" pane is not red, you can safely click any enabled volvo850diag button.

     
    Scan All ECUs Function Details

    Which function you choose depends on what you want to do.  The references to "enabled" and "disabled" ECUs means: "scanning is enabled or disabled in that ECU during these 'all ECUs' functions".  You can enable/disable the ECUs using the checkboxes in the OPTIONS box.
    • My Extra Scans via its "Minimal Scan" scans:

      • ELM327 version, protocol, and programmable parameters,
      • OBDII DTCs, Pending DTCs, and Coolant Temp (assuming OBDII scanning is not disabled),
      • DTCs for COMBI, SRS (if not disabled), ABS (if not disabled), AW 50-42 (if not disabled), Motronic 4.4 (if not disabled), MSA 15.7 (if enabled), Immobilizer (if enabled), '98 S70/V70/C70/XC70 ECC (if enabled), VGLA (if enabled), Add Heater 912-D (if enabled),
      • COMBI's Vehicle Mileage, RPM, Speed, Coolant Temp, Fuel Level, Flags (indicating Engine On, Service Light On, Low Fuel, etc), Ambient Temp (if '98 S70/V70/C70/XC70),
      • ATF Temp (*if* ECU 6E not disabled), and
      • Battery voltage,

       and via its optional, enableable facilities for advanced users scans:

      • a slew of optional things that can be manually enabled -- some by toggling checkboxes (Minimal Scan, CCSwmK1i, CCSwO, CCSwOmK1i) in the pastel red Options box, and others by editing flags in the .js file [see readme file and .js file for details],

       and via its v0.9-introduced, up-to-1-hour CCSwOmK1i live data loop scans:

      • ELM327 version;
      • OBDII DTCs, Pending DTCs, OBDII CEL/MIL ON/OFF, # Emission DTCs, Readiness Monitors, and OBDII PIDs for: Coolant Temp, Calculated LOAD Value, Short Term Fuel Trim, Long Term Fuel Trim, Engine RPM, Vehicle Speed, Ignition Timing Advance, Intake Air Temp (*if* ECU 7A not disabled), Mass Air Flow (*if* ECU 7A not disabled);
      • COMBI DTCs, DTC counters, Vehicle Mileage, SRI counters (Mileage, 1/4 Days, and Engine Hours since Reset SRI), and all COMBI live data, eg, Vehicle Speed, Fuel Level, Coolant Temp, Engine RPM, COMBI Flags (Manipulation [850], 48-pulse output Speed Signal, 12-pulse output Speed Signal, Fuel Consumption signal to Trip Computer [850], (-5 C to +2 C) "snowflake" Temperature light [SVC70], SERVICE light, Low Fuel light, D+ alternator voltage OK, etc), Ambient Temp [SVC70], Fuel Consumption [SVC70], Manipulation (Estimated "Lost" Mileage / Engine Hours VSS Missing) [every 10th loop];
      • AW 50-42 DTCs, and most automatic transmission live data (which is understood as of v0.9 release), eg, Gear-Shift Position, Brakes Status, Engine RPM, Mode Selection (E/S/W), ATF Temp, Trans Input RPM, Arrow Warning Light Status, Battery Voltage, etc (all those, *if* ECU 6E not disabled);
      • Motronic 4.4 DTCs, freeze frames for two M44 DTCs (that produce P0455, P0442), and all M44 live data, eg, Engine RPM, Engine Coolant Temp, Vehicle Speed, Status (CEL, Warmup/Trip/Drive cycles, Fuel Pump Relay, Active Fault, Open/Closed Loop, Fuel Cut-off, Throttle, EVAP Canister Shut-off Valve, SAS Pump, Engine Cooling Fan, TCM Rqst Ignition Retardation, etc), Ignition Timing Advance, Internal Load Signal, Front O2 Sensor Output Voltage, Rear O2 Sensor Output Voltage, Short Term Fuel Trim, Long Term Fuel Trim (Partial Load), MAF, Battery Voltage, Absolute Throttle Position, Atmospheric Pressure, Intake Air Temp (ie, Ambient Temp to M44, instantaneous), Ambient Temp (ie, Ambient Temp to M44, damped), Engine Coolant Temp (when engine turned on), M44 ECM Temp, etc (all those, *if* ECU 7A not disabled).

       and via its v0.8-introduced, up-to-1-hour CCSwOmK live data loop scans (available when CCSwOmK1i is unchecked):

      • ELM327 version;
      • OBDII DTCs, Pending DTCs, and OBDII PIDs for: Coolant Temp, Calculated LOAD Value, Short Term Fuel Trim, Long Term Fuel Trim, Engine RPM, Vehicle Speed, Ignition Timing Advance, Intake Air Temp (*if* ECU 7A not disabled), Mass Air Flow (*if* ECU 7A not disabled);
      • COMBI DTCs, DTC counters, Vehicle Mileage, SRI counters (Mileage, 1/4 Days, and Engine Hours since Reset SRI), and all COMBI live data, eg, Vehicle Speed, Fuel Level, Coolant Temp, Engine RPM, COMBI Flags (Manipulation [850], 48-pulse output Speed Signal, 12-pulse output Speed Signal, Fuel Consumption signal to Trip Computer [850], (-5 C to +2 C) "snowflake" Temperature light [SVC70], SERVICE light, Low Fuel light, D+ alternator voltage OK, etc), Ambient Temp [SVC70], Fuel Consumption [SVC70], Manipulation (Estimated "Lost" Mileage / Engine Hours VSS Missing) [every 10th loop];
      • AW 50-42 DTCs, and all automatic transmission live data, eg, Gear-Shift Position, Brakes Status, Engine RPM, Mode Selection (E/S/W), ATF Temp, Trans Input RPM, Arrow Warning Light Status, Battery Voltage, etc (all those, *if* ECU 6E not disabled);
      • Motronic 4.4 DTCs, freeze frames for four M44 DTCs (that produce P0171, P0172, P0455, P0442), and all M44 live data, eg, Engine RPM, Engine Coolant Temp, Vehicle Speed, Status (CEL, Warmup/Trip/Drive cycles, Fuel Pump Relay, Active Fault, Open/Closed Loop, Fuel Cut-off, Throttle, EVAP Canister Shut-off Valve, SAS Pump, Engine Cooling Fan, TCM Rqst Ignition Retardation, etc), Ignition Timing Advance, Internal Load Signal, Front O2 Sensor Output Voltage, Rear O2 Sensor Output Voltage, Short Term Fuel Trim, Long Term Fuel Trim (Partial Load), MAF, Battery Voltage, Absolute Throttle Position, Atmospheric Pressure, Intake Air Temp (ie, Ambient Temp to M44, instantaneous), Ambient Temp (ie, Ambient Temp to M44, damped), Engine Coolant Temp (when engine turned on), M44 ECM Temp, etc (all those, *if* ECU 7A not disabled).
    • Read All DTCs scans:

      • ELM327 version, protocol, and programmable parameters,
      • OBDII DTCs, Pending DTCs, and DTC which caused OBDII Freeze Frame (assuming OBDII scanning is not disabled),
      • DTCs, DTC-related data, and some Freeze Frames for COMBI, SRS (if not disabled), ABS (if not disabled), AW 50-42 (if not disabled), Power Seats (if enabled), Motronic 4.4 (if not disabled), MSA 15.7 (if enabled), Immobilizer (if enabled), '98 S70/V70/C70/XC70 ECC (if enabled), VGLA (if enabled), Add Heater 912-D (if enabled),
      • COMBI's Vehicle Mileage, RPM, Speed, Coolant Temp, Fuel Level, Flags (indicating Engine On, Service Light On, Low Fuel, etc), Ambient Temp (if '98 S70/V70/C70/XC70),
      • ATF Temp (*if* ECU 6E not disabled), and
      • Battery voltage.
    • Quick Scan All ECUs scans (or documents):

      • ELM327 version, protocol, and programmable parameters,
      • list of enabled ECUs,
      • list of disabled ECUs,
      • OBDII DTCs, Pending DTCs, and all Volvo 850 OBDII emission diagnostic data that I know exists on these cars, including all the Freeze Frame data (assuming OBDII scanning is not disabled),
      • DTCs, DTC-related data, some Freeze Frames, Hardware/Software versions, etc for COMBI, SRS (if not disabled), ABS (if not disabled), AW 50-42 (if not disabled), Power Seats (if enabled), Motronic 4.4 (if not disabled), MSA 15.7 (if enabled), Immobilizer (if enabled), '98 SVC70 ECC (if enabled), '98 SVC70 VGLA (if enabled), '98 SVC70 Add Heater 912-D (if enabled),
      • COMBI's Vehicle Mileage, Service Light Reset counters & limits, RPM, Speed, Coolant Temp, Fuel Level, Flags (indicating Engine On, Service Light On, Low Fuel, etc), Ambient Temp (if '98 S70/V70/C70/XC70),
      • Battery voltage, and
      • any other data accessed via AExx (or AExx00), B9xx (or B9xx00), A5xx01, or ADxx00 requests, **if** that data is interpreted by the jonesrh.info KWPD3B0 interpreter (at the time of the volvo850diag v0.9 release), or is expected to eventually be interpreted by the https://jonesrh.info/volvo850/kwpd3b0_interpreter.html interpreter.
    • Full Scan All ECUs scans:

      • ELM327 version, protocol, and programmable parameters,
      • OBDII DTCs, Pending DTCs, all Volvo 850 OBDII emission diagnostic data that I know exists, and some that I think might exist on 850/S70/V70/C70/XC70, including all their known Freeze Frame data (assuming OBDII scanning is not disabled),
      • All COMBI, SRS, ABS, AW 50-42, Power Seat, Motronic 4.4, MSA 15.7, Immobilizer, '98 SVC70 ECC, '98 SVC70 VGLA, '98 SVC70 Add Heater 912-D data that I know how to scan and can be accessed via AExx (or AExx00), B9xx (or B9xx00), A5xx01, or ADxx00 requests, including DTCs, Hardware/Software versions, other B9xx Saved Data, Live Data, Freeze Frames -- but all of this is only for those ECUs which are enabled -- and
      • Battery voltage.
     
    Hint:
    After one of those 4 major (bolded) functions finishes, you can immediately use any of the several ECU nn Setup buttons in case you need to use one of the Clear DTCs buttons, or you need to repeat a scan (or use an alternative scan) for 1 or more of the ECUs.
  19. When finished experimenting, go to the Scanning Cleanup section.

Typical Use

Once you get things setup, then your typical usage might be something similar to the following simplified cheat sheet:

  1. (optionally) Wait until your Windows machine becomes quiescent after a reboot.

    Oftentimes, that is all that's necessary to eliminate CPU hogs which sometimes disrupt communications -- especially for Bluetooth-based ELM327-compatible tools.

    Note:
    The disabling of realtime virus protection might not be necessary any longer.  I've been able to successfully perform extensive scans on one of my test systems while the realtime virus scanning was churning away.  But it is advisable to at least wait for any reboot activity to die down before using volvo850diag and Realterm to communicate with the car.

    Hint:
    Additionally, it is advisable to have your laptop / tablet 100% charged when starting volvo850diag (to lessen the possibility of communication problems).

  2. Plug in your (USB-based) ELM327 cable/device to a USB port.
    Alternatively, pair your Bluetooth-based ELM327 tool with the Windows machine.

  3. Display volvo850diag.html with Internet Explorer.

  4. Allow scripting and ActiveX.

    On WinXP IE8:

    1. Click on the "...running scripts or ActiveX controls..." box at the top of IE8.
    2. Click Allow Blocked Content... (or type A or a).
    3. Click Yes when the "Security Warning" dialog box appears.
    4. Click Yes in the "Internet Explorer" popup saying "An ActiveX control on this page...Do you want to allow this interaction?".

    On Win7/Win10 IE11:

    1. Click Allow Blocked Content in the "...running scripts or Active controls." box at the bottom of IE11.
    2. Click Yes in the "Internet Explorer" popup saying "An ActiveX control on this page...Do you want to allow this interaction?".

  5. Click Start Realterm.

  6. If several paragraphs remain between the "Start Realterm" and the "Read All DTCs" buttons, then deal with the error.

    On WinXP IE8:

    1. Double-click the "Done" with exclamation marks in IE8's Status bar lower left corner.
    2. Examine the resultant "Errors on this webpage might cause it to work incorrectly" box to (likely) determine the reason and source of the error that's causing Realterm to not run correctly.

    On Win7/Win10 IE11:

    1. Examine the already displayed "Webpage Error" box to (hopefully) determine the reason and source of the error.
    2. If no "Webpage Error" box is visible, see the disappearing or no "Webpage Error" box paragraph, and/or Strong Hint for Win7/Win10 IE11 Error Debugging to isolate the error that's causing Realterm to not run correctly.

    Correct any problem. Then repeat whatever is necessary. Refer to steps 12-13 in the First Time Use guide (or any of its surrounding steps, or, in fact, anything mentioned on this page).

  7. Verify that the Status bar simply says "Done" (or is blank), the Realterm window has gotten bigger, and now is titled Realterm for Volvo 850 SVC70 Diagnostics via ELM327, that a red Capture box is at the bottom, and that there is some yellow text on a black background in Realterm's Terminal pane that looks similar to one of the following examples (where any STI or STDI responses from devices whose scanner_type begins with "OBDLink" reflect that ScanTool.net OBDLink SX/LX/MX/MX+ device's firmware/hardware version numbers, the ECM is whatever you select in the OPTIONS box, the ELM327 version number will be your ELM327 device's version number, the ATDP and ATDPN responses will vary depending on what was most recently done with the ELM327 device, the "Enabled ECUs" and "Disabled ECUs" lines vary according to which ECU are enabled/disabled for scanning, and the timestamp will obviously be your present date/time)...

    Example #1 follows: ELM327 v1.5 USB -- no changes in Options box:

    ATZ
    OKTL17 v1.5
    
    >ATE1
    OK
    
    >-- Scanner type is: "ELM327".  ECM is: "none".  Model is: "850SVC70".
    ?
    
    >ATI
    ELM327 v1.5
    
    >ATDP
    ISO 9141-2          (varies depending on previous scan, etc)
    
    >ATDPN
    3                   (varies depending on previous scan, etc)
    
    >-- Default volvo850diag v0.9 "Set Protocol" command is: "ATSP 3".
    ?
    
    >-- Enabled ECUs: OBDII (33), COMBI (51), SRS (58), ABS (01), AW 50-42 (6E), M4.4 (7A).
    ?
    
    >-- Disabled ECUs: PSL (2E), PSR (2F), MSA 15.7 (11), Immo (41), '98 ECC (29), VGLA (2D), Add Heater 912-D (18).
    ?
    
    >------ Time: 2019-07-08 14:38:19.
    ?
    
    >

    Example #2 follows: OBDLink SX USB -- where scanner_type, volvo_model, and ECM were changed in Options box to reflect reality, and ECU 58 (SRS) and ECU 01 (ABS) were disabled, since scanning was only desired for OBDII, ECU 51 (COMBI), ECU 6E (AW 50-42), and ECU 7A (M44) [jonesrh's usual enabled ECUs configuration]:

    ATZ
    OKTL17 v1.3a
    
    >ATE1
    OK
    
    >STI
    STN1130 v4.2.5
    
    >STDI
    OBDLink SX r2.2
    
    >-- Scanner type is: "OBDLink".  ECM is: "Motronic 4.4".  Model is: "98 S70 GLT".
    ?
    
    >ATI
    ELM327 v1.3a
    
    >ATDP
    ISO 9141-2          (varies depending on previous scan, etc)
    
    >ATDPN
    3                   (varies depending on previous scan, etc)
    
    >-- Default volvo850diag v0.9 "Set Protocol" command is: "ATSP 3".
    ?
    
    >-- Enabled ECUs: OBDII (33), COMBI (51), AW 50-42 (6E), M4.4 (7A).
    ?
    
    >-- Disabled ECUs: SRS (58), ABS (01), PSL (2E), PSR (2F), MSA 15.7 (11), Immo (41), '98 ECC (29), VGLA (2D), Add Heater 912-D (18).
    ?
    
    >------ Time: 2019-07-09 15:44:18.
    ?
    
    >

    Example #3 follows: OBDLink LX BT -- where scanner_type, volvo_model, and ECM were changed by user in Options box to reflect reality, soon after the protocol had been set to A3 by xiaotec "850 OBD-II" Android app, yet ECU 2E (PSL), ECU 29 (ECC), and ECU 2D (VGLA) were enabled by user, since scanning was desired on all ECUs which exist on that 98 S70 GLT [that approach is useful when performing a "Read All DTCs" to check if any existent ECU (on that 98 S70 GLT) has a DTC]:

    ATZ
    OKTL17 v1.3a
    
    >ATE1
    OK
    
    >STI
    STN1155 v4.3.0
    
    >STDI
    OBDLink LX BT r1.2
    
    >-- Attempt to absorb possible garbage chars from some Bluetooth devices...
    ?
    
    >-- Scanner type is: "OBDLink-BthModem1".  ECM is: "Motronic 4.4".  Model is: "98 S70 GLT".
    ?
    
    >ATI
    ELM327 v1.3a
    
    >ATDP
    AUTO, ISO 9141-2    (varies depending on previous scan, etc)
    
    >ATDPN
    A3                  (varies depending on previous scan, etc)
    
    >-- Default volvo850diag v0.9 "Set Protocol" command is: "ATSP 3".
    ?
    
    >-- Enabled ECUs: OBDII (33), COMBI (51), SRS (58), ABS (01), AW 50-42 (6E), PSL (2E), M4.4 (7A), '98 ECC (29), VGLA (2D).
    ?
    
    >-- Disabled ECUs: PSR (2F), MSA 15.7 (11), Immo (41), Add Heater 912-D (18).
    ?
    
    >------ Time: 2019-07-10 16:55:40.
    ?
    
    >

    Example #4 follows: OBDLink MX+ -- where scanner_type was changed in Options box to successfully connect, ECM was not changed since it was unknown, volvo_model reflects the reality of an 850 (but year was not specified since it was unknown), and *all* ECUs were enabled, since scanning was desired to be attempted on all ECUs [useful as a quick, crude test to see which KWPD3B0-conversant ECUs exist on a car]:

    ATZ
    OKTL17 v1.3a
    
    >ATE1
    OK
    
    >STI
    STN2255 v4.5.12
    
    >STDI
    OBDLink MX+ r1.1
    
    >-- Attempt to absorb possible garbage chars from some Bluetooth devices...
    ?
    
    >-- Scanner type is: "OBDLink-BthModem2".  ECM is: "none".  Model is: "850".
    ?
    
    >ATI
    ELM327 v1.3a
    
    >ATDP
    ISO 9141-2          (varies depending on previous scan, etc)
    
    >ATDPN
    3                   (varies depending on previous scan, etc)
    
    >-- Default volvo850diag v0.9 "Set Protocol" command is: "ATSP 3".
    ?
    
    >-- Enabled ECUs: OBDII (33), COMBI (51), SRS (58), ABS (01), AW 50-42 (6E), PSL (2E), PSR (2F), M4.4 (7A), MSA 15.7 (11), Immo (41), '98 ECC (29), VGLA (2D), Add Heater 912-D (18).
    ?
    
    >-- Disabled ECUs:
    ?
    
    >------ Time: 2019-07-11 07:33:40.
    ?
    
    >
  8. Position your volvo850diag and Realterm windows where you can see both of them simultaneously.

  9. Move the Realterm Terminal pane's vertical scroll bar slider as far to the bottom as it will go in the vertical scroll bar. This is necessary to see the bottom line of the Terminal pane (eg, to see each character as it is being typed by you or is being sent by Realterm).

  10. Turn the ignition to position II, if you haven't done so already.

  11. In volvo850diag, click My Extra Scans, Read All DTCs, Quick Scan All ECUs, Full Scan All ECUs, or ATZ Reset SRI. The default is My Extra Scans if you just press Enter (immediately after the "Start Realterm" finishes).

    Observe the text appearing rapidly in the Realterm Terminal pane to see that the scanning is proceeding like you expected.

    Just wait for it to finish:

    • 1.6 (0.6 - 2.6) minutes for "My Extra Scans" (thru the end of "Minimal Scan"),
    • 2.2 (0.7 - 4.4) minutes for "Read All DTCs",
    • 3.2 (1.0 - 5.8) minutes for "Quick Scan All ECUs", and
    • 4.7 (1.3 - 9.1) minutes for "Full Scan All ECUs".
    • 0.6 minutes for "ATZ Reset SRI".

    where the first time is for the default ECUs that are enabled as distributed and the times in parenthesis are for minimum # of ECUs enabled (ie, COMBI only) and maximum # of ECUs enabled.

    When the operation is finished, jump directly to the Scanning Cleanup section, if you are finished.

    Jump to step 14 or step 15 if you want to deal with specific KWPD3B0-conversant ECU(s).

    Continue to the next step if you want to repeat or otherwise delve into the OBDII Emission Diagnostics.

The next two steps deal with the buttons in the 3rd part of the blue box -- the OBDII Emission Diagnostics portion.

  1. In volvo850diag, click ATZ Setup for OBDII Emission Diagnostics, then wait for it to finish, while watching the Realterm Terminal pane. It takes about 9 seconds.

  2. Click OBDII Scan, then wait for it to finish, while watching the Realterm Terminal pane.

    After "OBDII Scan" finishes, you can press Clear CEL, if necessary, to clear the CHECK ENGINE light.

The remaining steps in this Typical Use section deal with the buttons in the large 4th part of the blue box -- the (KWPD3B0-conversant) ECU specific portion.

  1. Click the ATZ Setup for ECUs 51/58/01/6E/2E/2F... button, then wait for it to finish, while watching the Realterm Terminal pane. It takes about 11-14 seconds.

    This step is (usually) optional when the ECU nn Setup buttons are already enabled.

  2. Click the ECU nn Setup button for the ECU with which you want to communicate, then wait for it to finish, while watching the Realterm Terminal pane. It takes about 3 seconds.

  3. Click either the Read DTCs button or the ATSI button (if it is enabled), then wait for the chosen function to finish, while watching the Realterm Terminal pane. Depending on the ECU, "Read DTCs" takes 5-10 seconds and "ATSI" takes 9-14 seconds.

  4. Either of them performs a Slow Init if pressed as the first button after the ECU's "Setup" button. When they finish, the "Setup", "Full Scan", "Quick Scan", and "Read DTCs" buttons for that ECU are enabled in volvo850diag and a timestamp appears in Realterm's Terminal pane. Additionally, if you pressed the "Read DTCs" button, the "Clear DTCs" button is enabled in volvo850diag.

  5. Follow volvo850diag's instructions that appear under the line of ECU nn buttons for your chosen ECU. They will guide you in deciding if the initialization worked or not.

    If the initialization failed, then try one of these five (5) separate, possible fixes:

    • If Read DTCs was issued, then simply repeat it. It will often work on the second try.
    • Begin again at step 15, but use a different button to perform the Slow Init.
      • If you had tried ATSI originally, then try Read DTCs this time.
      • If you had tried Read DTCs originally, then try ATSI this time.
      • If only Read DTCs is enabled (and not ATSI), then try Read DTCs again, but alter the delay between when Setup finishes and when you press the Read DTCs button.
    • Begin again at step 14.
    • Follow the Recover an unresponsive ELM327 instructions, then return here and begin again at step 14.
    • Consult step 43 in the "First Time Use" section for more ideas on how to recover, but adapt any of those instructions for your particular ECU and for whether your "ATSI" button is permanently disabled.

The remaining steps in this Typical Use section contain data which is specific for each ECU. They are all written assuming that Read DTCs is used to perform an implicit Slow Init, instead of using ATSI to perform an explicit Slow Init.

ECU 51 (COMBI):

  1. Click the ECU 51 Setup button, then wait for it to finish, while watching the Realterm Terminal pane.

  2. Click Read DTCs, then wait about 5-9 seconds for it to finish, while watching the Realterm Terminal pane.

    Be sure to check the messages underneath the 3 lines of ECU 51 buttons and follow any instructions listed there to ensure that both the initialization and the Read DTCs worked correctly.

  3. Click Quick Scan, then wait for it to finish, while watching the Realterm Terminal pane to see that the hex responses are being displayed. It takes about 11 seconds to read the COMBI DTCs, as well as the portions of the B9 and A5 data which have proven to be the most useful. If you want to see all of the ECU 51 B9 and A5 data, you'll have to use Full Scan instead.

  4. If you did not have any DTCs (ie, the response to AE01 begins with 83 13 51 EE 01), then skip to the next step.

    Otherwise, if you had 1 single DTC which indicates the Low Fuel light has come on (ie, the response to AE01 begins with 84 13 51 EE 01 05), and if the Low Fuel light is not presently on, then press Clear DTCs, watch the Realterm display to ensure the response to AF01 begins "83 13 51 EF 01" indicating a successful clear, then press Read DTCs to verify that the DTC is really gone.

    For any other responses to AE01, I'd recommend clicking Full Scan, and waiting for it to finish, before attempting to click Clear DTCs. That way you'll be more likely to get a record of freeze frame data. If the ECU 51 Full Scan does not generate an ADnn00 request, for each nn which is a DTC in the 83 13 51 EE 01 response to AE01, then you might want to manually issue in the Realterm Terminal pane an "ATSH 84 51 13" command, then issue "ADnn00" requests for each DTC, where nn is the DTC #.

    After you're done with ensuring the freeze frames are recorded, then click Clear DTCs.

    After the Clear DTCs finishes, you can issue the Read DTCs to see if all the DTCs are gone.

  5. Experiment with clicking any enabled button.

    The following items are unique to ECU 51 (COMBI):

    • "*" button / also known as "ECU 51 Reset SRI" button --

      This button turns off the SERVICE light by clearing all the associated counters. It simply issues ATSH 83 51 13 / B030 / B230, along with some comments. Its up to you to record the associated counters/limits beforehand and afterwards using Quick Scan or Full Scan. This button can only be used when you are already connected to ECU 51. It takes 5-6 seconds.

    • Select SERVICE Reminder Indicator (SRI) limit(s) pulldown list --

      This list provides choices for reprogramming one or more limits which control when the SERVICE light comes on. You choose only one item in the list. Some items affect all 3 limits. Some items affect only 2 of the limits. Most items affect only a single limit. After you select one of the items in this list, you then click the Reprogram SRI limit(s) button.

      Important note:
      The Select SERVICE Reminder Indicator (SRI) limit(s) pulldown list had **major** rework done in volvo850diag v0.8beta45.  Several new lines were added, and the descriptions were enhanced.

      However, by far and away, the *most* important change was the correction to reprogram the SRI Mileage limit in units of 500 km (instead of the previously, erroneously assumed units of 1000 km)!!!

    • Reprogram SRI limit(s) button --

      This button reprograms one or more SRI limits -- whatever limit(s) were just chosen from the Select SERVICE Reminder Indicator (SRI) limit(s) pulldown list (in the 2nd line of ECU 51 buttons). This button takes 13-21 seconds.

    Warning / Hint:
    Each item in the Select SERVICE Reminder Indicator (SRI) limit(s) pulldown list that is preceded by two asterisks (**) in their description are what we might call the "official" entries, since they are listed in the OTP Volvo 850 DVD as "predetermined" values, and are thought to likely be values which the Volvo Scan Tool (VST) uses.  If you want to limit your SRI reprogramming to how the VST would (most probably) perform it, the safest way is to limit yourself to only the items that are preceded by the ** two asterisks flag.

ECU 58 (SRS):

  1. Click the ECU 58 Setup button, then wait for it to finish, while watching the Realterm Terminal pane.

  2. Click Read DTCs, then wait about 6-8 seconds for it to finish, while watching the Realterm Terminal pane.

    Be sure to check the messages underneath the line of ECU 58 buttons and follow any instructions listed there to ensure that both the initialization and the Read DTCs worked correctly.

  3. For ECU 58 and the remaining ECUs, I'm not going to describe using the Clear DTCs button, since normally you will not be using it and it just clutters up this list. But if you want to, you can use it, similar to what was described for ECU 51 above.

  4. Experiment with clicking any enabled button.

ECU 01 (ABS):

  1. Click the ECU 01 Setup button, then wait for it to finish, while watching the Realterm Terminal pane.

  2. Click Read DTCs, then wait about 7-9 seconds for it to finish, while watching the Realterm Terminal pane.

    Be sure to check the messages underneath the line of ECU 01 buttons and follow any instructions listed there to ensure that both the initialization and the Read DTCs worked correctly.

    Also, notice that the ABS light in the Instrument Panel is blinking.

  3. Experiment with clicking any enabled button.

ECU 6E (AW 50-42 Automatic Transmission):

  1. Click the ECU 6E Setup button, then wait for it to finish, while watching the Realterm Terminal pane.

  2. Click Read DTCs, then wait about 6-9 seconds for it to finish, while watching the Realterm Terminal pane.

    Be sure to check the messages underneath the line of ECU 6E buttons and follow any instructions listed there to ensure that both the initialization and the Read DTCs worked correctly.

  3. Experiment with clicking any enabled button.

ECU 2E (Power Seat Left):

  1. Click the ECU 2E Setup button, then wait for it to finish, while watching the Realterm Terminal pane.

  2. Click Read DTCs, then wait about 7-10 seconds for it to finish, while watching the Realterm Terminal pane.

    Be sure to check the messages underneath the line of ECU 2E buttons and follow any instructions listed there to ensure that both the initialization and the Read DTCs worked correctly.

  3. Experiment with clicking any enabled button.

ECU 2F (Power Seat Right):

  1. Click the ECU 2F Setup button, then wait for it to finish, while watching the Realterm Terminal pane.

  2. Click Read DTCs, then wait about 5-8 seconds for it to finish, while watching the Realterm Terminal pane.

    Be sure to check the messages underneath the line of ECU 2F buttons and follow any instructions listed there to ensure that both the initialization and the Read DTCs worked correctly.

  3. Experiment with clicking any enabled button.

ECU 7A (Motronic 4.4):

  1. Click the ECU 7A Setup button, then wait for it to finish, while watching the Realterm Terminal pane.

  2. Click Read DTCs, then wait about 5-9 seconds for it to finish, while watching the Realterm Terminal pane.

    Be sure to check the messages underneath the line of ECU 7A buttons and follow any instructions listed there to ensure that both the initialization and the Read DTCs worked correctly.

  3. Experiment with clicking any enabled button.

    Hints:
    Check out the ECU 7A Test button and its pulldown list which were new in volvo850diag v0.8.  In the volvo850diag v0.9 distribution, the 3 experimental M44 controls *are* allowed (without having to do any editing of the volvo850diag.html file).

    The M44 Test/Control capability should only be used when engine is off and ignition is at pos II.

ECU 11 (MSA 15.7):    <<< new line of ECU 11 buttons in volvo850diag v0.9

  1. Click the ECU 11 Setup button, then wait for it to finish, while watching the Realterm Terminal pane.

  2. Click Read DTCs, then wait about 5-8 seconds for it to finish, while watching the Realterm Terminal pane.

    Be sure to check the messages underneath the line of ECU 11 buttons and follow any instructions listed there to ensure that both the initialization and the Read DTCs worked correctly.

  3. Experiment with clicking any enabled button.

ECU 41 (Immobilizer 2/3):   <<< new line of ECU 41 buttons in volvo850diag v0.9

  1. Click the ECU 41 Setup button, then wait for it to finish, while watching the Realterm Terminal pane.

  2. Click Read DTCs, then wait about 5-8 seconds for it to finish, while watching the Realterm Terminal pane.

    Be sure to check the messages underneath the line of ECU 41 buttons and follow any instructions listed there to ensure that both the initialization and the Read DTCs worked correctly.

  3. Experiment with clicking any enabled button.

ECU 29 ('97-'98 S70/V70/C70/XC70 ECC): <<< new line of ECU 29 buttons in volvo850diag v0.9

  1. Click the ECU 29 Setup button, then wait for it to finish, while watching the Realterm Terminal pane.

  2. Click Read DTCs, then wait about 5-8 seconds for it to finish, while watching the Realterm Terminal pane.

    Be sure to check the messages underneath the line of ECU 29 buttons and follow any instructions listed there to ensure that both the initialization and the Read DTCs worked correctly.

  3. Experiment with clicking any enabled button.

ECU 2D ('97-'98 S70/V70/C70/XC70 VGLA): <<< new line of ECU 2D buttons in volvo850diag v0.9

  1. Click the ECU 2D Setup button, then wait for it to finish, while watching the Realterm Terminal pane.

  2. Click Read DTCs, then wait about 5-8 seconds for it to finish, while watching the Realterm Terminal pane.

    Be sure to check the messages underneath the line of ECU 2D buttons and follow any instructions listed there to ensure that both the initialization and the Read DTCs worked correctly.

  3. Experiment with clicking any enabled button.

ECU 18 (Add Heater 912-D), ECU ?? (????), etc:

  1. The ECU nn functions for ECU 18, ECU ?? (????), etc are planned for a future release after the ECUs are completely scanned to determine all their function/subfunctions pairs and after some of their values are understood and added to the KWPD3B0 interpreter.

    For the time being, these ECUs can only be scanned via "Read All DTCs", "Quick Scan All ECUs", "Full Scan All ECUs", or the "Minimal Scan" of "My Extra Scans".

Scanning Cleanup

Once you finish scanning, then cleanup similar to the following list:

  1. Click to:

    1. terminate ELM327 communication (whether active or simply the Keepalive),
    2. close the log file, and
    3. stop Realterm and close the Realterm window.
  2. Turn off the ignition.
    Wait 6 seconds for all communication to cease.

  3. Unplug any ELM327-compatible USB device (if used) from the USB port.

  4. Unplug the ELM327-compatible device from the car's OBDII port.

  5. Re-enable the realtime virus protection and the other CPU hogs (that you disabled because they were suspected of potentially causing data loss or loss of the ISO9141-2 connection).

  6. Open up the volvo850diag_YYYYMMDD_HHMMSS.log capture log file(s), where YYYYMMDD_HHMMSS is the year, month, day, hour, minute, second that Realterm was started.  Note: There is one log file for each time that Realterm runs.

  7. Select all the text in the log file (or at least the portions that you would like interpreted).

  8. While on the internet, display the Volvo 850 V70 keyword D3 B0 protocol interpreter page, click the very first Paste Volvo 850/SVC70 Communication here link that you see, click inside the bluish-grey Paste Volvo 850/SVC70 Communication here box to establish focus, press Ctrl-A (to Select All), paste the just selected text from the log, then click the Interpret button.

  9. Wait for the Volvo keyword D3 B0 protocol interpreter results page (kwpd3b0_interpreter_results.php) to appear.

    The ELM327 said box contains the log excerpt that you asked to be interpreted.

    The Gleanings box contains groups of interpretations with each interpretation group containing:

    • (usually) 1 or 2 source lines preceding the line which was interpreted,
    • the source line which was interpreted, and
    • the interpretation itself, which may be 1 or more lines, where each line of the interpretation is preceded by ------.
  10. Search for the box that says Gleanings.

    If you have more than 150 characters in the ELM327 said box, then a line of text preceding that box will contain a clickable link so you can easily jump to the Gleanings box.

  11. Mull the "gleaned" interpretations.


This page is copyright © 2013-2021, Richard H. Jones. All rights reserved.

Page's last update was on 2021-06-09.

Note:
The "local" version of this page -- the one that actually can talk to the ELM327-compatible devices and Volvo 850/S70/V70/C70/XC70 -- is downloadable at https://jonesrh.info/volvo850/volvo850diag.zip, and is released under the much looser Creative Commons CC0 1.0 Universal (CC0 1.0) Public Domain Dedication.

This "online" page is here for documentation purposes only, and it can be viewed with any browser. This online version is not limited to Internet Explorer.