Volvo 850 OBDII portal

This portal includes some links to assist in communicating with the 1996-1997 Volvo 850 and 1998 Volvo S70 / V70 / C70 / XC70.  It primarily focuses on how to communicate -- using an affordable ELM327-compatible device -- with the Electronic Control Units (ECUs) which are not involved with emissions diagnostics. It includes some hard-to-find information on:

  • how to read the vehicle mileage stored in the Instrument Panel (COMBI) ECU,

  • how to read other COMBI info, eg, counters & limits that trigger SERVICE light illumination,

  • how to reset the SERVICE light,

  • how to change the limits that trigger SERVICE light illumination,

  • how to read and clear DTCs for the ABS, SRS, COMBI, AW 50-42, Motronic 4.4, MSA 15.7, Immobilizer, Power Seats, etc,

  • how to read live data from COMBI, AW 50-42, Motronic 4.4, and other KWPD3B0-conversant ECUs, as well as how to read standard OBDII live data,

  • little known facts about the Volvo keyword D3 B0 (KWPD3B0) protocol used to communicate with those ECUs -- several of which are normally not scanned by most OBDII scanners.

It is not intended to focus much on the OBDII emissions diagnostics exchange, though there are some examples of that -- especially in the FAQ.

  • Why I Use an ELM327 on Volvo 850 OBDII Port

    This explains why I was driven to use an ELM327-compatible cable for my 1997 Volvo 850 T5 OBDII port communication to read the vehicle mileage and read/clear DTCs for the ABS, COMBI (Instrument Panel), AW 50-42 (transmission), etc, as well as read and clear the emission diagnostics DTCs.

  • ELM327 Setup on WinXP

    This is (potentially) a helpful guide on how to get an ELM327 (or ELM327-compatible) tool up and running so it can talk to a Volvo 850 / S70 / V70 / C70 / XC70 to retrieve diagnostic information and reset emission diagnostics trouble codes. It links to an excellent 3rd party page which provides a thorough step-by-step guide -- better than vendors typically provide -- and includes my suggestions for some deviations from that (mostly) excellent guide.

    It will guide you to review vendor instructions, locate and install drivers, and perform the most fundamental emission diagnostics (if your car is capable of OBDII emission diagnostics). And it shows how you might recover if you've already attempted to get ELM327-style communication going, failed miserably, are pulling your hair out in frustration, and are nearly ready to throw your new ELM327-compatible gadget in the garbage.

    Since this page is (by and large) generic for all ELM327 devices, it might also be useful during ELM327 setup for other Volvo and non-Volvo vehicles, regardless whether they use ISO9141-2 connections for their OBDII emission diagnostics and/or vendor specific protocols.

  • ELM327 Reads Volvo 850 Mileage

    This explains how to use an ELM327 (or ELM327-compatible) tool to read mileage from a 1997 Volvo 850 T5 Instrument Panel.  It assumes the ELM327 has already been setup.

    It also shows how to retrieve the Service Reminder intervals (both limits and counters), as well as some of the other 850 COMBI data.

  • ELM327 Reads Volvo 850 and SVC70 Mileage

    This explains how to use an ELM327 (or ELM327-compatible) tool to read mileage from a 1996-1998 Volvo 850 / S70 / V70 / C70 / XC70 Instrument Panel.  It assumes, by and large, that the ELM327 has already been setup properly.  But it does contain a setup checklist, and it contains a more helpful Requirements section compared to its (just mentioned) 850-specific sister page.

    This page also shows how to retrieve the Service Reminder intervals -- both the a) limits at which the SERVICE light begins to be illuminated for ~2 minutes after turning the engine on, and b) the corresponding counters since last SERVICE Light Reset.

    The page also shows how to retrieve a variety of other COMBI data for the 850 / S70 / V70...

    This page is an excellent place to start understanding details of the Volvo keyword D3 B0 protocol communication with the COMBI (Instrument Panel).

    The instructions on this page can be used on either the 1996-1997 850 or the 1998 S70/V70/C70/XC70.  There is oftentimes more detail provided on this page (compared to its 850-specific sister).  Note: The primary place to add mileage reading or COMBI updates in the future will be on this, more general purpose page, rather than its 850-specific sister page.

  • ELM327 Commands to Scan a Volvo 850

    This is an extensive list of ELM327 AT commands, OBDII commands, and KWPD3B0 commands needed to perform a thorough scan of the Volvo 850. It is a good 850-specific "cheat sheet" reminder of what to type next, if you're typing the commands manually into a terminal emulator. It shows most of the AExx00 (or AExx), B9xx00 (or B9xx), ADxx00, and A5xx01 commands which generate KWPD3B0 requests that produce positive acks from the Volvo 850. The KWPD3B0 commands on this page are 00-padded, when possible.

  • ELM327 Commands to Scan Volvo 850 and SVC70

    This is an extensive list of ELM327 AT commands, OBDII commands, and KWPD3B0 commands needed to perform a thorough scan of the 1996-1998 Volvo 850 / S70 / V70 / C70 / XC70. It is an excellent "cheat sheet" reminder of what to type next, if you're typing the commands manually into a terminal emulator. It shows most of the AExx, B9xx, ADxx00, and A5xx01 commands which generate KWPD3B0 requests that produce positive acks from those Volvos. And it shows an additional way to request Motronic 4.4 live data via several ECU 7A "A700 xxxx 01yy" KWPD3B0 commands.

  • volvo850diag via ELM327, Realterm, IE, Javascript

    This is online documentation for volvo850diag -- a free (ie, no cost), open source, customizable, Internet Explorer based GUI with an HTML / ActiveX / Javascript engine that drives the Realterm v2.0.0.70 terminal emulator to communicate with a Volvo 850 or S70/V70/C70/XC70 via an ELM327-compatible device through the Volvo's OBDII port.

    This online volvo850diag documentation page can be used to download volvo850diag to a local Windows machine from which volvo850diag interfaces to the ELM327 device via a Windows COM port -- usually a virtual COM port established by: Bluetooth drivers when pairing to an ELM327 Bluetooth tool, or USB drivers when pairing to an ELM327 USB tool.

    With a single button press, the locally run volvo850diag can scan DTCs for: emission diagnostics, ABS, COMBI, SRS, AW 50-42 (automatic transmission), power seats, Motronic 4.4, MSA 15.7, and Immobilizer.  And, for '97-'98 S70/V70/C70/XC70, it can additionally scan DTCs for: ECC, VGLA, and 912-D (diesel heater).  For all of those ECUs -- except the 912-D (diesel heater) -- each individual ECU's DTCs can be scanned or cleared with ECU-specific buttons dedicated for that purpose.

    volvo850diag can also read the vehicle mileage, Service Reminder intervals (counters / limits), and miscellaneous parameters which are stored in the Instrument Panel's (COMBI's) computer.  In fact, volvo850diag is the best place on this portal to find out how to reset the SERVICE light or change the limits which trigger when the SERVICE light comes on.

    volvo850diag automatically produces a log whose contents can be interpreted by the Volvo 850 V70 keyword D3 B0 protocol interpreter (described below).

    Note:
    As of the volvo850diag v0.7 release on 2014-07-31, volvo850diag can also be used to: a) turn off the SERVICE light; and b) change the intervals that determine when the SERVICE light will come on.
    Note:
    As of the volvo850diag v0.8 release on 2017-07-27, volvo850diag can also be used to: a) issue some of the Motronic 4.4 Test/Control functions; and b) continuously scan live (and stored) data -- automatically switching back and forth between the OBDII emission diagnostic scanning and the KWPD3B0 protocol scanning of COMBI, AW 50-42 (auto transmission), and Motronic 4.4 -- until the continuous scanning is Cancel-ed or until ~1 hour expires.
    Note:
    As of the volvo850diag v0.9 release on 2019-07-14, volvo850diag can also be used to: a) individually scan one or more of the following ECUs' data: ECU 11 (MSA 15.7), ECU 41 (Immobilizer), ECU 29 (ECC), and/or ECU 2D (VGLA), since they now have their own individual row of buttons; b) continuously scan live (and stored) data of **several** KWPD3B0-conversant ECUs after connecting to *only one (1)* KWPD3B0-conversant ECU, thereby making the KWPD3B0 scanning both quicker and noticably more reliable [**if** enabled by checking CCSwmK1i in Options box, clicking Save, then running "My Extra Scans"]; and various other goodies [mentioned in volvo850diag v0.9 is now available! announcement at MVS].
  • Volvo 850 OBDII FAQ

    This FAQ contains information on both the OBDII emissions diagnostics protocol and the special Volvo 850 keywords D3 B0 protocol which is used to communicate with the ABS, Instrument Panel, SRS, AW 50-42 Transmission, Power Seats, etc. It has examples, accompanied by detailed explanations, showing the ELM327 communicating with both those protocols, and it's packed with goodies (some of which are included nowhere else on this site).

  • Volvo 850 V70 keyword D3 B0 protocol interpreter

    This is an interpreter for some of the Volvo 850 keyword D3 B0 protocol's communication via the ELM327.  It can interpret the reading and clearing of many DTCs from the KWPD3B0-conversant ECUs.  It can interpret the COMBI's mileages, Service Reminder intervals, Fuel Level, etc.  And it can interpret a bunch more stuffIt's been expanded to also handle 1998 S70 / V70 / C70 / XC70 communication.

    You can paste the contents of your ELM327 logs made by volvo850diag (described above), STNterm, Realterm, Hyperterminal, other terminal emulators, etc. into this "interpreter" page and it will convert some of the hex mumbo-jumbo into a more easily understood listing. Think of it as a Volvo 850 / S70 / V70 / C70 / XC70 ELM327 calculator for the poor man.

    Keep in mind it is a work-in-progress, and I definitely don't understand everything there is to know.

    Note:
    Future KWPD3B0 interpreter changes will be very few and very far between.

    My previous (pre-2020) plans were to add further interpretation of:

    • more associations of the ECUs' raw DTC vs. 3-digit Volvo DTC codes -- especially the updates that became available in xiaotec "850 OBD-II" Android app during 2019,
    • more ECU 7A (Motronic 4.4) A5 and A7 live data,
    • more ECU 51 B9 and A5 data which are still not yet fully understand, and
    • whatever else seemed highly useful.

    But those plans are presently suspended (by and large) due to: a) strong desire to continue my long sabbatical from any significant further volvo850 portal enhancement, and b) xiaotec "850 OBD-II" Android app is a very useful alternative to this jonesrh Volvo 850 OBDII portal.
  • Volvo 850 keyword D3 B0 protocol 7F and 7E error subcodes

    This thoroughly explains the "7F xx" and "7E xx" errors that I've encountered with my 1997 Volvo 850 T5 or 1998 Volvo S70 GLT (or have seen from submissions to the KWPD3B0 interpreter). It should definitely help in understanding keyword D3 B0 protocol errors encountered when communicating with some of the 1996-1998 Volvos, regardless whether you're communicating with an ELM327 compatible device or a VAG/COM KKL style device.

  • Volvo 850 Diagnostic Links

    This is some of the links that were helpful in my exploration of Volvo 850 diagnostics. You might also find them informative and useful.

    The links don't just focus on the 1996-1997 Volvo 850 or 1997-1998 S70 / V70 / C70 / XC70.  Nor do they focus only on the ELM327.  For example, there are some links related to communication via VAG/COM KKL devices in order to run Vol-FCR, Brick-Diag, MotronicSuite, etc, and in order to read Motronic 4.3 live data, flashing the engine ECUs, etc.

