Overview
In this article:
HyperPulse Zephyr Library is the core firmware component that implements Myriota's intelligent beam hopping functionality. It is a mandatory requirement on any application to integrate with HyperPulse Zephyr library in order to establish connection and send/receive data through the HyperPulse network. This article describes the steps to integrate the HyperPulse Zephyr Library into the NCS environment and building sample applications provided with the Library using standard NCS toolchain.
Note: The Myriota HyperPulse™ library/module has been tested and is officially supported on the following boards:
- myriota_hyperpulse_dk/nrf9151/circuitdojo_ns —> Myriota HyperPulse DK
- nrf9151dk/nrf9151/ns —> Nordics’ nrF9151 DK (SMA DK)
If using a custom board, you will have to adapt the board configuration file accordingly.
The rest of the article assumes you are using Nordic's Connect SDK (NCS) as the development environment.
Prerequisites
Please follow the environment setup according to your operating system. You should have nRF Util and its plugin sdk-manager beforehand, as well as the SDK Toolchain and the SDK Source Code of the same version 3.0.2. Please follow the installation link according to your host operating system:
- Windows: HyperPulse™ - nRF9151 Windows Development Environment
- Linux: HyperPulse™ - nRF9151 Linux Development Environment
Note: The default installation directory of the toolchain and source code below is C:\ncs on Windows and ~/ncs on Linux. This folder will be referred to from now on as NCS directory.
Note on Windows development: Windows has by default the limitation of long paths filenames, so we recommend to enable the long paths if using Windows for development.
Integrating the Library
Unpack or clone the library HyperPulse-Zephyr into the NCS Source Code folder i.e. <NCS directory>\v3.0.2\modules\lib\myriota-hyperpulse (create the folder if it doesn't exist), rename the directory to myriota-hyperpulse if necessary:
Open a terminal with the toolchain version 3.0.2 environment variables set by running:
On Windows: nrfutil sdk-manager toolchain launch --ncs-version v3.0.2 --terminal
On Linux: source <NCS directory>/env/ncs_3.0.2.sh or nrfutil sdk-manager toolchain launch --ncs-version v3.0.2 --shell
The new terminal will open with the toolchain configured. You can close the other terminal.
To integrate the library, run this command from inside the NCS Source Code (<NCS directory>\v3.0.2):
On Windows: west config manifest.path modules\lib\myriota-hyperpulse
On Linux: west config manifest.path modules/lib/myriota-hyperpulse
Now run west update to download the submodules necessary for the library, this should be the end of the output:
Building the Application
In the library's directory <NCS directory>\v3.0.2\modules\lib\myriota-hyperpulse\samples, you can see examples of applications that use the library:
In the terminal with the toolchain configured, go to the library's folder (<NCS directory>\v3.0.2\modules\lib\myriota-hyperpulse) and execute the build command, to build the at_modem and demo applications:
On Windows, building the at_modem sample: west build --build-dir samples\at_modem\build samples\at_modem --board myriota_hyperpulse_dk/nrf9151/circuitdojo_ns --sysbuild --pristine
On Linux, building the demo sample: west build --build-dir samples/demo/build samples/demo --board myriota_hyperpulse_dk/nrf9151/circuitdojo_ns --sysbuild --pristine
If you see the following at the end of the output, then the application was built correctly:
The generated binary file is called merged.hex and will be in the folder myriota-hyperpulse/samples/demo/build, or on the at_modem sample build folder:
Getting latest network info
The HyperPulse library makes use of the Network Information, which is a file stored in nRF9151 that has the information about the network scheduling, and it should be flashed beforehand.
To get the latest file, execute this command from the myriota-hyperpulse folder:
On Windows: python tools\network_info.pyz --partitions-file samples\demo/build/partitions.yml --partition-name hyperpulse_storage_network -o network_info.hex
On Linux: python tools/network_info.pyz --partitions-file samples/demo/build/partitions.yml --partition-name hyperpulse_storage_network -o network_info.hex
The file network_info.hex can now be flashed on the device.
Note: It is possible to have the application merged with the network information in one single binary, to do so please refer to this section.
