<?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>Example of C-based client when DFUing a nRF52840 via UART</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/119489/example-of-c-based-client-when-dfuing-a-nrf52840-via-uart</link><description>Good morning, 
 
 In our next product (mounting a nRF52840) we will need a dual UART+BLE update channel. We have already implemented the update via BLE and we are now trying to do the same for the UART channel. 
 We have successfully used both the C+</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 05 Mar 2025 14:59:09 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/119489/example-of-c-based-client-when-dfuing-a-nrf52840-via-uart" /><item><title>RE: Example of C-based client when DFUing a nRF52840 via UART</title><link>https://devzone.nordicsemi.com/thread/526030?ContentTypeID=1</link><pubDate>Wed, 05 Mar 2025 14:59:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:aefac486-a695-487c-bb65-dd58b433a459</guid><dc:creator>Amanda Hsieh</dc:creator><description>&lt;p&gt;Unfortunately, we/Nordic don&amp;#39;t have such tools. Maybe you could seek help on&amp;nbsp;Discord mcumgr channel:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://discord.com/invite/Ck7jw53nU2"&gt;https://discord.com/invite/Ck7jw53nU2&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Example of C-based client when DFUing a nRF52840 via UART</title><link>https://devzone.nordicsemi.com/thread/526025?ContentTypeID=1</link><pubDate>Wed, 05 Mar 2025 14:41:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:42fb5017-b443-4fb6-b7aa-01a7799b16e6</guid><dc:creator>Alex-Uzinakod</dc:creator><description>&lt;p&gt;I can&amp;#39;t find it in the nRF documentation but there&amp;#39;s details in the official Zephyr documentation:&amp;nbsp;&lt;br /&gt;&lt;strong&gt;- &lt;a id="" href="https://docs.zephyrproject.org/latest/services/device_mgmt/smp_protocol.html"&gt;https://docs.zephyrproject.org/latest/services/device_mgmt/smp_protocol.html&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;-&amp;nbsp;&lt;a href="https://docs.zephyrproject.org/latest/services/device_mgmt/smp_transport.html"&gt;docs.zephyrproject.org/.../smp_transport.html&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Example of C-based client when DFUing a nRF52840 via UART</title><link>https://devzone.nordicsemi.com/thread/525884?ContentTypeID=1</link><pubDate>Wed, 05 Mar 2025 08:39:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:389e654c-2bed-488e-952a-10e236d6138c</guid><dc:creator>ste2108</dc:creator><description>&lt;p&gt;Dear Amanda,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thank you for your answer. Correct me if I am wrong: even though the DFU over UART can be enabled in Zephyr running on the nRF52840, the only chance users have in order to understand the sequence of packets to be exchanged between client (PC) and host (MCU) is extracting it from third-parties clients, cause neither Nordic nor Zephyr provide it?&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Stefano&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Example of C-based client when DFUing a nRF52840 via UART</title><link>https://devzone.nordicsemi.com/thread/525795?ContentTypeID=1</link><pubDate>Tue, 04 Mar 2025 16:41:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:aa94882f-e199-4596-905c-854d739e4238</guid><dc:creator>Amanda Hsieh</dc:creator><description>&lt;p&gt;Hi,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;The&amp;nbsp;&lt;a href="https://academy.nordicsemi.com/courses/nrf-connect-sdk-intermediate/lessons/lesson-9-bootloaders-and-dfu-fota/topic/exercise-1-dfu-over-uart/"&gt;DFU over UART course&lt;/a&gt; demonstrates how to enable mcuboot Serial Recovery via UART&amp;nbsp;and add&amp;nbsp;DFU from the application. &lt;a href="https://github.com/nrfconnect/sdk-zephyr/tree/main/subsys/mgmt/mcumgr/transpor"&gt;The&amp;nbsp;&lt;/a&gt;&lt;span&gt;&lt;a href="https://github.com/nrfconnect/sdk-zephyr/tree/main/subsys/mgmt/mcumgr/transpor"&gt;related functions within the mcumgr library&lt;/a&gt; will be loaded into the project according to those configurations.&amp;nbsp;Unfortunately, there is no such documentation as your requirements. Hope the&amp;nbsp;&lt;a href="https://docs.nordicsemi.com/bundle/zephyr-apis-latest/page/group_mcumgr_transport_smp.html"&gt;MCUmgr transport SMP API&lt;/a&gt;&amp;nbsp;can help.&amp;nbsp;&lt;/span&gt;&lt;a href="https://github.com/nrfconnect/sdk-zephyr/blob/main/subsys/mgmt/mcumgr/transport/src/smp_uart.c"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Regards,&lt;br /&gt;Amanda H.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Example of C-based client when DFUing a nRF52840 via UART</title><link>https://devzone.nordicsemi.com/thread/525646?ContentTypeID=1</link><pubDate>Tue, 04 Mar 2025 07:31:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:42c76d86-9fc4-4066-8ec2-617e1c45b71e</guid><dc:creator>ste2108</dc:creator><description>&lt;p&gt;Hello Alex,&lt;/p&gt;
&lt;p&gt;thank you for your answer. Yes, we have taken a look at both the DFU over UART example (which I use to adapt my project with the proper configuration) and the protocol definition. What we lack is the sequence of operations we need to perform to update the device, and possibly the related functions within the mcumgr library that we need to use at each step. I am sniffing the packets but honestly validating the sniffed packets and associating them to the DFU sequence can be really painful. I&amp;nbsp;believe that at least a sequence of needed operations should be provided by Nordic in a tech document.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Stefano&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Example of C-based client when DFUing a nRF52840 via UART</title><link>https://devzone.nordicsemi.com/thread/525590?ContentTypeID=1</link><pubDate>Mon, 03 Mar 2025 18:47:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:02b08739-545f-4cc8-8d47-79581790370e</guid><dc:creator>Alex-Uzinakod</dc:creator><description>&lt;p&gt;To the best of my knowledge, a pure C lib to DFU over UART doesn&amp;#39;t exist at the moment.&lt;br /&gt;&lt;br /&gt; We&amp;#39;ll face the same issue in a project of ours. The protocol it self is documented here: &lt;a id="" href="https://docs.nordicsemi.com/bundle/ncs-latest/page/zephyr/services/device_mgmt/smp_transport.html"&gt;https://docs.nordicsemi.com/bundle/ncs-latest/page/zephyr/services/device_mgmt/smp_transport.html&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;You could snif the UART bus using either a logic analyzer or Wireshark to validate that the documentation is acurate.&lt;br /&gt;&lt;br /&gt;You could also use the DFU from application method mentionned here: &lt;a href="https://academy.nordicsemi.com/courses/nrf-connect-sdk-intermediate/lessons/lesson-9-bootloaders-and-dfu-fota/topic/exercise-1-dfu-over-uart/"&gt;academy.nordicsemi.com/.../&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>