<?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 peripheral with multiple connections</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/118385/ble-peripheral-with-multiple-connections</link><description>I&amp;#39;m struggling to get a peripheral device to work with two simultaneous connections. I have attached my configuration (for the application) and my connect/disconnect callbacks, with the advertizing data. 
 
 I&amp;#39;m advertizingwith BT_LE_ADV_OPT_CONNECTABLE</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 13 Feb 2025 13:03:05 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/118385/ble-peripheral-with-multiple-connections" /><item><title>RE: BLE peripheral with multiple connections</title><link>https://devzone.nordicsemi.com/thread/522862?ContentTypeID=1</link><pubDate>Thu, 13 Feb 2025 13:03:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:000f461d-1aaa-424b-bf69-5c0a2cbbe2ac</guid><dc:creator>Hieu</dc:creator><description>[quote user="Yaxit"]1. Is there any advantage in using softdevice instead of the open link layer? I assume nordic suggests softdevice for applications developed on nRFConnect?[/quote]
&lt;p&gt;The SoftDevice Controller (SDC) tailored for the nRF products, so they can provide better performance.&lt;/p&gt;
&lt;p&gt;There are also some features, such as multi-protocol support, which&amp;nbsp;the SDC can do, but the Zephyr Controller couldn&amp;#39;t.&lt;/p&gt;
&lt;p&gt;Nordic also have qualified the Bluetooth stack&amp;nbsp;of each NCS release with the SDC, so you can refer to our qualification&amp;nbsp;during your product&amp;#39;s qualification process.&lt;/p&gt;
&lt;p&gt;We do recommend this controller when working with our product.&lt;/p&gt;
[quote user="Yaxit"]2. You seemed surprised that I&amp;#39;m using HCI_IPC core image. Why is that? I&amp;#39;ve seen there&amp;#39;s a few other options like hci_rpmsg. Is there a better option?[/quote]
&lt;p&gt;The ipc_radio image is new to me as well. I haven&amp;#39;t really looked into&amp;nbsp;whether there are any significant differences. My surprise comes purely from the fact that the samples are setup to use ipc_radio by default, not hci_ipc.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE peripheral with multiple connections</title><link>https://devzone.nordicsemi.com/thread/522821?ContentTypeID=1</link><pubDate>Thu, 13 Feb 2025 10:41:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a231cf57-9aa3-491f-b1e2-d0032ecbab90</guid><dc:creator>Yaxit</dc:creator><description>&lt;p&gt;Sorry for the long wait.&lt;/p&gt;
&lt;p&gt;Thank you for the&amp;nbsp;clarification, the sysbuild subfolder works as you described. Just a few conclusive questions.&lt;/p&gt;
&lt;p&gt;1. Is there any advantage in using softdevice instead of the open link layer? I assume nordic suggests softdevice for applications developed on nRFConnect?&lt;/p&gt;
&lt;p&gt;2. You seemed surprised that I&amp;#39;m using HCI_IPC core image. Why is that? I&amp;#39;ve seen there&amp;#39;s a few other options like hci_rpmsg. Is there a better option?&lt;/p&gt;
&lt;p&gt;Thank you!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE peripheral with multiple connections</title><link>https://devzone.nordicsemi.com/thread/522040?ContentTypeID=1</link><pubDate>Fri, 07 Feb 2025 18:52:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1b7d4c1e-7f60-47db-88ab-1c62ffe19ca2</guid><dc:creator>Hieu</dc:creator><description>[quote user="Yaxit"]I&amp;#39;m not using parent-child image anymore, as this is marked to be deprecated. I&amp;#39;m using the suggested sysbuild approach.&amp;nbsp;The two images are found in separate folders in my build directory.[/quote]
&lt;p&gt;Interesting that your setup defaulted to use HCI IPC. But no matters, the solution remains the same.&lt;/p&gt;
[quote user="Yaxit"]I&amp;#39;m not sure how I can configure the netcore image with sysbuild. The HCI_IPC sample is in the zephyr tree, isn&amp;#39;t this different from Nordic&amp;#39;s softdevice?[/quote]
&lt;p&gt;The HCI IPC application can work with both the Zephyr Controller and the SoftDevice Controller. While working with NCS, the default controller would be the SoftDevice Controller.&lt;/p&gt;
&lt;p&gt;If you need to be extra sure, you can check the .config file in &amp;lt;build dir&amp;gt;/hci_ipc/zephyr to see if &lt;a href="https://docs.nordicsemi.com/bundle/ncs-2.7.0/page/kconfig/index.html#CONFIG_BT_LL_SOFTDEVICE"&gt;CONFIG_BT_LL_SOFTDEVICE&lt;/a&gt; or&amp;nbsp;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-2.7.0/page/kconfig/index.html#CONFIG_BT_LL_SW_SPLIT"&gt;CONFIG_BT_LL_SW_SPLIT&lt;/a&gt;&amp;nbsp;is set. If it&amp;#39;s the _SOFTDEVICE config that is set, then the SoftDevice Controller is used.&lt;/p&gt;
[quote user="Yaxit"]I tried to make some sense of it from here but I&amp;#39;m more confused than before :D&lt;br /&gt;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-2.7.0/page/zephyr/build/sysbuild/index.html#sysbuild"&gt;docs.nordicsemi.com/.../index.html&lt;/a&gt;[/quote]
&lt;p&gt;You got very close. The method is described in this section: &lt;a href="https://docs.nordicsemi.com/bundle/ncs-2.7.0/page/zephyr/build/sysbuild/index.html#zephyr_application_kconfig_fragment_and_devicetree_overlay"&gt;Zephyr application Kconfig fragment and devicetree overlay&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So basically, you create &amp;lt;project dir&amp;gt;/sysbuild/hci_ipc.conf, and put in the configs mentioned in my last reply.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE peripheral with multiple connections</title><link>https://devzone.nordicsemi.com/thread/521950?ContentTypeID=1</link><pubDate>Fri, 07 Feb 2025 13:36:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:83dabab8-8620-4b6d-ad55-990294746590</guid><dc:creator>Yaxit</dc:creator><description>&lt;p&gt;Thanks for the reply. I&amp;#39;m not using parent-child image anymore, as this is marked to be deprecated. I&amp;#39;m using the suggested sysbuild approach.&amp;nbsp;The two images are found in separate folders in my build directory.&lt;br /&gt;The HCI_IPC image is included&amp;nbsp;thanks to the&amp;nbsp;SB_CONFIG_NETCORE_HCI_IPC=y in my sysbuild.conf file.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m not sure how I can configure the netcore image with sysbuild. The HCI_IPC sample is in the zephyr tree, isn&amp;#39;t this different from Nordic&amp;#39;s softdevice?&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;I tried to make some sense of it from here but I&amp;#39;m more confused than before :D&lt;br /&gt;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-2.7.0/page/zephyr/build/sysbuild/index.html#sysbuild"&gt;docs.nordicsemi.com/.../index.html&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE peripheral with multiple connections</title><link>https://devzone.nordicsemi.com/thread/520468?ContentTypeID=1</link><pubDate>Tue, 28 Jan 2025 20:02:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5134517b-3fe8-4cc0-87a6-4124845f71f7</guid><dc:creator>Hieu</dc:creator><description>&lt;p&gt;Hi Yaxit,&lt;/p&gt;
&lt;p&gt;For the question regarding &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bt_conn_ref()&lt;/span&gt; and &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;unref()&lt;/span&gt;, I recommend giving this thread a read:&amp;nbsp;&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/105352/info-about-bt_conn_ref-and-bt_conn_unref"&gt;Info about bt_conn_ref and bt_conn_unref?&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Onto the topic #1. First, we need to remember that you are using the nRF5340, so the BT Host and Controller each stays on a different application image. The Host resides on the Application Core image, while the Controller resides on the Network Core image.&lt;/p&gt;
&lt;p&gt;You are right in your&amp;nbsp;identifying the two Kconfig that are relevant to changing the number of concurrent connections, &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CONFIG_BT_MAX_CONN&lt;/span&gt; and&amp;nbsp;&lt;span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CONFIG_BT_CTLR_SDC_PERIPHERAL_COUNT&lt;/span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CONFIG_BT_MAX_CONN&lt;/span&gt;&amp;nbsp;is relevant for both the BT Host and Controller and therefore must be set for both the&amp;nbsp;Application and Network Core image.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CONFIG_BT_CTLR_SDC_PERIPHERAL_COUNT&lt;/span&gt; is only relevant for the BT&amp;nbsp;Controller.&lt;br /&gt;In particular, it is only relevant for the SoftDevice Controller, Nordic&amp;#39;s proprietary BT Controller.&lt;br /&gt;It must be set for the Network Core image.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;That being said, I see that maybe you are having difficulty setting the&amp;nbsp;configurations for the Network Core image. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Since you have a child image named &amp;quot;&lt;em&gt;hci_ipc&lt;/em&gt;,&amp;quot; I believe you are building&amp;nbsp;the image pair using &lt;a href="https://docs.nordicsemi.com/bundle/ncs-2.7.0/page/nrf/config_and_build/multi_image.html"&gt;the child and parent solution&lt;/a&gt;.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;In this setup, the simplest way to add Kconfig to the network core is by creating an overlay file&amp;nbsp;at&amp;nbsp;&lt;/span&gt;&lt;em style="font-family:inherit;"&gt;&amp;lt;project dir&amp;gt;/child_image/hci_ipc.conf&lt;/em&gt;&lt;span style="font-family:inherit;"&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;"&gt;Inside that file, you can simply set:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CONFIG_BT_MAX_CONN=3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CONFIG_BT_CTLR_SDC_PERIPHERAL_COUNT=2&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;or, if you don&amp;#39;t need the Central feature,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CONFIG_BT_CENTRAL=n&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CONFIG_BT_MAX_CONN=2&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Hieu&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>