<?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>nRF Mesh DFU example vs precompiled bootloader</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/39213/nrf-mesh-dfu-example-vs-precompiled-bootloader</link><description>Hi, 
 I can&amp;#39;t understand what is DFU example inside /examples/dfu folder and what is /bin/bootloader/? I read DFU quick start guide, but where is source code of bootloader? Is DFU example a bootloader? Because I need to assign right serial pins inside</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 12 Oct 2018 11:14:29 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/39213/nrf-mesh-dfu-example-vs-precompiled-bootloader" /><item><title>RE: nRF Mesh DFU example vs precompiled bootloader</title><link>https://devzone.nordicsemi.com/thread/152668?ContentTypeID=1</link><pubDate>Fri, 12 Oct 2018 11:14:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7fd271dc-cbed-4372-9d32-b23368b3e590</guid><dc:creator>AndreasF</dc:creator><description>&lt;p&gt;Hi again.&lt;/p&gt;
&lt;p&gt;The serial interface protocol is a sub protocol for the serial protocol. All data transfered is done with the DFU-data-opcode in the &lt;a href="http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.meshsdk.v2.2.0%2Fmd_doc_libraries_serial_cmd.html&amp;amp;cp=4_1_0_2_1_0&amp;amp;anchor=nrf-open-mesh-dfu-data"&gt;Mesh serial protocol.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There isn&amp;#39;t a lot of documentation on the serial format for DFU, but you can look at the packet &lt;a href="https://github.com/NordicPlayground/nRF51-ble-bcast-mesh/blob/master/docs/dfu/DFUpackets.pdf"&gt;here &lt;/a&gt;and the message sequence chart &lt;a href="https://github.com/NordicPlayground/nRF51-ble-bcast-mesh/blob/master/docs/dfu/dfu_serial_app.png"&gt;here&lt;/a&gt;. I think that the cleanest&amp;nbsp; reference for the serial interface is found in the &lt;a href="https://github.com/NordicSemiconductor/pc-nrfutil/blob/mesh_dfu/nordicsemi/dfu/dfu_transport_mesh.py"&gt;&lt;strong&gt;dfu_transport_mesh.py&lt;/strong&gt;&lt;/a&gt; script &lt;/p&gt;
&lt;p&gt;- Andreas&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF Mesh DFU example vs precompiled bootloader</title><link>https://devzone.nordicsemi.com/thread/152636?ContentTypeID=1</link><pubDate>Fri, 12 Oct 2018 09:11:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b9ca8b65-8875-4ec4-8a40-f6343a2c38fd</guid><dc:creator>gsegment</dc:creator><description>&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Serial interface protocol for bootloader differs from serial protocol used in mesh application? So host uart controller should supprot &lt;strong&gt;both&lt;/strong&gt; protocols to be able to transfer DFU updates? Where I can read bootloader serial interface documentation? I found only short descriptions and &lt;em&gt;pyaci&lt;/em&gt; scripts that operates with serial interface, but no documentation or detailed description.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF Mesh DFU example vs precompiled bootloader</title><link>https://devzone.nordicsemi.com/thread/152609?ContentTypeID=1</link><pubDate>Fri, 12 Oct 2018 07:56:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8718e22c-b325-432c-8480-dcb4a693965e</guid><dc:creator>AndreasF</dc:creator><description>&lt;p&gt;Hi again.&lt;/p&gt;
&lt;p&gt;1)&lt;/p&gt;
&lt;p&gt;Nordic&amp;#39;s DFU is a Nordic proprietary feature which follows the Bluetooth Mesh protocol.&lt;/p&gt;
&lt;p&gt;2)&lt;/p&gt;
&lt;p&gt;You can have a unit that &lt;strong&gt;only runs&lt;/strong&gt; bootloader, which can receive application and SoftDevice from DFU.&lt;/p&gt;
&lt;p&gt;3)&lt;/p&gt;
&lt;p&gt;It is possible to update a local unit, this unit will however broadcast this update.&lt;/p&gt;
&lt;p&gt;4)&lt;/p&gt;
&lt;p&gt;Since the TX does not know the number of units that receive the update, there is no naive method to check this in the protocol. The units do have recovery-mechanisms to handle lost packets, but the units must be checked with the normal mesh (Bluetooth Mesh) protocol to assure that the devices are updated.&lt;/p&gt;
&lt;p&gt;- Andreas&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF Mesh DFU example vs precompiled bootloader</title><link>https://devzone.nordicsemi.com/thread/152503?ContentTypeID=1</link><pubDate>Thu, 11 Oct 2018 12:54:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:eb9caab3-1b84-4f15-a053-b82ee2f30162</guid><dc:creator>gsegment</dc:creator><description>&lt;p&gt;Thanks for explanation,&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;So, the Nordic&amp;#39;s DFU is not a part of Bluetooth Mesh protocol? I am confused now, correct me if I am wrong: DFU process based on broadcasting and relaying custom OpenMesh messages format (not Bluetooth Mesh), right?&lt;/li&gt;
&lt;li&gt;I read that Bootloader can operate separately. So, when it is running, can bootloader relay/accept DFU messages (situation, when there is no application and softdevice flashed - only bootloader)?&lt;/li&gt;
&lt;li&gt;Can bootloader update its own application and softdevice via &lt;strong&gt;serial&lt;/strong&gt; bootloader OpenMesh interface? It is not clear for me. The situation is when I have device with bootloader only, and this device is connected to the &lt;strong&gt;host controller via serial&lt;/strong&gt; interface, and host wants to update/load nrf52 firmware, &lt;strong&gt;not&lt;/strong&gt; translating to other mesh devices.&lt;/li&gt;
&lt;li&gt;How DFU initiator will determine that all devices receive full firmware? Because, if it is simple broadcasting OpenMesh packets, then there is no reliable method to get update status.&lt;/li&gt;
&lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF Mesh DFU example vs precompiled bootloader</title><link>https://devzone.nordicsemi.com/thread/152442?ContentTypeID=1</link><pubDate>Thu, 11 Oct 2018 08:07:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:76e2bfb1-c2a2-42a4-845f-33fa8778d503</guid><dc:creator>AndreasF</dc:creator><description>&lt;p&gt;Hi.&lt;/p&gt;
&lt;p&gt;Yes. &lt;strong&gt;\examples\dfu&lt;/strong&gt; is an example of a device firmware update application.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;\mesh\bootloader&lt;/strong&gt; uses &lt;strong&gt;rbc_mesh_&lt;/strong&gt; methods because the bootloader is a port of the bootloader from OpenMesh without any major modfications. The DFU in mesh operates in the OpenMesh-message format. The bootloader does support &lt;strong&gt;rbc_mesh_&lt;/strong&gt; methods, but it can also receive and relay DFU messages over the mesh, and an interface application can request DFU-support when an application is running.&lt;/p&gt;
&lt;p&gt;- Andreas&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF Mesh DFU example vs precompiled bootloader</title><link>https://devzone.nordicsemi.com/thread/152389?ContentTypeID=1</link><pubDate>Wed, 10 Oct 2018 14:59:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3356b4bf-165d-4561-86f0-070797e91135</guid><dc:creator>gsegment</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Am I right that &lt;strong&gt;\examples\dfu&lt;/strong&gt; should be a part of application to be able to receive firmware updates? It receives and stores firmware update packets and after that calls bootloader to check and switch application, correct? I am trying understand the purpose of &lt;strong&gt;\example\dfu&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;I can&amp;#39;t undestand why &lt;strong&gt;\mesh\bootloader&lt;/strong&gt; is using &lt;em&gt;rbc_mesh_&lt;/em&gt; methods, as I know these methods are made for OpenMesh and not for Bluetooth Mesh. What is the puprose of using &lt;em&gt;rbc_&lt;/em&gt; stuff? I thougth that this bootloader handle only application switching and over serial firmware update.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF Mesh DFU example vs precompiled bootloader</title><link>https://devzone.nordicsemi.com/thread/152049?ContentTypeID=1</link><pubDate>Mon, 08 Oct 2018 12:24:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a9cdeb69-f652-4278-8fe2-67c9fd3f3373</guid><dc:creator>AndreasF</dc:creator><description>&lt;p&gt;Hi.&lt;br /&gt;&lt;br /&gt;The files inside the folder &lt;strong&gt;nrf5_SDK_for_Mesh_v2.2.0_src\bin\bootloader&lt;/strong&gt; is just precompiled &lt;strong&gt;.hex files&lt;/strong&gt; with different configurations for different boards. All files in the &lt;strong&gt;nrf5_SDK_for_Mesh_v2.2.0_src\bin&lt;/strong&gt; folder are precompiled.&lt;br /&gt;&lt;br /&gt;The folder &lt;strong&gt;nrf5_SDK_for_Mesh_v2.2.0_src\examples\dfu&lt;/strong&gt; contains a device firmware update example, not the bootloader.&lt;br /&gt;&lt;br /&gt;If you want to build your own bootloader you should look in the &lt;strong&gt;nrf5_SDK_for_Mesh_v2.2.0_src\mesh\bootloader&lt;/strong&gt; folder.&lt;br /&gt;&lt;br /&gt;If you open the &lt;strong&gt;README.md&lt;/strong&gt; file, you can read the following about creating your own bootloader:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;br /&gt;## Requirements&lt;br /&gt;See [The toolchain document](@ref md_doc_getting_started_how_to_toolchain) for the required tools&lt;br /&gt;for building and using the bootloader. Pre-compiled variants of the bootloader are available in&lt;br /&gt;the `bin/` folder. Building the bootloader is only supported with the CMake build system and can&lt;br /&gt;be enabled with the `BUILD_BOOTLOADER` CMake option. Be aware that the bootloader must be built&lt;br /&gt;with `CMAKE_BUILD_TYPE` equal to `MinSizeRel` for it to fit within its flash size requirement.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;As you can read here, you have to use &lt;strong&gt;CMake&lt;/strong&gt; to build it, and you have to modifiy the files you require found in the &lt;strong&gt;nrf5_SDK_for_Mesh_v2.2.0_src\mesh\bootloader\src&lt;/strong&gt; and &lt;strong&gt;nrf5_SDK_for_Mesh_v2.2.0_src\mesh\bootloader\include&lt;/strong&gt; folders.&lt;br /&gt;&lt;br /&gt;There is some documentation about using CMake &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.meshsdk.v2.2.0/md_doc_getting_started_how_to_build_cmake.html?cp=4_1_0_1_1_0"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;- Andreas&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>