<?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>How to realize DFU functionality by PyACI?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/76356/how-to-realize-dfu-functionality-by-pyaci</link><description>Dear friends, 
 I want to realize dfu in 52840 DK by PyACI , i know there should be a bootloader firstly, 
 a) I have flash the seiral example(nrf5_SDK_for_Mesh_v5.0.0_src\examples\serial) to 52840 DK. 
 b) Which bootloader can i used in the DFU, and</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 24 Jun 2021 12:29:55 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/76356/how-to-realize-dfu-functionality-by-pyaci" /><item><title>RE: How to realize DFU functionality by PyACI?</title><link>https://devzone.nordicsemi.com/thread/316987?ContentTypeID=1</link><pubDate>Thu, 24 Jun 2021 12:29:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d4ba2d79-61f6-45fb-8065-a2290b2c0729</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Oplinux,&amp;nbsp;&lt;br /&gt;Could you please let me know what exactly you plan to do with option A ? Do you have the resource to study the bootloader and modify it ?&amp;nbsp;&lt;br /&gt;I don&amp;#39;t see the point of modifying the mesh bootloader if you don&amp;#39;t plan to do mesh DFU.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to realize DFU functionality by PyACI?</title><link>https://devzone.nordicsemi.com/thread/316838?ContentTypeID=1</link><pubDate>Thu, 24 Jun 2021 01:48:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b8b857f6-8698-4410-a6d0-1782ee62bc0d</guid><dc:creator>oplinux</dc:creator><description>&lt;p&gt;Thank you very much Hung, i will test it.&lt;/p&gt;
