ok, thought some of you might be interested in this. is a DIY on how to read the fault codes on your pre '95 e36 (also for '88 onwards E30), using the CEL (check engine light), in other words, what is also known as "stomp test" on US spec bmw's.
job is pretty straight forward, you'll need to wire the pin 8 from the x20 connector (round one, near the fuses box) to pin 16 in the white connector from the instrument cluster. that can be done in no time, the only difficult bit here is finding a hole to get the wire from the x20 connector (under the bonnet) to the pin 16 from the white connector, in the right side of the instrment cluster (inside the car). me, i found a small hole near the positive socket of the car (big red cable). other used another one, near the pedals.
few more details on X20: as you can see, it's a 2 pieces connector. un-screw the top, and you'll split it in 2 halves: the upper one is the one with the holes, the bottom is the half with the pins. you'll already have pin 8 wired in the upper part (should be a grey wire), you'll just need to continue from there with the wiring to the pin 16 in the white connector from the instrument cluster.
and that's all the wiring you'll need to read the fault codes.
HOW TO READ THE CODES:
To read codes for an OBD I car, you start by turning the ignition key on (do not start the engine) and pressing the gas pedal to the floor five times within a period of five seconds. If you proceeded correctly, then the check engine lamp will light on for five seconds, then blink off, then blink on for 2.5 seconds, and then go off for another 2.5 seconds.
After this, the computer will start to show you the trouble fault codes that are stored.
The codes are given by short flashes of the check engine light, followed by short pauses. The codes are all four digit numbers. For example, the trouble fault code for monitoring the battery voltage level is 1231. This would show up flashing as "flash - pause - flash - flash - pause - flash - flash - flash - pause - flash." I suggest having a pen and paper handy when you do this, as the codes have a tendency to flash faster than you would think.
If there is more than one fault code stored, then each code will be separated by a 2.5 second pause.
When there are no more codes to be read, the computer will give the code 1000, which is one short flash, and then the light will remain off. Then the check engine light will flash a half-second and then turn off. To read the codes again, simply turn the ignition key off and on again and repeat the procedure with the gas pedal (five times within five seconds).
To erase the fault code memory, first make sure fault code 1000 (short blink and then light goes out for long period) is present, then depress acellerator fully for at least 10 seconds. Read fault codes and check for 1444 code (no faults stored).
all error codes are in the pdf file, with description of the code and suggestions for resolving the problem.