<?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>FOTA to an encapsulated Bluetooth device that is having &amp;quot;No free slot&amp;quot; error</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/121201/fota-to-an-encapsulated-bluetooth-device-that-is-having-no-free-slot-error</link><description>Hello, 
 
 Recently, my team has been struggling with an issue regarding a nRF5340 device that&amp;#39;s encapsulated and inaccessible to be flashed with a JTAG connection. Our normal use case is: 1. Connect to the device via the DeviceManager iOS app or equivalent</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 14 May 2025 13:43:19 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/121201/fota-to-an-encapsulated-bluetooth-device-that-is-having-no-free-slot-error" /><item><title>RE: FOTA to an encapsulated Bluetooth device that is having "No free slot" error</title><link>https://devzone.nordicsemi.com/thread/535355?ContentTypeID=1</link><pubDate>Wed, 14 May 2025 13:43:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e178e063-5832-4f4b-bbb3-e76b0975178e</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;You can reboot as I described in my initial reply.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Rebooting will not erase the second image in itself. But it will revert back to the old image, if the new one was not confirmed. Then you can choose whether you want to test the new image again, or if you want to delete it and upload another.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I believe the issue was that you were running an unconfirmed image, and hence, it couldn&amp;#39;t delete the only confirmed image that it had (which was currently placed in slot 1 (the running image is always in slot 0, even though it is not confirmed).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So if you were to reboot, it would boot up the old confirmed image (after swapping it back to slot 0), and slot 1 would still contain the unconfirmed image, until you either manually erase it using mcumgr, or until you try to upload a new image.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;BR,&lt;br /&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FOTA to an encapsulated Bluetooth device that is having "No free slot" error</title><link>https://devzone.nordicsemi.com/thread/535124?ContentTypeID=1</link><pubDate>Tue, 13 May 2025 12:24:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4ba785ee-2dd9-47e0-bb90-b91d162019ba</guid><dc:creator>Nolan_G</dc:creator><description>&lt;p&gt;Thanks for the help Edvin! That&amp;#39;s definitely something I&amp;#39;ll look into, I think we&amp;#39;re confirming images on the app side, but if we can do it in our code, we definitely will.&lt;/p&gt;
