-
Notifications
You must be signed in to change notification settings - Fork 1.4k
samples: esb: add sample showing PRX concurrent operation with BLE #25625
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?
Conversation
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
This PR adds a new sample demonstrating concurrent operation of ESB (Enhanced ShockBurst) protocol in PRX (receiver) mode alongside Bluetooth LE. The sample integrates the ESB radio receiver with the LED Button Service (LBS) to showcase multiprotocol operation using MPSL timeslot mechanisms.
Key Changes:
- Adds a new esb_prx_ble sample that combines ESB receiver functionality with BLE LBS service
- Implements multiprotocol radio time sharing through MPSL timeslot configuration
- Includes board-specific configurations for nRF52, nRF53, and nRF54 series devices
Reviewed Changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| sysbuild.cmake | Configures empty app core for nRF5340 dual-core architecture |
| src/main.c | Main application implementing ESB PRX with concurrent BLE LBS service |
| sample.yaml | Test configuration for supported development kits |
| prj.conf | Project configuration enabling ESB, BLE, and MPSL timeslot features |
| boards/*.conf | Board-specific DPPI driver configurations for nRF54 series |
| boards/*.overlay | Device tree overlay for nRF54H20DK GPIO and peripheral configuration |
| README.rst | Documentation covering sample overview, requirements, and testing procedures |
| Kconfig | Configuration menu for ESB PRX sample logging |
| CMakeLists.txt | Build configuration for the sample |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
CI InformationTo view the history of this post, click the 'edited' button above Inputs:Sources:sdk-nrf: PR head: aba9e7080fd9c758ff3bfe30980c483850571da8 more detailssdk-nrf:
Github labels
List of changed files detected by CI (16)Outputs:ToolchainVersion: df3cc9d822 Test Spec & Results: ✅ Success; ❌ Failure; 🟠 Queued; 🟡 Progress; ◻️ Skipped;
|
|
Do the fixes suggested by Copilot and add a changelog entry. |
| #include <hal/nrf_lrcconf.h> | ||
| #endif | ||
| #include <nrf_erratas.h> | ||
| #if NRF54L_ERRATA_20_PRESENT |
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.
I assume this is a define? #if defined(?
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.
NRF54L_ERRATA_20_PRESENT can be defined as 1 or 0.
fa8a813 to
651511b
Compare
doc/nrf/releases_and_maturity/releases/release-notes-changelog.rst
Outdated
Show resolved
Hide resolved
651511b to
2b45e2e
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 13 out of 13 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
2b45e2e to
919509b
Compare
919509b to
c0c6afa
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 15 out of 15 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| int err; | ||
|
|
||
| while ((err = esb_read_rx_payload(&rx_payload)) == 0) { |
Copilot
AI
Nov 19, 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.
Variable declaration inside a case block without braces can lead to scope issues. Wrap the ESB_EVENT_RX_RECEIVED case in braces to properly scope the 'err' variable and improve code clarity.
samples/esb/esb_prx_ble/README.rst
Outdated
| Testing LBS service | ||
| ------------------- | ||
|
|
||
| To test the Bluetooth LE LBS service functionality, follow the testing procedure described in the Testing section of the :ref:`peripheral_lbs_testing` sample documentation. |
Copilot
AI
Nov 19, 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 reference ':ref:peripheral_lbs_testing' appears incorrect. Based on common NCS documentation patterns, this should likely be ':ref:peripheral_lbs' (without '_testing' suffix) to properly link to the Peripheral LBS sample documentation.
| To test the Bluetooth LE LBS service functionality, follow the testing procedure described in the Testing section of the :ref:`peripheral_lbs_testing` sample documentation. | |
| To test the Bluetooth LE LBS service functionality, follow the testing procedure described in the Testing section of the :ref:`peripheral_lbs` sample documentation. |
c0c6afa to
e32c6ee
Compare
This sample showcases how to use the ESB protocol concurrently with Bluetooth. It runs the ESB radio in PRX (receiver) mode while simultaneously enabling the BLE LBS (LED Button Service). Ref: NCSDK-35772 Signed-off-by: Marcin Jelinski <[email protected]>
e32c6ee to
aba9e70
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 16 out of 16 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| case ESB_EVENT_TX_FAILED: | ||
| LOG_DBG("TX FAILED EVENT"); | ||
| break; | ||
| case ESB_EVENT_RX_RECEIVED: |
Copilot
AI
Nov 19, 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.
Variable declaration should be placed at the beginning of the scope or block, not after a case label. Move the int err; declaration before the switch statement or to the beginning of the function to comply with C standards and improve code maintainability.
| LOG_DBG("TX FAILED EVENT"); | ||
| break; | ||
| case ESB_EVENT_RX_RECEIVED: | ||
| int err; |
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 Copilot is right, either move it to the top, or scope the case in braces {}.
This sample showcases how to use the ESB protocol concurrently with Bluetooth.
It runs the ESB radio in PRX (receiver) mode while simultaneously enabling the BLE LBS (LED Button Service).