This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

IoS BLE device list issue

I developed an application (BLE named Adriano) using nRF52840 DK, nRF5_SDK_for_Thread_and_Zigbee_v3.1.0_c7c4730, starting from ble_zigbee_dynamic example.
I added some custom GATT services to the DW sample, and I made application to connect and handle GATT on Android smartphone without troubles.
Now I tried to make same application under IoS, but my my DK device is not on the availaible BLE device list (I tried with SE and S7 iPhone).
Here below image showing Android and iPhone screen (red arrow on Android phone shows my device)
Where I wrong? Have you any suggest about?
Many thanks in advance.
Best regards

Parents
  • Hello,

    Can you check using a sniffer that the device is actually advertising?

    Perhaps it is using a whitelist? Do you use bonding and/or whitelist in your application? If so, can you try to erase the bonding information (nrfjprog -e on the nRF)? If that doesn't work. Do you expect the device to pop up in the Bluetooth section of the iPhone? What services do you advertise with? Can you see it if you scan with nRF Connect for iOS?

    So, there are several possible reasons why you don't see it on your iPhone's Bluetooth Settings. iOS only shows devices that it can see advertises with useful BLE services, such as a BLE keyboard or audio devices. If you connect to it in nRF Connect for iOS on the other hand, and bond with the device, it will pop up under the Bluetooth section as bonded/saved devices.

    Try to search for it using nRF Connect, and make sure that you don't use whitelisting on the nRF when you are advertising.

    Best regards,

    Edvin

  • Hello Edvin
    I'm not using whitelist. I use the ble_zigbee_dynamic example adding only some custom GATT services. 

    Do you expect the device to pop up in the Bluetooth section of the iPhone? What services do you advertise with? Can you see it if you scan with nRF Connect for iOS?

    Yes, I expect to see my "Adriano" device on the Bluetooth Device List of the iPhone.
    In the image here below (left side) "Adriano" advertising details reported on nRF Connect.
    Yes, if I use nRF Connect on IoS I can see and connect my "Adriano"

    I tried also using nRF5_SDK_16.0.0_98a08e2 ble_app_blinky example on DK board and nRF Blinky on iPhone. Same result, the Nordic_Blinky device is working but it is not on the iPhone Bluetooth device list (image below, rigth side)

  • I see.

    I don't know why it shows up on your android, but perhaps that same DK was bonded at one point, and the device is stored in the bluetooth settings.

    By default, very few BLE devices show up in the OS settings -> Bluetooth section. It will filter out anything that doesn't look interesting. 

    If you try to flash the ble_app_hids_keyboard example to the DK, I guess you will see it in the bluetooth menu for the iPhone.

    The way people usually work around this is to have a custom application that scan and connect to your device (like you are able to do in the nRF Connect app). The issue is not that the phone doesn't see the device, but that it doesn't advertise with any standard bluetooth services that looks useful for the phone, such as a keyboard or a headset, it will not be listed in the bluetooth section of the OS settings, unfortunately.

    BR,

    Edvin

  • Many thanks Edvin! The ble_app_hids_keyboard is shown on the iPhone device list.
    In other words, if I well understand, there is no issue on application. The "not useful" BLE device not shown is a normal behavior of the BLE interface on iPhone IoS, right?
    BR
    Abele

  • Yes. That is correct. Another thing worth mentioning, in case you start looking at the services and characteristics on the ble_app_hids_keyboard on iOS is that the keyboard service will be stripped away from nRF Connect, because the OS claims this service, and doesn't forward it to the application layer.

    But yes, it isn't something wrong with the application. It is just done to simplify the user experience for the OS. As I said, in a custom application for iOS, such as nRF Connect, or your own application, you will be able to see all advertising devices, connect, and interact with the services as you like.

    BR,

    Edvin

Reply
  • Yes. That is correct. Another thing worth mentioning, in case you start looking at the services and characteristics on the ble_app_hids_keyboard on iOS is that the keyboard service will be stripped away from nRF Connect, because the OS claims this service, and doesn't forward it to the application layer.

    But yes, it isn't something wrong with the application. It is just done to simplify the user experience for the OS. As I said, in a custom application for iOS, such as nRF Connect, or your own application, you will be able to see all advertising devices, connect, and interact with the services as you like.

    BR,

    Edvin

Children
No Data
Related