Skip to content

Latest commit

 

History

History
132 lines (87 loc) · 4.43 KB

02.md

File metadata and controls

132 lines (87 loc) · 4.43 KB

0x02 "Pong"

This command has two purposes:

  1. Annoucing the presence of a module on the bus.
  2. "Pong" in response to a "Ping" 0x01.

Related Commands

  • 0x01 "Ping"

Example Frames

60 04 F0 02 00 96
3B 04 C8 02 10 E5
C8 04 FF 02 31 00

Parameters

Fixed length. 1-byte bitfield.

ANNOUNCE    = 0b0000_0001
VARIANT     = 0b1111_1000

Announce 0b0000_0001

REPLY       = 0b0000_0000
ANNOUNCE    = 0b0000_0001

Variant 0b1111_1000

GT_VM           = 0b0001_0
GT_NAV          = 0b0100_0  # incl. MK1

NAV_MK4         = 0b0100_0
NAV_MK4_ASSIST  = 0b1100_0

TEL_CMT         = 0b0000_0  # CMT3000
TEL_MOTO_V      = 0b0011_0  # Motorola V-Series
TEL_TCU         = 0b0011_1  # Everest

BMBT_4_3        = 0b0000_0
BMBT_16_9       = 0b0011_0

Use Cases

Announce

The announce bit is set when a module becomes active on the bus. This is most frequently seen at ignition with modules commonly powered/activated by ignition circuits (KL-R, KL-15).

C8 04 FF 02 31 00       # Telephone broadcasting an announcement

The announcement is what determines the availability of numerous features. For example, Television, Telephone, and DSP will all appear in the BMBT main menu following the announcement by the respective modules.

An annoucement also allows the new module to establish it's state. and any applicable modules will respond as necessary. The response will depend on the announcing module, but will at minimum, include ignition state 0x11 from the cluster.

"Pong"

After a module has announced, it's ongoing presence will be checked by interested modules via 0x01 "Ping".

C8 04 FF 02 31 00   # Telephone broadcasts announcement
[...]
50 03 C8 01 9A      # MFL pings Telephone
C8 04 50 02 30 AE   # Telephone replies to MFL with a pong

ED 04 FF 02 01 15   # TV broadcasts announcement
[...]
3B 03 ED 01 D4      # BMBT pings TV
ED 04 3B 02 00 D0   # TV replies to BMBT with a pong

If the ping is not acknowledged, features will be disabled. For example, the availability of the "Television" menu item requires the TV continue to reply to pings.

Module Variant Identification

In the case that a module has variants, and that variant affects behaviour of other modules on the bus, a "signature" is used to allow variants to be identified.

A good working example of this is the BMBT which was introduced with the 4x3 display, and was later upgraded to the larger 16x9 display. In order for the navi. computer/video module to output a video signal with the correct aspect ratio, it must be able to identify the BMBT variant.

GT 0x3b

Module Variant Signature Frame
GT Video Module GT 0x10 3B 04 FF 02 11 D3
GT Nav. GT (incl. MK1) 0x40 3B 04 BF 02 41 C3

Nav. Computer 0x7f

Module Variant Signature Frame
Nav. MK4? 0x40 7F 04 BF 02 41 87
Nav. MK4? + BMW Assist 0xc0 7F 04 BF 02 C1 07
  • telephone to presumably configure BMW Assist
  • may affect MRS and sending impact notification

Telephone 0xc8

Module Variant Signature Frame
Telephone CMT3000 0x00 C8 04 FF 02 01 30
Telephone Motorola V-Series 0x30 C8 04 FF 02 31 00
Telephone Everest Module with Bluetooth 0x38 C8 04 BF 02 38 49
  • nav. computer will send telematics data 0xa2, 0xa4

BMBT 0xf0

Module Variant Signature Frame
BMBT 4x3 0x00 F0 04 BF 02 01 48
BMBT 16x9 0x30 F0 04 BF 02 31 78
  • GT/VM will set correct aspect ratio and encoding.

No Variants

While the need for a signature is likely predicated upon a module hardware/software revision, it's only in the case that the module must be differentiated on the bus that a signature will be used. Some modules, despite having one or more revisions, will not distinguish variants.

The following module variants do not appear to have a signature.

Module Address Variant Signature Frame
GM 0x00 GM III (E39) 0x00 00 04 BF 02 01 B8
CDC 0x18 All? 0x00 18 04 BF 02 01 A0
CCM 0x30 All? 0x00 30 04 BF 02 01 88
PDC 0x60 All? 0x00 60 04 BF 02 01 D8
Radio 0x68 C23 BM 0x00 68 04 FF 02 01 90
Radio 0x68 BM53 0x00 68 04 BF 02 01 D0
IKE 0x80 IKE, IKI, KOMBI 0x00 80 04 BF 02 01 38
EHC 0xaC All? 0x00 AC 04 BF 02 01 14
LCM 0xd0 LCM III (E39) 0x00 D0 04 BF 02 01 68
TV 0xeD MK1 VM, "MK3" VM 0x00 ED 04 FF 02 01 15