Announcement

Collapse
No announcement yet.

E90 M3 DKG/DCT can message IDs?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    E90 M3 DKG/DCT can message IDs?

    I'm designing a small embedded ESP32 that displays DCT gear, DriveLogic speed/mode, and looks factory in the e46 M3 gauge cluster (replaces the SMG display). Can anybody verify these are correct? (This is a copy of my notes.)


    E9x M3 DCT CAN IDs — Gear, DriveLogic Mode & Setting

    Primary Message: 0x1D2 (decimal 466) — GEAR_1D2 from KOMBI/cluster

    This is the main TCU status message broadcast on the PT-CAN (powertrain CAN). It contains the current gear, shift lever mode, and sport button state.
    ShiftLeverPosition bits 0–3 (B0 lower nibble) See values below
    ShiftLeverPositionXOR bits 4–7 (B0 upper nibble) XOR/checksum of position
    GearRelated_TBD bits 12–15 Partially decoded
    Counter bits 28–31 Rolling counter (0–14)
    ShiftLeverMode bits 32–33 DriveLogic mode — see values below
    SportButtonState bit 26 1 = active, 0 = inactive
    ShiftLeverPosition values:
    • 0 = Off
    • 1 = P (Park)
    • 2 = R (Reverse)
    • 4 = N (Neutral)
    • 8 = D (Drive)

    ShiftLeverMode (DriveLogic mode) values:
    • 0 = Normal (D)
    • 1 = Sport (S)
    • 2 = Manual (M)

    DriveLogic Setting/Level: 0x43F (decimal 1087)


    Community sniffing confirms that 0x43F carries the DCT gear and DriveLogic data. Byte 0 (B0) contains the current gear — 0x40 or 64 in decimal means Neutral, with the upper nibble indicating engagement status and the lower nibble the actual gear. Byte 2 (B2) carries the DriveLogic setting/level.

    Observed raw data pattern from the forum:
    • Neutral: 64, 6, 1, ... → B0 = 0x40 (in-gear flag set, gear = 0/neutral)
    • 1st gear: 65, 1, ... → B0 = 0x41
    • 2nd gear: 66, 2, ... → B0 = 0x42

    So for 0x43F:
    • B0 (Byte 0): Current engaged gear. Upper nibble = state (0x4x = settled/engaged), lower nibble = gear number (0=N, 1=1st, 2=2nd, etc.)
    • B2 (Byte 2): DriveLogic setting/level (1–6 in Manual mode, or the program level in D/S)

    Drivelogic Button Input: 0x198

    The Drivelogic rocker switch is wired directly to the GWS (gear selector module), and its presses are transmitted on 0x198 on the PT-CAN. This is an input to the TCU — button press events rather than a status broadcast.

    Supporting Gear Messages
    0x1A2 Gearbox data from DME (includes ManualMode flag, bit 50)
    0x3B1 Gearbox data 2 from DME
    0x3B0 Reverse gear status (bit 6 = 1 when in reverse)
    Once I get everything working how I'd like, I'll share everything on github.​

    Phoenix Yellow e46m3 Build Thread
    Orient Blue E46 330i ZHP k24/dct/turbo Build Thread

    #2
    Attached the relevant pages from the funktionsrahmen
    Attached Files

    Comment

    Working...
    X