The CAN bus does not go to the LSZ. There seems to be two different wire colors for the CAN Bus. Between the ABS, steering angle sensor, instrument cluster, DME and adaptive headlight control unit it's CAN+ is Yellow/Red and CAN- is Yellow/Brown. Between the DME and the transmission control unit it's CAN+ is yellow and CAN- is white. The CAN Bus does NOT connect to the OBDII connector nor does it connect to the older DLC-20 connector under the hood.
You want K-bus, thats what the BMW uses for communication. Not sure what protocol the ODB port uses but only a limited subset of information that is required for emissions purposes is available on that.
K-Bus doesn't have any engine information. You might be thinking K-Line (ISO 9141-2) which is available on the OBDII port. If you want engine specific information it's safest to go through the OBDII port, K-Line. If you look at the wiring diagram it's called D_TXD2.
Why not? Isn't it supposed to be?
From
http://www.obdii.com/connector.html :
Pin 2 - J1850 Bus+
Pin 4 - Chassis Ground
Pin 5 - Signal Ground
Pin 6 - CAN High (J-2284)
Pin 7 - ISO 9141-2 K Line
Pin 10 - J1850 Bus
Pin 14 - CAN Low (J-2284)
Pin 15 - ISO 9141-2 L Line
Pin 16 - Battery Power
BMW E46 does not use J-2284 and CAN bus is not available on the OBDII port. The E46 uses ISO 9141-2. Look at the connector, pins 6 and 14 (CAN J-2284) are empty as well as pin 2 & 10 (J1850) and pin 15 (L-Line is optional in ISO 9141-2)
I need the CAN bus because i have a CAN datalogger which will send speed signal to my headlight leveling system
My ODB II connector only has 4 wires though (2 of which are GND if im not mistaken) :/
Be careful messing around with the CAN bus. If you disrupt traffic on the bus you may have issues with the ABS, transmission, steering angle sensor and engine which need to be in constant communication or stuff won't work right. It's best to use the K-Line (ISO 9141-2) signals at the OBDII connector. The instrument cluster acts as a gateway to the CAN bus. It will take your requests for information and if properly formatted will send it along on the appropriate bus. If your program goes crazy and transmits garbage the cluster will ignore it and not forward it to the CAN bus.