Login Register

How to read 1996-1997 Volvo 850 mileage with an ELM327

Help, Advice and DIY Tutorials on Volvo's P80 platform cars -- Volvo's 1990s "bread and butter" cars -- powered by the ubiquitous and durable Volvo inline 5-cylinder engine.

1992 - 1997 850, including 850 R, 850 T-5R, 850 T-5, 850 GLT
1997 - 2000 S70, S70 AWD
1997 - 2000 V70, V70 AWD
1997 - 2000 V70-XC
1997 - 2004 C70

This topic is in the MVS Volvo Repair Database » How to Read 850 Mileage with an ELM327: 1996 & 1997 850
Post Reply
esl_97_850_T5
Posts: 271
Joined: 19 June 2012
Year and Model: 1998 S70 GLT
Location: Knoxville, TN
Has thanked: 18 times
Been thanked: 27 times

Re: How to read 1996-1997 Volvo 850 mileage with an ELM327

Post by esl_97_850_T5 »

PeteB,

Here's some answers (with the easiest-to-answer coming first)...
PeteB wrote:...I also see that there are mostly clones out there of the complete ELM327 and that
the manufacturer only sells the chip not complete boxes. Suggestions on where to
buy a real one?
In 2014-05, I inquired of ELM Electronics: "Do you have a list of say 3-5 manufacturers of ELM327 based devices, especially any that utilize the new ELM327 2.0 chip?". They essentially refused to answer me, citing that they can not divulge customer information. Maybe if you ask the question in a different manner, you'll get a useful reply. Personally, I would like a real ELM327 v2.1 device -- either USB, Bluetooth, or WiFi -- that can be used with a Windows laptop (either WinXP, Win7, Win8.1, or Win10) or with an Android v4.2 (and higher) phone, since the ELM327 v2.1 chip has some PP parameters that help to further finetune the timing of ISO 9141-2 style connections. But I have no idea how to locate such a device that includes the real ELM327 v2.1 chip from Elm Electronics.
PeteB wrote:Just to be sure that I understand this, the ELM327 device connects to the computer
thought USB and the terminal emulator makes it look like a COM port to the user?
Because most newer laptops do not have COM ports...
All ELM327-compatible devices that I've seen connect to the computer via one of these physical transports: RS-232, USB, Bluetooth, or Wi-Fi.

The terminal emulator is not what makes it look like a COM port. The driver for the USB-to-RS232 serial chip is what does that for USB devices (eg, the drivers for the CP210x, FTDI, or CH340 chips). And for ELM327 Bluetooth devices, the SPP profile in the Bluetooth software stack is what makes ELM327 Bluetooth devices appear as COM ports.


That explanation applies for Windows.

Not sure how it works for Android, Linux, MacOSX, iOS, other than I know:

