<?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>Can a device flashed (with just softdevice and application) with Segger be dfu OTA afterwards?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/115637/can-a-device-flashed-with-just-softdevice-and-application-with-segger-be-dfu-ota-afterwards</link><description>Hi folks, thanks in advance for your support. 
 The thing is that in my SEGGER project I didn&amp;#39;t have explicitly linked a bootloader to be flashed in the device (nRF52832), thus I don&amp;#39;t know if the device has no bootloader, or it runs a standard bootloader</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 31 Oct 2024 07:53:41 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/115637/can-a-device-flashed-with-just-softdevice-and-application-with-segger-be-dfu-ota-afterwards" /><item><title>RE: Can a device flashed (with just softdevice and application) with Segger be dfu OTA afterwards?</title><link>https://devzone.nordicsemi.com/thread/508610?ContentTypeID=1</link><pubDate>Thu, 31 Oct 2024 07:53:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:aebf67cf-ec29-4f18-afb6-ab0a4a1ba273</guid><dc:creator>Edvin</dc:creator><description>[quote user="JKP"]Is still a chance (even if tricky, but without physical access of course) to update application or bootloader over the air?[/quote]
&lt;p&gt;No. There is absolutely no way to update the firmware without a bootloader.&amp;nbsp;&lt;/p&gt;
[quote user="JKP"]buttonless DFU method as instance[/quote]
&lt;p&gt;That is not a bootloader. That is a bluetooth service indicating that the device has a bootloader, and is used as a method of putting the device in DFU mode. It does not work without a bootloader.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I understand that you want to update the device without physical access, but it is not possible. Then you need to physically flash a bootloader first, and a way to enter the bootloader in DFU mode (ble_app_buttonless_dfu).&amp;nbsp;&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: Can a device flashed (with just softdevice and application) with Segger be dfu OTA afterwards?</title><link>https://devzone.nordicsemi.com/thread/508598?ContentTypeID=1</link><pubDate>Wed, 30 Oct 2024 23:22:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:77e1c279-0b58-43d9-aec2-07c08413f2f7</guid><dc:creator>JKP</dc:creator><description>&lt;p&gt;Thanks Edvin for your time and clarity.&lt;/p&gt;
&lt;p&gt;About your questions: the devices were programmed in the first place (in a wired way) using Segger with a nRF52840-DK as a J-link bridge to the device&amp;#39;s SWD port. Actually I know the app loaded were just the app (and it didn&amp;#39;t include a bootloader inside the app), My assumption at the first moment was that maybe Segger (because a linking configuration setup) loaded a softdevices before the application. AND maybe it loaded a standard bootloader (signed or not). My thought was If it exists a standard bootloader loaded&amp;nbsp;unwittingly by Segger, maybe in the forum were standard ways to deal with it.&lt;/p&gt;
&lt;p&gt;I replicated the flashing process described above, and noticed that there IS a softdevice step, and then the application downloading (I striked the app name for security reasons)&lt;/p&gt;
&lt;p&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/pastedimage1730329827431v1.png" /&gt;&lt;/p&gt;
&lt;p&gt;If I&amp;#39;m understanding properly no bootloader is loaded in the device.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Then, I got access to one of the devices in the past days, using the command&lt;/p&gt;
&lt;p&gt;&lt;code&gt;nrfjprog --readcode ses_flashed_unit.hex &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;got this distribution, confirming there is no bootloader&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/pastedimage1730330245535v2.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;If I&amp;#39;m getting this right. and there is no bootloader in the devices, Is still a chance (even if tricky, but without physical access of course) to update application or bootloader over the air? buttonless DFU method as instance? (this units still shows this button when I connect to them with the nRF connect software).&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks so much for your support&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Can a device flashed (with just softdevice and application) with Segger be dfu OTA afterwards?</title><link>https://devzone.nordicsemi.com/thread/507312?ContentTypeID=1</link><pubDate>Tue, 22 Oct 2024 10:56:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:509dcc66-136f-4f41-86ff-42372835b160</guid><dc:creator>Edvin</dc:creator><description>[quote user="JKP"]I../../nordic/nRF5_SDK_17.1.0_ddde560/components/libraries/bootloader/ble_dfu -I../../nordic/nRF5_SDK_17.1.0_ddde560/components/libraries/bootloader/dfu [/quote]
&lt;p&gt;I don&amp;#39;t know why this is printed in your application&amp;#39;s build log. Those are indeed files used by the bootloader.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The thing about bootloaders is that if you don&amp;#39;t know how they work, then they are very difficult to use. That means that if someone else flashed a customized bootloader, it is very difficult to say what that bootloader expects. And perhaps they are using a signature that you don&amp;#39;t have the key to utilize.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Normally, the way that our nRF5 SDK bootloader works is that the bootloader is flashed as a separate &amp;quot;application&amp;quot; a different place in flash. It is not part of the normal running application. This is because while the bootloader is swapping the application images, it needs to delete the application, so if the bootloader was part of the application, it would have to delete itself.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;So you shouldn&amp;#39;t try to include the bootloader in your application. They should be built and flashed separately, and when your bootloader is present, you can generate application images signed with the key pair that you used to build your bootloader, and upload them via BLE.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;In case you are not familiar, this is a great guide for getting started with the bootloader in the nRF5 SDK:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/guides/short-range-guides/b/software-development-kit/posts/getting-started-with-nordics-secure-dfu-bootloader"&gt;Getting started with Nordic&amp;#39;s Secure DFU bootloader, a step by step guide&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;So do you have physical access to the device? If not, what was it programmed with in the first place? If it is a 3rd party manufacturer, they may have pre-flashed a bootloader, but for that you need to ask them.&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: Can a device flashed (with just softdevice and application) with Segger be dfu OTA afterwards?</title><link>https://devzone.nordicsemi.com/thread/506995?ContentTypeID=1</link><pubDate>Sat, 19 Oct 2024 03:06:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7c7fce48-c97c-444b-9691-9acda87e7717</guid><dc:creator>JKP</dc:creator><description>&lt;p&gt;Thanks, Edvin ;).&lt;/p&gt;
&lt;p&gt;I was afraid I needed a physical connection. So, for being sure, the output:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span&gt;(...)&lt;br /&gt;Exception: Connection Failure - Device not found!&lt;br /&gt;[18804] Failed to execute script &amp;#39;__main__&amp;#39; due to unhandled exception!&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span&gt; &lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;matchs with the situation where the target doesn&amp;#39;t have a bootloader?&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;And secondly, even if the compile output says:&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span&gt;(...)&lt;br /&gt;I../../nordic/nRF5_SDK_17.1.0_ddde560/components/libraries/bootloader/ble_dfu -I../../nordic/nRF5_SDK_17.1.0_ddde560/components/libraries/bootloader/dfu -&lt;br /&gt;&lt;/span&gt;&lt;span&gt;(...)&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;It doesn&amp;#39;t guarantee there is a bootloader flashed in the device with SEGGER?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Have a great day.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Can a device flashed (with just softdevice and application) with Segger be dfu OTA afterwards?</title><link>https://devzone.nordicsemi.com/thread/506992?ContentTypeID=1</link><pubDate>Fri, 18 Oct 2024 21:32:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7a99bb14-2f6a-4282-bb6d-15e7e78d9d0e</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;If there is no bootloader programmed to your device, then it is not possible to update the FW like this. So you need to physically access the device and program a bootloader into it.&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>