<?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>Problems implementing a one-to-many positioning system using Bluetooth CS on nRF54L15</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/127901/problems-implementing-a-one-to-many-positioning-system-using-bluetooth-cs-on-nrf54l15</link><description>I am developing an indoor positioning system using Bluetooth Channel Sounding (CS) on nRF Connect SDK v3.1.1 . My setup involves one Initiator and four Reflectors . 
 Implementation Detail: To achieve real-time positioning, I have implemented a one-to</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 24 Apr 2026 12:18:14 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/127901/problems-implementing-a-one-to-many-positioning-system-using-bluetooth-cs-on-nrf54l15" /><item><title>RE: Problems implementing a one-to-many positioning system using Bluetooth CS on nRF54L15</title><link>https://devzone.nordicsemi.com/thread/565458?ContentTypeID=1</link><pubDate>Fri, 24 Apr 2026 12:18:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2a19b834-7eb6-48ba-8488-a99aa7242f59</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;For clarity, how is prj_hci_ipc.conf included in your project? And what is it&amp;#39;s location (in your application folder)?&lt;/p&gt;
&lt;p&gt;Channel sounding is a techonlogy that doesn&amp;#39;t scale incredible well, but it should be possible to handle 4 connections, but perhaps not with the frequency that you imagined.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;1: It does require more time, and more CPU processing power. Exactly if this is the reason why you see NaN in your log, I am not sure. You can try to figure it out through debugging. You should be able to detect why it decides to print NaN instead of a number. Perhaps you can share the piece of code that prints it, and I can help you do some digging to see if I can figure out why.&lt;/p&gt;
&lt;p&gt;2: We have some recommendations here:&amp;nbsp;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrfxlib/softdevice_controller/doc/scheduling.html#channel_sounding_timing"&gt;https://docs.nordicsemi.com/bundle/ncs-latest/page/nrfxlib/softdevice_controller/doc/scheduling.html#channel_sounding_timing&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;3/4: These are not trivial questions. But first, what kind of devices do you plan on making? Let us, for simplicity, call the 4 stationary (I assume you have 4 stationary devices, and one moving device, based on what you write) devices for scanners, and the moving device for the tag.&lt;/p&gt;
&lt;p&gt;Where do you want your CS (Channel Sounding) data to end up? Do you want it on the tag, or does it end up in a computer somewhere? And how do you transfer it from the tag to where it is being used? The reason I ask is that if you need the data outside the tag itself, then perhaps you should consider having the scanners do the CS initiator role, and the tag can be the reflector. Another effect of this is that the main number crunching happens at the initiator side of the connection. Because of this, there are two reasons you might want to switch up the roles:&lt;/p&gt;
&lt;p&gt;1: The stationary scanners tend to have better battery capacity, and besides they will only do 1/4th of the number crunching, compared to the tag being the initiator and calculating the distance to 4 reflectors.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2: You will spread out the load of calculations, so that instead of one device having to do calculations for 4 distances, you will have 4 devices each doing calculations for 1 distance. It is simply cutting down the processing time by 4.&lt;/p&gt;
&lt;p&gt;BUT: You will have to transfer the distance data to a centralized location if you intend to map out where the tag is located.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;One thing to keep in mind: If you decide to switch around the roles, it is still recommended to have the tag act as the BLE central in the connections. This is because then it will be in control of the connections, avoiding collissions. So if you want to test this, the first would be to flip around the BLE role in the sample, so that the central will be the reflector, and the peripheral will be the initiator.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>