- ELM327 Bluetooth devices are extremely easy to work with in Android. Basically, pair Android to the ELM327 BT device, run your app, configure your app to use that BT device, then connect. Future connections usually only involve: run your app, connect. Very simple. [It's unclear to me if the SPP Bluetooth profile is being used "under the hood" in Android, but I could care less, since it all works so effortlessly.]

- ELM327 Wi-Fi devices are (usually) required for iOS.

I've yet to see an ELM327 Wi-Fi being used as a virtual COM port. I think (most if not) everyone uses the IP address/port approach with the wi-fi devices.

In all the above cases, if the terminal emulator can access the ELM327 device via a Windows COMnn port, Linux devnn port, Bluetooth device, or Wi-Fi device, it is most likely because some driver is making that information available to the terminal emulator.

Examples from my experience:

- My ELM327 v1.5 USB clone tool has a CP210x chip that handles the USB to RS232 conversion. That driver makes the ELM327 appear as some specific COM port (eg, COM5, ..., COM14, ...) and as a virtual port (usually \Silabser0).

- My ScanTool.net OBDLink SX USB ELM327-compatible tool has an FTDI chip that handles the USB to RS232 conversion. That driver makes the ELM327 appear as some specific virtual COM port (eg, COM6, ..., COM23, ...) and as a virtual port (usually \VCP0 or \VCP1, depending on how many other devices are presently being used that utilize an FTDI chip). [If you have a VAG/COM KKL FTDI USB cable in addition to an OBDLink SX USB cable and you have both plugged in simultaneously, you'll see that use of \VCP1.]

- The Bluetooth case (on MS Windows) is a bit different from the USB case, but the net result is that virtual COM ports are generated. They'll take the traditional COMnn form (eg, COM5, COM6, ..., COM12, ..., COM20, ...). They'll also take a form similar to \BthModem0, \BthModem1, ..., \BthModemn, or \BtPort0, \BtPort1, ..., \BtPortn, depending on what Bluetooth stack you are using. And there's probably other symbolic virtual COM port names for other Bluetooth stacks which I haven't encountered yet. The most common symbolic COM port names that I've seen associated with actual Bluetooth ELM327 devices are: \BtPort1 and \BthModem1. The appearance of these virtual COM ports for a Bluetooth ELM327 device depends upon the SPP profile being available in the Bluetooth software stack. Usually that comes with the operating system. If it doesn't, then you have to install the Bluetooth drivers that come with your computer's Bluetooth hardware. My understanding is that is why iOS devices can not use Bluetooth, but must use Wi-Fi instead -- Apple doesn't provide the SPP profile in the iOS's Bluetooth stack.

esl_97_850_T5
1998 Volvo S70 GLT - 205.5K miles - S70 & M44 testbed in 2016-2019; traded 2019-07-15 (for spare time)
1997 Volvo 854 T5 - 147K miles - 850 testbed in 2012-2017; junked 2017-09

PeteB
Posts: 880
Joined: 27 May 2014
Year and Model: 1996 Volvo 850 Wagon
Location: Connecticut, USA
Has thanked: 57 times
Been thanked: 11 times

Post by PeteB »

I'm an EE with an emphasis on computer and digital hardware design, and have
done some software along the way. If it was the early 1990s I'd write a program
in Turbo Basic to script all of those commands, that compiler is free now but it
is a DOS only program. There is DOS box for free that runs under windows but I'm
not sure if it would handle the (emulated) COM port correctly. Also, it would be
nice if the compiled program could include the DOS box environment so that you
don't have to install DOS box on every machine that runs the program, still it is not
that bad. I'm not sure what free software development tools would be best to do
it today. I think there is a free version of Visual Basic Studio but I've never tried it.
Really, even a scripting language should do it.

robocam
Posts: 51
Joined: 12 April 2009
Year and Model: 850, 1996
Location: Missouri

Post by robocam »

For some reason, the free app locks up after I enter 2 commands, so I just closed the app after sending 2 commands and restarted it for the next 2 commands. Here are the responses.

[You] ATZ
[Elm] ATZ

[You] ATL1
[Elm] ATL1
OK

[You] ATE1
[Elm] ATE1
OK

[You] ATI
[Elm] ATI
ELM327 v2.1

[You] ATAL
[Elm] ATAL
OK

[You] ATIIA 51
[Elm] ATIIA 51
OK

If this means that my unit isn't compatible, what's the least expensive way to get an ELM 327 device that works (PC or iPhone)? Do you know if that milageread program will work in my situation if I can obtain the proper ELM 327 device?

Also, the service department of one of our Volvo dealers offered to plug in their computer to the OBD port to see if they can read the mileage. I don't think they've done it before. Is there anything they should know about how to pull that information, or can they use their computer to send these ELM327 codes to receive responses? If so, what commands should they send and in what order?

esl_97_850_T5
Posts: 271
Joined: 19 June 2012
Year and Model: 1998 S70 GLT
Location: Knoxville, TN
Has thanked: 18 times
Been thanked: 27 times

Post by esl_97_850_T5 »

robocam,

About the only ELM327 terminal emulator for iOS worth immediately pursuing that I could find is Qbek's free iPhone app "Elm327 WiFi Terminal OBD".

I'm assuming that's the same one that you mentioned. The iTunes App Store description looked like it was just the WiFi version of his "Elm327 OBD Terminal" Bluetooth app mentioned previously. On further research I saw where he has both Bluetooth and WiFi Android versions at Google Play. I was going to download and test the "Elm327 WiFi Terminal OBD" Android app before responding to you. But you are proceeding faster than me, and your ELM327 device *does* have good ATAL and ATIIA 51 responses, so I'll go ahead and a) give you the list of commands/requests to read the mileage (see item 6), and b) hopefully get most of your other questions answered.

1. Is EOBD-Facile the iPhone app that read engine RPM and Coolant Temp?


EOBD-Facile should be able to read all the OBDII Emissions Diagnostics. You might have to configure it to scan for more of the '96 850 PIDs. Typically these general purpose OBDII emission diagnostics programs only scan for a couple of items, then you add more PIDs from there.

2. In my opinion, reading the Fuel Levels available from the COMBI using KWPD3B0 is a much more useful fuel-oriented reading, rather than extrapolating from some of the rudimentary OBDII emission diagnostic data available in the 96 850 using some sort of generic fuel usage prediction program. But I'm certainly not going to argue about it.

3. Some of my tools report the battery voltage almost 1 V different from what it probably is -- just like you have observed.

Some tools allow for calibrating their battery measurement. You might check to see if your tool can do that. I've never bothered with it. I just mentally make the correction. In my case, the tool was reading noticeably higher than expected, not lower, as in your case.

4. Are you saying that Qbek's free iPhone app "ELM327 WiFi Terminal OBD" locks up for you after every 2 commands?

That's very inconvenient, but I don't think it's a brick wall yet. [I like your "trudging 2 commands per run" persistence.] :-) I think you still may be able to use it enough to read your mileage, since the "ATAL" and "ATIIA 51" are yielding the correct response. Best present guess is your ELM327 can be used for KWPD3B0 communication. Let's at least assume that for the time being, bypass the separate pre-checking of all the other required KWPD3B0 oriented setup commands (that I would normally recommend), and go ahead and try the full list to read the mileage, using the same "choke after 2" app that you are using now. (See item 6 for the list of commands)...

5. Did the app actually display the "[You] " and "[Elm] " prefixes like you displayed?

6. Here's a fairly minimal list of commands / requests suggested for use with your free app that responded with the "[You] " and "[Elm] " prefixes, and previously showed that it formats nicely with ATL1 and ATE1:

Code: Select all

ATZ
ATL1
ATE1
ATI
ATSP 3
ATDP
ATH1
ATAL
ATKW0
ATTA 13
ATRA 13
ATIIA 51
ATWM 82 51 13 A1
ATSH 83 51 13
B903
Be sure to scroll to the bottom of the list (which ends with B903).

Those AT commands and the B903 request can be typed without any spaces if you like, and they can be typed in lowercase if you like.

Those commands / requests are for '96-'98 Volvo 850 / S70 / V70 / XC70 -- *not* for just any car!!!

The ATI is optional for you, since you already know how your ELM327 device responds.
The ATE1 is probably optional for you, since it is normally an ELM327's default value.
The ATSP 3 and ATDP may be optional for you, if you never use any other protocol.
But I've included all of them here for the benefit of other 850/S/V/C70 owners.

7. If at all possible, try to have the app save the commands and responses into a log file, then copy the entire log file's contents into the Paste box of the interpreter.

That's the approach that's least prone to errors.

As far as further detailed instructions go, if your app can log everything to a log file, you enable that log before you do anything, connect via wi-fi, issue the ATZ thru B903, (probably) exit the app, examine the log with some sort of File Manager to make sure what you saw on the screen is actually in the log file, if your log file actually includes those "[You] " and "[Elm] " prefixes, you'll need to delete them (including the blank that terminates those prefixes since the response has to be left aligned on the line for the interpreter to recognize it), since the interpreter will interpret probably nothing if you leave them in, copy everything in the log file to the clipboard (similar to a Windows Ctrl-C), click this KWPD3B0 interpreter's Paste box link to display the interpreter's Paste box, click once in the Paste box, press the iOS equivalent of a Windows Ctrl-A to select all the contents in the Paste box, paste what you had saved in the clipboard (using the iOS equivalent of a Windows Ctrl-V). Now everything you had in the log file should be inside the interpreter's Paste box, scroll to the bottom of the Paste box, click Interpret button, wait a few seconds for the interpretations (or errors) to appear on a separate page in a Gleanings (or Errors) box.

8. As far as having the Volvo dealer read the mileage, search for "jimmy57" on the volvo_850_diag_links.html page, read the paragraphs for that jimmy57 item, then follow the jimmy57 link.

The included instructions should guide you and them in what buttons to press on what menus of their VST (or VST lookalike) tool. That's all they need.

9. Either ATZ or unplugging the ELM327 will nullify the effect of these ELM327 setup commands which are used to prepare for KWPD3B0 communication: ATH1, ATAL, ATKW0, ATTA 13, ATRA 13, ATIIA 51, ATWM 82 51 13 A1, ATSH 83 51 13.

ATZ is the standard way that I revert to using the OBDII emission diagnostic protocol after having accessed the COMBI, SRS, ABS, etc via the KWPD3B0 protocol.

Like a Windows Restart, ATZ will not undo permanent changes that you have made. For example, if you've reprogrammed PP parameters in the ELM327, they will remain reprogrammed. Also, the protocol will likely remain set to ISO 9141-2 (depending on how you had some of the other ELM327 parameters setup as far as remembering successful protocols). Also, if you've reprogrammed something in the car -- eg, if you've cleared DTCs or if you've reprogrammed the COMBI's Service Reminder Interval limits, then those DTCs will remain cleared after the ATZ (if the underlying problems have already been solved), and the SRI limits will remain reprogrammed after the ATZ.

To answer you another way, there are no Ctrl-Z / Undo facilities. ATZ works excellently to return to OBDII Emission Diagnostics. But it is not a magic, "fix my mess" button.

You can "undo" typing errors on a single line either by deleting them or (oftentimes) just by typing garbage.

10. If you are interested in scripting OBDII emission diagnostics and/or KWPD3B0 based diagnostics (in Javascript, Java, Python, Basic, or in any language), be sure to check out the .js file in the http://jonesrh.info/volvo850/volvo850diag.zip download to see how volvo850diag uses Javascript scripting. Focus on the dtcss (Read All DTCs), qss (Quick Scan All ECUs), fss (Full Scan All ECUs), xss (My Extra Scans), and sss (most of the other volvo850diag buttons) tables to see the command lists.

11. Assuming you can get the mileage read (and consequently can assume you have an ELM327 tool that can communicate with your COMBI, SRS, ABS, etc), you might as well go ahead and pay the $14.99 for the EOBD-Facile capability to send commands, since there are so few ELM327 terminal emulator solutions available, and it could be that the EOBD-Facile "Send Command" facility does not have the "hang every 2 commands" problem.

The only wi-fi ELM327 terminal emulators I could see during my research was the Qbek "ELM327 WiFi Terminal OBD" iPhone app (which is what I think you also discovered).

You might be able to use the EOBD-Facile send command facility to accomplish the KWPD3B0 protocol access as long as you can come very close to disabling the OBDII scanning.

I've been able to get the Windows-based OBDwiz and TouchScan to perform scripts modified from volvo850diag. It required totally disabling all OBDII PID scanning and altering a few other things so that OBDwiz / TouchScan only did 1 or 2 OBDII scans, then sat totally quiescent, waiting for user input. Then the OBDwiz / TouchScan "Command" facility (probably similar to EOBD-Facile's Send command facility) was used to interactively send ATPC to terminate the protocol, thereby terminating the automated sending of the KeepAlive. Within 5-6 seconds, the car terminated its side of the connection. OBDwiz and TouchScan were apparently not aware that the protocol has been terminated on either end. At that point, the KWPD3B0-oriented commands/requests were issued and, amazingly enough, the KWPD3B0 communication proceeded quite well until things like NO DATA were encountered, at which time OBDwiz and TouchScan took over and essentially screwed everything up by re-establishing a connection, but it didn't work since the last setup commands were for KWPD3B0, and the connection attempt was a part-OBDII, part-KWPD3B0 mongrel. So as long as you edit the scripts that come with volvo850diag.zip so they eliminate requests that are likely to cause NO DATA, and a few other mods, you can even use the OBDwiz / TouchScan "Play File" facility to automate groups of commands/requests. [I'll provide those "adapted for TouchScan/OBDwiz" scripts in volvo850diag v0.8 once its released.]

