<?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>nRF51 high current at connected state.</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/9024/nrf51-high-current-at-connected-state</link><description>Hello all,
Before asking question I thotoughly read the previous discussions but it didn&amp;#39;t help in my case.
I use nRF51822 rev.2 + SD130 device with NUS service for BLE data exchange.
I have decreased current to 14uA in idle during advertisement. However</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 08 Sep 2015 07:49:47 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/9024/nrf51-high-current-at-connected-state" /><item><title>RE: nRF51 high current at connected state.</title><link>https://devzone.nordicsemi.com/thread/33252?ContentTypeID=1</link><pubDate>Tue, 08 Sep 2015 07:49:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0f39ebf1-4c21-428d-adbd-1b637b8a0ba5</guid><dc:creator>Stefan Birnir Sverrisson</dc:creator><description>&lt;p&gt;Thank you for your feedback. I am glad that you found the issue&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51 high current at connected state.</title><link>https://devzone.nordicsemi.com/thread/33251?ContentTypeID=1</link><pubDate>Mon, 07 Sep 2015 14:47:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cc5cb214-7b04-4bf1-b583-b6ac203a4c3e</guid><dc:creator>Valer_I</dc:creator><description>&lt;p&gt;Dear Stefan Birnir Sverrisson,
Many thanks for your explanation and links but I solved this problem befre read your answer )).
I have seen all these threads you&amp;#39;ve mentioned and many others to investigate the problem.
I do not use nRF51 sdk due to tight memory budget and use only sd_... functions to communicate with softdevice.
My code is next:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;err = sd_ble_gap_connect(&amp;amp;current_addr, &amp;amp;c_scan_param, &amp;amp;c_connection_param); 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;c_scan_param - here put our desired connection params (as far as I understand here they written to the PPCP characteristic). The central able to read them and use, but on all devices I&amp;#39;ve try - skip. After connection the connection interval depend on device and is in range 20-100ms. Next I follow bonding routines and it is better to do them on high speed. Than when bonded:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;}else if (evt_id == BLE_GAP_EVT_AUTH_STATUS){
...
   if (ble_evt-&amp;gt;evt.gap_evt.params.auth_status.bonded == 1){
...		
 uint32_t res=sd_ble_gap_conn_param_update(gs_central.conn_handle,NULL);
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;quot;If NULL is provided on a peripheral role, the parameters in the PPCP characteristic of the GAP service will be used instead.&amp;quot;
Next I&amp;#39;m waiting for &lt;code&gt;BLE_GAP_EVT_CONN_PARAM_UPDATE&lt;/code&gt; event from central to find out what parameters were chosen. Here I have not experienced any changes of parameters. But establish software timer. After 20s (could be adjusted of cource) I&amp;#39;ve send&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;uint32_t res=sd_ble_gap_conn_param_update(gs_central.conn_handle,&amp;amp;alt_c_connection_param);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;to central with slightly different connection intervals (yet not tested what if use the same as at connection). And it responds with connection interval in range that I asked.
Now power consumption decreased in one order of magnitude.
I have tested this on Windows 8, Android 4.4.2, 5.1, Mac and it seem to work.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51 high current at connected state.</title><link>https://devzone.nordicsemi.com/thread/33249?ContentTypeID=1</link><pubDate>Fri, 04 Sep 2015 17:45:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ce43948d-488a-4540-9874-0b653b2608f1</guid><dc:creator>Dave_couling</dc:creator><description>&lt;p&gt;Your peripheral is using the Central default Connection Parameters.  This explains the difference you are seeing.  For iOS its ~30ms  for Android ~50ms depending on the device.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51 high current at connected state.</title><link>https://devzone.nordicsemi.com/thread/33250?ContentTypeID=1</link><pubDate>Fri, 04 Sep 2015 10:58:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ba84b699-483a-4cd9-8268-7b1f1dc344b8</guid><dc:creator>Stefan Birnir Sverrisson</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;Perhaps I will start with clarifying a few things to prevent any potential confusion&lt;/p&gt;
&lt;p&gt;There are different rules that apply when BLE device is advertising and when a BLE device is in connection.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;First the peripheral advertises with a certain advertising interval which only the peripheral decides what is.&lt;/li&gt;
&lt;li&gt;The central will scan for those packets and eventually connect to the peripheral by sending a connection request with &lt;a href="https://devzone.nordicsemi.com/question/60/what-is-connection-parameters/"&gt;connection parameters&lt;/a&gt; which the central device decides what is. They are totally independent of the advertising parameters which the peripheral decides what is.&lt;/li&gt;
&lt;li&gt;When the peripheral and central are in a connection, the peripheral can choose to send a request to the central device to update the connection parameters, see more on &lt;a href="https://devzone.nordicsemi.com/question/12545/update-connection-parameter-programmatically/"&gt;this thread&lt;/a&gt; how that works.&lt;/li&gt;
&lt;li&gt;The central may respond with a connection parameter update, and the peripheral application will be notified and will have to decide if it accepts what the central proposes. See &lt;a href="https://devzone.nordicsemi.com/question/2898/knowing-the-connection-interval/"&gt;this thread&lt;/a&gt; and &lt;a href="https://devzone.nordicsemi.com/question/23190/whats-the-actual-connection-interval-used/?answer=23294#post-id-23294"&gt;this thread&lt;/a&gt; how to detect if there really is an incoming connection parameter update from the central and what actually the proposed connection parameters are.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note that Android phones are not identical in their capabilities of their supported connection intervals and how many packets per interval they are able to send/receive, see &lt;a href="https://devzone.nordicsemi.com/question/3440/how-do-i-calculate-throughput-for-a-ble-link/#reply-3441"&gt;this thread&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Also note that S130 is not tested and not made to work with nRF51 second revision, so I suspect that at least part of the reason for high current consumption is that you have second revision nRF51. You should upgrade to nRF51 third revision when using S130 softdevice. See the &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.nrf51.v1.0.0/pdflinks/nrf51_comp_matrix.html?cp=2_0"&gt;nRF51 compatibility matrix v2.4&lt;/a&gt;, table 4.  You could also choose to upgrade to nRF52 and softdevice S132 for even better performance.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51 high current at connected state.</title><link>https://devzone.nordicsemi.com/thread/33248?ContentTypeID=1</link><pubDate>Fri, 04 Sep 2015 09:02:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9f64f63c-09f1-4059-a480-5d62146bdd6b</guid><dc:creator>Valer_I</dc:creator><description>&lt;p&gt;...Connected to another android device, the current consumption decreased to 170uA...Osciloscope shows that connection interval changed to 50ms, previously it was near 20ms.&lt;/p&gt;
&lt;p&gt;So the question now is: how could peer central set 20 or 50ms conn interval if at advertisement I allowed  500-1900ms?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51 high current at connected state.</title><link>https://devzone.nordicsemi.com/thread/33247?ContentTypeID=1</link><pubDate>Fri, 04 Sep 2015 07:43:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e063fcdd-a301-4901-b302-29ad32e16299</guid><dc:creator>Valer_I</dc:creator><description>&lt;p&gt;I have measured current in time deflection within osciloscope on 10ohm resistor.  There are glitches and spikes, but timings are clearly seen. It seems that cpu does not sleep. The period is near 20ms. The current is 400-500uA. I didn&amp;#39;t found this value in code. Could it be tuned? What could cause such behaviour?
Advertisement:
&lt;a href="https://onedrive.live.com/redir?resid=5C4D356B070DD035!1568&amp;amp;authkey=!APBL6xo0X-vdQCI&amp;amp;v=3&amp;amp;ithint=photo%2cjpg"&gt;onedrive.live.com/redir&lt;/a&gt;
Connected:
&lt;a href="https://onedrive.live.com/redir?resid=5C4D356B070DD035!1567&amp;amp;authkey=!ALV132Hn7nQk4QQ&amp;amp;v=3&amp;amp;ithint=photo%2cjpg"&gt;onedrive.live.com/redir&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51 high current at connected state.</title><link>https://devzone.nordicsemi.com/thread/33246?ContentTypeID=1</link><pubDate>Thu, 03 Sep 2015 08:13:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dd2f6a3c-6a2f-4fe0-9470-984bb1ac2f91</guid><dc:creator>Valer_I</dc:creator><description>&lt;p&gt;Edited my question. My aim to achieve results as stated in &lt;a href="https://devzone.nordicsemi.com/blogs/679/nrf51-current-consumption-for-common-scenarios/"&gt;devzone.nordicsemi.com/.../&lt;/a&gt; ( i.e. 20-50uA)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51 high current at connected state.</title><link>https://devzone.nordicsemi.com/thread/33245?ContentTypeID=1</link><pubDate>Wed, 02 Sep 2015 20:43:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9225eb85-12a8-46b1-a182-553620e6595a</guid><dc:creator>Dave_couling</dc:creator><description>&lt;p&gt;What are your Connection Parameters set to?   Its likely you are advertising at a longer interval then your Connection Parameters.   0.460uA sounds like a phones default connection parameters.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>