This page contains a form in which you can paste (or type) text from ELM327 communication with a 1996-1998 Volvo 850 / S70 / V70 / C70 / XC70 into the Paste Volvo 850/SVC70 communication here box. You then select the Interpret button and the successfully interpreted results are returned in the Gleanings box (on a separate Results page).
The input text can involve the Volvo 850 / S70 / V70 / C70 / XC70 keyword D3 B0 protocol (KWPD3B0), the OBDII emissions diagnostics, and any comments which you've inserted.
The text can come from most anywhere -- a Hyperterminal session, a Realterm session, a volvo850diag log file, a web page, your typed input, etc -- anything that contains the Volvo 850 / SVC70 responses recorded by an ELM327 compatible device, such as those based on:
but the ELM327 responses need to be displayed left-aligned on the line, just like the ELM327 device displays to a terminal emulator.
The interpreter is in the process of being generalized for use with the 1997-1998 Volvo S70 / V70 / C70 / XC70 cars. ELM327 compatible communication with a '97-'98 S70 / V70 / C70 / XC70 can be interpreted as far as reading/clearing of KWPD3B0 conversant ECUs' DTCs, reading of the KWPD3B0 ECUs' Hardware/Software version and revision #s, reading of the COMBI's Vehicle Mileage, Service Reminder Indicator limits / counters, some live data, among other things.
The '96-'97 850 and/or '97-'98 S/V/C70 KWPD3B0 ECUs which have been interpreted for Read DTCs (AE01), Clear DTCs (AF01), and/or Read Hardware/Software Version and Revision #s (B9F0) are:
as well as these rarely encountered ECUs:
01 00: [48 6B 17 41 00 BE 1D B0 00 96 ] 01 07: [48 6B 17 41 07 84 96 ] 010C: [48 6B 17 41 0C 00 00 17 ] 03: [48 6B 17 43 13 10 03 04 03 03 3D 48 6B 17 43 03 05 03 00 00 00 18 ]
AE01: [BUS INIT: ...OK 83 13 51 EE 01 D6 ] B903: [85 13 51 F9 03 A3 32 BA ] B906: [84 13 51 7E B9 23 42 85 13 51 F9 06 D7 00 BF ] B908: [85 13 51 F9 08 2D 00 17 ] B9F0: [92 13 51 F9 F0 00 09 44 23 78 30 30 32 09 44 22 07 30 30 31 60 ]
0100: [486B1F41008000000093 486B174100BE1FF81DFD] 010C: [486B17410C000017] 0105: [486B1741053E4E] 0106: [486B1741067F90] 0107: [486B1741076E80] 0120: [486B174120000000002B] ATRV: [11.9V]
2 OBD Now Terminal - Version 1.0.9 22:42.764 11 Bluetooth Device: OBDLink LX 22:45.507 14 atz 22:53.682 15 ELM327 v1.3a 22:53.682 61 b903 26:43.473 62 BUS INIT: ...OK 26:46.219 63 85 13 51 F9 03 AF 4E E2 26:46.219 77 0100 27:52.547 78 BUS INIT: ...OK 27:52.547 79 41 00 80 00 00 00 27:52.547 80 41 00 BE 1F F8 1D 27:52.548 83 0101 28:12.658 84 41 01 00 04 00 00 28:12.658 85 41 01 00 07 6D 6D 28:12.659 88 03 28:16.484 89 NO DATA 28:16.484 92 07 28:20.203 93 NO DATA 28:20.203 End OBD Now Terminal log
AE01 >> 83 13 51 EE 01 D6 AE02 >> 83 13 51 EE 02 D7 AE05 >> 83 13 51 EE 05 DA B9F0 >> 84 13 51 7E B9 23 42 92 13 51 F9 F0 00 09 14 89 30 20 20 41 09 16 81 33 20 32 33 8E B9F1 >> 8A 13 51 F9 F1 19 96 06 03 08 00 00 98 B901 >> 84 13 51 F9 01 B4 96 B903 >> 85 13 51 F9 03 2B 4F 5F B904 >> 85 13 51 F9 04 1C 4F 51 B905 >> 84 13 51 F9 05 0A F0 B906 >> 85 13 51 F9 06 30 00 18 B907 >> 85 13 51 F9 07 40 0B 34 B908 >> 85 13 51 F9 08 04 00 EE B909 >> 85 13 51 F9 09 E8 03 D6
Temporary Limitations:
At the present time, most of the DTCs are listed with their
Volvo 3-digit DTC codes and corresponding explanations.
The most glaring exceptions are that almost none of the '98 ECC and
'98 VGLA 3-digit DTC codes and explanations are known.
Also, only a few of the 3-digit DTC codes for AW50-42 DTCs < 35 (hex)
are known.
There is no guarantee that the listed 3-digit codes and
explanations are correct. It's the best I could do with
my very limited knowledge and experience.
But at least the actual, raw, 2-digit hex DTC codes are reported
100% accurately for **any** keyword D3 B0 protocol ECU,
regardless whether you even know yet what the ECU is used for.
As the need arises and as new info is discovered -- especially for the raw hex vs. 3-digit Volvo DTC codes -- this interpreter will be expanded so that the remainder of the DTCs, and, in fact, all the Volvo 850 keyword D3 B0 protocol can be interpreted fully, along with the more common OBDII emission diagnostics.
The OBDII emission diagnostic responses will be interpreted with either headers enabled (ATH1) or headers disabled (ATH0, the default), though the interpretation is more accurate when headers are enabled. The KWPD3B0 conversant ECUs' Negative Acks that involve the "7F xx yy" and "7E xx yy" responses will also be interpreted with either headers enabled or headers disabled. However, most responses from KWPD3B0 conversant ECUs will only be interpreted when headers are enabled (ATH1).
Permanent Limitations:
This page will not work if saved locally to your machine.
This page will only work from the web as:
https://jonesrh.info/volvo850/kwpd3b0_interpreter.html
Ideally, the text entered into the Paste Volvo 850/SVC70 communication here box should contain both the commands/requests sent to the ELM327 and the responses back from the ELM327 and 850/SVC70. For example, when reading the Total Vehicle Mileage contained in the Volvo 850 COMBI, it should contain both the B903 (or B90300) request along with its responses (most especially the F903 response). And when reading the Total Vehicle Mileage contained in the Volvo S70 / V70 / C70 / XC70 COMBI, it should contain both the (non-00-padded) B903 request along with its responses (most especially the F903 response). Normally, that involves 2 lines -- one containing ">B903" and one containing "...F9 03...".
At present, the absolute bare minimum is to include the Volvo 850/SVC70 responses. They are the root of the interpretations. But keep in mind that some interpretations may be incomplete or partially inaccurate unless the request is also included on the previous line. For example, the Reset SRI (ie, Reset SERVICE Light) exchange must be included in its entirety -- from the B030, through the B230, and also including the NO DATA which follows an 850's COMBI B230 [see last two examples below].
As the following example demonstrates, the pasted text can contain other info which is not interpreted:
ATZ OKTL17 v1.5 ------ What was issued is: ATZ<Enter>ATL1<Enter>. ------ My ELM327 clone ATZ response of "ELM327 v1.5" overwrites the ">ATZ". ------ The ATL1 command and response overwrite the previous ATZ output. >ATE1 OK ------ Now the display should be settled down and readable. >ATI ELM327 v1.5 ------ Expect this to be "ELM327 v1.5" for an ELM327 v1.4 (or v1.4b) equivalent clone, or "ELM327 v1.3a" for a ScanTool.net OBDLink SX, OBDLink LX BT, OBDLink MX BT, or OBDLink MX+ BT device. >ATSP 3A OK ------ ATSP 3A, ATSP A3, or ATSP 3 only needed at 1st ELM327 use and after non-"ISO 9141-2" protocol use. >ATDP AUTO, ISO 9141-2 >ATH1 OK >ATAL OK >ATKW0 OK >ATSR 13 OK ------ The ATSR 13 is necessary for getting immediate responses to some ECUs when sending requests which have < 3 data bytes after the KWPD3B0 header and before the checksum. >ATIIA 51 OK ------ If your "ATIIA xx" commands respond with "OK", then continue with the next command (ATWM). However, if your "ATIIA xx" commands do not respond with "OK", but instead respond exactly like the ATI command -- eg, as "ELM327 v1.5", "ELM327 v2.1", or ELM327 whatever -- then you have an partial-ELM327 device which can **NOT** perform **ANY** of the KWPD3B0 communication to the COMBI, SRS, ABS, AW50-42, etc (like Vol-FCR, Brick-Diag Free v0.0.6.6, and Volvo Scan Tool can do). There's absolutely no point for you issuing any of the remaining commands on this page. It's pointless. Your partial-ELM327 device may work well for standard legally-mandated OBDII emission diagnostics. But it's impossible for it to connect to COMBI, SRS, ABS, AW50-42, etc for ISO 9141-2 keyword D3 B0 style communication. >ATWM 82 51 13 A1 OK ------ ******************************************************************** * The below is one way to read the 2 mileages on a * 1996-1997 Volvo 850 (after the above prep work is done). ******************************************************************** >ATSH 84 51 13 OK >B90300 85 13 51 F9 03 34 30 49 >b90400 85 13 51 F9 04 24 19 23 ------ ******************************************************************** * However, on a 1998 Volvo S70 / V70 / C70 / XC70 that * ATSH 84 51 13 / B90300 / B90400 mechanism doesn't work. * * Instead, ATSH 83 51 13 / B903 / B904 must be used. * * Requirement: * * - The ATSH 83 51 13 / B903 / B904 mechanism requires the * ATSR 13 command be issued beforehand. * * Good News: * * - The ATSH 83 51 13 / B903 / B904 mechanism also works for * the 1996-1997 Volvo 850 (as long as ATSR 13 is issued * beforehand). So we can standardize on that approach. * ******************************************************************** * * Below is the new way to read the 2 mileages for both the * 1996-1997 Volvo 850 and the 1997-1998 S70 / V70 / C70 / XC70. * ******************************************************************** >ATSH 83 51 13 OK >B903 85 13 51 F9 03 34 30 49 >B904 85 13 51 F9 04 24 19 23 ------ I got the mileages from the ELM327. Now what? Looks like mumbo-jumbo. ------ The use of ATSR 13 above eliminates the need to use the 00-padding of ECU 51 / 58 / 2E / 2F AEnn00, B9nn00, AFnn00, and A00000 requests. By using ATSR 13, both the 1996-1997 Volvo 850 and the 1997-1998 Volvo S70 / V70 / C70 / XC70 can communicate with the same ATSH commands and the same corresponding request formats. ******************************************************************** *** *** Here are more examples of retrieving the two mileages using *** ECU 51 B903 as well as B904 command/request variants. *** ******************************************************************** >b903 NO DATA >atbd 08 85 13 51 F9 03 5B 2E 6E 64 00 01 30 ------ In this case, the NO DATA response to B903, in combination with the "F9 03" response to ATBD, implies the ATSR 13 had not been issued, since there was no immediate response displayed, but the response was actually received by the ELM327. Also, the non-zero ATBD implies that a ScanTool.net OBDLink family device is *not* being used. Furthermore, the ATBD buffer's F9 03 positive ack implies the ATBD was probably issued quickly (ie, before the KeepAlive was sent by the ELM327 compatible device several seconds after the B903 request). > B903 85 13 51 F9 03 6C 2E 7F ------ This is how a request and response appear when the Realterm "Send File" mechanism is used in volvo850diag. There is oftentimes a linefeed between the ELM327 prompt and the request. >b904 85 13 51 F9 04 24 19 23 ------ This shows lowercase requests are OK. >atbd 08 85 13 51 F9 04 24 19 23 64 00 01 30 ------ This is how the same response appears in an ELM327 (clone) ATBD buffer. >b904 85 13 51 f9 04 cd ab 5e ------ That shows lowercase, typed responses are OK. Notice that the lowercase "f9 04 cd ab" is OK. >ath0 OK >b904 f9 04 10 27 -- The above example is **NOT** interpreted because: * The headers (and checksum) are not included for one of the physically addressed ECUs: 01, 11, 29, 2D, 2E, 2F, 41, 51, 58, 6E, 7A. -- To correct the problem with this particular response, either: * Issue ATH1 before issuing the B904. or: * Edit the ECU 51 response to prepend with a valid header that has the form "85 xx 51 ", where xx are any 2 hex digits. *************************************************************************** * NOTE: In general, for the physically addressed ECUs, the interpreter: * - expects the 1st byte of the header to accurately * reflect the length of the bytes that follow the 3-byte header * (after first masking out the high bit), * - does not usually check the 2nd byte, ie, the tester address * that sent the request, * - expects the 3rd byte to be the ECU address that sent the * response. *************************************************************************** * Append the message with the (2 hex digits) checksum. If you do not want to calculate the correct checksum, that is usually OK, since any 2 hex digits will usually pass this interpreter's parsing for the checksum. -- For example, replace the above request/response with the following one... >b904 85 13 51 f9 04 10 27 ff -- The above example has a valid header, the same response -- "f9 04 10 27" -- after the header and before the checksum, then an invalid checksum: "ff" (since we were lazy and didn't want to reconstruct the valid checksum before sending this manually reconstructed message to kwpd3b0_interpreter). >b903 f9 03 8f 37 -- The above example of specifying the Vehicle Mileage without its headers (and checksum) -- presumably because ATH1 had not been issued, or maybe because it was simply manually typed in without including the headers and checksum -- is a special exception to the rule that the KWPD3B0 headers and checksums are usually required. This short form of entering the Vehicle Mileage response does work for now, since it can be differentiated from the ECU 2E, ECU 2F, and ECU 7A responses to B903, and since it is the most popular interpreted item. f9039137 851351F9039137AD 851351f904cdab5e -- Also, the above 3 special cases work where the line contains only an even number of hex digits without any intervening blanks. -- As can be seen below, certain interpretations, require multiple lines to be input... >ATSH 83 51 13 OK -- For the 850 Reset SRI to be interpreted, you must include from the B030 line... >B030 83 13 51 F0 30 07 >B230 NO DATA -- ...thru the NO DATA line that follows the B230. -- On S70/V70/C70/XC70, that Reset SRI sequence might look a bit different -- -- like the following sequence -- so you would need to include from -- the B030 line... >B030 84 13 51 7F B0 12 29 >B230 83 13 51 F2 30 09 -- ...thru the "F230" ack line that follows the B230.
To see how all this works, just paste all of the above (or any portion of it) into the Paste Volvo 850/SVC70 communication here box, then click Interpret.
Our above example data for the Paste Volvo 850/SVC70 communication here box would be interpreted into the following results in the Gleanings box:
>ATI ELM327 v1.5 >ATDP AUTO, ISO 9141-2 >B90300 85 13 51 F9 03 34 30 49 ------ Vehicle Mileage..........................123400 miles (198593 km) >b90400 85 13 51 F9 04 24 19 23 ------ Mileage at Service Light Reset........... 64360 miles (103577 km) ------ Mileage since Service Light Reset........ 59040 miles ( 95016 km) [calculated from B903 - B904] >B903 85 13 51 F9 03 34 30 49 ------ Vehicle Mileage..........................123400 miles (198593 km) >B904 85 13 51 F9 04 24 19 23 ------ Mileage at Service Light Reset........... 64360 miles (103577 km) ------ Mileage since Service Light Reset........ 59040 miles ( 95016 km) [calculated from B903 - B904] >atbd 08 85 13 51 F9 03 5B 2E 6E 64 00 01 30 ------ Vehicle Mileage..........................118670 miles (190981 km) B903 85 13 51 F9 03 6C 2E 7F ------ Vehicle Mileage..........................118840 miles (191254 km) >b904 85 13 51 F9 04 24 19 23 ------ Mileage at Service Light Reset........... 64360 miles (103577 km) ------ Mileage since Service Light Reset........ 54480 miles ( 87677 km) [calculated from B903 - B904] >atbd 08 85 13 51 F9 04 24 19 23 64 00 01 30 ------ Mileage at Service Light Reset........... 64360 miles (103577 km) ------ Mileage since Service Light Reset........ 54480 miles ( 87677 km) [calculated from B903 - B904] >b904 85 13 51 f9 04 cd ab 5e ------ Mileage at Service Light Reset...........439810 miles (707806 km) >b904 85 13 51 f9 04 10 27 ff ------ Mileage at Service Light Reset...........100000 miles (160934 km) ------ Mileage since Service Light Reset........ 18840 miles ( 30320 km) [calculated from B903 - B904] >b903 f9 03 8f 37 ------ Vehicle Mileage..........................142230 miles (228897 km) [if really from ECU 51 (COMBI)] f9039137 ------ Vehicle Mileage..........................142250 miles (228929 km) [if really from ECU 51 (COMBI)] 851351F9039137AD ------ Vehicle Mileage..........................142250 miles (228929 km) 851351f904cdab5e ------ Mileage at Service Light Reset...........439810 miles (707806 km) >B030 83 13 51 F0 30 07 >B230 NO DATA ------ ECU 51 B030 / B230 shows Reset SRI attempted to turn off SERVICE light. >B030 84 13 51 7F B0 12 29 >B230 83 13 51 F2 30 09 ------ ECU 51 B030 / B230 shows Reset SRI attempted to turn off SERVICE light. ------ ** Overall Conclusions follow: ** ------ 1. Response(s) to ECU 51 B903, B904, A507, A509, and/or ADxx request(s) included new (as of 2016-01-31) interpretation of Vehicle Mileage in: - miles, calculated as: (raw value * 10 miles), and - km, calculated as: (raw value * 16.09344 km).
After you've experimented with the above example data, then generate your own log for your car by sending the commands listed at ELM327 commands to read ECU 51 DTCs and B9nn data to the ELM327 connected to your 1996-1998 Volvo 850 / S70/V70/C70/XC70 COMBI. The responses should look somewhat similar to those at ELM327 ECU 51 commands & responses example (with links).
Then copy and paste your car's responses from the Hyperterminal, Realterm, or whatever terminal emulator's display screen or captured log file into the Paste Volvo 850/SVC70 communication here box, and click Interpret. The results will appear on a separate Volvo keyword D3 B0 protocol interpreter results page.
At present, the primary requirements are that the interpretable Volvo 850 / S70 / V70 / C70 / XC70 responses are inserted into the Paste Volvo 850/SVC70 communication here box, and that they are left-aligned on each response line. You shouldn't have any problem with the "left alignment" requirement if you copy/paste the command and its response(s) as a unit.
It is advisable to include both:
If you paste contents of a log created by Realterm using its "Send File" mechanism, you may find that the ELM327 prompt (>) is missing from the command line (due to a line feed being sent by Realterm for some unknown reason after the ELM327 ">" prompt is received). That is usually OK, since the Volvo's response is usually the main thing which determines the interpretation.
If you use volvo850diag -- [see volvo850diag (online docs) and volvo850diag.zip (distribution)] -- to automatically create a log file, then you can open the log file in a text editor, Select All its contents, copy to the clipboard, then paste the entire log's contents in the Paste Volvo 850/SVC70 communication here box below. The box has enough capacity to generally handle a busy 60 minute logging session. After pasting the text into the box, add any personalized feedback or explanations, as follows:
If you want personalized feedback or explanations, then also include your e-mail address in the Paste Volvo 850/SVC70 communication here box, preferably along with a note describing your car and/or the conditions when the scan was performed. Useful info for helping to enhance the interpreter includes:
You might also want to include:
An alternative to including an e-mail address is to post on some forum then include the link to that post in the box below. That way all the info is immediately publicly available.
Then click Interpret and anything which is interpretable by this interpreter will appear in the Results page's Gleanings box.
The Gleanings themselves will have the ------ prefix.
Click the Interpret button after placing text in the Paste Volvo 850/SVC70 communication here box.
The Results page usually appears within 2-15 seconds. It will contain 2 boxes:
an ELM327 said box, which is essentially a copy of the Paste Volvo 850/SVC70 communication here box above, and
either an Errors box or a Gleanings box. Anything which is interpretable by the KWPD3B0 interpreter appears in the Gleanings box.
At present, Interpret will allow up to 550055 characters.
The Paste Volvo 850/SVC70 communication here box can be resized if you like, for readability.
On extremely rare occasions, the first click of the Interpret button will delay for longer than anything reasonable, then a message will appear in the Errors box which begins with: "Interpret button appears to not have been clicked".
If you know for certain that you had pasted or typed something into the Paste Volvo 850/SVC70 communication here box, then you can oftentimes recover from this situation by submitting the information a second time. Just use your browser's Page Back button to return from the kwpd3b0_interpreter_results.php page to this kwpd3b0_interpreter.html page. The information you pasted / typed should still be visible on this .html page. Change at least one character in the Paste Volvo 850/SVC70 communication here box (eg, add a blank at the end of a line, or add a blank line at the top of the box or the bottom of the box), then press the Interpret button. Usually the interpretation works on the second attempt.
The "1st Interpret click sometimes doesn't work" problem is thought to be related to either the internet connection hardware/software, the Internet Service Provider, and/or the server hosting jonesrh.info.
The "need to change at least one character when reinterpreting the same information" inconvenience is thought to be related to the browser's or server's handling of caches.
The Results page's Gleanings box will only include:
the lines which trigger each interpretation, with usually 1 or 2 prior lines included to show some context, where the Gleanings themselves will have the ------ prefix, and
some additional lines that are passed straight through to the Gleanings box without any added interpretation, eg, ELM327 version #s, protocol names, volvo850diag timestamps, etc, since they are quite useful and they are self-interpreting.
some final Overall Conclusions.
Return to Paste Volvo 850/SVC70 communication here box.