<?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>Unable to swap DFU image in dual-slot MCUboot setup on nRF52832 (bootable: false)</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/121455/unable-to-swap-dfu-image-in-dual-slot-mcuboot-setup-on-nrf52832-bootable-false</link><description>Title: Unable to swap DFU image in dual-slot MCUboot setup on nRF52832 (bootable: false) 
 Environment: 
 
 
 Board: nRF52 DK (nrf52dk_nrf52832) 
 
 
 MCUboot: v1.9.0 (built via Zephyr 3.5.99, NCS v2.5) 
 
 
 Toolchain: Zephyr SDK 0.16.5 
 
 
 West: 1</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 20 May 2025 06:33:25 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/121455/unable-to-swap-dfu-image-in-dual-slot-mcuboot-setup-on-nrf52832-bootable-false" /><item><title>RE: Unable to swap DFU image in dual-slot MCUboot setup on nRF52832 (bootable: false)</title><link>https://devzone.nordicsemi.com/thread/536080?ContentTypeID=1</link><pubDate>Tue, 20 May 2025 06:33:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bfb0a811-67c3-4b0f-b123-43ffd5eda3e8</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi Gabriel,&lt;/p&gt;
&lt;p&gt;Sorry, I thought you were still trying to perform DFU within the bootloader (serial recovery), but you clearly stated in your previous response that you were attempting it from the application now. From the projec configuration you posted it appears you&amp;#39;ve based the application on the peripheral_uart sample which uses the UART interface for serial port emulation. The problem with is that the 52832 only has one UART instance in HW which can&amp;#39;t be shared between the app and mcumgr. Is it an alternative to perform DFU via BLE instead?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unable to swap DFU image in dual-slot MCUboot setup on nRF52832 (bootable: false)</title><link>https://devzone.nordicsemi.com/thread/536056?ContentTypeID=1</link><pubDate>Mon, 19 May 2025 23:26:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8e77448d-71ef-40d6-87cf-78dca979b394</guid><dc:creator>Gabriel Cohen</dc:creator><description>&lt;p&gt;Hi Vidar,&lt;/p&gt;
&lt;p&gt;I am trying to do Section 5 of those instructions (DFU over UART from the app):&lt;/p&gt;
&lt;p&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/pastedimage1747696902244v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;As you can see, I am supposed to be able to do DFU without pressing any buttons/entering bootloader mode. However, this is not the case. For my application, I cannot use a single application slot because in the case of an interrupted DFU, the original firmware will be lost. Thus, it seems required that I do DFU over UART from the app (with CONFIG_SINGLE_APPLICATION_SLOT=n).&lt;/p&gt;
&lt;p&gt;With this said, do you have any idea of what my issue could be?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks again,&lt;/p&gt;
&lt;p&gt;Gabriel&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unable to swap DFU image in dual-slot MCUboot setup on nRF52832 (bootable: false)</title><link>https://devzone.nordicsemi.com/thread/535999?ContentTypeID=1</link><pubDate>Mon, 19 May 2025 13:05:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ed81d167-2fcc-48b5-b67a-978ffa524277</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi Gabriel,&lt;/p&gt;
&lt;p&gt;It sounds like maybe the board was not in &amp;quot;serial recovery&amp;quot; command when you sent the command? Button 1 on the DK must be pressed on startup to enter serial recover mode.&lt;/p&gt;
&lt;p&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/pastedimage1747659939713v3.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&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;https://academy.nordicsemi.com/courses/nrf-connect-sdk-intermediate/lessons/lesson-9-bootloaders-and-dfu-fota/topic/exercise-1-dfu-over-uart/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Vidar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unable to swap DFU image in dual-slot MCUboot setup on nRF52832 (bootable: false)</title><link>https://devzone.nordicsemi.com/thread/535842?ContentTypeID=1</link><pubDate>Fri, 16 May 2025 20:46:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:51b1e894-5a49-4386-98b1-036cf2c79f9d</guid><dc:creator>Gabriel Cohen</dc:creator><description>&lt;p&gt;Hi Vidar,&lt;br /&gt;&lt;br /&gt;Thank you for your response. I followed all the instructions at the link you provided me with for DFU via the app, but when I try to run the &amp;#39;mcumgr ... image list&amp;#39;, I get an NMP timeout, so I&amp;#39;m unable to test or confirm the new image. I am also unable to successfully run &amp;#39;mcumgr ... image upload ...&amp;#39;. Below is my prj.conf:&lt;br /&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;# Enable the UART driver
CONFIG_UART_ASYNC_API=y
CONFIG_NRFX_UARTE0=y
CONFIG_SERIAL=y
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y

# Enable Kernel Synchronization Features (Includes k_event)
CONFIG_EVENTS=y

# Enable the BLE stack with GATT Client configuration
CONFIG_BT=y
CONFIG_BT_CENTRAL=y
CONFIG_BT_FILTER_ACCEPT_LIST=y
CONFIG_BT_GATT_CLIENT=y
CONFIG_BT_AUTO_PHY_UPDATE=n

CONFIG_BT_MAX_PAIRED=10
CONFIG_BT_MAX_CONN=10

# Enable larger ATT MTU
CONFIG_BT_ATT_PREPARE_COUNT=5
CONFIG_BT_L2CAP_TX_MTU=247
CONFIG_BT_BUF_ACL_RX_SIZE=251
CONFIG_BT_BUF_ACL_TX_SIZE=251
CONFIG_BT_ATT_ENFORCE_FLOW=y

# Configure maximum supported MTU
CONFIG_BT_L2CAP_TX_MTU=247
CONFIG_BT_GATT_CLIENT=y
CONFIG_BT_GATT_DYNAMIC_DB=y
CONFIG_BT_GATT_AUTO_DISCOVER_CCC=y

