4

I would like to pair my Bluetooth Low Energy Sport Watch (Suunto Ambit 3) to my Raspberry PI 3 B V1.2 I am using the RaspianOS Version 10 buster with kernel Version 5.4.79-v7+ This OS contains the bluez stack in version 5.50 which was installed from a predefined package via apt-get.

Usually the ble pairing is done with smartphones under android and IOS. When doing the pairing process the watch offers a pincode which has to be entered by the smartphone. With nRFConnect app under android the pairing works fine. When I am running the hcitool on my raspberry and the watch is in pairing mode it appears.

sudo hcitool -i hci0 lescan

but when i try to run the sudo bluetoothctl command with scan on my device does not appear and pairing with the correct mac address does not work either. Other devices still appear in bluetoothctl I also had a look into https://github.com/raspberrypi/linux/issues/3689 but this seems that this is only related to newer raspberry pi models.

Do have any idea what hinders my device from being found in the bluetoothctl scan mode or what can I do to pair my device with pin code enabled?

  • This sounds like a bug with either bluetoothctl or Suunto watch. When you can't find the device via bluetoothctl, can you see it at the same time using nRF Connect? In other words, are you entirely sure that the watch didn't stop advertising or it didn't automatically connect to something else. I am asking because if one of those two things happened, then it is expected for the watch to no longer be visible via bluetoothctl. – Youssif Saeed Jan 04 '21 at 07:27
  • It is a long shot, but you can also try resetting btmgmt as can be seen in this answer:- https://stackoverflow.com/questions/62147384/raspberry-ble-encryption-pairing/62242352#62242352. Maybe that will somehow get things working. – Youssif Saeed Jan 04 '21 at 07:28
  • 1
    It is also worth checking that if you do `blutoothctl devices` that the watch isn't already in the list as existing devices often get filtered during scan if they have already been discovered. A `sudo service bluetooth restart` is often a good idea to reset the `bluetoothd`. To get more visibility for debug use `journalctl -f -u bluetooth` and `sudo btmon` – ukBaz Jan 04 '21 at 07:55
  • Hi thanks, for the response. – TheBlackRiderGBird Jan 05 '21 at 21:04
  • Hi thanks, for the response. I made some further investigations: It looks like that my watch does send a non-connect advertisement frame. Probably on purpose to prevent other applications to connect to that watch I am not very familar with the frame format but `hcidump --raw` gave me `04 3E 21 02 01 00 00 C0 81 ...` I tried to simulate the same with the nRF connect and bluetoothctl behaves the same. So not found if connectable is deactivated. Probably I have to access it a level deeper than bluetoothctl. Do you know if there are some tools/libs for that? – TheBlackRiderGBird Jan 05 '21 at 21:13

1 Answers1

11

I found a solution by myself.

inside bluetoothctl calling the following sequence

menu scan
transport le
back
scan on

finally enables bluetoothctl to find my watch. The connect command is then also working.