<?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>How to integrate radio front end module with Zephyr BLE Controller?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/105019/how-to-integrate-radio-front-end-module-with-zephyr-ble-controller</link><description>Hello, I’m writing for the UBlox Nora B126, which has an nRF5340 and a Skyworks SKY66405-11 front-end module (FEM). I’m using NCS 2.4.2. 
 Although I’m able to do simple things from the application core like configure two GPIOs to turn the FEM on and</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 02 Nov 2023 12:45:37 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/105019/how-to-integrate-radio-front-end-module-with-zephyr-ble-controller" /><item><title>RE: How to integrate radio front end module with Zephyr BLE Controller?</title><link>https://devzone.nordicsemi.com/thread/453717?ContentTypeID=1</link><pubDate>Thu, 02 Nov 2023 12:45:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d8f5a2ed-72df-4c49-ac13-943b38413777</guid><dc:creator>PaKa</dc:creator><description>&lt;p&gt;Please note that the combination of technologies you are looking at now does not have a QDID and as far as I am aware of there won&amp;#39;t be one made either.&lt;/p&gt;
&lt;p&gt;The nRF Connect SDK 2.1 has a QDID for using the Zephyr controller together with the nRF52833 as a Direction Finding receiver and transmitter, newer versions don&amp;#39;t have QDIDs so you will have to qualify the system on your own.&lt;/p&gt;
&lt;p&gt;We do support Direction Finder transmitters with the nRF Connect SDK with the SoftDevice Controller subsystem (SDC), this gets updated QDIDs for each tag.&lt;/p&gt;
&lt;p&gt;None of the qualified systems support using FEMs so usage of a FEM will again trigger a full qual cycle ffor you with the Bluetooth SIG.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to integrate radio front end module with Zephyr BLE Controller?</title><link>https://devzone.nordicsemi.com/thread/453384?ContentTypeID=1</link><pubDate>Tue, 31 Oct 2023 21:27:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d9af95cc-9f56-49b9-84c1-1bc0155b932d</guid><dc:creator>Jeff Gregorio</dc:creator><description>&lt;p&gt;I did some trial and error with the third solution. In my hci_rpmsg.overlay I added the FEM node at root level&lt;br /&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;/ {
	nrf_radio_fem: norab12_fem {
		compatible = &amp;quot;skyworks,sky66112-11&amp;quot;, &amp;quot;generic-fem-two-ctrl-pins&amp;quot;;
		ctx-gpios = &amp;lt;&amp;amp;gpio1 8 GPIO_ACTIVE_HIGH&amp;gt;;
		crx-gpios = &amp;lt;&amp;amp;gpio1 9 GPIO_ACTIVE_HIGH&amp;gt;;
		tx-gain-db = &amp;lt;10&amp;gt;;
		rx-gain-db = &amp;lt;5&amp;gt;;
		ctx-settle-time-us = &amp;lt;1&amp;gt;;
		crx-settle-time-us = &amp;lt;1&amp;gt;;
 	};
};&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I then added a pin forwarder node&amp;nbsp;to my application core overlay:&lt;br /&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;/ {
	gpio_fwd: nrf-gpio-forwarder {
        compatible = &amp;quot;nordic,nrf-gpio-forwarder&amp;quot;;
		status = &amp;quot;okay&amp;quot;;
        norab12_fem-gpio-if {
            gpios = &amp;lt;&amp;amp;gpio1 8 0&amp;gt;, &amp;lt;&amp;amp;gpio1 9 0&amp;gt;;
        };
    };
};&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Still no dice, so I ended up digging through the radio.c&amp;nbsp;source and commenting out the first preprocessor check for&amp;nbsp;HAL_RADIO_GPIO_HAVE_PA_PIN to see that it errored on the reference to FEM_NODE. Going to where that was defined showed that it was looking for&amp;nbsp;&lt;span&gt;DT_PHANDLE&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;DT_NODELABEL&lt;/span&gt;&lt;span&gt;(radio), fem), so I added the missing node to hci_rpmsg.overlay&lt;br /&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;&amp;amp;radio {
	fem = &amp;lt;&amp;amp;nrf_radio_fem&amp;gt;;
};
&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;And it works!&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Thank you very much for your help.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to integrate radio front end module with Zephyr BLE Controller?</title><link>https://devzone.nordicsemi.com/thread/452919?ContentTypeID=1</link><pubDate>Mon, 30 Oct 2023 06:08:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9f36f3fe-4d68-4c8c-bc61-4a80de993c64</guid><dc:creator>Kazi Afroza Sultana</dc:creator><description>&lt;p&gt;&lt;span style="font-size:inherit;"&gt;Hello,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;I have some feedback from the developer.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;Problem statement&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;You want to run Zephyr BLE Controller with support for SKY66405-11 front end module on nRF5340. The problem you are facing is that Zephyr doesn&amp;#39;t have out-of-the-box support for such front end module. On the other hand, NCS provides support for several Skyworks front end modules. While SKY66405-11 is not among them, it&amp;#39;s trivial to adapt the existing code to support SKY66405-11. However, the support for these front end modules in NCS is provided as part of MPSL.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;As you have pointed out, it is possible to use MPSL FEM drivers without using the rest of MPSL. That&amp;#39;s true and it should be possible for you to configure your application in such a way that the MPSL FEM APIs are available to his application.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;Unfortunately, that only solves half of the problem. To take advantage of the MPSL FEM driver, it&amp;#39;s not enough to have it available. It also needs to be &lt;i&gt;used. &lt;/i&gt;The functions that configure the RADIO peripheral and handle the radio communication must &lt;i&gt;call&lt;/i&gt; the MPSL APIs. That is what the SoftDevice Controller or 802.15.4 radio driver provided by Nordic do. That&amp;#39;s also what radio test and DTM samples do. However, Zephyr BLE Controller does &lt;i&gt;not&lt;/i&gt; do that. In its current shape Zephyr BLE Controller is not capable of using MPSL FEM driver.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;Possible solutions&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;Switch to SoftDevice Controller. Then FEM is handled automatically and it&amp;#39;s enough for you to provide appropriate devicetree overlays as explained in the documentation they linked. However, you indicated that&amp;#39;s not an option for you.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;Modify source code of the Zephyr BLE Controller. The code is open source so you can change it to incorporate calls to MPSL FEM APIs. That probably sounds like a lot of difficult work, so it&amp;#39;s probably not an option either.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;The Zephyr BLE Controller has support for PA/LNA: &lt;a title="https://github.com/nrfconnect/sdk-zephyr/blob/v3.3.99-ncs1-1/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio.c#l173-l180" href="https://github.com/nrfconnect/sdk-zephyr/blob/v3.3.99-ncs1-1/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio.c#L173-L180" rel="noopener noreferrer" target="_blank"&gt;https://github.com/nrfconnect/sdk-zephyr/blob/v3.3.99-ncs1-1/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio.c#L173-L180&lt;/a&gt;, &lt;a title="https://github.com/nrfconnect/sdk-zephyr/blob/v3.3.99-ncs1-1/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio.c#l182-l186" href="https://github.com/nrfconnect/sdk-zephyr/blob/v3.3.99-ncs1-1/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio.c#L182-L186" rel="noopener noreferrer" target="_blank"&gt;https://github.com/nrfconnect/sdk-zephyr/blob/v3.3.99-ncs1-1/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio.c#L182-L186&lt;/a&gt; etc. From what I see it only supports front end modules compatible with two bindings: &lt;a title="https://github.com/nrfconnect/sdk-zephyr/blob/v3.3.99-ncs1-1/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_fem.h#l36-l44" href="https://github.com/nrfconnect/sdk-zephyr/blob/v3.3.99-ncs1-1/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_fem.h#L36-L44" rel="noopener noreferrer" target="_blank"&gt;https://github.com/nrfconnect/sdk-zephyr/blob/v3.3.99-ncs1-1/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_fem.h#L36-L44&lt;/a&gt;. One of them is the generic two control pin front end module: &lt;a title="https://github.com/nrfconnect/sdk-zephyr/blob/v3.3.99-ncs1-1/dts/bindings/net/wireless/generic-fem-two-ctrl-pins.yaml" href="https://github.com/nrfconnect/sdk-zephyr/blob/v3.3.99-ncs1-1/dts/bindings/net/wireless/generic-fem-two-ctrl-pins.yaml" rel="noopener noreferrer" target="_blank"&gt;https://github.com/nrfconnect/sdk-zephyr/blob/v3.3.99-ncs1-1/dts/bindings/net/wireless/generic-fem-two-ctrl-pins.yaml&lt;/a&gt;. It should be possible to define a node compatible with this binding in the network core&amp;#39;s devicetree file and set its properties ( &lt;code&gt;ctx-gpios&lt;/code&gt; , &lt;code&gt;crx-gpios&lt;/code&gt; etc.) to match the customer&amp;#39;s device. You can then also add an entry in the forwarder node in the application&amp;#39;s core devicetree file that passes control over those pins to the network core. Example, just for reference: &lt;a title="https://github.com/zephyrproject-rtos/zephyr/blob/main/boards/arm/thingy53_nrf5340/thingy53_nrf5340_common.dtsi#l113-l122" href="https://github.com/zephyrproject-rtos/zephyr/blob/main/boards/arm/thingy53_nrf5340/thingy53_nrf5340_common.dtsi#L113-L122" rel="noopener noreferrer" target="_blank"&gt;https://github.com/zephyrproject-rtos/zephyr/blob/main/boards/arm/thingy53_nrf5340/thingy53_nrf5340_common.dtsi#L113-L122&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;The possible solutions discussed in number 3 point is based on self analysis, we are not sure how much feasible these are. You can try first and let us know the consequence.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;Hope it will help.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;Thanks.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;BR&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;Kazi&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to integrate radio front end module with Zephyr BLE Controller?</title><link>https://devzone.nordicsemi.com/thread/452620?ContentTypeID=1</link><pubDate>Thu, 26 Oct 2023 13:46:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0223551c-68b5-421d-b3a6-952a82431de2</guid><dc:creator>Jeff Gregorio</dc:creator><description>&lt;p&gt;Hi, unless I misunderstood the&amp;nbsp;docs I linked, they&amp;nbsp;only go into two ways of configuring the FEM: 1) using MPSL and the SoftDevice controller, and 2) using the radio directly (per the two examples Direct Test Mode and Radio Test) with neither Soft Device nor Zephyr BLE Controller.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m not trying to switch to MPSL, I&amp;#39;m just failing to see how any of this documentation applies to FEM integration with the Zephyr controller. I&amp;#39;m also a little confused by the &amp;quot;Direct support&amp;quot; section that says to&amp;nbsp;enable the MPSL-related configs even if you&amp;#39;re not using MPSL.&lt;/p&gt;
&lt;p&gt;Is there some other documentation on using a FEM with Zephyr Controller and hci_rpmsg that I&amp;#39;ve been unable to find?&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to integrate radio front end module with Zephyr BLE Controller?</title><link>https://devzone.nordicsemi.com/thread/452435?ContentTypeID=1</link><pubDate>Thu, 26 Oct 2023 07:53:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7ad77e6c-4f2d-4b61-a383-07ba617ff14c</guid><dc:creator>Kazi Afroza Sultana</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Thanks for your queires. There are several things here need to look at to give you a proper answer. I will try to give one by one. Just before that my initial comment is - MPSL should be used only with SoftDevice Controller or without any BLE controller. Could you please explain why do you want to integrate MPSL with zephyr (when Zephyr seems to have support for FEM)?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks.&lt;/p&gt;
&lt;p&gt;BR&lt;/p&gt;
&lt;p&gt;Kazi&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>