<?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>DFU Issue on NCS 2.6.1: First OTA Succeeds, Subsequent Attempts Fail with &amp;#39;No Free Slot to Place the Image&amp;#39; Error</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/114411/dfu-issue-on-ncs-2-6-1-first-ota-succeeds-subsequent-attempts-fail-with-no-free-slot-to-place-the-image-error</link><description>I am using Bluetooth for DFU in NCS version 2.6.1, but I encountered an issue in Device Manager that says, &amp;quot;There is no free slot to place the image.&amp;quot; In the JLINK RTT, I received the following information: 
 
 [8/16] Linking C executable zephyr / zephyr</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Sat, 14 Sep 2024 07:11:51 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/114411/dfu-issue-on-ncs-2-6-1-first-ota-succeeds-subsequent-attempts-fail-with-no-free-slot-to-place-the-image-error" /><item><title>RE: DFU Issue on NCS 2.6.1: First OTA Succeeds, Subsequent Attempts Fail with 'No Free Slot to Place the Image' Error</title><link>https://devzone.nordicsemi.com/thread/502530?ContentTypeID=1</link><pubDate>Sat, 14 Sep 2024 07:11:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8b9cc12c-9d73-4963-95f0-c26be4bd8a06</guid><dc:creator>Jayant Tang</dc:creator><description>&lt;p&gt;Hello Edvin,&lt;/p&gt;
&lt;p&gt;You&amp;#39;re right, &lt;strong&gt;the application should CONFIRM the new image after DFU&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;I have fixed this issue. In my case, I use SMP DFU over BLE, so it seems that the nRF Connect APP on smart phone will help to confirm the new image. So, &lt;strong&gt;I don&amp;#39;t need to call the `boot_write_img_confirmed()` explicitly.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Let&amp;#39;s talk about the DFU failed issue. The root cause seems to be that my partition is not aligned for 4k Bytes, which is the minimal erase unit size (Sector size) of th QSPI flash:&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/pastedimage1726295116759v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;Here is my latest `pm_static.yml`. It is for MX25R80F (1M Bytes QSPI Flash):&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="xml"&gt;mcuboot:
  address: 0x0
  size: 0x7000
  region: flash_primary
mcuboot_pad:
  address: 0x7000
  size: 0x200
app:
  address: 0x7200
  size: 0xf8e00
mcuboot_primary:
  orig_span: &amp;amp;id001
  - mcuboot_pad
  - app
  span: *id001
  address: 0x7000
  size: 0xf9000
  region: flash_primary
mcuboot_primary_app:
  orig_span: &amp;amp;id002
  - app
  span: *id002
  address: 0x7200
  size: 0xf8e00
mcuboot_secondary:
  address: 0x0
  size: 0xf9000
  device: mx25r80
  region: external_flash
settings_storage:
  address: 0xf9000
  size: 0x7000
  device: mx25r80
  region: external_flash  &lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Related devicetree overlay:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;/{
    chosen {
        // necessary for the partition manager
        nordic,pm-ext-flash = &amp;amp;mx25r80;
    };
};


