<?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>How can I update the bootloader via bluetooth?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/106216/how-can-i-update-the-bootloader-via-bluetooth</link><description>Hi everyone. I need to update the bootloader via BLE. 
 I&amp;#39;m using the nRF Util tool. 
 I already know how to update the application firmware by creating a DFU package with the command: 
 
 Now I want to understand if it is possible to create a DFU package</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 05 Dec 2023 14:20:18 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/106216/how-can-i-update-the-bootloader-via-bluetooth" /><item><title>RE: How can I update the bootloader via bluetooth?</title><link>https://devzone.nordicsemi.com/thread/459007?ContentTypeID=1</link><pubDate>Tue, 05 Dec 2023 14:20:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2fdfd670-fe8d-419b-98de-fad8162eb05a</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;You need to include the softdevice in the package, and also specify the --sd-req of the old softdevice version, and the --sd-id of the new softdevice version. See &lt;a href="https://devzone.nordicsemi.com/guides/short-range-guides/b/software-development-kit/posts/getting-started-with-nordics-secure-dfu-bootloader#h30sjziadf6hpjsiv7m17imj1jfgvi"&gt;this blog post&lt;/a&gt; for more details.&lt;/p&gt;
&lt;p&gt;Here is an example command that should work:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;nrfutil pkg generate --application app.hex --bootloader boot.hex out_file.zip --hw-version 1 --sd-req 0x100 --sd-id 0x100 --softdevice softdevice.hex --application-version 1 --bootloader-version 1 --key-file priv.pem&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How can I update the bootloader via bluetooth?</title><link>https://devzone.nordicsemi.com/thread/458682?ContentTypeID=1</link><pubDate>Mon, 04 Dec 2023 09:15:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d6d615dd-7e3d-4da9-b96f-6402f5052da4</guid><dc:creator>Stefano1984</dc:creator><description>&lt;p&gt;&lt;span class="jCAhz ChMk0b"&gt;&lt;span class="ryNqvb"&gt;I have nRF Util v6.1.7.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="jCAhz ChMk0b"&gt;&lt;span class="ryNqvb"&gt;I didn&amp;#39;t understand what the command is to generate the DFU package containing application + bootloader + SD.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="jCAhz ChMk0b"&gt;&lt;span class="ryNqvb"&gt;I used the following command:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;nrfutil pkg generate --application app.hex --bootloader boot.hex out_file.zip --hw-version 1 --sd-req 0x100 --application-version 1 --bootloader-version 1 --key-file priv.pem&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;But it gives me the following error:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="text"&gt;Usage: nrfutil pkg generate [OPTIONS] ZIPFILE
Try &amp;#39;nrfutil pkg generate --help&amp;#39; for help.