You might be able to use a similar approach with EOBD-Facile's Send Command facility.

I presume that other generic OBDII packages for the iPhone also have a "Send Command" facility, but it's very hard to find such generic programs in which you can effectively "shut down" the automated OBDII scanning like I just described for OBDwiz / TouchScan.

12. As far as "can the milageread program work" question...

It worked on my PC the first time I ran the downloaded .exe that mikeri provided. However, when run a second time, it displayed an incorrect mileage due simply to a dearth of error processing. It's a very useful, first draft. But it needs some work. First, the 00-padding needs to be removed so it can be used also with the '98 S70/V70/XC70. But, more importantly, it needs a variety of error processing enhancements. I personally think it's a worthwhile foundation to explore melding volvo850diag with the kwpd3b0_interpreter's .php server backend, driving it with Python instead of Javascript, and combining it with Qt (or some other) GUI foundation that works well with Python. I'm very glad mikeri offered it. Python's availability on Windows, iOS, Android, and Linux is a big selling point to me.

I've done some enhancements to milageread.py to correct the "false mileage" problem that I encountered and to "beef up" the error processing in several ways, but I had to put that on the back burner back in ~2015-06 to deal with more pressing matters. If you, or mikeri, or PeteB would like a copy of what I've done, then PM me or e-mail me. I did my work strictly with the Python interpreter on a Win7 64-bit system using Python v2.7.10 (32-bit), since I didn't want to hassle with figuring out how to build into executables.