CONFIG_BT_GATT_DM_MAX_ATTRS=10

# Number of concurrent GATT procedures
CONFIG_BT_CONN_TX_MAX=7
CONFIG_BT_BUF_ACL_TX_COUNT=7
CONFIG_BT_BUF_ACL_RX_COUNT=7

CONFIG_BT_GATT_DM=y
CONFIG_BT_CONN_CTX=y
CONFIG_HEAP_MEM_POOL_SIZE=5120

# Config logger
CONFIG_LOG=n
CONFIG_USE_SEGGER_RTT=n
CONFIG_LOG_BACKEND_RTT=n
CONFIG_LOG_BACKEND_UART=n
CONFIG_LOG_PRINTK=n

CONFIG_UART_ASYNC_ADAPTER=y
CONFIG_UART_INTERRUPT_DRIVEN=y
CONFIG_UART_USE_RUNTIME_CONFIGURE=y

CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_MPU_ALLOW_FLASH_WRITE=y
CONFIG_SOC_FLASH_NRF_EMULATE_ONE_BYTE_WRITE_ACCESS=y

CONFIG_APP_LOG_LEVEL=4
CONFIG_ASSERT=y

CONFIG_BT_GATT_DM_DATA_PRINT=y

# MCU BOOT config
CONFIG_BOOTLOADER_MCUBOOT=y

# Enable MCUMGR 
CONFIG_MCUMGR=y
CONFIG_MCUMGR_GRP_OS=y
CONFIG_MCUMGR_GRP_IMG=y
CONFIG_MCUMGR_TRANSPORT_UART=y
CONFIG_NET_BUF=y
CONFIG_ZCBOR=y
CONFIG_CRC=y
CONFIG_IMG_MANAGER=y
CONFIG_STREAM_FLASH=y
CONFIG_FLASH_MAP=y 
CONFIG_BASE64=y

CONFIG_GWB_HARDWARE=y&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Do any of my configs interfere with the ones needed for DFU over UART? I can confirm that setting&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_UART_CONSOLE&lt;/span&gt;&lt;span&gt;=n in prj.conf does not fix the problem (it is however set to &amp;#39;n&amp;#39; in mcuboot.conf). If you do not see any issue here, do you have any idea as to what could be causing the issue? Thank you in advance.&lt;br /&gt;&lt;br /&gt;Best regards,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Gabriel&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unable to swap DFU image in dual-slot MCUboot setup on nRF52832 (bootable: false)</title><link>https://devzone.nordicsemi.com/thread/535653?ContentTypeID=1</link><pubDate>Thu, 15 May 2025 15:37:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:23d526ca-a5b3-4238-ac34-f29f6a770012</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Only a limited subset of the mcumgr commands are implemented in serial recover mode (&lt;a href="https://docs.mcuboot.com/serial_recovery.html)"&gt;https://docs.mcuboot.com/serial_recovery.html)&lt;/a&gt;&amp;nbsp;and the update is expected to be uploaded directly to the primary slot.&lt;/p&gt;
&lt;p&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/pastedimage1747322882429v1.png" alt=" " /&gt;&lt;/p&gt;
[quote user=""]Both slots show bootable=false[/quote]
&lt;p&gt;This seems to be a limitation when using serial recovery mode. The flag is always shown as false.&lt;/p&gt;
[quote user=""]Adding a top-level &lt;code&gt;VERSION&lt;/code&gt; file[/quote]
&lt;p&gt;Support for using VERSION filer was added in a later SDK release. In this version you can use the&amp;nbsp;CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION symbol to specify the version to sign the image with. E.g.,&amp;nbsp;&lt;span&gt;CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&amp;quot;2.0.0&amp;quot;.&lt;/span&gt;&lt;/p&gt;
[quote user=""]&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;code&gt;mcumgr image test &amp;lt;hash&amp;gt;&lt;/code&gt; should return success and mark the image pending swap&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;On reboot, MCUboot should perform swap/move and run the new firmware&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;[/quote]
&lt;p&gt;Swap and marking the image as pending is only supported when doing DFU via the app (&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;https://academy.nordicsemi.com/courses/nrf-connect-sdk-intermediate/lessons/lesson-9-bootloaders-and-dfu-fota/topic/exercise-1-dfu-over-uart/&lt;/a&gt;).&lt;/p&gt;
[quote user=""]&lt;ul&gt;&lt;li&gt;&lt;p&gt;Why does MCUboot list&amp;nbsp;&lt;code&gt;bootable: false&lt;/code&gt; despite signing with the default MCUBoot key?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Why does &lt;code&gt;image test&lt;/code&gt; return &lt;code&gt;Error&amp;nbsp;8&lt;/code&gt;?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;What is missing in my NCS/Zephyr build to produce a bootable image?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Are there any known issues or patches for Zephyr&amp;nbsp;3.5.99 mcuboot on nRF52?&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;[/quote]
&lt;p&gt;1. The flag is always shown as false in serial recovery mode&lt;/p&gt;
&lt;p&gt;2. 8 (&amp;#39;MGMT_ERR_ENOTSUP&amp;#39;) indicates that the command is not supported/implemented.&lt;/p&gt;
&lt;p&gt;3. Does the bootloader not boot the main app on normal boot when you are not entering serial recovery mode?&lt;/p&gt;
&lt;p&gt;4. I can&amp;#39;t think of anything that should be relevant. I also tried to test it here now to be sure, but it worked on my end. Difference is that I uploaded the image directly to the primary slot (-n 1).&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/hello_5F00_world_5F00_serial_5F00_recovery.zip"&gt;devzone.nordicsemi.com/.../hello_5F00_world_5F00_serial_5F00_recovery.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Vidar&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>