<?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>BLE DFU using External SPI Flash on nRF7002DK</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/123065/ble-dfu-using-external-spi-flash-on-nrf7002dk</link><description>I&amp;#39;m working with the nRF7002DK board using NCS version 2.6.0 . The internal flash is full, so I need to perform BLE DFU using external flash. Is there a sample available for this?</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 28 Jul 2025 11:34:13 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/123065/ble-dfu-using-external-spi-flash-on-nrf7002dk" /><item><title>RE: BLE DFU using External SPI Flash on nRF7002DK</title><link>https://devzone.nordicsemi.com/thread/543725?ContentTypeID=1</link><pubDate>Mon, 28 Jul 2025 11:34:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:737c8ed4-d500-480c-a2cd-1a3e7718feea</guid><dc:creator>SwRa</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
[quote user="hemakumar"]CONFIG_NORDIC_QSPI_NOR=y[/quote]
&lt;p&gt;You need to make this&amp;nbsp;&lt;span&gt;CONFIG_SPI_NOR=y. Also try adding&amp;nbsp;&amp;nbsp;&lt;/span&gt;CONFIG_PM_EXTERNAL_FLASH_MCUBOOT_SECONDARY=y&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;A frequent cause for the swap not occurring is a mismatch between the primary and secondary image slot sizes. Both must be the same size for MCUboot to perform the swap correctly. If the secondary slot (in external flash) is smaller or not properly aligned, the swap will fail silently or get stuck. See here:&amp;nbsp;&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/122540/unable-to-do-fota-using-bluetooth-and-external-flash-memory"&gt;Unable to do FOTA using Bluetooth and external flash memory&lt;/a&gt;&amp;nbsp;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Also, for the network core, make sure you have the b0n bootloader enabled. See discussion here:&amp;nbsp;&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/110874/nrf5340-custom-board-using-sysbuild-missing-support_netcore-causing-issue-to-enable-b0n-build"&gt;nRF5340 custom board using sysbuild missing &amp;quot;SUPPORT_NETCORE&amp;quot; causing issue to enable b0n build&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Swathy&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE DFU using External SPI Flash on nRF7002DK</title><link>https://devzone.nordicsemi.com/thread/543550?ContentTypeID=1</link><pubDate>Thu, 24 Jul 2025 15:21:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6cbecf44-1007-438b-a6a8-d0e2d3ba3c10</guid><dc:creator>hemakumar</dc:creator><description>&lt;p&gt;I referred to the ticket &amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/108342/nrf5340-dfu-with-external-flash/476445"&gt;RE: nrf5340 DFU with external flash&lt;/a&gt;&amp;nbsp; which provides a sample example for BLE DFU using SPI. Following that, I applied the suggested configurations,&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;# Allow for large Bluetooth data packets.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_BT_L2CAP_TX_MTU=498&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_BT_BUF_ACL_RX_SIZE=502&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_BT_BUF_ACL_TX_SIZE=502&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_BT_CTLR_DATA_LENGTH_MAX=251&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;# Enable the Bluetooth mcumgr transport (unauthenticated).&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_MCUMGR_TRANSPORT_BT=y&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_MCUMGR_TRANSPORT_BT_AUTHEN=n&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_MCUMGR_TRANSPORT_BT_CONN_PARAM_CONTROL=y&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;# Enable the mcumgr Packet Reassembly feature over Bluetooth and its configuration dependencies.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;# MCUmgr buffer size is optimized to fit one SMP packet divided into five Bluetooth Write Commands,&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;# transmitted with the maximum possible MTU value: 498 bytes.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_MCUMGR_TRANSPORT_BT_REASSEMBLY=y&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_MCUMGR_TRANSPORT_NETBUF_SIZE=2475&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_MCUMGR_GRP_OS_MCUMGR_PARAMS=y&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_MCUMGR_TRANSPORT_WORKQUEUE_STACK_SIZE=4608&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CONFIG_MCUMGR=y&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_STREAM_FLASH=y&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;# Ensure an MCUboot-compatible binary is generated.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_BOOTLOADER_MCUBOOT=y&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;# Required by the taskstat command.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_THREAD_MONITOR=y&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;# Support for taskstat command&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_MCUMGR_GRP_OS_TASKSTAT=y&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;# Enable statistics and statistic names.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_STATS=y&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_STATS_NAMES=y&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;# Enable most core commands.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_IMG_MANAGER=y&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_MCUMGR_GRP_IMG=y&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_MCUMGR_GRP_OS=y&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_MCUMGR_GRP_STAT=y&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;# Enable MCUmgr and dependencies.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_NET_BUF=y&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_ZCBOR=y&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_CRC=y&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;in the prj.conf file. I also added the two required files&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/3731.nrf7002dk_5F00_nrf5340_5F00_cpuapp.conf"&gt;devzone.nordicsemi.com/.../3731.nrf7002dk_5F00_nrf5340_5F00_cpuapp.conf&lt;/a&gt;&amp;nbsp; &lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/5126.nrf7002dk_5F00_nrf5340_5F00_cpuapp.overlay"&gt;devzone.nordicsemi.com/.../5126.nrf7002dk_5F00_nrf5340_5F00_cpuapp.overlay&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;to the child_image/mcuboot/boards directory and included the relevant configuration,&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;# General MCUboot image configurations for all boards.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;# Disable serial output&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_SERIAL=n&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_UART_CONSOLE=n&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CONFIG_NORDIC_QSPI_NOR=y&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_BOOT_MAX_IMG_SECTORS=256&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;# Logging&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_LOG=y&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_MCUBOOT_LOG_LEVEL_WRN=y # Enable simultaenous multi-core updates&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_NRF53_MULTI_IMAGE_UPDATE=y&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_UPDATEABLE_IMAGE_NUMBER=2&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_BOOT_UPGRADE_ONLY=y&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_PCD_APP=y # Dependencies for CONFIG_NRF53_MULTI_IMAGE_UPDATE&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_FLASH=y&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_FLASH_SIMULATOR=y&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_FLASH_SIMULATOR_DOUBLE_WRITES=y&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CONFIG_FLASH_SIMULATOR_STATS=n&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;in the mcuboot.conf file under the child_image folder.&lt;/p&gt;
&lt;p&gt;Additionally, I placed those below two files in the boards directory as well.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/3731.nrf7002dk_5F00_nrf5340_5F00_cpuapp.conf"&gt;devzone.nordicsemi.com/.../3731.nrf7002dk_5F00_nrf5340_5F00_cpuapp.conf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/5126.nrf7002dk_5F00_nrf5340_5F00_cpuapp.overlay"&gt;devzone.nordicsemi.com/.../5126.nrf7002dk_5F00_nrf5340_5F00_cpuapp.overlay&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The application built successfully, SMP (Simple Management Protocol) services are active, and the DFU option is visible. Then updated the firmware by uploading the new binary file (app_update.bin) via nrf Device Manager. The file was successfully written to external flash. However, the process gets stuck at the swap stage, and the new firmware is not being swapped. Even after resetting the board, the old firmware continues to run. Performing a board erase doesn&amp;#39;t help either, as the image still remains in the external flash and isn&amp;#39;t removed.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE DFU using External SPI Flash on nRF7002DK</title><link>https://devzone.nordicsemi.com/thread/543044?ContentTypeID=1</link><pubDate>Mon, 21 Jul 2025 13:41:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ebd7287d-8d89-4186-8fc5-3ce3391d3983</guid><dc:creator>SwRa</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;&lt;span&gt;There is no official ready-to-use sample, but the configuration steps are documented (using SPI on nRf7002-DK in exercise 2 and BLE DFU in exercise 5).&amp;nbsp;&lt;/span&gt;&lt;span&gt;You must manually adapt the BLE DFU sample to use SPI external flash on the nRF7002 DK. See here:&amp;nbsp;&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/108342/nrf5340-dfu-with-external-flash/476451"&gt;RE: nrf5340 DFU with external flash&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Basically, adapt the steps mentioned&amp;nbsp;and choose SPI in exercise 3:&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&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/pastedimage1753105095200v1.png" alt=" " /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;I would also suggest that you refer this discussion:&amp;nbsp;&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/118825/fota-over-ble-using-external-flash-nrf-connect-sdk-2-9-0---upload-to-device-stuck/522547"&gt;RE: FOTA over BLE using external flash (nRF Connect SDK 2.9.0) - upload to device stuck&lt;/a&gt;&amp;nbsp;.&lt;span&gt;&amp;nbsp;Note that&amp;nbsp;it is for nRF52840 DK and will require pin and overlay adjustments for the nRF7002 DK.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;Regards,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;Swathy&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE DFU using External SPI Flash on nRF7002DK</title><link>https://devzone.nordicsemi.com/thread/542870?ContentTypeID=1</link><pubDate>Fri, 18 Jul 2025 12:47:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:75050fa3-2048-4cbc-b799-b5594c973eea</guid><dc:creator>hemakumar</dc:creator><description>&lt;p&gt;I followed Exercise 3, which, for NCS version 2.6.0, refers back to Exercise 2. In Exercise 2, the note section mentions a sample for using external flash via SPI on the nRF7002 DK. I checked that sample, but it is meant for USB and not BLE DFU.&lt;/p&gt;
&lt;p&gt;I also referred to Exercise 5, which covers BLE DFU. However, the sample provided there uses external flash via QSPI. On the nRF7002 DK, QSPI is already used by the Wi-Fi module, so I can&amp;#39;t use it for external flash.&lt;/p&gt;
&lt;p&gt;What I need is a BLE DFU sample for the nRF7002 DK that uses SPI for external flash.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE DFU using External SPI Flash on nRF7002DK</title><link>https://devzone.nordicsemi.com/thread/542839?ContentTypeID=1</link><pubDate>Fri, 18 Jul 2025 08:57:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6e4ebc1f-4e34-4a50-8923-00253bcf185e</guid><dc:creator>SwRa</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;The steps to perform BLE dfu using external flash is explained in our DevAcademy course. See here:&amp;nbsp;&lt;a href="https://academy.nordicsemi.com/courses/nrf-connect-sdk-intermediate/lessons/lesson-9-bootloaders-and-dfu-fota/topic/exercise-3-dfu-with-external-flash/"&gt;Exercise 3 - DFU with external flash - Nordic Developer Academy&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Swathy&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>