There is a required Python package, PySerial, that milageread uses. You would have to check if that is available for iOS, if you pursued the milageread route on iOS.

mikeri has a thread dedicated to milageread over at volvoforums.com: "Easily read milage from Motronic 4.3 using ELM327"

That is probably the more appropriate place to discuss his program further.

Don't get fooled by his title. His B90300 (00-padded) milageread is probably applicable to any '96-'97 850, even if they have a Motronic 4.4 or a Fenix ECM [edited: with the possible exclusion that it might not work with 96-97 850 with Yazaki cluster]. And if you get rid of the 00-padding and change it to use B903, then milageread would also be applicable to the '98 S70/V70/XC70, in addition to the '96-'97 850.

13. Concerning recommended ELM327 tools if you decide to try others:

I no longer recommend "least expensive" tools, since I haven't figured out how to reliably predict their quality.

I have a fairly cheap ELM327 v1.5 USB clone which is good and has served me well for 3.5 years. And there's other good tools around that others have had good experience with. But ScanTool.net's 3-year warranty, free OBDwiz or OBDlink app, good (at least for me) customer service, very useful (as least for me) forum, and higher speed devices make me feel comfortable in buying from them repetitively and in recommending them to others. But their tools are best bought on holidays, when the company usually has significant markdowns.

