Hallo,
currently I test several options in regarding the use of advertising. I have a few nRF52840-DK and use Zephyr 2.7-99 and ncs. I have a question regarding combined use of extended advertising and "simple" advertising.
I create an advertising set with bt_le_ext_adv_create(..). Than, I set my transmit data with bt_le_ext_adv_set_data(..), start extended advertising with bt_le_ext_adv_start(..) and stop it after a few transmits with bt_le_ext_adv_stop(..). After a while I do the cycle bt_le_ext_adv_set_data(..) - bt_le_ext_adv_start(..) - bt_le_ext_adv_stop(..) again, and so on. This runs well, no problems. Now I want to use the pause between this cycles to start a simple advertising with bt_le_adv_start(..). Here I saw an error (-12 - not enough memory). I found that I have to delete the advertising set with bt_le_ext_adv_delete(..).
I wonder why I see such a behaviour. It's quite clear that I can't have two different advertising schemes running at the same time. But my extended advertising doesn't run, it is stopped. The advertising set is in my mind just a "collection" of parameters regarding the extended advertising, which is stored in the memory. Furthermore, as far as I understood the functions, I can have a number of advertising sets and pick up one of them when starting extended advertising. So the stack should be able to handle several advertising sets. But why can I not start a simple advertising, when an advertising set exists? The set isn't touched, and the simple advertising doesn't need one.
Kind regards
Axel