<?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 with Android 7.0 fails on connection</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/25159/dfu-with-android-7-0-fails-on-connection</link><description>Dear Helpers, 
 We are facing an issue. It is all related to DFU (secure buttonless) and Android 7.0 (deployed on a Samsung A5). 
 We have a code that is running perfectly that allows advertising / scanning and connection with an nrf52832. I have a</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 14 Sep 2017 14:00:47 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/25159/dfu-with-android-7-0-fails-on-connection" /><item><title>RE: DFU with Android 7.0 fails on connection</title><link>https://devzone.nordicsemi.com/thread/99096?ContentTypeID=1</link><pubDate>Thu, 14 Sep 2017 14:00:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0e9bc99e-6677-4c5b-92c6-a98accd3ba8a</guid><dc:creator>David K.</dc:creator><description>&lt;p&gt;Dear Sigurd,&lt;/p&gt;
&lt;p&gt;We have moved one step forward...&lt;/p&gt;
&lt;p&gt;Connection is now possible, but DFU fails after &amp;quot;first packet&amp;quot; is transfered.&lt;/p&gt;
&lt;p&gt;Here is the log from NRF Connect :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;E	15:53:14.936	[DFU] Remote DFU error: REMOTE DFU OPERATION FAILED
V	15:53:14.936	[DFU] Disconnecting...
D	15:53:14.987	[DFU] gatt.disconnect()
I	15:53:14.987	[DFU] Disconnected&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And here is the log on the ble module side :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;BOOT:INFO:Received select object&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;:INFO:Valid Command: NRF_DFU_OBJECT_OP_SELECT&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;BOOT:INFO:Sending Object Info: [0x60, 0x06, 0x01 max: 0:x00000100 0:x00000000, CRC:0x00000000]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;BOOT:DEBUG:timer 1&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;BOOT:INFO:Set receipt notif&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;BOOT:INFO:Sending Response: [0x2, 0x1]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;BOOT:INFO:Received create object&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;:INFO:Before OP create command&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;:INFO:Valid Command Create&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;BOOT:INFO:Sending Response: [0x1, 0x1]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;BOOT:DEBUG:timer 1&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;:INFO:Before OP write command&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;:INFO:Before OP write command&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;BOOT:INFO:Received calculate CRC&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;:INFO:Valid Command CRC&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;BOOT:INFO:Sending CRC: [0x60, 0x03, 0x01, 0:x00000087, CRC:0x24bacb5d]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;BOOT:DEBUG:timer 1&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;BOOT:INFO:Received execute object&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;:INFO:Before OP execute command&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;:INFO:Valid command execute&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;:INFO:12 84 01 0A 3E 08 01 12 3A 08 05 10 34 1A 02 8C  ....&amp;gt;...:...4...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;BOOT:INFO:BLE_GAP_EVT_DISCONNECTED&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Hope that will lead to other good advices..&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;
&lt;p&gt;Edit 1 : This error also happens with Android 5.0.1 (which somehow is my reference)...&lt;/p&gt;
&lt;p&gt;Edit 2 : It might be a sd-req issue when generating the new dfu zip. Searching that direction.&lt;/p&gt;
&lt;p&gt;Edit 3 : It was the sd-req option in the NRFUtils. So problem solved.&lt;/p&gt;
&lt;p&gt;Thanks again.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU with Android 7.0 fails on connection</title><link>https://devzone.nordicsemi.com/thread/99097?ContentTypeID=1</link><pubDate>Thu, 14 Sep 2017 12:29:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:46422872-d079-4df8-8c8b-83f1f017fabb</guid><dc:creator>David K.</dc:creator><description>&lt;p&gt;Hoooho,&lt;/p&gt;
&lt;p&gt;Thanks a lot. I&amp;#39;ll try before 5:00PM and let you know by then.
Cheers,&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU with Android 7.0 fails on connection</title><link>https://devzone.nordicsemi.com/thread/99098?ContentTypeID=1</link><pubDate>Thu, 14 Sep 2017 12:02:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0218811e-a7de-4807-a1ef-10c747d158f2</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;The Samsung A-series phone have several bugs with how they do  LL control procedures as mentioned in &lt;a href="https://devzone.nordicsemi.com/question/164549/connection-issue-with-samsung-galaxy-a5-2017/"&gt;this post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But first, let&amp;#39;s try to disable the DLE feature completely, and see if that makes any difference:&lt;/p&gt;
&lt;p&gt;Add&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;err_code = sd_ble_opt_set(BLE_GAP_OPT_DLE_DISABLE, &amp;amp;opt);
APP_ERROR_CHECK(err_code);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;in the buttom of the &lt;code&gt;data_len_ext_set()&lt;/code&gt; function.
&lt;code&gt;data_len_ext_set()&lt;/code&gt; should then look like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;void data_len_ext_set(void)
{
    ret_code_t err_code;
    ble_opt_t  opt;

    memset(&amp;amp;opt, 0x00, sizeof(opt));

    opt.gap_opt.ext_len.rxtx_max_pdu_payload_size = 0;



    err_code = sd_ble_opt_set(BLE_GAP_OPT_EXT_LEN, &amp;amp;opt);
    APP_ERROR_CHECK(err_code);

    err_code = sd_ble_opt_set(BLE_GAP_OPT_DLE_DISABLE, &amp;amp;opt);
    APP_ERROR_CHECK(err_code);
}
&lt;/code&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>