Skip to content

Commit 340b625

Browse files
kkasperczyk-noArekBalysNordic
authored andcommitted
applications: Added support for nRF54LM20 in Matter bridge
Added support for nRF54LM20 DK and nRF7002 EBII in Matter bridge application. Signed-off-by: Kamil Kasperczyk <kamil.kasperczyk@nordicsemi.no>
1 parent 194e742 commit 340b625

22 files changed

+474
-7
lines changed

applications/matter_bridge/Kconfig.sysbuild

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,14 @@ config DFU_MULTI_IMAGE_PACKAGE_NET
6060

6161
endif # SOC_SERIES_NRF53X
6262

63+
if BOARD_NRF54LM20DK
64+
65+
# Disable checking the external drivers for nRF54LM20 DK.
66+
config PM_OVERRIDE_EXTERNAL_DRIVER_CHECK
67+
default y
68+
69+
endif # BOARD_NRF54LM20DK
70+
6371
endif # BOOTLOADER_MCUBOOT
6472

6573
# Store the Wi-Fi firmware patch on external flash by default for nRF5340 with nRF7002

applications/matter_bridge/boards/nrf5340dk_nrf5340_cpuapp.conf

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
CONFIG_BT_MAX_CONN=10
99

1010
# Set buffer sizes in a consistent way with the ones used by the network core.
11-
#id if oncomment it there is an error that rx buffer is out of range (minimal value is 69)
1211
CONFIG_BT_BUF_ACL_RX_SIZE=69
1312
CONFIG_BT_BUF_ACL_TX_SIZE=69
1413

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#
2+
# Copyright (c) 2025 Nordic Semiconductor ASA
3+
#
4+
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
#
6+
7+
# Set 10 BLE connections, as it is an upper limit supported caused by RAM usage due to using Thread and BLE at same time.
8+
CONFIG_BT_MAX_CONN=10
9+
10+
# Decrease BT buffer sizes to free some RAM and support 10 Bluetooth LE connections
11+
CONFIG_BT_BUF_ACL_RX_SIZE=69
12+
CONFIG_BT_BUF_ACL_TX_SIZE=69
13+
14+
# Set MTU size to fit in the single buffer and avoid fragmentation (BUF_SIZE = MTU_SIZE + 4 B of L2CAP header).
15+
CONFIG_BT_L2CAP_TX_MTU=65
16+
17+
# Increase BT RX stack size due to BT security usage
18+
CONFIG_BT_RX_STACK_SIZE=2560
19+
20+
# Set max number of bridged Bluetooth LE devices, which is CONFIG_BT_MAX_CONN-1, as 1 connection is reserved for Matter.
21+
CONFIG_BRIDGE_MAX_BRIDGED_DEVICES_NUMBER=9
22+
CONFIG_BT_MAX_PAIRED=9
23+
24+
# Assume that every bridged device uses two endpoints, however it can be increased if specific use case requires it.
25+
CONFIG_BRIDGE_MAX_DYNAMIC_ENDPOINTS_NUMBER=18
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor ASA
3+
*
4+
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
*/
6+
7+
/ {
8+
chosen {
9+
nordic,pm-ext-flash = &mx25r64;
10+
};
11+
12+
aliases {
13+
/* Use watchdog wdt31 as the application watchdog */
14+
watchdog0 = &wdt31;
15+
};
16+
};
17+
18+
&mx25r64 {
19+
status = "okay";
20+
};
21+
22+
&wdt31 {
23+
status = "okay";
24+
};
25+
26+
/* Workaround: Redirect Button3 to different pin as for now because it causes issues with
27+
* nrf7002EB2 shield. For now rewire button3 to button2. Related to SHEL-3874.
28+
*/
29+
&button3 {
30+
gpios = <&gpio1 0x8 0x11>;
31+
};
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor ASA
3+
*
4+
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
*/
6+
7+
/ {
8+
aliases {
9+
/* Use watchdog wdt31 as the application watchdog */
10+
watchdog0 = &wdt31;
11+
};
12+
};
13+
14+
&mx25r64 {
15+
status = "disabled";
16+
};
17+
18+
&wdt31 {
19+
status = "okay";
20+
};
21+
22+
/* Workaround: Redirect Button3 to different pin as for now because it causes issues with
23+
* nrf7002EB2 shield. For now rewire button3 to button2. Related to SHEL-3874.
24+
*/
25+
&button3 {
26+
gpios = <&gpio1 0x8 0x11>;
27+
};

