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

Multiple Advertisements Using the Timeslot API

Hello,

I am currently designing a project that will advertise as two different beacons simultaneously using the Timeslot API. I have successfully implemented the nRF51-multi-role-conn-observer-advertiser example on GitHub and by using the nRF Master Control Panel application on android I can successfully see both advertisements. The problem is that I am noticing some irregularities in the waveform when I run the Timeslot advertisement alongside the SoftDevice advertisement. If i make the call to sd_ble_gap_adv_start() by itself I get an ideal waveform and if I make the call to btle_hci_adv_enable(BTLE_ADV_ENABLE) by itself I again get the ideal waveform. If I make both calls together, I get the irregularity. I have attached a screen capture from my oscilloscope to show the irregularity.

image description

I have set up my Timeslot advertisement to advertise at a rate of 100ms and my SoftDevice to advertise at a rate of 1285ms

static void timeslot_advertiser_init(void)
{
btle_cmd_param_le_write_advertising_parameters_t adv_params;

/* we use software interrupt 1 */
btle_hci_adv_init(SWI1_IRQn);

/* BLE on-air address */
static ble_gap_addr_t ble_addr;

uint32_t err_code = sd_ble_gap_address_get(&ble_addr);
   APP_ERROR_CHECK(err_code);


memcpy((void*) &adv_params.direct_address[0], (void*) &ble_addr.addr[0], BTLE_DEVICE_ADDRESS__SIZE);

/* want to maximize potential scan requests */
adv_params.channel_map = BTLE_CHANNEL_MAP_ALL;
adv_params.direct_address_type = BTLE_ADDR_TYPE_RANDOM;
adv_params.filter_policy = BTLE_ADV_FILTER_ALLOW_ANY;
adv_params.interval_min = BLE_ADV_INTERVAL_100MS;
adv_params.interval_max = BLE_ADV_INTERVAL_105MS;

adv_params.own_address_type = BTLE_ADDR_TYPE_RANDOM;

/* Only want non-connectable requests */
adv_params.type = BTLE_ADV_TYPE_NONCONN_IND;

btle_hci_adv_params_set(&adv_params);
}

The waveform irregularity appears to occur about once every second.I am having difficulty understanding where this irregularity comes from and how to remove it. Any help you could provide would be greatly appreciated.

I am using the S110 SoftDevice version 7.1.0 and SDK 7.2.0

Thank You,

Cory

Parents
  • I'm not sure what it is that you are seeing as irregularities. In the screen shot above it seems like the radio is advertising on three channels four times within a short time frame. Is this what you have in mind or am I missing something?

  • So this occurs only if you use timeslot advertisements with 100 ms or less intervals? If you set it to more than 100 ms you don't see the 4 advertisements? The maximum timeslot length will depend on your BLE link/advertisement. If you have shorter time between each Softdevice advertisement, you timeslot will be shorter as well to fit in between them. You say this occurs about once a second. How are they placed in time compared to the regular softdevice advertisements? Are they regular right in front/after the softdevice?

    You can a timeslot of 940 ms, so you should get 9 time slot advertisements inside that frame, do you see this and is it just one of them that are behaving differently?

Reply
  • So this occurs only if you use timeslot advertisements with 100 ms or less intervals? If you set it to more than 100 ms you don't see the 4 advertisements? The maximum timeslot length will depend on your BLE link/advertisement. If you have shorter time between each Softdevice advertisement, you timeslot will be shorter as well to fit in between them. You say this occurs about once a second. How are they placed in time compared to the regular softdevice advertisements? Are they regular right in front/after the softdevice?

    You can a timeslot of 940 ms, so you should get 9 time slot advertisements inside that frame, do you see this and is it just one of them that are behaving differently?

Children
No Data
Related