BLE AD CAN'T BE CONNECTED ON NRF52810 THAT ENABLE BLE AND ANT+ ON S312

I am using the S312 protocol stack on nrf52810, with both BLE and ANT+enabled, to transmit heart rate. It can be used on most devices, but it is difficult to connect to 'wahoo elemnt bolt' when using BLE: connection timeout. I am using a broadcast interval of 300 * 0.625. What could be the possible reason? thank。

this is my ble config

Parents
  • Hi, 

    It can be used on most devices, but it is difficult to connect to 'wahoo elemnt bolt' when using BLE: connection timeout.

    It seems the BLE connection timeout issue only happens while connecting to the 'wahoo elemnt bolt'. Maybe the central device (Wahoo BOLT) may have a timeout window too short to catch advertisements at 187.5 ms(your broadcast interval of 300 * 0.625), so the Wahoo BOLT may expect more frequent advertisements to quickly find and initiate connection with peripherals (especially fitness sensors). Then, you could try to set adv_interval to 25 ms as our example (nRF5_SDK\examples\multiprotocol\ble_ant_app_hrm)

    You can use nRF Sniffer or a BLE packet sniffer to confirm if the advertisements are being sent and how frequently. Also, check if the Wahoo BOLT connects easily to other commercial HR monitors – if yes, compare their advertisement intervals and payload content.

    Regards, 
    Amanda H. 

  • Thank you for your reply. There is a key issue. When I turn off ANT+, ble always connects successfully,

    void ant_profile_setup(void)
    {
    	//return ;
    	ret_code_t err_code;
    	const uint16_t device_info_num = (uint16_t)GetDeviceUUID();
    	*HRM_SENS_CHANNEL_CONFIG(m_ant_hrm).device_number = device_info_num;
    
    	err_code = ant_hrm_sens_init(&m_ant_hrm,
    				HRM_SENS_CHANNEL_CONFIG(m_ant_hrm),
    				HRM_SENS_PROFILE_CONFIG(m_ant_hrm));
    	APP_ERROR_CHECK(err_code);
    
    	err_code = sd_ant_channel_radio_tx_power_set(m_ant_hrm.channel_number,
    		RADIO_TX_POWER_LVL_1, 0);
    	APP_ERROR_CHECK(err_code);
    
    	m_ant_hrm.HRM_PROFILE_manuf_id = g_fstorage_para_t.manufacturer_ID;
    	m_ant_hrm.HRM_PROFILE_serial_num = device_info_num;
    	m_ant_hrm.HRM_PROFILE_hw_version = HRM_HW_VERSION;
    	m_ant_hrm.HRM_PROFILE_sw_version = HRM_SW_VERSION;
    	m_ant_hrm.HRM_PROFILE_model_num = HRM_MODEL_NUMBER;
    	err_code = ant_hrm_sens_open(&m_ant_hrm);
    	APP_ERROR_CHECK(err_code);
    
    }

    If this function is not executed, the ble connection will succeed

Reply Children
No Data
Related