<?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>BLE+Wifi coexistence</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/116966/ble-wifi-coexistence</link><description>I am trying BLE+WiFi coexistence on NCS 2.8.0 with nRF7002DK and finding some issues. 
 
 First is that it&amp;#39;s non-functional. Running the wifi/ble_coex example, there is no activity on the COEX_REQUEST and COEX_STATUS0 pins. 
 Tracked that down to the</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 21 Feb 2025 08:36:38 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/116966/ble-wifi-coexistence" /><item><title>RE: BLE+Wifi coexistence</title><link>https://devzone.nordicsemi.com/thread/524017?ContentTypeID=1</link><pubDate>Fri, 21 Feb 2025 08:36:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fe547a94-1eaa-4ce9-b848-9969f94c8832</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;Hi!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thank you so much for clarifying.&lt;/p&gt;
[quote user="Remi.G"]For 5GHz without shared antenna, i wouldn&amp;#39;t expect wifi to generate or use the coex signals at all.[/quote]
&lt;p&gt;I agree with your understanding. This is a fair assumption.&lt;/p&gt;
&lt;p&gt;I will check with the team and get back to you within 3-4 business days.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Håkon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE+Wifi coexistence</title><link>https://devzone.nordicsemi.com/thread/523954?ContentTypeID=1</link><pubDate>Thu, 20 Feb 2025 17:24:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d70ff5d7-99c1-4c66-a969-21197ba936c5</guid><dc:creator>Remi.G</dc:creator><description>&lt;p&gt;Sorry, I haven&amp;#39;t been able to try these yet. We will need to update to v2.9.0 before I can integrate these, which will take some time.&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t see a fix for the reduced throughput at 5GHz, just the scanning-stall fix. Was that also the cause of reduced throughput? For 5GHz without shared antenna, i wouldn&amp;#39;t expect wifi to generate or use the coex signals at all.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE+Wifi coexistence</title><link>https://devzone.nordicsemi.com/thread/523853?ContentTypeID=1</link><pubDate>Thu, 20 Feb 2025 09:58:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7d0e8c4a-8847-4cbf-b484-22325fc83755</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;My two last replies summarizes the proposed fixes, with links to the specific PR&amp;#39;s.&lt;/p&gt;
&lt;p&gt;Is there any items in particular that you are querying about?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Håkon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE+Wifi coexistence</title><link>https://devzone.nordicsemi.com/thread/523788?ContentTypeID=1</link><pubDate>Thu, 20 Feb 2025 01:16:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b2296b1c-f4c5-41cd-9c82-3ffe108e65dd</guid><dc:creator>xqinx</dc:creator><description>&lt;p&gt;Hi Hakon,&lt;/p&gt;
&lt;p&gt;Is there any updates on your side on this issue w.r.t. to the outstanding items?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE+Wifi coexistence</title><link>https://devzone.nordicsemi.com/thread/522357?ContentTypeID=1</link><pubDate>Tue, 11 Feb 2025 08:32:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1c64f8c9-d1f8-4290-a17e-b92006676d11</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Yes, there is an API to disable the COEX from the nRF53:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/nrfconnect/sdk-nrf/blob/v2.7-branch/subsys/mpsl/cx/nrf700x/mpsl_cx_nrf700x_rpc.c#L36"&gt;https://github.com/nrfconnect/sdk-nrf/blob/v2.7-branch/subsys/mpsl/cx/nrf700x/mpsl_cx_nrf700x_rpc.c#L36&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can call this by including &amp;quot;#include &amp;lt;mpsl/mpsl_cx_nrf700x.h&amp;gt;&amp;quot; in your application.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Håkon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE+Wifi coexistence</title><link>https://devzone.nordicsemi.com/thread/522283?ContentTypeID=1</link><pubDate>Mon, 10 Feb 2025 16:56:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b9fa058d-4b5d-44fa-b1ea-48682a3fa471</guid><dc:creator>Remi.G</dc:creator><description>&lt;p&gt;For the last item, is there an API to disable coex signaling from BLE? WiFi has a runtime API, but I see only static configs for BLE.&lt;/p&gt;
&lt;p&gt;Ideally there would be handshaking between those two, as it would be easy to miss this dependency when bringing the stack down.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE+Wifi coexistence</title><link>https://devzone.nordicsemi.com/thread/521696?ContentTypeID=1</link><pubDate>Thu, 06 Feb 2025 11:35:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2d3f076c-9277-424e-91e0-c49b4f719173</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;My apologies for not updating you.&lt;/p&gt;
&lt;p&gt;We have addressed&amp;nbsp;&lt;/p&gt;
[quote user="hkn"]&lt;p&gt;&lt;/p&gt;
&lt;p&gt;* Missing DTS&lt;/p&gt;[/quote]
&lt;p&gt;with this PR:&amp;nbsp;&lt;a href="https://github.com/zephyrproject-rtos/zephyr/pull/83028"&gt;https://github.com/zephyrproject-rtos/zephyr/pull/83028&lt;/a&gt;&lt;/p&gt;
[quote user="hkn"]&lt;p&gt;* Reduced throughput when connected to 5 GHz&lt;/p&gt;
&lt;p&gt;* COEX blocked during scanning for up to 500 ms (even 5 GHz)&lt;/p&gt;[/quote][quote user="hkn"]* Long periods of GRANT pin toggling if using incorrect SSID[/quote]
&lt;p&gt;These issues are, in the short term, addressed with this PR:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/zephyrproject-rtos/zephyr/pull/83104/commits/4e9a0414ea6f4e2d22914246aa352728dd3e19ae"&gt;https://github.com/zephyrproject-rtos/zephyr/pull/83104/commits/4e9a0414ea6f4e2d22914246aa352728dd3e19ae&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Where we introduced a kconfig entry, CONFIG_NRF_WIFI_COEX_DISABLE_PRIORITY_WINDOW_FOR_SCAN, to explicitly disable the feature.&amp;nbsp;&lt;/p&gt;
[quote user="hkn"]&lt;p&gt;&lt;/p&gt;
&lt;p&gt;* Pulse on GRANT pin when turning off power.&lt;/p&gt;[/quote]
&lt;p&gt;&lt;span&gt;We are presently trying to experiment to see if a&amp;nbsp;external pull-down on the GRANT signal will help&amp;nbsp;to minimize this pulse, and see if this is an acceptable solution, given that there will be some added current consumption when the pin is active.&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
[quote user="Remi.G"]You may also want to investigate the RPU driver behavior when nRF7002 is shutdown, as disabling IOVDD while still driving BLE coex signals will violate the IO spec. I expect that leaving IOVDD enabled, but BUCKEN low, should still have similar low power without IO issues.[/quote]
&lt;p&gt;In this case, the coex signalling should be disabled to ensure no backpowering of the nRF7002. Leaving IOVDD enabled while BUCKEN is low is not allowed, per the supply sequencing in our datasheet:&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://docs.nordicsemi.com/bundle/ps_nrf7002/page/chapters/hw_layout/doc/hw_layout.html#ariaid-title13"&gt;https://docs.nordicsemi.com/bundle/ps_nrf7002/page/chapters/hw_layout/doc/hw_layout.html#ariaid-title13&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;Kind regards,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;Håkon&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: BLE+Wifi coexistence</title><link>https://devzone.nordicsemi.com/thread/521597?ContentTypeID=1</link><pubDate>Wed, 05 Feb 2025 15:31:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c16f091e-327d-4f01-9c02-c0026db00977</guid><dc:creator>Remi.G</dc:creator><description>&lt;p&gt;Any updates on this issue?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE+Wifi coexistence</title><link>https://devzone.nordicsemi.com/thread/515303?ContentTypeID=1</link><pubDate>Tue, 17 Dec 2024 14:48:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0ca4a3f5-3134-44ee-9ce5-6af1f69c3a88</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
[quote user="Remi.G"]You may also want to investigate the RPU driver behavior when nRF7002 is shutdown, as disabling IOVDD while still driving BLE coex signals will violate the IO spec. I expect that leaving IOVDD enabled, but BUCKEN low, should still have similar low power without IO issues.[/quote]
&lt;p&gt;I will also raise this concern.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Håkon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE+Wifi coexistence</title><link>https://devzone.nordicsemi.com/thread/515172?ContentTypeID=1</link><pubDate>Mon, 16 Dec 2024 15:45:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ac18bfdc-f598-443d-956e-3270dbf5c179</guid><dc:creator>Remi.G</dc:creator><description>&lt;p&gt;That covers the issues I&amp;#39;ve seen.&lt;/p&gt;
&lt;p&gt;You may also want to investigate the RPU driver behavior when nRF7002 is shutdown, as disabling IOVDD while still driving BLE coex signals will violate the IO spec. I expect that leaving IOVDD enabled, but BUCKEN low, should still have similar low power without IO issues.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE+Wifi coexistence</title><link>https://devzone.nordicsemi.com/thread/515043?ContentTypeID=1</link><pubDate>Mon, 16 Dec 2024 08:34:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5f3f04f3-e72e-4c1d-9bd1-b2c6ea1e7323</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;Thank you for confirming!&lt;/p&gt;
&lt;p&gt;I believe I have recreated all scenarios:&lt;/p&gt;
&lt;p&gt;* Missing DTS&lt;/p&gt;
&lt;p&gt;* Long periods of GRANT pin toggling if using incorrect SSID&lt;/p&gt;
&lt;p&gt;* Pulse on GRANT pin when turning off power.&lt;/p&gt;
&lt;p&gt;* Reduced throughput when connected to 5 GHz&lt;/p&gt;
&lt;p&gt;* COEX blocked during scanning for up to 500 ms (even 5 GHz)&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Please let me know if I have missed any item, or misunderstood anything.&lt;/p&gt;
&lt;p&gt;I have reported all these back to the developers.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thank you for your patience in this matter, and a huge thank you for taking the time to report these issues to us and helping us improve our delivery. This is highly appreciated!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Håkon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE+Wifi coexistence</title><link>https://devzone.nordicsemi.com/thread/514965?ContentTypeID=1</link><pubDate>Fri, 13 Dec 2024 20:58:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:20c08761-4cb8-4335-81a8-0653c68d8439</guid><dc:creator>Remi.G</dc:creator><description>&lt;p&gt;My nRF7002 DK is v1.0.2. I have two boards with that version, they behave similar to each other.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE+Wifi coexistence</title><link>https://devzone.nordicsemi.com/thread/514589?ContentTypeID=1</link><pubDate>Wed, 11 Dec 2024 16:14:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:be8a300e-1be4-4683-a066-48f1af782920</guid><dc:creator>Remi.G</dc:creator><description>&lt;p&gt;I am currently out of town, but will check the nRF7002-DK version when I get back at the end of this week.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE+Wifi coexistence</title><link>https://devzone.nordicsemi.com/thread/514573?ContentTypeID=1</link><pubDate>Wed, 11 Dec 2024 15:29:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:51411c42-06f5-41c9-9667-e01241f037b7</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="Remi.G"]For MPSL_CX_ANY_SUPPORT, I understand it&amp;#39;s set based on devicetree setting. But in NCS 2.8.0, that setting is only in nrf7002dk_nrf5340_cpunet.dts, not in nrf7002dk_nrf5340_cpuapp.dts, so it is only being set for cpunet. It would be reasonable to assume that only cpunet needs it as that&amp;#39;s where the signals are driven, but just the initialization step on cpuapp for the IOs are missing when that setting is not present. Older NCS versions had it in both.[/quote]
&lt;p&gt;Yes, you are 100% correct here. My deepest apologies for totally misunderstanding your initial point. This is a clear bug from our side.&lt;/p&gt;
&lt;p&gt;The nRF5340 NRF_GPIO-&amp;gt;PIN_CNF[] field MCUSEL (bits 28-30) are default set to the app core, which requires the application core to know about which pins to forward to either peripherals or the network core.&lt;/p&gt;
&lt;p&gt;I have reported this as a separate issue with high priority.&lt;/p&gt;
[quote user="Remi.G"]For the ~1 second COEX_GRANT high test, it was&amp;nbsp;&lt;strong&gt;not&lt;/strong&gt; with a valid SSID. The intent was to reproduce a scenario where a device was periodically scanning and connecting to AP, which may not be available, while remaining connected to BLE. Even 0.5 seconds with no grant should cause a glitch on BLE real-time traffic, so that is undesirable.[/quote]
&lt;p&gt;I see up to 5 seconds of blocking in this scenario. I have made the wi-fi coex team aware of this.&lt;/p&gt;
&lt;p&gt;I have also reported that 0.5 seconds is too high in a working scenario. A task as been generated to look into improving this scenario.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;With a successful wifi-connection:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I am seeing a throughput reduction (and high variation) when connected to 5 GHz (ch 36), with&amp;nbsp;&lt;span&gt;CONFIG_NRF70_SR_COEX_RF_SWITCH=n&lt;/span&gt;&amp;nbsp;and running the tests:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;[local] received 2433420 bytes (2376 KB) in 4916 GATT writes at 977544 bps
[local] received 2631420 bytes (2569 KB) in 5316 GATT writes at 1057160 bps
[local] received 2739330 bytes (2675 KB) in 5534 GATT writes at 1100512 bps
[local] received 2713590 bytes (2649 KB) in 5482 GATT writes at 1090170 bps
[local] received 2771505 bytes (2706 KB) in 5599 GATT writes at 1113360 bps&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Reduced with approx. 15-20% throughput in my test case.&lt;/p&gt;
&lt;p&gt;And as you mention,&amp;nbsp;I see some &amp;quot;slots&amp;quot; of between 50 and 100 ms:&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/pastedimage1733929487512v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;With CONFIG_NRF70_SR_COEX_RF_SWITCH=y, I see around 1.0-1.1 Mbit/s throughput with bluetooth.&lt;/p&gt;
&lt;p&gt;Iperf is steadily reporting 9 MBit/s.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Which version of the nRF7002-DK are you testing with? I am using v1.0.3 and also tested with an older revision v0.7.4, both of these have the same results as above.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Håkon&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE+Wifi coexistence</title><link>https://devzone.nordicsemi.com/thread/514324?ContentTypeID=1</link><pubDate>Tue, 10 Dec 2024 15:40:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c53b6274-ee2c-4fc8-844c-4c65b7a2f9c5</guid><dc:creator>Remi.G</dc:creator><description>&lt;p&gt;For MPSL_CX_ANY_SUPPORT, I understand it&amp;#39;s set based on devicetree setting. But in NCS 2.8.0, that setting is only in nrf7002dk_nrf5340_cpunet.dts, not in nrf7002dk_nrf5340_cpuapp.dts, so it is only being set for cpunet. It would be reasonable to assume that only cpunet needs it as that&amp;#39;s where the signals are driven, but just the initialization step on cpuapp for the IOs are missing when that setting is not present. Older NCS versions had it in both.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;For the ~1 second COEX_GRANT high test, it was&amp;nbsp;&lt;strong&gt;not&lt;/strong&gt; with a valid SSID. The intent was to reproduce a scenario where a device was periodically scanning and connecting to AP, which may not be available, while remaining connected to BLE. Even 0.5 seconds with no grant should cause a glitch on BLE real-time traffic, so that is undesirable.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Q1: Those results are consistent, every time the WiFi scan runs. There are minor differences in the exact timing, but the magnitude of the intervals are the same.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Q2: That grant test was for an invalid SSID so no relevant channel, but for other tests which did connect to AP (like the throughput test), it was 5GHz usually channel 44, sometimes channel 48 (the AP switches infrequently, but never switches mid-test).&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Q3: There is maybe ~50-100kbps variation from run to run, but the difference from coex enabled to disabled is consistent. I did several runs and switched back and forth several times, and the location of the dev board and AP were consistent. And the coex signals are clearly toggling even with 5GHz.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE+Wifi coexistence</title><link>https://devzone.nordicsemi.com/thread/514290?ContentTypeID=1</link><pubDate>Tue, 10 Dec 2024 14:12:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:15b25362-9a53-4fe2-ab74-66afe6b73bac</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;We have been analyzing the reported behavior, and this symbol shall be set regardless of COEX enabled or not, as it is an indication that the feature is supported on a board-level:&lt;/p&gt;
[quote user=""]Tracked that down to the GPIOs not being assigned to cpunet, and the cause of that is&amp;nbsp;MPSL_CX_ANY_SUPPORT not set.[/quote]
&lt;p&gt;ie. MPSL_CX_ANY_SUPPORT will be set regardless of these symbols being appended to the build:&lt;/p&gt;
&lt;p&gt;-DCONFIG_MPSL_CX=y -Dipc_radio_CONFIG_MPSL_CX=y&lt;/p&gt;
&lt;p&gt;Meaning that if we explicitly set these to &amp;#39;n&amp;#39;:&lt;/p&gt;
&lt;p&gt;&lt;span&gt;-DCONFIG_MPSL_CX=n -Dipc_radio_CONFIG_MPSL_CX=n&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The MPSL_CX_ANY_SUPPORT is still set, as the node itself is declared in device tree.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If MPSL_CX_ANY_SUPPORT is not set by default, it indicates that the &amp;quot;nrf_radio_coex&amp;quot; node isn&amp;#39;t declared in device tree:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/nrfconnect/sdk-nrf/blob/v2.8-branch/subsys/mpsl/cx/Kconfig#L12"&gt;https://github.com/nrfconnect/sdk-nrf/blob/v2.8-branch/subsys/mpsl/cx/Kconfig#L12&lt;/a&gt;&lt;/p&gt;
[quote user=""]Note the ~1 second intervals where COEX_GRANT stays high. This is part of the WiFi scanning, and BLE transmissions are not allowed during those periods. Here&amp;#39;s a screenshot from the nRF Connect app monitoring those advertisements:[/quote]
&lt;p&gt;I assume a valid SSID is set for this test case.&lt;/p&gt;
&lt;p&gt;During scanning, it is expected to see intervals up to 0.5 second:&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/pastedimage1733822809648v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;However, 1 second is not expected, which we will look into.&lt;/p&gt;
&lt;p&gt;Q1: Are you seeing this consistently?&lt;/p&gt;
&lt;p&gt;Q2: Which wifi-channel are you connecting on?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Related to the power-off of the module and COEX GRANT pin behavior:&lt;/p&gt;
[quote user="Remi.G"]The COEX_GRANT signal is actually driven high briefly before BUCKEN is set low, then it decays to 0. By stepping through the code, the high setting corresponds to the call to&amp;nbsp;nrf_wifi_fmac_set_power_save(), then BUCKEN goes low in rpu_pwroff(), then COEX_GRANT decays when IOVDD is switched off.[/quote]
&lt;p&gt;We are actively looking into this.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user=""]I am seeing a difference - BLE throughput without coex is ~1.2Mbps, with coex it&amp;#39;s ~700kbps.[/quote]
&lt;p&gt;Q3: Is this measurement consistent across each measurement?&lt;/p&gt;
&lt;p&gt;Keep in mind that range has a great impact on the throughput, so if the devices are long apart, it will yield different results.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user=""]&lt;ul&gt;&lt;li&gt;&lt;span&gt;Enable the coex signals, fix from first issue above.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;Set&amp;nbsp;&lt;/span&gt;&lt;/span&gt;CONFIG_WIFI_CREDENTIALS_STATIC_SSID to an invalid SSID, so it will only scan but not connect.&lt;/li&gt;
&lt;li&gt;In main.c, move the BLE setup &amp;quot;if (test_ble)&amp;quot; section (line 417-425) to before the &amp;quot;if (test_wlan)&amp;quot; section (before line 380), so BLE starts first.&lt;/li&gt;
&lt;li&gt;Edit ble_throughput_test.c, and change line 600 from select_role(true) to &amp;quot;select_role(false); return 0;&amp;quot;. That will change BLE to peripheral role.&lt;/li&gt;
&lt;li&gt;Build with coexistence enabled.&lt;/li&gt;
&lt;li&gt;Don&amp;#39;t need another DK to connect to over BLE, just let the board advertise indefinitely.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Those changes will run the test with BLE advertising concurrent with WiFi scanning. The effects of coexistence can be seen by missing BLE advertisements (a throughput test with missing packet detection would be better, but this is simpler/quicker).&lt;/p&gt;[/quote]
&lt;p&gt;I have recreated this scenario, with no other changes than to set WIFI_CREDENTIALS_STATIC_SSID=&amp;quot;Invalid SSID&amp;quot;, and see that the GRANT pin is blocking continuously for 5 seconds. I will report this internally.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Håkon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE+Wifi coexistence</title><link>https://devzone.nordicsemi.com/thread/513683?ContentTypeID=1</link><pubDate>Thu, 05 Dec 2024 16:04:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c2ee2cbb-a0c1-4d91-b7bd-12067a7237fb</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;My apologies for the long wait, and thank you so much for sharing such an in-depth explanation and detailed bug report!&lt;/p&gt;
&lt;p&gt;This is highly appreciated.&lt;/p&gt;
[quote user="Remi.G"]Start with wifi/ble_coex example on nRF7002-DK and NCS 2.8.0, no modifications.[/quote]
&lt;p&gt;I build it with this command, to enable the interface (as outlined in the readme for the sample):&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;west build -p -b nrf7002dk/nrf5340/cpuapp -- -DCONFIG_MPSL_CX=y -Dipc_radio_CONFIG_MPSL_CX=y&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;I can confirm that I see similar behavior on my end:&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/pastedimage1733413892584v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;When running the routine that you posted:&lt;/p&gt;
[quote user="Remi.G"]&lt;p&gt;Edit main.c and modify wifi_connect with the following:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;static&amp;nbsp;int&amp;nbsp;wifi_connect(void)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;struct&amp;nbsp;net_if&amp;nbsp;*iface&amp;nbsp;=&amp;nbsp;net_if_get_first_wifi();&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;LOG_INF(&amp;quot;Net interface is up&amp;quot;);&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;k_msleep(3000);&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;LOG_INF(&amp;quot;Setting net_if_down&amp;quot;);&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;net_if_down(iface);&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;k_msleep(3000);&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;LOG_INF(&amp;quot;Setting net_if_up&amp;quot;);&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;net_if_up(iface);&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;k_msleep(3000);&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;if&amp;nbsp;(net_mgmt(NET_REQUEST_WIFI_CONNECT_STORED,&amp;nbsp;iface,&amp;nbsp;NULL,&amp;nbsp;0)) {&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; ... remainder the same&lt;/code&gt;&lt;/p&gt;[/quote]
&lt;p&gt;First suspicion is that it looks to be&amp;nbsp;charge&amp;nbsp;in the voltage net that is discharged, but I will report this back to the wifi-team for further investigation.&lt;/p&gt;
[quote user=""]&lt;p&gt;The wifi/ble_coex README provides some results for 2.4 and 5GHz Wifi, and the BLE throughput for 5GHz wifi is shown to be the same with and without coex enabled.&lt;/p&gt;
&lt;p&gt;I am seeing a difference - BLE throughput without coex is ~1.2Mbps, with coex it&amp;#39;s ~700kbps.&lt;/p&gt;
&lt;p&gt;Tried setting&amp;nbsp;&lt;span&gt;CONFIG_NRF70_SR_COEX_RF_SWITCH&lt;/span&gt;&lt;span&gt;=n, same reduced throughput.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Here&amp;#39;s a logic analyzer capture of BLE + 5GHz wifi coexistence with CONFIG_NRF70_SR_COEX_RF_SWITCH=n. Note the long pulse on COEX_GRANT, which appears to preempt the COEX_REQUEST (its rising edge is before the falling edge of COEX_REQUEST), indicating that BLE is yielding to WiFi, which shouldn&amp;#39;t be necessary because there&amp;#39;s no dependency.&lt;/span&gt;&lt;/p&gt;[/quote]
&lt;p&gt;I will try to reproduce this within a couple of business days and get back to you.&lt;/p&gt;
[quote user="Remi.G"]&lt;p&gt;First concern is why power save would drive COEX_GRANT high, and it&amp;#39;s actively driven because the pulldown (on nRF5340) has no effect. I would expect IOs to be set low, corresponding to &amp;quot;always granted&amp;quot;. Some of the nRF7002 coexistence documentation shows COEX_GRANT as being active high, for example this:&amp;nbsp;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-2.6.2/page/nrf/device_guides/wifi_coex.html"&gt;https://docs.nordicsemi.com/bundle/ncs-2.6.2/page/nrf/device_guides/wifi_coex.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Maybe this was the old &amp;quot;granted&amp;quot; state and it wasn&amp;#39;t updated?&lt;/p&gt;[/quote]
&lt;p&gt;I will check up on this. There&amp;#39;s other places where this is inverted as well, but the PS does not specify an active level for the GRANT pin.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Håkon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE+Wifi coexistence</title><link>https://devzone.nordicsemi.com/thread/513302?ContentTypeID=1</link><pubDate>Tue, 03 Dec 2024 20:06:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1183bf81-5de1-4d3a-8457-0280a2a8bc38</guid><dc:creator>Remi.G</dc:creator><description>&lt;p&gt;Found another issue, related to the state of COEX_GRANT when nRF7002 is in standby mode.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Start with wifi/ble_coex example on nRF7002-DK and NCS 2.8.0, no modifications. This means that the COEX_REQUEST and COEX_STATUS0 will not be driven, as per the first issue above. That&amp;#39;s fine as we&amp;#39;re only looking at the nRF7002 signals.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Probe the BUCKEN and COEX_GRANT pins.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Edit main.c and modify wifi_connect with the following:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;static&amp;nbsp;int&amp;nbsp;wifi_connect(void)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;struct&amp;nbsp;net_if&amp;nbsp;*iface&amp;nbsp;=&amp;nbsp;net_if_get_first_wifi();&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;LOG_INF(&amp;quot;Net interface is up&amp;quot;);&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;k_msleep(3000);&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;LOG_INF(&amp;quot;Setting net_if_down&amp;quot;);&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;net_if_down(iface);&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;k_msleep(3000);&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;LOG_INF(&amp;quot;Setting net_if_up&amp;quot;);&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;net_if_up(iface);&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;k_msleep(3000);&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;if&amp;nbsp;(net_mgmt(NET_REQUEST_WIFI_CONNECT_STORED,&amp;nbsp;iface,&amp;nbsp;NULL,&amp;nbsp;0)) {&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; ... remainder the same&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;So at startup, the net interface, including the nRF7002 driver, will be toggled off then on again.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s the trace (digital and analog capture of COEX_GRANT):&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/pastedimage1733255093129v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;That&amp;#39;s good, the COEX_GRANT signal goes low (always granted) when the interface is down.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Zooming in on the falling edge of BUCKEN:&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/pastedimage1733255178076v2.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;The COEX_GRANT signal is actually driven high briefly before BUCKEN is set low, then it decays to 0. By stepping through the code, the high setting corresponds to the call to&amp;nbsp;nrf_wifi_fmac_set_power_save(), then BUCKEN goes low in rpu_pwroff(), then COEX_GRANT decays when IOVDD is switched off.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;First concern is why power save would drive COEX_GRANT high, and it&amp;#39;s actively driven because the pulldown (on nRF5340) has no effect. I would expect IOs to be set low, corresponding to &amp;quot;always granted&amp;quot;. Some of the nRF7002 coexistence documentation shows COEX_GRANT as being active high, for example this:&amp;nbsp;&lt;a id="" href="https://docs.nordicsemi.com/bundle/ncs-2.6.2/page/nrf/device_guides/wifi_coex.html"&gt;https://docs.nordicsemi.com/bundle/ncs-2.6.2/page/nrf/device_guides/wifi_coex.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Maybe this was the old &amp;quot;granted&amp;quot; state and it wasn&amp;#39;t updated?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Our board doesn&amp;#39;t have a separate control for IOVDD, it&amp;#39;s tied to the same power rail as the MCU. And I can claim that&amp;#39;s more correct than the nRF7002-DK+driver, where it&amp;#39;s turned off when the wifi interface is down - the BLE coex signals (COEX_REQUEST, COEX_STATUS0) can&amp;#39;t be disabled dynamically, so they will continue to be driven and violate the IOVDD+0.3V spec on those IOs if BLE remains on with nRF7002 off.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Without IOVDD turning off, the COEX_GRANT signal won&amp;#39;t decay, and stays asserted while nRF7002 is in standby. Hacked the rpu_hw_if.c and disabled the iovdd control in both rpu_pwroff() and rpu_gpio_remove() to confirm:&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/pastedimage1733255850940v3.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;As expected, COEX_GRANT remains high when BUCKEN is low.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;That means that on a BLE+nRF7002 device, if the nRF7002 is put into standby mode and coex is enabled, the BLE can&amp;#39;t be used unless IOVDD is also disabled - but if it is, then the BLE COEX_REQUEST/COEX_STATUS0 signals will violate the nRF7002 IO spec.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;If COEX_GRANT was set low in the power save command, things should be fine in all cases. In other words, whenever WiFi isn&amp;#39;t active, the state of COEX_GRANT should be low/granted. Hopefully that can be done in the nRF7002 firmware, and it isn&amp;#39;t a hardware dependency.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;A related issue - when nRF7002 is first started up with BUCKEN, and before the image is downloaded, it is also driving COEX_GRANT high. That drops low quickly, after the download, so shouldn&amp;#39;t have much of an impact on BLE, but would also be more correct to default low.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>