<?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>pc-ble-driver-py: throughput limited and maximum amount of peripherals</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/74727/pc-ble-driver-py-throughput-limited-and-maximum-amount-of-peripherals</link><description>Hello, 
 For a bachelor project I&amp;#39;m currently testing the throughput of the nRF52840 Dongle with pc-ble-driver-py and it appears that the pc-ble-driver-py has a maximum notification data rate of roughly 700 Bytes/sec. 
 In my setup I have a peripheral</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 30 Oct 2023 19:59:31 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/74727/pc-ble-driver-py-throughput-limited-and-maximum-amount-of-peripherals" /><item><title>RE: pc-ble-driver-py: throughput limited and maximum amount of peripherals</title><link>https://devzone.nordicsemi.com/thread/453137?ContentTypeID=1</link><pubDate>Mon, 30 Oct 2023 19:59:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f5065c87-d62c-4433-98f6-48e1bca439d6</guid><dc:creator>Lucas</dc:creator><description>&lt;p&gt;Hell Vidar,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I know this is a very old post. However, I am working on streaming from a NRF52840 dongle to a python application I am developing that will feed data into Matlab. I&amp;#39;ve got everything working, but the data stream is missing packets. I know this setup works because I am able to stream data reliable with the NRF Connect Desktop Application.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I tried using these Lib files, but I get an error about WIN32. How can I fix this throughput issue with python?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Lucas&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: pc-ble-driver-py: throughput limited and maximum amount of peripherals</title><link>https://devzone.nordicsemi.com/thread/309191?ContentTypeID=1</link><pubDate>Tue, 11 May 2021 10:49:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b2f65db3-246f-43ac-a5de-a313be18d4b5</guid><dc:creator>jaclim</dc:creator><description>&lt;p&gt;Hello Vidar,&lt;/p&gt;
