<?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>Wondering the best place to add transport layer for DFU?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/97749/wondering-the-best-place-to-add-transport-layer-for-dfu</link><description>Hello, 
 I am wondering where the best place to add a transport layer for DFU is? I have both bootloader examples working, but now i need to add the transport layers. On one board it will be SPI, the other it will be Thread. I could accept Thread frames</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 31 May 2024 13:25:52 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/97749/wondering-the-best-place-to-add-transport-layer-for-dfu" /><item><title>RE: Wondering the best place to add transport layer for DFU?</title><link>https://devzone.nordicsemi.com/thread/486927?ContentTypeID=1</link><pubDate>Fri, 31 May 2024 13:25:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e7f723a4-59df-4f27-8d12-e664dbf77cd2</guid><dc:creator>bmalchow</dc:creator><description>&lt;p&gt;Thank you!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Wondering the best place to add transport layer for DFU?</title><link>https://devzone.nordicsemi.com/thread/486812?ContentTypeID=1</link><pubDate>Fri, 31 May 2024 08:11:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3a5f1c68-d4f7-4b49-8e4f-b31d095cda8f</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;div&gt;Sorry for late response, this thread seems to have fallen into wrong cracks.&lt;/div&gt;
&lt;div&gt;I will respond and close this thread as this is a bit old.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;You were on the right track. The DFU process is designed to be transport agnostic, as long as a reliable transport layer is used. The DFU transport module defines a generic interface that must be implemented for each transport layer. Currently, the DFU transport module supports BLE, UART, and USB CDC transport, but you can add your own transport layers such as SPI or Thread.&lt;/div&gt;
&lt;div&gt;&lt;code dir="ltr"&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;For implementing the&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/109637/hardware-spi-dfu-from-one-nrf52840-to-another-nrf52840?ReplyFilter=Answers&amp;amp;ReplySortBy=Answers&amp;amp;ReplySortOrder=Descending"&gt; SPI transport layer&lt;/a&gt;, you can use the DFU target library. This library allows you to handle the image received over SPI on the server side&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;For implementing the Thread transport layer, you might want to &lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/samples/bluetooth/central_smp_client/README.html"&gt;start with the SMP Server sample &lt;/a&gt;and see how it uses mcuboot.c and flash_img.c to place the update binary in slot 1.As for adding a secondary bootloader, it&amp;#39;s generally advised to avoid it if not necessary. However, if your use case requires it, you can certainly implement it. Just make sure to thoroughly test it to ensure it works as expected.&lt;/div&gt;
you might need to develop a custom solution as there is no direct reference in the provided sources.&lt;/div&gt;
&lt;div&gt;As for the bootloader, it is generally advised to avoid adding a secondary bootloader if not necessary. However, if your use case requires it, you can consider it.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>