Skip to content

Commit f3ac9cf

Browse files
kapi-nojukkar
authored andcommitted
samples: bluetooth: fast_pair: locator_tag: add nRF54H20 DK support
Added support for the nRF54H20 DK build target in the Fast Pair Locator Tag sample. Ref: NCSDK-30339 Signed-off-by: Kamil Piszczek <[email protected]>
1 parent d677123 commit f3ac9cf

File tree

10 files changed

+135
-24
lines changed

10 files changed

+135
-24
lines changed

doc/nrf/releases_and_maturity/releases/release-notes-changelog.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,9 @@ Bluetooth samples
238238
Bluetooth Fast Pair samples
239239
---------------------------
240240

241-
|no_changes_yet_note|
241+
* :ref:`fast_pair_locator_tag` sample:
242+
243+
* Added support for the :ref:`zephyr:nrf54h20dk_nrf54h20` board target.
242244

243245
Bluetooth Mesh samples
244246
----------------------

samples/bluetooth/fast_pair/locator_tag/Kconfig.sysbuild

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ config BT_FAST_PAIR
1010
config APP_DFU
1111
bool "Enable MCUmgr OTA DFU over Bluetooth"
1212
default y
13-
depends on BOOTLOADER_MCUBOOT
13+
depends on BOOTLOADER_MCUBOOT || SOC_SERIES_NRF54HX
14+
help
15+
This option enables the DFU functionality in this application.
16+
The DFU solution is supported for the MCUboot-based targets
17+
(BOOTLOADER_MCUBOOT Kconfig) and for the SUIT-based targets
18+
(SOC_SERIES_NRF54HX Kconfig).
1419

1520
source "${ZEPHYR_BASE}/share/sysbuild/Kconfig"

samples/bluetooth/fast_pair/locator_tag/README.rst

Lines changed: 61 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -135,11 +135,17 @@ To start Fast Pair discoverable advertising after the FMDN unprovisioning and fa
135135
Device Firmware Update (DFU)
136136
============================
137137

138-
The locator tag sample uses the :ref:`MCUboot <mcuboot:mcuboot_ncs>` bootloader firmware image, enabling application firmware image upgrades through the :ref:`app_dfu` procedure.
139-
Over-the-air updates are supported using MCUmgr's Simple Management Protocol (SMP) over Bluetooth.
138+
The locator tag sample supports over-the-air updates using MCUmgr's Simple Management Protocol (SMP) over Bluetooth.
139+
The application configures the appropriate DFU solution in relation to the selected board target (see the following table for more details).
140+
The following DFU solutions are supported in this sample:
141+
142+
* The :ref:`MCUboot <mcuboot:mcuboot_ncs>` bootloader solution.
143+
See the :ref:`app_dfu` user guide for more information.
144+
* The Software Update for Internet of Things (SUIT) solution.
145+
See the :ref:`SUIT <ug_nrf54h20_suit_dfu>` user guide for more information.
140146

141147
To enable the DFU functionality use the ``SB_CONFIG_APP_DFU`` sysbuild Kconfig option.
142-
It is enabled by default if the MCUboot bootloader image is used.
148+
This option is enabled by default if a supported DFU solution is configured (see the following table to learn about supported configurations).
143149

144150
To select a specific version of the application, change the :file:`VERSION` file in the sample root directory.
145151
See the :ref:`zephyr:app-version-details` for details.
@@ -151,21 +157,23 @@ See the :ref:`zephyr:app-version-details` for details.
151157
* :kconfig:option:`CONFIG_BT_FAST_PAIR_FMDN_DULT_FIRMWARE_VERSION_MINOR`
152158
* :kconfig:option:`CONFIG_BT_FAST_PAIR_FMDN_DULT_FIRMWARE_VERSION_REVISION`
153159

