Bluetooth Pairing
Contents
Before you start ‘pairing’ a peripheral device with your Sailfish OS phone, please check the device manual to see how to pair them. It is common that with accessories such as headsets or speakers you have to press the power button (or some other button) of a Bluetooth device for several seconds to force it to the pairing state. This state is typically indicated with a light blinkíng rapidly (often in blue colour).
Preparing for Bluetooth connections
1) Open the menu “Settings > System > Bluetooth”.
2) Tap “Bluetooth” (near the top left corner) to switch Bluetooth on (Pic 1).
3) Change the device name if you want. It will appear for other devices making device searches helping to identify the correct device.
4) Turn the visibility ON, at least for few minutes, so that this phone can be paired with another device (Pic 2). After a successful pairing, the visibility can be kept OFF - it does not prevent connections.
Making two Bluetooth devices a pair
Making the devices a pair (or ‘pairing’ them) is the prerequisite for connecting the devices for data transfer. Only paired or known devices can establish connections.
Bluetooth connections work over a short distance between the device. This is typically less than 10 meters.
While in the menu “Settings > System > Bluetooth”,
1) Pull down and select “Search for devices”.
2) After about 10 to 60 seconds, the phone lists all devices with Bluetooth enabled and close enough to you. They appear in the section Nearby devices (Pic 3).
3) Tap on the device you want to connect to (e.g., “JOV-S22U” which is a smartphone)
4) Your Sailfish OS device will now ask you to ‘accept’ the connection. Your Jolla and the device to be connected should show the same 6-digit code (if the other device has a display). Accept the connection on both devices if the codes match (Pic 4).
NOTE: When pairing devices lacking a display and keyboard (e.g., headsets) code matching is not used. The pairing process jumps directly to the view of (Pic 5).
5) Decide if you always want to allow connections between these devices automatically (Pic 5). Otherwise, you will need to allow the connection on this menu page every time you need it.
The just connected device “JOV-S22U” appears under Paired devices (see Pic 6 ). It has a checkbox to the right of its name to indicate that automatic connections are enabled (step 5). The previously paired headset “JBL” is not connected here but it has automatic connections enabled, too.
Each paired device has a context menu that is accessible by long-tapping the name of the device (Pic 7).
The context menu lets one either check the connection details or remove the paired device. The details show the device type (phone, headset, etc.) if the connections are allowed and the Bluetooth profiles supported (Pic 8)
Problem-solving
This chapter has some guidance for resolving problems with Bluetooth.
Pairing two “intelligent” devices (having a display and buttons) may be started from either device. Especially, some car kits (i.e., audio systems of cars) tend to take an active role. Remember to set the ‘Visibility’ of your phone on in this case before trying to pair.
If pairing repeatedly fails, restart both your Sailfish OS device and the other device. Try again.
Checking stepwise
The instructions below refer to a car kit but you can use the same steps with any Bluetooth device.
1) Remove the pairing from your car kit.
2) On your Sailfish phone, open the menu “Settings > System > Bluetooth”
3) Remove the pairing from the phone. Long tap the name of the paired device (car kit) and take “Remove pairing” (Pic 9).
4) Turn Bluetooth OFF on the phone. Next, turn it back ON.
5) Pair these devices again. Start the pairing from the car kit as this usually works better (with car kits).
6) If step 4 fails, repeat steps 1 to 4. This time, initiate the pairing from the Sailfish phone.
If you want to connect to a device without any user interface (e.g. a headset) then start the pairing from the phone. We recommend accepting the pairing dialogues on both devices and allowing the devices to connect automatically.
Pairing with MAC address
Sometimes Bluetooth pairing keeps failing, particularly between Sailfish and cars. Pairing from the Sailfish command line may help. This advice is for advanced users. It can be attempted on all Sailfish OS devices but not on the Jolla Phone or on the Jolla tablet (as the commands below require bluez5).
Some Bluetooth tools need to be installed. The actual pairing command relies on the so-called MAC address of the device to be paired. The MAC can be checked from Settings > System > About phone on Sailfish devices and from a corresponding menu on other devices.
You will need to enable the developer mode for this. Once done, give the following commands in the Terminal app or make an SSH connection from a computer to the phone. The following links have SSH instructions for Windows computers and for Linux computers.
Install the tools
[defaultuser]$ devel-su ## Type your SSH password
[root@Xperia10III defaultuser]# pkcon refresh
[root@Xperia10III defaultuser]# pkcon install bluez5-tools
Do the pairing
[root@Xperia10III defaultuser]# bluetoothctl
Agent registered
[bluetooth]# scan on
Discovery started
[CHG] Controller 3C:01:EF:CB:CF:56 Discovering: yes
[NEW] Device 3C:01:EF:C7:5F:A2 Xp10II ## New device, check & copy the MAC
[CHG] Device 3C:01:EF:C7:5F:A2 RSSI: -53
[bluetooth]# pair 3C:01:EF:C7:5F:A2 ## Pairing the new device, use the MAC ^
Attempting to pair with 3C:01:EF:C7:5F:A2
[CHG] Device 3C:01:EF:C7:5F:A2 Connected: yes
Request confirmation
**[agent] Confirm passkey 266780 (yes/no):** yes ## Check the display of the new device
[CHG] Device 3C:01:EF:C7:5F:A2 UUIDs: 00001105-0000-1000-8000-00805f9b34fb
[CHG] Device 3C:01:EF:C7:5F:A2 UUIDs: 0000110a-0000-1000-8000-00805f9b34fb
[CHG] Device 3C:01:EF:C7:5F:A2 UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
[CHG] Device 3C:01:EF:C7:5F:A2 UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
[CHG] Device 3C:01:EF:C7:5F:A2 UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
[CHG] Device 3C:01:EF:C7:5F:A2 UUIDs: 00001112-0000-1000-8000-00805f9b34fb
[CHG] Device 3C:01:EF:C7:5F:A2 UUIDs: 0000111f-0000-1000-8000-00805f9b34fb
[CHG] Device 3C:01:EF:C7:5F:A2 UUIDs: 0000112f-0000-1000-8000-00805f9b34fb
[CHG] Device 3C:01:EF:C7:5F:A2 UUIDs: 00001200-0000-1000-8000-00805f9b34fb
[CHG] Device 3C:01:EF:C7:5F:A2 UUIDs: 00001800-0000-1000-8000-00805f9b34fb
[CHG] Device 3C:01:EF:C7:5F:A2 UUIDs: 00001801-0000-1000-8000-00805f9b34fb
[CHG] Device 3C:01:EF:C7:5F:A2 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb
[CHG] Device 3C:01:EF:C7:5F:A2 ServicesResolved: yes
[CHG] Device 3C:01:EF:C7:5F:A2 Paired: yes ## Pairing succeeded
Pairing successful
[CHG] Device 3C:01:EF:C7:5F:A2 ServicesResolved: no
[CHG] Device 3C:01:EF:C7:5F:A2 Connected: no
[bluetooth]# exit
Uninstall the tools
[defaultuser]$ devel-su
[root@Xperia10III defaultuser]# pkcon remove bluez5-tools
[root@Xperia10III defaultuser]# pkcon refresh
[root@Xperia10III defaultuser]# exit
The paired device appears in the Bluetooth menu of your phone now.
Removing unknown Bluetooth devices from the device list
In some circumstances, it could be that the list of Bluetooth devices in “Settings > System > Bluetooth” grows too long and even so that they cannot be deleted by the UI means. In such a case, remove the unnecessary devices by using the command line:
1) Check the MAC address of your phone
[defaultuser]$ ls -l /var/lib/bluetooth
2) List your paired devices with the bluetoothctl tool
Install the tool unless you have it.
[defaultuser@Xperia10III ~]$ devel-su
Password:
[root@Xperia10III defaultuser]# pkcon refresh
[root@Xperia10III defaultuser]# pkcon install bluez5-tools
[root@Xperia10III defaultuser]# bluetoothctl
Agent registered
The response could be something like below, showing the MAC addresses and nicknames of the paired devices. We list them so that they wouldn’t get deleted by accident.
[bluetooth]# devices Paired
Device F4:B6:88:0F:3E:97 PLT V8200 Series
Device 3C:01:EF:CB:CF:56 Xperia 10 II
Device 04:D3:B0:C5:12:C2 MY LAPTOP
Device A0:14:3D:07:2E:2B VW PHONE
Device 00:12:6F:45:60:5B Nuforce BTR-100
Device F8:5C:7D:3E:6C:EF JBL TUNE750BTNC
Without ‘Paired’, the list may have more devices (depending on previous device scans and error sitations). Consider removing some or all of them.
[bluetooth]# devices
[CHG] Controller 3C:01:EF:8D:C8:8C Discovering: yes
[NEW] Device 3C:01:EF:C7:5F:A2 Xperia 10 II - okay
[CHG] Device 3C:01:EF:CB:CF:56 RSSI: -54
[CHG] Device 3C:01:EF:CB:CF:56 TxPower: 4
[NEW] Device 38:78:62:44:D5:51 XA2
Removing devices one-by-one happens with the following command:
[bluetooth]# remove <MAC>
Example:
[bluetooth]# remove 84:C7:EA:18:EE:7B
[DEL] Device 84:C7:EA:18:EE:7B XX
Device has been removed
[bluetooth]# exit
If this does not work then there is the option to do it as root, after exiting bluetoothctl. Delete devices one by one or all in one go (including your paired devices - repairing needed):
[root@Xperia10III defaultuser]# rm -R /var/lib/bluetooth/<MAC-of-my-device>/<MAC-of-device-to-be-removed>/
[root@Xperia10III defaultuser]# rm -R /var/lib/bluetooth/<MAC-of-my-device>/*
Example:
[root@Xperia10III defaultuser]# rm -R /var/lib/bluetooth/3C\:01\:EF\:8D\:C8\:8C/0C\:FC\:30\:00\:7F\:CE/
Note: the MAC address is best written by typing the first two characters followed by the TAB which completes the address string for you (and adds the backslash characters).
Bluetooth profiles supported by Sailfish OS
Sailfish OS supports the Bluetooth profiles listed on this separate document.