Skip to content

Commit 760bf87

Browse files
author
Matthieu Antoine
committed
Release v2.0.0
1 parent 3e427dc commit 760bf87

File tree

732 files changed

+163824
-106691
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

732 files changed

+163824
-106691
lines changed

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,15 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [2.0.0] - 2023-03-06
9+
10+
### Added
11+
12+
- SX126x support
13+
- LR1121 support
14+
- SMTC HAL MCU - simplified MCU hardware abstration layer to ease porting on another platform
15+
- Shield interface - library to get specificities related to each LR11xx / SX126x shield
16+
817
## [1.0.0] - 2022-04-07
918

1019
### Added

LICENSES.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ License. You may obtain a copy of the License at:
4343

4444

4545
STMicroelectronics (CMSIS Device)
46-
------------------------------
46+
---------------------------------
4747

4848
This software component is licensed by ST under Apache License, Version 2.0,
4949
the "License"; You may not use this file except in compliance with the

README.md

Lines changed: 55 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,95 +1,34 @@
1-
# LR11xx SDK
1+
# SWSD003
22

3-
The LR11xx SDK contains several simple examples for LR11xx transceivers.
3+
This SDK contain several simple examples for SX126x and LR11XX chip families.
44

55
## Examples
66

7-
### Radio
7+
For a detailed description of the available examples and their configuration, refer to the corresponding README file depending on chip family:
88

9-
| Name | Description | Documentation |
10-
| -------------------- | --------------------------------------------------------------- | --------------------------------------------- |
11-
| CAD | Perform a Channel Activity Detection (CAD) - LoRa only | [README](apps/cad/README.md) |
12-
| PER | Perform a Packet Error Rate (PER) test - both Tx and Rx roles | [README](apps/per/README.md) |
13-
| Ping pong | Launch an exchange between two devices | [README](apps/ping-pong/README.md) |
14-
| Sprectral scan | Get inst-RSSI values in RX mode to form a heat map | [README](apps/spectral_scan/README.md) |
15-
| Spectrum display | Get inst-RSSI values in RX mode to form a dyamic spectrum curve | [README](apps/spectrum_display/README.md) |
16-
| Tx continuous wave | Configure the chip to transmit a single tone | [README](apps/tx_cw/README.md) |
17-
| Tx infinite preamble | Configure the chip to transmit an infinite preamble | [README](apps/tx_infinite_preamble/README.md) |
9+
- **SX126X**: [SX126X readme](sx126x/README.md)
10+
- **LR11XX**: [LR11XX readme](lr11xx/README.md)
1811

