<?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>How to automate the entrance in bootloader mode on nRF52840 USB dongle?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/124541/how-to-automate-the-entrance-in-bootloader-mode-on-nrf52840-usb-dongle</link><description>Dear DEVZONE, 
 We are working on Nordic nRF58480 USB dongle for Thread activities. 
 We are using one testbench on which we need to automate with Python scripts reprogramming of the USB dongle with a new firmware. 
 To this end, we need to reflash the</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 19 Nov 2025 12:20:38 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/124541/how-to-automate-the-entrance-in-bootloader-mode-on-nrf52840-usb-dongle" /><item><title>RE: How to automate the entrance in bootloader mode on nRF52840 USB dongle?</title><link>https://devzone.nordicsemi.com/thread/554782?ContentTypeID=1</link><pubDate>Wed, 19 Nov 2025 12:20:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:99e7711d-ba1d-4cb5-9269-52ea45b06840</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Tom,&amp;nbsp;&lt;br /&gt;&lt;br /&gt;I agree. Simply use different dongles for different application would be the&amp;nbsp;better solution. It&amp;#39;s much more simple that trying to get a different bootloader and/or modify the test application.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to automate the entrance in bootloader mode on nRF52840 USB dongle?</title><link>https://devzone.nordicsemi.com/thread/554671?ContentTypeID=1</link><pubDate>Tue, 18 Nov 2025 11:31:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b494fd77-7beb-4252-8371-127d5877fa95</guid><dc:creator>Tom Douady</dc:creator><description>&lt;p&gt;Hey,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m using 40 dongles, and I don&amp;#39;t have the option to turn the USB dongle power off and on.&lt;/p&gt;