&lt;p&gt;How do we reboot our device without erasing the second image? Could you elaborate?&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FOTA to an encapsulated Bluetooth device that is having "No free slot" error</title><link>https://devzone.nordicsemi.com/thread/535008?ContentTypeID=1</link><pubDate>Tue, 13 May 2025 06:24:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f39cd01f-d056-4a2b-a687-2762e84c314e</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Some of our FOTA samples, such as the zigbee Light_bulb sample has this snippet:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;static void confirm_image(void)
{
	if (!boot_is_img_confirmed()) {
		int ret = boot_write_img_confirmed();

		if (ret) {
			LOG_ERR(&amp;quot;Couldn&amp;#39;t confirm image: %d&amp;quot;, ret);
		} else {
			LOG_INF(&amp;quot;Marked image as OK&amp;quot;);
		}
	}
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;What it does is that it confirms itself. What I suspect is that you were running an image that was not confirmed, and hence it couldn&amp;#39;t delete the old application image. I don&amp;#39;t know how you usually confirm your images. Whether you do it from the application, like this snippet, or if you do it from the nRF Device Manager app. You didn&amp;#39;t try to reboot the device without erasing the secondary image?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;One way to ensure that you are not running an unconfirmed image could be to start a timer if boot_is_img_confirmed() returns false, and have it time out e.g. after one minute. In the timeout handler, if the image is still not confirmed, you can reset the device, and it should boot up the old image. In that case, you should be able to overwrite the new image.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Alternatively, always confirm the new image on bootup, like it is done in the confirm_image() function here.&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><item><title>RE: FOTA to an encapsulated Bluetooth device that is having "No free slot" error</title><link>https://devzone.nordicsemi.com/thread/534689?ContentTypeID=1</link><pubDate>Fri, 09 May 2025 13:39:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:334041c0-09c0-45df-83f5-25e6d86ea58c</guid><dc:creator>Nolan_G</dc:creator><description>&lt;p&gt;Thanks for the reply Edvin!&lt;/p&gt;
&lt;p&gt;I actually had already given that a shot, and we found a way to get the application core image to be put into the primary slot. When we clicked &amp;quot;read&amp;quot;, we saw that there were two images, the primary and secondary. When I clicked &amp;quot;erase&amp;quot;, the secondary image was erased, and only one image was left, the primary image. I then attempted to upload an image, experienced the error, and then clicked &amp;quot;read&amp;quot; again and saw that there were now two images in place. I then clicked &amp;quot;test&amp;quot; to move the secondary image to the primary slot, clicked &amp;quot;confirm&amp;quot; to confirm the secondary image to the primary slot, and then I clicked &amp;quot;reset&amp;quot; to reset the device. The application core image was successfully moved to the primary slot.&lt;/p&gt;
&lt;p&gt;However, this didn&amp;#39;t solve the issue of the network core image not being able to be FOTA&amp;#39;d. If both images were FOTA-able, then the error wouldn&amp;#39;t have happened in the first place. I would like to find a way to erase the secondary network core image so that I can FOTA successfully again.&lt;/p&gt;
&lt;p&gt;I believe the answer involves terminal commands, but the terminal commands aren&amp;#39;t supported on Windows. I was hoping to find a work-around, or to be able to do it with a Linux VirtualBox.&lt;/p&gt;
&lt;p&gt;Do you have any ideas?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FOTA to an encapsulated Bluetooth device that is having "No free slot" error</title><link>https://devzone.nordicsemi.com/thread/534678?ContentTypeID=1</link><pubDate>Fri, 09 May 2025 13:24:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b233815b-d3d0-4419-801e-3d46fd492eba</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;You can also try to tap the &amp;quot;Read&amp;quot; from my previous screenshot, and see what it says.&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: FOTA to an encapsulated Bluetooth device that is having "No free slot" error</title><link>https://devzone.nordicsemi.com/thread/534284?ContentTypeID=1</link><pubDate>Wed, 07 May 2025 12:55:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:05ff178e-7694-42a5-bcbb-37148a1f66a9</guid><dc:creator>Nolan_G</dc:creator><description>&lt;p&gt;Hi Edvin,&lt;/p&gt;
&lt;p&gt;For some important additional context, we have many builds of the same device using an encapsulated nRF5340 as we&amp;#39;re developing a product where this is the brain of the device. We have many fully-encapsulated devices that have been successful in repetitive FOTAing, but this is a new problem that we&amp;#39;re seeing only on one device. Our process has been the same thus far. I believe it&amp;#39;s related to the Bluetooth image of the secondary &amp;quot;build&amp;quot; that&amp;#39;s not being cleared.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FOTA to an encapsulated Bluetooth device that is having "No free slot" error</title><link>https://devzone.nordicsemi.com/thread/534281?ContentTypeID=1</link><pubDate>Wed, 07 May 2025 12:51:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:860847bf-2ba6-437f-8245-5cd0e9281789</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Could it be that your issue is similar to this one?&lt;br /&gt;&lt;a 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/502530"&gt;RE: 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&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Perhaps your device is in &amp;quot;testing mode&amp;quot; of the new application, and hence, it can&amp;#39;t delete the old application image before the new one is marked as verified. I understand that the JTAG connection is not available, but is there some way to reset your device? When you do, does it restart the same application that it is running, or the previous version?&lt;/p&gt;
&lt;p&gt;If you don&amp;#39;t have any way to reset it, I see that you can issue a reset command using SMP.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&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/pastedimage1746622191139v12.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;Note that I had to press the button where it now says &amp;quot;Basic&amp;quot;, where it used to say &amp;quot;Advanced&amp;quot; before I pressed it. Then it should show you the &amp;quot;Send Reset Command&amp;quot; at the bottom. Try this, and see whether the app rolls back to the previous version, or if you are able to do a new DFU after this.&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>