Error: Invalid combination: use two .zip packages instead.&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Where am I wrong?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thanks.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How can I update the bootloader via bluetooth?</title><link>https://devzone.nordicsemi.com/thread/458499?ContentTypeID=1</link><pubDate>Fri, 01 Dec 2023 12:07:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ce3b3857-ff8c-41e9-aba1-fcadc0b857a4</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Yes, SD+BL+APP is supported. See the note in the documentation:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;sup&gt;4&lt;/sup&gt;The SD (+ BL) + APP update is done with two consecutive connections, unless a custom bootloader is used. First the SD (+ BL) is updated, then the bootloader will disconnect and the (new) BL will start advertising. Then the second connection to the bootloader will update the APP.&lt;/p&gt;
&lt;p&gt;However, the two SDs may have different IDs. The first update requires&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;--sd-req&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;to be set to the ID of the old SD. The APP update requires the ID of the new SD. The new ID must be set using&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;--sd-id&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;parameter. This parameter was added in nRF Util v3.1.0 and is required since v3.2.0 in case the package should contain SD (+ BL) + APP. Also, the new ID is copied to&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;--sd-req&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;list so that in case of a link loss during the APP update the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a title="A mechanism for upgrading the firmware of a device." href="https://infocenter.nordicsemi.com/topic/ug_nrfutil/dita_common/glossary/glossary.html#dfu"&gt;&lt;dfn&gt;DFU&lt;/dfn&gt;&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;process can be restarted. In this case, the new SD would overwrite itself, so&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;--sd-req&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;must contain the ID of the new SD.&lt;/p&gt;
&lt;/blockquote&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How can I update the bootloader via bluetooth?</title><link>https://devzone.nordicsemi.com/thread/458356?ContentTypeID=1</link><pubDate>Thu, 30 Nov 2023 15:06:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2578144f-7ef0-4513-9974-55e9e47c5b28</guid><dc:creator>Stefano1984</dc:creator><description>&lt;p&gt;&lt;span&gt;Thanks for the reply.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I use the following command to create the DFU package for my application software:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="text"&gt;nrfutil pkg generate --application app.hex app.zip --hw-version 1 --sd-req 0x100 --application-version 1 --key-file priv.pem&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I realized that I can&amp;#39;t create an application + bootloader package together.&lt;br /&gt;Can I create an application + softdevice + bootloader package together but leave the same softdevice version?&lt;br /&gt;In this way I can update both the application software and the bootloader without changing the softdevice. It&amp;#39;s possible?&lt;br /&gt;This way I will create a single DFU package right?&lt;br /&gt;Thank you.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How can I update the bootloader via bluetooth?</title><link>https://devzone.nordicsemi.com/thread/458293?ContentTypeID=1</link><pubDate>Thu, 30 Nov 2023 12:45:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4d0ca5f9-9cd4-419e-98ff-3f86d7fd84c2</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
[quote user=""]Now I want to understand if it is possible to create a DFU package to update the bootloader. it&amp;#39;s possible? What is the command to do this?[/quote]
&lt;p&gt;Yes, the command to generate bootloader update package is very similar to application, just replace the --application option with --bootloader:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;  --bootloader TEXT               The bootloader firmware file.
  --bootloader-version INTEGER    The bootloader version.&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;You can get all options and descriptions from nrfutil by using the help option, e.g.:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;&amp;gt;nrfutil pkg generate --help
Usage: nrfutil pkg generate [OPTIONS] ZIPFILE

  Generate a zip package for distribution to apps that support Nordic DFU OTA.
  The application, bootloader, and SoftDevice files are converted to .bin if
  supplied as .hex files. For more information on the generated package, see:
  http://developer.nordicsemi.com/nRF5_SDK/doc/

  The following combinations are supported by this command:

  * BL only: Supported.

  * SD only: Supported (SD of same Major Version).

  * APP only: Supported (external or internal).

  * BL + SD: Supported.

  * BL + APP: Not supported (use two packages instead).

  * BL + SD + APP: Supported.

  * SD + APP: Supported (SD of same Major Version).

