<?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>Modularisation of a firmware</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/124320/modularisation-of-a-firmware</link><description>Hello 
 Our 52840-based device has a functionality of playing one of 10 pre-recorded phrases via I2S interface. We&amp;#39;d like to be able to update the wording or load a different language via OTA, separately from the firmware, and the other way around - update</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 02 Dec 2025 15:59:24 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/124320/modularisation-of-a-firmware" /><item><title>RE: Modularisation of a firmware</title><link>https://devzone.nordicsemi.com/thread/556036?ContentTypeID=1</link><pubDate>Tue, 02 Dec 2025 15:59:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b4412c6e-ac22-4086-967b-cbd9ec8d7b42</guid><dc:creator>Menon</dc:creator><description>&lt;p&gt;Hello Romal,&lt;/p&gt;
&lt;p&gt;Sorry for the long response time. I was out of the office for quite a while, and this case was originally created by someone else (possibly your colleague). Your comment changed the case status (since you are not the thread creator), which caused it to remain in my queue. That’s why my colleague didn’t take it over during my absence. I’m sorry this happened.&lt;/p&gt;
&lt;p&gt;Have you made any progress on this? Please let me know if you are still facing the issue. I will look into it and update you at the earliest.&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;br /&gt; Abhijith&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Modularisation of a firmware</title><link>https://devzone.nordicsemi.com/thread/551654?ContentTypeID=1</link><pubDate>Thu, 16 Oct 2025 06:17:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4211f75a-a998-46ce-93aa-fbba95006afe</guid><dc:creator>Romal</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks for the update.&lt;/p&gt;
[quote userid="115767" url="~/f/nordic-q-a/124320/modularisation-of-a-firmware/551638"]I recommend using the latest version of the nRF Connect SDK, as there were major changes introduced after NCS v2.7.0, including the transition to Sysbuild for multi-image builds. There have also been several configuration changes and bug fixes since NCS v2.5.2.[/quote]
&lt;p&gt;We will use the latest NCS version.&lt;/p&gt;
[quote userid="115767" url="~/f/nordic-q-a/124320/modularisation-of-a-firmware/551638"]You are correct, this is a limitation of the &lt;code&gt;mcumgr&lt;/code&gt; command-line tool, which only works on Linux. The same has been mentioned &lt;a href="https://devzone.nordicsemi.com/support-private/support/333771"&gt;in this ticket&lt;/a&gt;.[/quote]
&lt;p&gt;Noted. Thanks.&amp;nbsp;&lt;/p&gt;
[quote userid="115767" url="~/f/nordic-q-a/124320/modularisation-of-a-firmware/551638"]Could you please let me know what file format you are using? I’m not aware of any specific file extension limitations in the Device Manager app, but could you share a screenshot of the error message or collect the logs so we can check further?[/quote]
&lt;p&gt;We are using .bin file. This BIN file is actually different audio data file combined together and signed using the key (.pem) used to signed application firmware file. We have used imgtool.py to signed the file. We are uploading this file to mcuboot_secondary_1 part located in external flash memory. This file is non-bootable.&amp;nbsp; Application firmware read the audio data from this location. Below is the partition info for your reference and also attached the log from nrf Connect Device manager app.&lt;br /&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/1602.image.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/Log-2025_2D00_10_2D00_16-11_5F00_35_5F00_47.txt"&gt;devzone.nordicsemi.com/.../Log-2025_2D00_10_2D00_16-11_5F00_35_5F00_47.txt&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Got your clarification about signing the image and slot configuration. Thanks.&lt;/p&gt;
&lt;p&gt;Would you please help us about uploading file issue?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Romal.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Modularisation of a firmware</title><link>https://devzone.nordicsemi.com/thread/551638?ContentTypeID=1</link><pubDate>Wed, 15 Oct 2025 20:34:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:78bc4a3f-6a0a-494a-a268-028db50b08b2</guid><dc:creator>Menon</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I recommend using the latest version of the nRF Connect SDK, as there were major changes introduced after NCS v2.7.0, including the transition to Sysbuild for multi-image builds. There have also been several configuration changes and bug fixes since NCS v2.5.2.&lt;/p&gt;
[quote user="Romal"] We like to test this using BLE. Looks like mcumgr BLE transport support is not available for windows?[/quote]
&lt;p&gt;You are correct, this is a limitation of the &lt;code&gt;mcumgr&lt;/code&gt; command-line tool, which only works on Linux. The same has been mentioned &lt;a href="https://devzone.nordicsemi.com/support-private/support/333771"&gt;in this ticket&lt;/a&gt;.&lt;/p&gt;
[quote user="Romal"]Can we test the same using nRF Connect Device manager phone application? If yes, can you please explain how can we do that? we have tired using &amp;quot;file&amp;quot; option but it failes. Giving error &amp;quot;Upload failed: Not supported (8)&amp;quot;.[/quote]
&lt;p&gt;Could you please let me know what file format you are using? I’m not aware of any specific file extension limitations in the Device Manager app, but could you share a screenshot of the error message or collect the logs so we can check further?&lt;/p&gt;
[quote user="Romal"]We need to signed the file with imgtool before uploading it. Without this mcumgr not uploading file. Is this neccessary to sign the file? Can we skip this?[/quote]
&lt;p&gt;Regarding the signing requirement, this is necessary for the bootloader to validate and ensure the integrity of the image. If the image is unsigned, the upload may be refused.&lt;br /&gt; When you build your application in nRF Connect SDK, the build system automatically signs the image with a default development key. For production, you must use your own signing key.&lt;/p&gt;
[quote user="Romal"]We need to create two slot, mcuboot_primary_1 and mcuboot_secondary_1 for image-1. Can we not use only single slot?[/quote]
&lt;p&gt;If you’re asking whether single-slot DFU over BLE is supported, unfortunately, it is not supported at this time. The feature is planned for a future release, but I don’t have a specific timeline to share.&lt;/p&gt;
&lt;p&gt;Kind Regards,&lt;/p&gt;
&lt;p&gt;Abhijith&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Modularisation of a firmware</title><link>https://devzone.nordicsemi.com/thread/551355?ContentTypeID=1</link><pubDate>Tue, 14 Oct 2025 06:35:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:da22f81b-7c93-4bd3-b394-99bdda47a637</guid><dc:creator>Romal</dc:creator><description>&lt;p&gt;Hello Abhijith,&lt;/p&gt;
&lt;p&gt;As you mentioned, we have used mcumgr to transfer the audio data to external flash. We have configured mcumgr transport to use serial and BLE both.&lt;/p&gt;
&lt;p&gt;In our device we have used external flash as image-1 (define two slots mcuboot_primary_1 and mcuboot_secondary_1). We are uploading the audio file to slot 1 (n = 1).&lt;/p&gt;
&lt;p&gt;We have successfully uploaded and tested the file using mcumgr serial transport with our windows system. We like to test this using BLE. Looks like mcumgr BLE transport support is not available for windows?&lt;/p&gt;
&lt;p&gt;Below are the few questions regarding this,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Can we test the same using nRF Connect Device manager phone application? If yes, can you please explain how can we do that? we have tired using &amp;quot;file&amp;quot; option but it failes. Giving error &amp;quot;Upload failed: Not supported (8)&amp;quot;.&lt;/li&gt;
&lt;li&gt;We need to signed the file with imgtool before uploading it. Without this mcumgr not uploading file. Is this neccessary to sign the file? Can we skip this?&lt;/li&gt;
&lt;li&gt;We need to create two slot, mcuboot_primary_1 and mcuboot_secondary_1 for image-1. Can we not use only single slot?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We are using nRF Connect SDK version 2.5.2 and our device is using BLE coded phy.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;br /&gt;Romal&lt;/p&gt;
&lt;p&gt;&lt;span data-teams="true"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Modularisation of a firmware</title><link>https://devzone.nordicsemi.com/thread/550254?ContentTypeID=1</link><pubDate>Tue, 30 Sep 2025 17:03:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:71fc17cf-172a-4a56-9e8f-e567edcc671a</guid><dc:creator>Menon</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Lets break down the requirement&amp;nbsp; into three parts: transfer, write, and read.&lt;/p&gt;
&lt;p&gt;For the transfer part there are several options: a custom protocol, mcumgr/SMP, using the image command by configuring another region to behave like an image slot and then writing a .bin into it, or using the filesystem command (fs), since mcumgr supports filesystem operations and a filesystem partition can be set up for this purpose (with the requirement that it be bound to a filesystem for both read and write).&lt;/p&gt;
&lt;p&gt;For the write part, multiple options are possible: NVS for small, frequently updated data, direct use of the flash driver for raw data blobs, or other filesystems like LittleFS for larger data that benefit from safe file handling.&lt;/p&gt;
&lt;p&gt;The read part is entirely on the application side, the way the application reads the data will then depend entirely on how it is stored.&lt;br /&gt;&lt;br /&gt;This way, firmware updates don’t touch the audio data, and you can also update the audio later without having to reflash the whole device.&lt;/p&gt;
&lt;p&gt;Kind Regards,&lt;/p&gt;
&lt;p&gt;Abhijith&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Modularisation of a firmware</title><link>https://devzone.nordicsemi.com/thread/549637?ContentTypeID=1</link><pubDate>Wed, 24 Sep 2025 07:33:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6abf71fc-3def-4567-84a2-2b9db6e9a60d</guid><dc:creator>Paskin</dc:creator><description>&lt;p&gt;&lt;span&gt;Hi&amp;nbsp;&lt;/span&gt;&lt;span&gt;Abhijith,&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Thanks again for following on this with me.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Could you emphasise a bit on &amp;quot;sending a separate file to the dedicated audio partition&amp;quot; process?&lt;br /&gt;&lt;br /&gt;What is the expected format of this file, and how the OTA framework shall&amp;nbsp;be &amp;quot;told&amp;quot; that incoming binary&amp;nbsp;is not a firmware, but shall be loaded into the &amp;quot;audio&amp;quot; partition? Shall I code this, or it can be achieved with some metadata?&lt;br /&gt;&lt;br /&gt;Could you refer me to some example?&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Dmitry&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Modularisation of a firmware</title><link>https://devzone.nordicsemi.com/thread/549564?ContentTypeID=1</link><pubDate>Tue, 23 Sep 2025 12:31:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ca9c7dee-2804-4af0-9e2e-554001d90386</guid><dc:creator>Menon</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;No,&amp;nbsp;keep the partitions separate with &lt;code&gt;pm_static.yml&lt;/code&gt;, then send a firmware image when you want to update the code, and send just the audio data when you want to change phrases,no need to reflash everything together.&amp;nbsp; For firmware OTA, you upload the signed application image (&lt;code&gt;app_update.bin)&lt;/code&gt;&amp;nbsp;via MCUboot as usual. For your audio data, you send a separate file to the dedicated audio partition.&lt;/p&gt;
&lt;p&gt;Kind Regards,&lt;/p&gt;
&lt;p&gt;Abhijith&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Modularisation of a firmware</title><link>https://devzone.nordicsemi.com/thread/549369?ContentTypeID=1</link><pubDate>Sun, 21 Sep 2025 11:01:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b6d51f99-6813-40d1-b586-34e012e43925</guid><dc:creator>Paskin</dc:creator><description>&lt;p&gt;HI&amp;nbsp;&lt;span&gt;Abhijith,&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Thanks for your reply.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Does &amp;quot;updating separately&amp;quot; mean pushing the HEX file containing only the&amp;nbsp;required partition instead of default merged.hex?&lt;br /&gt;&lt;br /&gt;Best regards,&amp;nbsp;&lt;br /&gt;Dmitry&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Modularisation of a firmware</title><link>https://devzone.nordicsemi.com/thread/548574?ContentTypeID=1</link><pubDate>Fri, 12 Sep 2025 09:48:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:67b97479-aeef-4bc3-ab7f-d454e63a5928</guid><dc:creator>Menon</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I think you can use the partition manager to define a proper partition for storing the audio data. In the &lt;code&gt;pm_static.yml&lt;/code&gt;, define an additional partition for audio (similar to an NVM partition).&lt;/p&gt;
&lt;p&gt;This keeps it separate from the firmware, allowing you to update either one independently. Please refer to the&lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/scripts/partition_manager/partition_manager.html#flash_partition_types"&gt; partition manager documentation for more details&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;br /&gt; Abhijith&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>