<?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 1.0 - maximum data throughput</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/16991/pc-ble-driver-1-0---maximum-data-throughput</link><description>Hello, 
 I try to achieve maximum data throughput using pc-ble-driver 1.0 and nRF51(with ble_connectivity) as BLE dongle. 
 First problem I encountered was the bug with setting ble_conn_bw_counts_t parameters in the sd_ble_enable() but thanks to Hung</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 02 Oct 2017 18:09:04 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/16991/pc-ble-driver-1-0---maximum-data-throughput" /><item><title>RE: pc-ble-driver 1.0 - maximum data throughput</title><link>https://devzone.nordicsemi.com/thread/65197?ContentTypeID=1</link><pubDate>Mon, 02 Oct 2017 18:09:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:252d3fc7-684f-4f14-bb05-57977a4eceb8</guid><dc:creator>Eric Stutzenberger</dc:creator><description>&lt;p&gt;Mike, are you able to add your upload your patch or post it on pastebin?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: pc-ble-driver 1.0 - maximum data throughput</title><link>https://devzone.nordicsemi.com/thread/65196?ContentTypeID=1</link><pubDate>Mon, 07 Nov 2016 11:28:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:18b11ab7-463d-44bc-955a-66179c9aae4e</guid><dc:creator>Bj&amp;#248;rn Inge</dc:creator><description>&lt;p&gt;Hi, good to hear that patching the flow control worked out.
Running without software handshaking is possible, with a little effort. It would require implementing an alternative variant of the transport in pc-ble-driver that is compatible with the non-hci uart transport of connectivity firmware.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: pc-ble-driver 1.0 - maximum data throughput</title><link>https://devzone.nordicsemi.com/thread/65195?ContentTypeID=1</link><pubDate>Mon, 07 Nov 2016 10:24:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fb7288df-1705-4ecd-8d66-d1af7c9bb596</guid><dc:creator>Mike</dc:creator><description>&lt;p&gt;Hello,
I&amp;#39;ve followed your hint and made patch for hardware flow control. Now it works with 1Mbps baud rate but I still wonder if it is possible to disclaim software handshaking?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: pc-ble-driver 1.0 - maximum data throughput</title><link>https://devzone.nordicsemi.com/thread/65194?ContentTypeID=1</link><pubDate>Wed, 26 Oct 2016 06:49:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:51e176f0-df20-4846-960e-276bccd9a237</guid><dc:creator>Bj&amp;#248;rn Inge</dc:creator><description>&lt;p&gt;Hi, this error message seems to be due to Boost not allowing this setting on the OS you are running. &lt;a href="http://stackoverflow.com/questions/28274367/how-to-make-boostasioserial-port-baseflow-control-use-hardware-flow-contro"&gt;stackoverflow issue&lt;/a&gt;. One workaround could be to use the Boost native handles to get access to the underlying native serial port object of the OS. This would require modifying and recompiling pc-ble-driver (uart_boost.cpp).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: pc-ble-driver 1.0 - maximum data throughput</title><link>https://devzone.nordicsemi.com/thread/65193?ContentTypeID=1</link><pubDate>Tue, 25 Oct 2016 13:07:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3e48ae1d-5907-47ab-9718-a98769bbced8</guid><dc:creator>Mike</dc:creator><description>&lt;p&gt;Ok, but If I changed &lt;code&gt;SD_RPC_FLOW_CONTROLE_NONE&lt;/code&gt; to &lt;code&gt;SD_RPC_FLOW_CONTROL_HARDWARE&lt;/code&gt; I get the following error:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;terminate called after throwing an instance of &amp;#39;boost::exception_detail::clone_impl&amp;lt;boost::exception_detail::error_info_injector&amp;lt;boost::system::system_error&amp;gt; &amp;gt;&amp;#39;

what():  set_option: Operation not supported
&lt;/code&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: pc-ble-driver 1.0 - maximum data throughput</title><link>https://devzone.nordicsemi.com/thread/65192?ContentTypeID=1</link><pubDate>Fri, 21 Oct 2016 21:01:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0ed6d1c3-9baa-40ad-9bb3-b9d32b773a76</guid><dc:creator>Bj&amp;#248;rn Inge</dc:creator><description>&lt;p&gt;In this case (no jlink) you should probably keep flow control ensbled to avoid flooding the nrf5 chip. In our code we confugure flow control disabled, but this is because that is required to make JLink &lt;em&gt;enable&lt;/em&gt; flow control. Confusing, I know. When in doubt, hook up a logic analyzer to the uart lines to see that flow control is being respected.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: pc-ble-driver 1.0 - maximum data throughput</title><link>https://devzone.nordicsemi.com/thread/65191?ContentTypeID=1</link><pubDate>Fri, 21 Oct 2016 12:06:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0ab63330-9deb-4763-8723-a95455e27afe</guid><dc:creator>Mike</dc:creator><description>&lt;p&gt;The nRF51 is connected to the ARM application processor, similar to this on the RaspberryPi, where Linux is running. There is nothing between them. Hardware flow control is disabled.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: pc-ble-driver 1.0 - maximum data throughput</title><link>https://devzone.nordicsemi.com/thread/65190?ContentTypeID=1</link><pubDate>Fri, 21 Oct 2016 11:48:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cdd9980a-429b-4313-8711-5d248abd39ad</guid><dc:creator>Bj&amp;#248;rn Inge</dc:creator><description>&lt;p&gt;To clarify, what is connected to the uart of the nRF51, meaning who is responsible for controlling the UART hardware flow control lines? The UART of the nRF51 has fewer buffers than the nRF52 and so is more vulnerable to slow response to the flow control lines. On our kits, the Segger JLink has been made to be sufficiently responsive. That may or may not be the case on custom cards.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: pc-ble-driver 1.0 - maximum data throughput</title><link>https://devzone.nordicsemi.com/thread/65189?ContentTypeID=1</link><pubDate>Fri, 21 Oct 2016 09:33:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c0ce039a-69ff-4c66-950d-31834cd2d805</guid><dc:creator>Mike</dc:creator><description>&lt;p&gt;&lt;code&gt;SD_RPC_FLOW_CONTROL_NONE&lt;/code&gt; is set.&lt;/p&gt;
&lt;p&gt;I am running on Linux.&lt;/p&gt;
&lt;p&gt;I have my own custom board with nRF51822QFAC. I connected it to an application processor directly through the UART. The same I do with the PCA10040 (but I recompiled connectivity firmware with changed UART pins to bypass SEGGER). So, the configuration is the same for both (the same main processor, application, UART, baud rate).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: pc-ble-driver 1.0 - maximum data throughput</title><link>https://devzone.nordicsemi.com/thread/65187?ContentTypeID=1</link><pubDate>Fri, 21 Oct 2016 07:04:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:44b69c6f-8cc4-4d65-b793-5a12eb151c6f</guid><dc:creator>Bj&amp;#248;rn Inge</dc:creator><description>&lt;p&gt;If you are not doing so already, set uart to use SD_RPC_FLOW_CONTROL_NONE (this to make auto flow control actually be enabled on jlink)&lt;br /&gt;
Are you running on Windows or macOS?
What board are you running (pca10028, pca10031)?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: pc-ble-driver 1.0 - maximum data throughput</title><link>https://devzone.nordicsemi.com/thread/65186?ContentTypeID=1</link><pubDate>Fri, 21 Oct 2016 06:56:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:83285a49-3146-4448-8c5a-3f7d5850a4f5</guid><dc:creator>Mike</dc:creator><description>&lt;p&gt;I&amp;#39; ve compiled the same connectivity firmware for nRF51 and nRF52 with baud 1Mbps and tested with the same application which use pc-ble-driver. So configuration in both cases was the same. The thing is that application works with the nRF52 at baud 1Mbps but doesn&amp;#39;t with the nRF51.
I have also made more tests with different baud rates using nRF51. It works only with baud 115200 and lower like 9600.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: pc-ble-driver 1.0 - maximum data throughput</title><link>https://devzone.nordicsemi.com/thread/65188?ContentTypeID=1</link><pubDate>Fri, 21 Oct 2016 05:23:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:82eca5a0-ed5c-4d2b-8701-7b825813de4a</guid><dc:creator>Bj&amp;#248;rn Inge</dc:creator><description>&lt;p&gt;Hi, both nRF51 and nRF52 have been tested with 1Mbps. There are no provided connectivity firmware for 1Mbps so you have to modify the baud rate in connectivity project and recompile it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: pc-ble-driver 1.0 - maximum data throughput</title><link>https://devzone.nordicsemi.com/thread/65185?ContentTypeID=1</link><pubDate>Wed, 19 Oct 2016 14:14:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ee61e3b7-37f4-420b-b0b3-9b8c47faa89b</guid><dc:creator>Mike</dc:creator><description>&lt;p&gt;Hi again,&lt;/p&gt;
&lt;p&gt;I tried to check it with higher UART baud rates but I it doesn&amp;#39;t work with bauds higher than 115200. I always get NRF_ERROR_INTERNAL on sd_ble_enable... With baud 115200 works fine...
Have you tested the nRF51 as ble_connectivity chip with bauds higher then 115200? Is there any limitation?&lt;/p&gt;
&lt;p&gt;Edit:&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve also made tests with the nRF52 and there is no problem with baud 1Mbps (using this baud rate I am able to achieve around 90kbps throughput), so it seems to be problem specified to the nRF51. What it could be?&lt;/p&gt;
&lt;p&gt;Unfortunately, I can not use nRF52 instead of nRF51 in my project...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: pc-ble-driver 1.0 - maximum data throughput</title><link>https://devzone.nordicsemi.com/thread/65184?ContentTypeID=1</link><pubDate>Fri, 14 Oct 2016 13:21:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8d3963ca-fd86-4bdf-aa97-88e1ef4a2a37</guid><dc:creator>Bj&amp;#248;rn Inge</dc:creator><description>&lt;p&gt;Hi,&lt;br /&gt;
there are a couple of reasons why Master Control Panel runs faster than pc-ble-driver&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;MCP uses 1Mbps baud rate, pc-ble-driver connectivity hex is set to 115200&lt;/li&gt;
&lt;li&gt;pc-ble-driver uses a software handshaking protocol over UART meaning it&amp;#39;s a lot more afflicted by the latency added by JLink, MCP uses no handshaking&lt;/li&gt;
&lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: pc-ble-driver 1.0 - maximum data throughput</title><link>https://devzone.nordicsemi.com/thread/65183?ContentTypeID=1</link><pubDate>Thu, 13 Oct 2016 16:19:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fde78061-f91a-4f71-8cf3-51f70b4e78fe</guid><dc:creator>Mike</dc:creator><description>&lt;p&gt;Hi Bjørn,&lt;/p&gt;
&lt;p&gt;thank you for the answer but I do not use a development kit. My central device is the nRF51 chip connected directly to a second processor via UART.&lt;/p&gt;
&lt;p&gt;I do not think that the Segger chip is a bottleneck because I&amp;#39;ve also made some tests with the same peripheral device and Master Control Panel with PCA10000 (which has a Segger chip) as a central. There was no problem with data throughput...&lt;/p&gt;
&lt;p&gt;Best regards&lt;/p&gt;
&lt;p&gt;Mike&lt;/p&gt;
&lt;p&gt;EDIT: Maybe the UART speed is a problem. I use default 115200 baudrate... I will try to investigate it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: pc-ble-driver 1.0 - maximum data throughput</title><link>https://devzone.nordicsemi.com/thread/65182?ContentTypeID=1</link><pubDate>Thu, 13 Oct 2016 14:17:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7e49d9c6-a2e4-4b88-953c-63a5741f731c</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;Hi Mike,&lt;/p&gt;
&lt;p&gt;I spoke to one of the pc-ble-driver developers and it appears that you have reached the throughput( ~16kbit/s) possible using the nRF5x DKs and dongles.&lt;/p&gt;
&lt;p&gt;This is due to delays introduced by passing all the data through the Segger chip and that there are handshakes which further restricts the max communication speed.&lt;/p&gt;
&lt;p&gt;Best regards&lt;/p&gt;
&lt;p&gt;Bjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>