<?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>nRF5340 ESB, scanning RSSI across channels</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/127465/nrf5340-esb-scanning-rssi-across-channels</link><description>I have worked a bit with ESB and see that there are functions to get/set a channel, as well as check the RSSI value in the &amp;quot;struct esb_payload&amp;quot; for a packet. Are there already some existing functions in the ESB library, or lower level libraries, that</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 19 Mar 2026 10:54:24 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/127465/nrf5340-esb-scanning-rssi-across-channels" /><item><title>RE: nRF5340 ESB, scanning RSSI across channels</title><link>https://devzone.nordicsemi.com/thread/563656?ContentTypeID=1</link><pubDate>Thu, 19 Mar 2026 10:54:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ca82eda9-e98f-477a-9f20-9d85f71238d7</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Just looking at it from a hardware perspective the RSSI seems to be the way to go here.&lt;/p&gt;
&lt;p&gt;RSSI is fast and actually measure the channel you are interested in, it can also be triggered several times if you need to average it:&lt;br /&gt;&lt;a href="https://docs.nordicsemi.com/bundle/ps_nrf5340/page/radio.html#ariaid-title167"&gt;https://docs.nordicsemi.com/bundle/ps_nrf5340/page/radio.html#ariaid-title167&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;LQI is only available after receiving an 802.15.4 packet, so not relevant here.&lt;/p&gt;
&lt;p&gt;ED is somewhat similar to an averaged RSSI value, however the channel is different than used by ESB, it&amp;#39;s significant slower than RSSI, but you can find a low level code example in the documentation if you want to try it out:&lt;br /&gt;&lt;a href="https://docs.nordicsemi.com/bundle/ps_nrf5340/page/radio.html#ariaid-title24"&gt;https://docs.nordicsemi.com/bundle/ps_nrf5340/page/radio.html#ariaid-title24&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Kenneth&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF5340 ESB, scanning RSSI across channels</title><link>https://devzone.nordicsemi.com/thread/563629?ContentTypeID=1</link><pubDate>Thu, 19 Mar 2026 04:33:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d609f7d9-7475-434c-8cef-1d6d62d7d3e1</guid><dc:creator>esmart-engineering</dc:creator><description>&lt;p&gt;I reviewed the sample code at&amp;nbsp;&lt;span&gt;NCS v2.5.0 @&amp;nbsp;&lt;/span&gt;&lt;span style="text-decoration:underline;"&gt;nrf\samples\peripheral\802154_phy_test\&lt;/span&gt; some more, ensured my app core is the &amp;quot;Remote IPC shell&amp;quot; project, and focused mostly on ED rather than LQI (my understanding is that ED is a measure of how each channel&amp;#39;s quality is, and LQI is a measure of overall quality independent of channel).&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve been noticing that when checking ED by doing &amp;quot;custom changemode 1&amp;quot; and then repeatedly doing &amp;quot;custom lgeted&amp;quot;, it keeps reporting 0x0000. Could it be related to sampling time from ptt_rf_ed() function, or perhaps I&amp;#39;m not checking the right channel?&lt;/p&gt;
&lt;p&gt;If it&amp;#39;s an issue with which channel I&amp;#39;m checking, can I get some guidance on how to adjust the channel? I have a slight understanding &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/100788/about-sample-source-ieee-802-15-4-phy-test-tool-i-do-not-understand-any-command"&gt;from here&lt;/a&gt;, but I&amp;#39;ve tried various commands and haven&amp;#39;t been able to change the result of &amp;quot;custom lgetchannel&amp;quot; being 11 (when I run it from the CMD mode device). I&amp;#39;ve tried &amp;quot;lsetchannel&amp;quot;, &amp;quot;rsetchannel&amp;quot;, and &amp;quot;setchannel&amp;quot; (on both CMD and DUT devices&amp;#39; terminals) but I&amp;#39;m not seeing a difference.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF5340 ESB, scanning RSSI across channels</title><link>https://devzone.nordicsemi.com/thread/563621?ContentTypeID=1</link><pubDate>Wed, 18 Mar 2026 23:45:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e9bc0fb3-54e3-44cc-af54-e0d6afecee40</guid><dc:creator>esmart-engineering</dc:creator><description>&lt;p&gt;Please have someone with LQI and ED (low level) knowledge to answer our question.&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF5340 ESB, scanning RSSI across channels</title><link>https://devzone.nordicsemi.com/thread/563545?ContentTypeID=1</link><pubDate>Wed, 18 Mar 2026 10:31:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c72a1d24-8c64-427f-8df6-6f4802d736bc</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I am not aware of other way than using RSSI no.&lt;/p&gt;
&lt;p&gt;I would expect disable and enable ESB take approx the same time as executing rssi_measurer_scan_channel() for one channel.&lt;/p&gt;
&lt;p&gt;Kenneth&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF5340 ESB, scanning RSSI across channels</title><link>https://devzone.nordicsemi.com/thread/563503?ContentTypeID=1</link><pubDate>Tue, 17 Mar 2026 19:26:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7c28add3-5c03-40f8-b5fe-1e5408d3bb81</guid><dc:creator>esmart-engineering</dc:creator><description>&lt;p&gt;The manual sweep would suit our purposes better for AFH, but we don&amp;#39;t want to keep enabling and disabling ESB, as we have tight timing constraints for how often ESB is sending and for how often we check RSSI.&lt;/p&gt;
&lt;p&gt;Are there other measures of radio channel quality that we can utilize instead? I&amp;#39;ve seen some documentation about &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/66203/want-to-find-lqi-link-quality-indicator"&gt;measuring LQI&lt;/a&gt;&amp;nbsp;or &lt;a href="https://docs.nordicsemi.com/bundle/ncs-2.5.0/page/nrfxlib/nrf_802154/doc/api.html#rssi_measurement_function"&gt;using energy detection (ED)&lt;/a&gt;, both of which seem to be for radio but are more related to 802.15.4 protocol. Could something like this be used alongside ESB, almost as if it&amp;#39;s taking advantage of&amp;nbsp;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-2.5.0/page/nrfxlib/nrf_802154/doc/multiprotocol_support.html"&gt;&amp;quot;multiprotocol support&amp;quot; (PHY arbiter)&lt;/a&gt;? The closest sample I&amp;#39;ve seen available is at NCS v2.5.0 @ &lt;span style="text-decoration:underline;"&gt;nrf\samples\peripheral\802154_phy_test\,&lt;/span&gt; but it is more for RSSI; could it perhaps be repurposed for LQI or ED?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF5340 ESB, scanning RSSI across channels</title><link>https://devzone.nordicsemi.com/thread/563421?ContentTypeID=1</link><pubDate>Tue, 17 Mar 2026 10:25:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e5cf7c85-3d63-402b-841f-3e8515ef12e6</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;All communication in the 2.4GHz band is packet based and changes continuously. RSSI might give some indication on the receive strength, e.g. whether the peer device is near or far away, but it&amp;#39;s not very useful for any kind of assessment of the channel. If you want such functionality, then simply over time have an array where you for instance monitor the amount of retransmissions or packet lost on the channels used, and then based on that you can try to avoid specific channels that you see there is more loss on than others.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you want to manually sweep through channels to measure RSSI, then I expect you need to disable ESB, manually do as you already do in&amp;nbsp;rssi_measurer_scan_channel_repeat(), then enable ESB again afterwards.&amp;nbsp;Be aware that the&amp;nbsp;&lt;span&gt;rssi_measurer_scan_channel_repeat() seems to rely on a lot of radio registers have their default reset state, which might not be the case if ESB is initialized, hopefully disabling ESB will reset the radio, else you may need to attach a debugger and find which registers that ESB might have left configured after disable and write them back to default reset state before you do the&amp;nbsp;rssi_measurer_scan_channel_repeat().&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Kenneth&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>