This document outlines my experience diagnosing my BMW E34 with INPA/DIS.


My E34 is a JDM-spec car that originally shipped with a JATCO JR502e transmission. It was built in 09/91, with an M50 pre-VANOS engine.


The approach I have taken so far is summarized as follows:

To get the Thinkpad running, I followed this guide:


I managed to get into the Recoding area of the E34 once, getting these critical values:

(I have heard that losing the GM/SA/VN numbers and not having a ZCS value is very bad, so I’ve attached a picture here)


I could not connect to many of the modules afterwards. Diagnosis within DIS took over an hour to clear codes and I was unable to get any diagnostic data.


Along with the brittle-ness of having two laptops set up, the router, getting DIS to talk to DiagHead, and so-forth, I decided I should instead use INPA to talk to the car.

Unfortunately, the version of INPA I have only has files for DME 3.31 (M50 with Vanos), with the other files being rare as hen’s teeth.

However, INPA is actually a soft-coded beast. Each element in the UI corresponds to a configuration file which outlines the options. The mapping from RS232 configuration to displayed/enterable parameters is also configurable.

This makes adding the option in the menu for E34 M50 2.5 l, DME 3.3 quite simple. However, it is critical to not brick the DME. (Although I do happen to have a spare just in case). Reading the forums, I have discovered that DIS also uses .PRG files for the rs232->configuration mapping, and that INPA uses the same files.

Exploring in the DIS Hard-disk

BMW DIS runs on SCO OpenServer 5.0.7 (the SCO who tried to sue any Linux vendor 10 years ago.), which uses a proprietary file-system/partitioning format. . SCO allows multiple file-systems to live within the same partition. Linux drivers for this “divvy” schema are non-existent.

So, the next plan of attack is to use FTP on the DIS computer to get all of the files out onto a real computer.

Once the files are loaded off the Thinkpad, I plan to write a shell script that does a recursive diff to find which files have exist on DIS and not INPA. For files that exist in both, I want to do a binary diff and make sure they are actually the same.