<?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>sd_ble_gatts_hvx() returns BLE_ERROR_NO_TX_BUFFERS, but lightblue in IOS still can receive the package</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/10532/sd_ble_gatts_hvx-returns-ble_error_no_tx_buffers-but-lightblue-in-ios-still-can-receive-the-package</link><description>Hi experts, 
 I want to send 20 packages from nrf51822 to phone, so I tried to call sd_ble_gatts_hvx() repeatedly until BLE_ERROR_NO_TX_BUFFERS returns, then sent left packages in BLE_EVT_TX_COMPLETE event. 
 However, it&amp;#39;s very odd that lightblue in</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 30 Nov 2015 01:18:06 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/10532/sd_ble_gatts_hvx-returns-ble_error_no_tx_buffers-but-lightblue-in-ios-still-can-receive-the-package" /><item><title>RE: sd_ble_gatts_hvx() returns BLE_ERROR_NO_TX_BUFFERS, but lightblue in IOS still can receive the package</title><link>https://devzone.nordicsemi.com/thread/39185?ContentTypeID=1</link><pubDate>Mon, 30 Nov 2015 01:18:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6a5a7231-ddaf-4855-9e3c-1cb45d12c1b0</guid><dc:creator>zhao</dc:creator><description>&lt;p&gt;Thanks, RK. I traced the packets with sniffer, and found nrf51 didn&amp;#39;t re-send the packet. The problem is lightblue will send a read request by itself. The duped packet is the read result displayed in lightblue&amp;#39;s log. I did an other experiment, which closed the read permission of nrf51. lightblue still showed the duped packet, while in sniffer, only a no-permission respond could be found.
so, it should not be a problem of nrf51. I think I can close this question. Thanks.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: sd_ble_gatts_hvx() returns BLE_ERROR_NO_TX_BUFFERS, but lightblue in IOS still can receive the package</title><link>https://devzone.nordicsemi.com/thread/39184?ContentTypeID=1</link><pubDate>Sat, 28 Nov 2015 23:35:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bfae24f5-5c72-44ff-8ee2-b4c3212a95c0</guid><dc:creator>RK</dc:creator><description>&lt;p&gt;Are you sure lightblue is seeing the extra packet? I was sniffing one of my higher speed connections which does the same thing, runs until it runs out of buffer space and then retries when buffers are free and the sniffer trace to iOS has a duplicated packet, however when I checked it further, the duplication is a resent lower level packet which isn&amp;#39;t ACKed by iOS and the nRF51 re-sends on the next connection event. Lightblue, or indeed the client I have, definitely only receives the packet once at the application layer as it should.&lt;/p&gt;
&lt;p&gt;Put a sniffer on it and see if you can tell what what&amp;#39;s going on. If you have a duped packet then applications should only see it once, if the packet comes as new (you can tell with the expected next packet and packet bits) then take another look at your code, that should NOT happen.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>