Skip to main content
BlueBus can control various comfort and convenience features in your BMW by sending commands over the I-Bus. These settings customize vehicle behavior for improved convenience.

Comfort locks

Automatically lock the vehicle doors when reaching a specific speed. EEPROM address: 0x26 (upper nibble) (CONFIG_SETTING_COMFORT_LOCKS_ADDRESS) The comfort lock and unlock settings share the same EEPROM byte, with lock using the upper nibble and unlock using the lower nibble.

Lock speed options

Off
0x00
Automatic locking is disabled
10 km/h
0x01
Doors automatically lock when vehicle speed reaches 10 km/hValue: CONFIG_SETTING_COMFORT_LOCK_10KM (0x01)
20 km/h
0x02
Doors automatically lock when vehicle speed reaches 20 km/hValue: CONFIG_SETTING_COMFORT_LOCK_20KM (0x02)

Reading and writing lock setting

The lock setting is stored in the upper nibble (4 bits) of the byte:
// Reading (config.c:195)
uint8_t ConfigGetComfortLock()
{
    return ConfigGetByteUpperNibble(CONFIG_SETTING_COMFORT_LOCKS);
}

// Writing (config.c:717)
void ConfigSetComfortLock(uint8_t comfortLock)
{
    ConfigSetByteUpperNibble(CONFIG_SETTING_COMFORT_LOCKS, comfortLock);
}

Comfort unlock

Configure when doors automatically unlock after parking. EEPROM address: 0x26 (lower nibble) (CONFIG_SETTING_COMFORT_LOCKS_ADDRESS)

Unlock position options

Off
0x00
Automatic unlocking is disabled
Position 1
0x01
Doors unlock when ignition is turned to position 1Value: CONFIG_SETTING_COMFORT_UNLOCK_POS_1 (0x01)
Position 0
0x02
Doors unlock when ignition is turned to position 0 (off)Value: CONFIG_SETTING_COMFORT_UNLOCK_POS_0 (0x02)

Reading and writing unlock setting

The unlock setting is stored in the lower nibble (4 bits) of the byte:
// Reading (config.c:209)
uint8_t ConfigGetComfortUnlock()
{
    return ConfigGetByteLowerNibble(CONFIG_SETTING_COMFORT_LOCKS);
}

// Writing (config.c:731)
void ConfigSetComfortUnlock(uint8_t comfortUnlock)
{
    ConfigSetByteLowerNibble(CONFIG_SETTING_COMFORT_LOCKS, comfortUnlock);
}

Comfort blinkers

Set the number of times turn signals blink when you tap the stalk briefly. EEPROM address: 0x25 (CONFIG_SETTING_COMFORT_BLINKERS_ADDRESS)
Range
1 to 8
Number of blinks for comfort turn signal operationDefault: 1 (single blink)
If the stored value is greater than 8 or equal to 0, it is automatically corrected to 1 when read from the menu. The setting is displayed as “Comfort Blinks: X” where X is the number of blinks.

Welcome lights

Control exterior lights when unlocking the vehicle. EEPROM address: 0x28 (CONFIG_SETTING_COMFORT_WELCOME_LIGHTS_ADDRESS)
Off
0x00
Welcome lights are disabled
On
0x01
Exterior lights illuminate when vehicle is unlocked

Home lights

Control how long exterior lights stay on after leaving the vehicle. EEPROM address: 0x29 (CONFIG_SETTING_COMFORT_HOME_LIGHTS_ADDRESS)
Off
0x00
Home lights are disabled
On
0x01
Exterior lights stay on for a period after locking the vehicle

Parking lamps

Enable or disable parking lamp functionality. EEPROM address: 0x2A (CONFIG_SETTING_COMFORT_PARKING_LAMPS_ADDRESS)
Off
0x00
Parking lamps are disabled
On
0x01
Parking lamps can be activated by turning the turn signal stalk when parked

Comfort mirrors

Configure automatic mirror folding and positioning. EEPROM address: 0x27 (CONFIG_SETTING_COMFORT_MIRRORS_ADDRESS)
Off
0x00
Automatic mirror functions are disabled
On
0x01
Mirrors automatically fold or adjust based on vehicle status

Visual parking distance control (PDC)

Configure where parking sensor alerts are displayed. EEPROM address: 0x2D (CONFIG_SETTING_VISUAL_PDC_ADDRESS)
Off
0x00
Visual PDC alerts are disabled
Cluster
0x01
PDC alerts are shown in the instrument clusterValue: CONFIG_SETTING_PDC_CLUSTER (0x01)
Radio
0x02
PDC alerts are shown on the radio/navigation displayValue: CONFIG_SETTING_PDC_RADIO (0x02)
Both
0x03
PDC alerts are shown in both cluster and radio displayValue: CONFIG_SETTING_PDC_BOTH (0x03)

Lighting features detection

BlueBus provides a helper function to determine if any lighting features are active:
// From config.c:314
uint8_t ConfigGetLightingFeaturesActive()
{
    if (ConfigGetSetting(CONFIG_SETTING_COMFORT_BLINKERS) > 0x01 ||
        ConfigGetSetting(CONFIG_SETTING_COMFORT_PARKING_LAMPS) > 0x01
    ) {
        return CONFIG_SETTING_ON;
    }
    return CONFIG_SETTING_OFF;
}
This returns CONFIG_SETTING_ON if comfort blinkers is set to more than 1 blink, or parking lamps are configured beyond the basic on/off setting.

Light module variant

Identifies the Light Module (LM) variant installed in the vehicle. EEPROM address: 0x17 (CONFIG_LM_VARIANT_ADDRESS) This value is automatically detected and stored. Different LM variants support different lighting features. BlueBus uses this to determine which comfort lighting features are available.
Comfort settings require a compatible Light Module in your vehicle. Not all features are available on all BMW models. BlueBus automatically detects the Light Module variant and only enables applicable features.
Changing comfort lock and unlock settings takes effect immediately and is stored in EEPROM. Make sure the settings are appropriate for your driving environment and security needs.

Build docs developers (and LLMs) love