BMW Data Link Interface Project

Hardware Theory

The Basics
Hardware Theory
Hardware Practice
DS2 Protocol
ECU Addresses
DS2 Commands
ECU Responses
Fault Codes
BMW Scan-O-Matic
BMW underhood diagnostic connector

At right is the underhood connector.  Here are the connections we care about:
Pin 15 (RXD) -- L line (send-only line used to request info from some (not all)computers)
Pin 16 (15S) -- +12V (switched by ignition)
Pin 19 (31) -- Ground
Pin 20 (TXD) -- K line (bi-directional data)
(Note that on US cars, the K line appears on pin 17, not 20, and it is also the data line for the OBD-II port.) 
The data link between the various computers in the car (engine, ABS, SRS, etc.) and the testing device is via serial transmission of data, but unlike your PC, send and recieve are done on one line (half-duplex).   So an interface is needed to connect a two-wire PC serial port to the 1-wire Data Link. 
Also, note that there are two data lines.  The implementation of these is not consistent across cars, but in general the idea is that the L-line is a one-direction (scanner to computer) line, and the K-line is a bi-directional line. 
On some (older) cars, the L-line is also a low-speed line, with data moving a blistering 5 baud.  To give you some idea, 5 baud is roughly the speed of slow Morse code -- you can actually watch the line go high and low.  However, on my car, transmissions on the L-line are at the same speed as the K-line -- 9600 baud.
To add to the confusion, some of my car's computers use the L line to receive commands, while others use only the K.  Specifically, the ECU, airbag, immobilizer, and cluster computers have no connection to the L-line, while the rest (ASC/ABS, central body, and alarm) use both K and L.

This site is not affiliated with BMW in any way.  As if you couldn't tell.