&amp;amp;qspi {
	status = &amp;quot;okay&amp;quot;;
	pinctrl-0 = &amp;lt;&amp;amp;qspi_default&amp;gt;;
	pinctrl-1 = &amp;lt;&amp;amp;qspi_sleep&amp;gt;;
	pinctrl-names = &amp;quot;default&amp;quot;, &amp;quot;sleep&amp;quot;;
	/delete-node/ mx25r6435f@0;
	mx25r80: mx25r8035f@0 {
		compatible = &amp;quot;nordic,qspi-nor&amp;quot;;
		reg = &amp;lt;0&amp;gt;;
		/* MX25R64 supports only pp and pp4io */
		writeoc = &amp;quot;pp4io&amp;quot;;
		/* MX25R64 supports all readoc options */
		readoc = &amp;quot;read4io&amp;quot;;
		sck-frequency = &amp;lt;8000000&amp;gt;;
		jedec-id = [c2 28 14];
		sfdp-bfp = [
            e5 20 f1 ff  ff ff 7f 00  44 eb 08 6b  08 3b 04 bb
            ee ff ff ff  ff ff 00 ff  ff ff 00 ff  0c 20 0f 52
            10 d8 00 ff  23 72 f5 00  82 ed 04 b7  44 83 38 44
            30 b0 30 b0  f7 c4 d5 5c  00 be 29 ff  f0 d0 ff ff
        ]; 
		size = &amp;lt;0x800000&amp;gt;; // 8M Bits
		has-dpd;
		t-enter-dpd = &amp;lt;10000&amp;gt;;
		t-exit-dpd = &amp;lt;35000&amp;gt;;
	};
};&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Related config (You may need to add some dependency by yourself):&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;# flash partition
CONFIG_PARTITION_MANAGER_ENABLED=y
CONFIG_PM_EXTERNAL_FLASH_MCUBOOT_SECONDARY=y

# Bootloader
CONFIG_BOOTLOADER_MCUBOOT=y

### DFU Supported by mcumgr
CONFIG_NET_BUF=y
CONFIG_ZCBOR=y
CONFIG_MCUMGR=y

# DFU Transport
CONFIG_MCUMGR_TRANSPORT_BT=y
CONFIG_MCUMGR_TRANSPORT_BT_AUTHEN=n
CONFIG_MCUMGR_TRANSPORT_BT_CONN_PARAM_CONTROL=y
# Allow for large Bluetooth data packets.
CONFIG_BT_L2CAP_TX_MTU=498
CONFIG_BT_BUF_ACL_RX_SIZE=502
CONFIG_BT_BUF_ACL_TX_SIZE=502
# Enable the mcumgr Packet Reassembly feature over Bluetooth and its configuration dependencies.
# MCUmgr buffer size is optimized to fit one SMP packet divided into five Bluetooth Write Commands,
# transmitted with the maximum possible MTU value: 498 bytes.
CONFIG_MCUMGR_TRANSPORT_BT_REASSEMBLY=y
CONFIG_MCUMGR_TRANSPORT_NETBUF_SIZE=2475
CONFIG_BT_CTLR_LE_PING=n

# DFU Storage and erase
CONFIG_STREAM_FLASH=y
CONFIG_IMG_MANAGER=y
CONFIG_MCUMGR_GRP_IMG=y
CONFIG_MCUMGR_GRP_ZBASIC=y
CONFIG_MCUMGR_GRP_ZBASIC_STORAGE_ERASE=y

