-
Notifications
You must be signed in to change notification settings - Fork 64
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2,331 changed files
with
1,506,843 additions
and
24,083 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,87 +1,46 @@ | ||
# LoRa Basics Modem | ||
# LoRa Basic Modem | ||
|
||
## LoRaWAN parameters | ||
**LoRa Basic Modem** proposes an full implementation of the [TS001-LoRaWAN L2 1.0.4](https://resources.lora-alliance.org/technical-specifications/ts001-1-0-4-lorawan-l2-1-0-4-specification) and [Regional Parameters RP2-1.0.3](https://resources.lora-alliance.org/technical-specifications/rp2-1-0-3-lorawan-regional-parameters) specifications. | ||
|
||
### LoRaWAN version | ||
**LoRa Basic Modem** embedds also an implementation of all LoRaWAN packages dedicated to Firmware Update Over The Air (FUOTA): | ||
- Application Layer Clock Synchronization (ALCSync) | ||
- Remote Multicast Setup | ||
- Fragmented Data Block Transport | ||
- Firmware Management Protocol (FMP) | ||
- Multi-Package Access (MPA) | ||
|
||
The LoRaWAN version that is currently implemented in LoRa Basics Modem is v1.0.4. | ||
**LoRa Basic Modem** offers extended services: | ||
- LoRaWAN certification process | ||
- Geolocation with LoRa Edge chips | ||
- LoRaCloud features such as Stream, Large File Upload, Device Management or Almanac Update | ||
|
||
### LoRaWAN region | ||
## LoRa Basics Modem library | ||
|
||
LoRa Basics Modem supports the following LoRaWAN regions: | ||
LBM library code can be found in folder [lbm_lib](lbm_lib/). | ||
Please refer to [README.md](lbm_lib/README.md) to get all information related to LoRa Basics Modem library | ||
|
||
* AS_923 (AS923-1, AS923-2, AS923-3, AS923-4) | ||
* AU_915 | ||
* CN_470 | ||
* CN_470_RP_1_0 | ||
* EU_868 | ||
* IN_865 | ||
* KR_920 | ||
* RU_864 | ||
* US_915 | ||
## Examples | ||
|
||
LoRa Basics Modem supports an emulation of LoRaWAN protocol for the 2.4GHz global ISM band (WW2G4) | ||
Under `lbm_examples` folder, one will find a few examples on how to use the LoRa Basics Modem stack. | ||
|
||
### LoRaWAN regional parameters | ||
- Hardware Modem (Implements a hardware modem controlled by a serial interface) | ||
- Periodical uplink (joins the network and then sends periodic uplinks and each time the button is pushed) | ||
- Porting tests (Allows to verify if the project porting process is correct) | ||
- LCTT certification (to run LoRaWAN certification) | ||
|
||
Default regional parameters version supported by LoRa Basics Modem is rp2-1.0.3. It is possible to switch back to rp2-1.0.1 at compile time. | ||
The examples are targeted for the NucleoL476 kit featuring an STM32L476 micro-controller. | ||
For further details please refer to `lbm_examples` directory [README](lbm_examples/README.md) file. | ||
|
||
### LoRaWAN class | ||
To build the periodical uplink example targeting the LR1110 Semtech radio the following should be executed on the command line: | ||
|
||
LoRa Basics Modem supports the following LoRaWAN classes: | ||
```bash | ||
make -C lbm_examples full_lr1110 MODEM_APP=PERIODICAL_UPLINK | ||
``` | ||
|
||
* Class A | ||
* Class B (with up to 4 multicast sessions) | ||
* Class C (with up to 4 multicast sessions) | ||
## Applications | ||
Under `lbm_applications` folder, one will find 3 specific applications that are using LoRa Basics Modem stack. | ||
|
||
## LoRa Basics Modem services | ||
- A ThreadX Operationg System running on STM32U5 ([lbm_applications/1_thread_x_on_stm32_u5/README.md](lbm_applications/1_thread_x_on_stm32_u5/README.md)) | ||
- A LBM porting on Nordic NRF52840 ([lbm_applications/2_porting_nrf_52840/README.md](lbm_applications/2_porting_nrf_52840/README.md)) | ||
- A Geolocation application running on Lora Edge ([lbm_applications/3_geolocation_on_lora_edge/README.md](lbm_applications/3_geolocation_on_lora_edge/README.md)) | ||
|
||
LoRa Basics Modem supports the following services: | ||
|
||
* Large files upload | ||
* ROSE Streaming | ||
* Application-Layer Clock synchronization | ||
* Almanac Update for LoRa Edge | ||
|
||
## LoRa Basics Modem API | ||
|
||
The Application Programming Interface of LoRa Basics Modem is defined in `smtc_modem_api/smtc_modem_api.h` header file. | ||
|
||
## LoRa Basics Modem engine | ||
|
||
LoRa Basics Modem has to be initialized first by calling `smtc_modem_init()`. Then, calling periodically `smtc_modem_run_engine()` is required to make the state machine move forward. | ||
|
||
These functions can be found in `smtc_modem_api/smtc_modem_utilities.h` | ||
|
||
## LoRa Basics Modem HAL | ||
|
||
The Hardware Abstraction Layer of LoRa Basics Modem is defined in the `smtc_modem_hal/smtc_modem_hal.h` header file. Porting LoRa Basics Modem to a new architecture requires one to implement the functions described by the prototypes in it. | ||
|
||
## Transceiver | ||
|
||
LoRa Basics Modem supports the following transceivers: | ||
|
||
* LR1110 with firmware 0x0308. | ||
* LR1120 with firmware 0x0102 | ||
* LR1121 with firmware 0x0102 | ||
* SX1261 | ||
* SX1262 | ||
* SX1280 | ||
* SX1281 | ||
|
||
## Known Limitations | ||
|
||
* [LFU] In case LoRa Basics Modem is acting in US915 region with datarate DR0, files smaller than 13 bytes are not properly sent and cannot be reconstructed on LoRa Cloud side | ||
* [charge] Values returned by `smtc_modem_get_charge()` for regions CN470 and CN470_RP1 are not accurate | ||
* [charge] Values returned by `smtc_modem_get_charge()` for the LR-FHSS based datarate are not accurate | ||
* [time] In case ALC_SYNC time service is used, when a valid time is received, the generated `SMTC_MODEM_EVENT_TIME` event will show a ghost missed event. | ||
|
||
## Disclaimer | ||
|
||
This software has been extensively tested when targeting LR1110 / LR1120 / LR1121 / SX1261 / SX1262 / SX1280 / SX1281 for LoRaWAN regions mentioned in [this paragraph](#lorawan-region). For all other combinations of features this software shall be considered an Engineering Sample. | ||
|
||
Modem trace prints can only be used for debug purpose and shall be deactivated for production release. | ||
|
||
### Disclaimer for Engineering Samples | ||
|
||
Information relating to this product and the application or design described herein is believed to be reliable, however such information is provided as a guide only and Semtech assumes no liability for any errors related to the product, documentation, or for the application or design described herein. Semtech reserves the right to make changes to the product or this document at any time without notice. |
Oops, something went wrong.