nRF5340: Multiprotocol RPMsg

This sample exposes the SoftDevice Controller and the IEEE 802.15.4 radio driver support to the nRF5340 application CPU, using RPMsg transport as part of OpenAMP.

Requirements

The sample supports the following development kits:

Hardware platforms

PCA

Board name

Build target

nRF5340 DK

PCA10095

nrf5340dk_nrf5340

nrf5340dk_nrf5340_cpunet

The testing procedure of the sample also requires a second development kit that supports IEEE 802.15.4.

Overview

The sample is compatible with the HCI RPMsg driver provided by the nRF Connect SDK Bluetooth® HCI Drivers core and with the nRF 802.15.4 Serialization Host module.

See the following configuration options for more information:

You might need to adjust the Kconfig configuration of this sample to make it compatible with the peer application. For example, CONFIG_BT_MAX_CONN must be equal to the maximum number of connections supported by the peer application.

The following components in the prj.conf file have been disabled to make this sample energy-efficient:

  • Serial console

  • Logger

Building and running

You must program this sample to the nRF5340 network core.

The recommended way of building the sample is to use the multi-image feature of the build system. In this way, the sample is built automatically as a child image when both CONFIG_BT_RPMSG and CONFIG_NRF_802154_SER_HOST are enabled.

However, you can also build the sample as a stand-alone image.

See Configuring your application for information about how to configure the sample.

For example, you can include the Multiprotocol RPMsg sample in a multi-image build by building the Socket Echo Server sample for the nRF5340 application core and adding the following configuration files to your build as CMake options:

  • overlay-802154.conf

  • overlay-bt.conf

See Providing CMake options for instructions on how to add these options to your build. To see an example of this multi-image build on the command line, run the following command:

west build -b nrf5340dk_nrf5340_cpuapp -p -- -DOVERLAY_CONFIG="overlay-802154.conf;overlay-bt.conf"

This sample can be found under samples/nrf5340/multiprotocol_rpmsg in the nRF Connect SDK folder structure.

To build the sample with Visual Studio Code, follow the steps listed on the How to build an application page in the nRF Connect for VS Code extension documentation. See Building and programming an application for other building and programming scenarios and Testing and debugging an application for general information about testing and debugging in the nRF Connect SDK.

Testing

The testing methods for this sample depend on how it was built and programmed to the device. For example, if you built the sample in a multi-image build containing also the Socket Echo Server sample, you can test it as follows:

  1. Run the IEEE 802.15.4 variant of the Socket Echo Client on a second development kit that supports IEEE 802.15.4.

  2. Connect to the kit with a terminal emulator (for example, PuTTY). See How to connect with PuTTY for the required settings. As the nRF5340 DK has multiple UART instances, you must identify the correct port.

  3. Observe that IPv6 packets are exchanged between the echo client and server over the IEEE 802.15.4 interface. You can use a smartphone to see that the nRF5340 device advertises over Bluetooth LE in parallel to the echo exchanges.

Dependencies

This sample uses the following nRF Connect SDK libraries: