When pairing a legacy (2.0) bluetooth device, there is no prompt to enter a PIN. Some devices have hardcoded PIN as 0000, but if the device chooses a random PIN then there is no way to pair from the UI.
PRECONDITIONS:
Legacy 2.0 BT device with random PIN. Not applicable to 2.1 SSP pairing
STEPS TO REPRODUCE:
Scan for BT device in settings UI
Pick legacy 2.0 device
Wait for PIN dialog
EXPECTED RESULT:
Lipstick prompts to enter PIN
ACTUAL RESULT:
Pairing fails
MODIFICATIONS:
ADDITIONAL INFORMATION:
Workaround is to use bluetoothctl at the command line to pair,
Likley lipstick doesnt fully implement the Agent1 bluez API which should support PIN entry.
One of those ever-green bugs whose existence doesn’t bother Jolla at all. It’s been like that ever since I can remember. I always have to use bluetoothctl for legacy pairing. My car kit requires 1234 as PIN that’s impossible to enter otherwise.
Yes I know .. I hoped that by putting it into the simplest terms, not mentioning cars etc, and being specific about the BT versions, then it would get assigned an internal bug number.
Well, my particular car is 2010, and uses 2.0. Vehicles have long design and lifetimes. But in any case, i think implementing the PIN prompt would be worth fixing as there are plenty of such reports on the forum.
Sounds at least quite easy fix and improves immediately user experience. Definitely good bug report. This might be the reason why I have had hard time connecting to my car also.
Doing some further digging, /usr/share/lipstick-bluetooth-ui/BluetoothPairingWindow.qml is responsible for the dialog. It -does- have a PIN prompt, however, it auto-tries pin 0000 first. I guess some devices offer to retry, but my car, and seems like other just fail. I was able to edit the file to remove the auto 0000 and get it to prompt properly
Indeed, when I was trying to use it in the past (on pre-5.x OS releases) with the aforementioned car kit, very rarely (like once every 20-30 attempts) the PIN prompt did show up. In such case, I was able to normally enter the PIN. So it’s not that it isn’t implemented, it’s just that most of the time it doesn’t pop up.
EDIT: Just to test, I replaced “0000” with “1234” in the above mentioned qml file. It didn’t make it pair automatically, but the PIN prompt was correctly shown and after entering the 1234 PIN the phone got correctly paired. Well, maybe not fully correctly as since OS 5.0 it no longer synchronizes phonebook (because it does not add the PBAP profile) but other than that everything works OK.
The problem is the silent fault i.e. SF does not tell you that it is going to try 0000.
So displaying the PIN would significantly improve things, as would a message “Default PIN is 0000. Set your device to use 0000”