154-
The bootloader configuration varies depending on the board target:
155-
156-
+-----------------------------------------+------------------------------------------------------------+
157-
| Bootloader configuration | Board targets |
158-
+=========================================+============================================================+
159-
| MCUboot, direct-xip mode without revert | * ``nrf52dk/nrf52832`` (only ``release`` configuration) |
160-
| | * ``nrf52833dk/nrf52833`` (only ``release`` configuration) |
161-
| | * ``nrf52840dk/nrf52840`` |
162-
| | * ``nrf54l15dk/nrf54l15/cpuapp`` |
163-
+-----------------------------------------+------------------------------------------------------------+
164-
| MCUboot, overwrite only mode | * ``nrf5340dk/nrf5340/cpuapp`` |
165-
| | * ``nrf5340dk/nrf5340/cpuapp/ns`` |
166-
| | * ``thingy53/nrf5340/cpuapp`` |
167-
| | * ``thingy53/nrf5340/cpuapp/ns`` |
168-
+-----------------------------------------+------------------------------------------------------------+
160+
The configuration of the DFU solution varies depending on the board target:
161+
162+
+--------------+--------------------------------+------------------------------------------------------------+
163+
| DFU solution | Mode of operation | Board targets |
164+
+==============+================================+============================================================+
165+
| MCUboot | direct-xip mode without revert | * ``nrf52dk/nrf52832`` (only ``release`` configuration) |
166+
| | | * ``nrf52833dk/nrf52833`` (only ``release`` configuration) |
167+
| | | * ``nrf52840dk/nrf52840`` |
168+
| | | * ``nrf54l15dk/nrf54l15/cpuapp`` |
169+
+--------------+--------------------------------+------------------------------------------------------------+
170+
| MCUboot | overwrite only mode | * ``nrf5340dk/nrf5340/cpuapp`` |
171+
| | | * ``nrf5340dk/nrf5340/cpuapp/ns`` |
172+
| | | * ``thingy53/nrf5340/cpuapp`` |
173+
| | | * ``thingy53/nrf5340/cpuapp/ns`` |
174+
+--------------+--------------------------------+------------------------------------------------------------+
175+
| SUIT | overwrite only mode | * ``nrf54h20dk/nrf54h20/cpuapp`` |
176+
+--------------+--------------------------------+------------------------------------------------------------+
169177

170178
DFU mode
171179
--------
@@ -457,7 +465,7 @@ SB_CONFIG_APP_DFU
457465
The sample sysbuild configuration option enables the Device Firmware Update (DFU) functionality.
458466
The value of this option is propagated to the application configuration option :ref:`CONFIG_APP_DFU <CONFIG_APP_DFU>`.
459467
On multi-core devices, it adds the Kconfig fragment to the network core image configuration which speeds up the DFU process.
460-
By default, this option is enabled if the MCUboot bootloader image is used.
468+
This option is enabled by default if the MCUboot bootloader image is used (``SB_CONFIG_BOOTLOADER_MCUBOOT``) or if the chosen board target is based on an nRF54H Series SoC (``SB_CONFIG_SOC_SERIES_NRF54HX``).
461469

462470
.. _CONFIG_APP_DFU:
463471

@@ -924,7 +932,7 @@ To perform the DFU procedure, complete the following steps:
924932
:start-after: fota_upgrades_over_ble_nrfcdm_common_dfu_steps_start
925933
:end-before: fota_upgrades_over_ble_nrfcdm_common_dfu_steps_end
926934

927-
.. group-tab:: nRF54 DKs
935+
.. group-tab:: nRF54L DKs
928936

929937
1. Observe that **LED 0** is blinking at a 1 second interval, which indicates that the DFU mode is disabled.
930938
#. Press the **Button 3** for 7 seconds or more to enter the DFU mode.
@@ -936,6 +944,37 @@ To perform the DFU procedure, complete the following steps:
936944
:start-after: fota_upgrades_over_ble_nrfcdm_common_dfu_steps_start
937945
:end-before: fota_upgrades_over_ble_nrfcdm_common_dfu_steps_end
938946