# OS control by mcumgr
CONFIG_MCUMGR_GRP_OS=y
CONFIG_MCUMGR_GRP_OS_MCUMGR_PARAMS=y
CONFIG_MCUMGR_GRP_OS_BOOTLOADER_INFO=y
CONFIG_MCUMGR_GRP_OS_INFO=y
CONFIG_MCUMGR_GRP_OS_ECHO=y
CONFIG_MCUMGR_GRP_OS_TASKSTAT=n&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU Issue on NCS 2.6.1: First OTA Succeeds, Subsequent Attempts Fail with 'No Free Slot to Place the Image' Error</title><link>https://devzone.nordicsemi.com/thread/501665?ContentTypeID=1</link><pubDate>Mon, 09 Sep 2024 08:17:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a2fe4b14-526a-4123-9902-75c57cb04df4</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I suspect the same thing here. From your mobile screenshot it looks like the active image is not the permanent image. If you, at this point (the point where that screenshot was captured), reset your device again. Which FW boots up? Is it the original FW or the FW from the first DFU?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I think the reason you (both of you) end up in this state is because of a mechanism that can be used for testing new firmware without permanently &amp;quot;installing&amp;quot; it. After a DFU, it will boot the new FW&amp;nbsp;&lt;strong&gt;once&lt;/strong&gt;. Then after a new reboot it will boot the old firmware again.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;There are two ways of making the swap permanent. Either you can do it from software, when you reach a certain point in your application (perhaps some self-check), and you can call&amp;nbsp;boot_is_img_confirmed() to check whether the image is confirmed, and call boot_write_img_confirmed() to confirm it.&lt;/p&gt;
&lt;p&gt;Something like this:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;    rc = boot_is_img_confirmed();
    LOG_INF(&amp;quot;Image is%s confirmed.&amp;quot;, rc ? &amp;quot;&amp;quot; : &amp;quot; not&amp;quot;);
    if (!rc) {
        if (boot_write_img_confirmed()) {
            LOG_ERR(&amp;quot;Failed to confirm image&amp;quot;);
        } else {
            LOG_INF(&amp;quot;Marked image as OK&amp;quot;);
        }
    }&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Alternatively, you can do this when you upload the image. I don&amp;#39;t remember what it is called in the app, but something like &amp;quot;permanent&amp;quot; or &amp;quot;verified&amp;quot;, to tell the bootloader that it can erase the old application image once the swap is complete.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU Issue on NCS 2.6.1: First OTA Succeeds, Subsequent Attempts Fail with 'No Free Slot to Place the Image' Error</title><link>https://devzone.nordicsemi.com/thread/501639?ContentTypeID=1</link><pubDate>Mon, 09 Sep 2024 06:34:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1a449519-68ba-45e0-99f7-d5d8cebd1f4e</guid><dc:creator>Jayant Tang</dc:creator><description>&lt;p&gt;Hello&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/members/edvin-holmseth"&gt;Edvin&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Same issue.&lt;/p&gt;
&lt;p&gt;My secondary slot is on the external QSPI flash.&lt;/p&gt;
&lt;p&gt;When the QSPI flash is blank, I can upload the 2nd firmware to the secondary slot. It showed success:&lt;/p&gt;
&lt;p&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/pastedimage1725862767390v1.png" /&gt;&lt;/p&gt;
&lt;p&gt;But after it reset, the firmware in primary slot and secondary slot are not swapped. It is still running the first image.&lt;/p&gt;
&lt;p&gt;Then I tried to upload the 3rd firmware to the secondary slot. It shows the same error log as this ticket.&amp;nbsp;&lt;/p&gt;
&lt;p&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/pastedimage1725862822386v2.png" /&gt;&lt;/p&gt;
&lt;p&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/pastedimage1725863086560v3.jpeg" /&gt;&lt;/p&gt;
&lt;p&gt;That is because the 2nd firmware is still in the secondary slot (slot1).&lt;/p&gt;
&lt;p&gt;So, the 3rd firmware can&amp;#39;t be upload.&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/pastedimage1725863922825v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I believe there are some wrong configurations, but I can&amp;#39;t figure them out.&amp;nbsp;Could you help?&lt;/p&gt;
&lt;p&gt;`mcuboot.conf`: I modified this&amp;nbsp;like the Matter MCUBOOT, because I want to reduce the size from 0xC000 to 0x7000&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;#
# Copyright (c) 2021 Nordic Semiconductor
#
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
#

# CONFIG_BOOT_MAX_IMG_SECTORS=240
# CONFIG_REBOOT=y
# CONFIG_DISABLE_FLASH_PATCH=y

# # Disable memory guard to avoid false faults in application after boot
CONFIG_HW_STACK_PROTECTION=n

CONFIG_SYSTEM_CLOCK_NO_WAIT=y

CONFIG_MAIN_STACK_SIZE=10240

CONFIG_BOOT_BOOTSTRAP=n

CONFIG_BOOT_SIGNATURE_TYPE_ECDSA_P256=y

# ## replace the default signing key with your own key before production ##
# # 
# # The bootloader private key is generated by:
# # openssl ecparam -name prime256v1 -genkey -noout -out priv.pem
# # 
# # Use the absolute path to the private key file
# # 
# # CONFIG_BOOT_SIGNATURE_KEY_FILE=&amp;quot;/xxx/xxx/mcuboot_private.pem&amp;quot;


