Hands-Free Profile (HFP)
The Bluetooth module implements the Hands-Free Profile to enable calling features.HFP features
- Answer and end calls via vehicle controls
- Caller ID display on all supported screens
- Outgoing call support with number entry
- Redial last number
- Voice recognition (Siri/Google Assistant)
- Microphone integration with factory telephone microphone
You can enable or disable HFP through the vehicle’s configuration menu (CONFIG_SETTING_HFP). When enabled, BlueBus establishes both A2DP and HFP profiles with your phone (firmware/application/lib/bt.c:183).
Call control
Answering calls
Incoming calls can be answered using:- Telephone button on BMBT (Board Monitor)
- Telephone button on MID (Multi-Information Display)
- Steering wheel telephone button (MFL)
Ending calls
Active calls can be terminated using:- Same telephone controls used to answer
- BTCommandCallEnd function sends BM83_CMD_MMI_ACTION_END_CALL
Making calls
Outgoing call methods
Outgoing call methods
You can initiate calls through several methods:1. Dial from phonebook
- Access downloaded contacts via PBAP
- Select contact and dial
- Enter number using vehicle’s input controls
- Cleaned and validated per ITU-T V.250 standard
- Supports +, comma (,), #, *, digits 0-9, and A-C
- Quick access via redial function
- Uses phone’s last dialed number memory
Redial functionality
The redial feature uses the phone’s native last number redial:Caller ID display
Incoming and outgoing call information is displayed on your vehicle’s screen.Caller ID information
- Phone number for unknown callers
- Contact name from phone’s contact list
- Call status indicators
Display formats
Caller ID on different displays
Caller ID on different displays
BMBT (Board Monitor):
- Full graphical telephone interface
- Caller name and number
- On-call indicators (IBUS_TEL_CHAR_ON_CALL_LEFT, IBUS_TEL_CHAR_ON_CALL_RIGHT)
- Handsfree icon (IBUS_TEL_CHAR_HANDSFREE_ICON)
- Caller information on single line display
- Scrolling for long names/numbers
- Basic caller information on check control display
- Call status notifications
Telephone LED control
BlueBus controls the factory telephone LED to indicate system status:| LED State | Meaning |
|---|---|
| Red | Bluetooth device disconnected |
| Green | Device connected and ready |
| Green Blinking | Incoming call |
| Yellow | Call in progress |
Voice recognition
Activate your phone’s voice assistant (Siri or Google Assistant) using the vehicle’s voice button.Activation
- Press and hold the voice/telephone button on the steering wheel
- BTCommandToggleVoiceRecognition (firmware/application/lib/bt.c:624) sends the command
- Voice recognition status tracked: BT_VOICE_RECOG_ON / BT_VOICE_RECOG_OFF
Microphone configuration
BlueBus uses your vehicle’s factory telephone microphone with configurable gain settings.Microphone settings
Gain control:- Adjustable gain levels (CONFIG_SETTING_MIC_GAIN)
- Preamp settings (CONFIG_SETTING_MIC_PREAMP)
- Bias voltage (CONFIG_SETTING_MIC_BIAS)
- BM83CommandMicGainUp / BM83CommandMicGainDown functions
- Multiple gain levels in BTBM83MicGainTable
- Stored in EEPROM for persistence
Audio routing
During calls, audio is routed through:- Input: Factory telephone microphone
- Output: Vehicle speakers (with volume control)
- Mode: SCO (Synchronous Connection-Oriented) link for voice
Telephone modes
BlueBus supports multiple telephone operation modes:Available modes
Telephone mode options
Telephone mode options
Default mode (CONFIG_SETTING_TEL_MODE_DEFAULT):
- Standard HFP operation
- Audio muting during calls
- Full integration with vehicle systems
- Emulates BMW Assist TCU module
- Compatible with factory TCU wiring
- Special volume handling
- Disables automatic audio muting
- For custom audio setups
- Direct analog audio path
- Bypasses digital processing
Volume control
Telephone audio volume is independently adjustable:- Separate volume setting from music audio
- Volume offset configuration (CONFIG_SETTING_TEL_VOL)
- Offset range: 0 to CONFIG_SETTING_TEL_VOL_OFFSET_MAX (0x0F)
- TCU mode volume (CONFIG_SETTING_DAC_TEL_TCU_MODE_VOL)
Call status tracking
The system tracks detailed call states:- BM83_DATA_CALL_STATUS_IDLE
- BM83_DATA_CALL_STATUS_VR (voice recognition)
- BM83_DATA_CALL_STATUS_INCOMING
- BM83_DATA_CALL_STATUS_OUTGOING
- BM83_DATA_CALL_STATUS_ACTIVE
- BM83_DATA_CALL_STATUS_ACTIVE_CALL_WAITING
- BM83_DATA_CALL_STATUS_ACTIVE_CALL_HOLD
Phonebook access (PBAP)
BlueBus can download contacts from your phone using the Phone Book Access Profile.PBAP features
- Download contacts from phone memory
- Access call history (incoming, outgoing, missed calls)
- Support for favorites and speed dial
- Multiple phonebook objects supported
Phonebook objects
The BTCommandPBAPGetPhonebook function (firmware/application/lib/bt.c:334) supports:- BT_PBAP_OBJ_PHONEBOOK - Main contact list
- BT_PBAP_OBJ_INCOMING - Incoming call history
- BT_PBAP_OBJ_OUTGOING - Outgoing call history
- BT_PBAP_OBJ_MISSED - Missed calls
- BT_PBAP_OBJ_COMBINED - Combined call history
- BT_PBAP_OBJ_SPEEDDIAL - Speed dial entries
- BT_PBAP_OBJ_FAVORITES - Favorite contacts
PBAP session management includes open (BTCommandPBAPOpen), close (BTCommandPBAPClose), and abort (BTCommandPBAPAbort) functions for reliable phonebook access.