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

Iphone 8 & Iphone 10 not connecting to nrf51422(using BLE) having sdk 9.0 & soft devive s310

Dear Sir,

                 I am now using nrf51422 module (SRU532) for ANT+BLE application , i have used SDK_9.0.0_2e23562 and soft device s310_nrf51422_3.0.0. The problem i am facing is that the module is not connecting to the Iphone 8 ,Iphone 10 while using the BLE protocol. Plz suggest how to make iphone working with BLE ? Do i need to change the software what i am currently using for nrf51422 ( C:\Keil_v5\ARM\Device\Nordic\examples\multiprotocolnew\ble_ant_app_hrm\pca10028\s310\arm5_no_packs). Plz replay asp.

thaks & regards

sumanta

  • Hello sumanta,

     

    Could you please specify what you mean with "is not connecting"?

    Does the device advertise? Can you see it from your phone? 

    Is it only iPhone 8 and X that can't connect? Can you connect with other phones? Have you tried Android?

     

    Does the application run? Have you tried debugging? Can you run any of the examples from the SDK\examples\peripheral\<something>\blank\pca10028?

    e.g. the blinky example in:

    SDK\examples\peripheral\blinky\pca10028\blank, and see some of the pins toggle? pins p0.21-p0.24 should toggle.

     

    Do you have a LFXTAL with your SRU532 module, or have you enabled the RC oscillator?

     

    If it does advertise, but you can't connect, do you get the Connected event? Do you get the disconnected event? Can you check the reason field for the disconnect event?

     

    Can you provide a sniffer trace? A trace from nRF Sniffer would be sufficient and very helpful.

     

    Best regards,

    Edvin

  • Dear Edvin,

                             the module is working for all  android device & for iphone up to iphone-7  but only Iphone-8 and  above not connecting .In Iphone 8 or avobe  it scan the device  and display the same but  the service discovery operation failed and after that it will not display any data from peripheral device.  currently i have not have the iphone-X with me to get the Sniffer data is there any other way i can chk the bug?  I can debug the code. I have got some answer from the forum regrading  these issue. Do you think we need do the same update in my application. Plz chk the detail in link below.

    devzone.nordicsemi.com/.../138677

    thanks & regards

    sumanta

  • Dear Edvin,

                             plz find the code below for the  clock initialization (RC oscillator initialization).

    /**@brief BLE + ANT stack initialization.
    *
    * @details Initializes the SoftDevice and the stack event interrupt.
    */
    static void ble_ant_stack_init(void)
    {
    uint32_t err_code;

    // Initialize SoftDevice
    //SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, NULL);
    SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_RC_250_PPM_250MS_CALIBRATION, NULL);
    //nrf_delay_ms(100);

    // Initialize BLE stack
    ble_enable_params_t ble_enable_params;
    memset(&ble_enable_params, 0, sizeof(ble_enable_params));
    ble_enable_params.gatts_enable_params.service_changed = IS_SRVC_CHANGED_CHARACT_PRESENT;
    err_code = sd_ble_enable(&ble_enable_params);
    APP_ERROR_CHECK(err_code);

    // Subscribe for BLE events.
    err_code = softdevice_ble_evt_handler_set(ble_evt_dispatch);
    APP_ERROR_CHECK(err_code);

    // Subscribe for ANT events.
    err_code = softdevice_ant_evt_handler_set(on_ant_evt);
    APP_ERROR_CHECK(err_code);

    #ifdef BONDING_ENABLE
    // Register with the SoftDevice handler module for BLE events.
    err_code = softdevice_sys_evt_handler_set(sys_evt_dispatch);
    APP_ERROR_CHECK(err_code);
    #endif // BONDING_ENABLE
    }

  • Dear Edvin,

                detail of the connection interval for BLE

    #define SECOND_1_25_MS_UNITS 800 /**< Definition of 1 second, when 1 unit is 1.25 ms. */
    #define SECOND_10_MS_UNITS 100 /**< Definition of 1 second, when 1 unit is 10 ms. */
    #define MIN_CONN_INTERVAL (SECOND_1_25_MS_UNITS / 2) /**< Minimum acceptable connection interval (0.5 seconds), Connection interval uses 1.25 ms units. */
    #define MAX_CONN_INTERVAL (SECOND_1_25_MS_UNITS) /**< Maximum acceptable connection interval (1 second), Connection interval uses 1.25 ms units. */
    #define SLAVE_LATENCY 0 /**< Slave latency. */
    #define CONN_SUP_TIMEOUT (4 * SECOND_10_MS_UNITS) /**< Connection supervisory timeout (4 seconds), Supervision Timeout uses 10 ms units. */

    #define FIRST_CONN_PARAMS_UPDATE_DELAY APP_TIMER_TICKS(5000, APP_TIMER_PRESCALER) /**< Time from initiating event (connect or start of notification) to first time sd_ble_gap_conn_param_update is called (5 seconds). */
    #define NEXT_CONN_PARAMS_UPDATE_DELAY APP_TIMER_TICKS(30000, APP_TIMER_PRESCALER) /**< Time between each call to sd_ble_gap_conn_param_update after the first call (30 seconds). */
    #define MAX_CONN_PARAMS_UPDATE_COUNT 3 /**< Number of attempts before giving up the connection parameter negotiation. */

  • Dear Edvin,

                            plz replay if there is any way to fix the problem.

    thanks & regards

    sumanta

Related