<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>esb, shockburst, running on nrf5340dk&amp;#39;s</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/107827/esb-shockburst-running-on-nrf5340dk-s</link><description>I have 3 nrf boards connected. 2x nrf52832 and 1x nrf5340. 
 esb_tx is running on nrf52832(682782977) esb_rx is running on nrf52832(682497942) &amp;amp; nrf5340(1050025410) 
 west build -b nrf5340dk_nrf5340_cpunet -p builds correctly and flashes without error</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 10 Jan 2025 14:09:54 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/107827/esb-shockburst-running-on-nrf5340dk-s" /><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/517958?ContentTypeID=1</link><pubDate>Fri, 10 Jan 2025 14:09:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dfd1a3dc-11d2-4e34-8b55-8ebba2d5fece</guid><dc:creator>Yaxit</dc:creator><description>&lt;p&gt;Hi, I&amp;#39;m also interested in the coexistence of BLE and ESB, were there any developments in the last year? I think I read somewhere that this is supported, but I have not found anything other than this thread.&lt;/p&gt;
&lt;p&gt;Cheers&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/477250?ContentTypeID=1</link><pubDate>Fri, 05 Apr 2024 08:19:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:508b73c6-aebf-4c99-981b-41abf45b2a29</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi Mike&lt;/p&gt;
&lt;p&gt;What if you try to send 20 bytes only, rather than 64? Does it work fine then?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Since I only used the LBS sample in the example I didn&amp;#39;t bother configuring the BLE stack for extended data length or ATT MTU, which is probably why you are having issues getting larger notifications to work.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Could you try to copy the configuration from a different example I worked on recently, which is set up for high throughput?&amp;nbsp;&lt;br /&gt;You will find the relevant appcore config &lt;a href="https://github.com/NordicPlayground/nrf70-wifi-ble-image-transfer-demo/blob/main/ncs_wifi_ble_camera/prj.conf#L64-L70"&gt;here&lt;/a&gt; and the netcore config &lt;a href="https://github.com/NordicPlayground/nrf70-wifi-ble-image-transfer-demo/blob/main/ncs_wifi_ble_camera/child_image/hci_rpmsg.conf#L9-L13"&gt;here&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/477082?ContentTypeID=1</link><pubDate>Thu, 04 Apr 2024 11:30:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d6f1b552-a723-4452-970b-e15970a92391</guid><dc:creator>mej7000</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;Torbj&amp;oslash;rn,&lt;/p&gt;
&lt;p&gt;I am hoping you can help me with the ble-esb-mpsl-demo. I saw that you updated it yesterday. I upgraded to nRF Connect SDK v2.6.0 to match the requirements.&lt;/p&gt;
&lt;p&gt;You code worked exactly as expected. It&amp;#39;s the lbs part that is a problem for me. Instead of the boolean from the button, I need to relay the esb_rx data &lt;span style="text-decoration:underline;"&gt;as it arrives&lt;/span&gt; directly to BLE so I needed to modify that part of the code. It is close to working... The attached image shows what I changed and where I think the problem is.&lt;/p&gt;
&lt;p&gt;Standard esb_tx is already setup in my custom application. I don&amp;#39;t believe it makes a difference, but I am using the standard esb_tx sample as the sender not the esb_tx from your demo. I think that is why I am getting the &amp;quot;Counter&amp;quot; warning.&lt;/p&gt;
&lt;p&gt;I never need esb_tx and BLE to run at the same time. I only need esb_rx and BLE to timeslot.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;removed all nrf5340 files for my own clarity, I&amp;#39;m using nrf52840dk board.&lt;/li&gt;
&lt;li&gt;copied lbs.c and lbs.h into the project so that I could modify/replace: bt_lbs_send_button_state()&lt;/li&gt;
&lt;li&gt;adjusted CMake to reflect file changes&lt;/li&gt;
&lt;li&gt;commented out CONFIG_BT_LBS and CONFIG_BT_LBS_POLL_BUTTON&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;when I press the button I now call &amp;quot;&lt;span&gt;bt_lbs_send_button_state_2()&amp;quot; with a pointer to a data array.&lt;/span&gt; I receive the mock data array over BLE as expected.&lt;/p&gt;
&lt;p&gt;However, if I use the esb_callback function to call &lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;bt_lbs_send_button_state_2()&amp;quot;&amp;nbsp;&lt;/span&gt;I get the &amp;quot;No ATT channel for MTU...etc...&amp;quot; problem.&lt;/p&gt;
&lt;p&gt;Calling &amp;quot;bt_lbs_send_button_state_2()&amp;quot; directly from within the esb callback caused a kernel panic so I added a workqueue.&lt;/p&gt;
&lt;p&gt;As always, you help is greatly appreciated!&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/ble_2D00_esb_2D00_demo.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/6303.ncs_2D00_esb_2D00_ble_2D00_mpsl_2D00_demo.zip"&gt;devzone.nordicsemi.com/.../6303.ncs_2D00_esb_2D00_ble_2D00_mpsl_2D00_demo.zip&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/472073?ContentTypeID=1</link><pubDate>Mon, 04 Mar 2024 15:30:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ba12337f-ef52-453b-9409-dfd4f3a36438</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi Mike&lt;/p&gt;
&lt;p&gt;Good to hear that you got it working &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f642.svg" title="Slight smile"&gt;&amp;#x1f642;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I can see that the CONSOLE_HANDLER configuration selects (enables) the interrupt driven driver &lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/1.9.2-dev1/kconfig/CONFIG_CONSOLE_HANDLER.html"&gt;here&lt;/a&gt;. I assume this is why it prevents the async based code from working properly.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/471759?ContentTypeID=1</link><pubDate>Fri, 01 Mar 2024 11:15:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e90e64f7-205d-45a3-b2ba-781d00bab931</guid><dc:creator>mej7000</dc:creator><description>&lt;p&gt;Hi, Thanks. Enjoy the weekend!&lt;/p&gt;
&lt;p&gt;You are correct in that all I really want to do is pass a ~64 byte length to/from BLE (and relay those 64byes to/from shockburst). I had considered adapting bt_lbs, but initially thought incorporating peripheral_uart would be easier... I&amp;#39;ll look at adapting bt_lbs.&lt;/p&gt;
&lt;p&gt;In the meantime I&amp;#39;ve determined that either one of these settings prevent the callback function working correctly. Commenting out both of those and BLE UART works as expected, but I am unsure of why they&amp;#39;re a problem.&lt;/p&gt;
&lt;p&gt;CONFIG_CONSOLE_HANDLER=y&lt;br /&gt;CONFIG_CONSOLE_GETCHAR=y&lt;/p&gt;
&lt;p&gt;*** Booting nRF Connect SDK v2.5.1 ***&lt;br /&gt;[00:00:00.000,518] &amp;lt;inf&amp;gt; main: ESB PRX BLE Multiprotocol Example&lt;br /&gt;[00:00:00.000,549] &amp;lt;inf&amp;gt; peripheral_uart: Initialize Bluetooth UART&lt;br /&gt;[00:00:00.000,854] &amp;lt;err&amp;gt; peripheral_uart: Cannot initialize UART callback&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/ncs_2D00_esb_2D00_ble_2D00_mpsl_2D00_demo_2D00_per_2D00_uart-_2800_3_2900_.zip"&gt;devzone.nordicsemi.com/.../ncs_2D00_esb_2D00_ble_2D00_mpsl_2D00_demo_2D00_per_2D00_uart-_2800_3_2900_.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/Commented-out-problem-configs.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/471719?ContentTypeID=1</link><pubDate>Fri, 01 Mar 2024 08:52:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6b825bcb-1da4-40e2-b02a-e2bfef38e0ed</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi Mike&lt;/p&gt;
&lt;p&gt;I am taking an early weekend so I won&amp;#39;t have time to look into this today unfortunately. I will test your code on Monday and see if I can spot the issue.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;As a side note, the only real difference between the LBS service used in my sample and the NUS service is that the former configures the characteristics as 1 byte length while the later uses variable length characteristics. You could quite easily configure one to be similar to the other.&lt;/p&gt;
&lt;p&gt;Do you actually need the UART functionality from the peripheral_uart example, or is it only the BLE functionality that you want to use?&amp;nbsp;&lt;br /&gt;If yes, couldn&amp;#39;t you just remove all the UART related code from the app_bt_uart module?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The way I like to structure these examples is to have the app_bt_xxx modules handle Bluetooth related functionalities only. Any code interfacing sensors or other interfaces should run either from main.c, or from another module.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/471649?ContentTypeID=1</link><pubDate>Thu, 29 Feb 2024 21:25:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b6740cc8-550c-429b-a1e3-3475b9c84bec</guid><dc:creator>mej7000</dc:creator><description>&lt;p&gt;Hi, It&amp;#39;s the PRX. I&amp;#39;m focusing on getting the BLE UART working at this point.&lt;br /&gt;&lt;br /&gt;[00:00:00.000,518] &amp;lt;inf&amp;gt; main: ESB PRX BLE Multiprotocol Example&lt;br /&gt;[00:00:00.000,518] &amp;lt;inf&amp;gt; peripheral_uart: Initialize Bluetooth UART&lt;br /&gt;[00:00:00.000,823] &amp;lt;err&amp;gt; peripheral_uart: Cannot initialize UART callback&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_UART_ASYNC_API&lt;/span&gt;&lt;span&gt;=y is set in the prj.conf file and everything compiles without error.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;CONFIG_BT_NUS_UART_ASYNC_ADAPTER wasn&amp;#39;t in the prj.conf file, so it looks like it&amp;#39;s not being used anyway. Enabling&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;CONFIG_BT_NUS_UART_ASYNC_ADAPTER&lt;/span&gt;&lt;span&gt;=y,&amp;nbsp;&lt;/span&gt;caused a compile error so I took that out. It doesn&amp;#39;t look like it&amp;#39;s enabled in the peripheral_uart sample either. I tried taking the file out completely, but that didn&amp;#39;t make a difference.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="text"&gt;	if (IS_ENABLED(CONFIG_BT_NUS_UART_ASYNC_ADAPTER) &amp;amp;&amp;amp; !uart_test_async_api(uart)) {
		/* Implement API adapter */
		uart_async_adapter_init(async_adapter, uart);
		uart = async_adapter;
	}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Peripheral_uart sample works as a standalone. At this point I think everything from the peripheral_uart sample has been incorporated, unchanged, into the demo. The Demo compiles fully, but there still seems to be something in the way I combined it with the demo that is&amp;nbsp;causing &amp;quot;&lt;span&gt;Cannot initialize UART callback&amp;quot;. B&lt;/span&gt;ut since there are no errors I don&amp;#39;t know what to change or where to look?&lt;/p&gt;
