Integration notes
This page describes how to integrate ANT Wireless functionality into an nRF Connect SDK application.
Compatibility
ANT for nRF Connect SDK Releases correspond to nRF Connect SDK (sdk-nrf) tagged versions according to the following table:
sdk-ant Version |
nRF52 Series |
nRF53 Series |
nRF54 Series |
---|---|---|---|
v0.4.0 (experimental) |
Unsupported |
sdk-nrf v2.2 |
N/A |
v0.5.0 (experimental) |
Unsupported |
sdk-nrf v2.3 |
N/A |
v1.0.0 |
Unsupported |
sdk-nrf v2.4 |
N/A |
v1.1.0 |
Unsupported |
sdk-nrf v2.5 |
N/A |
v1.2.0 |
sdk-nrf v2.6 |
Unsupported |
Within each nRF Series, only select SoCs are supported.
sdk-ant Version |
nRF52 Series |
nRF53 Series |
nRF54 Series |
---|---|---|---|
v1.0.0 |
nRF5340 |
||
v1.1.0 |
nRF5340 |
||
v1.2.0 |
nRF52840 |
nRF5340 |
Configuration
In nRF Connect SDK applications, you can enable ANT Wireless using the CONFIG_ANT
Kconfig option.
On dual-core platforms (nRF5340), specific ANT configurations must be supplied to the application and network core processors. To include ANT multicore API serialization, use the CONFIG_ANT_NP
Kconfig option on both cores. This will include the interproccessor communication layers with the default underlying transport (nRF RPC).
License Keys
Before compiling any sample code, the ANT evaluation key should be set via Kconfig. You MUST obtain a valid commercial license key BEFORE releasing a product to market that uses ANT.
You may use the Evaluation license key for non-commerical use by setting CONFIG_ANT_EVALUATION_KEY
to y
or defining CONFIG_ANT_LICENSE_KEY
in the Kconfig configuration file for the radio-adjacent core (CONFIG_ANT_LIBRARY_CORE
).
There are stubs in the sample .conf
files that can be changed from n
to y
to enable the Evaluation license key. For single core, this is done in the default prj.conf
.
If using the dual core automatic child image, the radio-adjacent or network core image (cpunet) configuration file will be either child_image/ant_rpc.conf
or child_image/hci_ipc.conf
.
If your organization already has a unique commercial license key, you can continue to use the same license key for all products based on Nordic Semiconductor’s nRF52 and nRF53 SoCs. Use CONFIG_ANT_LICENSE_KEY
=”your-key” to define your unique key as described above.
For more information about ANT licensing visit the following website: https://www.thisisant.com/developer/ant/licensing
Architecture
ANT functions are always accessed through ant_interface.h
but the underlying integration code is determined by the target platform. The ANT block in these diagrams may consist of initialization code, abstraction layers, interprocessor communication infrastructure and directives to set build dependencies, as appropriate.
The following image shows how ANT is enabled on dual core platforms (for example, nRF53 series).
On single core (for example, nRF52 series), the application can communicate directly with ANT modules.
Single Protocol: ANT Only
By default, most ANT Samples only include code required to build the desired single protocol application.
When an ANT sample targets a dual core SoC, it will automatically include an ANT only network core image (ant_rpc
).
The samples preset additional configuration options required by the automatic child image feature:
CONFIG_BOARD_ENABLE_CPUNET
to enable cpunet from cpuapp
Multiprotocol: ANT and Bluetooth® Low Energy (LE)
See the samples/multiprotocol
folder for multiprotocol application examples.
Multiprotocol support can be evaluated by enabling both CONFIG_BT
and CONFIG_ANT
along with any other desired stack configuration settings.
On dual core, instead of including the single protocol network core image (ant_rpc
), the ANT protocol stack will be combined with the default nRF Connect SDK BLE stack application (typically hci_ipc
).
Due to space constraints on the SoC (or network core), it may be necessary to limit protocol resources to those strictly required for your application (ie. using CONFIG_BT_MAX_CONN
).
Warning
Concurrent support of ANT for nRF Connect SDK and any wireless protocol other than Bluetooth® Low Energy (LE) is untested.