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

Bluetooth connection parameters

I am working with nRFx modules and have a few questions about updating parameters. I started my project with an example and modified what I needed. However, I am not sure if the parameters are getting set when I change them. Currently I go into main.c and change the following parameters:

#define MIN_CONN_INTERVAL                          MSEC_TO_UNITS(20, UNIT_1_25_MS)           
#define MAX_CONN_INTERVAL                         MSEC_TO_UNITS(75, UNIT_1_25_MS)           
#define SLAVE_LATENCY                                  0                                         
#define CONN_SUP_TIMEOUT               
#define FIRST_CONN_PARAMS_UPDATE_DELAY  APP_TIMER_TICKS(5000, APP_TIMER_PRESCALER)  
#define NEXT_CONN_PARAMS_UPDATE_DELAY   APP_TIMER_TICKS(30000, APP_TIMER_PRESCALER) 
#define MAX_CONN_PARAMS_UPDATE_COUNT    3                                
#define TX_POWER_LEVEL                                4      

If I change these parameters, specifically the first three (connection interval, slave latency, and connection supervision timeout), will they automatically be set on with the central? I am currently connecting to a windows 10 device and trying to figure out if the parameters are being updated and if not, why? How would I check to see if they are getting updated?

Parents
  • What project you use? There are like hundred main.c files in SDK;) Normally these constants are indeed used in the code when you recompile and load it to the board so they should be used. The question is what you expect to happen;) Normally there is no debugging on Link Layer on systems like smart phones or Windows boxes so the usual way is to get RF analyzer/sniffer and see what is happening in the air.

  • oh, i was thinking that those parameters were told to the central at first connection. Could you help me understand the peripheral connection parameters update procedure? This is where I would use FIRST_CONN_PARAMS_UPDATE_DELAY and NEXT_CONN_PARAMS_UPDATE_DELAY, correct?

    I would like to try and force the master to accept the parameters so that I can play around and see what parameters will help me experience bluetooth disconnects less often. As it stands I have a central that communicates with two peripherals that tend to move around a bit in the room. I transmit and expect data back every 300 ms or so. Bandwidth is not an issue as I am not sending/receiving a lot of data. I was thinking that I could lower the MIN_CONN_INTERVAL and MAX_CONN_INTERVAL settings and increase the CONN_SUP_TIMEOUT (so that i get less bluetooth disconnects from the windows bluetooth stack).

Reply
  • oh, i was thinking that those parameters were told to the central at first connection. Could you help me understand the peripheral connection parameters update procedure? This is where I would use FIRST_CONN_PARAMS_UPDATE_DELAY and NEXT_CONN_PARAMS_UPDATE_DELAY, correct?

    I would like to try and force the master to accept the parameters so that I can play around and see what parameters will help me experience bluetooth disconnects less often. As it stands I have a central that communicates with two peripherals that tend to move around a bit in the room. I transmit and expect data back every 300 ms or so. Bandwidth is not an issue as I am not sending/receiving a lot of data. I was thinking that I could lower the MIN_CONN_INTERVAL and MAX_CONN_INTERVAL settings and increase the CONN_SUP_TIMEOUT (so that i get less bluetooth disconnects from the windows bluetooth stack).

Children
No Data
Related