applications/matter_bridge/doc/matter_bridge_description.rst

Lines changed: 43 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ User interface
167167

168168
.. include:: /includes/matter_segger_usb.txt
169169

170-
.. group-tab:: nrf54 DKs
170+
.. group-tab:: nRF54LM20 DK
171171

172172
Button 0:
173173
.. include:: /includes/matter_sample_button.txt
@@ -589,7 +589,7 @@ The current maximum number of Bluetooth LE connections that can be selected usin
589589

590590
.. tabs::
591591

592-
.. group-tab:: Matter-Bridge over Wi-Fi
592+
.. group-tab:: Matter bridge over Wi-Fi
593593

594594
You can increase the number of Bluetooth LE connections if you decrease the size of the Bluetooth LE TX/RX buffers used by the Bluetooth controller, but this will decrease the communication throughput.
595595

@@ -600,6 +600,32 @@ The current maximum number of Bluetooth LE connections that can be selected usin
600600
601601
west build -b nrf7002dk/nrf5340/cpuapp -- -DCONFIG_BRIDGED_DEVICE_BT=y -DEXTRA_CONF_FILE="overlay-bt_max_connections_app.conf" -Dipc_radio_EXTRA_CONF_FILE="overlay-bt_max_connections_net.conf"
602602
603+
.. group-tab:: nRF54LM20 DKs
604+
605+
The nRF54LM20 supports the Matter bridge over Wi-Fi and Matter bridge over Thread configurations.
606+
607+
.. tabs::
608+
609+
.. group-tab:: Matter bridge over Wi-Fi
610+
611+
You can increase the number of Bluetooth LE connections, but you may need to decrease the size of the Bluetooth LE TX/RX buffers used by the Bluetooth controller to balance the memory usage, and this will decrease the communication throughput.
612+
Build the target using the following command in the project directory to enable a configuration that increases the number of Bluetooth LE connections to ``20`` (which effectively means 19 bridged devices) by decreasing the sizes of Bluetooth LE TX/RX buffers:
613+
614+
.. parsed-literal::
615+
:class: highlight
616+
617+
west build -b nrf54lm20dk/nrf54lm20a/cpuapp -- -DSB_CONFIG_WIFI_NRF70=y -Dmatter_bridge_SHIELD=nrf7002eb2 -DCONFIG_BRIDGED_DEVICE_BT=y -DEXTRA_CONF_FILE="overlay-bt_max_connections_app.conf"
618+
619+
.. group-tab:: Matter bridge over Thread
620+
621+
You can increase the number of Bluetooth LE connections, but you may need to decrease the size of the Bluetooth LE TX/RX buffers used by the Bluetooth controller to balance the memory usage, and this will decrease the communication throughput.
622+
Build the target using the following command in the project directory to enable a configuration that increases the number of Bluetooth LE connections to ``20`` (which effectively means 19 bridged devices) by decreasing the sizes of Bluetooth LE TX/RX buffers:
623+
624+
.. parsed-literal::
625+
:class: highlight
626+
627+
west build -b nrf54lm20dk/nrf54lm20a/cpuapp -- -DCONFIG_BRIDGED_DEVICE_BT=y -DEXTRA_CONF_FILE="overlay-bt_max_connections_app.conf"
628+
603629
Configuring Bluetooth LE connection and scan parameters
604630
-------------------------------------------------------
605631

@@ -689,7 +715,14 @@ The application supports the following configurations:
689715
- nRF5340 DK with the nRF7002 EK shield attached
690716
- Debug version of the application with Matter over Wi-Fi enabled.
691717

692-
Enables the Matter Bridge to work with Wi-Fi on nRF5340 DK.
718+
Enables the Matter bridge to work with Wi-Fi on nRF5340 DK.
719+
* - Matter bridge with nRF54LM20 DK using internal memory only
720+
- ---
721+
- ``internal``
722+
- nRF54LM20 DK
723+
- Debug version of the application with external flash disabled.
724+
725+
Enables the Matter bridge to work using internal memory only.
693726

694727
Factory data support
695728
====================
@@ -715,6 +748,11 @@ Building the application on nRF5340 DK with nRF7002 EK shield
715748

716749
.. include:: /includes/matter_building_nrf5340dk_70ek
717750

751+
Building the application on nRF54LM20 DK with nRF7002-EB II shield
752+
==================================================================
753+
754+
.. include:: /includes/matter_building_nrf54lm20dk_7002eb2
755+
718756
Flashing the Matter over Wi-Fi application variant
719757
==================================================
720758