- For Android: ScanTool.net OBDLink LX BT (unless you need higher throughput or extra protocols of OBDLink MX BT). Caveat: still evaluating OBDLink LX BT, but am very favorably impressed so far, and love its extreme convenience and easy of use. I use it primarily with XantheFIN's "Volvo 850 OBD-II" Android app -- BETA, still in development, for KWPD3B0 ECUs. His M4.3/M4.4 (OBDII Emission Diagnostics) Live Data facility is not yet working, but he'll get that running. In the meantime, I use the capable OBDLink app, which to me is much easier to setup and use than Torque (free). For ELM327 terminal emulation, I use XantheFIN's "Volvo 850 OBD-II" Android app most often. But sometimes revert to one of the 3 ELM327 Terminal Emulator apps in Google Play, where ElmBasic is the 1st choice of the 3.

- For Windows (touchscreen tablet): ScanTool.net OBDLink LX BT (or OBDLink MX BT). HP Stream 7 running Win8.1 with OBDLink LX BT and volvo850diag v0.8beta, interpreted by kwpd3b0_interpreter, for both KWPD3B0 ECUs and OBDII emission diagnostics, augmented occasionally by more detailed OBDII emission diagnostics via OBDwiz software (which is provided free with ScanTool.net tools). ELM327 terminal emulation is usually via Realterm (run by volvo850diag), but sometimes by STNterm.

- For Windows (non-touchscreen laptop): ScanTool.net OBDLink SX USB. older laptop running WinXP (and up) w/ latest in-development volvo850diag, interpreted by kwpd3b0_interpreter, for both KWPD3B0 and OBDII, augmented occasionally by OBDwiz, and w/ ELM327 terminal emulation via Realterm (run by volvo850diag), STNterm, or (if on WinXP) Hyperterm. I think the USB approach provides the most reliable communication.

- For iOS: ScanTool.net OBDLink MX Wi-Fi. Caveat: not evaluated tool hardly any yet, and have definitely not evaluated any on iOS.

Concerning Bluetooth vs. USB, I'm convinced USB is more reliable. However, for quality Bluetooth tools like the two ScanTool.net tools mentioned here, I think the difference in reliability between Bluetooth and USB is trumped by Bluetooth's greater convenience. At least that's my initial analysis.

esl_97_850_T5
Last edited by esl_97_850_T5 on 06 Jan 2016, 09:33, edited 1 time in total.
1998 Volvo S70 GLT - 205.5K miles - S70 & M44 testbed in 2016-2019; traded 2019-07-15 (for spare time)
1997 Volvo 854 T5 - 147K miles - 850 testbed in 2012-2017; junked 2017-09

esl_97_850_T5
Posts: 271
Joined: 19 June 2012
Year and Model: 1998 S70 GLT
Location: Knoxville, TN
Has thanked: 18 times
Been thanked: 27 times

Post by esl_97_850_T5 »

mikeri wrote:Sorry to bump this old thread, I just want to inform you that I made a little program to read the milage of Motronic 4.3 cars via ELM327. The code is at https://github.com/mikeri/milageread and an compiled version for Windows (runnable exe-file, no extras needed!) is at http://mikeri.net/milageread.zip. Just extract it, CD into the extracted directory in a command prompt and type "milageread COMx" where x is the port number of the ELM327 device.

Also, somewhat interestingly, my car seems to return miles even though it is a European car with metric instruments. Unless the ECU have been changed or reset in the past and by a bizarre coincidence the milage seems to fit very well with what I estimate it to be. Have you done any more research on this? (km vs miles) I'd like feedback from users from metric locations.
mikeri,

My apologies for taking so long in responding directly to you for your 2015-07-07 post in this thread. I really had wanted to finish my first draft of enhancing the milageread error processing before doing so. But it looks like that's not going to happen any time soon, so...

1. Thanks for spending the time to create milageread.

Thanks for posting here in this thread. This is most certainly an appropriate thread in which to inform us what it can do, where to locate the source, where to download its zipped Windows executable, how to run it, etc.

2. MVS users here need to also be made aware of your volvoforums.com thread dedicated to milageread.


http://volvoforums.com/forum/volvo-850- ... 327-84508/ "Easily read milage from Motronic 4.3 using ELM327".

That thread contains an easy to comprehend video of how to run milageread.

