The LR11xx SDK contains several simple examples for LR11xx transceivers.
Name | Description | Documentation |
---|---|---|
CAD | Perform a Channel Activity Detection (CAD) - LoRa only | README |
PER | Perform a Packet Error Rate (PER) test - both Tx and Rx roles | README |
Ping pong | Launch an exchange between two devices | README |
Sprectral scan | Get inst-RSSI values in RX mode to form a heat map | README |
Spectrum display | Get inst-RSSI values in RX mode to form a dyamic spectrum curve | README |
Tx continuous wave | Configure the chip to transmit a single tone | README |
Tx infinite preamble | Configure the chip to transmit an infinite preamble | README |
A demonstration of the LR-FHSS capability of the chip can be found here.
Name | Description | Documentation |
---|---|---|
GNSS - Assisted scan | Perform GNSS assisted scans | README |
GNSS - Autonomous scan | Perform GNSS autonomous scans | README |
Wi-Fi passive scan | Perform Wi-Fi passive scans | README |
Each example has its own set of parameters - see apps/<example>/main_<example>.h
.
There is also a common configuration file where parameters can be set, among which:
- Packet type
- RF frequency
- Output power
- Packet and modulation parameters for different modulations
This SDK is developed on the ST Microeletronic NUCLEO-L476RG development board
The list of compatible Semtech LR1110 shields is:
Shield | PCB | Frequency matching |
---|---|---|
LR1110MB1DIS | PCB_E655V01A - GNSS with LNA for Passive GNSS Antenna | 868/915MHz |
LR1110MB1DJS | PCB_E656V01A - GNSS without LNA | 868/915MHz |
LR1110MB1GIS | PCB_E655V01A - GNSS with LNA for Passive GNSS Antenna | 490MHz |
LR1110MB1GJS | PCB_E656V01A - GNSS without LNA | 490MHz |
The list of compatible Semtech LR1120 shields is:
Shield | PCB | Frequency matching |
---|---|---|
LR1120MB1DIS | PCB_E655V01A - GNSS with LNA for Passive GNSS Antenna | 868/915MHz |
LR1120MB1DJS | PCB_E656V01A - GNSS without LNA | 868/915MHz |
LR1120MB1GIS | PCB_E655V01A - GNSS with LNA for Passive GNSS Antenna | 490MHz |
LR1120MB1GJS | PCB_E656V01A - GNSS without LNA | 490MHz |
This SDK requires the transceiver to run the following version
To update the transceiver with the desired firmware version, please use the updater tool application.
Each example can be compiled with the following toolchains:
- Keil MDK ARM - Keil project file available in
apps/<example>/MDK-ARM/
- GNU Arm Embedded toolchain - makefile available in
apps/<example>/makefile/
Before starting to build an example, check the parameters in both the common and the example-specific configuration files.
Each example is delivered with a Keil project file - see apps/<example>/MDK-ARM/lr11xx-sdk_<example>.uvprojx
.
To build a project:
- Launch Keil IDE
- Open the project file
- Select the target
- Compile
Each project has different targets (Keil manual), each one allowing to choose the shield the example is compiled for.
The name of the targets is taken from the column shield
of the table available here.
Examples are built from their respective subfolder in the apps
directory. For instance, the makefile for the per
example is available in apps/per/makefile/Makefile
.
Build settings, compile time and configuration options are specified in the project's Makefile.
The output files of the build process are stored in the build
folder with firmware binary file having the same name as the project with a .bin extension.
Here are the parameters available at compile time:
Parameter | Description | Default value |
---|---|---|
TARGET_BOARD | Board for which the example is compiled | NUCLEO_L476RG |
RADIO_SHIELD | Shield for which the example is compiled | LR1120MB1DIS |
For instance, to build the project per
with LR1110MB1GJS shield:
To build a project, simply run make
$ cd $SDK_FOLDER/apps/per/makefile
$ make RADIO_SHIELD=LR1110MB1GJS
After a project is built, it can be loaded onto a device.
There are multiple ways to do it, among which:
- Drag and drop the binary file to the USB drive listed by our OS - usually shows up as
NODE_L476RG
. - Load it through the Keil IDE
On the NUCLEO-L476RG development board, the firmware prints debug information to the UART that is connected via the ST-LINK to the host computer. The configuration is 921600/8-N-1:
- On Linux, this device usually shows up as
/dev/ttyACM0
- On Windows, the port can be obtained from the device manager
For instance, using stty on Linux with a device available in /dev/ttyACM0
:
$ stty -echo raw speed 921600 < /dev/ttyACM0 && cat /dev/ttyACM0