LoRa Basics™ Modem User Manual v3.4 documentation

LoRa Basics™ Modem User Manual

Introduction to LoRa Basics™ Modem

LoRa Basics™ Modem is an easy-to-use software library that simplifies the development of LoRaWAN® end-nodes. Using LoRa Basics Modem allows developers to seamlessly integrate the LoRa Cloud™ services into their applications. This integration is achieved by submitting specific uplinks to the LoRa Cloud API and routing the resulting downlinks back to the end device. The uplink submission and downlink routing process is carried out by means of the LoRaWAN network server and/or application server, as shown in the following diagram:

LoRa Basics Modem Network Architecture.

LoRa Basics Modem network architecture

LoRa Cloud is a set of cloud APIs that provide simple solutions to common tasks related to LoRaWAN networks and LoRa®-enabled devices. The LoRa Cloud services simplify the process of developing managed endpoint solutions and make building Internet of Things (IoT) solutions with LoRa and LoRaWAN more accessible to application developers. Some of the services provided by LoRa Cloud are:

  1. Periodic information messages

    • System status, firmware version

    • Charge, temperature

    • Downlink signal quality

    • Uptime time since last downlink

    • Device EUI, Join EUI

    • Application-specific status bytes

  2. Management commands

    • Mute, rejoin

    • Soft reset / factory reset

    • Set Adaptive Data Rate (ADR) profile

    • Change reporting interval of periodic information messages

    • Retrieve crash log

  3. Advanced protocols

    • Large File Upload (LFU).

    • Reliable Octet Stream Encoding (ROSE).

    • Application-Layer Clock Synchronization (ALCSync).

A detailed description of the LoRa Cloud APIs can be found in the on-line LoRa Cloud documentation.

To better fit end user requirements, LoRa Basics Modem was designed with the goals of being easily portable to new microcontrollers, and to be able to use diverse Semtech transceivers. To achieve these goals, LoRa Basics Modem employs a stacked architecture in which microcontroller and transceiver interaction is carried out through the use of abstraction layers as illustrated here:

LoRa Basics Modem Software Stack.

LoRa Basics Modem software stack

Microcontroller interaction is achieved through the use of the MCU Hardware Abstraction Layer. In order to port LoRa Basics Modem to a new microcontroller/board, the MCU Hardware Abstraction Layer must be implemented for the selected microcontroller/board combination.

The Radio Abstraction Layer, on the other hand, provides a generic interface for transceiver interaction. This interface is then implemented in each of the transceiver-specific drivers. As a result, to use a specific transceiver, solution developers simply include the driver for the selected transceiver in their code. Currently, the LR1110 transceiver is supported, with additional architectures coming in future releases.

Finally, application development is done through the use of the LoRa Basics Modem (API). The rest of this document describes the LoRa Basics Modem API.