&lt;p&gt;In solution A, if I needn&amp;#39;t relay the DFU packet in the provisoner, how to disable it?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to realize DFU functionality by PyACI?</title><link>https://devzone.nordicsemi.com/thread/316728?ContentTypeID=1</link><pubDate>Wed, 23 Jun 2021 12:20:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b8d9d09d-c7a6-43f7-a980-50ab040da30f</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi again Oplinux,&amp;nbsp;&lt;br /&gt;A) If you can go for option B I wouldn&amp;#39;t suggest option A. This option requires you to have deep understanding about the mesh DFU process and would be able to modify it as you want it. This only applied if you still plan to do Mesh DFU (for multiple nodes) and still can do single node DFU (high speed). If you don&amp;#39;t plan to do mesh DFU I would suggest to go for option B.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;B)Correct. You just use the nRF5 serial bootloader and update the mesh stack and app like a normal BLE application. Note that you need to press and hold a button to put the device into bootloader mode before you can update it.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to realize DFU functionality by PyACI?</title><link>https://devzone.nordicsemi.com/thread/316671?ContentTypeID=1</link><pubDate>Wed, 23 Jun 2021 10:34:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e7e7e160-63b7-4132-a137-3629ca50d88d</guid><dc:creator>oplinux</dc:creator><description>&lt;p&gt;Hi Hung,&lt;/p&gt;
&lt;p&gt;Thanks for you reply.&lt;/p&gt;
&lt;p&gt;a)&amp;quot;- Modify the mesh bootloader and the nrfutil for mesh to speed up the time if it only needs to update the provisioner. The bootloader is provided in the SDK in \mesh\bootloader folder. We don&amp;#39;t have a SES project for it out of the box. But you can find a SES project for it &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;.&amp;quot;&lt;/p&gt;
&lt;p&gt;In this case, i found the DFU data segment only up to 16 Bytes in the protocol &amp;quot;&lt;a href="https://infocenter.nordicsemi.com/index.jsp?topic=%2Fstruct_sdk%2Fstruct%2Fsdk_mesh_latest.html"&gt;DFU protocol packet formats&lt;/a&gt; &amp;quot;, as the figure shows below, &amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1624442411539v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;so, i want to insert more data in the field of Data segment, because we only update provisoner. At the same time, for shorten time in the process of DFU,&amp;nbsp; i want to disable the relay of DFU packet in the provisoner, how to achieve it?&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1624443275918v2.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;b) &amp;quot;- Use the nRF5 bootloader in the nRF5 SDK. This mean you don&amp;#39;t use the mesh bootloader and just the normal UART bootloader in nRF5 SDK. This will give you faster speed (like what you do with your other nodes) but will not allow you to do mesh DFU update. If all other nodes in&amp;nbsp; your network also doesn&amp;#39;t support mesh DFU then this would be a good solution.&amp;nbsp;&amp;quot;&lt;/p&gt;
&lt;p&gt;In this solution, can I upgrade a mesh application like an app in nRF5 SDK v17.0.2?&amp;nbsp; If yes, i should use the nRF5 bootloader in the nRF5 SDK, and realize this process by the guide &lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.0.2/sdk_app_serial_dfu_bootloader.html"&gt;Secure DFU Bootloader over Serial Link (UART/USB)&lt;/a&gt;&amp;nbsp; ?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to realize DFU functionality by PyACI?</title><link>https://devzone.nordicsemi.com/thread/316609?ContentTypeID=1</link><pubDate>Wed, 23 Jun 2021 07:38:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9ff45ebc-3cb0-4387-8496-dd1885c676d9</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Oplinux,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;70 minutes is about right. The bootloader is designed to do DFU update for a mesh network. Which means it capable of doing update for 1000s node in this relatively short time. But the draw back is that if you update for only one node like in your case, it will take the same time.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;To shorten the time to do DFU update for the provisioner, there are two options:&lt;br /&gt;- Modify the mesh bootloader and the nrfutil for mesh to speed up the time if it only needs to update the provisioner. The bootloader is provided in the SDK in \mesh\bootloader folder. We don&amp;#39;t have a SES project for it out of the box. But you can find a SES project for it &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;p&gt;- Use the nRF5 bootloader in the nRF5 SDK. This mean you don&amp;#39;t use the mesh bootloader and just the normal UART bootloader in nRF5 SDK. This will give you faster speed (like what you do with your other nodes) but will not allow you to do mesh DFU update. If all other nodes in&amp;nbsp; your network also doesn&amp;#39;t support mesh DFU then this would be a good solution.&amp;nbsp;&lt;br /&gt;You would need to use nRF Util the generic version , not the mesh version to do DFU update.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to realize DFU functionality by PyACI?</title><link>https://devzone.nordicsemi.com/thread/316415?ContentTypeID=1</link><pubDate>Tue, 22 Jun 2021 09:00:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c9dbcbf5-fb93-4805-bd5d-b8e1467db17e</guid><dc:creator>oplinux</dc:creator><description>&lt;p&gt;By the way, the process of DFU took about 70 minutes, so slow..... , we only want to update the provisoner by serial&amp;nbsp; in our project, other nodes are updated by a smartphone.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to realize DFU functionality by PyACI?</title><link>https://devzone.nordicsemi.com/thread/316413?ContentTypeID=1</link><pubDate>Tue, 22 Jun 2021 08:54:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6c5809a2-f93b-466b-9818-5d1897f0952d</guid><dc:creator>oplinux</dc:creator><description>&lt;p&gt;Hi Hung,&lt;/p&gt;
&lt;p&gt;Thanks for you reply.&lt;/p&gt;
&lt;p&gt;I have tested the Mesh DFU by the guide &lt;a href="https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.meshsdk.v5.0.0%2Fmd_doc_user_guide_modules_dfu_configuring_performing.html"&gt;Configuring and performing DFU over Mesh &lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;a)&amp;nbsp;I flashed the DFU example(examples/dfu/) , the newer app has been upgraded by nrfutil. However, i found the speed is so slow. i think it is caused by retransmitting a DFU packet, right?&lt;/p&gt;
&lt;p&gt;b) I only want to update the source node(e.g. the provisoner) by serial interface, other nodes needn&amp;#39;t update, I want to disable the functionality of retransmitting DFU packet&amp;nbsp; and increase the speed transmit the DFU archive, how to do it?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to realize DFU functionality by PyACI?</title><link>https://devzone.nordicsemi.com/thread/315380?ContentTypeID=1</link><pubDate>Tue, 15 Jun 2021 12:06:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5268ff1f-f1cc-49f9-8ae6-9ff50de3ad86</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Oplinux,&lt;/p&gt;
&lt;p&gt;The PyACI was not made for doing DFU. It&amp;#39;s more about the serialization from the nRF52 to PC.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you want to do DFU please follow the instruction &lt;a href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.meshsdk.v5.0.0/md_doc_user_guide_modules_dfu_configuring_performing.html?cp=8_2_2_4_0_2_1"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The serial bootloader is located at&amp;nbsp;\bin\bootloader. The device connected to PC should be flashed with _serial bootloader.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;You can also build the bootloader on your own using the&amp;nbsp;\mesh\bootloader&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;c) If you want to do DFU for your provisioner (I assume it&amp;#39;s the device connected to PC) you would need to have different application ID so that it&amp;#39;s only the provisioner getting updated with provisioner firmware and the node should have different application ID (&lt;span&gt;application_id)&amp;nbsp;&lt;/span&gt;. Please refer to the instruction.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>