Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

NRF_SDH_BLE_GAP_EVENT_LENGTH

Using SDK14.2.

I'm trying to optimize the throughput of my ble_nus-based app (I'm getting about 5k/sec right now). I've read elsewhere on this forum that increasing NRF_SDH_BLE_GAP_EVENT_LENGTH from the default of 3 to 16 might help, and I also read that doing so requires increasing ram_start. I updated sdk_config.h, and the changed the RAM address in the linker script from 20002076 to 20002800, but I continue to get error 4 from nrf_sdh_ble_enable(). Is there some other setting that needs to be tweaked at the same time? Did I not change the ram start enough? Any other suggestions?

Parents
  • Similar issues here, 6k/sec. I see from the throughput demo the following settings in sdk_config.h, main.c and --throughput--.icf:

    #define NRF_SDH_BLE_GAP_EVENT_LENGTH 320
    

    #define CONN_INTERVAL_MIN               (uint16_t)(MSEC_TO_UNITS(7.5, UNIT_1_25_MS))    /**< Minimum acceptable connection interval, in 1.25 ms units. */
    #define CONN_INTERVAL_MAX               (uint16_t)(MSEC_TO_UNITS(500, UNIT_1_25_MS))    /**< Maximum acceptable connection interval, in 1.25 ms units. */
    #define CONN_SUP_TIMEOUT                (uint16_t)(MSEC_TO_UNITS(4000,  UNIT_10_MS))    /**< Connection supervisory timeout (4 seconds). */
    #define SLAVE_LATENCY                   0                                               /**< Slave latency. */
    

    define symbol __ICFEDIT_region_RAM_start__   = 0x20003128;
    define symbol __ICFEDIT_region_RAM_end__     = 0x2000ffff;
    
    

    Still experimenting ..

Reply
  • Similar issues here, 6k/sec. I see from the throughput demo the following settings in sdk_config.h, main.c and --throughput--.icf:

    #define NRF_SDH_BLE_GAP_EVENT_LENGTH 320
    

    #define CONN_INTERVAL_MIN               (uint16_t)(MSEC_TO_UNITS(7.5, UNIT_1_25_MS))    /**< Minimum acceptable connection interval, in 1.25 ms units. */
    #define CONN_INTERVAL_MAX               (uint16_t)(MSEC_TO_UNITS(500, UNIT_1_25_MS))    /**< Maximum acceptable connection interval, in 1.25 ms units. */
    #define CONN_SUP_TIMEOUT                (uint16_t)(MSEC_TO_UNITS(4000,  UNIT_10_MS))    /**< Connection supervisory timeout (4 seconds). */
    #define SLAVE_LATENCY                   0                                               /**< Slave latency. */
    

    define symbol __ICFEDIT_region_RAM_start__   = 0x20003128;
    define symbol __ICFEDIT_region_RAM_end__     = 0x2000ffff;
    
    

    Still experimenting ..

Children
No Data
Related