BLE nrf dongle doesn't find devices

I am using the nrf dongle with the firmware connectivity_4.0.0_usb_with_s132_5.1.0.

I am advertising with my android phone the UUID  "0000FEA6-0000-1000-8000-00805f9b34fb". If I use the dongle with the nrf Desktop app for testing, it can see my android device and the advertised UUID. However, if I use a similar approach to the Thingy52 I get a lot of callbacks on the onScanResults, but the scan results are either of devices that don't advertise any service or from a specific device with a specific service with UUID 0000FEED-0000-1000-8000-00805F9B34FB.

I don't understand why I get repeatedly only this UUID, while with the nrf desktop app I can see also the advertised service from my android. Can it be the case that the scan results without services or this specific UUID service overwhelm the scan results? I mean what happens when there are a lot of results back to back and the onScanResults isn't fast enough?

  • What do you see with my bleScan app on a real device?  It sees everything that CIQ BLE can see.

    With CIQ, you may not see a UUID or device name.

    https://apps.garmin.com/apps/9bcc8b66-8385-4afb-b93e-f69e01422284

    With a real device you likely won't see a phone if it's the same phone you are paired with for syncing/etc.

  • Hi Jim,

    With your app I only see the same results as in the simulator, a device with no UUID and another device with the  UUID 0000FEED-0000-1000-8000-00805F9B34FB. Indeed it is the same phone I have paired my watch with, however I am running on it an application that advertises a certain UUID. What can I do? Should I advertise a certain UUID to be found? I guess it should be possible to be found, since Garmin uses the same BLE stack to connect to my phone when I sync the watch, right?

  • I wrote blescan for cases like yours - where you can do a basic check (even try to connect) without spending time writing code to do it.

    I've never heard of anyone that's been about to connect to the same phone that is paired to the Garmin,  It could have to do with having the same BLE Mac address or the flags used with BLE.,  I've not tried that myself..  I've only used BLE with stand-alone devices like the thingy52, HRM, Raspberry Pi devices, etc.

    The only devices where I see a name with blescan are the thingy52 and HRM-PRO.  Right now, with blescan, I see 12 devices, and with 3 of them, no UUID.

    There is really nothing you can do.

    Have you watched the video from the breakout session where this was introduced?

    https://forums.garmin.com/developer/connect-iq/b/news-announcements/posts/adding-bluetooth-connectivity-to-your-connect-iq-projects

  • Yes I have watched this video, it didn't really add much to what I already know from the forum. My goal is to use my android phone as a mediator to control a GoPro. So, I wanted to connect the watch to my phone. Would you say then that my best option would be to use the API for the companion app and create an app that uses this API and doesn't directly connect to the watch over BLE?

  • I would say the best option is to skip the phone and connect right to the gopro.  Sounds like you can only use system7 devices, per what Anshul (one of the Garmin CIQ folks) says.

    You might try something other that BLE to talk to the phone.  Stuff in the Communications module. assuming the gopro can talk to the phone and you have a way to interface to it on the phone

  • I already tried the direct connection and it doesn't work. GoPro requires bonding for authentication and fenix6 doesn't support that. What do you mean by something other than BLE? I checked the Communications module and it contains support for the companion app and this is over BLE. That's what I will try to do probably, skip the direct use of BLE API and try to use the Communications module.

    I understand about the BLE stack limitations on Garmin, but still the basics, like finding most of the advertisements I would expect it to work, I don't understand why there is a limitation there and my phone advertisements can't be captured. The same thing holds with other devices. The nrf dongle can find many devices when I use the nrf desktop application, however when I use it with the garmin framework it only finds 2.

    Apart from reporting bugs, do you know if there is any official support from garmin?

  • In your other thread, you've been talking to Anshul.  That "ConnectIQ" after his name indicates he's one of the Garmin CIQ folks.

    Have you looked at the companion app samples?

  • Hi Jim, I did develop a companion app, but this also has issues. The simulation doesn't work with the companion app in the sense that the receive callback doesn't work, whenever I send a message from the garmin simulation it never triggers the receive callback in my android. However, if I install the IQ application to my watch it works. The developing experience with all these bugs has been frustrating at least until now :P