&lt;p&gt;I doublechecked my connection interval configuration and it is indeed the reason why I had the 30ms delay.&lt;/p&gt;
&lt;p&gt;Thank you very much for your help!&lt;/p&gt;
&lt;p&gt;Best,&lt;br /&gt;jaclim&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: pc-ble-driver-py: throughput limited and maximum amount of peripherals</title><link>https://devzone.nordicsemi.com/thread/309154?ContentTypeID=1</link><pubDate>Tue, 11 May 2021 09:01:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:060778b1-c99e-440d-8100-6eb4cf3378e6</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hello Jaclim,&lt;/p&gt;
[quote user="jaclim"]peripheral which sends a notification every 10ms.[/quote]
&lt;p&gt;Is the Softdevice nofiication send function aligned with the connection events interval, or do you just trigger a send every 10 ms? Either way, I would suggest that you capture a sniffer trace (&lt;a href="https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Sniffer-for-Bluetooth-LE"&gt;nRF Sniffer for Bluetooth LE&lt;/a&gt;) to confirm if the GATT server is really sending one notification per connection event.&lt;/p&gt;
[quote user="jaclim"]Also, are there already plans for updating the pc-ble-driver-py repo with new driver?[/quote]
&lt;p&gt;&amp;nbsp;Yes, we plan to have the latest update included in the next pc-ble-driver-py release. However, I&amp;#39;m not able to give you an exact timeframe of when this release will come.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: pc-ble-driver-py: throughput limited and maximum amount of peripherals</title><link>https://devzone.nordicsemi.com/thread/309054?ContentTypeID=1</link><pubDate>Mon, 10 May 2021 16:10:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8174ab79-b218-4a19-ae13-89f3ad70bc15</guid><dc:creator>jaclim</dc:creator><description>&lt;p&gt;Hello Vidar,&lt;/p&gt;
&lt;p&gt;I checked again and basically realized that I&amp;#39;ve made a mistake during my measurement. The nRF Dongle with the new driver does definitely perform better than the old one on Windows. In my experimental setup it does reach a rate of at least 125kbps.&lt;/p&gt;
&lt;p&gt;What still remains a mystery for me is why the time between two consecutive notifications vary between 1ms and 30ms for a peripheral which sends a notification every 10ms. Here is a &lt;a href="https://devzone.nordicsemi.com/resized-image/__size/1040x977/__key/communityserver-discussions-components-files/4/2781.Figure_5F00_1.png"&gt;plot&lt;/a&gt; where you can see whenever the pc-ble-driver-py calls the on_notification function. Could you explain how the pc-ble-driver handles notifications?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Also, are there already plans for updating the pc-ble-driver-py repo with new driver?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best,&lt;/p&gt;
&lt;p&gt;jaclim&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: pc-ble-driver-py: throughput limited and maximum amount of peripherals</title><link>https://devzone.nordicsemi.com/thread/308653?ContentTypeID=1</link><pubDate>Fri, 07 May 2021 07:35:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5fa0356e-fd55-4a06-ba17-afc314f58902</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hello Jaclim,&lt;/p&gt;
&lt;p&gt;It&amp;#39;s not expected behaviour no. I&amp;#39;ve tried to test throughput now with the python wrapper, and I actually got better results this time (~1000kbps). Attached below is the test script and FW if you want to try replicate it on your setup.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nordic UART Service client python script&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/1715.nus_5F00_central.py"&gt;devzone.nordicsemi.com/.../1715.nus_5F00_central.py&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Modified Nordic UART peripheral FW to measure throughput&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/5582.nrf5_5F00_sdk_5F00_17.0.2-_2D00_-ble_5F00_app_5F00_uart_5F00_throughput.zip"&gt;devzone.nordicsemi.com/.../5582.nrf5_5F00_sdk_5F00_17.0.2-_2D00_-ble_5F00_app_5F00_uart_5F00_throughput.zip&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Resulting transfer speed displayed in Segger debug terminal:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/pastedimage1620372642120v1.png" alt=" " /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: pc-ble-driver-py: throughput limited and maximum amount of peripherals</title><link>https://devzone.nordicsemi.com/thread/308497?ContentTypeID=1</link><pubDate>Thu, 06 May 2021 09:45:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3016ceb3-f1c5-4c0f-9c06-db05f95836cd</guid><dc:creator>jaclim</dc:creator><description>&lt;p&gt;Hello Vidar,&lt;/p&gt;
&lt;p&gt;Thank you! The performance for the notifications did indeed improve. I could reach a rate of 1600 bytes/second which is still far away from the 700 kbps. Although, the time between two notification event seems to be rather inconsistent. Sometimes it is 30ms and other times its around 1ms, in both cases where my peripheral sends a notification every 10ms and 20ms. Is this the expected behaviour of the driver?&lt;/p&gt;
&lt;p&gt;I tried to flash the nRF Dongle with the version 4.1.4 provided in the hex folder. But It didn&amp;#39;t work afterwards. nRF Connect tells me that the Dongle has not been programmed.&lt;/p&gt;
&lt;p&gt;Best,&lt;/p&gt;
&lt;p&gt;Jaclim&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: pc-ble-driver-py: throughput limited and maximum amount of peripherals</title><link>https://devzone.nordicsemi.com/thread/308384?ContentTypeID=1</link><pubDate>Wed, 05 May 2021 14:15:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b32ab191-6f3a-4b4f-bbd7-435bc5686d93</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hello Jaclim,&lt;/p&gt;
&lt;p&gt;It should be possible to build it with the latest driver, but the exact steps for it are not covered by the build instructions. However, the quickest way to try out the new library is to download the pre-compiled lib files from the release page (&lt;a href="https://github.com/NordicSemiconductor/pc-ble-driver/releases"&gt;https://github.com/NordicSemiconductor/pc-ble-driver/releases&lt;/a&gt;) and simply replace the lib files in \Lib\site-packages\pc_ble_driver_py\lib\.&lt;/p&gt;
&lt;p&gt;Here is the content of \Lib\site-packages\pc_ble_driver_py\lib\&amp;nbsp; with pc-ble-driver version 4.1.4 libraries (I renamed the files to 4_1_2 due to hardcoded references in the python code):&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/3157.lib.zip"&gt;devzone.nordicsemi.com/.../3157.lib.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: pc-ble-driver-py: throughput limited and maximum amount of peripherals</title><link>https://devzone.nordicsemi.com/thread/308380?ContentTypeID=1</link><pubDate>Wed, 05 May 2021 14:04:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:86371407-872b-47ef-9a03-cbf1b797c9e5</guid><dc:creator>jaclim</dc:creator><description>&lt;p&gt;Hello Vidar,&lt;/p&gt;
&lt;p&gt;Thanks for the reply! I&amp;#39;m trying to install the pc-ble-driver-py with the latest version by following the &lt;a href="https://github.com/NordicSemiconductor/pc-ble-driver-py#building-from-source"&gt;Building from source&lt;/a&gt; guide from the pc-ble-driver-py GitHub. However, I&amp;#39;m not sure what I should exactly do and whether this is even the correct approach to install the newest driver. Could you maybe explain what exactly I have to do here?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;jaclim&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: pc-ble-driver-py: throughput limited and maximum amount of peripherals</title><link>https://devzone.nordicsemi.com/thread/308230?ContentTypeID=1</link><pubDate>Tue, 04 May 2021 14:46:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f8d33f89-06b2-4a1b-9f2c-8e181c05cf8b</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hello Jaclim,&lt;/p&gt;
&lt;p&gt;I recommend that you try installing pc-ble-driver-py with the latest pc-ble-driver version because this release (&lt;a href="https://github.com/NordicSemiconductor/pc-ble-driver/releases"&gt;link&lt;/a&gt;) addresses an issue with USB latencies we&amp;#39;ve seen on Windows. I managed to get around 7-800kbps after I updated it&amp;nbsp; my Win 10 PC (note: not tested with python wrapper on top).&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Vidar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>