<?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>Multiple DFU Transports</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/28118/multiple-dfu-transports</link><description>More of a suggestion than a question: 
 Using the info available on the infoCenter, especially here and here , I&amp;#39;m trying to implement a way to dynamically select the DFU transport to be used. I was able to build my project without breaking the DFU over</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 07 Feb 2018 15:14:05 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/28118/multiple-dfu-transports" /><item><title>RE: Multiple DFU Transports</title><link>https://devzone.nordicsemi.com/thread/120139?ContentTypeID=1</link><pubDate>Wed, 07 Feb 2018 15:14:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:77502533-62e6-48ba-a5a9-5615caa072eb</guid><dc:creator>Jason Hendrix</dc:creator><description>&lt;p&gt;Hi Danni,&lt;/p&gt;
&lt;p&gt;&amp;nbsp; What file is that a picture of?&amp;nbsp; I didn&amp;#39;t really combine the two projects as much as simply add nrf_serial_dfu.c to the bootloader_secrue_ble example.&amp;nbsp; My changes to main basically involved removeing LED and button code, since I had none.&amp;nbsp; I think in SDK14.1, code like the code you attached is deeper into the DFU library.&amp;nbsp; I didn&amp;#39;t have to mess with that.&amp;nbsp; I only added the two dfu files (serial and ble).&amp;nbsp; Here&amp;#39;s a comment from my main, where I thought I would select between serial and BLE:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;/*************************************************************************************
No need to implement this - there is no way (outside of library mods) to control
which DFU transport is used. By virtue of adding nrf_ble_dfu.c to the project, we get
the BLE transport. By then adding nrf_serial_dfu.c we get the serial transport ALSO.
During bootloader init, both transports will be configured and listening for 
activity. It would be nice to have more control, but this all happens at 
link-time, and within the call to nrf_boot_loader_init. 
if (nrf_power_gpregret_get() == MYPROJ_BL_DFU_UART_START)
{ 
nrf_power_gpregret_set(MYPROJ_BL_DFU_BLE_START); // Signal bootloader code that we want DFU
retVal = true; 
}