3. Your program talks to the COMBI, *not* to the Motronic 4.3. The 51 in the headers is for ECU 51 (ie, the COMBI's microprocessor).

The volvoforums.com thread's post #1 and post #6 imply (to me) that you think you are reading the mileage from the Motronic 4.3.

Yet the ECU 51 (COMBI) B903 (Vehicle Miles / 10) stored data is accessible on (at least) '96-'98 Volvo 850 / S70 / V70 / XC70, regardless if those cars have an ECM of:

- Motronic 4.3 (which is *not* addressable using the (5-baud/10400-baud) KWPD3B0 protocol which you are using to retrieve the mileage from your COMBI),

- Motronic 4.4 (which *is* addressable using the (5-baud/10400-baud) KWPD3B0 protocol using ECU 7A, but to my knowledge is not known to store the mileage), or

- Fenix 5.2 (which like the Motronic 4.3 is *not* addressable using the (5-baud/10400-baud) KWPD3B0 protocol which XantheFIN uses to retrieve the mileage from his COMBI and which XantheFIN uses in his "Volvo 850 OBDI-II" Android app to explore a great many COMBI data, including Market Code, Service Reminder Interval limits, Tire Sizes, continuously displaying the COMBI Live Data at a very rapid rate, etc, displaying the Vehicle Mileage (in miles or km, your choice) after performing a Scan, and displaying the estimate mileage, days, and engine hours remaining before the SERVICE light starts coming on again at engine start).

Vehicle Miles has been derived from the COMBI B903 value on cars with Motronic 4.3, cars with Motronic 4.4, and at least 1 car with Fenix 5.2.

On these '96-'98 Volvo 850/SVC70 cars, the COMBI determines the mileage from the speed pulses that come from the ABS module.

Your program -- as written now using the 00-padded B90300 -- should work with many '96-'97 850 that contain either Motronic 4.3, Motronic 4.4, or Fenix 5.2.

The main possible limitation might be that your program could not work with '96-'97 850 Yazaki clusters. I'll leave it to others to determine if that's true.

4 [edited]. See item 12 involving the "can the milageread program work" question from my long post earlier today.

It has several paragraphs of things I've been meaning to communicate to you: successful use of milageread executable, successful running of milageread.py interactively, problems encountered with milageread, etc.


I'll post over at your volvoforums.com thread later today with more details of the problems I encountered. Might include some suggested solutions also.

I love milageread's sheer simplicity!! It's easy to understand. Kudos!

Thanks! This was a good re-introduction to Python
-- with a very practical example.

It's given me hope that a tool that's fairly easily portable to multiple platforms is achievable without having to repeat all previous work.

5 [edited]. Concerning the "is COMBI B903 km vs. miles" question that you asked in your introductory post in this thread...

That's a highly pertinent question. Yes, I've done further research, gotten some excellent feedback from you, 1 or more Canadians, and several other Europeans -- most notably, XantheFIN, who has been creating a "Volvo 850 OBD-II" Android app for probably the better part of a year now. It was XantheFIN's data from a variety of tests, along with the OTP Volvo 850 Repair DVD, that finally got through my thick skull and helped me to conclude:

5a. My latest -- as of late 2015-12 -- understanding of ECU 51 B903 is that it increments once every 10 miles (16 km), for all cars worldwide.

5b. My latest -- as of late 2015-12 -- brand new understanding of ECU 51 B905 -- courtesy of XantheFIN's research -- is that it represents multiples of 500 km, for all cars worldwide. For example:

ECU 51 B905 = 1 -> 500 km.
ECU 51 B905 = 0Fh = 15 -> 7500 km.
ECU 51 B905 = 1Eh = 30 -> 15000 km.
ECU 51 B905 = 10h = 16 -> 8000 km, and is probably used as the VST rough equivalent for 5000 miles).
ECU 51 B905 = 20h = 32 -> 16000 km, and is probably used as the VST rough equivalent for 10000 miles).


jonesrh.info will be updated during the coming weeks to reflect those two new views. As of 2016-01-06, the only files at jonesrh.info/volvo850/ that have been updated to reflect this are:

- ECU_51_B9_Meaning_of_Values_raw_notes.rtf
- ruminations_on_logs_192_199_200_205_assuming_B905_always_in_500_km.rtf

esl_97_850_T5
1998 Volvo S70 GLT - 205.5K miles - S70 & M44 testbed in 2016-2019; traded 2019-07-15 (for spare time)
1997 Volvo 854 T5 - 147K miles - 850 testbed in 2012-2017; junked 2017-09

PeteB
Posts: 880
Joined: 27 May 2014
Year and Model: 1996 Volvo 850 Wagon
Location: Connecticut, USA
Has thanked: 57 times
Been thanked: 11 times

Post by PeteB »

I have decided that I probably won't have the time to set all of this up.

One suggestion on getting a good, up to date ELM327 unit is to buy a clone and if it
does not have an up to date chip, buy a good chip direct and replace the one in the
clone. IIRC it was a through hole part that should not be too difficult to solder with
a solder sucker, and decent technique.

robocam
Posts: 51
Joined: 12 April 2009
Year and Model: 850, 1996
Location: Missouri

Post by robocam »

I sincerely appreciate all the help you've provided. Thank you so much.
esl_97_850_T5 wrote:...

8. As far as having the Volvo dealer read the mileage, search for "jimmy57" on the volvo_850_diag_links.html page, read the paragraphs for that jimmy57 item, then follow the jimmy57 link.

The included instructions should guide you and them in what buttons to press on what menus of their VST (or VST lookalike) tool. That's all they need.
...
esl_97_850_T5

esl_97_850_T5
Posts: 271
Joined: 19 June 2012
Year and Model: 1998 S70 GLT
Location: Knoxville, TN
Has thanked: 18 times
Been thanked: 27 times

