<?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>dfu problem with my own mobile application</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/9014/dfu-problem-with-my-own-mobile-application</link><description>I&amp;#39;m working in a project &amp;amp; I need to update my firmware from my mobile app not through the nordic applications, when I tried nordic applications, just to prove the concept of firmware of the air property, it works with me fine but when I use my app I</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 14 Sep 2015 11:33:04 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/9014/dfu-problem-with-my-own-mobile-application" /><item><title>RE: dfu problem with my own mobile application</title><link>https://devzone.nordicsemi.com/thread/33206?ContentTypeID=1</link><pubDate>Mon, 14 Sep 2015 11:33:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:03880def-97ba-4d44-8902-0d72014b29df</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;10-02-01 means the nRF51 accepted the &amp;quot;initialize DFU parameter&amp;quot; command (ReqOpcode 0x02) you sent.
Next step is to send the write command to DFU Control Point characteristic with OpCode 0x03 to start transmitting the image. Then you can send the image to DFU Packet characteristic.
You can have a look at the sequence chart called &amp;quot;Transfer of an image to the DFU target&amp;quot; in the documentation &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk51.v9.0.0/bledfu_transport_bleprofile.html?cp=4_1_0_4_3_4_0_1#ota_profile_updater_role_req"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: dfu problem with my own mobile application</title><link>https://devzone.nordicsemi.com/thread/33205?ContentTypeID=1</link><pubDate>Sun, 13 Sep 2015 14:02:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c61b31da-d948-460e-8de3-3ddf996f3e2e</guid><dc:creator>Mohamed O.Abouzeid</dc:creator><description>&lt;p&gt;any help !!!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: dfu problem with my own mobile application</title><link>https://devzone.nordicsemi.com/thread/33204?ContentTypeID=1</link><pubDate>Sat, 12 Sep 2015 14:25:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b20fb8c8-80b3-4604-af0e-d65b5cf8b25c</guid><dc:creator>Mohamed O.Abouzeid</dc:creator><description>&lt;p&gt;I sent 0x0104 &amp;amp; then sent the file size format
recieved 10-01-01 which is correct
then I sent 0x0200
and then the info in the dat file  to dfu packet
then 0201 to control point
I revceived 10-02-01&lt;/p&gt;
&lt;p&gt;what should I do next&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: dfu problem with my own mobile application</title><link>https://devzone.nordicsemi.com/thread/33203?ContentTypeID=1</link><pubDate>Thu, 10 Sep 2015 08:47:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4007b35c-ca36-45d9-a3dd-6aa4b0fe7855</guid><dc:creator>Aleksander Nowakowski</dc:creator><description>&lt;p&gt;Sending a byte array should work. As far as I remember I do the same in the DFU Library.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: dfu problem with my own mobile application</title><link>https://devzone.nordicsemi.com/thread/33202?ContentTypeID=1</link><pubDate>Thu, 10 Sep 2015 08:41:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c2e85140-168b-4b86-8fec-cf7f14160d0d</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@mohamed: I have a suggestion that you capture a correct DFU session by &lt;a href="https://www.nordicsemi.com/eng/Products/Bluetooth-Smart-Bluetooth-low-energy/nRF-Sniffer/(language)/eng-GB"&gt;the sniffer&lt;/a&gt; when using our Master Control Panel app to do DFU. Then you compare it to what you do with your mobile app. Then you can find the difference and can modify your app to match.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: dfu problem with my own mobile application</title><link>https://devzone.nordicsemi.com/thread/33201?ContentTypeID=1</link><pubDate>Wed, 09 Sep 2015 20:08:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:580d8d0d-5e77-4eff-99b4-45e440d9aa9a</guid><dc:creator>Mohamed O.Abouzeid</dc:creator><description>&lt;p&gt;I&amp;#39;m sending the command in array  of bytes not a one word
I mean I send 0x0104
by
uint8_t command[]={0x01,0x04}
which one is true ? ?
or it doesn&amp;#39;t a matter&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: dfu problem with my own mobile application</title><link>https://devzone.nordicsemi.com/thread/33200?ContentTypeID=1</link><pubDate>Wed, 09 Sep 2015 19:07:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b0b64b6e-fa87-45dd-ae6c-f5a369aac1de</guid><dc:creator>Mohamed O.Abouzeid</dc:creator><description>&lt;p&gt;okay I&amp;#39;ll try that &amp;amp; ask you again
thank you for help&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: dfu problem with my own mobile application</title><link>https://devzone.nordicsemi.com/thread/33199?ContentTypeID=1</link><pubDate>Wed, 02 Sep 2015 09:03:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0655b715-3f87-44a6-b867-4c4e5f0993c1</guid><dc:creator>Aleksander Nowakowski</dc:creator><description>&lt;p&gt;Hi,
Instead of writing this yourself I recommend you to use the DFU Library instead. You&amp;#39;ll find them on GitHub: &lt;a href="https://github.com/NordicSemiconductor/Android-DFU-Library"&gt;github.com/.../Android-DFU-Library&lt;/a&gt; (Android) and &lt;a href="https://github.com/NordicSemiconductor/IOS-nRF-Toolbox/tree/master/nRF%20Toolbox/DFU"&gt;github.com/.../DFU&lt;/a&gt; (iOS). They are well tested and handle all errors and events.
You may include them in your application easily and modify if needed (but should work out of the box).
However, coming back to your question. Please check the following things:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The DFU Start 0x0104 is used to upload an application. It is supported since the DFU Bootloader from SDK 6.0.0. Before that it was not possible to update a Soft Device or a Bootloader and the DFU Start command was only 0x01.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If you send 0x0104 you should send the file size in 12 bytes, where the first 8 are zeros. The last 4 bytes are the size as Int32 written in Little Endian. For example, if your application is 4 bytes the packet would be 0x000000000000000004000000.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The file size must be dividable by 4.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I hope that helped. I&amp;#39;ll try to come up with 4. if you did everything like above.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>