if (nrf_power_gpregret_get() == MYPROJ_BL_DFU_BLE_START)
{
retVal = true;
}
**************************************************************************************/&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multiple DFU Transports</title><link>https://devzone.nordicsemi.com/thread/120029?ContentTypeID=1</link><pubDate>Wed, 07 Feb 2018 03:15:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:15e3dc34-39fe-4a17-aa76-6bd296d580ed</guid><dc:creator>danni</dc:creator><description>&lt;p&gt;Hi Jason, sorry t&lt;span&gt;o disturb you.&amp;nbsp;&lt;/span&gt;In SDK13.0.0, when I combined BLE and UART DFU into one project, I find they have&amp;nbsp;&lt;span&gt;different event wait function, BLE DFU use sd_app_evt_wait() but SERIAL DFU use __WFI(). &amp;nbsp;do you have any change?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/pastedimage1517973038928v1.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multiple DFU Transports</title><link>https://devzone.nordicsemi.com/thread/119996?ContentTypeID=1</link><pubDate>Tue, 06 Feb 2018 16:50:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0ea7c1e3-4b9a-4bd7-b4fa-35655be553bb</guid><dc:creator>Jason Hendrix</dc:creator><description>&lt;p&gt;Hi Phillip.&amp;nbsp; I didn&amp;#39;t have to do any&amp;nbsp; flash/RAM configuration beyond the &amp;quot;dfu_trans&amp;quot; mods described in my original post.&amp;nbsp; Just to be clear, these mods are made to the bootloader project, not the application project.&amp;nbsp; I&amp;#39;ll attach my sdk_config.h; the changes from the starting point (&amp;quot;examples/dfu/bootloader_secure_ble&amp;quot;) are basically enabling the UART and some RTT functionality for debug output.&amp;nbsp; Again, make sure the bootloader configures the UART with the correct GPIO.&amp;nbsp; I plan to make a more detailed explanation using the NRF52 DK, but that will probably be in May or June.&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/2047.sdk_5F00_config.h"&gt;devzone.nordicsemi.com/.../2047.sdk_5F00_config.h&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multiple DFU Transports</title><link>https://devzone.nordicsemi.com/thread/119859?ContentTypeID=1</link><pubDate>Tue, 06 Feb 2018 07:27:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:81d6dd70-91e6-4ca2-bb98-7d48b22a2e2c</guid><dc:creator>philip.wei</dc:creator><description>&lt;p&gt;Hi Jason, we have faced the same problem.&lt;/p&gt;
&lt;p&gt;Can you show us sdk_config.h that woks or Do you remember there are ram configuration or flash configuration we need to change?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;thank you very much~&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multiple DFU Transports</title><link>https://devzone.nordicsemi.com/thread/119472?ContentTypeID=1</link><pubDate>Fri, 02 Feb 2018 07:28:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6959e783-1f9e-4640-bc37-1f8b22a0ce45</guid><dc:creator>Jason Hendrix</dc:creator><description>&lt;p&gt;Hi Danni,&lt;/p&gt;
&lt;p&gt;&amp;nbsp; It&amp;#39;s been a while, but as I remember, you just add both nrf_ble_dfu.c and nrf_uart_dfu.c to your project.&amp;nbsp; Then search those files for &amp;quot;dfu_trans&amp;quot;.&amp;nbsp; In 14.1 it exists in both files.&amp;nbsp; In one of the files, change the name of dfu_trans.&amp;nbsp; Then you should be able to build.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Now, when the bootloader is running in DFU mode, you should be able to start sending DFU packages over the serial port.&amp;nbsp; You do need to define the serial port pins somewhere, so DFU knows which to configure.&amp;nbsp; I don&amp;#39;t remember how that was done.&amp;nbsp; I think the final hurdle for me was to take the UART speed on the DFU server (an embedded Linux, in my case) down to 9600, because we didn&amp;#39;t have HWFC.&amp;nbsp; I did try to run at 115200, but it failed.&amp;nbsp; &amp;nbsp;Here are my notes for setting up and modifying the Python nrfutils:&lt;/p&gt;
&lt;ul style="direction:ltr;margin-bottom:0in;margin-left:.375in;margin-top:0in;"&gt;
&lt;li style="margin-bottom:0;margin-top:0;vertical-align:middle;"&gt;&lt;span style="font-family:Consolas;font-size:11.0pt;"&gt;pip install nrfutil&lt;/span&gt;&lt;/li&gt;
&lt;li style="margin-bottom:0;margin-top:0;vertical-align:middle;"&gt;&lt;span style="font-family:Consolas;font-size:11.0pt;"&gt;cd /usr/lib/python2.7/site-packages/nordicsemi&lt;/span&gt;&lt;/li&gt;
&lt;li style="margin-bottom:0;margin-top:0;vertical-align:middle;"&gt;&lt;span style="font-family:Consolas;font-size:11.0pt;"&gt;pip install -r setup.py&lt;/span&gt;&lt;/li&gt;
&lt;li style="margin-bottom:0;margin-top:0;vertical-align:middle;"&gt;&lt;span style="font-family:Consolas;font-size:11.0pt;"&gt;pip install -r requirements.txt&lt;/span&gt;&lt;/li&gt;
&lt;li style="margin-bottom:0;margin-top:0;vertical-align:middle;"&gt;&lt;span style="font-family:Consolas;font-size:11.0pt;"&gt;vi dfu/dfu_transport_serial.py&lt;/span&gt;&lt;ul style="direction:ltr;margin-bottom:0in;margin-left:.375in;margin-top:0in;"&gt;
&lt;li style="margin-bottom:0;margin-top:0;vertical-align:middle;"&gt;&lt;span style="font-family:Calibri;font-size:11.0pt;"&gt;Find&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:11.0pt;"&gt; class DfuTransportSerial&lt;/span&gt;&lt;span style="font-family:Calibri;font-size:11.0pt;"&gt; and change:&lt;/span&gt;&lt;ul style="direction:ltr;margin-bottom:0in;margin-left:.375in;margin-top:0in;"&gt;
&lt;li style="margin-bottom:0;margin-top:0;vertical-align:middle;"&gt;&lt;span style="font-family:Consolas;font-size:11.0pt;"&gt;DEFAULT_BAUD_RATE to 9600&lt;/span&gt;&lt;/li&gt;
&lt;li style="margin-bottom:0;margin-top:0;vertical-align:middle;"&gt;&lt;span style="font-family:Consolas;font-size:11.0pt;"&gt;DEFAULT_FLOW_CONTROL to False&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style="margin-bottom:0;margin-top:0;vertical-align:middle;"&gt;&lt;span style="font-family:Consolas;font-size:11.0pt;"&gt;python setup.py build&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-family:Consolas;font-size:11.0pt;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas;font-size:11.0pt;"&gt;Hope that helps.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multiple DFU Transports</title><link>https://devzone.nordicsemi.com/thread/119470?ContentTypeID=1</link><pubDate>Fri, 02 Feb 2018 07:07:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:11005bfc-df59-4025-991b-280fd1c04619</guid><dc:creator>danni</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;a class="internal-link view-user-profile" href="https://devzone.nordicsemi.com/members/jhendr"&gt;Jason Hendrix&lt;/a&gt;,In nRF53832, sdk 13.0.0, I want combine BLE DFU and serial DFU in one demo, but when I&amp;nbsp;transplant serial DFU function into BLE DFU demo,or&amp;nbsp;transplant BLE &amp;nbsp;DFU function into serial DFU demo, BLE DFU can work,but serial DFU can&amp;rsquo;t, could you tell me how you&amp;nbsp;solve this problem?&lt;/p&gt;
&lt;p&gt;thank you&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multiple DFU Transports</title><link>https://devzone.nordicsemi.com/thread/110928?ContentTypeID=1</link><pubDate>Fri, 15 Dec 2017 16:41:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2084e681-e171-4a81-ae6a-fb53b4362c94</guid><dc:creator>Jason Hendrix</dc:creator><description>&lt;p&gt;Hi Hung, - the software pretty much worked with the mods to nrf_uart_dfu.c and nrf_ble_dfu.c described in the post.  If I get a chance I&amp;#39;ll post more details.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multiple DFU Transports</title><link>https://devzone.nordicsemi.com/thread/110927?ContentTypeID=1</link><pubDate>Fri, 15 Dec 2017 12:04:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:239bfda3-a13c-4704-b877-f532c05490c6</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Thanks Jason for the update. Did you face any challenge when combining the 2 transport layer that you want to share ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multiple DFU Transports</title><link>https://devzone.nordicsemi.com/thread/110926?ContentTypeID=1</link><pubDate>Thu, 14 Dec 2017 16:53:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4b5badd5-c9b6-491e-ab15-c2ce4d2b8acd</guid><dc:creator>Jason Hendrix</dc:creator><description>&lt;p&gt;Just an update - I was able to test the UART DFU and it works.  So our app on our custom board supports DFU over either BLE or UART.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multiple DFU Transports</title><link>https://devzone.nordicsemi.com/thread/110925?ContentTypeID=1</link><pubDate>Mon, 20 Nov 2017 14:21:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2e9c8c88-07b8-4297-b404-494b7466827e</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Thanks for your suggestion. The bootloader was developed so it can be transport layer agnostic. User are free to choose and add more transport layers. However combining multiple transport layers in one bootloader was not prioritized, mostly because of the size constrain.&lt;/p&gt;
&lt;p&gt;I will send your request and suggestion to R&amp;amp;D.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>