Post by esl_97_850_T5 »

You're very welcome.
1998 Volvo S70 GLT - 205.5K miles - S70 & M44 testbed in 2016-2019; traded 2019-07-15 (for spare time)
1997 Volvo 854 T5 - 147K miles - 850 testbed in 2012-2017; junked 2017-09

mikeri
Posts: 2
Joined: 7 July 2015
Year and Model: 850 T5 2.0 1996
Location: Oslo, Norway

Post by mikeri »

esl_97_850_T5 wrote:mikeri,

My apologies for taking so long in responding directly to you for your 2015-07-07 post in this thread. I really had wanted to finish my first draft of enhancing the milageread error processing before doing so. But it looks like that's not going to happen any time soon, so...
Right back at you; apologies for this late reply.
1. Thanks for spending the time to create milageread.

Thanks for posting here in this thread. This is most certainly an appropriate thread in which to inform us what it can do, where to locate the source, where to download its zipped Windows executable, how to run it, etc.


And thanks for all your kind words!

3. Your program talks to the COMBI, *not* to the Motronic 4.3. The 51 in the headers is for ECU 51 (ie, the COMBI's microprocessor).


You're absolutely right, I'll update the readme text if I ever make an update.

It has several paragraphs of things I've been meaning to communicate to you: successful use of milageread executable, successful running of milageread.py interactively, problems encountered with milageread, etc.


Feel free to communicate. :) If you ever did any enhancements to milageread you can email the source to me (mikeri at mikeri dot net) and I'll post an updated exe, remember to include whatever name or handle you want to be credited as in the code/readme.

esl_97_850_T5
Posts: 271
Joined: 19 June 2012
Year and Model: 1998 S70 GLT
Location: Knoxville, TN
Has thanked: 18 times
Been thanked: 27 times

Post by esl_97_850_T5 »

*********************************************************************************************
EXTRA! EXTRA! READ ALL ABOUT IT!
volvo850diag v0.8beta45 -- a pre-release beta of volvo850diag v0.8 -- is now available!
*********************************************************************************************

There's a new volvo850diag v0.8beta45 version (dated 2016-03-26) available for download as volvo850diag.zip.

It's the first update in over 1.6 years.
Last release was volvo850diag v0.7 on 2014-07-31.

There's a lot of changes in it. But the primary ones are:

1. Corrects the SRI limits for the new understanding that ECU 51 B905 is in increments of 500 km (instead of 1000 km) -- for all cars worldwide.


Basically what had been happening in volvo850diag v0.6 and v0.7 -- since the inception of the Select SERVICE Reminder Indicator (SRI) limits pulldown and clicking the Reprogram SRI limit(s) button -- is that the Mileage limit had been programmed to 1/2 as much as volvo850diag had reported. For example, when volvo850diag v0.6 and v0.7 had reported the SRI Mileage limit was programmed to ~10000 miles, actually it had been programmed to ~5000 miles.

Now the SRI Mileage limit programming should be reported accurately in both kilometers and miles.

2. Add more items to the SRI limits pulldown so that all limits listed in the OTP Volvo 850 DVD's 850 VDO COMBI document and the S70/V70 Yazaki COMBI document are included in that pulldown.


All of the double-asterisk (**) items in the Select SERVICE Reminder Indicator (SRI) limit(s) pulldown are from the OTP Volvo 850 DVD. They probably mimic what is available in the dealer's VST (Volvo Scan Tool). And there's been some additions even beyond those. The only significant thing missing from those pulldown values (that I can think of) is the ability to type in your own value from the volvo850diag.html GUI.

The closest thing volvo850diag has to "typing in your own limits" is an enableable facility (inside its .js file) where you can specify any non-zero value in the entire range of any of the limits. But you have to edit the .js file to use it. If you're interested in that, search for 123 in the .js file for details, else research XantheFIN's "Volvo 850 OBDI-II" Android app's +SERVICE / CUSTOM function.

3. Enhance the documentation for "Reset SRI" (ie, SERVICE light resetting) functions so they show the S70/V70/XC70 responses as well as the 850 responses.

4. Adds an ability -- via checkboxes in a new OPTIONS box -- to enable/disable some of the ECUs which are scanned in "Read All DTCs", "Quick Scan All ECUs", "Full Scan All ECUs", and the "Minimal Scan" inside "My Extra Scans".

This way you can totally avoid the waste of time involved with scanning ECUs which your car does not have.


For reliability reasons, It is strongly suggested that you do **NOT** scan ECUs which do *not* exist on your car -- other than to do a one-time exploratory scan of all possible ECU #s 00-FF to see which ones respond.

