Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

"Fast Advertising", "Slow Advertising", and indefinite advertising.

Is there any actual difference between "Fast Advertising", and "Slow Advertising" - or is it just a way to easily specify two different sets of timing parameters?

The question has been asked before; eg,

https://devzone.nordicsemi.com/f/nordic-q-a/16843/slow-fast-advertising

https://devzone.nordicsemi.com/f/nordic-q-a/12165/fast-advertising-and-slow-advertising (documentation link broken)

https://devzone.nordicsemi.com/f/nordic-q-a/8502/fast-vs-slow-advertising-where-is-the-border-between

But I don't see an answer to that question.

Also, how to specify indefinite advertising; ie, with no timeout?

Various threads have suggested that a timeout of zero should do it:

https://devzone.nordicsemi.com/f/nordic-q-a/7344/infinite-slow-adversiting

https://devzone.nordicsemi.com/f/nordic-q-a/7320/infinite-advertising-with-sd-8-0-0

But I can't see anything in any documentation which actually states that this is so.

Current (15.3.0) online Documentation: https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v15.3.0/lib_ble_advertising.html

  • As far as I know it's just a convenient feature. I actually extended that to support a "super slow" advertising interval after the slow advertising times out. I don't think it is a Bluetooth spec feature or anything like that.

    With regards to the timeout value, you can find the documentation here.

  • As far as I know it's just a convenient featur

    Yes, that does seem to be the case.

    It would be good to have an explicit statement - especially as it's used in the context of Directed advertising - which is something different.

    I've also seen it suggested that slow advertising is "low power" - but unclear if that's purely because it is slow, or if there are other "special measures" to make it so ...

    With regards to the timeout value, you can find the documentation here

    Thanks.

    But I can't see that mentioned or linked anywhere in the documentation of the slow or fast advertising parameters?

  • But I can't see that mentioned or linked anywhere in the documentation of the slow or fast advertising parameters?

    Yeah I don't think it's linked anywhere.

    I've also seen it suggested that slow advertising is "low power" - but unclear if that's purely because it is slow

    I think so, it's purely because it's slow.

  • I don't think it's linked anywhere

    I eventually found this - in ble_gap.h:

    /**@brief GAP advertising parameters. */
    typedef struct
    {
      :
      :
      uint16_t                 duration;                /**< Advertising duration in 10 ms units. When timeout is reached,
                                                             an event of type @ref BLE_GAP_EVT_ADV_SET_TERMINATED is raised.
                                                             @sa BLE_GAP_ADV_TIMEOUT_VALUES.
                                                             @note The SoftDevice will always complete at least one advertising
                                                                   event even if the duration is set too low. */
    

    The SES 'Find in Project' doesn't work on on that Doxygen cross-reference to BLE_GAP_ADV_TIMEOUT_VALUES, but some raw text searching does eventually get to:

    /**@defgroup BLE_GAP_ADV_TIMEOUT_VALUES GAP Advertising timeout values in 10 ms units
     * @{ */
    #define BLE_GAP_ADV_TIMEOUT_HIGH_DUTY_MAX     (128)   /**< Maximum high duty advertising time in 10 ms units. Corresponds to 1.28 s. */
    #define BLE_GAP_ADV_TIMEOUT_LIMITED_MAX       (18000) /**< Maximum advertising time in 10 ms units corresponding to TGAP(lim_adv_timeout) = 180 s in limited discoverable mode. */
    #define BLE_GAP_ADV_TIMEOUT_GENERAL_UNLIMITED (0)     /**< Unlimited advertising in general discoverable mode.
                                                               For high duty cycle advertising, this corresponds to @ref BLE_GAP_ADV_TIMEOUT_HIGH_DUTY_MAX. */
    /**@} */
    

  • Yes, that's actually how I found the documentation I linked above, but that's already in the GAP header file. I don't think there's any information about the timeouts in the header file of the advertising module.

Related