<?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>Direction Finding Project: Central and Peripheral Integration</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/111795/direction-finding-project-central-and-peripheral-integration</link><description>Now I am using the https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/samples/bluetooth/direction_finding_central/README.html and https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/samples/bluetooth/direction_finding_peripheral</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 26 Jun 2024 14:21:46 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/111795/direction-finding-project-central-and-peripheral-integration" /><item><title>RE: Direction Finding Project: Central and Peripheral Integration</title><link>https://devzone.nordicsemi.com/thread/490917?ContentTypeID=1</link><pubDate>Wed, 26 Jun 2024 14:21:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1ca2ed59-5c31-4bd9-aa8f-2db988fff034</guid><dc:creator>tesc</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;We support the entire Bluetooth part of the puzzle, with the SoC and the Bluetooth Controller and Host fully implemented.&lt;/p&gt;
&lt;p&gt;We do not provide antenna array and corresponding algorithm. Building on top of our solutions, these are the current options for completing the picture:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Make your own antenna array and algorithms&lt;/li&gt;
&lt;li&gt;Buy an existing antenna array design, such as the ISP 1907-AOA-DK, and build your own algorithms&lt;/li&gt;
&lt;li&gt;Buy a package with both antenna array and algorithms, such as the offerings from u-Blox&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Regards,&lt;br /&gt;Terje&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Direction Finding Project: Central and Peripheral Integration</title><link>https://devzone.nordicsemi.com/thread/489574?ContentTypeID=1</link><pubDate>Wed, 19 Jun 2024 14:29:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:375cb2e4-9f31-40fa-97e9-b9688952f42c</guid><dc:creator>Darsh</dc:creator><description>&lt;p&gt;Hello, Thank you for providing the links, I also noticed that Nordic does not produce their own antenna arrays, so I want to make a cutsom antenna array board and want to know how the firmware is actually implemented for the positioning using multiple boards.&lt;br /&gt;&lt;br /&gt;I am relatively new to bluetooth development and AoA/AoD so just looking to learn more.&lt;br /&gt;&lt;br /&gt;Thanks once again,&lt;br /&gt;Darsh.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Direction Finding Project: Central and Peripheral Integration</title><link>https://devzone.nordicsemi.com/thread/489570?ContentTypeID=1</link><pubDate>Wed, 19 Jun 2024 14:16:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ce19a5db-3842-40f9-801a-066c318041f9</guid><dc:creator>Zihao</dc:creator><description>&lt;p&gt;By the ways, are you interested in&amp;nbsp;&lt;strong&gt;Central and Peripheral Integration&lt;/strong&gt;?&lt;/p&gt;
&lt;p&gt;I think&amp;nbsp;this is a relatively niche operation, as I mentioned in this case. So, could you share what project you are working on that led you to this case? I&amp;#39;m just curious, but it&amp;#39;s perfectly fine if you&amp;#39;d rather not share.&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: Direction Finding Project: Central and Peripheral Integration</title><link>https://devzone.nordicsemi.com/thread/489565?ContentTypeID=1</link><pubDate>Wed, 19 Jun 2024 14:06:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c09a17bb-64fb-43f7-8769-db8f3dea057a</guid><dc:creator>Zihao</dc:creator><description>&lt;p&gt;Hello, the antenna array I am using is designed by Nordic, which you can find here: &lt;a href="https://www.youtube.com/watch?v=AtS6HsrUgZQ&amp;amp;t=1s" target="_new"&gt;https://www.youtube.com/watch?v=AtS6HsrUgZQ&amp;amp;t=1s&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;However, it seems that Nordic does not produce their own designed antenna arrays and only uses them as a basis for their DF demos. I think it would be a good idea to try purchasing an AoA kit like InsightSiP. Alternatively, you can print an array board yourself using acrylic sheets and connect antennas with RF switches as shown in the YouTube video. Overall, it&amp;#39;s relatively simple hardware, and customizing it yourself won&amp;#39;t take too much time.&lt;/p&gt;
&lt;p&gt;I have a strong interest in AoA and AoD, and I welcome any related questions or discussions.&lt;/p&gt;
&lt;p&gt;Yours,&lt;/p&gt;
&lt;p&gt;Zihao&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Direction Finding Project: Central and Peripheral Integration</title><link>https://devzone.nordicsemi.com/thread/489491?ContentTypeID=1</link><pubDate>Wed, 19 Jun 2024 11:26:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:de860f34-661d-4381-948e-9c1d75ea5e99</guid><dc:creator>Darsh</dc:creator><description>&lt;p&gt;I am just curious about for the antenna array you are using? Can you provide the reference link or something? I have nrf52833dk which i am using as a tag and I am confused about which antenna array I should use. It would be really helpful.&lt;br /&gt;&lt;br /&gt;Thanks&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Direction Finding Project: Central and Peripheral Integration</title><link>https://devzone.nordicsemi.com/thread/488638?ContentTypeID=1</link><pubDate>Thu, 13 Jun 2024 10:19:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bb5a581a-6d2c-4320-bd28-0a2cdd7acbbb</guid><dc:creator>Zihao</dc:creator><description>&lt;div class="flex-shrink-0 flex flex-col relative items-end"&gt;
&lt;div&gt;
&lt;div class="pt-0.5 juice:pt-0"&gt;
&lt;div class="gizmo-bot-avatar flex h-6 w-6 items-center justify-center overflow-hidden rounded-full juice:h-8 juice:w-8"&gt;
&lt;div class="relative p-1 rounded-sm flex items-center justify-center bg-token-main-surface-primary text-token-text-primary h-8 w-8"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="group/conversation-turn relative flex w-full min-w-0 flex-col agent-turn"&gt;
&lt;div class="flex-col gap-1 md:gap-3"&gt;
&lt;div class="flex flex-grow flex-col max-w-full"&gt;
&lt;div dir="auto" data-message-author-role="assistant" data-message-id="88ae3b4a-da6c-4ca0-b831-ef9c505706c5"&gt;
&lt;div&gt;
&lt;div class="markdown prose w-full break-words dark:prose-invert light"&gt;
&lt;p&gt;Thank you for your reply! I have resolved the issue!&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Direction Finding Project: Central and Peripheral Integration</title><link>https://devzone.nordicsemi.com/thread/488578?ContentTypeID=1</link><pubDate>Wed, 12 Jun 2024 23:36:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d27aaeca-7414-4ac7-bcb0-0f38120eec56</guid><dc:creator>Zihao</dc:creator><description>&lt;p&gt;Thanks for the reply,&lt;/p&gt;
&lt;p&gt;It seems these operations are really quite decoupled and convenient: advertising, scanning, connecting, disconnecting, etc. I was able to resolve error -120 and error -22.&lt;/p&gt;
&lt;p&gt;However, I still face an issue when my two devices switch roles for the first time. One device keeps advertising and the other keeps scanning, but they just won&amp;#39;t establish a connection. Everything looks good. There is no error, no failed, no warnning.&lt;/p&gt;
&lt;p&gt;I believe my implementation is quite straightforward: start advertising, connecting, disconnecting, disable advertising, start scanning. The other device performs the opposite operations. Is there anything specific I need to pay attention to during this process?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Direction Finding Project: Central and Peripheral Integration</title><link>https://devzone.nordicsemi.com/thread/488345?ContentTypeID=1</link><pubDate>Tue, 11 Jun 2024 13:13:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:30a6a6d5-e537-4b19-be00-27c43fc0d13a</guid><dc:creator>tesc</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
[quote user="Zihao"]But I don&amp;#39;t know the &amp;#39;CONFIG_BT_CTLR_SDC_PERIPHERAL_COUNT&amp;#39;, &amp;#39;CONFIG_BT_CTLR_SDC_CENTRAL_COUNT &amp;#39; and &amp;#39;CONFIG_BT_MAX_CONN&amp;#39;, which do not appear in the default direction finding samples.[/quote]
&lt;p&gt;Most configs get default values, or get values based on other configs. You can check all resulting configs for a build in the .config file, which is generated among the outputs. Find it under &amp;quot;Output files&amp;quot; in VS Code.&lt;/p&gt;
[quote user="Zihao"]When the RX complete the CTE collection and ready to switch to TX, I call the bt_le_scan_stop() then it report an error: Scanning failed to stop (err -120). I don&amp;#39;t know why I can&amp;#39;t stop the scan.[/quote]
&lt;p&gt;You get -120 EALREADY if the scan has already been stopped. If for instance you were scanning for a connection, and you get the connection set up, scan is automatically stopped. Therefore there is no need to stop the scan after this has happened. In many situations, this error value can be treated equal to a return code of 0 (success), since it basically means that what you called for is already effectuated.&lt;/p&gt;
[quote user="Zihao"]Disable the request CTE from peer device... failed (err -22). &lt;br /&gt;&amp;nbsp; &amp;nbsp; The function I called is bt_df_conn_cte_req_disable().[/quote]
&lt;p&gt;This can only be called if in a connection. It looks like this is automatically disabled on disconnection. Similar as with -120 from bt_le_scan_stop(), an error code of -22 here basically means what you attempt to do is already done.&lt;/p&gt;
[quote user="Zihao"]I want to call bt_enable() multiple times because I need to switch between TX and RX on one device. I just thought that initializing it again and again might be an easy way to achieve the switching. If I&amp;#39;m wrong, I apologize.[/quote]
&lt;p&gt;There is no need to reinitialize BLE for switching between BLE roles. Just use the APIs for connectable advertising, scanning, connecting, disconnecting, etc. appropriately for what you want to do, and in the order you want to do it.&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Terje&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Direction Finding Project: Central and Peripheral Integration</title><link>https://devzone.nordicsemi.com/thread/488204?ContentTypeID=1</link><pubDate>Tue, 11 Jun 2024 03:26:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3f252595-c8d8-4fac-afeb-846db29b7ce2</guid><dc:creator>Zihao</dc:creator><description>&lt;p&gt;I want to correct something.&lt;/p&gt;
&lt;p&gt;Although TX seems to have started normally because no error was reported when calling this function:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;static void bt_ready(void)
{
	int err;

	err = bt_le_adv_start(BT_LE_ADV_CONN_NAME, ad, ARRAY_SIZE(ad), NULL, 0);
	if (err) {
		printk(&amp;quot;Advertising failed to start (err %d)\n&amp;quot;, err);
		return;
	}

	printk(&amp;quot;Advertising successfully started\n&amp;quot;);
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;However, when I use the nRF Connect APP to check the device,&amp;nbsp;I didn&amp;#39;t find it. Therefore, even though &lt;code&gt;bt_le_adv_start()&lt;/code&gt; did not return an error, it seems it did not actually start advertising packets successfully. I don&amp;#39;tunderstand why this is happening.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Before&amp;nbsp;&lt;span&gt;bt_le_adv_start() , I called&amp;nbsp;&lt;/span&gt;disable_cte_reqest(), bt_conn_disconnect(). And the&amp;nbsp;bt_le_scan_stop() has been called in&amp;nbsp;eir_found() when the target device is found. So everything seems fine but it does not advertise packets...&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt; Hello, this is the Antenna Array Side!!

Bluetooth initialized
Now I am going into the Switch Loop...

-----------------------------------------------------------------------LOOP START

Now I am using the AoA Setting.
First, calculate the AoA.
 Now I am waiting for a connection and becoming a RX.
Scanning successfully started
[DEVICE]: 05:11:54:C3:FA:10 (random), AD evt type 3, AD data len 31, RSSI -52
[DEVICE]: 15:14:A7:6D:1F:25 (random), AD evt type 3, AD data len 31, RSSI -84
[DEVICE]: 2B:46:3A:94:AD:5B (random), AD evt type 3, AD data len 31, RSSI -84
[DEVICE]: 56:F2:B2:D7:E2:90 (random), AD evt type 3, AD data len 31, RSSI -80
[DEVICE]: FC:01:50:FD:5F:53 (random), AD evt type 0, AD data len 8, RSSI -42
[AD]: 1 data_len 1
[AD]: 39 data_len 3
Connected as a CENTRAL: FC:01:50:FD:5F:53 (random)
Enable receiving of CTE...
success. CTE receive enabled.
Request CTE from peer device...
success. CTE request enabled.
CTE[FC:01:50:FD:5F:53 (random)]: samples count 45, cte type AOA, slot durations: 2 [us], packet status CRC OK, RSSI -500
I got the AoA CTE! Now I&amp;#39;m gonna stop the scan!
Disable the request CTE from peer device...
success. CTE request disabled.
Disable receiving of CTE...
success. CTE receive disabled.
Now I&amp;#39;m gonna disconnect!
The RX Disconnected!
From the DISconnected call back function of TX: Disconnected...
The AoA is completed!
Now I am using the AoD Setting.
Second, calculate the AoD.
 Now I am asking a connection and becoming a TX.
Advertising successfully started&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Direction Finding Project: Central and Peripheral Integration</title><link>https://devzone.nordicsemi.com/thread/488054?ContentTypeID=1</link><pubDate>Mon, 10 Jun 2024 08:30:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bd59e977-14e2-4a2d-981a-798efba46318</guid><dc:creator>Zihao</dc:creator><description>&lt;p&gt;However, today I discovered that&amp;nbsp;the case where AoA and AoD are obtained simultaneously is not reproducible.&lt;/p&gt;
&lt;p&gt;Now, I&amp;#39;m encountering a situation where after my RX switches to TX, it keeps sending packets. Meanwhile, my TX switches to RX and keeps scanning. However, they do not establish a connection. The log appears to be very normal.&lt;/p&gt;
&lt;p&gt;Antenna array side:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt; Hello, this is the Antenna Array Side!!

Bluetooth initialized
Now I am going into the Switch Loop...

-----------------------------------------------------------------------LOOP START

Now I am using the AoA Setting.
First, calculate the AoA.
 Now I am waiting for a connection and becoming a RX.
Scanning successfully started
[00:00:00.267,364] &amp;lt;inf&amp;gt; bt_hci_core: hci_vs_in[DEVICE]: 12:89:A5:62:96:36 (random), AD evt type 3, AD data len 31, RSSI -53
[DEVICE]: 7C:27:BC:D1:9D:2E (public), AD evt type 3, AD data len 19, RSSI -87
[DEVICE]: D1:8D:C5:A0:52:24 (random), AD evt type 3, AD data len 8, RSSI -58
it: HW[DEVICE]: 2A:34:53:29:E5:23 (random), AD evt type 3, AD data len 31, RSSI -81
[DEVICE]: 11:8E:BB:9F:5C:D4 (random), AD evt type 3, AD data len 31, RSSI -84
[DEVICE]: 38:71:41:40:89:0F (random), AD evt type 3, AD data len 31, RSSI -81
[DEVICE]: 11:8E:BB:9F:5C:D4 (random), AD evt type 3, AD data len 31, RSSI -85
[DEVICE]: 04:95:9E:85:E4:31 (random), AD evt type 3, AD data len 31, RSSI -76
[DEVICE]: 12:89:A5:62:96:36 (random), AD evt type 3, AD data len 31, RSSI -53
[DEVICE]: 7C:27:BC:D1:9D:2E (public), AD evt type 3, AD data len 19, RSSI -78
[DEVICE]: 4A:3F:F9:A9:00:C2 (random), AD evt type 0, AD data len 17, RSSI -54
[AD]: 1 data_len 1
[AD]: 10 data_len 1
[AD]: 255 data_len 9
[DEVICE]: 4A:3F:F9:A9:00:C2 (random), AD evt type 4, AD data len 0, RSSI -54
[DEVICE]: 0F:ED:AB:B2:EC:75 (random), AD evt type 3, AD data len 31, RSSI -80
[DEVICE]: 04:95:9E:85:E4:31 (random), AD evt type 3, AD data len 31, RSSI -69
[DEVICE]: 2A:34:53:29:E5:23 (random), AD evt type 3, AD data len 31, RSSI -73
[DEVICE]: 12:89:A5:62:96:36 (random), AD evt type 3, AD data len 31, RSSI -50
 Platform: Nordic Semiconductor (0x0002)
[00:00:00.267,395] &amp;lt;inf&amp;gt; bt_hci_core: hci_vs_init: HW Variant: nRF52x (0x0002)
[00:00:00.267,425] &amp;lt;inf&amp;gt; bt_hci_core: hci_vs_init: Firmware: Standard Bluetooth controller (0x00) Version 3.2 Build 99
[00:00:00.268,188] &amp;lt;inf&amp;gt; bt_hci_core: bt_dev_show_info: Identity: E7:8C:85:B4:1[DEVICE]: 4E:2F:34:97:F8:64 (random), AD evt type 3, AD data len 31, RSSI -86
C:E6 (random)
[00:00:00.268,218] &amp;lt;inf&amp;gt; bt_hci_core: bt_dev_show_info: HCI: version 5.3 (0x0c) revision 0x0000, manufacturer 0x05f1
[00:00:00.268,249] &amp;lt;inf&amp;gt; bt_hci_core: bt_dev_show_info: LMP: version 5.3 (0x0c) subver 0xffff
[DEVICE]: 11:8E:BB:9F:5C:D4 (random), AD evt type 3, AD data len 31, RSSI -84
[DEVICE]: 2A:34:53:29:E5:23 (random), AD evt type 3, AD data len 31, RSSI -66
[DEVICE]: FC:01:50:FD:5F:53 (random), AD evt type 0, AD data len 8, RSSI -50
[AD]: 1 data_len 1
[AD]: 39 data_len 3
Connected as a CENTRAL: FC:01:50:FD:5F:53 (random)
Enable receiving of CTE...
success. CTE receive enabled.
Request CTE from peer device...
success. CTE request enabled.
CTE[FC:01:50:FD:5F:53 (random)]: samples count 3, cte type AOA, slot durations: 2 [us], packet status CRC not OK, CTE Info OK, RSSI -570
CTE[FC:01:50:FD:5F:53 (random)]: samples count 3, cte type AOA, slot durations: 2 [us], packet status CRC not OK, CTE Info OK, RSSI -500
CTE[FC:01:50:FD:5F:53 (random)]: samples count 45, cte type AOA, slot durations: 2 [us], packet status CRC OK, RSSI -510
I got the AoA CTE! Now I&amp;#39;m gonna stop the scan!
Now I&amp;#39;m gonna disconnect!
The RX Disconnected!
The AoA is completed!
Now I am using the AoD Setting.
Second, calculate the AoD.
 Now I am asking a connection and becoming a TX.
Bluetooth initialized
Advertising successfully started&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Single antenna side:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt; Hello, this is the Single Antenna Side!! 

Bluetooth initialized
Now I am going into the Switch Loop... 

-----------------------------------------------------------------------LOOP START 

Now I am using the AoA Setting.
First, calculate the AoA.
 Now I am asking a connection and becoming a TX.
Bluetooth initialized
Advertising successfully started
[00:00:00.268,493] &#x1B;[0m&amp;lt;inf&amp;gt; bt_hci_core: hci_vs_init: HW Platform: Nordic Semiconductor (0x0002)&#x1B;[0m
[00:00:00.268,524] &#x1B;[0m&amp;lt;inf&amp;gt; bt_hci_core: hci_vs_init: HW Variant: nRF52x (0x0002)&#x1B;[0m
[00:00:00.268,554] &#x1B;[0m&amp;lt;inf&amp;gt; bt_hci_core: hci_vs_init: Firmware: Standard Bluetooth controller (0x00) Version 3.2 Build 99&#x1B;[0m
[00:00:00.269,317] &#x1B;[0m&amp;lt;inf&amp;gt; bt_hci_core: bt_dev_show_info: Identity: FC:01:50:FD:5F:53 (random)&#x1B;[0m
[00:00:00.269,348] &#x1B;[0m&amp;lt;inf&amp;gt; bt_hci_core: bt_dev_show_info: HCI: version 5.3 (0x0c) revision 0x0000, manufacturer 0x05f1&#x1B;[0m
[00:00:00.2Connected as a PERIPHERAL
Set CTE transmission params...success.
Set CTE response enable...success.
69,378] &#x1B;[0m&amp;lt;inf&amp;gt; bt_hci_core: bt_dev_show_info: LMP: version 5.3 (0x0c) subver 0xffff&#x1B;[0m
The other side has completed the CTE collection, and want to disconnect...
Disconnected (reason 0x13)
Second, calculate the AoD.
 Now I am waiting for a connection and becoming a RX. 
Now I am using the AoD Setting.
Scanning successfully started
[DEVICE]: 04:95:9E:85:E4:31 (random), AD evt type 3, AD data len 31, RSSI -65
[DEVICE]: 11:8E:BB:9F:5C:D4 (random), AD evt type 3, AD data len 31, RSSI -73
[DEVICE]: 53:92:EB:C2:9D:CE (random), AD evt type 3, AD data len 17, RSSI -48
[DEVICE]: 12:89:A5:62:96:36 (random), AD evt type 3, AD data len 31, RSSI -33
[DEVICE]: 2A:34:53:29:E5:23 (random), AD evt type 3, AD data len 31, RSSI -54
[DEVICE]: 7C:27:BC:D1:9D:2E (public), AD evt type 3, AD data len 19, RSSI -64
[DEVICE]: 12:89:A5:62:96:36 (random), AD evt type 3, AD data len 31, RSSI -43
[DEVICE]: 2A:34:53:29:E5:23 (random), AD evt type 3, AD data len 31, RSSI -59
[DEVICE]: 4E:2F:34:97:F8:64 (random), AD evt type 3, AD data len 31, RSSI -77
[DEVICE]: 0F:ED:AB:B2:EC:75 (random), AD evt type 3, AD data len 31, RSSI -81
[DEVICE]: 78:11:DC:C2:89:2F (public), AD evt type 0, AD data len 24, RSSI -82
[AD]: 1 data_len 1
[AD]: 22 data_len 19
[DEVICE]: 04:95:9E:85:E4:31 (random), AD evt type 3, AD data len 31, RSSI -55
[DEVICE]: 4E:2F:34:97:F8:64 (random), AD evt type 3, AD data len 31, RSSI -79
[DEVICE]: 78:11:DC:C2:89:2F (public), AD evt type 0, AD data len 24, RSSI -83
[AD]: 1 data_len 1
[AD]: 22 data_len 19
[DEVICE]: 78:11:DC:C2:89:2F (public), AD evt type 4, AD data len 28, RSSI -82
[DEVICE]: 04:95:9E:85:E4:31 (random), AD evt type 3, AD data len 31, RSSI -66
[DEVICE]: 12:89:A5:62:96:36 (random), AD evt type 3, AD data len 31, RSSI -32
[DEVICE]: 78:11:DC:C2:89:2F (public), AD evt type 0, AD data len 24, RSSI -79
[AD]: 1 data_len 1
[AD]: 22 data_len 19
[DEVICE]: 7C:27:BC:D1:9D:2E (public), AD evt type 3, AD data len 19, RSSI -65
[DEVICE]: 4A:3F:F9:A9:00:C2 (random), AD evt type 0, AD data len 17, RSSI -51
[AD]: 1 data_len 1
[AD]: 10 data_len 1
[AD]: 255 data_len 9
[DEVICE]: 4A:3F:F9:A9:00:C2 (random), AD evt type 4, AD data len 0, RSSI -49
[DEVICE]: 2A:34:53:29:E5:23 (random), AD evt type 3, AD data len 31, RSSI -52
[DEVICE]: 12:89:A5:62:96:36 (random), AD evt type 3, AD data len 31, RSSI -33
[DEVICE]: 2A:34:53:29:E5:23 (random), AD evt type 3, AD data len 31, RSSI -54
[DEVICE]: 04:95:9E:85:E4:31 (random), AD evt type 3, AD data len 31, RSSI -65
[DEVICE]: 4E:2F:34:97:F8:64 (random), AD evt type 3, AD data len 31, RSSI -73
[DEVICE]: 0F:ED:AB:B2:EC:75 (random), AD evt type 3, AD data len 31, RSSI -72
[DEVICE]: 7C:27:BC:D1:9D:2E (public), AD evt type 3, AD data len 19, RSSI -64
[DEVICE]: 04:95:9E:85:E4:31 (random), AD evt type 3, AD data len 31, RSSI -66
[DEVICE]: 11:8E:BB:9F:5C:D4 (random), AD evt type 3, AD data len 31, RSSI -73
[DEVICE]: 0F:ED:AB:B2:EC:75 (random), AD evt type 3, AD data len 31, RSSI -80
[DEVICE]: 78:11:DC:C2:89:2F (public), AD evt type 0, AD data len 24, RSSI -79
[AD]: 1 data_len 1
[AD]: 22 data_len 19
[DEVICE]: 78:11:DC:C2:89:2F (public), AD evt type 4, AD data len 28, RSSI -79
[DEVICE]: 68:E4:78:EA:52:FF (public), AD evt type 0, AD data len 31, RSSI -92
[AD]: 1 data_len 1
[AD]: 9 data_len 8
[AD]: 22 data_len 16
[DEVICE]: 78:11:DC:C2:89:2F (public), AD evt type 0, AD data len 24, RSSI -82
[AD]: 1 data_len 1
[AD]: 22 data_len 19
[DEVICE]: 78:11:DC:C2:89:2F (public), AD evt type 4, AD data len 28, RSSI -81
[DEVICE]: 2A:34:53:29:E5:23 (random), AD evt type 3, AD data len 31, RSSI -60
[DEVICE]: 78:11:DC:C2:89:2F (public), AD evt type 0, AD data len 24, RSSI -82
[AD]: 1 data_len 1
[AD]: 22 data_len 19
[DEVICE]: 78:11:DC:C2:89:2F (public), AD evt type 4, AD data len 28, RSSI -82
[DEVICE]: 11:8E:BB:9F:5C:D4 (random), AD evt type 3, AD data len 31, RSSI -74
[DEVICE]: 12:89:A5:62:96:36 (random), AD evt type 3, AD data len 31, RSSI -32
[DEVICE]: 4E:2F:34:97:F8:64 (random), AD evt type 3, AD data len 31, RSSI -78
[DEVICE]: 4A:3F:F9:A9:00:C2 (random), AD evt type 0, AD data len 17, RSSI -49
[AD]: 1 data_len 1
[AD]: 10 data_len 1
[AD]: 255 data_len 9
[DEVICE]: 4A:3F:F9:A9:00:C2 (random), AD evt type 4, AD data len 0, RSSI -49
[DEVICE]: 04:95:9E:85:E4:31 (random), AD evt type 3, AD data len 31, RSSI -55
[DEVICE]: 4E:2F:34:97:F8:64 (random), AD evt type 3, AD data len 31, RSSI -79
[DEVICE]: 0F:ED:AB:B2:EC:75 (random), AD evt type 3, AD data len 31, RSSI -66
[DEVICE]: 7C:27:BC:D1:9D:2E (public), AD evt type 3, AD data len 19, RSSI -67
[DEVICE]: 2A:34:53:29:E5:23 (random), AD evt type 3, AD data len 31, RSSI -54
[DEVICE]: 04:95:9E:85:E4:31 (random), AD evt type 3, AD data len 31, RSSI -64
[DEVICE]: 68:E4:78:EA:52:FF (public), AD evt type 0, AD data len 31, RSSI -91
[AD]: 1 data_len 1
[AD]: 9 data_len 8
[AD]: 22 data_len 16
[DEVICE]: 38:71:41:40:89:0F (random), AD evt type 3, AD data len 31, RSSI -63
[DEVICE]: 11:8E:BB:9F:5C:D4 (random), AD evt type 3, AD data len 31, RSSI -74
[DEVICE]: 2A:34:53:29:E5:23 (random), AD evt type 3, AD data len 31, RSSI -64
[DEVICE]: 12:89:A5:62:96:36 (random), AD evt type 3, AD data len 31, RSSI -32
[DEVICE]: 78:11:DC:C2:89:2F (public), AD evt type 0, AD data len 24, RSSI -79
[AD]: 1 data_len 1
[AD]: 22 data_len 19
[DEVICE]: 78:11:DC:C2:89:2F (public), AD evt type 4, AD data len 28, RSSI -78
[DEVICE]: F4:B3:B1:AE:33:46 (public), AD evt type 3, AD data len 30, RSSI -67
[DEVICE]: 12:89:A5:62:96:36 (random), AD evt type 3, AD data len 31, RSSI -43
[DEVICE]: 11:8E:BB:9F:5C:D4 (random), AD evt type 3, AD data len 31, RSSI -69
[DEVICE]: 2A:34:53:29:E5:23 (random), AD evt type 3, AD data len 31, RSSI -52
[DEVICE]: 78:11:DC:C2:89:2F (public), AD evt type 0, AD data len 24, RSSI -83
[AD]: 1 data_len 1
[AD]: 22 data_len 19
[DEVICE]: 78:11:DC:C2:89:2F (public), AD evt type 4, AD data len 28, RSSI -82
[DEVICE]: 4E:2F:34:97:F8:64 (random), AD evt type 3, AD data len 31, RSSI -73
[DEVICE]: 04:95:9E:85:E4:31 (random), AD evt type 3, AD data len 31, RSSI -65
[DEVICE]: 78:11:DC:C2:89:2F (public), AD evt type 0, AD data len 24, RSSI -83
[AD]: 1 data_len 1
[AD]: 22 data_len 19
[DEVICE]: 0F:ED:AB:B2:EC:75 (random), AD evt type 3, AD data len 31, RSSI -77
[DEVICE]: 7C:27:BC:D1:9D:2E (public), AD evt type 3, AD data len 19, RSSI -63
[DEVICE]: 4E:2F:34:97:F8:64 (random), AD evt type 3, AD data len 31, RSSI -80
[DEVICE]: 78:11:DC:C2:89:2F (public), AD evt type 0, AD data len 24, RSSI -79
[AD]: 1 data_len 1
[AD]: 22 data_len 19
[DEVICE]: 78:11:DC:C2:89:2F (public), AD evt type 4, AD data len 28, RSSI -79
[DEVICE]: 4A:3F:F9:A9:00:C2 (random), AD evt type 0, AD data len 17, RSSI -50
[AD]: 1 data_len 1
[AD]: 10 data_len 1
[AD]: 255 data_len 9
[DEVICE]: 4E:2F:34:97:F8:64 (random), AD evt type 3, AD data len 31, RSSI -80
[DEVICE]: 12:89:A5:62:96:36 (random), AD evt type 3, AD data len 31, RSSI -32
[DEVICE]: 11:8E:BB:9F:5C:D4 (random), AD evt type 3, AD data len 31, RSSI -73
[DEVICE]: 04:95:9E:85:E4:31 (random), AD evt type 3, AD data len 31, RSSI -55&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Direction Finding Project: Central and Peripheral Integration</title><link>https://devzone.nordicsemi.com/thread/487509?ContentTypeID=1</link><pubDate>Wed, 05 Jun 2024 12:14:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7fe3aa7e-ca15-4cef-9778-212a8b44d876</guid><dc:creator>Zihao</dc:creator><description>&lt;p&gt;Hi, thank you for your reply.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1)&lt;/strong&gt; I just merge the config of the official central and peripheral. So in the final prj.conf I used, I can check that the values of CONFIG_BT_PERIPHERAL and CONFIG_BT_CENTRAL are &amp;#39;y&amp;#39;. But I don&amp;#39;t know the &amp;#39;CONFIG_BT_CTLR_SDC_PERIPHERAL_COUNT&amp;#39;, &amp;#39;CONFIG_BT_CTLR_SDC_CENTRAL_COUNT &amp;#39; and &amp;#39;CONFIG_BT_MAX_CONN&amp;#39;, which do not appear in the default direction finding samples.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2)&lt;/strong&gt; No, I didn&amp;#39;t see any error return values. As I said before, the TX seems transmit all the time, while the RX scan all the time. But the connection did not occur. However, see 3).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3)&lt;/strong&gt; Yes, I added some function like XXX_disable() today and got some progress. I got the AoA and AoD successfully! But only the fisrt loop worked in my project. I still meet something error here. So please help me because I need the loop to run continuously.&lt;br /&gt;&amp;nbsp; &amp;nbsp; a) When the RX complete the CTE collection and ready to switch to TX, I call the bt_le_scan_stop() then it report an error: Scanning failed to stop (err -120). I don&amp;#39;t know why I can&amp;#39;t stop the scan. &lt;br /&gt;Before that, I have called the disable_cte_reqest() and it seem&amp;#39;s execute right. All the functions were called in the disconnected call back function. And the disconnect function (bt_conn_disconnect()) was called in the cte_recv_cb() when it received enough CTE packets.&lt;br /&gt;&amp;nbsp; &amp;nbsp; b) When the TX complete the CTE transmission and ready to switch to RX, the disable_cte_response(conn) should be called. But I don&amp;#39;t know where should it be. In my understand, I can determine when the CTE transmission has completed only through the disconnection event. So I call disable_cte_response(conn) in the disconnected call back function. The result is, err -128, which means &amp;quot;Socket is not connected.&amp;quot;. I think I can&amp;#39;t call it in the disconnected callback function because the connection is over but it is needed by the function (requires parameter &amp;#39;conn&amp;#39;).&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; c) Disable the request CTE from peer device... failed (err -22). &lt;br /&gt;&amp;nbsp; &amp;nbsp; The function I called is bt_df_conn_cte_req_disable().&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; My _disable() function:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;// both the functions are called in the disconnected call back function.
static void disable_cte_response(struct bt_conn *conn)
{
	int err;
	printk(&amp;quot;Set CTE response disable...&amp;quot;);
	err = bt_df_conn_cte_rsp_disable(conn);
	if (err) {
		printk(&amp;quot;failed (err %d).\n&amp;quot;, err);
		return;
	}
	printk(&amp;quot;success.\n&amp;quot;);
}

static void disable_cte_reqest(void)
{
	int err;

	printk(&amp;quot;Disable the request CTE from peer device...\n&amp;quot;);
	err = bt_df_conn_cte_req_disable(default_conn);
	if (err) {
		printk(&amp;quot;failed (err %d)\n&amp;quot;, err);
		return;
	}
	printk(&amp;quot;success. CTE request disabled.\n&amp;quot;);

	printk(&amp;quot;Disable receiving of CTE...\n&amp;quot;);
	err = bt_df_conn_cte_rx_disable(default_conn);
	if (err) {
		printk(&amp;quot;failed (err %d)\n&amp;quot;, err);
		return;
	}
	printk(&amp;quot;success. CTE receive disabled.\n&amp;quot;);
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4)&lt;/strong&gt; I want to call bt_enable() multiple times because I need to switch between TX and RX on one device. I just thought that initializing it again and again might be an easy way to achieve the switching. If I&amp;#39;m wrong, I apologize.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5)&lt;/strong&gt; I don&amp;#39;t know if there is something wrong in my main function. I wrote two while loops with a k_sleep function to control the TX or RX operations like this:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;while(true){

	AoA_Setting();
	CENTRAL_Setting();

	MAIN_RX_IS_COMPLETED = false;
	start_scan();
	while(!MAIN_RX_IS_COMPLETED){k_sleep(K_MSEC(100));}

	printk(&amp;quot;The AoA is completed!\n&amp;quot;);
	
	
	AoD_Setting();
	PERIPHERAL_Setting();

	MAIN_TX_IS_COMPLETED = false;
	bt_ready();
	while(!MAIN_TX_IS_COMPLETED){k_sleep(K_MSEC(100));}

	printk(&amp;quot;The AoD is completed!\n&amp;quot;);

}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#ff0000;font-size:150%;"&gt;&lt;strong&gt;Thanks again!!&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Direction Finding Project: Central and Peripheral Integration</title><link>https://devzone.nordicsemi.com/thread/487288?ContentTypeID=1</link><pubDate>Tue, 04 Jun 2024 11:15:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3fa7c89c-bd5b-4fc9-adca-9655bddbce3c</guid><dc:creator>tesc</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
[quote user=""]However, when I switch to TX mode, the connection can&amp;#39;t be estiblished. The TX(antenna array) just transmit all the time, and the RX(single antenna side) just scan all the time.&lt;br /&gt;So why can&amp;#39;t the connection be estiblished?[/quote]
&lt;p&gt;Can you check CONFIG_BT_PERIPHERAL, CONFIG_BT_CTLR_SDC_PERIPHERAL_COUNT, CONFIG_BT_CENTRAL, CONFIG_BT_CTLR_SDC_CENTRAL_COUNT and CONFIG_BT_MAX_CONN?&lt;/p&gt;
&lt;p&gt;Are there any error return values, or anything else indicating in what way it fails?&lt;/p&gt;
[quote user=""]A) In enable_cte_request(), the functions bt_df_conn_cte_rx_enable() and bt_df_conn_cte_req_enable() set certain settings. So, when I call enable_cte_response(), do I need to drop or cancel the settings made by bt_df_conn_cte_rx_enable() and bt_df_conn_cte_req_enable()?[/quote]
&lt;p&gt;I see that those API calls have ..._disable() variants. Have you tried, after stopping scanning and advertising respectively, disabling the corresponding cte? I.e. create a corresponding disable_cte_request() to enable_cte_request() and a corresponding disable_cte_response() to enable_cte_response(), containing the API calls for disabling what was enabled in the ..._enable() variants.&lt;/p&gt;
[quote user=""]B) I know that Bluetooth can only be initialized once in Zephyr. Is there any operation similar to &amp;quot;drop&amp;quot;, allowing me to call bt_enable() multiple times?[/quote]
&lt;p&gt;One workaround is to do a soft reset, but of course it depends on what you are trying to achieve. Other workarounds may be applicable, depending on the use case. Why do you want to call bt_enable() multiple times, what are you trying to achieve?&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Terje&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>