Hopefully, this portal's accompanying articles will save you some time and money in finding your own, low cost, Volvo diagnostics solution using:

  • 1996-1997 Volvo 850 OBDII port or 1997-1998 S70/V70/C70/XC70 OBDII port,

  • commonly available tools, eg,

    • ~$18 ELM327 clone USB cable
      (or some other KWPD3B0-capable, ELM327-compatible device),

    • free, downloadable Silicon Labs CP210x VCP driver for use with ELM327 cable (see Setup where "STEP 1" is mentioned),

    • free (or low cost) serial terminal emulator (eg, STNterm, Realterm, Hyperterminal, xiaotec's "850 OBD-II" Android app, "OBD Now Terminal" Android app, PuTTY, Timers n Savers's "Bluetooth USB WIFI Terminal" Android app, cKermit, Tera Term, ptelnet, ZTerm, etc),

    • optional ~$14 VAG/COM KKL FTDI USB cable,

    • optional, free, downloadable FTDI CDM driver for use with a VAG/COM KKL FTDI cable, or any FTDI-based ELM327-compatible cable, eg, a ScanTool.net OBDLink SX USB cable (see Setup where "ftdi" is mentioned),

    • optional free Vol-FCR v1.7.3 FTDI Demo program for use in evaluating if VAG/COM KKL FTDI USB2 cable will work with the Vol-FCR v1.7.3 FTDI Full program,

  • and not so common tools, eg,

    • optional ~$19 OBDII Y splitter (1 male OBDII to 2 female OBDII) for use:

      • when ELM327 in ATMA mode along with STNterm (or other terminal emulator) is used to monitor reading/writing of: Vol-FCR, Brick-Diag, VST (Volvo Scan Tool), AST SERVICE Reset Tool, Realterm, another ELM327, or another software package, or

      • when VAG/COM KKL FTDI cable along with Realterm is used to monitor reading/writing of ELM327 via STNterm (or another terminal emulator),

    • optional homemade "flashing LED" tool to read the OBDII pins besides pin 7, eg, pin 3 for Motronic 4.3, pin 6 for Electronic Climate Control, pin 13 for Cruise Control, and any other "non-pin 7" pins which your car may use.

