Skip to content

Bluetooth Interface

The MConn Display uses the Redpine RS9113 wireless module for Bluetooth, which is the same module for WiFi. The RS9113 supports simultaneous WiFi and Bluetooth operation through its COEX (coexistence) mode. The Bluetooth stack on the display runs BlueZ 5.50, the standard Linux Bluetooth protocol stack, exposed through the hci0 interface over SDIO.

The display supports both Bluetooth Classic and Bluetooth Low Energy (BLE), and is managed via the standard bluetoothctl command-line tool.

To check whether the Bluetooth service is active:

Terminal window
systemctl status bluetooth

To check whether the hci0 interface is up:

Terminal window
hciconfig -a

The output should show UP RUNNING and the device’s Bluetooth MAC address:

hci0: Type: Primary Bus: SDIO
BD Address: 88:DA:1A:B3:B4:AF
UP RUNNING
...

If hciconfig -a returns no output or the interface is DOWN, initialize the Bluetooth stack manually:

Terminal window
ifconfig rpine0 up
/usr/bin/onebox_util rpine0 enable_protocol 3
/usr/sbin/onebox-protocol-start 4
hciconfig hci0 up
systemctl start bluetooth

Verify the interface is now up:

Terminal window
hciconfig -a
bluetoothctl show

The bluetoothctl show output should display the controller as Powered: yes.

By default, the display advertises itself as imx6qmrsdisp. To change the Bluetooth device name to something more recognizable:

Terminal window
hciconfig hci0 name "MConn Display"
hciconfig hci0 leadv

The new name will immediately be visible to nearby devices scanning for Bluetooth.

The bluetoothctl interactive shell is the primary tool for managing Bluetooth on the MConn Display. Launch it with:

Terminal window
bluetoothctl

Once inside the bluetoothctl prompt, the following commands are available:

CommandDescription
showShow the Bluetooth controller status
discoverable onMake the display visible to other devices
discoverable offHide the display from scans
pairable onAllow incoming pairing requests
scan onScan for nearby Bluetooth devices
scan offStop scanning
devicesList discovered devices
pair <MAC>Pair with a specific device
connect <MAC>Connect to a paired device
disconnect <MAC>Disconnect a device
remove <MAC>Remove a paired device
quitExit bluetoothctl

The following steps walk through pairing a phone or PC with the MConn Display.

Step 1 — Make the display discoverable

Terminal window
bluetoothctl discoverable on
bluetoothctl pairable on

Step 2 — Launch bluetoothctl and prepare the display

Terminal window
bluetoothctl

Then inside the prompt:

agent on
default-agent
scan on

Step 3 — Initiate pairing from your phone or PC

On your phone or PC, scan for Bluetooth devices and select imx6qmrsdisp (or the custom name you set with hciconfig).

Step 4 — Confirm the passkey

The display will prompt with a 6-digit passkey:

[agent] Confirm passkey 396482 (yes/no):

Verify that the passkey matches what is shown on your phone, then type yes in the SSH terminal and confirm on your phone.

Step 5 — Authorize services if prompted

The display may ask to authorize a Bluetooth profile:

[agent] Authorize service 0000111e-0000-1000-8000-00805f9b34fb (yes/no):

Type yes to allow. Once pairing is complete, the prompt will change to show the paired device name:

[John Doe's Phone]#

Step 6 — Exit bluetoothctl

quit

or press Ctrl+D.

The MConn Display runs BlueZ 5.50, which supports a wide range of advanced Bluetooth features including GATT server/client setup, custom BLE advertising, Bluetooth audio profiles, and service authorization policies.

For advanced configuration, please refer to the official BlueZ documentation.

Some examples of advanced configurations available through BlueZ:

  • Custom GATT server — expose custom BLE services and characteristics to connected devices using btgatt-server, useful for building BLE-based data interfaces between the display and other devices
  • BLE advertising data — customize advertisement packets (device name, manufacturer data, service UUIDs) using hcitool or btmgmt
  • Bluetooth audio — the display includes bluealsa and bluealsa-aplay for routing audio over Bluetooth to connected speakers or headsets
  • Packet capture and debugging — use btmon to capture and inspect Bluetooth traffic in real time, or btsnoop to record logs for offline analysis