<?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>Why empty PDU is sent by slave after notification</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/10607/why-empty-pdu-is-sent-by-slave-after-notification</link><description>Hi, 
 I am new to forum and to Ble. sorry about my week English.
I am working on a project where I am reading adc value every 1s and sending it over ble. So I have written a firmware using NRF52 where it generates interrupt every 1 sec, reads adc, and</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 09 Jun 2016 15:55:33 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/10607/why-empty-pdu-is-sent-by-slave-after-notification" /><item><title>RE: Why empty PDU is sent by slave after notification</title><link>https://devzone.nordicsemi.com/thread/39525?ContentTypeID=1</link><pubDate>Thu, 09 Jun 2016 15:55:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:617e926d-81da-4f8e-8739-eebea7f64b24</guid><dc:creator>Paul</dc:creator><description>&lt;p&gt;I am looking for something else, happen to see this thread. The only problem to let device sleep for what latency allows is the clock/timing auto adjustment happens at every connection event, the clock may have been shifted enough to miss the next packet.
There is a clock error parameter setting in BLE at unit of PPM, which directly related to power consumption.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Why empty PDU is sent by slave after notification</title><link>https://devzone.nordicsemi.com/thread/39528?ContentTypeID=1</link><pubDate>Tue, 08 Dec 2015 09:59:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6fd19643-c970-44ad-997d-1f13359844db</guid><dc:creator>P&amp;#229;l H&amp;#229;land</dc:creator><description>&lt;p&gt;In that case you will receive the TX_COMPLETE 1 connection interval later.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Why empty PDU is sent by slave after notification</title><link>https://devzone.nordicsemi.com/thread/39529?ContentTypeID=1</link><pubDate>Tue, 08 Dec 2015 09:31:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4dd35d48-ce2b-4f84-af73-3fc499276848</guid><dc:creator>Umes_fln</dc:creator><description>&lt;p&gt;Thanks Pal for comments. However what happens if I set 1s interrupt to transmit and connection interval to 1s, in that case how confirmation is done?&lt;/p&gt;
&lt;p&gt;Thanks in advance&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Why empty PDU is sent by slave after notification</title><link>https://devzone.nordicsemi.com/thread/39521?ContentTypeID=1</link><pubDate>Fri, 04 Dec 2015 08:58:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1b981b12-4e10-4f5a-9b02-daedb50cd5e1</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi Umes
If you accept one of the answers below it will register the case as closed, assuming you are happy with the answer ;)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Why empty PDU is sent by slave after notification</title><link>https://devzone.nordicsemi.com/thread/39527?ContentTypeID=1</link><pubDate>Thu, 03 Dec 2015 07:32:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a77eaab9-e1e2-4a70-9dae-01e37e6d29ea</guid><dc:creator>RK</dc:creator><description>&lt;p&gt;oh dear - that was really obvious - why didn&amp;#39;t I think of that.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Why empty PDU is sent by slave after notification</title><link>https://devzone.nordicsemi.com/thread/39526?ContentTypeID=1</link><pubDate>Thu, 03 Dec 2015 07:26:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:62193b25-bdab-47a5-8acf-769cfdded842</guid><dc:creator>P&amp;#229;l H&amp;#229;land</dc:creator><description>&lt;p&gt;Regarding the point where the slave wake up after sending a notification when there is slave latency:
This is because we would like to have the confirmation that the packet the slave sent was indeed received by the master as soon as possible. We could have waited another 3.5 seconds before wakeing up again and noticing that the peer did not receive the packet. But this as you figures would introduce another latency to the application (it would not receive the TX complete before the peer have ACK&amp;#39;ed the packet)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Why empty PDU is sent by slave after notification</title><link>https://devzone.nordicsemi.com/thread/39524?ContentTypeID=1</link><pubDate>Thu, 03 Dec 2015 01:06:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:25462b7b-0b74-42b0-bd83-a924474b698b</guid><dc:creator>Eric Stutzenberger</dc:creator><description>&lt;p&gt;The slave latency is a good additional point on this.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Why empty PDU is sent by slave after notification</title><link>https://devzone.nordicsemi.com/thread/39523?ContentTypeID=1</link><pubDate>Thu, 03 Dec 2015 00:57:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fce6a9ca-27d7-4522-8c41-42920781e821</guid><dc:creator>RK</dc:creator><description>&lt;p&gt;Looking at that packet sequence there&amp;#39;s more to it than that however. There&amp;#39;s a point just after 619.11s where there are 5 packets from the master with no response. That&amp;#39;s because slave latency on the connection is set and the slave, with nothing to do, is choosing to ignore connection events, as it&amp;#39;s entitled to do.&lt;/p&gt;
&lt;p&gt;In that case, since there is slave latency available, it is fair to ask why the slave bothers to listen at the connection event after each notification it sends out, it has no data to send, it has latency available, if it wanted lowest possible power it would do nothing and leave its radio off and we&amp;#39;d see unanswered empty PDUs from the master.&lt;/p&gt;
&lt;p&gt;Using latency to the fullest extent is optional of course. It may well be that in real-world testing it so often happens that a notification from a slave results in new data from the master (which it doesn&amp;#39;t in this case) that it&amp;#39;s more performant to &amp;#39;waste&amp;#39; one connection event and listen to the master one extra time before the slave sleeps. That has the potential of improving throughput in a fairly usual use-case for the cost of a very small amount of power.&lt;/p&gt;
&lt;p&gt;I guess only the person who wrote the stack can answer that.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Why empty PDU is sent by slave after notification</title><link>https://devzone.nordicsemi.com/thread/39522?ContentTypeID=1</link><pubDate>Wed, 02 Dec 2015 18:20:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:902dc11a-b28e-41c3-b12c-3058a894fee9</guid><dc:creator>Eric Stutzenberger</dc:creator><description>&lt;p&gt;Hi Umes_fln,&lt;/p&gt;
&lt;p&gt;The connection interval defines how often a connection is made.  Since you have it set to 500 ms min and max, then a connection will be made every 500 ms whether or not there is any data to send or receive.  Notice that every 500 ms there are packets.  At each second, your device sends some data.  However, at the other 500 ms interval, neither device sends any payload data, just an empty PDU.  If your device had nothing to send every second, there would still be empty PDUs every 500 ms.&lt;/p&gt;
&lt;p&gt;So, in short, yes, this is how BLE works.  The best way to lower power consumption in a BLE design is to connect less often.&lt;/p&gt;
&lt;p&gt;To lower the power use in your project, you can set your connection interval to 1000 ms instead of 500 ms.&lt;/p&gt;
&lt;p&gt;HTH,&lt;/p&gt;
&lt;p&gt;Eric&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>