This portal might help in determining the actual vehicle mileage when the 850's mechanical odometer has failed and you can't get a reasonable estimate of the mileage from either the CarFax or a trusted previous owner. And it can potentially assist you in having a better idea of when major maintenance might need to be performed, eg, if and when to replace the timing belt to avoid engine destruction when the timing belt fails.

It should eliminate some of the reasons for visiting the dealer to perform a DTC code reading, eg, to read the vehicle mileage, or to reset the majority of the DTCs.

And the portal can lessen the need to pay for the Vol-FCR Full version, since the portal can guide you to:

  • read/clear the DTC codes for (most) all the computers connected via OBDII pin 7 (using either volvo850diag, or xiaotec's "850 OBD-II" Android app, or Brick-Diag Free v0.0.6.6, or issuing the necessary commands interactively with a terminal emulator);

  • reset the SERVICE light (using volvo850diag, or xiaotec's "850 OBD-II" Android app, or issuing the necessary commands interactively with a terminal emulator); and

  • view dynamically updated live data from the KWPD3B0-conversant ECUs (using xiaotec's "850 OBD-II" Android app).

Hindsight:
I'll have to admit the VOL-FCR_1.7.6_sur_Volvo_850_TDI YouTube video of Vol-FCR v1.7.6 Full's MSA 15.7 live data function sure is enticing.  If I had seen that video back in mid-2012 and also had the money to buy Vol-FCR Full at that time, this Volvo 850 OBDII portal would probably only include the info which Vol-FCR Full doesn't already handle, eg, mileage reading, SRI counters/limit reading, SRI limits changing, etc !!!

Hint:
Some cash-poor DIYers will be able to suffice with the 1 Euro / US$1.99 xiaotec "850 OBD-II" Android app Live data function, along with its myriad other functions, thereby avoiding the large cost for Vol-FCR Full, and avoiding having to learn how to use the volvo850diag program.

Even though this portal is focused on ELM327 communication, some of the special Volvo keyword D3 B0 protocol information presented here could definitely be adapted for communication with VAG/COM KKL like devices and other ISO9141-2 capable hardware. Hopefully, it will eventually make its way into more off-the-shelf, affordable general purpose OBDII port scanners so they'll handle all the 1995-1999 Volvo 850/S70/V70/C70/XC70 computers that can be accessed via the OBDII port's pin 7.

Conventions:
  • Throughout this Volvo 850 OBDII portal, the car's computers are referred to as ECUs. I use the broader definition of ECU as "Electronic Control Unit" instead of the more common (and more restrictive) definition as "Engine Control Unit". The Volvo 850 ECUs which I'll commonly reference are (in numerical order, where the 2 characters after "ECU " are the hexadecimal representation of that ECU's #, exactly like the ELM327 displays it):

    • ECU 01 -- ABS Control Module.
    • ECU 2E -- Power Seat Left.
    • ECU 2F -- Power Seat Right.
    • ECU 41 -- Immobilizer.
    • ECU 51 -- COMBI (Instrument Panel).
    • ECU 58 -- SRS (Seatbelt Restraint System).
    • ECU 6E -- AW 50-42 (transmission for gas engines).
  • Those same ECU #s are applicable to 1998 Volvo S70 / V70 / C70 / XC70.  However, some of those 70-series cars are known to potentially use one or more of the following:

    • ECU 18 -- Add Heater 912-D.
    • ECU 29 -- ECC (Electronic Climate Control).
    • ECU 2D -- VGLA (Volvo Guard Lock and Alarm).
    • ECU 42 -- CCU (Convertible Top Control Unit).
    • ECU 59 -- ROP (Roll Over Protection).
    • ECU 62 -- RTI (Road Traffic Information).
    • ECU ?? -- others that Vol-FCR displays as selectable boxes.
  • There are at least two other ECUs which use the same ISO9141-2 like protocol that the above 2 groups of ECUs use:

    • ECU 7A -- Motronic 4.4 Engine Control Module (M44 ECM).
    • ECU 11 -- MSA 15.7 Engine Control Module (MSA 15.7 ECM).

    The Motronic 4.4 ECU can be found in some 850 as well as a lot of S70 / V70 / C70 / XC70.

    The MSA 15.7 ECU is found in the diesel variant of these cars.

    The Motronic 4.3 ECU is also found in some 850.  However, the Motronic 4.3 ECU -- which my 1997 Volvo 850 T5 uses -- is not addressable as ECU 7A. In fact, the Motronic 4.3 ECU is not directly addressable via OBDII port's pin 7 (to my knowledge) using the "physical addressing" mechanism described for ECUs: 01, 2E, 2F, 51, 58, and 6E.

    The Motronic 4.3 ECU can be communicated with via the OBDII port's pin 3 using a flashing LED tool. And it can be directly addressed via a VAG/COM KKL cable if the pin in the VAG/COM KKL cable destined for OBDII port's pin 7 is switched to go to OBDII port's pin 3 instead. But the Motronic 4.3 ECU can not be directly addressed by the ELM327 using "physical addressing" (even if the pins are switched), simply because the Motronic 4.3 does not communicate via the OBDII port's pin 3 using a ISO9141-2 like protocol which the ELM327 can understand.

    For some details of the Motronic 4.3 protocol, see rkam's 2009-05-19 08:58 post and search for "Motronic 4.3 Live data".

    For some details of the Motronic 4.4 protocol, see rkam's 2009-05-19 08:58 post and search for "M4.4 Volvo special".

    Since (prior to 2016-04-23) I had very little exposure to ECU 7A (the Motronic 4.4 ECU), it was seldom mentioned on this site.  A small amount of Motronic 4.4 scanning was added in volvo850diag v0.7.  But after I was able to explore all the ECU 7A subfunctions on my '98 S70 GLT, a lot more of the M44 scanning was added in the volvo850diag v0.8betaNN, v0.8, and v0.9 releases.

    The interpretations for the Motronic 4.4 data are added to the KWPD3B0 interpreter as time permits and as they are fully understood. Click here, then search for "ECU 7A (M44) live data", to see what items of Motronic 4.4 data the KWPD3B0 interpreter can presently recognize.

  • Both the Engine ECU (either Motronic 4.3 or Motronic 4.4) and the Transmission ECU are addressable via "functional addressing", which is how the emissions diagnostics are done.

    This portal will discuss the emissions diagnostics very little, since they are documented extremely thoroughly throughout the internet and there are great many low cost OBDII scanners and free (or low cost) software packages that can read and clear emissions diagnostics DTCs and display the live data. However, there are some emissions diagnostics details included in the portal's FAQ.  Also, volvo850diag can do some OBDII scanning, and the Volvo 850 V70 keyword D3 B0 protocol interpreter can interpret many of the OBDII diagnostic responses.

  • There's several different terms that are used on this portal when talking about the SERVICE light, the fact that it illuminates as a Service Reminder, the Service Reminder interval limits beyond which the SERVICE light illumination is triggered, the counters (since last SERVICE Light Reset) which are compared against those limits, the action of resetting the SERVICE light, the reprogramming of the limits, etc. Here's a hodge-podge of definitions and explanations:

    • SERVICE
      When capitalized, this definitely refers to the SERVICE light that is visible in the dash.  It is also known as SERVICE light or Service light.  It is most frequently not capitalized.

    • Service Reminder Indicator or SRI
      This is the Volvo Owner's Manual official name for the SERVICE light.  It's also referred to as simply Service Reminder, especially when referring to the Service Reminder intervals or the Service Reminder limits/counters.

    • Service Light Reset or SLR (1st of 2 SLR definitions)
      The act of resetting the SERVICE light (by resetting the Service Reminder counters, etc). This is synonymous with Reset Service Light (like the Vol-FCR button) and Reset SRI (like a couple of volvo850diag buttons).  And, of course, its synonymous with the capitalized SERVICE Light Reset.

    • Service Reminder Interval in Kilometers / 500 (B905)
      Service Reminder Interval in 1/4 Days (B907)
      Service Reminder Interval in Engine Hours (B909)
      These are the 3 limits which 3 corresponding "since last SERVICE Light Reset" counters are compared against.

    • Mileage at Service Light Reset (B904)
      This mileage, when subtracted from the Vehicle Mileage in B903, is the 1st of the 3 "since last SERVICE Light Reset" counters.  That difference is compared to the 1st (of the 3) limits (after appropriate conversion factors are applied).

    • 1/4 Days since Service Light Reset (B906)
      Engine Hours since Service Light Reset (B908)
      These are the final 2 of the 3 "since last SERVICE Light Reset" counters. They are compared to the 2nd and 3rd limit just listed.

    • Service Light Reminder or SLR (2nd of 2 SLR definitions)
      Synonymous with Service Reminder Indicator and SRI.  Used only in the context of Service Light Reminder (SLR) Interval counters and limits (see immediately following).

    • SLR limits and SLR counters (using either SLR definition)
      Service Light Reset counters and limits
      Service Light Reminder (SLR) Interval counters and limits
      Service Reminder counters and limits
      Service Reminder intervals
      Those are the 3 limits and 3 counters which have just been mentioned.
      Those 5 terms are generally synonymous, though the term "Service Reminder Interval" when specifically joined with "in Kilometers/500", "in 1/4 Days", "in Engine Hours", "for Miles/Kilometers", "for 1/4 Days", or "for Engine Hours" is used to refer strictly to the limit or some conversion of the limit into different units (but not to its corresponding counter).  In that case, the counter will include "Service Light Reset" in its name, either "since Service Light Reset" or "at Service Light Reset" in order to differentiate it from the limit.

    • Service Reminder Interval limits reprogramming
      Service Light Reminder Interval limits reprogramming
      Service Light Reset limits reprogramming
      These are synonymous. They simply mean rewriting the values of ECU 51 B905, B907, and/or B909 to change the Service Reminder limits.

  • They are briefly explained here, since it is unlikely I'll spend the time to standardize the verbage much more.  Hopefully, you'll understand what is being talked about by the context thoughout the portal.  But if that's not the case, then hopefully this list will resolve any confusion surrounding all these SERVICE light oriented items.

Introduction to hexadecimal:
If you don't yet understand hexadecimal, here's some links to info on hexadecimal.  At least one of these primers should help you:
Back to list of links           Back to 1st link summary          

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

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