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

Hi, Do the S140 version 6.1.1 SoftDevice does have full support for S=2(500 kbps) ?

if yes how can i choose between S=2 and S=8, where the change should take place, at the advertising init ?

Parents
  • Hi.

    SoftDevice S140 version 6.1.0 is able to receive at 125 kbps (S=8) and 500 kbps (S=2). But it can only transmit at 125 kbps (S=8).

    These rates are fixed, you only have to set your scanning or advertising phys to BLE_GAP_PHY_CODED,

    Like this in nRF5_SDK_15.2.0_9412b96\examples\ble_peripheral\ble_app_blinky\main.c :

    Line 256:
    adv_params.primary_phy     = BLE_GAP_PHY_1MBPS;
    
    Change this line to:
    
    adv_params.primary_phy     = BLE_GAP_PHY_CODED;

    For scanning, you should for example in nRF5_SDK_15.2.0_9412b96\examples\ble_central\ble_app_gatts\, edit scan_phys in m_scan_param in main.c

    FROM THIS:
    
    /**< Scan parameters requested for scanning and connection. */
    static ble_gap_scan_params_t const m_scan_param =
    {
        .active        = 0x01,
        .interval      = NRF_BLE_SCAN_SCAN_INTERVAL,
        .window        = NRF_BLE_SCAN_SCAN_WINDOW,
        .filter_policy = BLE_GAP_SCAN_FP_WHITELIST,
        .timeout       = SCAN_DURATION_WITELIST,
        .scan_phys     = BLE_GAP_PHY_1MBPS,
    };
    
    TO THIS:
    
    /**< Scan parameters requested for scanning and connection. */
    static ble_gap_scan_params_t const m_scan_param =
    {
        .active        = 0x01,
        .interval      = NRF_BLE_SCAN_SCAN_INTERVAL,
        .window        = NRF_BLE_SCAN_SCAN_WINDOW,
        .filter_policy = BLE_GAP_SCAN_FP_WHITELIST,
        .timeout       = SCAN_DURATION_WITELIST,
        .scan_phys     = BLE_GAP_PHY_CODED,
    };

    Best regards,

    Andreas

  • Hi AndreasF , the ble central change worked , but the the ble peripheral didn't.

    the change in ble app blinky causes the sd_ble_gap_adv_set_configure() function to return error code 7 , think it is a NRF_ERROR_INVALID_PARAM

    what should i change also to make this works for the central and the peripheral ?

  • Hi.

    What do you have in your ble_gap_adv_data_t and ble_gap_adv_params_t structs?

    Do you use a whitelist?

    NRF_ERROR_INVALID_PARAM occurs when a invalid parameter is supplied to the function call:

     * @retval ::NRF_ERROR_INVALID_PARAM                   Invalid parameter(s) supplied:
     *                                                      - Invalid advertising data configuration specified. See @ref ble_gap_adv_data_t.
     *                                                      - Invalid configuration of p_adv_params. See @ref ble_gap_adv_params_t.
     *                                                      - Use of whitelist requested but whitelist has not been set,
     *                                                        see @ref sd_ble_gap_whitelist_set.

    Best regards,

    Andreas

Reply
  • Hi.

    What do you have in your ble_gap_adv_data_t and ble_gap_adv_params_t structs?

    Do you use a whitelist?

    NRF_ERROR_INVALID_PARAM occurs when a invalid parameter is supplied to the function call:

     * @retval ::NRF_ERROR_INVALID_PARAM                   Invalid parameter(s) supplied:
     *                                                      - Invalid advertising data configuration specified. See @ref ble_gap_adv_data_t.
     *                                                      - Invalid configuration of p_adv_params. See @ref ble_gap_adv_params_t.
     *                                                      - Use of whitelist requested but whitelist has not been set,
     *                                                        see @ref sd_ble_gap_whitelist_set.

    Best regards,

    Andreas

Children
Related