<?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>BT DFU OTA over SMP service from nRF54L15 Central to nRF54L15 Peripheral</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/119572/bt-dfu-ota-over-smp-service-from-nrf54l15-central-to-nrf54l15-peripheral</link><description>Hello, So I am working on implementing Bluetooth DFU OTA capabilities to send an image from a 54L15, acting as an SMP Central Client, to another 54L15, acting as an SMP Server. I can load the image into the SMP Client via an mcumgr UART transport and</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 30 Apr 2025 16:36:34 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/119572/bt-dfu-ota-over-smp-service-from-nrf54l15-central-to-nrf54l15-peripheral" /><item><title>RE: BT DFU OTA over SMP service from nRF54L15 Central to nRF54L15 Peripheral</title><link>https://devzone.nordicsemi.com/thread/533626?ContentTypeID=1</link><pubDate>Wed, 30 Apr 2025 16:36:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4725be15-4102-435d-9dc2-378068e54d36</guid><dc:creator>Aunns Shabbir</dc:creator><description>&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/members/br_5f00_adams_5f00_01"&gt;br_adams_01&lt;/a&gt;&amp;nbsp;&lt;br /&gt;Would you be kind enough to share your sample?&lt;br /&gt;&lt;br /&gt;Really appreciate it&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BT DFU OTA over SMP service from nRF54L15 Central to nRF54L15 Peripheral</title><link>https://devzone.nordicsemi.com/thread/530668?ContentTypeID=1</link><pubDate>Fri, 04 Apr 2025 18:16:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c53f763e-0d58-4f3b-b109-652710d59a48</guid><dc:creator>Amanda Hsieh</dc:creator><description>&lt;p&gt;Happy to hear that. &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f642.svg" title="Slight smile"&gt;&amp;#x1f642;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BT DFU OTA over SMP service from nRF54L15 Central to nRF54L15 Peripheral</title><link>https://devzone.nordicsemi.com/thread/530649?ContentTypeID=1</link><pubDate>Fri, 04 Apr 2025 14:02:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e87b31e5-3d63-4325-999c-f31add79558e</guid><dc:creator>br_adams_01</dc:creator><description>&lt;p&gt;I figured out the problem. I was sending too much data for the last packet and exceeding the length that I send to the SMP server. Fixed that and OTA works now! Thanks for your help!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BT DFU OTA over SMP service from nRF54L15 Central to nRF54L15 Peripheral</title><link>https://devzone.nordicsemi.com/thread/528723?ContentTypeID=1</link><pubDate>Mon, 24 Mar 2025 21:44:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:57fe4292-a468-4d8c-bdcb-84064e4d4d65</guid><dc:creator>Amanda Hsieh</dc:creator><description>&lt;p&gt;Hi,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;How much percentage&lt;span&gt;&amp;nbsp;of the &amp;quot;Region Size&amp;quot; for the application image indicated in the build log? If it is over 95%, I would suspect it&amp;#39;s related to the&amp;nbsp;&lt;/span&gt;Known Issues now:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/releases_and_maturity/known_issues.html#mcuboot"&gt;NCSDK-20567: Partitioning limitation with MCUboot swap move&lt;/a&gt;. also, check &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/116900/fixing-the-known-issue-partitioning-limitation-with-mcuboot-swap-move"&gt;this post&lt;/a&gt;.&amp;nbsp;&lt;span&gt;&amp;nbsp;Then, You could consider&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/test_and_optimize/optimizing/index.html"&gt;Optimizing the application&lt;/a&gt;&amp;nbsp;or&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;&amp;nbsp;&lt;span&gt;using external flash for the&amp;nbsp;&lt;/span&gt;&lt;code&gt;mcuboot_secondary&lt;/code&gt;&lt;/a&gt;&lt;span&gt;&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;&amp;nbsp;partition&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;-Amanda H.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BT DFU OTA over SMP service from nRF54L15 Central to nRF54L15 Peripheral</title><link>https://devzone.nordicsemi.com/thread/527918?ContentTypeID=1</link><pubDate>Tue, 18 Mar 2025 22:44:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:17372d4c-90e4-462a-b48d-80a2f88c1381</guid><dc:creator>br_adams_01</dc:creator><description>&lt;p&gt;Also, in addition to calculating the SHA hash, is there a way that we can get the exact image size before we OTA the file to the target?&lt;br /&gt;&lt;br /&gt;Thanks!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BT DFU OTA over SMP service from nRF54L15 Central to nRF54L15 Peripheral</title><link>https://devzone.nordicsemi.com/thread/527736?ContentTypeID=1</link><pubDate>Tue, 18 Mar 2025 00:01:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8f89ba61-7e3a-4b8b-9f8d-2c3ac2075a47</guid><dc:creator>br_adams_01</dc:creator><description>&lt;p&gt;Amanda,&lt;br /&gt;&lt;br /&gt;Making good progress. I can list the images on the target, erase an image if there is an image populated in the secondary slot, and upload 99% (I&amp;#39;ll explain below) of the image chunks. The example is helping out very well.&lt;br /&gt;&lt;br /&gt;I did change the way that I stored the image on the Central&amp;nbsp;in order to&amp;nbsp;OTA the image to the Target (used mcumgr uart transport to store in secondary image partition instead of littlefs).&lt;br /&gt;&lt;br /&gt;I have ran into a problem. When I sent the last packet of the image, I get an error return code &amp;quot;rc&amp;quot; on the &lt;span style="text-decoration:underline;"&gt;central&lt;/span&gt; of &lt;strong&gt;1&lt;/strong&gt; in the upload response packet (According to the SMP stack, an unknown error). On the &lt;span style="text-decoration:underline;"&gt;target&lt;/span&gt; side, I get the following in the log:&lt;br /&gt;&lt;br /&gt;&amp;quot;Image upload inspect failed: 31&amp;quot;&lt;br /&gt;&lt;br /&gt;The offset that I am getting from the upload response appears to match the offset of what I am reading from flash.&lt;br /&gt;&lt;br /&gt;Upon further observation, when this error occurred on the target, the image seemed to be discarded upon listing the images again.&lt;br /&gt;&lt;br /&gt;I checked the SHA hash of the image file itself that I am sending in the first upload packet, and it is the same hash that was calculated from the nRF connect app, so I do not think that is the issue. Currently right now, I am calculating this hash in a Python script and inputting that hash into a shell command.&lt;br /&gt;&lt;br /&gt;Any suggestions? Is there a way to calculate the hash of the image in the secondary partition on the Central?&lt;br /&gt;&lt;br /&gt;Thanks!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BT DFU OTA over SMP service from nRF54L15 Central to nRF54L15 Peripheral</title><link>https://devzone.nordicsemi.com/thread/526254?ContentTypeID=1</link><pubDate>Thu, 06 Mar 2025 20:13:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:459e0a71-2b5b-4b1f-955c-ffeff06af98c</guid><dc:creator>Amanda Hsieh</dc:creator><description>[quote user="br_adams_01"]1)&lt;span&gt;How much of the bin file do I need to chunk and send, and does this include the TLV area&lt;/span&gt;[/quote]
&lt;p&gt;At least 32 bytes, since first it has to send the whole header (which is 32 bytes), not including the TVL area. Here is my colleague&amp;#39;s unofficial sample, but it is not updated to v2.9.0. Still worth taking a look.&amp;nbsp;&amp;nbsp;&lt;a href="https://github.com/hellesvik-nordic/samples_for_nrf_connect_sdk/tree/main/bootloader_samples/client_smp/smp_client_ble"&gt;https://github.com/hellesvik-nordic/samples_for_nrf_connect_sdk/tree/main/bootloader_samples/client_smp/smp_client_ble&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Disclaimer:&lt;/p&gt;
&lt;p&gt;This code/configuration is not thoroughly tested or qualified and should be considered provided “as-is”. Only for reference.&amp;nbsp;&lt;/p&gt;
[quote user="br_adams_01"]&lt;span&gt;2) How can I parse the TLV area from the application layer so that I can extract the hash to&amp;nbsp;&lt;/span&gt;&lt;u&gt;test&lt;/u&gt;&lt;span&gt;&amp;nbsp;the image?&lt;/span&gt;[/quote]
&lt;p&gt;You can use the img_mgmt_find_tlvs() function, see the example&amp;nbsp;&lt;a href="https://github.com/nrfconnect/sdk-zephyr/blob/v3.7.99-ncs2/subsys/mgmt/mcumgr/grp/img_mgmt/src/img_mgmt.c#L227"&gt;https://github.com/nrfconnect/sdk-zephyr/blob/v3.7.99-ncs2/subsys/mgmt/mcumgr/grp/img_mgmt/src/img_mgmt.c#L227&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BT DFU OTA over SMP service from nRF54L15 Central to nRF54L15 Peripheral</title><link>https://devzone.nordicsemi.com/thread/526217?ContentTypeID=1</link><pubDate>Thu, 06 Mar 2025 15:07:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:05f48398-1d67-4ddc-8af4-ca2fcbb737b5</guid><dc:creator>br_adams_01</dc:creator><description>&lt;p&gt;Thanks, Amanda.&lt;/p&gt;
&lt;p&gt;I have looked into this example already, and it gives me a good idea of how I want to approach&amp;nbsp;the problem of sending the SMP commands themselves. However, I still would like to know information about questions 1 and 2 above -- &amp;quot;&amp;quot;1)&lt;span&gt;How much of the bin file do I need to chunk and send, and does this include the TLV area, and 2) How can I parse the TLV area from the application layer so that I can extract the hash to&amp;nbsp;&lt;/span&gt;&lt;u&gt;test&lt;/u&gt;&lt;span&gt;&amp;nbsp;the image?&amp;quot;&amp;quot;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BT DFU OTA over SMP service from nRF54L15 Central to nRF54L15 Peripheral</title><link>https://devzone.nordicsemi.com/thread/526207?ContentTypeID=1</link><pubDate>Thu, 06 Mar 2025 14:46:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f7c798b0-24ca-4a0c-9df7-3154ac926b3e</guid><dc:creator>Amanda Hsieh</dc:creator><description>&lt;p&gt;Hi,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You can take a look at this&amp;nbsp;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/samples/bluetooth/central_smp_client/README.html"&gt;Bluetooth: Central SMP Client&lt;/a&gt;&amp;nbsp;sample.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Amanda H.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>