BMW F-Series Gear Lever: Difference between revisions

From openinverter.org wiki
Jump to navigation Jump to search
No edit summary
(Add information on slightly older gear shifts with different connectors, add backlight information, correct misinformation (wrong CRC final-xor).)
 
Line 1: Line 1:


==General Information==
==General Information==
Much of this information is based on articles by Project Gus <ref>https://www.projectgus.com/tag/bmw-f-series-gws.html</ref>. Thank you for reverse engineering!
Much of this information is based on articles by Project Gus <ref>https://www.projectgus.com/tag/bmw-f-series-gws.html</ref> and a forum post from Bimmerwelt<ref name=":0">https://www.bimmerfest.com/threads/2tb-sat-gear-shift-retrofit.660759/page-7#post-9575078</ref>. Thank you for reverse engineering!


===Pinout and Connector===
===Pinout and Connector===
The BMW part number of the connector is 9132576-02, the TE part number is 2-929423-2 but the connector is not freely available from TE <ref>https://www.te.com/usa-en/product-2-929423-2.html</ref>.
The BMW supply number of the connector is 9132576-02, the TE part number is 2-929423-2 but the connector is not freely available from TE <ref>https://www.te.com/usa-en/product-2-929423-2.html</ref>. The BMW Part number for the 10-position socket housing is widely available as 61-13-9-132-577.  
{| class="wikitable"
{| class="wikitable"
|+Pinout
|+10-Pin Pinout
!Pin
!Pin
!Wire Colour
!Type
!Wire Colour  
!Function
!Function
!
|-
|-
|1
|1
|
|
|
|NC
|NC
|
|-
|-
|2
|2
|
|
|
|NC
|NC
|
|-
|-
|3
| 3
|Red
|E/A
| Red  
|PT-CAN Low
|PT-CAN Low
|
|-
|-
|4
|4
|E/A
|Blue/Red
|Blue/Red
|PT-CAN High
| PT-CAN High
|
|-
|-
|5
|5
| E/A
|White/Blue
|White/Blue
|PT-CAN2 Low
|PT-CAN2 Low  
|
|-
|-
|6
|6
|E/A
|White/Yellow
|White/Yellow
|PT-CAN2 High
|PT-CAN2 High
|
|-
|-
|7
|7
|E
|Green/Brown
|Green/Brown
|Enable(?)
|Wakeup<ref name=":0" />
|
|-
|-
|8
|8
|M
|Brown
|Brown
|Ground
|Ground
|
|-
|-
|9
|9
|
|
|
|NC
|NC
|
|-
|-
|10
|10
|E
|Red/Blue
|Red/Blue
| +12V
| +12V
|}
Earlier versions of the shifter have a different, 8-pin connector (7 pins fitted)<ref name=":0" /> with the following pinout, but nevertheless communicate with the same CAN protocol as the newer shifters. The 8-pin version has a 2.54 (0.1") spacing.
{| class="wikitable"
|+ 8-Pin Pinout
!Pin
!Type
!Wire Color
!Function
|-
|1
|E
|Red/Green
| +12V
|-
|2
|E
|Green/Red
|Wakeup
|-
|3
|E/A
|Red
|PT-CAN Low
|-
|4
|E/A
| Blue/Red
|PT-CAN High
|-
|5
|M
| Brown
|Ground
|-
|6
|E/A
|White/Blue
|PT-CAN2 Low
|-
|7
|E/A
|White/Yellow
|PT-CAN2 High
|-
|8
|
|
|
|NC
|}
|}


Line 66: Line 114:
The Powertrain CAN Bus has a baud rate of 500kBaud.
The Powertrain CAN Bus has a baud rate of 500kBaud.


GWS sends a "heartbeat" to CAN ID 0x55e and more frequent 4-byte GWS status message to CAN ID 0x197:<ref>https://www.projectgus.com/2022/07/bmw-f-series-gear-selector-part-three-success/</ref>
GWS sends a "heartbeat" to CAN ID 0x55e<ref>https://www.projectgus.com/2022/07/bmw-f-series-gear-selector-part-three-success/</ref>, Diagnostic Errors to CAN ID 0x65e, and more frequent 4-byte GWS status message to CAN ID 0x197. When an impossible action is requested (for instance, shifting from neutral to reverse without also pressing "unlock"), an additional CAN message is sent.
{| class="wikitable"
{| class="wikitable"
!Status message Byte
!Status message Byte
Line 72: Line 120:
|-
|-
|0
|0
|CRC8 of bytes 1-3 (poly=0x1d, init=0x0, xor=0x53)
|CRC8 of bytes 1-3 (poly=0x1D, init=0x0, xor=0x53)
|-
|-
|1
| 1
|Counter value, 4 bits wide, should change each message, never 0x0F
|Counter value, 4 bits wide, should change each message, never 0x0F
|-
|-
Line 86: Line 134:
{| class="wikitable"
{| class="wikitable"
!Value
!Value
!Meaning
! Meaning
|-
|-
|0x0E
|0x0E
Line 92: Line 140:
|-
|-
|0x1E
|0x1E
|Pushed "up" (towards front of car)
|Pushed "up" (towards front of car)  
|-
|-
|0x2E
|0x2E
|Pushed "up" two notches
|Pushed "up" two notches  
|-
|-
|0x3E
|0x3E  
|Pushed "down" (towards back of car)
|Pushed "down" (towards back of car)
|-
|-
Line 118: Line 166:
|-
|-
|0
|0
|CRC8 of bytes 1-4 (init=0x0, poly=0x1d, xor=0x53)
|CRC8 of bytes 1-4 (init=0x00, poly=0x1D, xor=0x70)
|-
|-
|1
|1
Line 134: Line 182:
Payload byte 0 controls the GWS appearance:
Payload byte 0 controls the GWS appearance:
{| class="wikitable"
{| class="wikitable"
!Payload byte 0
! Payload byte 0
!Display
!Display
|-
|-
|0x00
|0x00
|Blank gear selection (appears off)
| Blank gear selection (appears off)
|-
|-
|0x20
|0x20
|P
| P
|-
|-
|0x80
|0x80
Line 155: Line 203:
|R
|R
|-
|-
|0x60
| 0x60
|N
|N
|-
|-
Line 163: Line 211:
Payload bytes 1 & 2 are ignored by the GWS.
Payload bytes 1 & 2 are ignored by the GWS.


==== CAN Diagnostics ====
 
To set the backlight of the GWS, message ID 0x202 should be sent as follows:
{| class="wikitable"
|+
!Byte
!Meaning
|-
|0
|Backlight Level (0x00 - 0xFF)
|-
|1
|Unknown (0 works)
|}
 
====CAN Diagnostics ====
BMW UDS uses "extended 11-bit ISO-TP addressing", and the GWS responds to at least some standard UDS requests sent to ID 0x5e (first byte of CAN messages).<ref>https://www.projectgus.com/2022/06/bmw-f-series-gear-selector-part-two-breakthrough/</ref>
BMW UDS uses "extended 11-bit ISO-TP addressing", and the GWS responds to at least some standard UDS requests sent to ID 0x5e (first byte of CAN messages).<ref>https://www.projectgus.com/2022/06/bmw-f-series-gear-selector-part-two-breakthrough/</ref>


Line 173: Line 235:
Normal Version
Normal Version
!No
!No
!LHD/RHD
! LHD/RHD
!Description
!Description
!Part Number
!Part Number
!Vehicles Used
!Vehicles Used  
!Status
!Status
!Tested
!Tested
|-
|-
|1
|1
|RHD
|RHD  
|Gear Selector Switch
| Gear Selector Switch
|61 31 9296897
|61 31 9296897
|F20, F21, F22, F23
|F20, F21, F22, F23
F30, F31, F32, F33, F34, F36
F30, F31, F32, F33, F34, F36
|Active
|Active  
|
|
|-
|-
Line 194: Line 256:
|61 31 9291519
|61 31 9291519
|
|
|Until 06/2013
|Until 06/2013  
|
|
|-
|-
Line 200: Line 262:
|RHD
|RHD
|Gear Selector Switch
|Gear Selector Switch
|61 31 9260969
| 61 31 9260969
|
|
|Until 08/2012
|Until 08/2012
Line 230: Line 292:
|
|
|-
|-
|1
| 1
|LHD
| LHD
|Gear Selector Switch
|Gear Selector Switch
|61 31 9291517
|61 31 9291517
Line 357: Line 419:
|}
|}


== References ==
==References==
<references />
<references />



Latest revision as of 10:06, 11 October 2023

General Information

Much of this information is based on articles by Project Gus [1] and a forum post from Bimmerwelt[2]. Thank you for reverse engineering!

Pinout and Connector

The BMW supply number of the connector is 9132576-02, the TE part number is 2-929423-2 but the connector is not freely available from TE [3]. The BMW Part number for the 10-position socket housing is widely available as 61-13-9-132-577.

10-Pin Pinout
Pin Type Wire Colour Function
1 NC
2 NC
3 E/A Red PT-CAN Low
4 E/A Blue/Red PT-CAN High
5 E/A White/Blue PT-CAN2 Low
6 E/A White/Yellow PT-CAN2 High
7 E Green/Brown Wakeup[2]
8 M Brown Ground
9 NC
10 E Red/Blue +12V

Earlier versions of the shifter have a different, 8-pin connector (7 pins fitted)[2] with the following pinout, but nevertheless communicate with the same CAN protocol as the newer shifters. The 8-pin version has a 2.54 (0.1") spacing.

8-Pin Pinout
Pin Type Wire Color Function
1 E Red/Green +12V
2 E Green/Red Wakeup
3 E/A Red PT-CAN Low
4 E/A Blue/Red PT-CAN High
5 M Brown Ground
6 E/A White/Blue PT-CAN2 Low
7 E/A White/Yellow PT-CAN2 High
8 NC

CAN Bus

The Powertrain CAN Bus has a baud rate of 500kBaud.

GWS sends a "heartbeat" to CAN ID 0x55e[4], Diagnostic Errors to CAN ID 0x65e, and more frequent 4-byte GWS status message to CAN ID 0x197. When an impossible action is requested (for instance, shifting from neutral to reverse without also pressing "unlock"), an additional CAN message is sent.

Status message Byte Meaning
0 CRC8 of bytes 1-3 (poly=0x1D, init=0x0, xor=0x53)
1 Counter value, 4 bits wide, should change each message, never 0x0F
2 Lever position
3 Park button (0xC0 normally, 0xD5 if Park is pressed)

Lever position byte values include:

Value Meaning
0x0E Centre middle
0x1E Pushed "up" (towards front of car)
0x2E Pushed "up" two notches
0x3E Pushed "down" (towards back of car)
0x4E Pushed "down" two notches
0x7E Centre side
0x5E Pushed "side and up"
0x6E Pushed "side and down"

To update the GWS appearance, message ID 0x3FD has to be sent every 50-100ms:

Byte Meaning
0 CRC8 of bytes 1-4 (init=0x00, poly=0x1D, xor=0x70)
1 4-bit counter (must increment each message), not 0x0F
2 Payload byte 0
3 Payload byte 1
4 Payload byte 2

Payload byte 0 controls the GWS appearance:

Payload byte 0 Display
0x00 Blank gear selection (appears off)
0x20 P
0x80 D
0x81 D, can move to M/S
0x81 M/S (if lever moved to side)
0x40 R
0x60 N
+ 0x08 To flash the selected gear light

Payload bytes 1 & 2 are ignored by the GWS.


To set the backlight of the GWS, message ID 0x202 should be sent as follows:

Byte Meaning
0 Backlight Level (0x00 - 0xFF)
1 Unknown (0 works)

CAN Diagnostics

BMW UDS uses "extended 11-bit ISO-TP addressing", and the GWS responds to at least some standard UDS requests sent to ID 0x5e (first byte of CAN messages).[5]

Part Numbers

BMW F-Series Gear Selector (LHD Version) [6]
Normal Version
No LHD/RHD Description Part Number Vehicles Used Status Tested
1 RHD Gear Selector Switch 61 31 9296897 F20, F21, F22, F23

F30, F31, F32, F33, F34, F36

Active
1 RHD Gear Selector Switch 61 31 9291519 Until 06/2013
1 RHD Gear Selector Switch 61 31 9260969 Until 08/2012
1 RHD Gear Selector Switch 61 31 9253652 Until 01/2011
1 LHD Gear Selector Switch 61 31 9296896 F20, F21, F22, F23

F30, F31, F32, F33, F34, F36

Active
1 LHD Gear Selector Switch 61 31 9291517 Until 11/2012
1 LHD Gear Selector Switch 61 31 9260968 Until 06/2013
1 LHD Gear Selector Switch 61 31 9253651 Until 01/2011
Sport Version
No LHD/RHD Description Part Number Vehicles Used Status Tested
2 RHD Gear Selector Switch, Sport 61 31 7950385 Active
2 RHD Gear Selector Switch, Sport 61 31 9296899 F20, F21, F22, F23

F30, F31, F32, F33, F34, F36

Until 05/2018 X
2 RHD Gear Selector Switch, Sport 61 31 9291521 Until 11/2012
2 RHD Gear Selector Switch, Sport 61 31 9260971 Until 07/2012
2 RHD Gear Selector Switch, Sport 61 31 9253654 Until 01/2011
2 LHD Gear Selector Switch, Sport 61 31 7950384 Active
2 LHD Gear Selector Switch, Sport 61 31 9296898 F20, F21, F22, F23

F30, F31, F32, F33, F34, F36

Until 01/2019
2 LHD Gear Selector Switch, Sport 61 31 9291520 Until 06/2013
2 LHD Gear Selector Switch, Sport 61 31 9260970 Until 06/2013
2 LHD Gear Selector Switch, Sport 61 31 9253653 Until 01/2011

References