<?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>NUS Quiescent Power</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/76754/nus-quiescent-power</link><description>I&amp;#39;m using the ble_nus_c NUS client code for a custom 1:1 data link between two embedded nodes, just pinging a few bytes of data back and forth every 3 seconds. Bonded connection. Using nrf_pwr_mgmt_run() in main(). Works a treat but the chip draws about</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 28 Jun 2021 12:21:58 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/76754/nus-quiescent-power" /><item><title>RE: NUS Quiescent Power</title><link>https://devzone.nordicsemi.com/thread/317479?ContentTypeID=1</link><pubDate>Mon, 28 Jun 2021 12:21:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f3458c8c-1bff-4d75-b519-ce50a6841872</guid><dc:creator>benmack</dc:creator><description>&lt;p&gt;That&amp;#39;s great, many thanks Vidar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NUS Quiescent Power</title><link>https://devzone.nordicsemi.com/thread/317453?ContentTypeID=1</link><pubDate>Mon, 28 Jun 2021 11:37:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:69bfb6ba-ff96-4616-b8be-362aed18a7cf</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Yes, the central and peripheral will agree upon a fixed connection interval at which they can wake up and exchange data with each other (Note: peripherals can only request a preferred connection interval range, see &lt;span class="item"&gt;&lt;a title="Connection Parameters Negotiation" href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.0.2/lib_ble_conn_params.html?cp=8_1_3_2_4"&gt;Connection Parameters Negotiation&lt;/a&gt;&lt;/span&gt;). This is one of the main power saving features of the LE protocol because you only need to keep the radio active during the connection events (&lt;span class="item"&gt;&lt;a class="" title="Bluetooth Low Energy power profiles" href="https://infocenter.nordicsemi.com/topic/sds_s140/SDS/s1xx/ble_power_profiles/ble_power_profiles.html?cp=4_7_4_0_17"&gt;Bluetooth Low Energy power profiles&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt;
[quote userid="93764" url="~/f/nordic-q-a/76754/nus-quiescent-power/317423#317423"]The central/client initiates each connection event, after the interval time from previous event. NUS_C sends any data it has to peripheral, using&amp;nbsp;nus_rx_handle - see ble_nus_c_string_send().[/quote]
&lt;p&gt;Correct, when you call ble_nus_c_string_send, the packet will become enqueued in the Softdevice&amp;#39;s internal transfer queue and sent on the next (or current if called in an ongoing connection event) connection event.&lt;/p&gt;
[quote userid="93764" url="~/f/nordic-q-a/76754/nus-quiescent-power/317423#317423"]I found it would not accept a connection interval &amp;gt; 2000mS (this seems common, allows for a missed connection without hitting 4000mS connection timeout and dropping the connection).[/quote]
&lt;p&gt;You may have to increase the supervision timeout. Excerpt from core spec. 5.2. , vol 6, Part B, section 4.5.2&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&lt;em&gt;Connection supervision timeout (connSupervisionTimeout) is a parameter that&lt;/em&gt;&lt;br /&gt;&lt;em&gt;defines the maximum time between two received Data Channel PDUs or&lt;/em&gt;&lt;br /&gt;&lt;em&gt;Connected Isochronous PDUs before the connection is considered lost. The&lt;/em&gt;&lt;br /&gt;&lt;em&gt;connSupervisionTimeout shall be a multiple of 10 ms in the range 100 ms to&lt;/em&gt;&lt;br /&gt;&lt;em&gt;32.0 s and it shall be larger than&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/em&gt;&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (1 + connSlaveLatency) * &lt;strong&gt;connInterval&lt;/strong&gt; * 2.&lt;/em&gt;&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NUS Quiescent Power</title><link>https://devzone.nordicsemi.com/thread/317423?ContentTypeID=1</link><pubDate>Mon, 28 Jun 2021 09:56:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f123cf8d-d99d-4866-a9f1-54578307c706</guid><dc:creator>benmack</dc:creator><description>&lt;p&gt;OK, my understanding so far, please correct me if I&amp;#39;m wrong. Maybe of use to others. NUS uses normal central/peripheral connections. The MIN/MAX_CONN_INTERVAL is configured in peripheral, which proposes it to central during negotiation. NUS_C appears to use the MIN_CONN_INTERVAL.&lt;/p&gt;
&lt;p&gt;The central/client initiates each connection event, after the interval time from previous event. NUS_C sends any data it has to peripheral, using&amp;nbsp;nus_rx_handle - see ble_nus_c_string_send().&lt;/p&gt;
&lt;p&gt;Central also checks for a notification of NUS TX characteristic from the peer/peripheral (see on_hvx() using nus_tx_handle), and handles it (raises a BLE_NUS_C_EVT_NUS_TX_EVT event).&lt;/p&gt;
&lt;p&gt;So basically every MIN_CONN_INTERVAL the client/central sends and receives any waiting data with the peer/peripheral. If there is no data waiting, it does an &amp;quot;empty&amp;quot; connection event, which keeps the connection alive.&lt;/p&gt;
&lt;p&gt;I found it would not accept a connection interval &amp;gt; 2000mS (this seems common, allows for a missed connection without hitting 4000mS connection timeout and dropping the connection).&lt;/p&gt;
&lt;p&gt;However even with just a 500mS interval my central quiescent dropped from 100uA to around 8uA - perfect&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NUS Quiescent Power</title><link>https://devzone.nordicsemi.com/thread/317389?ContentTypeID=1</link><pubDate>Mon, 28 Jun 2021 07:26:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ed72d79a-b672-4a50-aef8-a3ef100176fe</guid><dc:creator>benmack</dc:creator><description>&lt;p&gt;That&amp;#39;s great, many thanks, works very nicely.&lt;/p&gt;
&lt;p&gt;I still don&amp;#39;t fully understand how the connection interval affects how each end of the NUS link decides when to send data. I don&amp;#39;t suppose there is a tutorial on this, or any suggested reading?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NUS Quiescent Power</title><link>https://devzone.nordicsemi.com/thread/317301?ContentTypeID=1</link><pubDate>Fri, 25 Jun 2021 15:50:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ef9de28e-b409-4458-be05-5a94e1e94da1</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Have you tried to increase the BLE connection interval? The average consumption may come closer to&amp;nbsp; around 5 uA if you for instance extend the connection interval to 3 seconds rather than the default interval which is between 25 ms to 75 ms.&lt;/p&gt;
&lt;p&gt;Note that you can use our online power profiler to play around with different the configuration paramaters such as conenction interval, regulator setting, output power, etc.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/nordic/power/w/opp/2/online-power-profiler-for-ble"&gt;https://devzone.nordicsemi.com/nordic/power/w/opp/2/online-power-profiler-for-ble&lt;/a&gt; &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>