Can I copy the ESB code from SDK v3.3.0-preview3 into SDK v2.9.0, and then get the functionality in esb_ptx_ble & esb_prx_ble?
Is there any way to achieve it quickly?
Can I copy the ESB code from SDK v3.3.0-preview3 into SDK v2.9.0, and then get the functionality in esb_ptx_ble & esb_prx_ble?
Is there any way to achieve it quickly?
Hello,
Not sure I understand what problem you are trying to solve here, there should be ESB example projects for the nRF52840 in both the nRF Connect SDK releases you are referring to.
Can I copy the ESB code from SDK v3.3.0-preview3 into SDK v2.9.0, and then get the functionality in esb_ptx_ble & esb_prx_ble?
There may be some api changes, but for most part I would expect it should be pretty straight forward possible yes.
Kenneth
Hello,
Using nRF Connect SDK v3.3.0, one device runs esb_ptx_ble and broadcasts 2 packets of data every 5-10ms, with 15 devices running esb_prx_ble,esb rx interval 7300ms,rx window 15ms, 30 seconds is a receiving cycle, and failure to receive a packet of data within the cycle is considered a failure; After running 15 devices for a few days, occasionally one device experiences dozens of consecutive cycles without receiving data. Why is that?
Hi
Yes, my code already includes this PR(subsys: esb: improve resource cleanup on init error paths by maje-emb · Pull Request #29998 · nrfconnect/sdk-nrf). You can check my previous replies, which include error logs and nRF52840DK code.


Best regards,
Leo
Hello Leo,
I am sorry about the late reply.
Will I be able to reproduce the issue that you are seeing using 2x nRF52840 DKs? If so, should they both be programmed with your esb_prx_ble_test.zip? Or is it one with this and one with the standard esb_ptx_ble sample from NCS v3.3.0?
Is there anything that I need to do (button press, sending UART/CLI command, or something)?
Best regards,
Edvin
Hi Edvin,
Yes, However, this firmware will not keep producing errors; no button, UART, or CLI operation is required.
The key issue is that the ESB is not submitting "ESB_EVENT_TIMESLOT_FAILED" or "ESB_EVENT_FATAL_ERROR" to the application layer. If this logic were implemented, the application layer could reset the MCU.
Best regards,
Leo
Leo Mo said:Yes, However, this firmware will not keep producing errors; no button, UART, or CLI operation is required.
I am confused. So what do you want me to do?
BR,
Edvin
Hi Edvin,
Sorry, Using these codes(esb_prx_ble_central_peripheral.zip, nRF Connect SDK v3.3.0/v3.4.0) will make it easier to trigger this issue.
1. prj.conf for Peripheral(nRF52840DK).
2. prj_central.conf for Cnetral(nRF52840DK).
3. Place two 52840DKs together, ensuring RSSI >= -40. Central will scan the Peripheral and connect.
4. After a successful connection, the two devices will send data to each other through the NUS service and open the ESB (esb_start_rx).
5. Using J-Link RTT View to view the logs, it may take several hours for this issue to occur. The logs are as follows:
[06:01:52.518,341] <err> esb: gppi_channel_alloc failed with: -12 [06:01:52.518,371] <err> esb: Failed to initialize PPI
Best regards,
Leo
Hi Edvin,
Sorry, Using these codes(esb_prx_ble_central_peripheral.zip, nRF Connect SDK v3.3.0/v3.4.0) will make it easier to trigger this issue.
1. prj.conf for Peripheral(nRF52840DK).
2. prj_central.conf for Cnetral(nRF52840DK).
3. Place two 52840DKs together, ensuring RSSI >= -40. Central will scan the Peripheral and connect.
4. After a successful connection, the two devices will send data to each other through the NUS service and open the ESB (esb_start_rx).
5. Using J-Link RTT View to view the logs, it may take several hours for this issue to occur. The logs are as follows:
[06:01:52.518,341] <err> esb: gppi_channel_alloc failed with: -12 [06:01:52.518,371] <err> esb: Failed to initialize PPI
Best regards,
Leo