<?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>Slow rate from central to peripheral</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/25719/slow-rate-from-central-to-peripheral</link><description>Hello, 
 I&amp;#39;m working on nrF52832 with two different Android device : Samsung Galaxy note 3 neo and HTC ONE M8. 
 My test : 
 
 Central side ( smartphone ) : each 200 ms I send 20 Bytes during 20s -&amp;gt; 100 * 20 Bytes 
 Peripheral side : I measure the</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 06 Oct 2017 08:34:33 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/25719/slow-rate-from-central-to-peripheral" /><item><title>RE: Slow rate from central to peripheral</title><link>https://devzone.nordicsemi.com/thread/101313?ContentTypeID=1</link><pubDate>Fri, 06 Oct 2017 08:34:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4744b037-5350-48eb-95ff-dd157d9336d9</guid><dc:creator>run_ar</dc:creator><description>&lt;p&gt;Also try sending a connection parameter update request asking for max of 20. Or maybe as low of 7.5. The central dictates the conection interval and might not accept this. Setting max and min to 200ms - 7.5ms means the peripheral will accept any parameter within this range.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow rate from central to peripheral</title><link>https://devzone.nordicsemi.com/thread/101312?ContentTypeID=1</link><pubDate>Fri, 06 Oct 2017 08:17:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:be7752d1-5e3d-443a-b968-4e05f5fd2ae5</guid><dc:creator>Nabil</dc:creator><description>&lt;p&gt;I&amp;#39;ll try it. Thank you very much&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow rate from central to peripheral</title><link>https://devzone.nordicsemi.com/thread/101311?ContentTypeID=1</link><pubDate>Fri, 06 Oct 2017 08:15:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ebabcf6c-a645-4848-bf8c-2fea0f2ab8b3</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;(get a sniffer, get a sniffer, get a sniffer... that&amp;#39;s all I can recommend to you right now)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow rate from central to peripheral</title><link>https://devzone.nordicsemi.com/thread/101310?ContentTypeID=1</link><pubDate>Fri, 06 Oct 2017 08:13:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d44e38ce-a01f-4422-8c21-a312c5556d39</guid><dc:creator>Nabil</dc:creator><description>&lt;p&gt;Convert to answer was just a mistake sorry.&lt;/p&gt;
&lt;p&gt;This is strange that with the same connection interval we can observe two different behaviour. The only difference is on the min_conn_interval&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow rate from central to peripheral</title><link>https://devzone.nordicsemi.com/thread/101309?ContentTypeID=1</link><pubDate>Fri, 06 Oct 2017 08:07:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:526e5c38-b9e6-4d71-90bf-a314ab390df7</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;Oh if event data on &lt;code&gt;BLE_GAP_EVT_CONNECTED&lt;/code&gt; say that it&amp;#39;s 39 (= 48.75ms) then it makes sense. Still if this is the same for both &amp;quot;OK&amp;quot; and &amp;quot;NOK&amp;quot; test cases then the truth is visible on radio, without looking into that it might be like debugging black box indirectly...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow rate from central to peripheral</title><link>https://devzone.nordicsemi.com/thread/101308?ContentTypeID=1</link><pubDate>Fri, 06 Oct 2017 07:18:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:eea00d1c-792c-4b0c-801f-c5157fe8191f</guid><dc:creator>Nabil</dc:creator><description>&lt;p&gt;case BLE_GAP_EVT_CONNECTED:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;                    NRF_LOG_PRINTF(&amp;quot; central connected \r\n&amp;quot;);
                   
                err_code = bsp_indication_set(BSP_INDICATE_CONNECTED);
                APP_ERROR_CHECK(err_code);
                m_conn_handle = p_ble_evt-&amp;gt;evt.gap_evt.conn_handle;
    
    
                // return 39 for min and max
            	NRF_LOG_PRINTF(&amp;quot;max_conn_interval : %d \r\n&amp;quot;,p_ble_evt-&amp;gt;evt.gap_evt.params.connected.conn_params.max_conn_interval);
            	NRF_LOG_PRINTF(&amp;quot;min_conn_interval : %d \r\n&amp;quot;,p_ble_evt-&amp;gt;evt.gap_evt.params.connected.conn_params.min_conn_interval);
    
                break; 
            
            
    
            case SD_BLE_GAP_CONN_PARAM_UPDATE : // never occurs 
            	NRF_LOG_PRINTF(&amp;quot;max_conn_interval : %d \r\n&amp;quot;,p_ble_evt-&amp;gt;evt.gap_evt.params.conn_param_update.conn_params.max_conn_interval);
            	NRF_LOG_PRINTF(&amp;quot;min_conn_interval : %d \r\n&amp;quot;,p_ble_evt-&amp;gt;evt.gap_evt.params.conn_param_update.conn_params.min_conn_interval);
    
            break;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It&amp;#39;s on this function. 39 mean 48.75 ms but I don&amp;#39;t understand what is the real chosen connection interval ..&lt;/p&gt;
