This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Configuring Advertising Events

I am using a custom advertising interval of 950ms to 1050ms to advertise about once per second. Through a bit of testing I've been able to determine that only 3 advertisement packets are sent. My questions are:

  1. Can I increase the number of advertisement packets sent?
  2. Can I control the sequence of the channels selected to advertise?

I am using a CC2451 SensorTag for development.

  • Hello Daniel,

    Do you mean that there is only 3 events occurring (stop advertising after 3 seconds)?

    The controller will start to send at the lowest channel (i.e. 37=2402MHz) and then continue with 38(2426 MHz) and 39 (2480 MHz) if they are all enabled. These three are the only channels you can transmit advertisement messages on.

  • Eirik,

    Thanks for the information about the sequence of advertisements!

    To use the terminology as the Bluetooth standard its 3 advertisements (one on each channel) in one Event. I would like to send more advertisements after the one event. Such as doing 3 events (9 advertisements) every 3 seconds. I've already got the "every 3 seconds" part done.

    Here's the definition from BLUETOOTH SPECIFICATION Version 4.0 [Vol 6], page 58:

    Each advertising event is composed of one or more advertising PDUs sent on
    used advertising channel indexes. The advertising event shall be closed after
    one advertising PDU has been sent on each of the used advertising channel
    indexes (see Section 4.4.2.1) or the advertiser may close an advertising event
    earlier to accommodate other functionality.

  • Hello Daniel,

    You cannot configure the BLE stack to send 9 packets back2back in an advertisement event. But you can change the advertisement interval while your application run. If you set up a callback with the following function call:

    HCI_EXT_AdvEventNoticeCmd( uint8 taskID, uint16 taskEvent );

    You can for example set the interval to 100 ms (that is minimum allowed interval if you are sending non-connectable advertisement packets) and let the stack "run through" 3 events and then set the advertisement interval back to 3 seconds. Then your application will send 9 packets relatively rapidly (3 packets -|- 100 ms delay -|- 3 packets -|-100 ms.-|- 3 packets -|-3 seconds .....).