# ## the following kCONFIG_is used to make external flash as the secondary slot
# CONFIG_FLASH=y

# # Required by QSPI
# CONFIG_MULTITHREADING=y

# CONFIG_NORDIC_QSPI_NOR=y
# CONFIG_NORDIC_QSPI_NOR_FLASH_LAYOUT_PAGE_SIZE=4096
# CONFIG_NORDIC_QSPI_NOR_STACK_WRITE_BUFFER_SIZE=16

CONFIG_BOOT_SWAP_SAVE_ENCTLV=n

CONFIG_BOOT_SWAP_USING_MOVE=y

CONFIG_PM=n

CONFIG_FLASH=y

CONFIG_FPROTECT=y

CONFIG_NORDIC_QSPI_NOR=y

CONFIG_NORDIC_QSPI_NOR_FLASH_LAYOUT_PAGE_SIZE=4096

CONFIG_NORDIC_QSPI_NOR_STACK_WRITE_BUFFER_SIZE=16


CONFIG_BOOT_MAX_IMG_SECTORS=256

CONFIG_LOG=n

CONFIG_CONSOLE_HANDLER=n

CONFIG_BOOT_BANNER=n

CONFIG_TIMESLICING=n

CONFIG_RESET_ON_FATAL_ERROR=n

CONFIG_MULTITHREADING=n

CONFIG_TICKLESS_KERNEL=n

CONFIG_TIMEOUT_64BIT=n

CONFIG_NRF_ENABLE_ICACHE=n

CONFIG_MBEDTLS_CFG_FILE=&amp;quot;mcuboot-mbedtls-cfg.h&amp;quot;

# Bootloader size optimization
# Disable not used modules that cannot be set in Kconfig.mcuboot.defaults due to overriding
# in board files.
CONFIG_GPIO=n
CONFIG_CONSOLE=n
CONFIG_SERIAL=n
CONFIG_UART_CONSOLE=n
CONFIG_USE_SEGGER_RTT=n

# Use minimal C library instead of the Picolib
CONFIG_MINIMAL_LIBC=y&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;`prj.conf`: I only put the DFU related configurations here.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;# flash partition
CONFIG_PARTITION_MANAGER_ENABLED=y
CONFIG_PM_EXTERNAL_FLASH_MCUBOOT_SECONDARY=y
# same as pm_static.yml
CONFIG_PM_PARTITION_SIZE_SETTINGS_STORAGE=0x7200

# Bootloader and DFU
CONFIG_BOOTLOADER_MCUBOOT=y
CONFIG_NET_BUF=y
CONFIG_ZCBOR=y
CONFIG_CRC=y
CONFIG_MCUMGR=y
CONFIG_STREAM_FLASH=y
CONFIG_MCUMGR_TRANSPORT_BT=y
CONFIG_MCUMGR_TRANSPORT_BT_AUTHEN=n
CONFIG_MCUMGR_TRANSPORT_BT_CONN_PARAM_CONTROL=y
# Allow for large Bluetooth data packets.
CONFIG_BT_L2CAP_TX_MTU=498
CONFIG_BT_BUF_ACL_RX_SIZE=502
CONFIG_BT_BUF_ACL_TX_SIZE=502
# Enable the mcumgr Packet Reassembly feature over Bluetooth and its configuration dependencies.
# MCUmgr buffer size is optimized to fit one SMP packet divided into five Bluetooth Write Commands,
# transmitted with the maximum possible MTU value: 498 bytes.
CONFIG_MCUMGR_TRANSPORT_BT_REASSEMBLY=y
CONFIG_MCUMGR_TRANSPORT_NETBUF_SIZE=2475
CONFIG_IMG_MANAGER=y
CONFIG_MCUMGR_GRP_IMG=y
CONFIG_MCUMGR_GRP_OS=y
CONFIG_MCUMGR_GRP_OS_MCUMGR_PARAMS=y
CONFIG_MCUMGR_TRANSPORT_WORKQUEUE_STACK_SIZE=4608
CONFIG_BT_CTLR_LE_PING=n
CONFIG_MCUMGR_LOG_LEVEL_DBG=y
CONFIG_BT_SMP_LOG_LEVEL_DBG=y


# MCUMGR Debug
# CONFIG_STATS=y
# CONFIG_STATS_NAMES=y
# CONFIG_MCUMGR_GRP_STAT=y
# CONFIG_THREAD_MONITOR=y
#
# CONFIG_MCUMGR_GRP_OS_TASKSTAT=y&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;pm_static.yml:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="xml"&gt;mcuboot:
  address: 0x0
  size: 0x7000
  region: flash_primary
mcuboot_pad:
  address: 0x7000
  size: 0x200
app:
  address: 0x7200
  size: 0xf8e00
mcuboot_primary:
  orig_span: &amp;amp;id001
  - mcuboot_pad
  - app
  span: *id001
  address: 0x7000
  size: 0xf9000
  region: flash_primary
mcuboot_primary_app:
  orig_span: &amp;amp;id002
  - app
  span: *id002
  address: 0x7200
  size: 0xf8e00
mcuboot_secondary:
  address: 0x0
  size: 0xf8e00
  device: mx25r80
  region: external_flash
settings_storage:
  address: 0xf8e00
  size: 0x7200
  device: mx25r80
  region: external_flash  &lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU Issue on NCS 2.6.1: First OTA Succeeds, Subsequent Attempts Fail with 'No Free Slot to Place the Image' Error</title><link>https://devzone.nordicsemi.com/thread/501552?ContentTypeID=1</link><pubDate>Fri, 06 Sep 2024 13:06:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:27a25b9d-ebec-47d7-a60a-671fdf739fe8</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;You are not doing what I ask you to.&lt;/p&gt;
