<?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>Mesh UART-DFU fail with &amp;quot;Abort event. Reason: 0x4&amp;quot;</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/70420/mesh-uart-dfu-fail-with-abort-event-reason-0x4</link><description>Hi, 
 We base on the light switch example to include the dfu process into it. 
 Device FW information is as follows: 
 Mesh sdk: v4.2.0 SoftDevice: s113_nrf52_7.0.1_softdevice.hex bootloader: mesh_bootloader_gccarmemb_nrf52832_xxAA.hex device page: device_page_nrf52832_xxAA_s113_7</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 21 Jan 2021 10:50:57 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/70420/mesh-uart-dfu-fail-with-abort-event-reason-0x4" /><item><title>RE: Mesh UART-DFU fail with "Abort event. Reason: 0x4"</title><link>https://devzone.nordicsemi.com/thread/290458?ContentTypeID=1</link><pubDate>Thu, 21 Jan 2021 10:50:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1e30027a-a6f8-4995-93b1-710ea0312570</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Frank,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you are planning to do only one on one uart DFU, I would suggest to have a look at the normal nRF5 SDK UART bootloader instead of the mesh bootloader.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The only draw back is that it&amp;#39;s not background DFU, and you have to switch to the bootloader to receive the new image. However, since it only take a very short time (depends on the size of the image, can be less than a minute) to do DFU it&amp;#39;s feasible to do so.&amp;nbsp;&lt;br /&gt;I have made an example on how to do UART update from one nRF52 to another nRF52 &lt;a href="https://devzone.nordicsemi.com/nordic/short-range-guides/b/software-development-kit/posts/getting-started-with-nordics-secure-dfu-bootloader#h108sjziaxo3m81rkgr1has5r1d72qtu"&gt;here&lt;/a&gt;.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;350ms delay sounds reasonable as it&amp;#39;s similar to the delay we have in the nrfutil.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Mesh UART-DFU fail with "Abort event. Reason: 0x4"</title><link>https://devzone.nordicsemi.com/thread/290380?ContentTypeID=1</link><pubDate>Thu, 21 Jan 2021 02:19:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2fac5fb8-559c-4e81-8b7d-913358237316</guid><dc:creator>frank_c</dc:creator><description>&lt;p&gt;Hi Hung,&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;1.The sender sends each sets of bin data (26 bytes) and delay about 350ms then wait for the response from device.&lt;br /&gt;If the delay time is too short, it can let the dfu fail. &lt;br /&gt;The FW size is about 153KB and it will take about 30-40 minutes to complete the dfu updated.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;2.Due to we use the CTS &amp;amp; RTS pin to other purpose in &amp;quot;other MCU&amp;quot;, the device doesn&amp;#39;t&amp;nbsp;enable the HWFC.&lt;/p&gt;
