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