&lt;p&gt;I feel like using my own bootloader would take too much time, so we thought of another approach: using more dongles, each prepared with the app versions I want. I will plug them depending on the configuration needed for my tests.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Thanks for your answers.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to automate the entrance in bootloader mode on nRF52840 USB dongle?</title><link>https://devzone.nordicsemi.com/thread/554368?ContentTypeID=1</link><pubDate>Fri, 14 Nov 2025 10:25:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:93b15651-9709-4a6b-a3fc-fc9637e3d04d</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Tom,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This will make it much more difficult to do anything here as your application most likely doesn&amp;#39;t have any feature to toggle the correct GPIO to reset.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Can you give us some more information about your set up ? How many dongle are you running ?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;The most obvious option is to connect Jlink to the dongle and reflash the bootloader to a new one. We can add a delay for DFU there and then you just need to do a power reset for the dongle to enter DFU mode. The Jlink is only needed once per dongle.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Do you have the option to automatically turn off and on the USB dongle power ?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to automate the entrance in bootloader mode on nRF52840 USB dongle?</title><link>https://devzone.nordicsemi.com/thread/554251?ContentTypeID=1</link><pubDate>Thu, 13 Nov 2025 11:25:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bf7ddefe-e5ad-48ef-a49a-3758287c19eb</guid><dc:creator>Tom Douady</dc:creator><description>&lt;p class="mantine-focus-auto m_b6d8b162 mantine-Text-root"&gt;Hi,&lt;/p&gt;
&lt;p class="mantine-focus-auto m_b6d8b162 mantine-Text-root"&gt;Thank you for your response.&lt;/p&gt;
&lt;p class="mantine-focus-auto m_b6d8b162 mantine-Text-root"&gt;Unfortunately, I am unable to recompile the application, as it is a precompiled app (.zip) that was provided to me. This means I have no visibility into the app&amp;rsquo;s internals, except for what I can access through the serial connection and any printed output.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to automate the entrance in bootloader mode on nRF52840 USB dongle?</title><link>https://devzone.nordicsemi.com/thread/553692?ContentTypeID=1</link><pubDate>Fri, 07 Nov 2025 14:01:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:aa473d2b-015e-48db-8ba9-8dbcec0fecdf</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi again,&amp;nbsp;&lt;br /&gt;I got noticed about the constrain Robin mentioned:&amp;nbsp;&lt;/p&gt;
[quote user="Robin D."]without making any modification to the firmware we are flashing on the dongle (we use the firmware provided with the Thread Test Harness so we can&amp;#39;t modify it).[/quote]
&lt;p&gt;Could you explain a little bit more on this ? Is the firmware a precompiled hex file ? Any chance to recompile this ?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to automate the entrance in bootloader mode on nRF52840 USB dongle?</title><link>https://devzone.nordicsemi.com/thread/553662?ContentTypeID=1</link><pubDate>Fri, 07 Nov 2025 11:37:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:eb6933e2-3c61-4c2a-88ec-abd973235c83</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Cedric and Tom,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Could you please let me know which SDK your application on the dongle is built on ?&amp;nbsp;&lt;br /&gt;If your application is on the legacy nRF5 SDK I don&amp;#39;t think adding MCUBoot would be the best option as it involve nRF Connect SDK.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Putting the nRF52840 dongle to DFU mode is quite simple.&amp;nbsp;During booting up, the bootloader will check for the reset reason and if it&amp;#39;s s a pin reset it will enter DFU mode. You can find this code in the bootloader (nrf_bootloader.c):&lt;br /&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1762510895218v1.png" alt=" " /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;So the task for the application is to toggle a GPIO pin that connect externally to the reset pin to trigger a pin reset from the software. This is exactly what the&lt;a href="https://docs.nordicsemi.com/bundle/sdk_nrf5_v17.0.2/page/lib_dfu_trigger_usb.html"&gt; DFU trigger library&lt;/a&gt; does.&amp;nbsp;&lt;br /&gt;You can find many of our application for the dongle already support this, for example you can switch between the firmware for the NRF52840 dongle for nRF Connect for Desktop -&amp;gt; Bluetooth Low Energy application and nRF Connect for Desktop -&amp;gt; RSSI viewer application without having to press any button. The firmware automatically switch to bootloader mode without any intervention to press any button.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;We will need to see how you implemented the DFU trigger library and what error you have. You can take a look at the&amp;nbsp;\examples\connectivity\ble_connectivity\pca10059 to see how it&amp;#39;s implemented.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Or you can simply try a simple test to&amp;nbsp;set&amp;nbsp;BSP_SELF_PINRESET_PIN to 0 in your application code to see if the dongle switch to DFU mode or not (The LED breaths red).&amp;nbsp;This code in nrf_dfu_trigger_usb.c put the chip to DFU mode:&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1762515388142v2.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to automate the entrance in bootloader mode on nRF52840 USB dongle?</title><link>https://devzone.nordicsemi.com/thread/553212?ContentTypeID=1</link><pubDate>Mon, 03 Nov 2025 17:46:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8398b6e8-8a46-446f-9e47-93aa9c4d8b37</guid><dc:creator>PjGlasso</dc:creator><description>&lt;p&gt;Hi there,&lt;/p&gt;
&lt;p&gt;SO i&amp;#39;m not in way left field :grin:&lt;/p&gt;
&lt;p&gt;you want to use the Dongle with custom Bootloader and Firmware App.&lt;/p&gt;
&lt;p&gt;The Bootloader presently is immutable(can&amp;#39;t be update, by code). You would need to erase the device completely. Program/SWD and Add your bootloader (MCUboot)maybe and recommended.&lt;/p&gt;
&lt;p&gt;When it&amp;#39;s in DFU mode. give it your app and cross your fingers is what I see? , Now perhaps there is a software method in your Bootloader to Reboot and PAUSE ?(allows app update ONLY) , X-seconds and continues to app installed...&lt;/p&gt;
&lt;p&gt;Feels very Generic and Vanilla to me.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;LMK ?&lt;/p&gt;
&lt;p&gt;And others will comment...&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;HTH&lt;/p&gt;
&lt;p&gt;GL :-) PJ &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/270c.svg" title="V"&gt;&amp;#x270c;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to automate the entrance in bootloader mode on nRF52840 USB dongle?</title><link>https://devzone.nordicsemi.com/thread/553122?ContentTypeID=1</link><pubDate>Mon, 03 Nov 2025 08:46:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fd2179f2-0127-4f4d-976a-a780edabce46</guid><dc:creator>Tom Douady</dc:creator><description>&lt;p&gt;&lt;strong&gt;Hi PJ,&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Thanks again for your detailed explanation &amp;mdash; it really helped me understand the two approaches better.&lt;/p&gt;
&lt;p&gt;With your advices I succeed to create my own bootloader. Thanks for that !&lt;br /&gt;&lt;br /&gt;I&amp;rsquo;d like to clarify my specific situation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I &lt;strong&gt;cannot modify the application&lt;/strong&gt; itself, as it&amp;rsquo;s provided to me in a precompiled &lt;code&gt;.zip&lt;/code&gt; format (standardized across projects).&lt;/li&gt;
&lt;li&gt;My goal is to &lt;strong&gt;replace the factory bootloader&lt;/strong&gt; on the nRF52840 USB Dongle with a custom one that:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Stays in DFU mode for a short period after reset&lt;/strong&gt;, waiting for a potential firmware update.&lt;/li&gt;
&lt;li&gt;Then jumps to the existing application if no update is received.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So I&amp;rsquo;m only looking to &lt;strong&gt;compile and flash the bootloader&lt;/strong&gt;, without touching or rebuilding the application. This would allow me to update the app via DFU when needed, without requiring any changes to the app itself.&lt;br /&gt;&lt;br /&gt;From my perspective, it seems that &lt;strong&gt;Path B (MCUboot)&lt;/strong&gt; might be closer to what I&amp;rsquo;m trying to achieve &amp;mdash; assuming I can configure it to enter DFU mode temporarily after reset, even without cooperation from the application.&lt;br /&gt;&lt;br /&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1762159350423v1.png" alt=" " /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Is there a way to&amp;nbsp;overwrite&amp;nbsp;the factory bootloader by a custom bootloader ?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Tom.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to automate the entrance in bootloader mode on nRF52840 USB dongle?</title><link>https://devzone.nordicsemi.com/thread/553053?ContentTypeID=1</link><pubDate>Fri, 31 Oct 2025 15:29:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e42dc186-d6f9-4745-b76a-c42f5fca69a3</guid><dc:creator>PjGlasso</dc:creator><description>&lt;p&gt;Hi there,&lt;/p&gt;
&lt;p&gt;So looks like you may be mixing the two methods... You need to decide which path gives you the best function for your situation.&lt;/p&gt;
&lt;p data-start="354" data-end="580"&gt;You built Blinky with &lt;strong data-start="375" data-end="408"&gt;&lt;code data-start="377" data-end="406"&gt;CONFIG_BOOTLOADER_MCUBOOT=y&lt;/code&gt;&lt;/strong&gt; and a child &lt;code data-start="421" data-end="439"&gt;mcuboot/prj.conf&lt;/code&gt;, then targeted &lt;strong data-start="455" data-end="484"&gt;&lt;code data-start="457" data-end="482"&gt;nrf52840dongle/nrf52840&lt;/code&gt;&lt;/strong&gt;. Now you see hex images and a memory layout that looks &amp;ldquo;off&amp;rdquo; and can&amp;rsquo;t auto-jump to bootloader.&lt;/p&gt;
&lt;p data-start="582" data-end="631"&gt;That&amp;rsquo;s because there are two distinct approaches:&lt;/p&gt;
&lt;h2 id="mcetoc_1j8tdiobs0" data-start="633" data-end="707"&gt;&lt;span style="font-size:inherit;"&gt;A) Keep the factory Nordic USB DFU bootloader (shipped on PCA10059)&lt;/span&gt;&lt;/h2&gt;
&lt;ul data-start="708" data-end="957"&gt;
&lt;li data-start="708" data-end="745"&gt;
&lt;p data-start="710" data-end="745"&gt;You &lt;strong data-start="714" data-end="724"&gt;do not&lt;/strong&gt; build/flash MCUboot.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="746" data-end="852"&gt;
&lt;p data-start="748" data-end="852"&gt;You enter DFU (bootloader) either by the dongle&amp;rsquo;s button at reset &lt;strong data-start="814" data-end="820"&gt;or&lt;/strong&gt; by software using &lt;strong data-start="839" data-end="851"&gt;GPREGRET&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="853" data-end="957"&gt;
&lt;p data-start="855" data-end="957"&gt;You flash your &lt;strong data-start="870" data-end="890"&gt;application-only&lt;/strong&gt; image (no MCUboot) using the &lt;strong data-start="920" data-end="934"&gt;Programmer&lt;/strong&gt; tool or &lt;code data-start="943" data-end="956"&gt;nrfutil dfu&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1j8tdiobs1" data-start="959" data-end="1012"&gt;B) Replace the factory bootloader with &lt;strong data-start="1001" data-end="1012"&gt;MCUboot&lt;/strong&gt;&lt;/h2&gt;
&lt;ul data-start="1013" data-end="1236"&gt;
&lt;li data-start="1013" data-end="1115"&gt;
&lt;p data-start="1015" data-end="1115"&gt;You do build MCUboot as a child image and flash the &lt;strong data-start="1067" data-end="1081"&gt;merged.hex&lt;/strong&gt; that contains MCUboot + your app.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="1116" data-end="1236"&gt;
&lt;p data-start="1118" data-end="1236"&gt;To auto-enter recovery, you enable MCUboot&amp;rsquo;s &lt;strong data-start="1163" data-end="1181"&gt;serial/USB DFU&lt;/strong&gt; or &lt;strong data-start="1185" data-end="1199"&gt;pin-detect&lt;/strong&gt; in the child Kconfig and trigger it.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start="1238" data-end="1291"&gt;You have done a bit of B while expecting behavior from A. :grin:&lt;/p&gt;
&lt;h2 id="mcetoc_1j8tdiobs2" data-start="1333" data-end="1424"&gt;Path A &amp;mdash; Use the &lt;strong data-start="1353" data-end="1390"&gt;factory Nordic USB DFU bootloader&lt;/strong&gt; (simplest, safest for the dongle)&lt;/h2&gt;
&lt;ol data-start="1425" data-end="1643"&gt;
&lt;li data-start="1425" data-end="1503"&gt;
&lt;p data-start="1428" data-end="1503"&gt;&lt;strong data-start="1428" data-end="1438"&gt;Remove&lt;/strong&gt; &lt;code data-start="1439" data-end="1468"&gt;CONFIG_BOOTLOADER_MCUBOOT=y&lt;/code&gt; from the app. Don&amp;rsquo;t build MCUboot.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="1504" data-end="1561"&gt;
&lt;p data-start="1507" data-end="1561"&gt;Build your app normally for &lt;code data-start="1535" data-end="1560"&gt;nrf52840dongle/nrf52840&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="1562" data-end="1643"&gt;
&lt;p data-start="1565" data-end="1643"&gt;To &lt;strong data-start="1568" data-end="1607"&gt;auto-enter bootloader from your app&lt;/strong&gt;, write the GPREGRET and soft reset:&lt;/p&gt;
&lt;pre class="ui-code" data-mode="text"&gt;#include &amp;lt;zephyr/sys/reboot.h&amp;gt;
#include &amp;lt;hal/nrf_power.h&amp;gt;  // or &amp;lt;nrfx/hal/nrf_power.h&amp;gt; depending on includes