&lt;p&gt;3.If we just want to do one-one uart-dfu updated and don&amp;#39;t want to use the air mesh dfu to other nodes or device, how can we do it?&lt;/p&gt;
&lt;p&gt;We use Buad Rate 57600.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;br /&gt;Frank&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Mesh UART-DFU fail with "Abort event. Reason: 0x4"</title><link>https://devzone.nordicsemi.com/thread/290206?ContentTypeID=1</link><pubDate>Wed, 20 Jan 2021 10:50:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:83239916-7179-465c-a431-9f64968b02f4</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Frank,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;What&amp;#39;s the transfer rate you are doing ?&amp;nbsp;&lt;br /&gt;Please follow&amp;nbsp;the delay we have in nrfutil, pushing the speed of doing DFU may risk that the DFU packet haven&amp;#39;t reached all nodes in the network before you push the new message.&amp;nbsp;&lt;br /&gt;Do you have HWFC enable ?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Mesh UART-DFU fail with "Abort event. Reason: 0x4"</title><link>https://devzone.nordicsemi.com/thread/290112?ContentTypeID=1</link><pubDate>Wed, 20 Jan 2021 05:22:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:03784b4f-c2d8-48c5-90ce-1f35845234c6</guid><dc:creator>frank_c</dc:creator><description>&lt;p&gt;Hi Hung,&lt;/p&gt;
&lt;p&gt;We did several tests in these days and found out if we slow down the sender&amp;#39;s speed, the successful rate for uart-dfu updated will be improved.&lt;/p&gt;
&lt;p&gt;If we speed up the sender&amp;#39;s speed, the device will get wrong uart-dfu data (bin data) more easily.&lt;br /&gt;And it will let the dfu fail with &amp;quot;Abort Reason 0x4&amp;quot;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Besides to slow down the sender&amp;#39;s speed, is there anything the device can be modified to decrease the uart-dfu updated time?&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Frank&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Mesh UART-DFU fail with "Abort event. Reason: 0x4"</title><link>https://devzone.nordicsemi.com/thread/289470?ContentTypeID=1</link><pubDate>Fri, 15 Jan 2021 14:48:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8ae0d1eb-be03-42ec-80b2-2deefb00a684</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Frank,&lt;/p&gt;
&lt;p&gt;Please make sure you have flashed the device page. Without that the bootloader won&amp;#39;t work.&amp;nbsp;&lt;br /&gt;Also I noticed that you located the bootloader at address 0x1c000. This may not correct.&lt;/p&gt;
&lt;p&gt;Usually we locate the bootloader on top of the flash space.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In our bootloader linker .ld (in linker folder) you can find the location of the bootloader should be 0x78000.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Mesh UART-DFU fail with "Abort event. Reason: 0x4"</title><link>https://devzone.nordicsemi.com/thread/289328?ContentTypeID=1</link><pubDate>Fri, 15 Jan 2021 05:35:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:75487da9-35c3-4ad1-bc35-76bf96cdd661</guid><dc:creator>frank_c</dc:creator><description>&lt;p&gt;Hi Hung,&lt;br /&gt;We take reference from your 52840 ses project to create our 52832 project by using sd-s113&amp;nbsp; under the \mesh\bootloader folder. (mesh_bootloader_gccarmemb_nrf52832_xxAA.emProject).&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/bootloader_5F00_test.rar"&gt;devzone.nordicsemi.com/.../bootloader_5F00_test.rar&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;We erase chip then run the debug mode but an error occurs as the picture shows.&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/bootloader_5F00_test.jpg" /&gt;&lt;br /&gt;Is there anything that needs to be modified ?&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Frank&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Mesh UART-DFU fail with "Abort event. Reason: 0x4"</title><link>https://devzone.nordicsemi.com/thread/289161?ContentTypeID=1</link><pubDate>Thu, 14 Jan 2021 11:31:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c96565c8-4ad4-4c7e-9be9-4f815638ac8e</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;I assume when you do MCU &amp;lt;-&amp;gt; DK you have the condition matched (company id matched, application id matched and app version &amp;gt; current app version).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Error 4 meaning the signature check was failed (check dfu_mesh_timeout() in dfu_mesh.c). You may need to check if you send the correct init packet.&amp;nbsp;&lt;br /&gt;I would suggest to check that, you can use a logic analyzer to compare the DFU update from PC vs from the MCU.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You can also debug the bootloader, I have made a ses project for the bootloader &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/51534/stepping-through-nrf-mesh-bootloader-code-in-segger-embedded-studio"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Mesh UART-DFU fail with "Abort event. Reason: 0x4"</title><link>https://devzone.nordicsemi.com/thread/289130?ContentTypeID=1</link><pubDate>Thu, 14 Jan 2021 10:27:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2cc75343-fe90-45a7-a0be-0662081aa14c</guid><dc:creator>frank_c</dc:creator><description>&lt;p&gt;Hi Hung,&lt;/p&gt;
&lt;p&gt;We do notice the&amp;nbsp;&lt;span&gt;company_id&amp;nbsp;,&amp;nbsp;application_id and&amp;nbsp;application_version&amp;nbsp;then we can do UART-DFU successfully in case 1 (PC &amp;lt;-&amp;gt;DK).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Please check the log file above.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Frank&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Mesh UART-DFU fail with "Abort event. Reason: 0x4"</title><link>https://devzone.nordicsemi.com/thread/289119?ContentTypeID=1</link><pubDate>Thu, 14 Jan 2021 10:11:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5a2ed10a-9ed5-4992-ac0c-e99be53cd52d</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Frank,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Yes you would need to match the company_id and application_id. In addition, you need to have the application_version of the new image &amp;gt; the&amp;nbsp;application_version of the current application. So if you try to update one image twice it won&amp;#39;t work.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Mesh UART-DFU fail with "Abort event. Reason: 0x4"</title><link>https://devzone.nordicsemi.com/thread/289059?ContentTypeID=1</link><pubDate>Thu, 14 Jan 2021 05:17:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:da5edc0d-49e2-4316-9221-5e92d3fb7a01</guid><dc:creator>frank_c</dc:creator><description>&lt;p&gt;Hi Hung,&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Please check the logs as follows:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/test_5F00_log.rar"&gt;devzone.nordicsemi.com/.../test_5F00_log.rar&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;quot;can get the bin+data data successfully with no errors&amp;quot;&lt;/strong&gt; means the sender program will check the response (length+event+opcode+status)from 52832 after&lt;br /&gt;sending each set of the data(bin or dat). If the response is correct, it will send the next set of data.&lt;/p&gt;
&lt;p&gt;For example, if the sender sends one set of bin data, it will check whether 52832&amp;#39;s response is correct (event 0x84,opcode 0x78,status 0x00).&lt;br /&gt;If it does, the sender will send next sets and so on.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Is there any chance&amp;nbsp;the error is caused by the&amp;nbsp;device page?&lt;/p&gt;
&lt;p&gt;I mean I use the same device_page file in the 2 testing cases (one for DK and one for module).&lt;/p&gt;
&lt;p&gt;Do I have to change the company_id to match the module company&amp;#39;s id in bootloader_config_default.json?&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;{
    &amp;quot;bootloader_config&amp;quot;: {
        &amp;quot;bootloader_id&amp;quot;: 1,
        &amp;quot;bootloader_version&amp;quot;: 1,
        &amp;quot;company_id&amp;quot;: 89,
        &amp;quot;application_id&amp;quot;: 1,
        &amp;quot;application_version&amp;quot;: 1,
        &amp;quot;public_key&amp;quot;: &amp;quot;aaa1601a85e678972ec387d5fc73ab0f478e02a6e8e785890739f6b8bffb9e22beba253ebc9a24bd12e187a3a4ce4b0a47af802d3ea4a6444e7b1786c2e4aafe&amp;quot;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;br /&gt;Frank&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Mesh UART-DFU fail with "Abort event. Reason: 0x4"</title><link>https://devzone.nordicsemi.com/thread/288997?ContentTypeID=1</link><pubDate>Wed, 13 Jan 2021 16:12:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c0baabd6-04a6-4b8f-b1bf-93a06c3f9f8e</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Frank,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Please post the whole log.&amp;nbsp;&lt;br /&gt;You mentioned that it&amp;nbsp; &amp;quot;&lt;span&gt;can get the bin+data data successfully with no errors&amp;quot; . When exactly you received&amp;nbsp;&amp;nbsp;&amp;quot;Abort event. Reason: 0x4&amp;quot; ?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Reason 0x04 meant&amp;nbsp;NRF_MESH_DFU_END_ERROR_UNAUTHORIZED&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;It could be due to the signature/hash check failed. You may want to try compare what the &amp;quot;other MCU&amp;quot; sent on UART with what nrfutil sent and check what&amp;#39;s the difference. I would start with very simple application image so I can detect the difference in the raw data.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>