<?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>Help needed to perform BLE DFU using another BLE as central</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/85860/help-needed-to-perform-ble-dfu-using-another-ble-as-central</link><description>Hello, 
 I need some help or advice on the easiest way to perform DFU in a nRF52832 device using a nRF52820 as a central through BLE. My nRF52832 device already has the DFU working, as I can perform updates using nrfConnect (android and/or PC). Now I</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 18 Mar 2022 16:39:10 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/85860/help-needed-to-perform-ble-dfu-using-another-ble-as-central" /><item><title>RE: Help needed to perform BLE DFU using another BLE as central</title><link>https://devzone.nordicsemi.com/thread/358923?ContentTypeID=1</link><pubDate>Fri, 18 Mar 2022 16:39:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3e25ed29-b60a-47be-9613-da58a72d5fc8</guid><dc:creator>Carletti</dc:creator><description>&lt;p&gt;I got my bootloader working by calling&amp;nbsp;&lt;span&gt;sd_softdevice_vector_table_base_set(). Based my code on the legacy bootloader found on sdk v11.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thanks Vidar and Sigurd for your support.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Help needed to perform BLE DFU using another BLE as central</title><link>https://devzone.nordicsemi.com/thread/358775?ContentTypeID=1</link><pubDate>Fri, 18 Mar 2022 07:44:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a0279e8c-2dfd-409a-9295-287853b47ca7</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;It looks like you are retrieving the SP and Reset vector from the same address. The initial stack pointer value is stored at the intvec_address while the reset handler is at intvec_address+0x4.&lt;/p&gt;
&lt;p&gt;You must also call sd_softdevice_vector_table_base_set() to make the softdevice forward interrupts to your application.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Help needed to perform BLE DFU using another BLE as central</title><link>https://devzone.nordicsemi.com/thread/358739?ContentTypeID=1</link><pubDate>Thu, 17 Mar 2022 18:11:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:42f18040-0a34-4b5c-8f5f-4e7e7f888e85</guid><dc:creator>Carletti</dc:creator><description>&lt;p&gt;As my trial to build my own bootloader, without DFU, I did as follows:&lt;/p&gt;
&lt;p&gt;-&amp;nbsp;Reserved for bootloader the area 0x26000 ~ 0x47fff.&amp;nbsp;Set intvec_address as 0x26000;&lt;/p&gt;
&lt;p&gt;- Reserved for application the area 0x48000&amp;nbsp;~&amp;nbsp;0x7ffff&amp;nbsp;. Set&amp;nbsp;&lt;span&gt;intvec_address as 0x48000;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If bootloader detects a valid application (by reading a flag stored in flash address 0x7c000), it performs a&amp;nbsp;jump to the application area. The code is as:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;if(validFw) {
      /* Jump to user application */
      JumpAddress = *(__IO uint32_t*) (APPLICATION_ADDRESS);
      JumpToApplication = (pFunction) JumpAddress;
      /* Initialize user application&amp;#39;s Stack Pointer */
      __set_MSP(*(__IO uint32_t*) APPLICATION_ADDRESS); /* APPLICATION_ADDRESS = 0x48000 */
      //nrf_sdh_enable_request();
      //sd_softdevice_vector_table_base_set(APPLICATION_ADDRESS);
      JumpToApplication();
    }&lt;/pre&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;But something goes wrong and it just restarts to bootloader. I tried setting the interrupt vector address for softdevice (sd_softdevice_vector_table_base_set(APPLICATION_ADDRESS)) but it didn&amp;#39;t work either.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Any idea of what am I doing wrong?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Help needed to perform BLE DFU using another BLE as central</title><link>https://devzone.nordicsemi.com/thread/358650?ContentTypeID=1</link><pubDate>Thu, 17 Mar 2022 12:39:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:653af8c0-2067-4ce4-bdf9-115d2b499b9c</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;The easiest way to perform DFU from a PC is to use &lt;span&gt;&lt;a title="nRF Util" href="https://infocenter.nordicsemi.com/topic/ug_nrfutil/UG/nrfutil/nrfutil_intro.html?cp=10_7"&gt;nRF Util&lt;/a&gt;&lt;/span&gt; together with a&lt;a href="https://www.nordicsemi.com/Products/Development-hardware/nrf52840-dongle"&gt; nRF52840 dongle&lt;/a&gt;. With the nRF52820 you are looking custom solution to handle reception and forwarding of the init command and FW image to your target. Documentation for the BLE DFU protocol can be found in the SDK documentation here: &lt;span&gt;&lt;a title="BLE" href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/lib_dfu_transport_ble.html?cp=8_1_3_5_2_2"&gt;BLE&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Vidar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Help needed to perform BLE DFU using another BLE as central</title><link>https://devzone.nordicsemi.com/thread/358604?ContentTypeID=1</link><pubDate>Thu, 17 Mar 2022 11:01:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7e2e9e8e-381b-4259-8628-e06e50af3365</guid><dc:creator>Carletti</dc:creator><description>&lt;p&gt;Hi Sigurd,&lt;/p&gt;
