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

SDK15 long advertising and long range connect

Hello all,

    I used SDK15 and nRF52840 DK made a long range advertising and long range connected.

    I modified the ble_app_uart_c and ble_app_uart example, the long range advertising I modified is ok(the smartphone nRF connect is can't scan this device), and the ble_app_uart_c is modified ok(the central is scan this device ok).

    I modified the long range connect found in SDK14.2 I used 

    ble_opt_t  opts;

    opts.gap_opt.preferred_phys.tx_phys = BLE_GAP_PHY_CODED;

    opts.gap_opt.preferred_phys.rx_phys = BLE_GAP_PHY_CODED;

    sd_ble_opt_set(BLE_GAP_OPT_PREFERRED_PHYS_SET, &opts);

    I found the SDK15 has not this set.

    And in SDK15, the central and peripheral connected , and central call the sd_ble_gap_phy_update(m_conn_handle, &phy_request_params)(In SDK14.2 is sd_ble_gap_phy_request); to update the params, but the peripheral is not received the BLE_GAP_EVT_PHY_UPDATE or BLE_GAP_EVT_PHY_UPDATE_REQUEST.  in contrast, peripheral call this function ,central also not receive this event.  But central call this function themself is enter the BLE_GAP_EVT_PHY_UPDATE function. If peripheral call this function themself is enter the BLE_GAP_EVT_PHY_UPDATE function too, and in this BLE_GAP_EVT_PHY_UPDATE case printf the phys is -4(BLE_GAP_PHY_CODED), update success ?  But I used SEGGER  Embedded studio debug watch the Radio register, the MODE register is always 0 (always 1Mbps)

    So I have some question,

    1. How to achieve long range connected?

    2. I used long range advertising (BLE_GAP_PHY_CODED)  I want to know the send connect request(ble_app_uart_c) is used 1Mbps or 125kbps ?Whether could I modified the send connect request used physical channel?

    3.Except used SEGGER  Embedded studio debug to watch the Radio register whether I could used software printf this register to see the value?

    4. Call the sd_ble_gap_phy_update() is modified the physical channel is for themself or Both sides?

    5. I see the central is could receice the extend advertising but the peripheral is always adv length limited?(or not used ble_advertising.c used softdevice function)

Best Regards,

Tina

    

Parents
  • Hello Vidar Beg, 

    I downloaded the example and flashed it on two SDK boards. The example is working properly.

    In the second step, I provided the Central with the new 6.1.0 stack. The connection to the peripheral is still possible.

    Then I also wanted to adjust the stack for the peripheral. The project can also be compiled and flashed.

    The peripheral also starts advertising.

    However, no connection is established to the central, where is the problem?

    Many Thanks

Reply
  • Hello Vidar Beg, 

    I downloaded the example and flashed it on two SDK boards. The example is working properly.

    In the second step, I provided the Central with the new 6.1.0 stack. The connection to the peripheral is still possible.

    Then I also wanted to adjust the stack for the peripheral. The project can also be compiled and flashed.

    The peripheral also starts advertising.

    However, no connection is established to the central, where is the problem?

    Many Thanks

Children
Related