<?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 PTX and PRX with no ACK - how to wait for TX ready</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/119805/esb-ptx-and-prx-with-no-ack---how-to-wait-for-tx-ready</link><description>Hi, 
 we have ESB PTX and PRX couple from nRF54H20 
 nRF54H20DK (rev. 0.9.1), SDK: v2.9.0-nRF54H20-rc2 and the same Toolchain, IDE: VSCode + nRF Connect plugin 
 build for CPURAD 
 configured to 4Mbps noACK and never disable TX radio 
 I need transmit</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 18 Mar 2025 11:33:26 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/119805/esb-ptx-and-prx-with-no-ack---how-to-wait-for-tx-ready" /><item><title>RE: ESB PTX and PRX with no ACK - how to wait for TX ready</title><link>https://devzone.nordicsemi.com/thread/527818?ContentTypeID=1</link><pubDate>Tue, 18 Mar 2025 11:33:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a351dbb7-960a-44af-b3c3-559f3b812c01</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Peter,&amp;nbsp;&lt;br /&gt;I think you are hitting the limit. You can&amp;#39;t expect the&amp;nbsp;actual payload data to be equal to theoretical bit rate. This is due to:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- Overhead: address byte, preamble, CRC&lt;/p&gt;
&lt;p&gt;- Radio switching time. The radio has to switch between TX and RX. Even with FAST_SWITCHING the switching time is 40us.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;The longer the packet the less number of radio switching. However , longer packet may have higher chance of interference and get corrupted. If you&amp;nbsp;enable re-transmission the whole bigger packet will have to be retransmitted. So you need to balance between high through put and waste on packet loss and retransmission.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ESB PTX and PRX with no ACK - how to wait for TX ready</title><link>https://devzone.nordicsemi.com/thread/527709?ContentTypeID=1</link><pubDate>Mon, 17 Mar 2025 15:44:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5b490f65-f94b-4062-bad2-0a04e41e3579</guid><dc:creator>Peter Langer Keysoft</dc:creator><description>&lt;p&gt;Thanks for your answer,&lt;/p&gt;
&lt;p&gt;Activating ESB_NEVER_DISABLE_TX is excluded from the activated ESB_FAST_SWITCHING.&lt;/p&gt;
&lt;p&gt;When I activated&amp;nbsp;&lt;span&gt;ESB_NEVER_DISABLE_TX&amp;nbsp; to YES ESB handler was not handled. Only FAST_SWITCHING is good solution, but he have data rate only 3.34Mbps (50 x 256B / 29ms).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I want to know why data rate is not 4Mbps and why activating ESB_NEVER_DISABLE_TX stops the handler service.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Here is oscillogpraph for one ESB packet and 50x ESB packets&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&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/nRF54H20_5F00_Full-rate_5F00_50xESB_5F00_detail_5F00_logic-analyzer.png" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&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/nRF54H20_5F00_Full-rate_5F00_50xESB_5F00_power-profiler.png" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I want to ask if when setting CONFIG_ESB_TX_FIFO_SIZE=50 and sending 50 ESB packets in quick succession, do I have to wait for TX READY from the ESB handler.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ESB PTX and PRX with no ACK - how to wait for TX ready</title><link>https://devzone.nordicsemi.com/thread/527700?ContentTypeID=1</link><pubDate>Mon, 17 Mar 2025 15:17:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cb13bda7-6b1f-4eb6-bc35-3042051f2044</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Peter,&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
[quote user="Peter Langer Keysoft sro"]CONFIG_ESB_TX_FIFO_SIZE&lt;br /&gt;CONFIG_ESB_RX_FIFO_SIZE[/quote]
&lt;p&gt;They are the length of the buffers, aka how many packets you can queue:&lt;br /&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/pastedimage1742224111163v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
[quote user="Peter Langer Keysoft sro"]&lt;p&gt;What values ​​should they have when we want to send more than 10 ESB packets in a row?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;[/quote]
&lt;p&gt;&amp;nbsp;If you want to be able to queue 10 ESB packet to send then you set&amp;nbsp;&lt;span&gt;CONFIG_ESB_TX_FIFO_SIZE=10.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
[quote user="Peter Langer Keysoft sro"]&lt;p&gt;What about the &amp;quot;PIPE&amp;quot; variable in the &amp;quot;esb_payload&amp;quot; structure? Should I, as a user, set it?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;[/quote]
&lt;p&gt;You can read more about &amp;quot;pipe&amp;quot; here:&amp;nbsp;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/protocols/esb/index.html#pipes_and_addressing"&gt;https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/protocols/esb/index.html#pipes_and_addressing&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Basically it&amp;#39;s the logical address of each node that&amp;#39;s connected to the PRX/PTX.&amp;nbsp;&lt;/p&gt;
[quote user="Peter Langer Keysoft sro"]&lt;p&gt;How to properly use &amp;quot;esb_flush_tx()&amp;quot; when I want to have minimal delay between ESB packets?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;[/quote]
&lt;p&gt;I don&amp;#39;t think using this can reduce the delay between ESB packet.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Please try the&amp;nbsp;CONFIG_ESB_FAST_SWITCHING=y to see it reduce the time it take between packets.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;Regarding the Kconfig never disable TX:&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;pre class="ui-code" data-mode="text"&gt;config ESB_NEVER_DISABLE_TX
&amp;#160; &amp;#160; select EXPERIMENTAL
&amp;#160; &amp;#160; bool &amp;quot;Never disable radio transmission stage&amp;quot;
&amp;#160; &amp;#160; help
&amp;#160; &amp;#160; &amp;#160; This option changes the radio behavior so that the
&amp;#160; &amp;#160; &amp;#160; transmitter remains IDLE between transmissions instead of being disabled.
&amp;#160; &amp;#160; &amp;#160; This is applicable only when the packet is not acknowledged. Otherwise,
&amp;#160; &amp;#160; &amp;#160; the radio emitter needs to be turned off to enable the radio receiver.
&amp;#160; &amp;#160; &amp;#160; This reduces delay between consecutive transmissions but consumes more energy.&lt;/pre&gt;&lt;br /&gt;
&lt;div&gt;&lt;span&gt;From what written here it should be able to reduce the time between TX packets. Please try testing on the SDK&amp;#39;s sample.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ESB PTX and PRX with no ACK - how to wait for TX ready</title><link>https://devzone.nordicsemi.com/thread/527574?ContentTypeID=1</link><pubDate>Mon, 17 Mar 2025 10:43:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1e0b150c-95d7-49f2-a1f0-17351ecd8370</guid><dc:creator>Peter Langer Keysoft</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Now we are testing the modified original sample. We have increased the ESB payload to 251 bytes (CONFIG_ESB_MAX_PAYLOAD_LENGTH=251). What is the role of the following parameters?&lt;br /&gt;CONFIG_ESB_TX_FIFO_SIZE&lt;br /&gt;CONFIG_ESB_RX_FIFO_SIZE&lt;/p&gt;
&lt;p&gt;What values ​​should they have when we want to send more than 10 ESB packets in a row?&lt;/p&gt;
&lt;p&gt;What about the &amp;quot;PIPE&amp;quot; variable in the &amp;quot;esb_payload&amp;quot; structure? Should I, as a user, set it?&lt;/p&gt;
&lt;p&gt;How to properly use &amp;quot;esb_flush_tx()&amp;quot; when I want to have minimal delay between ESB packets?&lt;/p&gt;
&lt;p&gt;******************&lt;/p&gt;
&lt;p&gt;When I changed the parameter on PTX and PRX &amp;quot;Never turn off radio transmission stage&amp;quot; to YES, communication stopped.&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/nRF54H20_5F00_Never-disable-radio-transmission-stage-_3D00_-YES.png" /&gt;&lt;/p&gt;
&lt;p&gt;BR&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ESB PTX and PRX with no ACK - how to wait for TX ready</title><link>https://devzone.nordicsemi.com/thread/527553?ContentTypeID=1</link><pubDate>Mon, 17 Mar 2025 09:25:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d1cc3480-2b73-44be-b63c-233ffcd911c7</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Peter,&amp;nbsp;&lt;br /&gt;&lt;br /&gt;I&amp;#39;m not so sure why you don&amp;#39;t have the callback. On the sample the callback is triggered regardless if noack is set or not. My understanding is that if noack is set&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;ESB_EVENT_TX_SUCCESS will always returned.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ESB PTX and PRX with no ACK - how to wait for TX ready</title><link>https://devzone.nordicsemi.com/thread/527422?ContentTypeID=1</link><pubDate>Fri, 14 Mar 2025 16:15:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c8f1634e-118d-4edd-989f-da596cd94931</guid><dc:creator>Peter Langer Keysoft</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;thanks for the reply. I tested the original sample with your suggestions. It working.&lt;/p&gt;
&lt;p&gt;In the sample I see that PTX waits for the &amp;quot;ready&amp;quot; variable which is handled in the ESB handler. But in our project this handler is not handled when we turn off ACK (noACK = true). What could be the reason?&lt;/p&gt;
&lt;p&gt;BR&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ESB PTX and PRX with no ACK - how to wait for TX ready</title><link>https://devzone.nordicsemi.com/thread/527402?ContentTypeID=1</link><pubDate>Fri, 14 Mar 2025 14:29:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:40712cd5-8bd7-4fc2-9f87-7b6fada3679d</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Peter,&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Could you try to test with the esb samples with the following&amp;nbsp;&lt;br /&gt;On both PTX and PRX:&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;config&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;selective_auto_ack&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;true&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br /&gt;And on PTX:&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;tx_payload&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;noack&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;true&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Do you see the packets arrive on the PRX&amp;nbsp; and no ACK on the PTX ?&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Do you have other board for example nRF52 or nRF54L to test ? Just want to make sure it&amp;#39;s not the issue with NRF54H cpurad&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>