Thread: E9x KCAN 101
View Single Post
      10-09-2008, 10:46 PM   #1
HighVoltage
.
HighVoltage's Avatar
United_States
32
Rep
867
Posts

Drives: 07 E90 335i
Join Date: Aug 2008
Location: .

iTrader: (0)

E9x KCAN 101

Ok, so I scoured the internet a few weeks back and could not find anything about the KCAN bus on the E9x. This bus is essentially the successor to the KBUS used in early models like the E46. Its primarily used for communication between the systems in the BMWs E9x cabin area. Examples include the windows, interior lighting, radio/idrive display, etc.. Attached below are figures of the all of the bus systems including KCAN on the E90, a list of all the modules and some data about the bit rates.

This is a work in progress, so I will be updating this post as
we discover more. I will try to keep a log of all the changes in the revision
history. The primary objective of this post is to list the commands to interface and/or control the components in the cabin.

KCAN is based on CANbus 2.0A (11 bit identifier) with a bit rate of 100 kbits/sec.

Some helpful links on CAN:
http://www.aa1car.com/library/can_systems.htm
http://www.mjschofield.com
http://www.interfacebus.com/Design_Connector_CAN.html


Revision Notes
1.000:: 10/9/08 First submission.
1.001:: 10/10/08 Formatting, Added info on light ON/OFF sequence
1.002:: 02/17/08 Window Data update
//////////////////////////////////////////////////////////////////////

Now, the functions so far:

xx = Don't Care nibble/byte value
=====================================
Cabin Lights

Confirmed Vehicle list: E90 335
-------------------
ON/OFF Sequence:
Code:
CANID  LEN    DATA       Notes:

1E3     2     F1 FF      Command, wait for response
21A     3     00 10 F7   Response
1E3     2     F0 FF      Command
You have to wait to recv the rsp before issuing the 2nd cmd otherwise the light will force itself back off after ~1 second.
To give you an idea what is going on, the F1 FF msg are usually generated continously as you hold down (in) the button. When
you release the button the F0 FF msg is generated. The 21A response from the vehicle usually comes within 50 milliseconds. This is usually significantly faster than you could press and release the button. I believe this method is BMWs way of preventing an accidental activation of the lights if there is a quick/momentary button press (e.g weak return spring on the button) or perhaps their way to deal with debounce.

OFF Sequence (Alt):
Code:
CANID  LEN    DATA       Notes:

1E3     2      F1 FF       If you simply issue this command without 
                               sending any other 1E3 command the lights
                               will default to an OFF state
=====================================
Windows

Confirmed Vehicle list: E90 335

The window controls on the sedan each have their own CANID. All buttons from the drivers side control use the same CANID. The passenger side front control has its own. The rear windows share the same CANID. Some commands only result in an incremental movement (approx 2 - 3 in).

The windows controls are not directly linked to the KCAN. The interior buttons are on a seperate bus, LINbus. When you press the button, a message is sent over this bus to the FRM. The FRM serves as a gateway and
pushes this request over KCAN to the window motor or JBE (not clear on this yet).

WINDOW BUTTON ---over LINbus --> FRM -- over CANbus---> WINDOW MOTOR

---------------
Cmds as issued From Front Driver (4 buttons):

WIN - Window:
FD - Front Driver
FP - Front Passenger
RD - Rear Driver
RP - Rear Passenger

DIR - Direction

Code:
WIN    DIR      CANID    LEN      DATA       Notes:
FD      UP       0FA      3      ??           (04 xx xx issued by button)
FP      UP       0FA      3      ??
RD      UP       0FA      3      xx 04 xx   Incremental movement 
RP      UP       0FA      3      xx 20 xx   Incremental movement
FD      DN       0FA      3         ??        (01 xx xx issued by button)
FP      DN       0FA      3         ??        (10 xx xx issed by button)
RD      DN       0FA      3     xx 01 xx    Incremental movement 
RP      DN       0FA      3     xx 10 xx    Incremental movement
General Notes:

You can combine the nibbles in the RD and RP to do both at the same time.

Ex:
Code:
WIN       DIR     CANID    LEN       DATA        Notes:
RP&RD    UP       0FA       3      xx 24 xx
RP&RD    DN       0FA       3      xx 11 xx
Each window will return a response to a command. They are listed as follows:
Code:
WIN              CANID  LEN  DATA            Notes:
FD                3B6     3   pp pp F0      pp pp - position, 
FP                3B7     3   pp pp F0      Range {00FC (fullup) - 58FE (fulldn)}
RD                3B8     3   pp pp F0     I am not sure what F0 is about.  
RP                3B9     3   pp pp F0     It may be used as a general                 state/fault/diagnostic byte.
I believe the the last byte is a diagnostic byte used to determine the motor temperature. I will have to test to verify. Here is an excerpt on the thermal protection:

"Thermal Protection of Power Window Motors
The FRM and the JBE monitor the power window motor temperature. The motor temperature
is determined based on the outside temperature, motor running time and the
time the motor is stationary (not operative).
Each motor can be switched off individually to prevent the power window motors overheating
during operation of the power windows (window regulators). The motor is then
deactivated for a defined period of time."

Cmds as issued From Front Passenger:
Code:
WIN     DIR     CANID  LEN   DATA           Notes:
FD       UP      0FB     3   2x xx xx       Full Up
FD       DN      0FB     3   1x xx xx       Full Down
======================================

Ok so thats what Ive got so far. Hopefully more wil chime in and start expermenting to refine/add to the list.
Attached Images
   

Last edited by HighVoltage; 02-17-2009 at 02:48 PM..
Appreciate 1