@@ -728,7 +766,7 @@ See :ref:`app_build_file_suffixes` and :ref:`cmake_options` for more information
728766

729767
.. _matter_bridge_smart_plug_functionality:
730768

731-
Configure the functionality of the Matter-Bridge device
769+
Configure the functionality of the Matter bridge device
732770
-------------------------------------------------------
733771

734772
To enable the Matter smart plugin functionality, run the following command with *board_target* replaced with the board target name:
@@ -778,7 +816,7 @@ After building the sample and programming it to your development kit, complete t
778816
Testing with bridged device working as a client
779817
-----------------------------------------------
780818

781-
To test the bridged device working as a client, you need to enable On/Off Light Switch device support (see `matter_bridge_app_overview_`).
819+
To test the bridged device working as a client, you need to enable On/Off Light Switch device support (see `matter_bridge_app_overview`_).
782820
The On/Off Light Switch device is capable of controlling the On/Off Light state of another device, such as the :ref:`Matter Light Bulb <matter_light_bulb_sample>` sample working on an additional development kit.
783821
After building this application and the :ref:`Matter Light Bulb <matter_light_bulb_sample>` sample, and programming them to the development kits, complete the following steps to test the bridged device working as a client:
784822

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
mcuboot:
2+
address: 0x0
3+
region: flash_primary
4+
size: 0xD000
5+
mcuboot_pad:
6+
address: 0xD000
7+
region: flash_primary
8+
size: 0x800
9+
app:
10+
address: 0xD800
11+
region: flash_primary
12+
size: 0x1E2800
13+
mcuboot_primary:
14+
address: 0xD000
15+
orig_span: &id001
16+
- app
17+
- mcuboot_pad
18+
region: flash_primary
19+
size: 0x1E3000
20+
span: *id001
21+
mcuboot_primary_app:
22+
address: 0xD800
23+
orig_span: &id002
24+
- app
25+
region: flash_primary
26+
size: 0x1E2800
27+
span: *id002
28+
factory_data:
29+
address: 0x1F0000
30+
region: flash_primary
31+
size: 0x1000
32+
settings_storage:
33+
address: 0x1F1000
34+
region: flash_primary
35+
size: 0xC000
36+
mcuboot_secondary:
37+
address: 0x0
38+
orig_span: &id003
39+
- mcuboot_secondary_pad
40+
- mcuboot_secondary_app
41+
region: external_flash
42+
size: 0x1E3000
43+
span: *id003
44+
mcuboot_secondary_pad:
45+
region: external_flash
46+
address: 0x0
47+
size: 0x800
48+
mcuboot_secondary_app:
49+
region: external_flash
50+
address: 0x800
51+
size: 0x1E2800
52+
external_flash:
53+
address: 0x1E3000
54+
size: 0x5DB000
55+
device: MX25R64
56+
region: external_flash
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
mcuboot:
2+
address: 0x0
3+
region: flash_primary
4+
size: 0xA000
5+
mcuboot_pad:
6+
address: 0xA000
7+
region: flash_primary
8+
size: 0x800
9+
app:
10+
address: 0xA800
11+
region: flash_primary
12+
size: 0x125800
13+
mcuboot_primary:
14+
address: 0xA000
15+
orig_span: &id001
16+
- app
17+
- mcuboot_pad
18+
region: flash_primary
19+
size: 0x126000
20+
span: *id001
21+
mcuboot_primary_app:
22+
address: 0xA800
23+
orig_span: &id002
24+
- app
25+
region: flash_primary
26+
size: 0x125800
27+
span: *id002
28+
mcuboot_secondary:
29+
address: 0x130000
30+
orig_span: &id003
31+
- mcuboot_secondary_pad
32+
- mcuboot_secondary_app
33+
region: flash_primary
34+
size: 0xC0000
35+
span: *id003
36+
mcuboot_secondary_pad:
37+
region: flash_primary
38+
address: 0x130000
39+
size: 0x800
40+
# Compression rate 34.75%
41+
mcuboot_secondary_app:
42+
region: flash_primary
43+
address: 0x130800
44+
size: 0xBF800
45+
factory_data:
46+
address: 0x1F0000
47+
region: flash_primary
48+
size: 0x1000
49+
settings_storage:
50+
address: 0x1F1000
51+
region: flash_primary
52+
size: 0xC000

0 commit comments

Comments
 (0)