&lt;p&gt;Thank you for your help :)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow rate from central to peripheral</title><link>https://devzone.nordicsemi.com/thread/101307?ContentTypeID=1</link><pubDate>Thu, 05 Oct 2017 15:15:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c56f7d96-e059-4849-b8e0-ecc8fba35eae</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;No, it&amp;#39;s not usual or normal but on the other hand you can expect anything with Android phones;) Also what do you mean by &amp;quot;connection interval seems to be 39&amp;quot;? Is it native time unit meaning 1.25*39=48.75ms? This actually is default connection interval used by majority of Android devices since Android 5.0, they typically ignore peripheral preferred connection parameters (which you play with). If you have sniffer you can simply get few traces of expected behavior, unexpected behavior and then expected behavior with modified minimal connection interval. From the flow you should easily spot the differences and then guess what is running in mind of your android phone;)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow rate from central to peripheral</title><link>https://devzone.nordicsemi.com/thread/101306?ContentTypeID=1</link><pubDate>Thu, 05 Oct 2017 14:10:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:19707140-259c-4a8c-8ef7-246260e32fed</guid><dc:creator>Nabil</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Thank you for your answer.&lt;/p&gt;
&lt;p&gt;I just have changed :&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#define MIN_CONN_INTERVAL                MSEC_TO_UNITS(10, UNIT_1_25_MS)           /**&amp;lt; Minimum acceptable connection interval (0.1 seconds). */
#define MAX_CONN_INTERVAL                MSEC_TO_UNITS(200, UNIT_1_25_MS)           /**&amp;lt; Maximum acceptable connection interval (0.2 second). 200*/
#define SLAVE_LATENCY                    0                                          /**&amp;lt; Slave latency. */
#define CONN_SUP_TIMEOUT                 MSEC_TO_UNITS(4000, UNIT_10_MS)            /**&amp;lt; Connection supervisory timeout (4 seconds). */
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;to :&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#define MIN_CONN_INTERVAL                MSEC_TO_UNITS(7.5, UNIT_1_25_MS)           /**&amp;lt; Minimum acceptable connection interval (0.1 seconds). */
#define MAX_CONN_INTERVAL                MSEC_TO_UNITS(200, UNIT_1_25_MS)           /**&amp;lt; Maximum acceptable connection interval (0.2 second). 200*/
#define SLAVE_LATENCY                    0                                          /**&amp;lt; Slave latency. */
#define CONN_SUP_TIMEOUT                 MSEC_TO_UNITS(4000, UNIT_10_MS)            /**&amp;lt; Connection supervisory timeout (4 seconds). */
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and it seems to work correctly. Is it normal ? The chosen connection interval seems to be 39 ..&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow rate from central to peripheral</title><link>https://devzone.nordicsemi.com/thread/101314?ContentTypeID=1</link><pubDate>Thu, 05 Oct 2017 13:15:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fdc463f1-7706-43ac-ab48-5df774c7e44b</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;Key is what really happens in the air. Do you have any BLE sniffer to have a look? If you really transport only 20B every 200ms then there should be no excuse to have bandwidth of 20B per 400ms, all Android phones should have much lower connection interval than that and each connection even can transfer at least 20B on top of GATT. It almost looks like some application problem (meaning that you have bug in the app or protocol is having too much overhead leading to such poor performance).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>