5. Disable the scanning of Power Seats (ECUs 2E and 2F) by default now (since they are so unimportant, and there seems to not be a whole lot of owners that have them). But still keep the AW 50-42 (ECU 6E) scanning enabled by default -- even though there are a large number of owners with manual transmissions -- since the transmission *is* so important. Also, still keep the Motronic 4.4 (ECU 7A) scanning enabled by default, even though there's quite a few owners with Motronic 4.3 (or Fenix 5.2), for the simple reason that I need to see more M44 data submitted to kwpd3b0_interpreter -- for ignition pos II, for engine on and idling, and for engine running at a steady speed while driving.

6. Adds an ability to select the "scanner_type" from a pulldown list, instead of editing the .html file.

With a single scanner_type selection, you can select: a) the type of scanner (eg, ELM327 non-OBDLink variants vs. ScanTool.net OBDLink variants), b) symbolic port name (eg, \Silabser0, \VCP0, \BthModem0, \BthModem1, \BtPort0, \BtPort1), and c) speed (eg, 38400 or 115200). In a later release, I'll probably add a lot more possibilities to this list, so it will be unlikely you have to use Realterm's Port tab in normal operation. [Though you still might find Realterm's Port tab useful on the very first time you try to connect with a new device.]

There's a little better ability to quickly select the scanner_type for Bluetooth devices. The symbolic port names beginning with \BthModem are from the Windows Bluetooth stack (that might possibly be in use on Win7). The symbolic port names beginning with \BtPort are from the WIDCOMM/Broadcom Bluetooth stack (which is used on my WinXP).

Eliminate the "fallback" to using 9600 baud for an unknown scanner_type. 38400 baud is now the "fallback" default for an unknown scanner_type.

7. Add "Clear CEL" button to clear the CHECK ENGINE light.

8. Explain better how to debug connection errors on Win7 IE11.

9. Drastically increased the amount of live data (A5 and A7 requests) and stored data (B9 requests) scanned for ECU 7A (Motronic 4.4) -- per (primarily) a thorough list provided by rkam.

Almost none of the M44 live data and stored data is translated by the interpreter, at present. Those will be added as time permits. But the DTCs are interpreted fairly completely at present by the online kwpd3b0_interpreter. Also, the Hardware/Software versions are listed by the interpreter.

10. Add ECU 51 (COMBI) Test Gauges button to see the gauges swing through close to their full ranges.

It should work on both 850 and S70/V70/XC70.

11. Added some scanning of these ECUs: 11 (MSA 15.7), 41 (Immobilizer), and 18 (Add Heater 912-D) to the "All ECUs" functions.

The MSA 15.7 and Immobilizer DTCs are thought to be interpreted fairly completely by the online kwpd3b0_interpreter. Also, the Hardware/Software versions are listed.

12. Remove a lot of the Power Seat scanning from the Quick Scan functions, since I'll probably never add their live data and stored data to the online interpreter.

13. Remove some of the OBDII scanning which seemed completely superfluous and has never produced a valid response.

14. Added a manually enableable, continuous, custom OBDII live data scan loop into the "My Extra Scans" function. That OBDII live data loop can run for ~1 hour or until you Cancel it. It has to be manually enabled by editing the .js file.

15. Attempt to make an initial Bluetooth connection to operate more reliably.

16. Work more reliably with ELM327 v1.2 and v1.2a device when owner has edited "use_ATTA = 0", but has forgotten to edit "use_ATRA_vs_ATSR = 0" (which is a necessity for ELM327 v1.2 and v1.2a devices).

17. Adapt some of the scripts so they can be used with TouchScan's or OBDwiz's "Play File" facility.


There's a very large amount of detailed info provided in the readme file (with the long filename) in the \scripts\touchscan_obdwiz directory. Maybe someone can use that info to marry those TouchScan/OBDwiz-adapted scripts with those programs' Play File facility and with those programs' Professional Add-on to define User Generated PIDs. It would be nice to have a "96-'98 Volvo 850/S70/V70/XC70" add-on like the Ford or GM add-ons for those products, and be able to use those programs' GUI.

18. And there's various reliability tweaks and experiments.

That's the bulk of the changes.

There will be somewhere between 1 and several v0.8betaNN (interim) releases before the final "official" v0.8 production release. The interim releases may or may not be announced here.

But at least there's a fix out there *now* for volvo850diag v0.6 and v0.7's faulty SRI Mileage limit programming. It's several months overdue now (from when I first figured out the problem in 2015-12 and published something about it at one of the files at jonesrh.info/volvo850/). My apologies for the faulty and unnecessarily complex interpretation of the ECU 51 B905 data every since Fall 2012 when I thought I had it figured out fairly well. My thanks to XantheFIN, author of the "Volvo 850 OBD-II" Android app, for "setting me straight" about the correct way to interpret COMBI's B905 data.

esl_97_850_T5
1998 Volvo S70 GLT - 205.5K miles - S70 & M44 testbed in 2016-2019; traded 2019-07-15 (for spare time)
1997 Volvo 854 T5 - 147K miles - 850 testbed in 2012-2017; junked 2017-09

Post Reply
  • Similar Topics
    Replies
    Views
    Last post