947+
.. group-tab:: nRF54H DKs
948+
949+
1. Observe that **LED 0** is blinking at a 1 second interval, which indicates that the DFU mode is disabled.
950+
#. Press the **Button 3** for 7 seconds or more to enter the DFU mode.
951+
#. Observe that **LED 0** is blinking at a 0.25 second interval, which indicates that the DFU mode is enabled.
952+
#. Observe that **LED 2** is blinking, which indicates that the Fast Pair advertising is enabled.
953+
#. Perform DFU using the `nRF Connect Device Manager`_ mobile app:
954+
955+
1. Generate the SUIT envelope by building your application with the FOTA support over Bluetooth Low Energy.
956+
You can find the generated :file:`root.suit` envelope in the :file:`<build_dir>/DFU` directory.
957+
Alternatively, you can use the generated :file:`dfu_suit.zip` package in the :file:`<build_dir>/zephyr` directory.
958+
#. Download the :file:`root.suit` envelope or the :file:`dfu_suit.zip` package to your device.
959+
960+
.. note::
961+
`nRF Connect for Desktop`_ does not currently support the FOTA process.
962+
963+
#. Use the `nRF Connect Device Manager`_ mobile app to update your device with the new firmware.
964+
965+
a. Ensure that you can access the :file:`root.suit` envelope or the :file:`dfu_suit.zip` package from your phone or tablet.
966+
#. In the mobile app, scan and select the device to update.
967+
#. Switch to the :guilabel:`Image` tab.
968+
#. In the **Firmware Upgrade** section, tap the :guilabel:`SELECT FILE` button and select the :file:`root.suit` envelope or the :file:`dfu_suit.zip` package.
969+
#. Tap the :guilabel:`START` button.
970+
#. Wait for the DFU to finish and verify that the application works properly.
971+
972+
.. note::
973+
Support for SUIT updates is available starting from the following versions of the `nRF Connect Device Manager`_ mobile app:
974+
975+
* Version ``2.0`` on Android.
976+
* Version ``1.7`` on iOS.
977+
939978
Disabling the locator tag
940979
-------------------------
941980

@@ -1081,6 +1120,7 @@ Device Firmware Update (DFU)
10811120

10821121
This sample uses following components for the DFU functionality:
10831122

1084-
* :ref:`MCUboot bootloader <mcuboot:mcuboot_ncs>`
1123+
* :ref:`MCUboot bootloader <mcuboot:mcuboot_ncs>` (for supported board targets)
1124+
* :ref:`SUIT <ug_nrf54h20_suit_dfu>` (for supported board targets)
10851125
* :ref:`zephyr:app-version-details`
10861126
* :ref:`zephyr:mcu_mgr`
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#
2+
# Copyright (c) 2024 Nordic Semiconductor ASA
3+
#
4+
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
#
6+
7+
CONFIG_SUIT=y
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
* Copyright (c) 2024 Nordic Semiconductor ASA
3+
*
4+
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
*/
6+
7+
/* Decrease the storage partition size by 0x1000 bytes and move it 0x1000 bytes forward
8+
* in the address space to create a place for the Fast Pair partition. Define the Fast
9+
* Pair partition in the provided memory gap.
10+
*/
11+
&mram1x {
12+
/delete-node/ cpuapp-rw-partitions;
13+
14+
cpuapp_rw_partitions: cpuapp-rw-partitions {
15+
compatible = "nordic,owned-partitions", "fixed-partitions";
16+
status = "okay";
17+
nordic,access = <NRF_OWNER_ID_APPLICATION NRF_PERM_RWS>;
18+
#address-cells = <1>;
19+
#size-cells = <1>;
20+
21+
dfu_partition: partition@100000 {
22+
reg = <0x100000 DT_SIZE_K(908)>;
23+
};
24+
25+
/* Align the partition size to 4096 B to avoid gaps. */
26+
bt_fast_pair_partition: partition@1e3000 {
27+
reg = <0x1e3000 DT_SIZE_K(4)>;
28+
};
29+
30+
storage_partition: partition@1e4000 {
31+
reg = <0x1e4000 DT_SIZE_K(20)>;
32+
};
33+
};
34+
};
35+
36+
/* Enable the IPC configuration with the Secure Domain to support SUIT DFU. */
37+
&cpusec_cpuapp_ipc {
38+
status = "okay";
39+
};
40+
41+
/* Enable the Secure Domain signalling mechanism used by IPC to support SUIT DFU. */
42+
&cpusec_bellboard {
43+
status = "okay";
44+
};

