<?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 radio ED, why getting zero for values?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/127521/nrf5340-radio-ed-why-getting-zero-for-values</link><description>Hi. I am looking into measuring radio channels&amp;#39; qualities by using Energy Detection (ED). But for the examples I&amp;#39;ve tried so far, I&amp;#39;ve been getting zero for all the readings across most if not all the channels. 
 I started with NCS v2.5.0 @ nrf\samples</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 26 Mar 2026 09:04:54 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/127521/nrf5340-radio-ed-why-getting-zero-for-values" /><item><title>RE: nRF5340 radio ED, why getting zero for values?</title><link>https://devzone.nordicsemi.com/thread/564080?ContentTypeID=1</link><pubDate>Thu, 26 Mar 2026 09:04:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c2748f21-c06f-4142-a786-b0b6573d0c6e</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;A few things here just to clarify a bit.&lt;/p&gt;
&lt;p&gt;When you are working on a higher level protocol api through either esb or the&amp;nbsp;rf py test&amp;nbsp;tool they are kind of mutually exclusive, meaning they rely on the radio being in default state when you start to use the api, an it rely on any (previous) configured configuration is not changed between api calls, it will very likely not handle well in any way that you switch between them without being very careful, see my initial reply here (From &amp;quot;&lt;span&gt;Be aware&amp;quot;)&lt;/span&gt;:&lt;br /&gt;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/127465/nrf5340-esb-scanning-rssi-across-channels/563421"&gt;https://devzone.nordicsemi.com/f/nordic-q-a/127465/nrf5340-esb-scanning-rssi-across-channels/563421&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Secondly, you can&amp;#39;t really mix low level register calls with higher level api calls no, that will very quickly break, but if you are only interested in just testing some specific functionality (e.g. energy detect) it is possible to do so by lower level register calls, however it still rely on the radio is setup correctly in for instance 802.15.4 mode in the first place and not mixed or dynamically switched with some ESB code before or in between. My input in this particular case have been to help you try out an evaluate the specific energy detect feature to see if it can meet your expectations, this before you start looking at a proper full implementation in your actual application. I guess that have led to some confusion.&lt;/p&gt;
&lt;p&gt;In your current code you are for instance configuring the radio to ESB mode and then performing energy detect, this is not possible no. It needs to be in 802.15.4 mode to perform energy detect (ED). The only way to perform ED in an application that is planning to use ESB normally, would be to disable ESB, ensure radio registers (including shortcuts, radio buffer and ppi channels) have default settings, then configure to 802.15.4 mode with specific channel, then perform one one several ED measurements for the channels you are interested in, then disable 802.15.4 mode, ensure radio registers &lt;span&gt;(including shortcuts, radio buffer and ppi channels) have default settings before you init ESB again. All should be done using the specific protocol api calls. Realistically this will take time and you need to be careful handling to get it right.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Going back to my initial reply I believe the best way&amp;nbsp;is to monitor the packet loss over time on individual channels, you can also store away the rssi measurements for each packet received to give the user a indication of the signal strength.&amp;nbsp;Reason doing it this way is that even if other sources may be present on a specific channel, they may not be problematic, either because the signal to noise radio is enough for the packet to be received anyways, or because the other sources are frequency hopping also, or only intermittently transmitting short packets on the channel in question.&lt;/p&gt;
&lt;p&gt;Hope that helps to explain why my answers seems to contradict themselves.&lt;/p&gt;
&lt;p&gt;Edit: Just to add some more comments:&lt;/p&gt;
&lt;p&gt;- Performing RSSI is faster than ED. In both case the radio need to&amp;nbsp;ramp up (130us for both) and then perform either energy detect (128us) or rssi measurements (pretty instant in comparison: 0.25us).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- I can see you have used channel 90 for ESB, be aware that this is&amp;nbsp;outside the ISM band (2.400 GHz to 2.4835 GHz).&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 radio ED, why getting zero for values?</title><link>https://devzone.nordicsemi.com/thread/564061?ContentTypeID=1</link><pubDate>Wed, 25 Mar 2026 23:40:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3cc651d0-0654-4f7a-8319-53bdd16f80f0</guid><dc:creator>esmart-engineering</dc:creator><description>&lt;p&gt;The link you provided is completely irrevelant to the questions we answered earlier on.&amp;nbsp; Your link is not even referring to the REGISTER method.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Please do not just reply for the sake of keeping the ticket alive.&amp;nbsp; It is wasting everybody&amp;#39;s time.&amp;nbsp; We need competent answer and not just non-sense useless respond.&amp;nbsp; If you do not know, please assign to someone who is familiar w/ the topics.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I have esaclated this to our sales rep at Nordic.&amp;nbsp; Again, please do not waste our time for incompetent respond.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF5340 radio ED, why getting zero for values?</title><link>https://devzone.nordicsemi.com/thread/564038?ContentTypeID=1</link><pubDate>Wed, 25 Mar 2026 13:01:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:871f7615-4916-462b-9423-abb9a424d155</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;You should only need to execute the following before you start measuring energy:&lt;br /&gt;&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/431357"&gt;RE: About Sample Source, &amp;quot; IEEE 802.15.4 PHY test tool&amp;quot; , i do not understand any command.&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Whether &amp;quot;normal&amp;quot; short GFSK modulated packets are detected by the energy detection I am not sure of, simple running at my home I could find that there was some energy detected on some channels (likely related to the WiFi).&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 radio ED, why getting zero for values?</title><link>https://devzone.nordicsemi.com/thread/563989?ContentTypeID=1</link><pubDate>Wed, 25 Mar 2026 01:21:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9d86c5c7-0726-4a0a-89eb-c9b8ec785a2a</guid><dc:creator>esmart-engineering</dc:creator><description>&lt;p&gt;Hi. If you are suggesting that there&amp;#39;s&amp;nbsp;no or little energy/noise on all the channels,&amp;nbsp;that&amp;#39;s quite the leap in speculation. I would imagine there were several more-likely reasons for this before we jumped to this extreme.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;We adjusted the code to only scan channel 90 (2490MHz), and had a separate pair of nRF devices sending ESB packets to try &amp;quot;flooding&amp;quot; channel 90. The results were still showing zeros for the ED values.&lt;/li&gt;
&lt;li&gt;Our test environment is not in some &amp;quot;clean lab&amp;quot;; there is plenty of traffic over the air. When using a typical WiFi analyzer app, we can confirm that there&amp;#39;s plenty of energy between -30dBm and -75dBm across all the 2.4GHz WiFi channels (from our own routers, other offices&amp;#39; routers, etc).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For example, the snippet code from &lt;a href="https://docs.nordicsemi.com/bundle/ps_nrf5340/page/radio.html#ariaid-title24"&gt;here&lt;/a&gt;&amp;nbsp;is quite short. Perhaps there&amp;#39;s some other code that&amp;#39;s not explicitly shown that I&amp;#39;m missing from the example project I attached?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF5340 radio ED, why getting zero for values?</title><link>https://devzone.nordicsemi.com/thread/563820?ContentTypeID=1</link><pubDate>Sun, 22 Mar 2026 18:31:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0213c9d2-c7e2-45bd-8aa2-140acee00f3c</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I think the secret is within the description of the api call &amp;quot;Energy level in units compliant to IEEE Std. 802.15.4-2015 chapter 10.2.5.&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;/**
 * @brief  Converts energy level received during the energy detection procedure to IEEE Std. 802.15.4-2015 compliant value.
 *
 * @param ed_dbm  Energy level in dBm
 *
 * @return uint8_t  Energy level in units compliant to IEEE Std. 802.15.4-2015 chapter 10.2.5.
 */
uint8_t nrf_802154_energy_level_from_dbm_calculate(int8_t ed_dbm);&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;And inside the api you can find that:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;/** Minimum value of ED in dBm for conversion to units conforming IEEE Std. 802.15.4-2015 chapter 10.2.5. */
#define ED_DBM_MIN (PHY_MIN_RECEIVER_SENSITIVITY + 10)

/** Maximum value of ED in dBm for conversion to units conforming IEEE Std. 802.15.4-2015 chapter 10.2.5. */
#define ED_DBM_MAX (EDSAMPLE_MAX_REPORTED_VALUE + ED_RSSIOFFS)
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;So looks like the range is between -30dBm to -75dBm. Any value below the floor of -75dBm will return 0.&lt;/p&gt;
&lt;p&gt;The spec&amp;#39;s rationale: signals below -75 dBm are too weak to be reliably decoded anyway, so reporting them as &amp;quot;no energy&amp;quot; is a deliberate design choice, it avoids false congestion reports from noise.&lt;/p&gt;
&lt;p&gt;Kenneth&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>