Lipstick does not prompt for a Legacy Pairing Mode Bluetooth PIN

REPRODUCIBILITY: 100%
OS VERSION: 5.2
HARDWARE: JP, Volla
UI LANGUAGE:
REGRESSION:

DESCRIPTION:

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:

  1. Scan for BT device in settings UI

  2. Pick legacy 2.0 device

  3. 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.

6 Likes

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.

3 Likes

Not saying you don’t have a point, but my 2006 car radio has no problems connecting. But then again, 2.1 was introduced in 2004…

I have to turn on persistent logging for other reasons, could check which version it uses.

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.

1 Like

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

7 Likes

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.

My car allows you to set the PIN.

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”

Indeed.

Can you please share a diff?