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

iPhone does not see device on air.

Hi everyone!

I'm trying to write demo application to evaluate how custom services would work on nRF52840 SoC. Problem is that iPhone ( iOS 10 and iOS 11 ) doesn't show device in list of found devices, however there is no problems with Android phones. Moreover, nRF Connect utility installed on iPhone is able to recognize successfully. I'm aware about some restrictions for peripheral devices described in Bluetooth Accessory Design Guidelines for Apple Products and adjusted advertise timings as required:

#define APP_ADV_FAST_INTERVAL          32                                           /**< The advertising interval (in units of 0.625 ms). . */
#define APP_ADV_SLOW_INTERVAL         1216                                         /**< Slow advertising interval (in units of 0.625 ms).  */
#define APP_ADV_FAST_DURATION         3000                                         /**< The advertising duration of fast advertising in units of 10 milliseconds. */
#define APP_ADV_SLOW_DURATION        18000                                        /**< The advertising duration of slow advertising in units of 10 milliseconds. */
#define MIN_CONN_INTERVAL              MSEC_TO_UNITS(500, UNIT_1_25_MS)             /**< Minimum acceptable connection interval (0.5 seconds). */
#define MAX_CONN_INTERVAL              MSEC_TO_UNITS(1000, UNIT_1_25_MS)            /**< Maximum acceptable connection interval (1 second). */
#define SLAVE_LATENCY                  0                                            /**< Slave latency. */
#define CONN_SUP_TIMEOUT               MSEC_TO_UNITS(4000, UNIT_10_MS)              /**< Connection supervisory time-out (4 seconds). */      

Next step I've tried is copying settings from BLE app ANCS SDK template as well as initialization code. It also doesn't help. 

My HW platform and tools:

  • PCA10056 development board
  • nRF5_SDK_15.0.0
  • Soft Device S140 V.6.0.0.
  • Device acts in peripheral mode only
  • Code runs on Free RTOS. I used "ble_app_hrs_freertos" template for reference. 

Any ideas what can be wrong? 

Thanks in advance!

 

Parents
  • Hi,

    Have a look at this post. You probably haven't included the supported services.

  • Thank you for response!

    Today I've been playing around this issue and found out that I had to exhibit UUID of HID service (0x1812) in advertise packet to make device recognizable even though it actually not exist. I also tried to include another UUIDs instead, such as GAP service (0x1800) or any custom 128-bit UUID, but it doesn't work. Seems like iOS filters devices by supported services. It's bit confusing, because in Apple Bluetooth Accessory  guidelines not specified what services should be exposed. Moreover, TX Power Level that considered mandatory for advertising data is not required in fact. 

    I think that workaround for this issue could be in including ANCS UUID to advertise packet, but I don't think it's correct solution.

Reply
  • Thank you for response!

    Today I've been playing around this issue and found out that I had to exhibit UUID of HID service (0x1812) in advertise packet to make device recognizable even though it actually not exist. I also tried to include another UUIDs instead, such as GAP service (0x1800) or any custom 128-bit UUID, but it doesn't work. Seems like iOS filters devices by supported services. It's bit confusing, because in Apple Bluetooth Accessory  guidelines not specified what services should be exposed. Moreover, TX Power Level that considered mandatory for advertising data is not required in fact. 

    I think that workaround for this issue could be in including ANCS UUID to advertise packet, but I don't think it's correct solution.

Children
No Data
Related