README.md
1# LoRa Basic Modem
2
3**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.
4
5**LoRa Basic Modem** embeds also an implementation of all LoRaWAN packages dedicated to Firmware Update Over The Air (FUOTA):
6
7- Application Layer Clock Synchronization (ALCSync)
8- Remote Multicast Setup
9- Fragmented Data Block Transport
10- Firmware Management Protocol (FMP)
11- Multi-Package Access (MPA)
12
13**LoRa Basic Modem** embeds also an implementation the Relay LoRaWAN® Specification TS011-1.0.1
14
15- Relay Tx
16- Relay Rx
17
18**LoRa Basic Modem** offers extended services:
19
20- LoRaWAN certification process
21- Geolocation with LoRa Edge chips
22- LoRaCloud features such as Stream, Large File Upload, Device Management or Almanac Update
23
24## Prerequisites
25
26The ARM GCC tool chain must be setup under your development environment.
27LBM library code has been developed using GNU Arm Embedded Toolchain 10-2020-q4-major 10.2.1 20201103 (release)
28
29## LoRa Basics Modem library
30
31LBM library code can be found in folder [lbm_lib](lbm_lib/).
32Please refer to [README.md](lbm_lib/README.md) to get all information related to LoRa Basics Modem library
33
34## Examples
35
36Under `lbm_examples` folder, one will find a few examples on how to use the LoRa Basics Modem stack.
37
38- Hardware Modem (Implements a hardware modem controlled by a serial interface)
39- Periodical uplink (joins the network and then sends periodic uplinks and each time the button is pushed)
40- Porting tests (Allows to verify if the project porting process is correct)
41- LCTT certification (to run LoRaWAN certification)
42
43The examples are targeted for the Nucleo L476 kit featuring an STM32L476 micro-controller.
44For further details please refer to `lbm_examples` directory [README](lbm_examples/README.md) file.
45
46To build the periodical uplink example targeting the LR1110 Semtech radio the following should be executed on the command line:
47
48```bash
49make -C lbm_examples full_lr1110 MODEM_APP=PERIODICAL_UPLINK
50```
51
52## Applications
53
54Under `lbm_applications` folder, one will find 3 specific applications that are using LoRa Basics Modem stack.
55
56- A ThreadX Operating System running on STM32U5 ([lbm_applications/1_thread_x_on_stm32_u5/README.md](lbm_applications/1_thread_x_on_stm32_u5/README.md))
57- A LBM porting on Nordic NRF52840 ([lbm_applications/2_porting_nrf_52840/README.md](lbm_applications/2_porting_nrf_52840/README.md))
58- 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))
59
60An integration in Zephyr OS is available in another repository, instructions to download this integration and LoRa Basics Modem
61are available at [LBM_Zephyr](https://github.com/Lora-net/LBM_Zephyr/blob/master/README.md).
62