19-
A demonstration of the LR-FHSS capability of the chip can be found [here](https://github.com/Lora-net/SWDM001).
20-
21-
### Geolocation
22-
23-
| Name | Description | Documentation |
24-
| ---------------------- | ----------------------------- | ----------------------------- |
25-
| GNSS - Assisted scan | Perform GNSS assisted scans | [README](apps/gnss/README.md) |
26-
| GNSS - Autonomous scan | Perform GNSS autonomous scans | [README](apps/gnss/README.md) |
27-
| Wi-Fi passive scan | Perform Wi-Fi passive scans | [README](apps/wifi/README.md) |
28-
29-
## Configuration
30-
31-
Each example has its own set of parameters - see `apps/<example>/main_<example>.h`.
32-
33-
There is also [a common configuration file](apps/common/apps_configuration.h) where parameters can be set, among which:
34-
35-
* Packet type
36-
* RF frequency
37-
* Output power
38-
* Packet and modulation parameters for different modulations
39-
40-
## Requirements
41-
42-
### Supported boards
43-
44-
This SDK is developed on the ST Microeletronic [NUCLEO-L476RG development board](https://www.st.com/en/evaluation-tools/nucleo-l476rg.html)
45-
46-
### Supported shields
47-
48-
The list of compatible Semtech LR1110 shields is:
49-
50-
| Shield | PCB | Frequency matching |
51-
| ------------ | ----------------------------------------------------- | ------------------ |
52-
| LR1110MB1DIS | PCB_E655V01A - GNSS with LNA for Passive GNSS Antenna | 868/915MHz |
53-
| LR1110MB1DJS | PCB_E656V01A - GNSS without LNA | 868/915MHz |
54-
| LR1110MB1GIS | PCB_E655V01A - GNSS with LNA for Passive GNSS Antenna | 490MHz |
55-
| LR1110MB1GJS | PCB_E656V01A - GNSS without LNA | 490MHz |
56-
57-
The list of compatible Semtech LR1120 shields is:
58-
59-
| Shield | PCB | Frequency matching |
60-
| ------------ | ----------------------------------------------------- | ------------------ |
61-
| LR1120MB1DIS | PCB_E655V01A - GNSS with LNA for Passive GNSS Antenna | 868/915MHz |
62-
| LR1120MB1DJS | PCB_E656V01A - GNSS without LNA | 868/915MHz |
63-
| LR1120MB1GIS | PCB_E655V01A - GNSS with LNA for Passive GNSS Antenna | 490MHz |
64-
| LR1120MB1GJS | PCB_E656V01A - GNSS without LNA | 490MHz |
65-
66-
### Firmware
67-
68-
This SDK requires the transceiver to run the following version
69-
70-
* LR1110: firmware version ([0x0307](https://github.com/Lora-net/radio_firmware_images/tree/master/lr1110/transceiver))
71-
* LR1120: firmware version ([0x0101](https://github.com/Lora-net/radio_firmware_images/tree/master/lr1120/transceiver))
72-
73-
To update the transceiver with the desired firmware version, please use [the updater tool application](https://github.com/Lora-net/lr1110_updater_tool/).
74-
75-
### Toolchain
76-
77-
Each example can be compiled with the following toolchains:
78-
79-
* [Keil MDK ARM](https://www2.keil.com/mdk5) - Keil project file available in `apps/<example>/MDK-ARM/`
80-
* [GNU Arm Embedded toolchain](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm) - makefile available in `apps/<example>/makefile/`
12+
The readme files also provide the compatible products, along with hardware and software requirements.
8113

8214
## Getting started
8315

8416
### Configure
8517

8618
Before starting to build an example, check the parameters in both the common and the example-specific configuration files.
19+
The common parameters can be found in `<chip family>/common/apps_configuration.h` while the example specific configuration file is located in the example folder. For example, the `per` example finds its configuration in `<chip_family>/apps/per/main_per.h`
8720

8821
### Build
8922

23+
In this section:
24+
- `<chip_family>` is:
25+
- `sx126x` for SX126X examples
26+
- `lr11xx` for LR11XX examples
27+
- `<example>`: is the name of the selected example. Refer to corresponding README file of the chip family for possible values
28+
9029
#### Keil MDK ARM
9130

92-
Each example is delivered with a Keil project file - see `apps/<example>/MDK-ARM/lr11xx-sdk_<example>.uvprojx`.
31+
Each example is delivered with a Keil project file - see `<chip_family>/apps/<example>/MDK-ARM/<chip_family>-sdk_<example>.uvprojx`.
9332

9433
To build a project:
9534

@@ -100,11 +39,13 @@ To build a project:
10039

10140
Each project has different targets ([Keil manual](https://www.keil.com/support/man/docs/uv4/uv4_ca_projtargfilegr.htm)), each one allowing to choose the shield the example is compiled for.
10241

103-
The name of the targets is taken from the column `shield` of the table available [here](#supported-shields).
42+
The name of the targets is taken from the column `shield` of the supported shields table available in the chip family READMEs:
43+
- for SX126X: [here](sx126x/README.md#supported-shields)
44+
- for LR11XX: [here](lr11xx/README.md#supported-shields)
10445

10546
#### GNU Arm embedded toolchain
10647

107-
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`.
48+
Examples are built from their respective subfolder in the `apps` directory. For instance, the makefile for the `per` example for LR11XX is available in `lr11xx/apps/per/makefile/Makefile`.
10849

10950
Build settings, compile time and configuration options are specified in the project's Makefile.
11051

@@ -115,17 +56,30 @@ Here are the parameters available at compile time:
11556
| Parameter | Description | Default value |
11657
| ------------ | ---------------------------------------- | ------------- |
11758
| TARGET_BOARD | Board for which the example is compiled | NUCLEO_L476RG |
118-
| RADIO_SHIELD | Shield for which the example is compiled | LR1120MB1DIS |
59+
| RADIO_SHIELD | Shield for which the example is compiled | **lr11xx**: LR1120MB1DIS, **sx126x**: SX1262MB1CAS |
11960

120-
For instance, to build the project `per` with LR1110MB1GJS shield:
121-
122-
To build a project, simply run make
61+
For instance, to build the project `per` with LR1110MB1GJS shield simply run make as follows
12362

12463
```shell
125-
$ cd $SDK_FOLDER/apps/per/makefile
64+
$ cd $SDK_FOLDER/lr11xx/apps/per/makefile
12665
$ make RADIO_SHIELD=LR1110MB1GJS
12766
```
12867

68+
##### Command line configuration
69+
70+
Additional configuration flags can be passed from command line to compiler with `EXTRAFLAGS` argument.
71+
This is dedicated to define macros that can be defined like the following:
72+
73+
```bash
74+
$ make EXTRAFLAGS='-D<MACRO>=<VALUE>'
75+
```
76+
77+
Where `<MACRO>` is the macro name to set and `<VALUE>` is the value to set for this macro.
78+
Not all macro can be redefined through this way. Refer to the README of examples for the list of macro that can be redefined.
79+
80+
Note that when using the configuration on command line, `make` cannot detect a change in configuration on next build.
81+
Therefore `make clean` must be invoked before calling a new `make` with a different configuration
82+
12983
### Load
13084

13185
After a project is built, it can be loaded onto a device.
@@ -147,3 +101,22 @@ For instance, using stty on Linux with a device available in `/dev/ttyACM0`:
147101
```shell
148102
$ stty -echo raw speed 921600 < /dev/ttyACM0 && cat /dev/ttyACM0
149103
```
104+
105+
## Requirements
106+
107+
Additional requirements specific to chip family are provided in the corresponding README file.
108+
109+
### Supported toolchains
110+
111+
Each example can be compiled with the following toolchains:
112+
113+
* [Keil MDK ARM](https://www2.keil.com/mdk5) - Keil project file available in `<chip_family>/apps/<example>/MDK-ARM/`
114+
* [GNU Arm Embedded toolchain](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm) - makefile available in `<chip_family>/apps/<example>/makefile/`
115+
116+
## Known limitations
117+
118+
### Channel Activity Detection accuracy
119+
120+
The Channel Activity Detection (CAD) may expose false negative or false positive detection.
121+
The parameters for CAD configuration needs adaptation relative to context usage.
122+
Refer to the application notes available on [LoRa Developer Portal](https://lora-developers.semtech.com/documentation/product-documents/) and [Semtech website](https://www.semtech.com/) relative to CAD performances.

apps/common/apps_common.mk

Lines changed: 0 additions & 46 deletions
This file was deleted.

0 commit comments

Comments
 (0)