<?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>CONFIG_BT_RPC_STACK on a custom board</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/107011/config_bt_rpc_stack-on-a-custom-board</link><description>I have a custom board with an nRF5340 on it. I&amp;#39;d like to offload BLE operations to the network core using the RPC library to control it from the application core. 
 The documentation states to do this by enabling the &amp;quot;CONFIG_BT_RPC_STACK&amp;quot; option. Some</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 05 Jun 2024 13:42:46 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/107011/config_bt_rpc_stack-on-a-custom-board" /><item><title>RE: CONFIG_BT_RPC_STACK on a custom board</title><link>https://devzone.nordicsemi.com/thread/487536?ContentTypeID=1</link><pubDate>Wed, 05 Jun 2024 13:42:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:30bf0137-5cd9-4d73-bda2-0a4d7ec9e417</guid><dc:creator>Yaxit</dc:creator><description>&lt;p&gt;Hi, what would be the major advantage of using the RPC stack? Does it relieve a lot of computation from the application core? Memory?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: CONFIG_BT_RPC_STACK on a custom board</title><link>https://devzone.nordicsemi.com/thread/462651?ContentTypeID=1</link><pubDate>Thu, 04 Jan 2024 10:38:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f7d5119f-c78c-4ca7-88a7-b846dde80ec7</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Jordan,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When you build a BLE sample for nRF5340 the&amp;nbsp;RPMsg child will be built by default and it will be combined into the merged domain hex file so when you flash the application the netcore will also be flashed. You don&amp;#39;t need to do anything.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The&amp;nbsp; RPMSG should support all HCI commands. I am not aware of any limitation.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: CONFIG_BT_RPC_STACK on a custom board</title><link>https://devzone.nordicsemi.com/thread/462586?ContentTypeID=1</link><pubDate>Wed, 03 Jan 2024 17:16:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d56c72c5-1fc1-4fee-8036-657a73d9575d</guid><dc:creator>Kyle</dc:creator><description>&lt;p&gt;Thank you, this is very helpful. It sounds like it would be better to use the RPMsg child image for my case, then.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/libraries/bluetooth_services/rpc.html#ble-rpc"&gt;RPC documentation&lt;/a&gt; provides a list of Kconfig values that must match between the host (child image on the network core) and the client (parent image on the application core). Is this necessary for the RPMsg child image as well? i.e. are there any Kconfig values that must have the same value for both the parent and child image?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: CONFIG_BT_RPC_STACK on a custom board</title><link>https://devzone.nordicsemi.com/thread/462288?ContentTypeID=1</link><pubDate>Tue, 02 Jan 2024 12:57:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8da0a54d-d84a-491c-8573-502b3baaf3d9</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Jordan,&amp;nbsp;&lt;br /&gt;1. As far as I can see by having CONFIG_BT_RPC_STACK in your configuration, you will select BT_RPC configuration, and that in turn will select NCS_SAMPLE_RPC_HOST_CHILD_IMAGE. Please see&amp;nbsp;\nrf\samples\Kconfig&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;2. Yes you should do the same. The RPC host is built for the netcore and usually&amp;nbsp;the board config for the netcore doesn&amp;#39;t change between custom board and the DK unless you have some special configuration for example to control GPIO pin for the netcore.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I believe building the RPC host image separately and building it using&amp;nbsp;&lt;span&gt;CONFIG_BT_RPC_STACK in your app core should have the same result.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;3. There is a fundamental difference between RPC child image and RPMSG child image that the RPC child image has both the BLE host and the BLE controller included in the netcore when the RPMSG child image only have the BLE Controller on the netcore.&amp;nbsp;&lt;br /&gt;In the RPMSG you would need to have the BLE host running on the application core. In the case with RPC, you would need to use the RPC library to interface with the host on the netcore. The command from the application is serialized and send to the host on the netcore. Then when there is response data it will be sent back to the application.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;In most common applications we use the RPMSG and run the host on the application core. &lt;br /&gt;&lt;br /&gt;The drawback of using the RPC is that only a subset of Zephyr Bluetooth API is available. And that there is more latency due to overhead for exchanging message between cores.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>