&lt;p&gt;1: Program &amp;quot;Helloworld 0001&amp;quot; using the programmer and make sure the log says &amp;quot;Helloworld 0001&amp;quot;&lt;/p&gt;
&lt;p&gt;2: Update to &amp;quot;Helloworld 0002&amp;quot; using DFU and make sure the log says &amp;quot;Helloworld 0002&amp;quot;.&lt;/p&gt;
&lt;p&gt;3: Power cycle your device.&lt;/p&gt;
&lt;p&gt;4: What does the log say?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU Issue on NCS 2.6.1: First OTA Succeeds, Subsequent Attempts Fail with 'No Free Slot to Place the Image' Error</title><link>https://devzone.nordicsemi.com/thread/501003?ContentTypeID=1</link><pubDate>Tue, 03 Sep 2024 14:12:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b3b8f093-afea-4044-8896-8919f57d2501</guid><dc:creator>oliver0804</dc:creator><description>&lt;p&gt;After the update was successful, I checked the log, and it showed &amp;quot;Helloworld 0002&amp;quot;. &lt;br /&gt;However, when I attempt to update again, it fails. I also noticed that in nRF Connect for Desktop, an additional slot appears, but I&amp;#39;m unable to perform a second DFU.&lt;br /&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/_2A621657_-2024_2D00_09_2D00_03-_5A660A4E_10.11.29.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU Issue on NCS 2.6.1: First OTA Succeeds, Subsequent Attempts Fail with 'No Free Slot to Place the Image' Error</title><link>https://devzone.nordicsemi.com/thread/500998?ContentTypeID=1</link><pubDate>Tue, 03 Sep 2024 14:01:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dd2ea6a3-642c-43c7-811f-02fd27ae370a</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Try to power cycle it after step 2, and monitor the log. Does it say &amp;quot;Helloworld 0002&amp;quot; or &amp;quot;Helloworld 0001&amp;quot;?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU Issue on NCS 2.6.1: First OTA Succeeds, Subsequent Attempts Fail with 'No Free Slot to Place the Image' Error</title><link>https://devzone.nordicsemi.com/thread/500996?ContentTypeID=1</link><pubDate>Tue, 03 Sep 2024 13:53:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:52619fbc-f3c2-452a-a34c-3601452f54e1</guid><dc:creator>oliver0804</dc:creator><description>&lt;p&gt;I performed the DFU using the &amp;quot;Test only&amp;quot; option, and here&amp;rsquo;s the sequence of operations I followed:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I used JLINK to completely erase the FLASH and burn the latest firmware. This version prints &lt;code&gt;(&amp;quot;Helloworld 0001\n&amp;quot;)&lt;/code&gt; when running (Flash was successful).&lt;/li&gt;
&lt;li&gt;I then modified the print statement to &lt;code&gt;(&amp;quot;Helloworld 0002\n&amp;quot;)&lt;/code&gt;, rebuilt the firmware, and updated it using &lt;code&gt;build_1/zephyr/dfu_application.zip&lt;/code&gt; (DFU was successful).&lt;/li&gt;
&lt;li&gt;After modifying the code again to &lt;code&gt;(&amp;quot;Helloworld 0003\n&amp;quot;)&lt;/code&gt;, I encountered the initial error: &amp;quot;There is no free slot to place the image,&amp;quot; along with the JLINK output.&lt;/li&gt;
&lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU Issue on NCS 2.6.1: First OTA Succeeds, Subsequent Attempts Fail with 'No Free Slot to Place the Image' Error</title><link>https://devzone.nordicsemi.com/thread/500919?ContentTypeID=1</link><pubDate>Tue, 03 Sep 2024 09:36:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:efcbd613-f98e-4a96-9745-a5258d6ba0d6</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;There is a mechanism so that you can test DFU images without fully moving over to these new applications. The way this is done is that you can upload it, reboot, and the new image will be tested. Then the next time it reboots, it will swap back to the previous application image again. Then, if the test was successful, there are a couple of ways to make the DFU permanent. Either you can add a few lines in the application that tells the bootloader that the test was a success, or you can set a flag when performing the DFU, basically saying that: &amp;quot;I know this firmware works, so just delete the old one when you get this one&amp;quot;.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Although I know about the theory here, I am a bit rusty on the DFU part, and how all the apps work and so on. But can you please do that test for me:&lt;/p&gt;
&lt;p&gt;1: Program the original application.&lt;/p&gt;
&lt;p&gt;2: Build a new application with a modification, e.g. light up an LED, write something new to the log, or something like that.&lt;/p&gt;
&lt;p&gt;3: Perform the DFU to this new application, and confirm that the new firmware is running (by observing the LED or the log)&lt;/p&gt;
&lt;p&gt;4: Power cycle the device, and then observe the device (LED/log). Which application is running? The new, or the old?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;BR,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU Issue on NCS 2.6.1: First OTA Succeeds, Subsequent Attempts Fail with 'No Free Slot to Place the Image' Error</title><link>https://devzone.nordicsemi.com/thread/500834?ContentTypeID=1</link><pubDate>Mon, 02 Sep 2024 16:06:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:283d1c3a-081e-4bf7-908b-187b7ec19095</guid><dc:creator>oliver0804</dc:creator><description>&lt;p&gt;Hi Edvin,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m not very familiar with DFU. Could you please explain what &amp;quot;revert&amp;quot; means in this context? Also, what steps should I take to test this properly?&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: DFU Issue on NCS 2.6.1: First OTA Succeeds, Subsequent Attempts Fail with 'No Free Slot to Place the Image' Error</title><link>https://devzone.nordicsemi.com/thread/500761?ContentTypeID=1</link><pubDate>Mon, 02 Sep 2024 12:08:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f40992a0-2e91-448d-b4e4-c1d37eb946cd</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Could it be that the old image is still present in the other slot? I see that your screenshot says &amp;quot;Swap type: revert&amp;quot;. Does that mean that if you program your first application using the programmer/debugger, then perform the DFU &lt;strong&gt;one time&lt;/strong&gt;, and then power cycle your device. Is it the first application and the second application that boots up then?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>