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

SDK15.2 Bluetooth core protocol version

hi engineer:
    I use the software version: SDK15.2; the hardware IC is nRF52832; the protocol stack is s132_nrf52_6.1.0_softdevice; when I add "init.advdata.p_manuf_specific_data" in the ble_uart routine advertising_init(void) function, the mobile terminal's nRF_connect shows the Bluetooth core 4.1 ;

Please tell me how can I use Bluetooth Core Protocol 5.0 on nRF52832?

Thank you.

  • Hi Edvin

    As you said, nRF52832: Supports High speed and increased packet size.

    Please help me how to increase the size of the software package? And how can I see the new features of Bluetooth 5.0?

    Best regards,

  • Try the ble_app_uart example. This will by default ask for increased BLE packet size (MTU of 247). Whether or not this is actually accepted depends on what you are connecting to. You can also try to request 2MBPS PHY in the BLE_GAP_EVT_CONNECTED event.

    // Add this to the ble_evt_handler->BLE_GAP_EVT_CONNECTED event in the ble_app_uart example in SDK15.2.0:
    
            case BLE_GAP_EVT_CONNECTED:
                NRF_LOG_INFO("Connected");
                err_code = bsp_indication_set(BSP_INDICATE_CONNECTED);
                APP_ERROR_CHECK(err_code);
                m_conn_handle = p_ble_evt->evt.gap_evt.conn_handle;
                err_code = nrf_ble_qwr_conn_handle_assign(&m_qwr, m_conn_handle);
                APP_ERROR_CHECK(err_code);
            
                ble_gap_phys_t const phys_update = 
                {
                    .rx_phys = BLE_GAP_PHY_2MBPS,
                    .tx_phys = BLE_GAP_PHY_2MBPS
                };
                err_code = sd_ble_gap_phy_update(p_ble_evt->evt.gap_evt.conn_handle, &phys_update);
                APP_ERROR_CHECK(err_code);
                break;
                
                
    // and add this event in the ble_evt_handler as well:
            case BLE_GAP_EVT_PHY_UPDATE:
            {
                uint8_t status = p_ble_evt->evt.gap_evt.params.phy_update.status;
                uint8_t rx_phy = p_ble_evt->evt.gap_evt.params.phy_update.rx_phy;
                uint8_t tx_phy = p_ble_evt->evt.gap_evt.params.phy_update.tx_phy;
                NRF_LOG_DEBUG("PHY updated. Return status: %d", status);
                NRF_LOG_INFO("rx = %d, tx = %d (2 = 2MBPS)", rx_phy, tx_phy);
            }
            break;

    Then look in the log (RTT, not UART) for the PHY_UPDATED logging.

    Best regards,

    Edvin

  • Ok, Thank you very much for your help, which makes me have a deeper understanding of Bluetooth 5.0.

    Best regards,

Related