Skip to content

Commit 3e427dc

Browse files
author
mantoine
committed
Release v1.0.0
0 parents  commit 3e427dc

File tree

594 files changed

+930489
-0
lines changed

Some content is hidden

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

594 files changed

+930489
-0
lines changed

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [1.0.0] - 2022-04-07
9+
10+
### Added
11+
12+
- Initial version

LICENSE.txt

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
License for the code produced by Semtech contained in this project
2+
------------------------------------------------------------------
3+
4+
The Clear BSD License
5+
Copyright Semtech Corporation 2022. All rights reserved.
6+
7+
Redistribution and use in source and binary forms, with or without
8+
modification, are permitted (subject to the limitations in the disclaimer
9+
below) provided that the following conditions are met:
10+
* Redistributions of source code must retain the above copyright
11+
notice, this list of conditions and the following disclaimer.
12+
* Redistributions in binary form must reproduce the above copyright
13+
notice, this list of conditions and the following disclaimer in the
14+
documentation and/or other materials provided with the distribution.
15+
* Neither the name of the Semtech corporation nor the
16+
names of its contributors may be used to endorse or promote products
17+
derived from this software without specific prior written permission.
18+
19+
NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY
20+
THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
21+
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
22+
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
23+
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE
24+
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25+
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26+
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27+
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28+
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29+
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30+
POSSIBILITY OF SUCH DAMAGE.

LICENSES.txt

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
This file is an inventory of the software licenses that are part of this project.
2+
3+
4+
Semtech Corporation
5+
-------------------
6+
7+
The Clear BSD License
8+
Copyright Semtech Corporation 2022. All rights reserved.
9+
10+
Redistribution and use in source and binary forms, with or without
11+
modification, are permitted (subject to the limitations in the disclaimer
12+
below) provided that the following conditions are met:
13+
* Redistributions of source code must retain the above copyright
14+
notice, this list of conditions and the following disclaimer.
15+
* Redistributions in binary form must reproduce the above copyright
16+
notice, this list of conditions and the following disclaimer in the
17+
documentation and/or other materials provided with the distribution.
18+
* Neither the name of the Semtech corporation nor the
19+
names of its contributors may be used to endorse or promote products
20+
derived from this software without specific prior written permission.
21+
22+
NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY
23+
THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
24+
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
25+
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
26+
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE
27+
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28+
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29+
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30+
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31+
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32+
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33+
POSSIBILITY OF SUCH DAMAGE.
34+
35+
36+
STMicroelectronics (STM32L4 HAL, LIS2DE12)
37+
------------------------------------------
38+
39+
This software component is licensed by ST under BSD 3-Clause license,
40+
the "License"; You may not use this file except in compliance with the
41+
License. You may obtain a copy of the License at:
42+
opensource.org/licenses/BSD-3-Clause
43+
44+
45+
STMicroelectronics (CMSIS Device)
46+
------------------------------
47+
48+
This software component is licensed by ST under Apache License, Version 2.0,
49+
the "License"; You may not use this file except in compliance with the
50+
License. You may obtain a copy of the License at:
51+
opensource.org/licenses/Apache-2.0
52+
53+
54+
Arm Limited (CMSIS)
55+
-------------------
56+
57+
Licensed under the Apache License, Version 2.0 (the License); you may
58+
not use this file except in compliance with the License.
59+
You may obtain a copy of the License at
60+
61+
www.apache.org/licenses/LICENSE-2.0
62+
63+
Unless required by applicable law or agreed to in writing, software
64+
distributed under the License is distributed on an AS IS BASIS, WITHOUT
65+
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
66+
See the License for the specific language governing permissions and
67+
limitations under the License.

README.md

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
# LR11xx SDK
2+
3+
The LR11xx SDK contains several simple examples for LR11xx transceivers.
4+
5+
## Examples
6+
7+
### Radio
8+
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) |
18+
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/`
81+
82+
## Getting started
83+
84+
### Configure
85+
86+
Before starting to build an example, check the parameters in both the common and the example-specific configuration files.
87+
88+
### Build
89+
90+
#### Keil MDK ARM
91+
92+
Each example is delivered with a Keil project file - see `apps/<example>/MDK-ARM/lr11xx-sdk_<example>.uvprojx`.
93+
94+
To build a project:
95+
96+
1. Launch Keil IDE
97+
2. Open the project file
98+
3. Select the target
99+
4. Compile
100+
101+
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.
102+
103+
The name of the targets is taken from the column `shield` of the table available [here](#supported-shields).
104+
105+
#### GNU Arm embedded toolchain
106+
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`.
108+
109+
Build settings, compile time and configuration options are specified in the project's Makefile.
110+
111+
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.
112+
113+
Here are the parameters available at compile time:
114+
115+
| Parameter | Description | Default value |
116+
| ------------ | ---------------------------------------- | ------------- |
117+
| TARGET_BOARD | Board for which the example is compiled | NUCLEO_L476RG |
118+
| RADIO_SHIELD | Shield for which the example is compiled | LR1120MB1DIS |
119+
120+
For instance, to build the project `per` with LR1110MB1GJS shield:
121+
122+
To build a project, simply run make
123+
124+
```shell
125+
$ cd $SDK_FOLDER/apps/per/makefile
126+
$ make RADIO_SHIELD=LR1110MB1GJS
127+
```
128+
129+
### Load
130+
131+
After a project is built, it can be loaded onto a device.
132+
133+
There are multiple ways to do it, among which:
134+
135+
* Drag and drop the binary file to the USB drive listed by our OS - usually shows up as `NODE_L476RG`.
136+
* Load it through the Keil IDE
137+
138+
### View debug output
139+
140+
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:
141+
142+
* On Linux, this device usually shows up as `/dev/ttyACM0`
143+
* On Windows, the port can be obtained from the device manager
144+
145+
For instance, using stty on Linux with a device available in `/dev/ttyACM0`:
146+
147+
```shell
148+
$ stty -echo raw speed 921600 < /dev/ttyACM0 && cat /dev/ttyACM0
149+
```

0 commit comments

Comments
 (0)