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

Increase Service Discovery Speed by Master

Hi, So i'm working on an android app that communicates with two nrf51822 devices on the s110 softdevice by switching between them continuously (connecting one, disconnecting the other and vice versa). My issue is that the service discovery seems to take more time than my desired switching period. Each of the devices have only one custom service as well as the standard Generic Profile and Generic Access services (no battery or DIS services). It worked for switching every 10 seconds but I need to switch every second or so. Is it possible to vastly reduce the discovery time; and if so, please how can this be achieved?? I am testing on a Samsung Galaxy s3 running Android 4.3. Thanks

Parents
  • What do you set your preferred Connection Parameters to? When do you request the Connection Parameter Update?

    Your only options of increasing Discovery Speed are using the fastest Connection Parameters, and streamlining your Service. Meaning remove anything characteristic that are unnecessary and reduce the characteristic sizes to only required size. i.e. don't create a uint32_t characteristic that will only use 0-255 values.

  • #define MIN_CONN_INTERVAL MSEC_TO_UNITS(22, UNIT_1_25_MS)
    #define MAX_CONN_INTERVAL MSEC_TO_UNITS(46, UNIT_1_25_MS) #define SLAVE_LATENCY 0 /**< Slave latency. */ #define CONN_SUP_TIMEOUT MSEC_TO_UNITS(200, UNIT_10_MS)

    You likely are not updating your parameters before discovery, meaning you are relying on the default Connection Parameters of the Android phone to be fast enough. If this is not the case, you need to send a Connection Parameter update sooner.

Reply
  • #define MIN_CONN_INTERVAL MSEC_TO_UNITS(22, UNIT_1_25_MS)
    #define MAX_CONN_INTERVAL MSEC_TO_UNITS(46, UNIT_1_25_MS) #define SLAVE_LATENCY 0 /**< Slave latency. */ #define CONN_SUP_TIMEOUT MSEC_TO_UNITS(200, UNIT_10_MS)

    You likely are not updating your parameters before discovery, meaning you are relying on the default Connection Parameters of the Android phone to be fast enough. If this is not the case, you need to send a Connection Parameter update sooner.

Children
No Data
Related