static void enter_factory_dfu_now(void)
{
    /* Nordic factory bootloader (nRF5 SDK DFU) looks for 0xB1 in GPREGRET */
    nrf_power_gpregret_set(NRF_POWER, 0, 0xB1);
    sys_reboot(SYS_REBOOT_WARM);
}
&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li data-start="1969" data-end="2045"&gt;
&lt;p data-start="1971" data-end="2045"&gt;Call &lt;code data-start="1976" data-end="2001"&gt;enter_factory_dfu_now()&lt;/code&gt; when you want the dongle to pop into DFU.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="2046" data-end="2128"&gt;
&lt;p data-start="2048" data-end="2128"&gt;In Programmer you&amp;rsquo;ll then see the bootloader enumerate as a DFU device over USB.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="2129" data-end="2225"&gt;
&lt;p data-start="2131" data-end="2225"&gt;&lt;strong data-start="2131" data-end="2141"&gt;Do not&lt;/strong&gt; flash anything that overwrites the bootloader region, or you lose this convenience.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If it&amp;rsquo;s not entering DFU with &lt;code data-start="2259" data-end="2265"&gt;0xB1&lt;/code&gt;, try &lt;code data-start="2271" data-end="2277"&gt;0xB0&lt;/code&gt;. Different bootloader variants sometimes use &lt;code data-start="2323" data-end="2329"&gt;0xB0&lt;/code&gt; vs &lt;code data-start="2333" data-end="2339"&gt;0xB1&lt;/code&gt;. 99% of the time on PCA10059 it&amp;rsquo;s &lt;code data-start="2374" data-end="2380"&gt;0xB1&lt;/code&gt;.&lt;/p&gt;
&lt;p data-start="2383" data-end="2418"&gt;&lt;strong data-start="2383" data-end="2416"&gt;What about the two hex files?&lt;/strong&gt;&lt;/p&gt;
&lt;ul data-start="2419" data-end="2599"&gt;
&lt;li data-start="2419" data-end="2460"&gt;
&lt;p data-start="2421" data-end="2460"&gt;&lt;code data-start="2421" data-end="2433"&gt;zephyr.hex&lt;/code&gt; = just your application.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="2461" data-end="2599"&gt;
&lt;p data-start="2463" data-end="2599"&gt;&lt;code data-start="2463" data-end="2475"&gt;merged.hex&lt;/code&gt; (when you had MCUboot enabled) = bootloader + app; don&amp;rsquo;t use that in Path A or you risk overwriting the factory bootloader.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1j8tdmj1m3" data-start="2606" data-end="2671"&gt;Path B &amp;mdash; Switch to &lt;strong data-start="2628" data-end="2639"&gt;MCUboot&lt;/strong&gt; (Zephyr-native boot + recovery)&lt;/h2&gt;
&lt;p data-start="2672" data-end="2775"&gt;If he &lt;strong data-start="2678" data-end="2688"&gt;really&lt;/strong&gt; wants MCUboot (e.g., standardizing across boards), then commit and configure it right:&lt;/p&gt;
&lt;ol data-start="2777" data-end="3861"&gt;
&lt;li data-start="2777" data-end="2826"&gt;
&lt;p data-start="2780" data-end="2826"&gt;Keep &lt;code data-start="2785" data-end="2814"&gt;CONFIG_BOOTLOADER_MCUBOOT=y&lt;/code&gt; in the app.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="2827" data-end="3469"&gt;
&lt;p data-start="2830" data-end="2899"&gt;In &lt;code data-start="2833" data-end="2863"&gt;child_image/mcuboot/prj.conf&lt;/code&gt;, enable a recovery method. Options:&lt;/p&gt;
&lt;ul data-start="2903" data-end="3469"&gt;
&lt;li data-start="2903" data-end="3278"&gt;
&lt;p data-start="2905" data-end="2978"&gt;&lt;strong data-start="2905" data-end="2934"&gt;Pin-based serial recovery&lt;/strong&gt; (handy on dongle&amp;rsquo;s single button, &lt;code data-start="2969" data-end="2976"&gt;P1.06&lt;/code&gt;):&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CONFIG_BOOT_SERIAL=y
CONFIG_BOOT_SERIAL_DETECT_PORT=y
CONFIG_BOOT_SERIAL_DETECT_PIN=1,6      # Port 1, pin 6 = P1.06 (SW1)
CONFIG_BOOT_SERIAL_DETECT_PIN_VAL=0    # Active low when button held
CONFIG_BOOT_SERIAL_DETECT_PIN_PULL_UP=y
CONFIG_SERIAL=y
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong data-start="3284" data-end="3306"&gt;USB DFU in MCUboot&lt;/strong&gt; (if you want host-side dfu-util/USB):&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CONFIG_BOOT_USB_DFU=y
CONFIG_USB_DEVICE_STACK=y
CONFIG_USB_DEVICE_PRODUCT=&amp;quot;MCUboot DFU&amp;quot;
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;3. Build &lt;strong data-start="3479" data-end="3509"&gt;and flash the &lt;code data-start="3495" data-end="3507"&gt;merged.hex&lt;/code&gt;&lt;/strong&gt; (this &lt;em data-start="3516" data-end="3526"&gt;replaces&lt;/em&gt; the factory bootloader with MCUboot).&lt;/p&gt;
&lt;p&gt;4. To &lt;strong data-start="3571" data-end="3593"&gt;auto-enter MCUboot&lt;/strong&gt; from the app, you have two easy options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hold the button at reset (pin detect above), or&lt;/li&gt;
&lt;li&gt;Put the system into recovery via a software trigger supported by your chosen recovery path (for serial, many folks wire a &amp;ldquo;virtual detect&amp;rdquo; pin or just prompt the user).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note: MCUboot doesn&amp;rsquo;t use the factory &lt;code data-start="3903" data-end="3909"&gt;0xB1&lt;/code&gt; GPREGRET convention. That&amp;rsquo;s why mixing A &amp;amp; B is a dead end.&lt;/p&gt;
&lt;p&gt;On the dongle, the DTS/partition keeps a bootloader region at the end. If you build with MCUboot, your &lt;strong data-start="4115" data-end="4127"&gt;app slot&lt;/strong&gt; is different than a bare app. If you&amp;rsquo;re still seeing partitions &amp;ldquo;at the end of Application,&amp;rdquo; that&amp;rsquo;s just the board&amp;rsquo;s partition layout and does not imply an error &amp;mdash; but it&amp;rsquo;s a red flag if you intended to keep the factory bootloader (Path A) while flashing a &lt;code data-start="4385" data-end="4397"&gt;merged.hex&lt;/code&gt; (Path B).&lt;/p&gt;
&lt;p&gt;It all comes down to&amp;nbsp;Do you want to &lt;strong data-start="4501" data-end="4509"&gt;keep&lt;/strong&gt; the factory USB DFU?&lt;br data-start="4530" data-end="4533" /&gt; &amp;rarr; &lt;strong data-start="4537" data-end="4544"&gt;YES&lt;/strong&gt;: Don&amp;rsquo;t enable MCUboot. Use &lt;strong data-start="4572" data-end="4602"&gt;GPREGRET=0xB1 + warm reset&lt;/strong&gt; to auto-enter DFU. Flash &lt;strong data-start="4628" data-end="4640"&gt;app-only&lt;/strong&gt; images (&lt;code data-start="4649" data-end="4661"&gt;zephyr.hex&lt;/code&gt;) via Programmer/DFU.&lt;br data-start="4682" data-end="4685" /&gt; &amp;rarr; &lt;strong data-start="4689" data-end="4695"&gt;NO&lt;/strong&gt;: Enable MCUboot, pick &lt;strong data-start="4718" data-end="4728"&gt;serial&lt;/strong&gt; or &lt;strong data-start="4732" data-end="4743"&gt;USB DFU&lt;/strong&gt; in the child image, and flash &lt;strong data-start="4774" data-end="4788"&gt;merged.hex&lt;/strong&gt; once to install MCUboot. Then use button-detect or MCUboot DFU to recover/upgrade.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;HTH&lt;/p&gt;
&lt;p&gt;GL :-) PJ :v:&lt;/p&gt;
&lt;p&gt;for my solutions, for the &lt;strong data-start="4906" data-end="4929"&gt;nRF52840 USB Dongle&lt;/strong&gt;, stick with &lt;strong data-start="4942" data-end="4952"&gt;Path A&lt;/strong&gt; unless you have a compelling reason to standardize on MCUboot there. The factory DFU is rock solid, and the &lt;strong data-start="5061" data-end="5125"&gt;GPREGRET trick makes &amp;ldquo;enter bootloader&amp;rdquo; 100% software-driven&lt;/strong&gt;&amp;mdash;perfect for remote &amp;ldquo;press a button in the app to put the dongle in DFU mode.&amp;rdquo;&amp;nbsp;&lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f44d.svg" title="Thumbsup"&gt;&amp;#x1f44d;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to automate the entrance in bootloader mode on nRF52840 USB dongle?</title><link>https://devzone.nordicsemi.com/thread/552982?ContentTypeID=1</link><pubDate>Fri, 31 Oct 2025 10:30:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cdac181a-d616-4101-9693-36884d735c6f</guid><dc:creator>Tom Douady</dc:creator><description>&lt;p&gt;Hey,&lt;strong&gt;&lt;br /&gt; &lt;/strong&gt;Thanks for your reply.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the process I&amp;rsquo;m following using the &lt;strong&gt;nRF extension&lt;/strong&gt; in VSCode:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a new application&lt;/li&gt;
&lt;li&gt;Copy a sample&lt;/li&gt;
&lt;li&gt;Search for: &lt;strong&gt;&amp;quot;blinky&amp;quot;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Click on: &lt;strong&gt;&amp;quot;Blinky Sample&amp;quot;&lt;/strong&gt; (&lt;code&gt;zephyr/samples/basic/blinky&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Add at the top of &lt;strong&gt;&lt;code&gt;prj.conf&lt;/code&gt;&lt;/strong&gt;: &lt;br /&gt;&lt;code&gt;CONFIG_BOOTLOADER_MCUBOOT=y&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Create the &lt;strong&gt;&lt;code&gt;child_image/mcuboot/prj.conf&lt;/code&gt;&lt;/strong&gt;&amp;nbsp;as you previously described&lt;/li&gt;
&lt;li&gt;Add a &lt;strong&gt;build configuration&lt;/strong&gt;: select the &lt;code&gt;&lt;strong&gt;nrf52840dongle&lt;/strong&gt;&lt;/code&gt;&lt;strong&gt; target&amp;nbsp;&lt;/strong&gt;(Shall I config something else here ?)&lt;/li&gt;
&lt;li&gt;Generate and build&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now I have two &lt;code&gt;.hex&lt;/code&gt; images generated:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;blinky/build/merge.hex&lt;/code&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;blinky/build/blinky/zephyr/zephyr.hex&lt;/code&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When I open the Programmer tool, the memory layout shows that these files are located at the end of the Application region.&lt;br /&gt;&lt;br /&gt;Am I missing something in the process ?&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Tom.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;img style="max-height:240px;max-width:320px;" alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1761905895858v1.png" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to automate the entrance in bootloader mode on nRF52840 USB dongle?</title><link>https://devzone.nordicsemi.com/thread/552933?ContentTypeID=1</link><pubDate>Thu, 30 Oct 2025 17:57:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:49b162e6-8586-49cc-9ed1-1646ef9f545f</guid><dc:creator>PjGlasso</dc:creator><description>&lt;p&gt;Using the Nrf dongle with any of the example apps, build the bootloader example. The trigger Options are what you might be missing. I use the NRF_SDK with Visual Studio also .&lt;/p&gt;
&lt;p&gt;Make changes to the PRJ.conf file and try that.&lt;/p&gt;
&lt;p&gt;I would use option 3, it will just wait forever.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;HTH&lt;/p&gt;
&lt;p&gt;GL :-) PJ :v:&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to automate the entrance in bootloader mode on nRF52840 USB dongle?</title><link>https://devzone.nordicsemi.com/thread/552804?ContentTypeID=1</link><pubDate>Wed, 29 Oct 2025 16:09:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5e33f16d-cc29-4653-a21f-62a71fb3a42d</guid><dc:creator>Tom Douady</dc:creator><description>&lt;p&gt;Thanks for the detailed explanation. I&amp;rsquo;d like to implement &lt;strong&gt;option 1&lt;/strong&gt; (DFU window at boot), but I&amp;rsquo;m not sure which base project you&amp;#39;re starting from.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t have a specific application to modify&amp;mdash;my goal is to build a &lt;strong&gt;bootloader-only image&lt;/strong&gt;, since the application is already flashed and cannot be changed. It resides at address range &lt;code&gt;0x00001000 - 0x000557F7&lt;/code&gt;, so I assume the second image (to update the app) should be placed at &lt;code&gt;0x00000000 - 0x00001000&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Also, I&amp;rsquo;ve seen two ways to create bootloaders:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Using the &lt;strong&gt;nRF5 SDK&lt;/strong&gt; from Nordic: nRF5 SDK (in maintenance mode). I saw a example called dfu/open-bootloader/pca10059_usb that seems to do the thing I want. But when I&amp;#39;m flashing the bootloader and reset my dongle it seems to jump on my application without waiting in DFU mode.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Generating projects from samples via the &lt;strong&gt;nRF Connect for VSCode extension&lt;/strong&gt; (with the nRF Connect SDK)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Could you clarify what&amp;#39;s the base project you tell me to modify ?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to automate the entrance in bootloader mode on nRF52840 USB dongle?</title><link>https://devzone.nordicsemi.com/thread/551051?ContentTypeID=1</link><pubDate>Fri, 10 Oct 2025 01:31:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b998bb25-36f3-444f-b52a-64b98c7b88e2</guid><dc:creator>PjGlasso</dc:creator><description>&lt;p&gt;Hi there,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;AFAIK, there are 3 , YMMV&amp;nbsp;&lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f91e_2D00_1f3fc.svg" title="Fingers crossed tone2"&gt;&amp;#x1f91e;&amp;#x1f3fc;&lt;/span&gt;&lt;/p&gt;
&lt;p data-start="0" data-end="82"&gt;Totally doable&amp;mdash;even if you can&amp;rsquo;t touch the app. You just make MCUboot do the work.&lt;/p&gt;
&lt;p data-start="84" data-end="152"&gt;Here are the &lt;strong data-start="97" data-end="116"&gt;bootloader-only&lt;/strong&gt; ways to enter DFU (no app changes):&lt;/p&gt;
&lt;p data-start="84" data-end="152"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;1)&lt;/strong&gt; &amp;ldquo;Always give me a DFU window&amp;rdquo; (most common)&lt;/span&gt;&lt;/p&gt;
&lt;p data-start="203" data-end="302"&gt;MCUboot waits at boot for serial/USB DFU for N milliseconds; if nothing connects, it boots the app.&lt;/p&gt;
&lt;p data-start="203" data-end="302"&gt;In your &lt;strong data-start="314" data-end="329"&gt;application&lt;/strong&gt; &lt;code data-start="330" data-end="340"&gt;prj.conf&lt;/code&gt;:&lt;/p&gt;
&lt;p data-start="203" data-end="302"&gt;CONFIG_BOOTLOADER_MCUBOOT=y&lt;/p&gt;
&lt;ul data-start="378" data-end="479"&gt;
&lt;li data-start="378" data-end="479"&gt;
&lt;p data-start="380" data-end="479"&gt;Create &lt;strong data-start="387" data-end="419"&gt;child_image/mcuboot/prj.conf&lt;/strong&gt; (this configures the bootloader image that sysbuild makes):&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"&gt;
&lt;div class="sticky top-9"&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;pre class="ui-code" data-mode="text"&gt;# Turn on MCUboot serial recovery
CONFIG_BOOT_SERIAL=y

