<?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>Sending large data from smart phone</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/25292/sending-large-data-from-smart-phone</link><description>Hi, 
 I need to send large data(about 200KB) from android phone to my custom board. 
 Connected like this : 
 Android Phone -&amp;gt;(BLE) -&amp;gt; nRF51822 -&amp;gt;(UART) -&amp;gt; Custom board. 
 And I&amp;#39;m using ble_app_uart(SDK 12.3.0). 
 I read other posts but most about</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 21 Sep 2017 07:02:54 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/25292/sending-large-data-from-smart-phone" /><item><title>RE: Sending large data from smart phone</title><link>https://devzone.nordicsemi.com/thread/99660?ContentTypeID=1</link><pubDate>Thu, 21 Sep 2017 07:02:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:67b49d79-f8d7-423e-b284-aed3f0268380</guid><dc:creator>DragonAnger</dc:creator><description>&lt;p&gt;Thank you so much for your answer! It really helps. I&amp;#39;ll try!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Sending large data from smart phone</title><link>https://devzone.nordicsemi.com/thread/99659?ContentTypeID=1</link><pubDate>Tue, 19 Sep 2017 08:12:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a1af02b2-18ba-4ba6-a513-856969e6b5b8</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;Well simply define some ACK mechanism on application layer which will tell to the phone that it can continue. Yes, it will lower the throughput but you will hardly solve it without wasting one or two connection intervals for this procedure. When I was pushing new FW (100-200kB of data) over the link from the phone I simply sacrificed certain amount of RAM on nRF5x side (you usually have 1kB left, usually more) so mobile pushed all the data there and then waited for Notification (because nRF5x side was GATT Server) with specific code which was saying to continue with another chunk. Indeed this store and forward architecture has some drawbacks and limitations but it should solve your problem easily. If your throughput is limited by the wired UART on emebedded side you shouldn&amp;#39;t care that you are adding some overhead on radio transfer...&lt;/p&gt;
&lt;p&gt;This ACK mechanism will typically mean that messages over NUS (at least in one direction) cannot start directly with data but there needs to be some header byte. Then you can just release your wild imagination and e.g. reserve just one escape sequence character like 0xFF or 0x80 or whatever so if it comes first it means that next byte is some special code and not NUS unstructured data which should be sent to upper layer directly (and if next byte is the same then you just cut one of them and send it to upper layer anyway - by this trick you can still transfer any information, just with small probability of being one special character on first position you might loose one byte in the transfer with this overhead, I find it pretty elegant and easy to parse on receiver&amp;#39;s side).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>