diff --git a/examples/all-clusters-app/nrfconnect/CMakeLists.txt b/examples/all-clusters-app/nrfconnect/CMakeLists.txt
index aa1d64716f67da..7be0cb1b8d3458 100644
--- a/examples/all-clusters-app/nrfconnect/CMakeLists.txt
+++ b/examples/all-clusters-app/nrfconnect/CMakeLists.txt
@@ -69,3 +69,7 @@ chip_configure_data_model(app
if(CONFIG_CHIP_OTA_REQUESTOR)
target_sources(app PRIVATE ${NRFCONNECT_COMMON}/util/OTAUtil.cpp)
endif()
+
+if (CONFIG_SHELL AND BOARD STREQUAL "nrf52840dongle_nrf52840")
+ target_sources(app PRIVATE ${NRFCONNECT_COMMON}/util/DFUTrigger.cpp)
+endif()
diff --git a/examples/all-clusters-app/nrfconnect/README.md b/examples/all-clusters-app/nrfconnect/README.md
index 0b21af970bb412..f2b0657e1faa52 100644
--- a/examples/all-clusters-app/nrfconnect/README.md
+++ b/examples/all-clusters-app/nrfconnect/README.md
@@ -37,6 +37,8 @@ into an existing Matter network and can be controlled by this network.
- [Configuring the example](#configuring-the-example)
- [Example build types](#example-build-types)
- [Flashing and debugging](#flashing-and-debugging)
+ - [Flashing on the development kits](#nrfdks_flashing)
+ - [Flashing on the nRF52840 Dongle](#nrf52840dongle_flashing)
- [Testing the example](#testing-the-example)
- [Testing using CHIPTool](#testing-using-chiptool)
@@ -98,10 +100,11 @@ more information.
The example supports building and running on the following devices:
-| Hardware platform | Build target | Platform image |
-| ----------------------------------------------------------------------------------------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
-| [nRF52840 DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-DK) | `nrf52840dk_nrf52840` | nRF52840 DK
|
-| [nRF5340 DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF5340-DK) | `nrf5340dk_nrf5340_cpuapp` | nRF5340 DK
|
+| Hardware platform | Build target | Platform image |
+| ------------------------------------------------------------------------------------------------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| [nRF52840 DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-DK) | `nrf52840dk_nrf52840` | nRF52840 DK
|
+| [nRF5340 DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF5340-DK) | `nrf5340dk_nrf5340_cpuapp` | nRF5340 DK
|
+| [nRF52840 Dongle](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-Dongle) | `nrf52840dongle_nrf52840` | nRF52840 Dongle
|
@@ -113,6 +116,15 @@ This section lists the User Interface elements that you can use to control and
monitor the state of the device. These correspond to PCB components on the
platform image.
+> **Note**:
+>
+> The following Device UI elements are missing on the nRF52840 Dongle: **Button
+> 2**, **Button 3**, **Button 4**, **SEGGER J-Link USB port**, and **NFC port
+> with antenna attached**. You can collect logs from the nRF52840 Dongle using
+> the **nRF USB port** instead of the **SEGGER J-Link USB port**.
+> Functionalities associated with the remaining missing elements are
+> inaccessible.
+
**LED 1** shows the overall state of the device and its connectivity. The
following states are possible:
@@ -381,9 +393,11 @@ depending on the selected board:
command-line shell.
- release -- Release version of the application - can be used to enable only
the necessary application functionalities to optimize its performance. It
- has Device Firmware Upgrade feature enabled.
+ has Device Firmware Upgrade feature enabled. It can be used only for the
+ nRF52840 DK and nRF5340 DK, as only those platforms support the DFU.
- dfu -- Debug version of the application with Device Firmware Upgrade feature
- support.
+ support. It can be used only for the nRF52840 DK and nRF5340 DK, as only
+ those platforms support the DFU.
For more information, see the
[Configuring nRF Connect SDK examples](../../../docs/guides/nrfconnect_examples_configuration.md)
@@ -395,6 +409,13 @@ page.
## Flashing and debugging
+The flashing and debugging procedure is different for the development kits and
+the nRF52840 Dongle.
+
+
+
+### Flashing on the development kits
+
To flash the application to the device, use the west tool and run the following
command from the example directory:
@@ -408,6 +429,14 @@ directory:
$ west debug
+
+
+### Flashing on the nRF52840 Dongle
+
+Visit
+[Programming and Debugging nRF52840 Dongle](https://docs.zephyrproject.org/latest/boards/arm/nrf52840dongle_nrf52840/doc/index.html#programming-and-debugging)
+to read more about flashing on the nRF52840 Dongle.
+
## Testing the example
diff --git a/examples/all-clusters-app/nrfconnect/boards/nrf52840dongle_nrf52840.conf b/examples/all-clusters-app/nrfconnect/boards/nrf52840dongle_nrf52840.conf
new file mode 100644
index 00000000000000..dc8c38ed741291
--- /dev/null
+++ b/examples/all-clusters-app/nrfconnect/boards/nrf52840dongle_nrf52840.conf
@@ -0,0 +1,43 @@
+#
+# Copyright (c) 2022 Project CHIP Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# Configure logging over USB
+# - do enable shell to reduce flash usage
+# - disable CDC ACM logs as it may lead to infinite loop when CDC ACM is used as the log backend
+CONFIG_USB_DEVICE_STACK=y
+CONFIG_CONSOLE=y
+CONFIG_UART_CONSOLE=y
+CONFIG_LOG_BACKEND_UART=y
+CONFIG_SHELL_LOG_BACKEND=n
+CONFIG_UART_LINE_CTRL=y
+CONFIG_USB_CDC_ACM_LOG_LEVEL_OFF=y
+
+# The minimal logging mode does not work properly with the USB CDC device, so use the deferred mode
+CONFIG_LOG_MODE_MINIMAL=n
+CONFIG_LOG2_MODE_DEFERRED=y
+CONFIG_LOG_BUFFER_SIZE=8192
+
+# Reduce the code size as the dongle reserves some space for MBR and Open Bootloader
+CONFIG_ASSERT_VERBOSE=n
+CONFIG_SHELL=n
+CONFIG_OPENTHREAD_SHELL=n
+CONFIG_MATTER_LOG_LEVEL_INF=y
+
+# Use partition manager to configure the settings partition not to overlap with Open Bootloader
+CONFIG_PM_SINGLE_IMAGE=y
+
+# Enable CHIP pairing automatically on application start.
+CONFIG_CHIP_ENABLE_PAIRING_AUTOSTART=y
diff --git a/examples/all-clusters-app/nrfconnect/boards/nrf52840dongle_nrf52840.overlay b/examples/all-clusters-app/nrfconnect/boards/nrf52840dongle_nrf52840.overlay
new file mode 100644
index 00000000000000..848566b5f43702
--- /dev/null
+++ b/examples/all-clusters-app/nrfconnect/boards/nrf52840dongle_nrf52840.overlay
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2021 Project CHIP Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http: //www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+ / {
+ chosen {
+ zephyr,console = &cdc_acm_uart0;
+ };
+};
+
+&zephyr_udc0 {
+ cdc_acm_uart0: cdc_acm_uart0 {
+ compatible = "zephyr,cdc-acm-uart";
+ label = "CDC_ACM_0";
+ };
+};
diff --git a/examples/all-clusters-app/nrfconnect/main/main.cpp b/examples/all-clusters-app/nrfconnect/main/main.cpp
index bb67947911cad1..8f71ca55e41070 100644
--- a/examples/all-clusters-app/nrfconnect/main/main.cpp
+++ b/examples/all-clusters-app/nrfconnect/main/main.cpp
@@ -19,13 +19,51 @@
#include
+#if DT_NODE_HAS_COMPAT(DT_CHOSEN(zephyr_console), zephyr_cdc_acm_uart)
+#include
+#include
+#endif
+
LOG_MODULE_REGISTER(app, CONFIG_MATTER_LOG_LEVEL);
using namespace ::chip;
+#if DT_NODE_HAS_COMPAT(DT_CHOSEN(zephyr_console), zephyr_cdc_acm_uart)
+static int InitUSB()
+{
+ int err = usb_enable(nullptr);
+
+ if (err)
+ {
+ LOG_ERR("Failed to initialize USB device");
+ return err;
+ }
+
+ const struct device * dev = DEVICE_DT_GET(DT_CHOSEN(zephyr_console));
+ uint32_t dtr = 0;
+
+ while (!dtr)
+ {
+ uart_line_ctrl_get(dev, UART_LINE_CTRL_DTR, &dtr);
+ k_sleep(K_MSEC(100));
+ }
+
+ return 0;
+}
+#endif
+
int main()
{
- CHIP_ERROR err = AppTask::Instance().StartApp();
+ CHIP_ERROR err = CHIP_NO_ERROR;
+
+#if DT_NODE_HAS_COMPAT(DT_CHOSEN(zephyr_console), zephyr_cdc_acm_uart)
+ err = System::MapErrorZephyr(InitUSB());
+#endif
+
+ if (err == CHIP_NO_ERROR)
+ {
+ err = AppTask::Instance().StartApp();
+ }
LOG_ERR("Exited with code %" CHIP_ERROR_FORMAT, err.Format());
return err == CHIP_NO_ERROR ? EXIT_SUCCESS : EXIT_FAILURE;
diff --git a/examples/all-clusters-app/nrfconnect/pm_static_nrf52840dongle_nrf52840.yml b/examples/all-clusters-app/nrfconnect/pm_static_nrf52840dongle_nrf52840.yml
new file mode 100644
index 00000000000000..ad0f9426169e9d
--- /dev/null
+++ b/examples/all-clusters-app/nrfconnect/pm_static_nrf52840dongle_nrf52840.yml
@@ -0,0 +1,8 @@
+settings_storage:
+ address: 0xd8000
+ size: 0x8000
+ region: flash_primary
+open_bootloader:
+ address: 0xe0000
+ size: 0x20000
+ region: flash_primary
diff --git a/examples/lighting-app/nrfconnect/CMakeLists.txt b/examples/lighting-app/nrfconnect/CMakeLists.txt
index d3684e4d7b8199..934b0baca23b39 100644
--- a/examples/lighting-app/nrfconnect/CMakeLists.txt
+++ b/examples/lighting-app/nrfconnect/CMakeLists.txt
@@ -78,7 +78,7 @@ if(CONFIG_MCUMGR_SMP_BT)
target_sources(app PRIVATE ${NRFCONNECT_COMMON}/util/DFUOverSMP.cpp)
endif()
-if (BOARD STREQUAL "nrf52840dongle_nrf52840")
+if (CONFIG_SHELL AND BOARD STREQUAL "nrf52840dongle_nrf52840")
target_sources(app PRIVATE ${NRFCONNECT_COMMON}/util/DFUTrigger.cpp)
endif()
diff --git a/examples/lighting-app/nrfconnect/boards/nrf52840dongle_nrf52840.overlay b/examples/lighting-app/nrfconnect/boards/nrf52840dongle_nrf52840.overlay
index 5ccdd5561121ca..b9290884c459f3 100644
--- a/examples/lighting-app/nrfconnect/boards/nrf52840dongle_nrf52840.overlay
+++ b/examples/lighting-app/nrfconnect/boards/nrf52840dongle_nrf52840.overlay
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http: //www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-/ {
- chosen {
- zephyr,shell-uart = &cdc_acm_uart0;
+ / {
+ chosen {
+ zephyr,console = &cdc_acm_uart0;
};
};
diff --git a/examples/lighting-app/nrfconnect/boards/nrf52840dongle_nrf52840_no_dfu.conf b/examples/lighting-app/nrfconnect/boards/nrf52840dongle_nrf52840_no_dfu.conf
index ccf3ef33664471..1525056853f5bd 100644
--- a/examples/lighting-app/nrfconnect/boards/nrf52840dongle_nrf52840_no_dfu.conf
+++ b/examples/lighting-app/nrfconnect/boards/nrf52840dongle_nrf52840_no_dfu.conf
@@ -14,14 +14,26 @@
# limitations under the License.
#
-# Configure shell and logging over USB
+# Configure logging over USB
+# - do enable shell to reduce flash usage
+# - disable CDC ACM logs as it may lead to infinite loop when CDC ACM is used as the log backend
CONFIG_USB_DEVICE_STACK=y
-CONFIG_UART_INTERRUPT_DRIVEN=y
+CONFIG_CONSOLE=y
+CONFIG_UART_CONSOLE=y
+CONFIG_LOG_BACKEND_UART=y
+CONFIG_SHELL_LOG_BACKEND=n
CONFIG_UART_LINE_CTRL=y
-CONFIG_SHELL_BACKEND_SERIAL_INIT_PRIORITY=51
+CONFIG_USB_CDC_ACM_LOG_LEVEL_OFF=y
# The minimal logging mode does not work properly with the USB CDC device, so use the deferred mode
CONFIG_LOG_MODE_MINIMAL=n
-CONFIG_LOG_MODE_DEFERRED=y
-CONFIG_LOG_STRDUP_MAX_STRING=128
-CONFIG_LOG_STRDUP_BUF_COUNT=24
+CONFIG_LOG2_MODE_DEFERRED=y
+CONFIG_LOG_BUFFER_SIZE=8192
+
+# Reduce the code size as the dongle reserves some space for MBR and Open Bootloader
+CONFIG_ASSERT_VERBOSE=n
+CONFIG_SHELL=n
+CONFIG_OPENTHREAD_SHELL=n
+
+# Use partition manager to configure the settings partition not to overlap with Open Bootloader
+CONFIG_PM_SINGLE_IMAGE=y
diff --git a/examples/lighting-app/nrfconnect/main/main.cpp b/examples/lighting-app/nrfconnect/main/main.cpp
index 1e9668b977bcd8..0b718e25fa2e84 100644
--- a/examples/lighting-app/nrfconnect/main/main.cpp
+++ b/examples/lighting-app/nrfconnect/main/main.cpp
@@ -26,7 +26,8 @@
#include "Rpc.h"
#endif
-#ifdef CONFIG_USB_DEVICE_STACK
+#if DT_NODE_HAS_COMPAT(DT_CHOSEN(zephyr_console), zephyr_cdc_acm_uart)
+#include
#include
#endif
@@ -34,6 +35,30 @@ LOG_MODULE_REGISTER(app, CONFIG_MATTER_LOG_LEVEL);
using namespace ::chip;
+#if DT_NODE_HAS_COMPAT(DT_CHOSEN(zephyr_console), zephyr_cdc_acm_uart)
+static int InitUSB()
+{
+ int err = usb_enable(nullptr);
+
+ if (err)
+ {
+ LOG_ERR("Failed to initialize USB device");
+ return err;
+ }
+
+ const struct device * dev = DEVICE_DT_GET(DT_CHOSEN(zephyr_console));
+ uint32_t dtr = 0;
+
+ while (!dtr)
+ {
+ uart_line_ctrl_get(dev, UART_LINE_CTRL_DTR, &dtr);
+ k_sleep(K_MSEC(100));
+ }
+
+ return 0;
+}
+#endif
+
int main()
{
CHIP_ERROR err = CHIP_NO_ERROR;
@@ -42,12 +67,8 @@ int main()
rpc::Init();
#endif
-#ifdef CONFIG_USB_DEVICE_STACK
- err = System::MapErrorZephyr(usb_enable(nullptr));
- if (err != CHIP_NO_ERROR)
- {
- LOG_ERR("Failed to initialize USB device");
- }
+#if DT_NODE_HAS_COMPAT(DT_CHOSEN(zephyr_console), zephyr_cdc_acm_uart)
+ err = System::MapErrorZephyr(InitUSB());
#endif
if (err == CHIP_NO_ERROR)
diff --git a/examples/lighting-app/nrfconnect/pm_static_nrf52840dongle_nrf52840_no_dfu.yml b/examples/lighting-app/nrfconnect/pm_static_nrf52840dongle_nrf52840_no_dfu.yml
new file mode 100644
index 00000000000000..ad0f9426169e9d
--- /dev/null
+++ b/examples/lighting-app/nrfconnect/pm_static_nrf52840dongle_nrf52840_no_dfu.yml
@@ -0,0 +1,8 @@
+settings_storage:
+ address: 0xd8000
+ size: 0x8000
+ region: flash_primary
+open_bootloader:
+ address: 0xe0000
+ size: 0x20000
+ region: flash_primary
diff --git a/scripts/build/build/targets.py b/scripts/build/build/targets.py
index e17d1e13e6a814..fccafc88af41f9 100644
--- a/scripts/build/build/targets.py
+++ b/scripts/build/build/targets.py
@@ -382,10 +382,12 @@ def NrfTargets():
target.Extend('nrf52840dk', board=NrfBoard.NRF52840DK),
]
- # Enable nrf52840dongle for lighting app only
+ # Enable nrf52840dongle for all-clusters and lighting app only
+ yield target.Extend('nrf52840dongle-all-clusters', board=NrfBoard.NRF52840DONGLE, app=NrfApp.ALL_CLUSTERS)
yield target.Extend('nrf52840dongle-light', board=NrfBoard.NRF52840DONGLE, app=NrfApp.LIGHT)
for target in targets:
+ yield target.Extend('all-clusters', app=NrfApp.ALL_CLUSTERS)
yield target.Extend('lock', app=NrfApp.LOCK)
yield target.Extend('light', app=NrfApp.LIGHT)
yield target.Extend('shell', app=NrfApp.SHELL)
diff --git a/scripts/build/builders/nrf.py b/scripts/build/builders/nrf.py
index 4bfb80961ab8e6..a5a05a2c58abe9 100644
--- a/scripts/build/builders/nrf.py
+++ b/scripts/build/builders/nrf.py
@@ -21,6 +21,7 @@
class NrfApp(Enum):
+ ALL_CLUSTERS = auto()
LIGHT = auto()
LOCK = auto()
SHELL = auto()
@@ -29,7 +30,9 @@ class NrfApp(Enum):
UNIT_TESTS = auto()
def AppPath(self):
- if self == NrfApp.LIGHT:
+ if self == NrfApp.ALL_CLUSTERS:
+ return 'examples/all-clusters-app'
+ elif self == NrfApp.LIGHT:
return 'examples/lighting-app'
elif self == NrfApp.LOCK:
return 'examples/lock-app'
@@ -45,7 +48,9 @@ def AppPath(self):
raise Exception('Unknown app type: %r' % self)
def AppNamePrefix(self):
- if self == NrfApp.LIGHT:
+ if self == NrfApp.ALL_CLUSTERS:
+ return 'chip-nrf-all-clusters-example'
+ elif self == NrfApp.LIGHT:
return 'chip-nrf-lighting-example'
elif self == NrfApp.LOCK:
return 'chip-nrf-lock-example'
@@ -61,7 +66,9 @@ def AppNamePrefix(self):
raise Exception('Unknown app type: %r' % self)
def _FlashBundlePrefix(self):
- if self == NrfApp.LIGHT:
+ if self == NrfApp.ALL_CLUSTERS:
+ return 'chip-nrfconnect-all-clusters-example'
+ elif self == NrfApp.LIGHT:
return 'chip-nrfconnect-lighting-example'
elif self == NrfApp.LOCK:
return 'chip-nrfconnect-lock-example'
@@ -148,7 +155,7 @@ def generate(self):
if self.enable_rpcs:
flags.append("-DOVERLAY_CONFIG=rpc.overlay")
- if self.board == NrfBoard.NRF52840DONGLE:
+ if self.board == NrfBoard.NRF52840DONGLE and self.app != NrfApp.ALL_CLUSTERS:
flags.append("-DCONF_FILE=prj_no_dfu.conf")
build_flags = " -- " + " ".join(flags) if len(flags) > 0 else ""
diff --git a/scripts/build/testdata/all_targets_except_host.txt b/scripts/build/testdata/all_targets_except_host.txt
index a25205367182fa..e98006e8cc4320 100644
--- a/scripts/build/testdata/all_targets_except_host.txt
+++ b/scripts/build/testdata/all_targets_except_host.txt
@@ -173,13 +173,16 @@ mbed-CY8CPROTO_062_4343W-shell-debug (NOGLOB: Compile only for debugging purpose
mbed-CY8CPROTO_062_4343W-shell-develop (NOGLOB: Compile only for debugging purpose - https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html)
mbed-CY8CPROTO_062_4343W-shell-release
nrf-native-posix-64-tests
+nrf-nrf52840dk-all-clusters
nrf-nrf52840dk-light
nrf-nrf52840dk-light-rpc
nrf-nrf52840dk-lock
nrf-nrf52840dk-pump
nrf-nrf52840dk-pump-controller
nrf-nrf52840dk-shell
+nrf-nrf52840dongle-all-clusters
nrf-nrf52840dongle-light
+nrf-nrf5340dk-all-clusters
nrf-nrf5340dk-light
nrf-nrf5340dk-light-rpc (NOGLOB: Compile failure due to pw_build args not forwarded to proto compiler. https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/66760)
nrf-nrf5340dk-lock
diff --git a/scripts/build/testdata/build_all_except_host.txt b/scripts/build/testdata/build_all_except_host.txt
index 47f3ad2bcc53ad..2288e77a73b7a1 100644
--- a/scripts/build/testdata/build_all_except_host.txt
+++ b/scripts/build/testdata/build_all_except_host.txt
@@ -818,6 +818,11 @@ bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh";
export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR";
west build --cmake-only -d {out}/nrf-native-posix-64-tests -b native_posix_64 {root}/src/test_driver/nrfconnect'
+# Generating nrf-nrf52840dk-all-clusters
+bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh";
+export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR";
+west build --cmake-only -d {out}/nrf-nrf52840dk-all-clusters -b nrf52840dk_nrf52840 {root}/examples/all-clusters-app/nrfconnect'
+
# Generating nrf-nrf52840dk-light
bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh";
export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR";
@@ -848,11 +853,21 @@ bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh";
export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR";
west build --cmake-only -d {out}/nrf-nrf52840dk-shell -b nrf52840dk_nrf52840 {root}/examples/shell/nrfconnect'
+# Generating nrf-nrf52840dongle-all-clusters
+bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh";
+export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR";
+west build --cmake-only -d {out}/nrf-nrf52840dongle-all-clusters -b nrf52840dongle_nrf52840 {root}/examples/all-clusters-app/nrfconnect'
+
# Generating nrf-nrf52840dongle-light
bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh";
export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR";
west build --cmake-only -d {out}/nrf-nrf52840dongle-light -b nrf52840dongle_nrf52840 {root}/examples/lighting-app/nrfconnect -- -DCONF_FILE=prj_no_dfu.conf'
+# Generating nrf-nrf5340dk-all-clusters
+bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh";
+export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR";
+west build --cmake-only -d {out}/nrf-nrf5340dk-all-clusters -b nrf5340dk_nrf5340_cpuapp {root}/examples/all-clusters-app/nrfconnect'
+
# Generating nrf-nrf5340dk-light
bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh";
export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR";
@@ -1725,6 +1740,9 @@ ninja -C {out}/nrf-native-posix-64-tests
# Run Tests nrf-native-posix-64-tests
ctest --build-nocmake -V --output-on-failure --test-dir {out}/nrf-native-posix-64-tests
+# Building nrf-nrf52840dk-all-clusters
+ninja -C {out}/nrf-nrf52840dk-all-clusters
+
# Building nrf-nrf52840dk-light
ninja -C {out}/nrf-nrf52840dk-light
@@ -1743,9 +1761,15 @@ ninja -C {out}/nrf-nrf52840dk-pump-controller
# Building nrf-nrf52840dk-shell
ninja -C {out}/nrf-nrf52840dk-shell
+# Building nrf-nrf52840dongle-all-clusters
+ninja -C {out}/nrf-nrf52840dongle-all-clusters
+
# Building nrf-nrf52840dongle-light
ninja -C {out}/nrf-nrf52840dongle-light
+# Building nrf-nrf5340dk-all-clusters
+ninja -C {out}/nrf-nrf5340dk-all-clusters
+
# Building nrf-nrf5340dk-light
ninja -C {out}/nrf-nrf5340dk-light
diff --git a/scripts/build/testdata/glob_star_targets_except_host.txt b/scripts/build/testdata/glob_star_targets_except_host.txt
index b28e45f29b39e9..3a33331cd5332b 100644
--- a/scripts/build/testdata/glob_star_targets_except_host.txt
+++ b/scripts/build/testdata/glob_star_targets_except_host.txt
@@ -55,13 +55,16 @@ mbed-CY8CPROTO_062_4343W-lock-release
mbed-CY8CPROTO_062_4343W-pigweed-release
mbed-CY8CPROTO_062_4343W-shell-release
nrf-native-posix-64-tests
+nrf-nrf52840dk-all-clusters
nrf-nrf52840dk-light
nrf-nrf52840dk-light-rpc
nrf-nrf52840dk-lock
nrf-nrf52840dk-pump
nrf-nrf52840dk-pump-controller
nrf-nrf52840dk-shell
+nrf-nrf52840dongle-all-clusters
nrf-nrf52840dongle-light
+nrf-nrf5340dk-all-clusters
nrf-nrf5340dk-light
nrf-nrf5340dk-lock
nrf-nrf5340dk-pump