Skip to main content
BlueBus provides seamless Bluetooth audio streaming to your BMW’s factory audio system by emulating a CD changer on the I-Bus. This integration maintains full compatibility with your original vehicle systems while adding modern wireless audio capabilities.

Audio streaming

BlueBus uses the Advanced Audio Distribution Profile (A2DP) to stream high-quality audio from your phone to the vehicle’s audio system.

Audio quality

The audio chain delivers professional-grade sound quality:
  • Codec support: AAC codec for high-quality wireless streaming
  • DAC: PCM5122 line-level DAC with 2.1V RMS output
  • Signal-to-noise ratio: 113 dB SNR
  • Output options: Analog line-level and S/PDIF digital output
The PCM5122 DAC (firmware/application/lib/pcm51xx.h:12) provides both analog and digital outputs, ensuring compatibility with all factory BMW audio systems including DSP-equipped vehicles.

DSP compatibility

BlueBus integrates seamlessly with factory DSP amplifiers:
The system supports both input types to the DSP:
  • S/PDIF digital input: Uses the DIT4096 S/PDIF encoder for digital audio transmission
  • Analog input: Direct line-level output from the PCM5122 DAC
You can configure the input source through the vehicle’s display menus (CONFIG_SETTING_DSP_INPUT_SRC in firmware/application/lib/config.h:186).

Volume control

Volume is controlled through your vehicle’s existing controls:
  • Adjustable DAC gain settings stored in EEPROM
  • Volume offsets for different audio sources
  • Integration with factory volume controls (steering wheel, radio, MID)

Playback control

The Audio/Video Remote Control Profile (AVRCP) provides full playback control using your vehicle’s factory buttons and steering wheel controls.

Available controls

From the Board Monitor (BMBT):
  • Play/pause toggle (IBUS_DEVICE_BMBT_BUTTON_PLAY_PAUSE)
  • Next track (IBUS_DEVICE_BMBT_BUTTON_NEXT)
  • Previous track (IBUS_DEVICE_BMBT_BUTTON_PREV)
  • Fast forward (press and hold)
  • Rewind (press and hold)
From the steering wheel (MFL):
  • Next/previous track (IBUS_MFL_BTN_EVENT_NEXT_REL, IBUS_MFL_BTN_EVENT_PREV_REL)
  • Volume up/down
  • Voice recognition activation

CD changer emulation

BlueBus emulates a CD changer on the I-Bus to provide audio playback:
The system responds to CD changer commands from the radio:
  • Address: Uses I-Bus address 0x18 (IBUS_DEVICE_CDC)
  • Status reporting: Reports playback status (playing, paused, stopped)
  • Track changes: Maps to Bluetooth next/previous commands
  • Disc changes: Used to switch between paired devices (up to 8 devices)
The radio sends commands like IBUS_CDC_CMD_START_PLAYING, IBUS_CDC_CMD_PAUSE_PLAYING, and IBUS_CDC_CMD_CHANGE_TRACK, which BlueBus translates into AVRCP commands (firmware/application/lib/bt.c:525-558).

Metadata display

BlueBus displays track information on your vehicle’s screens using AVRCP metadata.

Supported metadata fields

  • Title: Track name (BM83_AVRCP_DATA_ELEMENT_TYPE_TITLE)
  • Artist: Performer name (BM83_AVRCP_DATA_ELEMENT_TYPE_ARTIST)
  • Album: Album title (BM83_AVRCP_DATA_ELEMENT_TYPE_ALBUM)

Display compatibility

Metadata is shown on all BMW display units:
Display UnitDescriptionMetadata Display
BMBTBoard Monitor (Navigation)Full graphical display with all metadata fields
MIDMulti-Information Display24-character single line display
CD53Business CD Radio11-character single line display
MIRMulti-Information RadioSingle line display
IRISIntegrated Radio Information SystemFull text display

Metadata updates

The system automatically requests metadata when:
  • Playback starts or resumes
  • Track changes (BM83_AVRCP_EVT_PLAYBACK_TRACK_CHANGED)
  • Now playing content changes (BM83_AVRCP_EVT_NOW_PLAYING_CONTENT_CHANGED)
Metadata is retrieved using the BTCommandGetMetadata function (firmware/application/lib/bt.c:219), which sends AVRCP element attributes requests to the connected phone.
You can configure how metadata is displayed through the vehicle’s settings menu. Choose between different display modes optimized for your specific head unit.

Multi-device support

BlueBus can store up to 8 paired devices and allows you to switch between them:
  • Paired devices stored in EEPROM (CONFIG_BT_DEVICE_EEPROM_BASE)
  • Switch devices using the “CD change” function
  • Automatic reconnection to the last connected device
  • Device names displayed in the vehicle’s menus

Audio chain components

The complete signal path from Bluetooth to your speakers:
Bluetooth Module (BM83) → PCM5122 DAC → Line Output / S/PDIF

                              Factory DSP Amplifier

                              Vehicle Speakers
Alternatively for non-DSP systems, BlueBus includes a PAM8406 5W Class-D/Class-AB amplifier for direct speaker output.
The audio configuration is customizable through the CONFIG_SETTING_DAC_AUDIO_VOL setting to optimize sound quality for your specific vehicle and audio system setup.

Build docs developers (and LLMs) love