Skip to main content
BlueBus provides several audio configuration options to integrate with your BMW’s audio system and achieve the best sound quality.

DAC audio gain

The DAC (Digital-to-Analog Converter) gain setting controls the output volume level from the BlueBus PCM5122 DAC. EEPROM address: 0x41 (CONFIG_SETTING_DAC_AUDIO_VOL_ADDRESS)

Gain values

The gain is stored as a single byte value with the following range:
Minimum
0x18 (24)
+12dB gain - Maximum output level
Unity
0x30 (48)
0dB gain - No amplification or attenuation
Maximum
0xFF (255)
Approximately -101dB - Minimum output level
The gain value is calculated as:
  • Values below 0x30: Positive gain of +(0x30 - value) / 2 dB
  • Value of 0x30: 0dB (unity gain)
  • Values above 0x30: Negative gain of -(value - 0x30) / 2 dB

Default gain

The default DAC gain is 0x44 (68 decimal), which equals -10dB. This setting is applied during firmware upgrades at config.h:48.

Adjusting DAC gain

  1. Navigate to SettingsAudio
  2. Select DAC Gain
  3. Rotate the knob to adjust the gain value
  4. The display shows the gain in dB format (e.g., “DAC Volume: -10dB”)
  5. Press the knob to save
The setting is applied immediately to the PCM51XX DAC via PCM51XXSetVolume() at menu_singleline.c:374.
  1. Scroll to “DAC Volume” setting
  2. Press edit/save to enter value scroll mode
  3. Scroll to adjust the gain value
  4. Press edit/save to save and apply
The display shows values like “DAC Volume: -10dB” or “DAC Volume: +6dB”.
The minimum gain value is enforced at 24 (+12dB) to prevent excessive output levels that could damage speakers or amplifiers. Any value below 24 is automatically corrected to 24 before saving.

DSP input source

If your BMW is equipped with a DSP (Digital Signal Processor) audio system, you can configure the input source. EEPROM address: 0x42 (CONFIG_SETTING_DSP_INPUT_SRC_ADDRESS)

Available options

Off (Default)
0x00
DSP uses default input source - BlueBus does not control DSP input
Digital (S/PDIF)
0x01
default:true
DSP receives digital audio via S/PDIF optical connection from BlueBusSends I-Bus command IBUS_DSP_CONFIG_SET_INPUT_SPDIF when enabled.
Analog
0x02
DSP receives analog audio from the vehicle’s radioSends I-Bus command IBUS_DSP_CONFIG_SET_INPUT_RADIO when enabled.

DSP detection

BlueBus automatically detects if a DSP is present on the I-Bus by monitoring module status. The DSP setting only appears in menus if ibus->moduleStatus.DSP is non-zero. If no DSP is detected, the menu displays “DSP: Not Equipped” and the setting cannot be changed.

Switching input source

When you change the DSP input source, BlueBus immediately sends the corresponding I-Bus command to reconfigure the DSP. This allows seamless switching between digital BlueBus audio and analog radio audio.

Autoplay

Control whether BlueBus automatically starts playback when a device connects. EEPROM address: 0x40 (CONFIG_SETTING_AUTOPLAY_ADDRESS)
Off
0x00
Bluetooth devices do not automatically start playback when connected
On
0x01
Bluetooth devices automatically start playback when connected

Lower volume on reverse

Automatically reduce audio volume when the vehicle is in reverse gear. EEPROM address: 0x44 (CONFIG_SETTING_VOLUME_LOWER_ON_REV_ADDRESS)
Off
0x00
Volume remains unchanged in reverse
On
0x01
Volume is automatically reduced when reverse gear is engaged
This feature monitors the I-Bus for reverse gear status and temporarily lowers the volume to help you hear parking sensors and surrounding sounds.

Reading DAC configuration

The current DAC volume setting is read from EEPROM and applied during PCM51XX initialization:
// From pcm51xx.c:95
unsigned char volume = ConfigGetSetting(CONFIG_SETTING_DAC_AUDIO_VOL);
PCM51XXSetVolume(volume);
All audio settings take effect immediately when saved. DAC gain changes are applied directly to the PCM5122 chip, and DSP source changes send I-Bus commands to reconfigure the DSP module in real-time.

Build docs developers (and LLMs) love