<?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>Coexistence between pyACI and DFU</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/43898/coexistence-between-pyaci-and-dfu</link><description>Hi, 
 We are currently implementing a mesh application that is expected to have a large number of mesh devices. We have already tested DFU on a smaller mesh and it is working well with our application. However, we want to use a serial provisioning through</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 05 Mar 2019 09:20:01 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/43898/coexistence-between-pyaci-and-dfu" /><item><title>RE: Coexistence between pyACI and DFU</title><link>https://devzone.nordicsemi.com/thread/174187?ContentTypeID=1</link><pubDate>Tue, 05 Mar 2019 09:20:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d68514bd-6e3d-4e12-b9f5-20ce1f519846</guid><dc:creator>Joakim Jakobsen</dc:creator><description>&lt;p&gt;Hi.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve got some feedback from our Mesh team;&lt;/p&gt;
&lt;p&gt;For the transport part, it shouldn&amp;#39;t be too hard for someone that’s proficient in Python.&lt;/p&gt;
&lt;p&gt;All the mesh DFU transport logic is contained in one file: &lt;br /&gt;&lt;a href="https://github.com/NordicSemiconductor/pc-nrfutil/blob/mesh_dfu/nordicsemi/dfu/dfu_transport_mesh.py"&gt;https://github.com/NordicSemiconductor/pc-nrfutil/blob/mesh_dfu/nordicsemi/dfu/dfu_transport_mesh.py&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The logic is quite shallow, and most of the complexity in this module comes from building packets and handling responses correctly. &lt;br /&gt;The response handling is already handled by pyACI, and the packet building is easy to copy from one of the existing pyACI modules.&lt;/p&gt;
&lt;p&gt;The tricky bit might be handling of the DFU package objects. You will need this for generating the signature and storing all the metadata. But you could do this with the existing script (as that generates a .zip that you can move around), and simply copy over the modules that parses the zip file contents. Since this part is disconnected from the transport code, it can be copied over more or less as-is without interfering with the rest of pyACI.&lt;/p&gt;
&lt;p&gt;Note that pc-nrfutil is implemented in Python 2.7, which could generate some compatibility issues, particularly around packing/unpacking the .zip-file and its contents.&lt;/p&gt;
&lt;p&gt;Hope that is helpful for you. &lt;br /&gt;Best regards, &lt;br /&gt;Joakim.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Coexistence between pyACI and DFU</title><link>https://devzone.nordicsemi.com/thread/172861?ContentTypeID=1</link><pubDate>Mon, 25 Feb 2019 16:41:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:edccad9a-7f00-4a43-8452-62d5f1bbcc13</guid><dc:creator>A.Vicario</dc:creator><description>&lt;p&gt;Thank you for your answer.&lt;/p&gt;
&lt;p&gt;Even if the pyACI script does not implement any DFU functionality, there are several serial commands that have to do with DFU, such as &lt;strong&gt;opcode 0xd1&lt;/strong&gt;, as well as commands that have to do with OpenMesh broadcast. So we think there has to be some way to use those commands to update the mesh devices firmware or at least some planned future functionality.&lt;/p&gt;
[quote userid="20690" url="~/f/nordic-q-a/43898/coexistence-between-pyaci-and-dfu/172708"]It might be possible to modify the serial firmware to support DFU and then modify the python ACI to access that.[/quote]
&lt;p&gt;We have found &lt;a href="https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v14.2.0%2Flib_dfu_transport_serial.html&amp;amp;cp=4_0_0_3_5_2_3"&gt;some&lt;/a&gt; documentation on the DFU process and it seems that it is possible to implement the functionality following this specification, but it is not trivial and we do not want to spend the necessary effort until we know if it is the way to go.&lt;/p&gt;
&lt;p&gt;In short, we would like to know the way Nordic recommends to update the firmware of a mesh with a large number of devices that needs an interface with a computer to work.&lt;/p&gt;
&lt;p&gt;We look forward to the answer from the mesh team.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Coexistence between pyACI and DFU</title><link>https://devzone.nordicsemi.com/thread/172708?ContentTypeID=1</link><pubDate>Mon, 25 Feb 2019 09:38:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4f6d75e5-cc68-460d-9ebc-d97ebf48710a</guid><dc:creator>Joakim Jakobsen</dc:creator><description>&lt;p&gt;Hi.&lt;/p&gt;
[quote user=""]We would like to know if it is possible to carry out DFU through the pyACI application[/quote]
&lt;p&gt;&amp;nbsp;I do not think that this is possible. &lt;br /&gt;PyACI is to interface with a mesh node with Bluetooth Mesh. The DFU interface is a litle bit different, it uses broadcast mesh. &lt;br /&gt;It might be possible to modify the serial firmware to support DFU and then modify the python ACI to access that.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve forwarded your inquiry to our Mesh team, so that they can comment on what they think is the best approach for this. &lt;/p&gt;
&lt;p&gt;Best regards, &lt;br /&gt;Joakim.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>