With the hardware connection complete, a software layer needs to be provided so the correct commands can be sent to the
ECU, and the ECU's responses interpreted correctly.
This is where things get a little tricky. The protocol for OBD-II is relatively well-understood in cyberspace,
but my car was produced (one month) before BMW computers became OBD-II compliant. Furthermore, the BMW protocol
("DS2") allows communication all of the on-board computers, and does more than OBD-II can.
Commercial programs like Carsoft can "speak" DS2. However, these are prohibitively expensive.
Several freeware programs are available on the opendiag
Yahoo group. The problem here is that many of the codes given do not work with the computers in my car.
Therefore, I'm reverse-engineering it myself, using all of these sources.