samples/bluetooth/fast_pair/locator_tag/configuration/prj.conf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,5 +89,6 @@ CONFIG_BT_FAST_PAIR_FMDN_DULT_FIRMWARE_VERSION_REVISION=99
8989
# * nrf52833dk/nrf52833
9090
# * nrf52840dk/nrf52840
9191
# * nrf5340dk/nrf5340/cpuapp(/ns)
92+
# * nrf54h20dk/nrf54h20/cpuapp
9293
CONFIG_BT_ADV_PROV_TX_POWER_CORRECTION_VAL=-15
9394
CONFIG_BT_FAST_PAIR_FMDN_TX_POWER_CORRECTION_VAL=-15

samples/bluetooth/fast_pair/locator_tag/configuration/prj_release.conf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,5 +98,6 @@ CONFIG_BT_FAST_PAIR_FMDN_DULT_FIRMWARE_VERSION_REVISION=99
9898
# * nrf52833dk/nrf52833
9999
# * nrf52840dk/nrf52840
100100
# * nrf5340dk/nrf5340/cpuapp(/ns)
101+
# * nrf54h20dk/nrf54h20/cpuapp
101102
CONFIG_BT_ADV_PROV_TX_POWER_CORRECTION_VAL=-15
102103
CONFIG_BT_FAST_PAIR_FMDN_TX_POWER_CORRECTION_VAL=-15

samples/bluetooth/fast_pair/locator_tag/sample.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ tests:
1212
- nrf5340dk/nrf5340/cpuapp
1313
- nrf5340dk/nrf5340/cpuapp/ns
1414
- nrf54l15dk/nrf54l15/cpuapp
15+
- nrf54h20dk/nrf54h20/cpuapp
1516
- thingy53/nrf5340/cpuapp
1617
- thingy53/nrf5340/cpuapp/ns
1718
platform_allow:
@@ -21,6 +22,7 @@ tests:
2122
- nrf5340dk/nrf5340/cpuapp
2223
- nrf5340dk/nrf5340/cpuapp/ns
2324
- nrf54l15dk/nrf54l15/cpuapp
25+
- nrf54h20dk/nrf54h20/cpuapp
2426
- thingy53/nrf5340/cpuapp
2527
- thingy53/nrf5340/cpuapp/ns
2628
tags: bluetooth ci_build sysbuild
@@ -34,6 +36,7 @@ tests:
3436
- nrf5340dk/nrf5340/cpuapp
3537
- nrf5340dk/nrf5340/cpuapp/ns
3638
- nrf54l15dk/nrf54l15/cpuapp
39+
- nrf54h20dk/nrf54h20/cpuapp
3740
- thingy53/nrf5340/cpuapp
3841
- thingy53/nrf5340/cpuapp/ns
3942
platform_allow:
@@ -43,6 +46,7 @@ tests:
4346
- nrf5340dk/nrf5340/cpuapp
4447
- nrf5340dk/nrf5340/cpuapp/ns
4548
- nrf54l15dk/nrf54l15/cpuapp
49+
- nrf54h20dk/nrf54h20/cpuapp
4650
- thingy53/nrf5340/cpuapp
4751
- thingy53/nrf5340/cpuapp/ns
4852
tags: bluetooth ci_build sysbuild

samples/bluetooth/fast_pair/locator_tag/src/Kconfig.dfu

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
config APP_DFU
88
bool "Enable MCUmgr OTA DFU over Bluetooth"
99
select NCS_SAMPLE_MCUMGR_BT_OTA_DFU
10-
depends on BOOTLOADER_MCUBOOT
10+
depends on BOOTLOADER_MCUBOOT || SUIT
1111
help
1212
Enable support for Device Firmware Update (DFU) over MCUmgr & SMP BT.
1313

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#
2+
# Copyright (c) 2024 Nordic Semiconductor
3+
#
4+
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
#
6+
7+
SB_CONFIG_NETCORE_IPC_RADIO=y

0 commit comments

Comments
 (0)