IPC radio firmware
The IPC radio firmware allows to use the radio peripheral from another core in a multicore device.
Application overview
You can use this firmware as a general serialized radio peripheral.
The firmware supports both Bluetooth® Low Energy and IEEE 802.15.4 simultaneously. In addition, you can configure the Bluetooth selection as an HCI Bluetooth Controller or an RPC serialization interface (Bluetooth Low Energy Remote Procedure Call).
HCI IPC serialization
The firmware exposes the Bluetooth Controller support to another core using the IPC subsystem.
Host for nRF RPC Bluetooth Low Energy
The firmware is running the full Bluetooth Low Energy stack. It receives serialized function calls that it decodes and executes, then sends response data to the client.
The serialization includes:
IEEE 802.15.4
The firmware exposes radio driver support to another core using the IPC subsystem.
Requirements
The firmware supports the following development kits:
Hardware platforms |
PCA |
Board name |
Build target |
---|---|---|---|
PCA20053 |
|
||
PCA10095 |
|
To automatically attach the firmware image, you need to use Zephyr’s Sysbuild (System build).
The nRF Connect for VS Code extension supports sysbuild during build configuration setup. To learn more about sysbuild in the extension, see sysbuild support page in its documentation.
Configuration
See Configuring and building an application for information about how to permanently or temporarily change the configuration.
Application
You can set the supported radio configurations using the following Kconfig options:
CONFIG_IPC_RADIO_BT
- For the Bluetooth Low Energy serialization.CONFIG_IPC_RADIO_802154
- For the IEEE 802.15.4 serialization.
You can select the Bluetooth Low Energy serialization using the CONFIG_IPC_RADIO_BT_SER
Kconfig option.
The Bluetooth Low Energy and IEEE 802.15.4 functionalities can operate simultaneously and are only limited by available memory.
Sysbuild
To enable the firmware, use the Sysbuild configuration of SB_CONFIG_NRF_DEFAULT_IPC_RADIO
.
You can set the supported radio configurations using the following (Sysbuild) Kconfig options:
SB_CONFIG_NETCORE_IPC_RADIO_BT_HCI_IPC
SB_CONFIG_NETCORE_IPC_RADIO_BT_RPC
SB_CONFIG_NETCORE_IPC_RADIO_IEEE802154
Configuration files
The application provides predefined configuration files for typical use cases. You can find the configuration files in the application directory.
The following files are available:
overlay-802154.conf
- Configuration file enabling IEEE 802.15.4.overlay-bt_hci_ipc.conf
- Configuration file enabling Bluetooth Low Energy over HCI.overlay-bt_rpc.conf
- Configuration file enabling Bluetooth Low Energy over RPC.
Note
When you use sysbuild to build an application which uses the ipc_radio as network core image the preceding configuration files are added automatically to ipc_radio. The selection of specific configuration files is determined by the sysbuild kconfig.
For instance the SB_CONFIG_NETCORE_IPC_RADIO_IEEE802154
kconfig enables the overlay-802154.conf
configuration file to be used with ipc_radio.
Building and running as a single image
This application can be found under applications/ipc_radio
in the nRF Connect SDK folder structure.
To build the application 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 Configuring and building an application for other building scenarios, Programming an application for programming steps, and Testing and optimization for general information about testing and debugging in the nRF Connect SDK.
For instructions on how to enable a specific configuration overlay file, see Advanced building procedures.
Note
You cannot use Bluetooth Low Energy Remote Procedure Call together with the HCI Bluetooth Controller.
Dependencies
The dependencies may vary according to the configuration.
This firmware can use the following nRF Connect SDK libraries:
It can use the following sdk-nrfxlib library: