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

Slave latency and interval connection for GAP advices

Dear Nordic Developer Zone,

In order to synchronize some tasks (motor-driving), I have recently implemented the radio notification interrupt.

In this interrupt, I toggle a LED on the nRF6310 board to see when the radio communication begins and stops.

During advertising, when I change the interval param, I can see the led blinking as fast I have set the interval parameter.

But, regarding the GAP interval and slave latency parameters, I can't see any difference even if I set a minimal connection interval value high : the LED continues to blink very fast when the nRF51822 chip is connected to a device (IOS app).

I have check how it is used in the "ble_app_hids_mouse" and I don't see something special to set excepted the parameters "min_conn_interval", "max_conn_interval" and "slave_latency".

Could you explain why these parameters are no effect about the frequency where the interrupt "radio notification" is called? Am I missing something?

FYI, there is no notification or data sent by the chip.

I have also read the very good answer you did here to understand the way to use these parameters : devzone.nordicsemi.com/.../what-is-connection-parameters

I am using the nRF51822 chip with softdevice and here are the values I am using :


#define SECOND_1_25_MS_UNITS 800
#define SECOND_10_MS_UNITS 100
#define MIN_CONN_INTERVAL (SECOND_1_25_MS_UNITS *5)
#define MAX_CONN_INTERVAL (SECOND_1_25_MS_UNITS *10)
#define SLAVE_LATENCY 10
#define CONN_SUP_TIMEOUT (4 * SECOND_10_MS_UNITS)                 

Thanks for your help

Parents
  • Thanks for your quick reply.

    My parameters now meet the Apple requirements :

    #define SECOND_1_25_MS_UNITS 800
    #define SECOND_10_MS_UNITS 100
    #define MIN_CONN_INTERVAL (SECOND_1_25_MS_UNITS / 100) * 2 /*20ms*/
    #define MAX_CONN_INTERVAL (SECOND_1_25_MS_UNITS / 10) * 4 /*400ms*/
    #define SLAVE_LATENCY 4
    #define CONN_SUP_TIMEOUT (4 * SECOND_10_MS_UNITS) /*4s*/
    

    I am aware that the peripheral can send data immediatly as you explained in this thread.

    But in my case, there is no connection problem between the device and the chip. I am able to receive and send data to the chip with my IOS app.

    I added breakpoints in the ble_conn_param in the event handler to check if some errors occurred, but I never reach one of the error checked :

    // Parameters are not ok, send connection parameters update request.
    // Negotiation failed, disconnect automatically if this has been configured
    // Notify the application that the procedure has failed
    

    I just want be able to increase the interval connection to move my motors without radio interrupt perturbation.

    As I said in my question, I can see when the radio connection event handler is called because I am eneabling and disabling a LED on the dev kit.

    Could help me to understand why the connection parameters don't change the frequeny where the event handler for radio notificaiton is called by the softdevice?

    Best regards

Reply
  • Thanks for your quick reply.

    My parameters now meet the Apple requirements :

    #define SECOND_1_25_MS_UNITS 800
    #define SECOND_10_MS_UNITS 100
    #define MIN_CONN_INTERVAL (SECOND_1_25_MS_UNITS / 100) * 2 /*20ms*/
    #define MAX_CONN_INTERVAL (SECOND_1_25_MS_UNITS / 10) * 4 /*400ms*/
    #define SLAVE_LATENCY 4
    #define CONN_SUP_TIMEOUT (4 * SECOND_10_MS_UNITS) /*4s*/
    

    I am aware that the peripheral can send data immediatly as you explained in this thread.

    But in my case, there is no connection problem between the device and the chip. I am able to receive and send data to the chip with my IOS app.

    I added breakpoints in the ble_conn_param in the event handler to check if some errors occurred, but I never reach one of the error checked :

    // Parameters are not ok, send connection parameters update request.
    // Negotiation failed, disconnect automatically if this has been configured
    // Notify the application that the procedure has failed
    

    I just want be able to increase the interval connection to move my motors without radio interrupt perturbation.

    As I said in my question, I can see when the radio connection event handler is called because I am eneabling and disabling a LED on the dev kit.

    Could help me to understand why the connection parameters don't change the frequeny where the event handler for radio notificaiton is called by the softdevice?

    Best regards

Children
No Data
Related