Options:
  --debug-mode                    Debug mode switch, enables version check
                                  skipping.
  --application TEXT              The application firmware file.
  --application-version INTEGER   The application version.
  --application-version-string TEXT
                                  The application version string, e.g.
                                  &amp;quot;2.7.31&amp;quot;. Will be converted to an integer,
                                  e.g. 20731.
  --bootloader TEXT               The bootloader firmware file.
  --bootloader-version INTEGER    The bootloader version.
  --hw-version INTEGER            The hardware version.
  --sd-req TEXT                   The SoftDevice requirements. A comma-
                                  separated list of SoftDevice firmware IDs (1
                                  or more) of which one must be present on the
                                  target device. Each item on the list must be
                                  a two- or four-digit hex number prefixed
                                  with &amp;quot;0x&amp;quot; (e.g. &amp;quot;0x12&amp;quot;, &amp;quot;0x1234&amp;quot;). A non-
                                  exhaustive list of well-known values to use
                                  with this option follows:
                                  |s112_nrf52_6.0.0|0xA7|
                                  |s112_nrf52_6.1.0|0xB0|
                                  |s112_nrf52_6.1.1|0xB8|
                                  |s112_nrf52_7.0.0|0xC4|
                                  |s112_nrf52_7.0.1|0xCD|
                                  |s112_nrf52_7.2.0|0x103|
                                  |s112_nrf52_7.3.0|0x126|
                                  |s113_nrf52_7.0.0|0xC3|
                                  |s113_nrf52_7.0.1|0xCC|
                                  |s113_nrf52_7.2.0|0x102|
                                  |s113_nrf52_7.3.0|0x125|
                                  |s122_nrf52_8.0.0|0xEA|
                                  |s122_nrf52_8.1.1|0x112|
                                  |s130_nrf51_1.0.0|0x67|
                                  |s130_nrf51_2.0.0|0x80|
                                  |s130_nrf51_2.0.1|0x87|
                                  |s132_nrf52_2.0.0|0x81|
                                  |s132_nrf52_2.0.1|0x88|
                                  |s132_nrf52_3.0.0|0x8C|
                                  |s132_nrf52_3.1.0|0x91|
                                  |s132_nrf52_4.0.0|0x95|
                                  |s132_nrf52_4.0.2|0x98|
                                  |s132_nrf52_4.0.3|0x99|
                                  |s132_nrf52_4.0.4|0x9E|
                                  |s132_nrf52_4.0.5|0x9F|
                                  |s132_nrf52_5.0.0|0x9D|
                                  |s132_nrf52_5.1.0|0xA5|
                                  |s132_nrf52_6.0.0|0xA8|
                                  |s132_nrf52_6.1.0|0xAF|
                                  |s132_nrf52_6.1.1|0xB7|
                                  |s132_nrf52_7.0.0|0xC2|
                                  |s132_nrf52_7.0.1|0xCB|
                                  |s132_nrf52_7.2.0|0x101|
                                  |s132_nrf52_7.3.0|0x124|
                                  |s140_nrf52_6.0.0|0xA9|
                                  |s140_nrf52_6.1.0|0xAE|
                                  |s140_nrf52_6.1.1|0xB6|
                                  |s140_nrf52_7.0.0|0xC1|
                                  |s140_nrf52_7.0.1|0xCA|
                                  |s140_nrf52_7.2.0|0x100|
                                  |s140_nrf52_7.3.0|0x123|
                                  |s212_nrf52_6.1.1|0xBC|
                                  |s332_nrf52_6.1.1|0xBA|
                                  |s340_nrf52_6.1.1|0xB9|
  --sd-id TEXT                    The new SoftDevice ID to be used as --sd-req
                                  for the Application update in case the ZIP
                                  contains a SoftDevice and an Application.
  --softdevice TEXT               The SoftDevice firmware file.
  --sd-boot-validation [NO_VALIDATION|VALIDATE_GENERATED_CRC|VALIDATE_GENERATED_SHA256|VALIDATE_ECDSA_P256_SHA256]
                                  The method of boot validation for
                                  Softdevice.
  --app-boot-validation [NO_VALIDATION|VALIDATE_GENERATED_CRC|VALIDATE_GENERATED_SHA256|VALIDATE_ECDSA_P256_SHA256]
                                  The method of boot validation for
                                  application.
  --key-file FILE                 The private (signing) key in PEM format.
  --external-app                  Indicates that the FW upgrade is intended to
                                  be passed through (not applied on the
                                  receiving device)
  --zigbee BOOLEAN                Create an image and distribution package for
                                  Zigbee DFU server.
  --zigbee-manufacturer-id INTEGER
                                  Manufacturer ID to be used in Zigbee OTA
                                  header.
  --zigbee-image-type INTEGER     Image type to be used in Zigbee OTA header.
  --zigbee-comment TEXT           Firmware comment to be used in Zigbee OTA
                                  header.
  --zigbee-ota-hw-version INTEGER
                                  The zigbee OTA hw version.
  --zigbee-ota-fw-version INTEGER
                                  The zigbee OTA fw version.
  --zigbee-ota-min-hw-version INTEGER
                                  The zigbee OTA minimum hw version of Zigbee
                                  OTA Client.
  --zigbee-ota-max-hw-version INTEGER
                                  The zigbee OTA maximum hw version of Zigbee
                                  OTA Client.
  --help                          Show this message and exit.
&lt;/pre&gt;&lt;/p&gt;
[quote user=""]&lt;p&gt;I would also like to understand if I can create a single DFU package to simultaneously update the bootloader and application firmware.&lt;/p&gt;
&lt;p&gt;Table 1 of the user manual says no but is there a workaround?&lt;/p&gt;[/quote]
&lt;p&gt;No, this is not supported. You will have to create two separate zip-files for this.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;Jørgen&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>