-
Notifications
You must be signed in to change notification settings - Fork 8.2k
samples: Bluetooth: Broadcast multiple legacy and extended advertising #94304
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
samples: Bluetooth: Broadcast multiple legacy and extended advertising #94304
Conversation
771caba to
7afe802
Compare
4819544 to
394c10b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 26 out of 26 changed files in this pull request and generated 2 comments.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| const struct adv_param_config { | ||
| uint32_t options; | ||
| const struct bt_data *ad; | ||
| size_t ad_size; | ||
| } param_config[] = { |
Copilot
AI
Oct 11, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] The struct adv_param_config is defined inside the function scope and used locally. Consider moving this struct definition outside the function or to a header file to improve code organization and potential reusability.
| * configured, and 1 advertising set is calculating the aux_offset, 2 other advertising sets and 2 | ||
| * scanning instances can expire changing the ticks_current value while we are querying for | ||
| * aux_offset value. | ||
| */ |
Copilot
AI
Oct 11, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The magic number 2U in the macro definition lacks explanation. Consider adding a comment to explain what this number represents (e.g., '2 scanning instances' as mentioned in the comment above).
| */ | |
| */ | |
| /* 2U represents the maximum number of scanning instances that can expire and change ticks_current. */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove overlay from name, overlay terminology is for DT (I know there are other files named that way, but it's wrong).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is followed across the net, drivers and bluetooth subsystem... and KConfig settings too refer to applications can have SoC overlay configuration that is applied to it or phrase like overlay configuration files here: https://docs.zephyrproject.org/latest/build/kconfig/setting.html
Hence, outside the scope of this PR. You may request a github issue to update rest of the repository and Kconfig settings documentation with a suitable proposal.
427feb4 to
f815c12
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rename this file to bt_ll_sw_split.conf
cc @nordicjm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rename this file to bt_ll_sw_split.conf
cc @nordicjm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rename this file to bt_ll_sw_split-all.conf
cc @nordicjm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rename this file to bt_ll_sw_split-all.conf
cc @nordicjm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rename this file to bt_ll_sw_split.conf
cc @nordicjm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 26 out of 26 changed files in this pull request and generated 2 comments.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| /* Use advertising set instance index as SID */ | ||
| adv_param.sid = index; | ||
|
|
||
| /* Advertising set options, AD and AD array size */ |
Copilot
AI
Oct 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using modulo operation to cycle through configurations could be confusing when CONFIG_BT_EXT_ADV_MAX_ADV_SET is not a multiple of param_config array size. Consider adding a comment explaining this behavior or bounds checking.
| /* Advertising set options, AD and AD array size */ | |
| /* Advertising set options, AD and AD array size */ | |
| /* | |
| * Cycle through param_config using modulo operation. | |
| * If CONFIG_BT_EXT_ADV_MAX_ADV_SET is greater than ARRAY_SIZE(param_config), | |
| * configurations will repeat for additional advertising sets. | |
| * This is intentional; update param_config or CONFIG_BT_EXT_ADV_MAX_ADV_SET | |
| * if a one-to-one mapping is required. | |
| */ |
| LL_ASSERT_MSG((ticks_elapsed <= ticks_to_start), "%s overhead = %u (%u) us.", | ||
| __func__, HAL_TICKER_TICKS_TO_US(ticks_elapsed), | ||
| HAL_TICKER_TICKS_TO_US(ticks_to_start)); |
Copilot
AI
Oct 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The assertion message format string expects 3 arguments but only provides 2 after %s. This will cause undefined behavior in the assertion message formatting.
f815c12 to
56d6b00
Compare
Enable similar Controller Kconfig features between nRF52 and nRF5340 BabbleSIM LE Audio testing. Signed-off-by: Vinayak Kariappa Chettimada <[email protected]>
Tune the aux offset calculation overhead assertion to use EVENT_OVERHEAD_START_US; this is the correct maximum overhead causing ISR latency for start of a radio event that occurs thereafter. Signed-off-by: Vinayak Kariappa Chettimada <[email protected]>
Update broadcaster_multiple sample to start multiple advertising sets of type legacy and extended advertising. Signed-off-by: Vinayak Kariappa Chettimada <[email protected]>
Move Zephyr Controller Kconfigs to overlay file. Signed-off-by: Vinayak Kariappa Chettimada <[email protected]>
Move harness and tags to common section for observer and broadcaster_multiple samples. Signed-off-by: Vinayak Kariappa Chettimada <[email protected]>
Do not use the BT_ prefix for definitions not provided by the Bluetooth subsystem. Signed-off-by: Vinayak Kariappa Chettimada <[email protected]>
56d6b00 to
1209301
Compare
|



Update broadcaster_multiple sample to start multiple advertising sets of type legacy and extended advertising.
How they appear on-air (BabbleSim import), for 4 advertising sets:
