<?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>Timeout exit from the boot loader</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/119954/timeout-exit-from-the-boot-loader</link><description>I am developing an application that uses NCS2.8.0. 
 For FW updates, the nRF52833 USB ACM bootloader is enabled. 
 However, there are some problem. 
 
 My device has a battery but no reset button, so the application cannot start unless I reset it with</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 19 Jan 2026 08:51:46 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/119954/timeout-exit-from-the-boot-loader" /><item><title>RE: Timeout exit from the boot loader</title><link>https://devzone.nordicsemi.com/thread/558965?ContentTypeID=1</link><pubDate>Mon, 19 Jan 2026 08:51:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c647452e-c1e6-4286-8337-6e68122060b9</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;I agree with your points. In case you didn&amp;#39;t see it, I updated my previous about WDT setup in bootloader already being supported in upstream mcuboot which&amp;nbsp;should be included in our&amp;nbsp;next SDK release.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timeout exit from the boot loader</title><link>https://devzone.nordicsemi.com/thread/558962?ContentTypeID=1</link><pubDate>Mon, 19 Jan 2026 08:45:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f97bec22-589e-4968-bd5b-55fe42f6a975</guid><dc:creator>nick_bike</dc:creator><description>&lt;p&gt;The scenario is where the device is in the hands of an end customer and they have limited ability to troubleshoot or do anything technical. When enough devices are manufactured, all possible error states do occur.&lt;/p&gt;
&lt;p&gt;If the end customer has managed to get the device into a dead-end state (e.g. reset while holding the recovery button, with a USB plugged in, which has been observed to half-trigger the DFU.) it needs to recover in the most sensible way.&lt;/p&gt;
&lt;p&gt;I think being able to enable the watchdog from mcuboot Kconfig flags (and set the timeout) is the most sensible approach that solves requirements for a number of different cases, and also being able to choose whether mcuboot feeds the watchdog, or not. This would allow the device to reset if mcuboot ended up waiting for DFU bytes forever. It also protects against other unforseen future niche bugs with mcuboot.&lt;/p&gt;
&lt;p&gt;EDIT: Noted that a WD update has been created. We&amp;#39;ll integrate this once it reaches the nrf SDK.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timeout exit from the boot loader</title><link>https://devzone.nordicsemi.com/thread/558959?ContentTypeID=1</link><pubDate>Mon, 19 Jan 2026 08:31:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:da6c983d-75d0-4277-9871-77509823f286</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;&lt;span&gt;Thank you for the update. I will report this internally for review and to (re)consider what the expected behavior should be. I think it makes sense to fall back to the application, or at least provide the option to do so, even in cases where serial recovery mode has been entered but then stopped (for example with an inactivity timer). Allowing the WD to be started from the bootloader could also be something to&amp;nbsp;consider.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;EDIT: I see someone already contributed a solution for setting up the WD in the bootloader here:&amp;nbsp;&lt;a href="https://github.com/mcu-tools/mcuboot/pull/2566/commits"&gt;https://github.com/mcu-tools/mcuboot/pull/2566/commits&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timeout exit from the boot loader</title><link>https://devzone.nordicsemi.com/thread/558926?ContentTypeID=1</link><pubDate>Sat, 17 Jan 2026 09:28:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:35b04156-67d5-4826-93df-db7dd72fad23</guid><dc:creator>nick_bike</dc:creator><description>&lt;p&gt;I have reviewed the main.c code and it appears (interestingly) that&amp;nbsp;&lt;span&gt;CONFIG_BOOT_USB_DFU_WAIT is being used in two ways.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;1. If&amp;nbsp;CONFIG_BOOT_USB_DFU_GPIO=n&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Pin DFU is not used - so, enters DFU mode for the duration of CONFIG_BOOT_USB_DFU_WAIT_DELAY_MS.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;2. If&amp;nbsp;&lt;/span&gt;&lt;span&gt;CONFIG_BOOT_USB_DFU_GPIO=y along with&lt;/span&gt;&lt;span&gt;&amp;nbsp;CONFIG_BOOT_USB_DFU_WAIT=y&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;mcuboot does NOT enter DFU automatically. The&amp;nbsp;CONFIG_BOOT_USB_DFU_GPIO rule changes the operation of&amp;nbsp;CONFIG_BOOT_USB_DFU_WAIT. DFU is only entered if the DFU pin is active. DFU times out after&amp;nbsp;CONFIG_BOOT_USB_DFU_WAIT_DELAY_MS.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;My observation is that DFU boot never exits if DFU has been started in any way, including error bytes being written into the serial RX. I will look ito enabling the watchdog in mcuboot.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timeout exit from the boot loader</title><link>https://devzone.nordicsemi.com/thread/558512?ContentTypeID=1</link><pubDate>Mon, 12 Jan 2026 13:50:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:18709b1b-323c-4791-82d8-de69f7e60aaa</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Looking at this commit it looks like it should be possible already to have it timeout automatically:&amp;nbsp;&lt;a href="https://github.com/mcu-tools/mcuboot/pull/2277/commits/ab2d7bc44f3b658f870f2a93bef58e6f59bf6872"&gt;https://github.com/mcu-tools/mcuboot/pull/2277/commits/ab2d7bc44f3b658f870f2a93bef58e6f59bf6872&lt;/a&gt;&amp;nbsp;if you use&amp;nbsp;CONFIG_BOOT_USB_DFU_GPIO together with&amp;nbsp;CONFIG_BOOT_USB_DFU_WAIT. Are you using CONFIG_BOOT_USB_DFU_GPIO as your entry method?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timeout exit from the boot loader</title><link>https://devzone.nordicsemi.com/thread/558441?ContentTypeID=1</link><pubDate>Sat, 10 Jan 2026 19:43:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ea2d384c-82a6-4e72-80ee-15f2ca20b122</guid><dc:creator>nick_bike</dc:creator><description>&lt;p&gt;I&amp;#39;d like to +1 this functionality. We have a product with a permanently installed battery. We want mcuboot serial recovery via USB (ACM) when a button is pushed;but, if a user accidentally presses that button on turn on, mcuboot sits there forever waiting for a command. We&amp;#39;re up for creative ideas, such as having a global watchdog of maybe 2 minutes, and not feeding the watchdog from mcuboot - which in our understanding would force a reboot and allow up to 2 minutes for a device recovery, which seems sufficient.&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timeout exit from the boot loader</title><link>https://devzone.nordicsemi.com/thread/530366?ContentTypeID=1</link><pubDate>Thu, 03 Apr 2025 06:49:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:25d9b53e-5ea9-44a9-a3f8-8bdc411ecbb3</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Possible options that come to mind:&lt;/p&gt;
&lt;p&gt;1. Create a patch file that you apply that you and your coworkers can&amp;nbsp;apply to the SDK during installation&lt;/p&gt;
&lt;p&gt;2. Submit a PR to propose your change at&amp;nbsp;&lt;a href="https://github.com/mcu-tools/mcuboot"&gt;https://github.com/mcu-tools/mcuboot&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;3. Create a &lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/app_dev/create_application.html#workspace_application"&gt;workspace application&lt;/a&gt;&amp;nbsp;that includes a fork of the&amp;nbsp;&lt;a href="https://github.com/nrfconnect/sdk-mcuboot"&gt;https://github.com/nrfconnect/sdk-mcuboot&lt;/a&gt;&amp;nbsp;repository (see &lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/dev_model_and_contributions/managing_code.html"&gt;Forking a repository of the nRF Connect SDK&lt;/a&gt;).&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timeout exit from the boot loader</title><link>https://devzone.nordicsemi.com/thread/530183?ContentTypeID=1</link><pubDate>Wed, 02 Apr 2025 09:29:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:70b23479-7165-493a-b2d5-29c4d19fb69e</guid><dc:creator>DX_HK</dc:creator><description>&lt;p&gt;Thank you. I have performed a test implementation and it is working properly.&lt;/p&gt;
&lt;p&gt;This bootloader timeout feature seems more commonly needed.&lt;br /&gt;This time, I customized the bootloader, but customization by general users is not a good thing.&lt;br /&gt;I think such basic functions should be selectable without modifying the code.&lt;/p&gt;
&lt;p&gt;What should we do if multiple people are developing this custom bootloader?&lt;br /&gt;Specifically, there are several engineers in the company who develop using Zephyr, and the bootloader should be common, so this change should be synchronized via git (github).&lt;/p&gt;
&lt;p&gt;For example, would it be possible for us to create a fork of NCS and use that instead of the nordic repository?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timeout exit from the boot loader</title><link>https://devzone.nordicsemi.com/thread/529993?ContentTypeID=1</link><pubDate>Tue, 01 Apr 2025 12:22:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7396b4e4-e1fa-4982-9a8b-60c4de57d6b4</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;I would start by just&amp;nbsp;making changes directly to the main.c file&amp;nbsp;for the bootloader&amp;nbsp;in the SDK tree /v2.8.0/bootloader/mcuboot/boot/zephyr/ to verify that your changes work. You can then decide how you want to&amp;nbsp;include these changes into your project setup.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timeout exit from the boot loader</title><link>https://devzone.nordicsemi.com/thread/529962?ContentTypeID=1</link><pubDate>Tue, 01 Apr 2025 11:14:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:31a29303-11a8-41bc-b8ba-ecd2037d3b83</guid><dc:creator>DX_HK</dc:creator><description>&lt;p&gt;The bootloader is provided by NCS.&lt;br /&gt;I don&amp;#39;t think it&amp;#39;s that difficult to customize the code, &lt;br /&gt;but if I want to customize NCS, how should I change it?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timeout exit from the boot loader</title><link>https://devzone.nordicsemi.com/thread/529287?ContentTypeID=1</link><pubDate>Thu, 27 Mar 2025 12:42:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:075f41e5-43d8-46cd-869c-ca74b7dd0e0d</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;It is possible, but this is also something that will require customization of the bootloader.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timeout exit from the boot loader</title><link>https://devzone.nordicsemi.com/thread/529204?ContentTypeID=1</link><pubDate>Thu, 27 Mar 2025 07:06:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ba880f99-7546-4d8d-8785-489784b56e48</guid><dc:creator>DX_HK</dc:creator><description>&lt;p&gt;&lt;strong&gt;Is there a way to exit mcuboot using a button (not the reset button)?&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timeout exit from the boot loader</title><link>https://devzone.nordicsemi.com/thread/529191?ContentTypeID=1</link><pubDate>Thu, 27 Mar 2025 06:07:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2e592999-e2a6-4d96-a544-9d2857afa4b2</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;CONFIG_BOOT_SERIAL_WAIT_FOR_DFU_TIMEOUT only works in conjunction with CONFIG_BOOT_SERIAL_WAIT_FOR_DFU. If you want the same timeout for other entry methods you will need to modify the bootloader.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timeout exit from the boot loader</title><link>https://devzone.nordicsemi.com/thread/528987?ContentTypeID=1</link><pubDate>Wed, 26 Mar 2025 08:48:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f7966442-33db-4078-9329-4a322d58aa1e</guid><dc:creator>DX_HK</dc:creator><description>&lt;p&gt;After the bootloader starts, if no operations are performed for, say, one minute, is it possible to start an application?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timeout exit from the boot loader</title><link>https://devzone.nordicsemi.com/thread/528329?ContentTypeID=1</link><pubDate>Fri, 21 Mar 2025 08:10:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:532bc671-7e02-4050-8392-447322eb4c70</guid><dc:creator>DX_HK</dc:creator><description>&lt;p&gt;The bootloader is starting fine.&lt;/p&gt;
&lt;p&gt;If no bootloader operation is performed by mcumgr for a certain period of time, I want to terminate the bootloader and start an application.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timeout exit from the boot loader</title><link>https://devzone.nordicsemi.com/thread/528323?ContentTypeID=1</link><pubDate>Fri, 21 Mar 2025 07:45:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1590cfdd-92a0-4ac2-ac94-05384c826d3d</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Then you need to select CONFIG_BOOT_SERIAL_BOOT_MODE and CONFIG_RETENTION_BOOT_MODE&lt;/p&gt;
&lt;p&gt;instead of CONFIG_BOOT_SERIAL_WAIT_FOR_DFU in your bootloader as explained here:&amp;nbsp;&lt;a href="https://docs.zephyrproject.org/latest/services/retention/index.html#boot-mode"&gt;https://docs.zephyrproject.org/latest/services/retention/index.html#boot-mode&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The bootloader is always executed first in the boot sequence, but bootmode_set() can be used to signal to the bootloader on next boot whether it should enter serial recovery (DFU) mode or proceed to boot the application.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timeout exit from the boot loader</title><link>https://devzone.nordicsemi.com/thread/528318?ContentTypeID=1</link><pubDate>Fri, 21 Mar 2025 07:02:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9bde8ebf-e595-46cb-b601-e22dc6ac3a57</guid><dc:creator>DX_HK</dc:creator><description>&lt;p&gt;No, I don&amp;#39;t want the bootloader to start during normal boot.&lt;/p&gt;
&lt;p&gt;In other words, the bootloader will only start with&lt;br /&gt;&lt;span&gt;bootmode_set&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;BOOT_MODE_TYPE_BOOTLOADER&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timeout exit from the boot loader</title><link>https://devzone.nordicsemi.com/thread/528314?ContentTypeID=1</link><pubDate>Fri, 21 Mar 2025 06:31:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e4f915e7-28ca-469c-a9b2-b2fde5bc3bca</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Please correct me if I&amp;#39;m wrong, but is my understanding correct that you&amp;#39;re fine with the bootloader always&amp;nbsp;enter serial recovery mode on startup, but you prefer not to expose&amp;nbsp;any mcumgr commands in the application?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Vidar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>