# Choose one transport:
CONFIG_BOOT_SERIAL_UART=y         # DFU over UART
# or
CONFIG_BOOT_SERIAL_CDC_ACM=y      # DFU over USB CDC (shows up as a COM port)

# Enter recovery automatically at boot and wait for host
CONFIG_BOOT_SERIAL_WAIT_FOR_DFU=y
CONFIG_BOOT_SERIAL_WAIT_FOR_DFU_TIMEOUT=2000   # ms; 0 = wait forever
# Optional: don’t require any detect pin
CONFIG_BOOT_SERIAL_DETECT_NONE=y
&lt;/pre&gt;&lt;/div&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;/div&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;
&lt;p data-start="938" data-end="1007"&gt;&lt;strong data-start="938" data-end="945"&gt;UX:&lt;/strong&gt; Power/reset the board &amp;rarr; bootloader opens a ~2s DFU window &amp;rarr;&lt;/p&gt;
&lt;ul data-start="1008" data-end="1092"&gt;
&lt;li data-start="1008" data-end="1052"&gt;
&lt;p data-start="1010" data-end="1052"&gt;If you start an upload, it stays in DFU.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="1053" data-end="1092"&gt;If not, it boots the third-party app.|
&lt;p data-start="1055" data-end="1092"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start="1055" data-end="1092"&gt;&lt;/p&gt;
&lt;p data-start="1055" data-end="1092"&gt;&lt;strong&gt;2)&lt;/strong&gt; Hardware strap (no button on the device, but you can pull a pin)&lt;/p&gt;
&lt;p data-start="1476" data-end="1537"&gt;If you can wire a pin at reset (e.g., test pad or baseboard):&lt;/p&gt;
&lt;p data-start="1539" data-end="1575"&gt;In &lt;strong data-start="1542" data-end="1574"&gt;child_image/mcuboot/prj.conf&lt;/strong&gt;:&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"&gt;
&lt;div class="sticky top-9"&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;pre class="ui-code" data-mode="text"&gt;CONFIG_BOOT_SERIAL=y
CONFIG_BOOT_SERIAL_CDC_ACM=y     # or _UART
CONFIG_BOOT_SERIAL_WAIT_FOR_DFU=y
CONFIG_BOOT_SERIAL_DETECT_PIN=y
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&amp;hellip;and in &lt;strong data-start="1723" data-end="1758"&gt;child_image/mcuboot/overlay.dts&lt;/strong&gt; set which GPIO = &amp;ldquo;enter DFU when held&amp;rdquo; (active level per your wiring). That way you can clip a probe or jig the pin at power-on to force DFU. App still untouched.&lt;/div&gt;
&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;/div&gt;
&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;strong&gt;3)&lt;/strong&gt; &amp;ldquo;Forever DFU&amp;rdquo; mode for bring-up&lt;/div&gt;
&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;
&lt;p data-start="1960" data-end="1975"&gt;Same as #1 but:&lt;/p&gt;
&lt;p data-start="1960" data-end="1975"&gt;&lt;pre class="ui-code" data-mode="text"&gt;CONFIG_BOOT_SERIAL_WAIT_FOR_DFU_TIMEOUT=0
&lt;/pre&gt;&lt;br /&gt;&lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f448.svg" title="Point left"&gt;&amp;#x1f448;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f60e.svg" title="Sunglasses"&gt;&amp;#x1f60e;&lt;/span&gt;&lt;/p&gt;
&lt;p data-start="1960" data-end="1975"&gt;Bootloader &lt;em data-start="2037" data-end="2045"&gt;always&lt;/em&gt; sits in DFU until you upload something. Useful during recovery; change back once you&amp;rsquo;re done.&lt;/p&gt;
&lt;p data-start="1960" data-end="1975"&gt;if you can&amp;#39;t put mcumgr in with app then the last option might work or a Strapping pin (something on the board that needs pulled high on boot or always could be useful to connect with.&lt;/p&gt;
&lt;p data-start="1960" data-end="1975"&gt;HTH&lt;/p&gt;
&lt;p data-start="1960" data-end="1975"&gt;GL :-) PJ :v:&lt;/p&gt;
&lt;p data-start="1960" data-end="1975"&gt;Good topic&amp;nbsp;&lt;/p&gt;
&lt;p data-start="1960" data-end="1975"&gt;&lt;/p&gt;
&lt;p data-start="1960" data-end="1975"&gt;From the trigger lib doc.&lt;/p&gt;
&lt;div class="whichnRF nRF52840"&gt;&lt;span&gt;This information applies to the&amp;nbsp;&lt;b&gt;nRF52840 SoC&lt;/b&gt;&amp;nbsp;only.&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;When the trigger library is added to an application, it allows a connected USB host to remotely tell the app to reboot into the bootloader to allow it to be updated via DFU. When asked to enter bootloader mode, it pulls its own reset pin using the GPIO pin&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;BSP_SELF_PINRESET_PIN&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(&lt;strong&gt;by default, only available on PCA10059&lt;/strong&gt;). As a consequence, the library requires the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a GPIO pin connected to the RESET pin which is true for the PCA10059 dongle,&lt;/li&gt;
&lt;li&gt;a bootloader that enters DFU mode on pin reset.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The experimental Open USB bootloader example is configured in this way, and newer versions of the nRF Connect PC app are equipped to communicate with the Trigger module.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to automate the entrance in bootloader mode on nRF52840 USB dongle?</title><link>https://devzone.nordicsemi.com/thread/550042?ContentTypeID=1</link><pubDate>Mon, 29 Sep 2025 13:38:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1412d232-ba93-4e0c-9880-ac74aa98d86a</guid><dc:creator>PaKa</dc:creator><description>&lt;p&gt;This is what the DFU trigger library is made to do so you should probably look into why it doesn&amp;#39;t work. Did you integrate it into the application code you built as that is required for it to work. This is the solution used for all the Nordic FW images used by the tools and it works like a charm.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to automate the entrance in bootloader mode on nRF52840 USB dongle?</title><link>https://devzone.nordicsemi.com/thread/549997?ContentTypeID=1</link><pubDate>Mon, 29 Sep 2025 10:42:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b4756518-e2e7-4536-908a-756bb0576a4b</guid><dc:creator>DanielNG</dc:creator><description>&lt;p&gt;Hi,&amp;nbsp;&lt;br /&gt;It doesn&amp;#39;t seem like there&amp;#39;s any software implementation that would satisfy your constraints. I think your best solution is some kind of HW fix.&lt;br /&gt;&lt;br /&gt;Best,&lt;br /&gt;Daniel&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to automate the entrance in bootloader mode on nRF52840 USB dongle?</title><link>https://devzone.nordicsemi.com/thread/549906?ContentTypeID=1</link><pubDate>Fri, 26 Sep 2025 12:49:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:aa1baafe-89c2-4055-bc63-9d9c61181982</guid><dc:creator>Robin D.</dc:creator><description>&lt;p&gt;Hello &lt;a href="https://devzone.nordicsemi.com/members/danielng"&gt;DanielNG&lt;/a&gt;&amp;nbsp;,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m working with Cedric on Thread activities.&lt;/p&gt;
&lt;p&gt;Just to make sure we have the same understanding of the issue we are encountering, here is our main constraints : we want to be able to upgrade the dongle&amp;#39;s firmware without any physical access to the dongle and without making any modification to the firmware we are flashing on the dongle (we use the firmware provided with the Thread Test Harness so we can&amp;#39;t modify it).&lt;/p&gt;
&lt;p&gt;For now, all the potential solutions I found (including the one you proposed) require either to plug an additionnal debug probe on the dongle or to edit the firmware to flash on the dongle (let me know if I&amp;#39;m wrong and your solution does not require any of these two actions).&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Robin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to automate the entrance in bootloader mode on nRF52840 USB dongle?</title><link>https://devzone.nordicsemi.com/thread/549594?ContentTypeID=1</link><pubDate>Tue, 23 Sep 2025 15:26:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:be9eac71-3d99-4466-8cc5-05490923511a</guid><dc:creator>Cedric ABGRALL</dc:creator><description>&lt;p&gt;Dear Daniel&lt;br /&gt;Please let me double check with my colleagues if your proposal solves their issue. I will come back to you then.&lt;/p&gt;
&lt;p&gt;Warm regards&lt;/p&gt;
&lt;p&gt;C&amp;eacute;dric&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to automate the entrance in bootloader mode on nRF52840 USB dongle?</title><link>https://devzone.nordicsemi.com/thread/549562?ContentTypeID=1</link><pubDate>Tue, 23 Sep 2025 12:27:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:56d9c1c1-d226-4aea-8fc7-1c355d32cba3</guid><dc:creator>DanielNG</dc:creator><description>&lt;p&gt;You can switch to MCUboot as the bootloader. Please refer to this &lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/zephyr/boards/nordic/nrf52840dongle/doc/index.html#option_2_using_mcuboot_in_serial_recovery_mode"&gt;documentation&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Instead of using a button&amp;nbsp;&lt;span&gt;MCUboot can be configured to wait for a limited time at startup to check if DFU is invoked through an MCUmgr command.&lt;br /&gt;&lt;br /&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/6232.pastedimage1758630421183v2.png" alt=" " /&gt;&lt;br /&gt; &lt;br /&gt;Please refer to&amp;nbsp;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/app_dev/bootloaders_dfu/mcuboot_serial_recovery.html"&gt;MCUboot serial recovery&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>