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

Unstable timeslot with esb and ble concurrently

Hi,

I've just got the example running with one DK as ble peripheral and ESB at the same time uing the timeslot API and one DK as only ESB receiver. I can communicate fine between all elements (ble master is a laptop). But if I just keep the timeslot DK running with BLE in advertising mode restarting each 10 seconds (blinking LED) and check the start and end of the timeslot for the ESB stuff with a GPIO toggle I can see sporadic (each 5 minutes) a crash of the timeslot (stays HIGH for 10 seconds). What could be the reason since nothing is sending or receiving either on ESB or BLE.

If I hit the pause button of GDB in eclipse I pause at

Thread #1 57005 (Suspended : Signal : SIGTRAP:Trace/breakpoint trap) 0x12402 0x12400

But then without a reset it returns to normal operation. Any idea?

Parents
  • I restart with:

    uint32_t err_code;
    
    switch (ble_adv_evt)
    {
        case BLE_ADV_EVT_FAST:
        	NRF_LOG_INFO("Fast advertising\r\n");
            err_code = bsp_indication_set(BSP_INDICATE_ADVERTISING);
            APP_ERROR_CHECK(err_code);
            break;
        case BLE_ADV_EVT_IDLE:
        	//sleep_mode_enter();
        	// Re-start advertising
        	err_code = ble_advertising_start(BLE_ADV_MODE_FAST);
            break;
        default:
            break;
    }
    

    Because if I send the softdevice to sleep mode both BLE and ESB are dying. That's why I keep the BLE advertising. And after approximiately 5 mins the timeslot is not assigned for 10 seconds and it restarts without a reset. I've checked the reset line with an osci, or it has to be a software reset, but the BLE LED keeps on blinking during these 10 seconds. So from my impression the timeslot is not that stable in my implementation or it has to be something more general.

Reply
  • I restart with:

    uint32_t err_code;
    
    switch (ble_adv_evt)
    {
        case BLE_ADV_EVT_FAST:
        	NRF_LOG_INFO("Fast advertising\r\n");
            err_code = bsp_indication_set(BSP_INDICATE_ADVERTISING);
            APP_ERROR_CHECK(err_code);
            break;
        case BLE_ADV_EVT_IDLE:
        	//sleep_mode_enter();
        	// Re-start advertising
        	err_code = ble_advertising_start(BLE_ADV_MODE_FAST);
            break;
        default:
            break;
    }
    

    Because if I send the softdevice to sleep mode both BLE and ESB are dying. That's why I keep the BLE advertising. And after approximiately 5 mins the timeslot is not assigned for 10 seconds and it restarts without a reset. I've checked the reset line with an osci, or it has to be a software reset, but the BLE LED keeps on blinking during these 10 seconds. So from my impression the timeslot is not that stable in my implementation or it has to be something more general.

Children
No Data
Related