&lt;p&gt;I attached the code. It builds fine for 52832 or 52840.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/ncs_2D00_esb_2D00_ble_2D00_mpsl_2D00_demo_2D00_per_2D00_uart-_2800_2_2900_.zip"&gt;devzone.nordicsemi.com/.../ncs_2D00_esb_2D00_ble_2D00_mpsl_2D00_demo_2D00_per_2D00_uart-_2800_2_2900_.zip&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/471588?ContentTypeID=1</link><pubDate>Thu, 29 Feb 2024 14:46:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a0f86864-baf5-43eb-b9c8-b6d1912d35b1</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi Mike&lt;/p&gt;
&lt;p&gt;The UART async adapter is an optional module that you only need if you are planning to use a CDC ACM (USB) comport, it is not necessary if you are using a physical UART. You can read more &lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/samples/bluetooth/peripheral_uart/README.html#async-adapter-experimental-module"&gt;here&lt;/a&gt;. In other words I would just remove this altogether if you don&amp;#39;t actually need it.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The set ballback function typically fails when the UART ASYNC API is not properly enabled. Are you sure that&amp;nbsp;CONFIG_UART_ASYNC_API is properly enabled in the configuration?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Is it the PTX sample, PRX sample or both that you are struggling with?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/471379?ContentTypeID=1</link><pubDate>Wed, 28 Feb 2024 15:51:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e9145345-c0c9-4100-a5b7-3e99cf7fcfa2</guid><dc:creator>mej7000</dc:creator><description>&lt;p&gt;Thanks! I&amp;#39;m still figuring Kconfig out and I understand what you mean with the app.overlay. I should have at least recognized the files existing in the peripheral_UART sample. I missed that one...&lt;/p&gt;
&lt;p&gt;I have (4) 52840dk boards that should be delivered today. In the meantime I added app.overlay to the demo-per-uart sample to accommodate the 52832. That allowed it to compile fine.&lt;/p&gt;
&lt;p&gt;However, I had warnings/errors in the prj.conf, uart_async_adapter and app_bt_uart files. I couldn&amp;#39;t figure out how to fix that so I moved uart_async_adapter and app_bt_uart into the src folder, adjusted cmake, and all the errors went away in the c and the prj.conf files.&lt;/p&gt;
&lt;p&gt;I assume I needed to do more with either kconfig or cmake to get those files to work in the common folder, but I couldn&amp;#39;t figure it out with the files in the common folder.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve gotten to 0 Errors/0 Problems in the compile. It seems very close, but I&amp;#39;m getting &amp;quot;&amp;lt;err&amp;gt; peripheral_uart: Cannot initialize UART callback&amp;quot;.&lt;/p&gt;
&lt;p&gt;Given that this is the unmodified UART sample that runs fine as a stand alone, there must be something in the configuration that is still holding it back?&lt;/p&gt;
&lt;p&gt;It was problems with the &amp;quot;callback&amp;quot; that forced me to move the files out of &amp;quot;common&amp;quot; and into &amp;quot;src&amp;quot;.&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/Cannot-initialize-UART-callback.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/demo_2D00_uart_2D00_2.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/ncs_2D00_esb_2D00_ble_2D00_mpsl_2D00_demo_2D00_per_2D00_uart.zip"&gt;devzone.nordicsemi.com/.../ncs_2D00_esb_2D00_ble_2D00_mpsl_2D00_demo_2D00_per_2D00_uart.zip&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/471211?ContentTypeID=1</link><pubDate>Wed, 28 Feb 2024 08:51:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d6360a97-27ae-432e-a280-276592ef305c</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
[quote user="mej7000"] Packet length will be ~50bytes, so I&amp;#39;m guessing about &amp;lt;300&lt;span&gt;µ&lt;/span&gt;s transmission time. As long as I&amp;#39;m within a few ms I should be good. I&amp;#39;m sure there will be refinements once the system is working.[/quote]
&lt;p&gt;The transmission time is not an issue, since it is relatively constant. You just add this time to the timestamp you receive before you update the local time, to compensate.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The question is the delay between uploading the ACK payload and it actually being sent, I would expect this delay to be much more random, and as such you will not be able to compensate for it.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;But lets cross that bridge when we get there &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f609.svg" title="Wink"&gt;&amp;#x1f609;&lt;/span&gt;&lt;/p&gt;
[quote user="mej7000"]I zipped the entire demo, with my additions, if it helps to look at it. I tried to follow your&amp;nbsp;example&amp;nbsp;for directory structure and to not modify anything I didn&amp;#39;t have to.[/quote]
&lt;p&gt;It is possible for a project to define local Kconfig parameters that only exist for this particular project. These are defined in a file called Kconfig located in the root folder, and since you don&amp;#39;t have these parameters in your project the build will fail. Simply copying the Kconfig file from the peripheral_uart sample into the ptx and prx sample folders should fix this. If there already existed a Kconfig file in these projects you would need to merge them.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Also, the peripheral_uart sample needs a chosen node called nordic,nus-uart in the device tree, which is included in a file called app.overlay. In the case of the ptx and prx samples I would recommend adding this to the board specific overlays located in the board folder.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I have attached a modified version of your example with these things fixed for the prx sample, and I can now build it (I didn&amp;#39;t test the functionality though, I will leave that with you). I tested it based on the 52840DK board, you might have to make some additional changes to have it work for the 52DK:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/ncs_2D00_esb_2D00_ble_2D00_mpsl_2D00_demo_2D00_nod_2D00_mod.zip"&gt;devzone.nordicsemi.com/.../ncs_2D00_esb_2D00_ble_2D00_mpsl_2D00_demo_2D00_nod_2D00_mod.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To look over all the changes I did you can just open the git bash and check the diff.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/470893?ContentTypeID=1</link><pubDate>Mon, 26 Feb 2024 23:55:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bc52cbb6-1275-4ea5-b208-22f2bb571c82</guid><dc:creator>mej7000</dc:creator><description>&lt;p&gt;You make a great point. As development unfolds it&amp;#39;s good to know I have the option... There will be redundancy in with the timestamp ACK responses every 5-10 seconds. Network traffic won&amp;#39;t be much, but I do need to handle any occasional collisions. Packet length will be ~50bytes, so I&amp;#39;m guessing about &amp;lt;300&lt;span&gt;&amp;micro;&lt;/span&gt;s transmission time. As long as I&amp;#39;m within a few ms I should be good. I&amp;#39;m sure there will be refinements once the system is working.&lt;/p&gt;
&lt;p&gt;I basically have the child (ptx) done and now it&amp;#39;s time to circle back to the &amp;quot;parent&amp;quot; (prx). The parent relies heavily on your &amp;quot;ncs-esb-ble-mpsl-demo&amp;quot; as that is the node to split BLE and ESB duty.&lt;/p&gt;
&lt;p&gt;I made very minor additions to get LED2 to toggle (just to indicate successful BLE write). Compiled and everything works as expected.&lt;/p&gt;
&lt;p&gt;What I need to do now is replace the &amp;quot;peripheral_lbs&amp;quot; with &amp;quot;peripheral_uart&amp;quot; so that I can receive ESB rx_payload and relay it out over BLE and also push BLE data/commands out through ESB tx_payload.&lt;/p&gt;
&lt;p&gt;As always I am open to suggestions, but I&amp;#39;ve been trying to add &amp;quot;peripheral_uart&amp;quot; (which was compiled and working as a stand alone) to your&amp;nbsp;&lt;span&gt;ncs-esb-ble-mpsl-demo.&lt;/span&gt;&amp;nbsp;&amp;quot;&lt;span&gt;../common/uart_async_adapter.c&amp;quot; seems to be fine added to the CMakeList file, b&lt;/span&gt;ut if I add &amp;quot;../common/app_bt_uart.c&amp;quot; to the CMakeLists file I get compile errors that I don&amp;#39;t understand.&lt;/p&gt;
&lt;p&gt;Is my approach sound or is there a better way of modifying your demo to use peripheral_uart? I also tried removing peripheral_lbs, but that didn&amp;#39;t work any better.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve also loaded the prj.conf file with everything from peripheral_uart. Just that alone didn&amp;#39;t cause any compile problems, but I noticed that even in the original demo there are warnings about missing CONFIG&amp;#39;s that clearly exist in the prj.conf file (I don&amp;#39;t fully understand why I am getting those warnings in the original demo, but it seems to be working correctly)&lt;/p&gt;
&lt;p&gt;I zipped the entire demo, with my additions, if it helps to look at it. I tried to follow your&amp;nbsp;example&amp;nbsp;for directory structure and to not modify anything I didn&amp;#39;t have to.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;../common/app_bt_uart.c is commented out in the CMakeList file, so that it compiles correctly, but uncomment that and you get the following errors.&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;em&gt;target_sources(app PRIVATE&lt;/em&gt;&lt;br /&gt;&lt;em&gt; src/main.c&lt;/em&gt;&lt;br /&gt;&lt;em&gt; ../common/app_bt_lbs.c&lt;/em&gt;&lt;br /&gt;&lt;em&gt; ../common/uart_async_adapter.c&lt;/em&gt;&lt;br /&gt;&lt;em&gt;# ../common/app_bt_uart.c&lt;/em&gt;&lt;br /&gt;&lt;em&gt;)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;...&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;-MT CMakeFiles/app.dir/C_/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c.obj -MF CMakeFiles\app.dir\C_\nrf\ncs-esb-ble-mpsl-demo\common\app_bt_uart.c.obj.d -o CMakeFiles/app.dir/C_/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c.obj -c C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c&lt;br /&gt;In file included from C:/ncs/v2.5.1/zephyr/include/zephyr/toolchain/gcc.h:92,&lt;br /&gt; from C:/ncs/v2.5.1/zephyr/include/zephyr/toolchain.h:50,&lt;br /&gt; from C:/ncs/v2.5.1/zephyr/include/zephyr/sys/time_units.h:10,&lt;br /&gt; from C:/ncs/v2.5.1/zephyr/include/zephyr/sys/util.h:615,&lt;br /&gt; from C:/ncs/v2.5.1/zephyr/include/zephyr/devicetree.h:25,&lt;br /&gt; from C:/ncs/v2.5.1/zephyr/include/zephyr/device.h:12,&lt;br /&gt; from C:/nrf/ncs-esb-ble-mpsl-demo/common/uart_async_adapter.h:22,&lt;br /&gt; from C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c:10:&lt;br /&gt;C:/ncs/v2.5.1/zephyr/include/zephyr/device.h:85:41: error: &amp;#39;__device_dts_ord_DT_CHOSEN_nordic_nus_uart_ORD&amp;#39; undeclared here (not in a function)&lt;br /&gt; 85 | #define DEVICE_NAME_GET(dev_id) _CONCAT(__device_, dev_id)&lt;br /&gt; | ^~~~~~~~~&lt;br /&gt;C:/ncs/v2.5.1/zephyr/include/zephyr/toolchain/common.h:132:26: note: in definition of macro &amp;#39;_DO_CONCAT&amp;#39;&lt;br /&gt; 132 | #define _DO_CONCAT(x, y) x ## y&lt;br /&gt; | ^&lt;br /&gt;C:/ncs/v2.5.1/zephyr/include/zephyr/device.h:85:33: note: in expansion of macro &amp;#39;_CONCAT&amp;#39;&lt;br /&gt; 85 | #define DEVICE_NAME_GET(dev_id) _CONCAT(__device_, dev_id)&lt;br /&gt; | ^~~~~~~&lt;br /&gt;C:/ncs/v2.5.1/zephyr/include/zephyr/device.h:211:37: note: in expansion of macro &amp;#39;DEVICE_NAME_GET&amp;#39;&lt;br /&gt; 211 | #define DEVICE_DT_NAME_GET(node_id) DEVICE_NAME_GET(Z_DEVICE_DT_DEV_ID(node_id))&lt;br /&gt; | ^~~~~~~~~~~~~~~&lt;br /&gt;C:/ncs/v2.5.1/zephyr/include/zephyr/device.h:228:34: note: in expansion of macro &amp;#39;DEVICE_DT_NAME_GET&amp;#39;&lt;br /&gt; 228 | #define DEVICE_DT_GET(node_id) (&amp;amp;DEVICE_DT_NAME_GET(node_id))&lt;br /&gt; | ^~~~~~~~~~~~~~~~~~&lt;br /&gt;C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c:62:36: note: in expansion of macro &amp;#39;DEVICE_DT_GET&amp;#39;&lt;br /&gt; 62 | static const struct device *uart = DEVICE_DT_GET(DT_CHOSEN(nordic_nus_uart));&lt;br /&gt; | ^~~~~~~~~~~~~&lt;br /&gt;C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c:53:23: error: &amp;#39;CONFIG_BT_NUS_UART_BUFFER_SIZE&amp;#39; undeclared here (not in a function)&lt;br /&gt; 53 | #define UART_BUF_SIZE CONFIG_BT_NUS_UART_BUFFER_SIZE&lt;br /&gt; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c:67:22: note: in expansion of macro &amp;#39;UART_BUF_SIZE&amp;#39;&lt;br /&gt; 67 | uint8_t data[UART_BUF_SIZE];&lt;br /&gt; | ^~~~~~~~~~~~~&lt;br /&gt;C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c: In function &amp;#39;uart_cb&amp;#39;:&lt;br /&gt;C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c:55:26: error: &amp;#39;CONFIG_BT_NUS_UART_RX_WAIT_TIME&amp;#39; undeclared (first use in this function)&lt;br /&gt; 55 | #define UART_WAIT_FOR_RX CONFIG_BT_NUS_UART_RX_WAIT_TIME&lt;br /&gt; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c:160:32: note: in expansion of macro &amp;#39;UART_WAIT_FOR_RX&amp;#39;&lt;br /&gt; 160 | UART_WAIT_FOR_RX);&lt;br /&gt; | ^~~~~~~~~~~~~~~~&lt;br /&gt;C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c:55:26: note: each undeclared identifier is reported only once for each function it appears in&lt;br /&gt; 55 | #define UART_WAIT_FOR_RX CONFIG_BT_NUS_UART_RX_WAIT_TIME&lt;br /&gt; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c:160:32: note: in expansion of macro &amp;#39;UART_WAIT_FOR_RX&amp;#39;&lt;br /&gt; 160 | UART_WAIT_FOR_RX);&lt;br /&gt; | ^~~~~~~~~~~~~~~~&lt;br /&gt;C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c: In function &amp;#39;uart_work_handler&amp;#39;:&lt;br /&gt;C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c:55:26: error: &amp;#39;CONFIG_BT_NUS_UART_RX_WAIT_TIME&amp;#39; undeclared (first use in this function)&lt;br /&gt; 55 | #define UART_WAIT_FOR_RX CONFIG_BT_NUS_UART_RX_WAIT_TIME&lt;br /&gt; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c:222:60: note: in expansion of macro &amp;#39;UART_WAIT_FOR_RX&amp;#39;&lt;br /&gt; 222 | uart_rx_enable(uart, buf-&amp;gt;data, sizeof(buf-&amp;gt;data), UART_WAIT_FOR_RX);&lt;br /&gt; | ^~~~~~~~~~~~~~~~&lt;br /&gt;C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c: At top level:&lt;br /&gt;C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c:577:1: error: expected identifier or &amp;#39;(&amp;#39; before &amp;#39;{&amp;#39; token&lt;br /&gt; 577 | {&lt;br /&gt; | ^&lt;br /&gt;C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c:39:19: error: &amp;#39;CONFIG_BT_NUS_THREAD_STACK_SIZE&amp;#39; undeclared here (not in a function); did you mean &amp;#39;CONFIG_WFA_QT_THREAD_STACK_SIZE&amp;#39;?&lt;br /&gt; 39 | #define STACKSIZE CONFIG_BT_NUS_THREAD_STACK_SIZE&lt;br /&gt; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;C:/ncs/v2.5.1/zephyr/include/zephyr/sys/util.h:232:28: note: in definition of macro &amp;#39;ROUND_UP&amp;#39;&lt;br /&gt; 232 | ((((unsigned long)(x) + ((unsigned long)(align) - 1)) / \&lt;br /&gt; | ^&lt;br /&gt;C:/ncs/v2.5.1/zephyr/include/zephyr/kernel/thread_stack.h:223:21: note: in expansion of macro &amp;#39;Z_KERNEL_STACK_SIZE_ADJUST&amp;#39;&lt;br /&gt; 223 | sym[Z_KERNEL_STACK_SIZE_ADJUST(size)]&lt;br /&gt; | ^~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;C:/ncs/v2.5.1/zephyr/include/zephyr/kernel/thread_stack.h:260:9: note: in expansion of macro &amp;#39;Z_KERNEL_STACK_DEFINE_IN&amp;#39;&lt;br /&gt; 260 | Z_KERNEL_STACK_DEFINE_IN(sym, size, __kstackmem)&lt;br /&gt; | ^~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;C:/ncs/v2.5.1/zephyr/include/zephyr/kernel/thread_stack.h:339:41: note: in expansion of macro &amp;#39;K_KERNEL_STACK_DEFINE&amp;#39;&lt;br /&gt; 339 | #define K_THREAD_STACK_DEFINE K_KERNEL_STACK_DEFINE&lt;br /&gt; | ^~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c:652:1: note: in expansion of macro &amp;#39;K_THREAD_DEFINE&amp;#39;&lt;br /&gt; 652 | K_THREAD_DEFINE(ble_write_thread_id, STACKSIZE, ble_write_thread, NULL, NULL,&lt;br /&gt; | ^~~~~~~~~~~~~~~&lt;br /&gt;C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c:652:38: note: in expansion of macro &amp;#39;STACKSIZE&amp;#39;&lt;br /&gt; 652 | K_THREAD_DEFINE(ble_write_thread_id, STACKSIZE, ble_write_thread, NULL, NULL,&lt;br /&gt; | ^~~~~~~~~&lt;br /&gt;C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c:558:13: warning: &amp;#39;configure_gpio&amp;#39; defined but not used [-Wunused-function]&lt;br /&gt; 558 | static void configure_gpio(void)&lt;br /&gt; | ^~~~~~~~~~~~~~&lt;br /&gt;C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c:513:25: warning: &amp;#39;nus_cb&amp;#39; defined but not used [-Wunused-variable]&lt;br /&gt; 513 | static struct bt_nus_cb nus_cb = {&lt;br /&gt; | ^~~~~~&lt;br /&gt;C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c:462:36: warning: &amp;#39;conn_auth_info_callbacks&amp;#39; defined but not used [-Wunused-variable]&lt;br /&gt; 462 | static struct bt_conn_auth_info_cb conn_auth_info_callbacks;&lt;br /&gt; | ^~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c:461:31: warning: &amp;#39;conn_auth_callbacks&amp;#39; defined but not used [-Wunused-variable]&lt;br /&gt; 461 | static struct bt_conn_auth_cb conn_auth_callbacks;&lt;br /&gt; | ^~~~~~~~~~~~~~~~~~~&lt;br /&gt;C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c:233:12: warning: &amp;#39;uart_init&amp;#39; defined but not used [-Wunused-function]&lt;br /&gt; 233 | static int uart_init(void)&lt;br /&gt; | ^~~~~~~~~&lt;br /&gt;C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c:79:29: warning: &amp;#39;sd&amp;#39; defined but not used [-Wunused-const-variable=]&lt;br /&gt; 79 | static const struct bt_data sd[] = {&lt;br /&gt; | ^~&lt;br /&gt;C:/nrf/ncs-esb-ble-mpsl-demo/common/app_bt_uart.c:74:29: warning: &amp;#39;ad&amp;#39; defined but not used [-Wunused-const-variable=]&lt;br /&gt; 74 | static const struct bt_data ad[] = {&lt;br /&gt; | ^~&lt;br /&gt;[116/227] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/fatal.c.obj&lt;br /&gt;ninja: build stopped: subcommand failed.&lt;br /&gt;FATAL ERROR: command exited with status 1: &amp;#39;C:\ncs\toolchains\c57af46cb7\opt\bin\cmake.EXE&amp;#39; --build &amp;#39;C:\nrf\ncs-esb-ble-mpsl-demo\prx\build52832&amp;#39;&lt;br /&gt;PS C:\nrf\ncs-esb-ble-mpsl-demo\prx&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/ncs_2D00_esb_2D00_ble_2D00_mpsl_2D00_demo-_2800_3_2900_.zip"&gt;devzone.nordicsemi.com/.../ncs_2D00_esb_2D00_ble_2D00_mpsl_2D00_demo-_2800_3_2900_.zip&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/470675?ContentTypeID=1</link><pubDate>Mon, 26 Feb 2024 10:42:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:27f47d79-e1b1-42c9-a437-2a6a4310631b</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi Mike&lt;/p&gt;
&lt;p&gt;You could allocate the pipes any way you see fit, certainly. But there is something to be said for the &amp;quot;if it works don&amp;#39;t fix it&amp;quot;&amp;nbsp;reasoning as well, if you have a working system already you might just stick to that &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f642.svg" title="Slight smile"&gt;&amp;#x1f642;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;When preloading an ACK with a timestamp do keep in mind that you&amp;nbsp;might not know exactly when the next packet will come from a PTX, and as such how much delay there will be in the process of preparing the timestamp and it being received by one of the PTX&amp;#39;s. This will introduce some inaccuracy in the timesync.&lt;/p&gt;
&lt;p&gt;I am guessing you don&amp;#39;t need microsecond level of synchronization though, and that you can accept a bit of error.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/470577?ContentTypeID=1</link><pubDate>Sun, 25 Feb 2024 19:04:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e7eb5495-5caf-4713-90be-a42c2fed74e2</guid><dc:creator>mej7000</dc:creator><description>&lt;p&gt;Thanks! That makes it much clearer. Pipes are different from what I thought, but I feel good that the design should work. I am planning on using the ptx HW_ID as part of the data packet for the iOS App anyway. It sounds like that might be useful for ESB addressing as well.&lt;/p&gt;
[quote userid="2116" url="~/f/nordic-q-a/107827/esb-shockburst-running-on-nrf5340dk-s/470168"]Another advantage of the pipe system is that the PRX can pre-load ACK payloads for the different pipes in advance, so that whichever PTX sends data to you next will get the correct ACK payload in return.[/quote]
&lt;p&gt;This is super interesting. I hadn&amp;#39;t considered using different responses on different pipes. I&amp;#39;ve preloaded the ACK with a timestamp and that works really well. It may make sense to have a &amp;quot;timestamp&amp;quot; pipe, a &amp;quot;data&amp;quot; pipe and a &amp;quot;command&amp;quot; pipe... there might be something really useful I can do with that.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/470168?ContentTypeID=1</link><pubDate>Thu, 22 Feb 2024 08:42:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0369e073-584b-4135-bfb6-dce4e177048f</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
[quote user="mej7000"]I think (if I understand ESB correctly) I can have all communication happen on PTX0?[/quote]
&lt;p&gt;Yes, you can have multiple (more than 2) devices communicating over the same pipe without issue as long as only one device is in PRX mode, or you disable ACK. If you have multiple devices in PRX mode and use ACK then you will run into issues where multiple devices are sending ACK&amp;#39;s at the same time, which will lead to unpredictable behavior.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In your case it sounds like this should work fine since only the parent node will be in PRX mode.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Please note that you can get issues with this method if the PTX&amp;#39;s send data very often, and you don&amp;#39;t have any way of synchronizing them in time to avoid collisions.&amp;nbsp;&lt;/p&gt;
[quote user="mej7000"]So the children can share the same pipe address? (ie.&amp;nbsp;&amp;nbsp;&lt;span&gt;uint8_t&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;base_addr_0&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;4&lt;/span&gt;&lt;span&gt;] &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;span&gt;0xE7&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0xE7&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0xE7&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0xE7&lt;/span&gt;&lt;span&gt;};&lt;/span&gt;)[/quote]
&lt;p&gt;They can all share the same address, yes, but please don&amp;#39;t use the default 0xE7 address in production &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f609.svg" title="Wink"&gt;&amp;#x1f609;&lt;/span&gt;&lt;/p&gt;
[quote user="mej7000"]One hesitation is that I don&amp;#39;t fully understand &amp;quot;pipes&amp;quot;. It looks like the pipe is like a GHz channel and that PRX can monitor up to 8 pipes/channels at the same time? [/quote]
&lt;p&gt;A pipe is just an abstraction of an address. Essentially the radio receiver can look for up to 8 different addresses simultaneously when decoding the incoming data stream, and it can then report to the application from which pipe the packet was received.&amp;nbsp;Historically this feature was used mostly with a single&amp;nbsp;PTX pr pipe, but&amp;nbsp;like mentioned before it is possible to have multiple PTX devices all transmitting to the same pipe.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The advantage of only having 1 PTX pr pipe is that you don&amp;#39;t need any other identifying markers in the payload to differentiate the different PTX&amp;#39;s. When multiple devices are sharing pipes then you need to include some additional information in the payload to keep them apart, but in your case you probably need this anyway since you will have up to 30 devices talking to one &amp;#39;parent&amp;#39;.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;One comment to your diagram: Another advantage of the pipe system is that the PRX can pre-load ACK payloads for the different pipes in advance, so that whichever PTX sends data to you next will get the correct ACK payload in return. In order to make this system look at some part of the payload instead of the pipe to send the correct ACK payload the ESB protocol will need some changes.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Same if you want to include an accurate timestamp in the payload, this would require some modifications to the protocol as well.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/469989?ContentTypeID=1</link><pubDate>Wed, 21 Feb 2024 10:36:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9ffdbc24-7df0-4de5-8a53-d9943416e193</guid><dc:creator>mej7000</dc:creator><description>&lt;p&gt;Thanks. I&amp;#39;m convinced ESB is the correct solution for the network, and BLE is required for the App connection. Using the Ack to sync the parent time and child times works really well.&lt;/p&gt;
[quote userid="2116" url="~/f/nordic-q-a/107827/esb-shockburst-running-on-nrf5340dk-s/469976"]How many devices would you typically have for each gateway?[/quote]
&lt;p&gt;This question just came up yesterday. I think I have it worked out, but I want to make sure I have this correct... I have one &amp;quot;Parent&amp;quot; (BLE/ESB-PRX) and many (~30) children (ESB-PTX).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I think (if I understand ESB correctly) I can have all communication happen on PTX0? Because Child nodes communicate directly with the Parent (never child to child), but the Parent always communicates (timestamp or command) as a &amp;quot;Broadcast&amp;quot; to the children. So the children can share the same pipe address? (ie.&amp;nbsp;&amp;nbsp;&lt;span&gt;uint8_t&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;base_addr_0&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;4&lt;/span&gt;&lt;span&gt;] &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;span&gt;0xE7&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0xE7&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0xE7&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0xE7&lt;/span&gt;&lt;span&gt;};&lt;/span&gt;)&lt;/p&gt;
&lt;p&gt;One hesitation is that I don&amp;#39;t fully understand &amp;quot;pipes&amp;quot;. It looks like the pipe is like a GHz channel and that PRX can monitor up to 8 pipes/channels at the same time? Which is potentially very useful for me as long as that doesn&amp;#39;t actually mean I am limited to only 8 PTX &amp;quot;children&amp;quot;. That would be a disaster for me...&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/ESB-Communcation-Topology.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/469976?ContentTypeID=1</link><pubDate>Wed, 21 Feb 2024 10:02:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ca0838bd-847b-49d4-91ec-86a256151974</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi Mike&lt;/p&gt;
&lt;p&gt;Accurate time synchronization is certainly a reason to chose ESB over BLE. When running Bluetooth the link layer will take care of packet timing, retransmits etc, and the delay between uploading the data and receiving it on the other side will be very erratic.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Very short latency is another bonus of the ESB protocol, you have more control of packet timing, and in theory you can send a packet and receive an ACK in less than a millisecond.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;How many devices would you typically have for each gateway?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If performance is very critical you would probably get a more robust solution by having two nRF devices on the gateway (one for BLE and one for ESB), but this would obviously increase the BOM and the hardware complexity.&amp;nbsp;The higher the number of sensors the smaller the impact would be on the&amp;nbsp;total system cost, relatively speaking.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The range is a bit of a concern, it is hard to guarantee up to 200m of range over 2.4GHz, since these signals are heavily affected by environmental factors (in particular humidity/water, and metals).&lt;/p&gt;
&lt;p&gt;Also, low power and low latency is a challenging combination of factors. If the sensors need to respond immediately to commands it means the radio needs to be available most of the time, which means you are looking at an idle current close to the radio peak current (around 5mA in RX).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;One advantage again to ESB is that you are able to tune the protocol if you have more power available on one side of the link (such as the gateway in your case). But if you need very low latency in both directions then your hands are tied in this regard, since the sensors will not be able to sleep for long.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/469455?ContentTypeID=1</link><pubDate>Mon, 19 Feb 2024 11:08:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c5493b4c-68f7-42fe-85d7-7d0db217dd8f</guid><dc:creator>mej7000</dc:creator><description>&lt;p&gt;Thanks! I just discovered what&amp;nbsp;dk_buttons_and_leds.h is and that I couldn&amp;#39;t find&amp;nbsp;&lt;span&gt;dk_leds_init(), but you beat me to it! &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f642.svg" title="Slight smile"&gt;&amp;#x1f642;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;Yesterday, I did a device tree overlay and got the LED working, which will be useful for my custom PCB eventually.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This isn&amp;#39;t a silly question at all and is the reason we are migrating gen2 of this project to &lt;span style="font-size:12px;"&gt;Nordic&lt;/span&gt;. I would love to get your opinion...&lt;/span&gt;&lt;/p&gt;
[quote userid="2116" url="~/f/nordic-q-a/107827/esb-shockburst-running-on-nrf5340dk-s/469414"]Maybe a silly question, but couldn&amp;#39;t you just use BLE for all the links? Make one device a concurrent central/peripheral, and use this as a relay between the phone and the other device?&amp;nbsp;[/quote]
&lt;p&gt;we have:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span&gt;Network of devices (beam break sensors)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;Must &lt;span style="font-size:12px;"&gt;maintain&lt;/span&gt;&amp;nbsp;strict (ms) timing&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12px;"&gt;synchronization between devices&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Must resync regularly&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Sensors must respond immediately to random events (&amp;lt;=1ms)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;Sensors must be capable of receiving commands from App&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;Beam break and HW_ID data to be reported to an App&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;npm1300 fuel gauge data, etc to be reported to App&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;Network range &amp;lt;=~200m&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;Battery operated, low power, etc.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;Given the above my thought was that:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;BLE connection to App&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;Shockburst with &amp;quot;parent&amp;quot; uptime preloaded into&amp;nbsp;ACK&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;quot;child&amp;quot; sending actual or dummy data to get current parent uptime&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;I chose the above because I was concerned that BLE wouldn&amp;#39;t have the range and/or the speed to &lt;span style="font-size:12px;"&gt;reliably&lt;/span&gt;&amp;nbsp;support the communication and clock sync requirements?&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;That&amp;#39;s kind of the thinking thus far, however I would love explore any alternative ideas.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/469414?ContentTypeID=1</link><pubDate>Mon, 19 Feb 2024 09:09:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:74eba37b-9f2b-4ffe-ba6d-33f09c349f03</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi Mike&lt;/p&gt;
&lt;p&gt;That&amp;#39;s a weird issue on the phone side, I am not sure what might be going on there. You could see other devices in LightBlue? Could some filters be enabled?&amp;nbsp;&lt;br /&gt;Clearly it&amp;#39;s a hint you should be using the nRF Connect app instead of LightBlue &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f609.svg" title="Wink"&gt;&amp;#x1f609;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;All the Bluetooth functionality is covered by the app_bt_lbs.c file, which is basically just a slightly modified copy of the main file from the lbs sample. The idea is to extend app_bt_lbs.c and app_bt_lbs.h with whatever functions you need in order for the application to interface with the Bluetooth connection. Right now there is only an init function, but typically you would want some functions to handle data send/receive, advertising start/stop and so forth.&amp;nbsp;&lt;br /&gt;It seems I removed the reference to dk_leds_init(), which is probably why LED&amp;#39;s don&amp;#39;t work. If you try to call this either inside app_bt_init() or inside your main function I would expect LED&amp;#39;s to be updated by the app_bt_lbs.c module.&amp;nbsp;&lt;/p&gt;
[quote user="mej7000"]I am curious about this. Yes, I did read that, but I can&amp;#39;t find &lt;span&gt;esb_peripherals.h in my local repo or on yours. Am I doing something wrong&lt;/span&gt;?&amp;nbsp;[/quote]
&lt;p&gt;No, this is one of the SDK files, not one of the project files. You can find it in the nrf/subsys/esb folder in the SDK.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;A quick tip to find files in VS Code is to press ctrl + P, and type the name in the text box.&amp;nbsp;&lt;/p&gt;
[quote user="mej7000"]I would think that would make a killer Nordic Sample/Solution for a lot of users.&amp;nbsp;I have done something similar with ESP32 using UART peripheral.&amp;nbsp;[/quote]
&lt;p&gt;Maybe a silly question, but couldn&amp;#39;t you just use BLE for all the links? Make one device a concurrent central/peripheral, and use this as a relay between the phone and the other device?&amp;nbsp;&lt;/p&gt;
[quote user="mej7000"]This Sample is brilliant and 90% of what I was looking for. Thanks! [/quote]
&lt;p&gt;I&amp;#39;m very happy to hear you found it useful &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f642.svg" title="Slight smile"&gt;&amp;#x1f642;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I hope to have some time eventually to clean it up a little, make the app_bt module a bit more full featured, and remove the need to change the SDK files directly.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/469338?ContentTypeID=1</link><pubDate>Sat, 17 Feb 2024 10:25:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5ea6d416-a047-426b-a3db-46af387b8c12</guid><dc:creator>mej7000</dc:creator><description>&lt;p&gt;I reflashed a nrf52832&amp;nbsp;and still didn&amp;#39;t get the BLE advertising. As I have done in the past, I was using LightBlue, but switched over to nRF Connect (which automatically upgraded to the latest version). &amp;quot;Nordic_MPSL_LBS&amp;quot; showed up in the list. I switched back to LightBlue thinking LightBlue was the problem and &lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Nordic_MPSL_LBS&amp;quot;&lt;/span&gt; showed up there as well! I killed all the apps and reflashed the 52832 and it showed up right away in both. I can&amp;#39;t seem to get it &lt;span style="text-decoration:underline;"&gt;not&lt;/span&gt; to work!&lt;/p&gt;
&lt;p&gt;It&amp;#39;s not entirely clear why it started working, but now I can&amp;#39;t break it, so something seems to have resolved my problem. Makes no sense to me that&amp;nbsp;one&amp;nbsp;App upgrade would make a difference, but that was the only change I recognized...?&lt;/p&gt;
&lt;p&gt;The LED&amp;#39;s don&amp;#39;t respond at all, neither in Advertising nor on ButtonPress, but the Button1 seems to notify its status over BLE. ESB data is exchanged between two 52832&amp;#39;s (monitored in serial). I see what you mean that although the two are working there is no connection between BLE and ESB data.&lt;/p&gt;
&lt;p&gt;I am curious about this. Yes, I did read that, but I can&amp;#39;t find &lt;span&gt;esb_peripherals.h in my local repo or on yours. Am I doing something wrong&lt;/span&gt;?&amp;nbsp;&lt;/p&gt;
[quote userid="2116" url="~/f/nordic-q-a/107827/esb-shockburst-running-on-nrf5340dk-s/468866"]&lt;p&gt;&lt;span&gt;Did you make the change in esb_peripherals.h as mentioned in the log?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Essentially you need to replace SWI0 with SWI3 in this file:&lt;/span&gt;&lt;/p&gt;[/quote]
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/esb_5F00_peripherals_5F00_h.png" /&gt;&lt;/p&gt;
&lt;p&gt;This Sample is brilliant and 90% of what I was looking for. Thanks! Switching to nrf52 did seem to make it easier, but that is probably because I am still figuring out how to work the nrf53.&lt;/p&gt;
&lt;p&gt;My goal now is to send data and commands through BLE and a ESB star network&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Data Flow: ptx(child)-&amp;gt;prx(parent)-&amp;gt;BLE-&amp;gt;App&lt;/li&gt;
&lt;li&gt;Command Flow: App-&amp;gt;BLE-&amp;gt;prx/ptx(parent)-&amp;gt;ptx/prx(child)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I would think that would make a killer Nordic Sample/Solution for a lot of users.&amp;nbsp;I have done something similar with ESP32 using UART peripheral.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;What you provided already has been invaluable and gets me very close to what I need. If you have any more suggestions or guidance on getting to my ultimate goal please let me know. thanks, mike&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/468866?ContentTypeID=1</link><pubDate>Wed, 14 Feb 2024 14:46:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9e83f80e-250f-4aad-b1f8-170b28deddee</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi Michael&lt;/p&gt;
[quote user="mej7000"]It seems that --board nrf5340dk_nrf5340_cpuapp_ns doesn&amp;#39;t work, but --board nrf5340dk_nrf5340_cpuapp works.[/quote]
&lt;p&gt;Yes, the &lt;span&gt;nrf5340dk_nrf5340_cpuapp_ns board hasn&amp;#39;t been tested and is unlikely to work properly.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
[quote user="mej7000"]I am not getting Nordic_lbs advertising.[/quote]
&lt;p&gt;&lt;span&gt;The device will advertise a different name, as set in prj.conf:&lt;br /&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;CONFIG_BT_DEVICE_NAME=&amp;quot;Nordic_MPSL_LBS&amp;quot;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;You can&amp;#39;t see this device either?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
[quote user="mej7000"]There doesn&amp;#39;t seem to be any ESB communication happening.[/quote]
&lt;p&gt;&lt;span&gt;&lt;br /&gt;Did you make the change in esb_peripherals.h as mentioned in the log?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Essentially you need to replace SWI0 with SWI3 in this file:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;/** The ESB event IRQ number when running on an nRF5 device. */
#define ESB_EVT_IRQ        SWI3_IRQn
/** The handler for @ref ESB_EVT_IRQ when running on an nRF5 device. */
#define ESB_EVT_IRQHandler SWI3_IRQHandler&lt;/pre&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I hope to find a better way to fix this in a future update. Now that I think if it maybe I can undef and redefine these somehow in the application files, to avoid having to change the SDK files.&lt;/span&gt;&lt;/p&gt;
[quote user="mej7000"]ptx appears to be sending 8 times, before generating errors.[/quote]
&lt;p&gt;The application FIFO is 8 items large, which is why it appears to work 8 times. In reality none of the messages are being sent,&amp;nbsp;which usually means there is no PRX enabled to pick up the packets. Alternatively it could be an issue if you didn&amp;#39;t change the SWI definition as mentioned above.&amp;nbsp;&lt;/p&gt;
[quote user="mej7000"]Also, I am not committed to using 5340 if you think a single core (nrf52832?) would work easier/better?[/quote]
&lt;p&gt;Using the nRF52 series is definitely easier. Unless you have a need for the additional performance or peripherals of the nRF5340 I would recommend sticking to one of the nRF52 devices.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;If you still can&amp;#39;t find the issue based on my input above I will take a look at your build and see if I can spot the issue.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;Best regards&lt;br /&gt;Torbjørn&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/468567?ContentTypeID=1</link><pubDate>Tue, 13 Feb 2024 11:25:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bc399c4a-7627-47db-853d-fbffa7d605fd</guid><dc:creator>mej7000</dc:creator><description>&lt;p&gt;Thanks. Here is what I found with the BLE/ESB demo.&lt;/p&gt;
&lt;p&gt;I flashed peripheral_lbs sample to the 5340 to make sure I understood the sample. peripheral_lbs worked as expected. I could both read btn1 and set led3.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;C:\nrf\ncs-esb-ble-mpsl-demo:&lt;/strong&gt;&lt;br /&gt;It seems that --board nrf5340dk_nrf5340_cpuapp_ns doesn&amp;#39;t work, but --board nrf5340dk_nrf5340_cpuapp works.&lt;/p&gt;
&lt;p&gt;I included a screen shot and rezipped the demo, although I didn&amp;#39;t modify anything I did do 3 nrf5340 builds, so in case I did something wrong there...&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I am not getting Nordic_lbs advertising.&lt;/li&gt;
&lt;li&gt;There doesn&amp;#39;t seem to be any ESB communication happening.&lt;/li&gt;
&lt;li&gt;ptx appears to be sending 8 times, before generating errors.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Also, I am not committed to using 5340 if you think a single core (nrf52832?) would work easier/better? Ultimately, all I need to do is have one &amp;quot;parent&amp;quot; in the network that relays ESB data to a BLE peripheral and to the App. The &amp;quot;child&amp;quot; nodes will only run ESB in a star topology. In the past (other hardware) I have used a proprietary protocol with one device additionally running a BLE UART to pass data to the App.&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/ncs_2D00_esb_2D00_ble_2D00_mpsl_2D00_demo2.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;nrf52832&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/nrf52832_2C00_-ncs_2D00_esb_2D00_ble_2D00_mpsl_2D00_demo2.png" /&gt;&lt;/p&gt;
&lt;p&gt;I had better luck with nrf52832 builds. ESB communications happened&amp;nbsp;right&amp;nbsp;away, but I am still not getting any BLE advertising. I included my version with both 5340 and 52832 builds.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/ncs_2D00_esb_2D00_ble_2D00_mpsl_2D00_demo-_2800_2_2900_.zip"&gt;devzone.nordicsemi.com/.../ncs_2D00_esb_2D00_ble_2D00_mpsl_2D00_demo-_2800_2_2900_.zip&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/468484?ContentTypeID=1</link><pubDate>Mon, 12 Feb 2024 20:22:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e3838efb-1e37-45b3-a52e-3ca97de06675</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi Michael&lt;/p&gt;
[quote user="mej7000"]&lt;div&gt;&lt;span&gt;CONFIG_ESB_MAX_PAYLOAD_LENGTH&lt;/span&gt;&lt;span&gt;=64&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;tx_payload&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;length&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;64&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;[/quote]
&lt;p&gt;Looks good. tx_payload.length can be changed from payload to payload, but should be no larger than CONFIG_ESB_MAX_PAYLOAD_LENGTH. The data buffer will be sized according to the CONFIG_ESB_MAX_PAYLOAD_LENGTH parameter.&amp;nbsp;&lt;/p&gt;
[quote user="mej7000"]&lt;p&gt;It looks like I just need to flash the following and counter data&amp;nbsp;moves from ptx-&amp;gt;prx-&amp;gt;BLE?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span&gt;flash&amp;nbsp;app_netcore to 5340&amp;nbsp;cpunet(s)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;flash&amp;nbsp;prx and ptx to the cpuapp(s)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;[/quote]
&lt;p&gt;There is no link between the ESB and BLE functionalities in the current example, any ESB -&amp;gt; BLE link would have to be added. The BLE functionality is just a straight port of the peripheral_lbs sample in the SDK.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Otherwise I agree with your summary &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f642.svg" title="Slight smile"&gt;&amp;#x1f642;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/468348?ContentTypeID=1</link><pubDate>Mon, 12 Feb 2024 09:21:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1e6152b9-17f8-4a4e-9207-96c468041710</guid><dc:creator>mej7000</dc:creator><description>&lt;p&gt;&lt;em&gt;&amp;quot;CONFIG_CLOCK_CONTROL_NRF_K32SRC_EXT_FULL_SWING was assigned the value y, but got the value n. Missing dependencies:&amp;nbsp;SOC_SERIES_NRF52X&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;...&lt;/p&gt;
[quote userid="2116" url="~/f/nordic-q-a/107827/esb-shockburst-running-on-nrf5340dk-s/468246"]For larger payloads this macro can&amp;#39;t really be used, you would have to assign data to the tx_payload.data[] buffer in some other way.&amp;nbsp;[/quote]
&lt;p&gt;Thanks. I was surprised to see the macro limited to 63 and feared I was misunderstanding something.&lt;/p&gt;
&lt;p&gt;As a test I did the following, which seems to work fine:&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_ESB_MAX_PAYLOAD_LENGTH&lt;/span&gt;&lt;span&gt;=64&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;tx_payload&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;length&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;64&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;I think I am ready to start with the BLE/ESB sample.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;[quote userid="2116" url="~/f/nordic-q-a/107827/esb-shockburst-running-on-nrf5340dk-s/466507"]You will find a separate sample for the nRF5340 netcore, while the&amp;nbsp;prx and ptx sample can be built either for the nRF5340 appcore, or for one of the nRF52 devices.&amp;nbsp;[/quote]
&lt;p&gt;It looks like I just need to flash the following and counter data&amp;nbsp;moves from ptx-&amp;gt;prx-&amp;gt;BLE?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span&gt;flash&amp;nbsp;app_netcore to 5340&amp;nbsp;cpunet(s)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;flash&amp;nbsp;prx and ptx to the cpuapp(s)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/468246?ContentTypeID=1</link><pubDate>Fri, 09 Feb 2024 14:37:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:923505ae-599c-49f2-9378-65fd1e4b4671</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi Michael&lt;/p&gt;
&lt;p&gt;Can you confirm that the issues with the&amp;nbsp;&lt;em&gt;CLOCK_CONTROL_NRF_K32SRC_EXT_FULL_SWING &lt;/em&gt;configuration occur when you&amp;#39;re building for the nRF5340?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It seems this configuration is only supported for the nRF52 series, not the nRF53. I will need to check what the recommended way is for enabling this on the nRF53 side and get back to you.&amp;nbsp;&lt;/p&gt;
[quote user="mej7000"]I would think that&amp;nbsp;ESB_CREATE_PAYLOAD&amp;nbsp;would need to support up to 252 characters, but maybe I am misunderstanding?[/quote]
&lt;p&gt;The ESB_CREATE_PAYLOAD macro is just a convenience macro for easily defining a static payload in the code. It uses another macro under the hood to handle a dynamic number of arguments (for the data bytes), and this macro is limited to 63 input variables.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For larger payloads this macro can&amp;#39;t really be used, you would have to assign data to the tx_payload.data[] buffer in some other way.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: esb, shockburst, running on nrf5340dk's</title><link>https://devzone.nordicsemi.com/thread/467980?ContentTypeID=1</link><pubDate>Wed, 07 Feb 2024 18:57:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:53eb5c4d-4a43-4551-b4b8-adb6c1b98c6a</guid><dc:creator>mej7000</dc:creator><description>&lt;p&gt;Thanks. I was able to compile successfully. However it generated the following warning...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;em&gt;&amp;quot;warning: The choice symbol CLOCK_CONTROL_NRF_K32SRC_EXT_FULL_SWING (defined at&lt;/em&gt;&lt;br /&gt;&lt;em&gt;drivers/clock_control/Kconfig.nrf:51) was selected (set =y), but CLOCK_CONTROL_NRF_K32SRC_XTAL&lt;/em&gt;&lt;br /&gt;&lt;em&gt;(defined at drivers/clock_control/Kconfig.nrf:37) ended up as the choice selection. See&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;a href="http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_CLOCK_CONTROL_NRF_K32SRC_EXT_FULL_SWING"&gt;http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_CLOCK_CONTROL_NRF_K32SRC_EXT_FULL_SWING&lt;/a&gt;&amp;nbsp;&lt;/em&gt;&lt;em&gt;and/or look up CLOCK_CONTROL_NRF_K32SRC_EXT_FULL_SWING in the menuconfig/guiconfig interface. The&amp;nbsp;&lt;/em&gt;&lt;em&gt;Application Development Primer, Setting Configuration Values, and Kconfig - Tips and Best Practices&amp;nbsp;&lt;/em&gt;&lt;em&gt;sections of the manual might be helpful too.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t really understand what the setting actually does and I couldn&amp;#39;t find an explanation anywhere... closest I found was this in devzone:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;em&gt;&amp;quot;Since you are using an oscillator instead of a low frequency crystal, try configuring the oscillator to&amp;nbsp;&lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/kconfig/index.html#CONFIG_CLOCK_CONTROL_NRF_K32SRC_EXT_FULL_SWING"&gt;EXT_FULL_SWING&lt;/a&gt;&amp;nbsp;or&amp;nbsp;&lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/kconfig/index.html#CONFIG_CLOCK_CONTROL_NRF_K32SRC_EXT_LOW_SWING"&gt;EXT_LOW_SWING&lt;/a&gt;(depending on the oscillator).&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I also found these alternatives settings:&lt;/p&gt;
&lt;pre style="padding-left:30px;"&gt;&lt;span&gt;# CONFIG_CLOCK_CONTROL_NRF_K32SRC_EXT_FULL_SWING=y&lt;/span&gt;&lt;br /&gt;&lt;span&gt;# CONFIG_CLOCK_CONTROL_NRF_K32SRC_EXT_LOW_SWING=y&lt;/span&gt;&lt;br /&gt;&lt;span&gt;# CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y&lt;/span&gt;&lt;br /&gt;&lt;span&gt;# CONFIG_CLOCK_CONTROL_NRF_K32SRC_SYNTH=y&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;It seems CLOCK_CONTROL_NRF_K32SRC_EXT_FULL_SWING&amp;nbsp;&amp;nbsp;is related to the type of clock source and that XL2 floating is not a problem... Can you&amp;nbsp;help me understand what these options are for?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;Also,&lt;/span&gt; (from the ptx sample) is this the best way to define the payload?&lt;/p&gt;
&lt;div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;em&gt;static struct esb_payload tx_payload = ESB_CREATE_PAYLOAD(0,&lt;/em&gt;&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;em&gt;&amp;nbsp; &amp;nbsp; 0x01, 0x00, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08);&lt;/em&gt;&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;based on the ptx sample it appears that if I want a payload of char[40] I would have to do the following:&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;em&gt;static struct esb_payload tx_payload = ESB_CREATE_PAYLOAD(0,&lt;/em&gt;&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;em&gt;&amp;nbsp; &amp;nbsp; 0x01, 0x00, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A,&lt;/em&gt;&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;em&gt;&amp;nbsp; &amp;nbsp; 0x01, 0x00, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A,&lt;/em&gt;&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;em&gt;&amp;nbsp; &amp;nbsp; 0x01, 0x00, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A,&lt;/em&gt;&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;em&gt;&amp;nbsp; &amp;nbsp; 0x01, 0x00, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A);&lt;/em&gt;&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;And, if ESB_CREATE_PAYLOAD .payload - &amp;quot;&lt;span&gt;Comma separated list of character data to put in the TX buffer. Supported values consist of 1 to &lt;strong&gt;63 characters&lt;/strong&gt;.&amp;quot; What happens if your&amp;nbsp;ESB_MAX_PAYLOAD_LENGTH is longer than 63, like 128?&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style="padding-left:30px;"&gt;
&lt;div&gt;
&lt;div&gt;&lt;em&gt;CONFIG_ESB_MAX_PAYLOAD_LENGTH=128&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;&lt;em&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;&lt;em&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;em&gt;config ESB_MAX_PAYLOAD_LENGTH&lt;/em&gt;&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;em&gt;&amp;nbsp; &amp;nbsp; int &amp;quot;Maximum payload size&amp;quot;&lt;/em&gt;&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;em&gt;&amp;nbsp; &amp;nbsp; default 32&lt;/em&gt;&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;em&gt;&amp;nbsp; &amp;nbsp; range 1 252&lt;/em&gt;&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;em&gt;&amp;nbsp; &amp;nbsp; help&lt;/em&gt;&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;em&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; The maximum size of the payload.&lt;/em&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;em&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;I would think that&amp;nbsp;ESB_CREATE_PAYLOAD&amp;nbsp;would need to support up to 252 characters, but maybe I am misunderstanding?&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>