&lt;p&gt;Sorry, forgot to mention. I am using nRF5 SDK v17.10 and IAR 9 on windows11.&lt;/p&gt;
&lt;p&gt;Best Regards,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Help needed to perform BLE DFU using another BLE as central</title><link>https://devzone.nordicsemi.com/thread/358537?ContentTypeID=1</link><pubDate>Thu, 17 Mar 2022 07:43:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:082a9223-a095-4055-bef0-90ea8dde43ab</guid><dc:creator>Sigurd Hellesvik</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;Just to avoid confusion going forward:&lt;br /&gt;Are you using the &lt;a href="https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/nrf-connect-sdk-and-nrf5-sdk-statement"&gt;nRF5 SDK or the nRF Connect SDK&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Sigurd Hellesvik&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Help needed to perform BLE DFU using another BLE as central</title><link>https://devzone.nordicsemi.com/thread/358518?ContentTypeID=1</link><pubDate>Thu, 17 Mar 2022 02:04:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4ad799d6-a913-473c-83ca-4af8bfda8e62</guid><dc:creator>Carletti</dc:creator><description>&lt;p&gt;Hi Sigurd.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t know MCUBoot. Isn&amp;#39;t that windows compatible? As I understood, this would require using Zephyr, am I right? My whole application is bare metal, developed using IAR.&lt;/p&gt;
&lt;p&gt;Most likely I am going to develop my own bootloader, using the NUS service to transfer data and program the application area.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Help needed to perform BLE DFU using another BLE as central</title><link>https://devzone.nordicsemi.com/thread/358440?ContentTypeID=1</link><pubDate>Wed, 16 Mar 2022 13:21:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f5e59768-b7e8-4c3b-b9e4-a228bbc177ef</guid><dc:creator>Sigurd Hellesvik</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
[quote user=""]I accept any suggestion, as long as the solution is a nRF52820 (connected to a PC via USB)[/quote]
&lt;p&gt;It is possible to use MCUBoot with BLE and update it from a Linux or MacOS computer. See the &lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/1.9.1/zephyr/samples/subsys/mgmt/mcumgr/smp_svr/README.html"&gt;SMP Server Sample&lt;/a&gt;. Will this work for you?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Eventually, we have a &lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/1.9.1/nrf/samples/bluetooth/central_smp_client/README.html"&gt;SMP Client&lt;/a&gt; sample, which could run on the nRF52820 device. &lt;br /&gt;In this case you will have to upload the files to the Client from the computer first. &lt;a href="https://docs.zephyrproject.org/latest/guides/device_mgmt/smp_protocol.html"&gt;SMP Protocol Specification&lt;/a&gt; and &lt;a href="https://docs.zephyrproject.org/latest/guides/device_mgmt/smp_groups/smp_group_8.html"&gt;File management&lt;/a&gt; might give some hints to this.&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Sigurd Hellesvik&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>