<?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>Windows 10 throughput / connection window clashes</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/70221/windows-10-throughput-connection-window-clashes</link><description>I&amp;#39;m facing a problem with a product I&amp;#39;m developing. The problematic setup is as follows: 
 
 Two nRF52832 peripherals (S132 v6.0.0), each notifying on two characteristics in two separate services (~100 Hz). 
 A Windows 10 central using native C++ SDK</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 12 Jan 2021 17:55:51 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/70221/windows-10-throughput-connection-window-clashes" /><item><title>RE: Windows 10 throughput / connection window clashes</title><link>https://devzone.nordicsemi.com/thread/288752?ContentTypeID=1</link><pubDate>Tue, 12 Jan 2021 17:55:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:46a6e0cf-e60a-4265-aca7-62772a194363</guid><dc:creator>daviddedwin</dc:creator><description>&lt;p&gt;Absolutely, I would take this as supporting the hypothesis that the firmware patches are different for the mac OS vs the windows PC. &lt;br /&gt;As a final&amp;nbsp;test&amp;nbsp; you can setup a sniffer and capture the traces from the Windows and the mac OS. Look for the VERSION_IND packet from the CSR, this will also have an identifier for the firmware levels. The caveat is that the CSR firmware may not send the VERSION_IND but its worth a try as well. However do look at the hypotheses i have stated earlier as well.&lt;/p&gt;
&lt;p&gt;Please give my answer an upvote if this has been helpful.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Windows 10 throughput / connection window clashes</title><link>https://devzone.nordicsemi.com/thread/288751?ContentTypeID=1</link><pubDate>Tue, 12 Jan 2021 17:48:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bd817f87-286f-4968-8612-2b487ab311a7</guid><dc:creator>dingari</dc:creator><description>&lt;p&gt;Duly noted!&lt;/p&gt;
&lt;p&gt;One other thing I&amp;#39;m wondering if it might have some say in this matter is the GAP data length parameter. When connecting to my peripheral on macOS, the rx/tx octets are updated according to what I set `NRF_SDH_BLE_GAP_DATA_LENGTH` to (64). But when connecting to the Windows side, it just stays at 27. Could this have some significance?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Windows 10 throughput / connection window clashes</title><link>https://devzone.nordicsemi.com/thread/288733?ContentTypeID=1</link><pubDate>Tue, 12 Jan 2021 16:46:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ce9782e7-cb25-48bb-b96a-412a540d1a46</guid><dc:creator>daviddedwin</dc:creator><description>&lt;p&gt;Looking at the driver tab that you have posted, the generic Microsoft Bluetooth driver is controlling the dongle on Windows 10. The CSR hardware uses a RAM based patch system to get updated code to the hardware, this patch is usually distributed through the vendor&amp;#39;s driver. It would be good to use the vendor&amp;#39;s latest driver instead of the generic microsoft driver.&lt;br /&gt;&lt;br /&gt;Since the patch is distributed with the driver, it is possible that the mac OS&amp;nbsp;has a later version of the driver and associated patches and hence performs better.&lt;/p&gt;
&lt;p&gt;I would still encourage you to switch off WiFi and do a test (agreed, it is not a solution), so if the performance of the system improves from its current 1 in 100 attempts to have 2 peripherals, then we are certainly looking at a scheduler issue&lt;/p&gt;
&lt;p&gt;Additionally and I think fairly important, you should test this on a&amp;nbsp;inbuilt&amp;nbsp; Win 10 Bluetooth hardware, as the dongle does not have the WiFi co-existance and will have worse performance as the WiFi will keep hitting on the Bluetooth packets. The dongle is something that a typical Win 10 user will&amp;nbsp;&lt;em&gt;not&lt;/em&gt; be using.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Summary of my hypotheses :&lt;/strong&gt;&lt;br /&gt;* Performance differences between macOS and Win 10, likely due the use of the generic windows driver which may not be at the right patch level.&lt;br /&gt;* Test with WiFi off to see if performance improves pointing to a scheduler issue&lt;br /&gt;* Dongle is not a typical use case for Win 10 so test with built-in Bluetooth and a vendor supplied driver&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Windows 10 throughput / connection window clashes</title><link>https://devzone.nordicsemi.com/thread/288722?ContentTypeID=1</link><pubDate>Tue, 12 Jan 2021 15:59:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2828c8d4-09a3-4f04-be15-8c440fe10880</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I would recommend that you capture and upload sniffer trace of the on-air activity between the peripheral and central devices, both for the single-peripheral and dual-peripheral setups. That will provide much information about what happens and could help figure out the root cause.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;Jørgen&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Windows 10 throughput / connection window clashes</title><link>https://devzone.nordicsemi.com/thread/288680?ContentTypeID=1</link><pubDate>Tue, 12 Jan 2021 13:58:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:81294ea1-c986-4896-bbe3-6540e4e57e61</guid><dc:creator>dingari</dc:creator><description>&lt;p&gt;@daviddedwin Thanks for the reply. The machine I&amp;#39;m testing on is running the latest Windows build (10.0.19041) and according to the Device Manager the Bluetooth adapter driver is &amp;quot;up to date&amp;quot;, whatever that means.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/pastedimage1610459511302v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;This is a CSR USB dongle (USB\VID_0A12&amp;amp;PID_0001&amp;amp;REV_8891), but I experience this issue on my laptop as well. I&amp;#39;m running macOS Catalina on the same hardware and don&amp;#39;t experience this issue.&lt;/p&gt;
&lt;p&gt;I&amp;#39;d really like to keep it at the lowest possible value. I can see that the only connection parameter update received from the Windows central on the nRF52832 sets it to 15ms.&lt;/p&gt;
&lt;p&gt;Also, disabling WiFi is not a solution (while I understand trying to limit the variables in this equation). We are nowhere near any thresholds for BLE bandwidth/throughput, and this setup works fine on another OS on the same hardware.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/members/marjeris-romero"&gt;Marjeris Romero&lt;/a&gt; I&amp;#39;d love to hear any input you might have on this subject. If there&amp;#39;s anything we can do to improve the performance since it&amp;#39;s very sub optimal as-is.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Windows 10 throughput / connection window clashes</title><link>https://devzone.nordicsemi.com/thread/288033?ContentTypeID=1</link><pubDate>Thu, 07 Jan 2021 19:24:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ae4322ae-dd98-4766-9991-438aae725629</guid><dc:creator>daviddedwin</dc:creator><description>&lt;p&gt;Additionally, when you are doing the experiments, make sure that no other devices are connected over Bluetooth and that WiFi is disabled, this will ensure that BLE bandwidth is maximized.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Windows 10 throughput / connection window clashes</title><link>https://devzone.nordicsemi.com/thread/288032?ContentTypeID=1</link><pubDate>Thu, 07 Jan 2021 19:20:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f97ad309-2a60-481f-a9ec-829174f33fbe</guid><dc:creator>daviddedwin</dc:creator><description>&lt;p&gt;This can be a scheduling issue on the link controller of the PC running Windows 10, so for completeness &lt;strong&gt;please report the Bluetooth IC that is used on the Windows 10 PC and the Windows 10 build number&lt;/strong&gt;. Yes, just connecting at the link will change the bandwidth allocation on the PC Bluetooth. The additional info that this works 1/100 times points towards a scheduler issue possibility.&lt;/p&gt;
&lt;p&gt;You can do a few experiments to get some more insight&amp;nbsp;&lt;br /&gt;&lt;br /&gt;1. Run this on a PC with a different Bluetooth IC. Verify that you have the latest driver for the Bluetooth IC that you are using so any patches can be applied.&lt;/p&gt;
&lt;p&gt;2. Track the &lt;a class="el" href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s132.api.v6.1.1/group___b_l_e___g_a_t_t_s___e_n_u_m_e_r_a_t_i_o_n_s.html#ggae537647902af1b05c1e32f12d6b401c7afab96bfa9918017082235f7664919f9d"&gt;&lt;span&gt;BLE_GATTS_EVT_HVN_TX_COMPLETE&lt;/span&gt;&lt;/a&gt; messages for the notifications and see if they are getting delayed. You should get a&amp;nbsp;&lt;span&gt;&lt;a class="el" href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s132.api.v6.1.1/group___b_l_e___g_a_t_t_s___e_n_u_m_e_r_a_t_i_o_n_s.html#ggae537647902af1b05c1e32f12d6b401c7afab96bfa9918017082235f7664919f9d"&gt;BLE_GATTS_EVT_HVN_TX_COMPLETE&lt;/a&gt;&amp;nbsp;event with a count so you get an idea of the number of notifications being done. you can log this with a timer timestamp so you get an idea of the speed of the notifications. You can also adjust the&amp;nbsp;Handle Value Notification queue size using that&amp;nbsp;&lt;a class="el" href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s113.api.v7.0.1/structble__gatts__conn__cfg__t.html#ae2a1156d8b06a6ccc70696f2372226cc"&gt;ble_gatts_conn_cfg_t::hvn_tx_queue_size&lt;/a&gt;&amp;nbsp;make sure you have set it to a number that fits your application.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;3. If you use the nRF Sniffer you will need to use 2 sniffers to sniff the 2 peripherals and you should see the actual connection interval and the data being sent.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;4. Change the connection intervals that you are requesting to 30ms - 50ms or something more relaxed to see if the peripherals can co-exist.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;5. Check if you are getting a&amp;nbsp;&lt;a class="el" href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s132.api.v6.0.0/group___b_l_e___g_a_p___e_n_u_m_e_r_a_t_i_o_n_s.html#ggae39030093ebca17966d1896533d1b556a715b80d35521667b95cdefaedfad2250"&gt;SD_BLE_GAP_CONN_PARAM_UPDATE&lt;/a&gt;&amp;nbsp;that changes the connection interval and may explain the delayed notifications.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>