LoRaMAC  4.6.0
Documentation of the API
Introduction

Architecture

The concept of the API follows the concept of primitives of the IEEE Standard for local and metropolitan area networks — part 15.4: Low-Rate Wireless Personal Area Networks (IEEE802.15.4-2011).

The upcoming figure shows the concept of primitives of the LoRaMAC layer. The concept follows the Request-Confirm and Indication-Response architecture. The LoRaMAC layer offers MCPS (MAC Common Part Sublayer) services, MLME (MAC layer management entity) services and a MIB (MAC information base).

In general, the LoRaMAC layer utilizes MCPS services for data transmissions and data receptions, and MLME services to manage the LoRaWAN network. The MIB is responsible to store important runtime information and holds the configuration of the LoRaMAC layer.

An upper layer (e.g. the main application) is able to perform Requests which the LoRaMAC layer confirms with a Confirm primitive. The LoRaMAC layer notifies an upper layer with the Indication primitive in case of events. The upper layer may respond to an Indication with the Response primitive.


Features

Overview

The LoRaMAC layer is implemented according to LoRaWAN Specification v1.0.4 and the LoRaWAN Regional Parameters Specification RP2-1.0.1.

The LoRaMAC sources are available on GitHub: https://github.com/Lora-net/LoRaMac-node. Please note that a Wiki is also available: https://github.com/Lora-net/LoRaMac-node/wiki. It is strongly recommended to take a look into this Wiki, since it contains important information around the LoRaWAN Stack implementation.

LoRaWAN Classes

  • Class A
  • Class B
  • Class C

The project comes with sample applications for every class including the application for the compliance test mode.

LoRaWAN Regions

  • EU868 (EU 863-870MHz ISM Band)
  • US915 (US 902-928MHz ISM Band)
  • CN779 (China 779-787MHz ISM Band)
  • EU433 (EU 433MHz ISM Band)
  • AU915 (Australia 915-928MHz ISM Band)
  • CN470 (CN 470-510MHz Band)
  • AS923 (AS923MHz ISM Band)
  • KR923 (South Korea 920-923MHz ISM Band)
  • IN865 (India 865-867 MHz ISM Band)
  • RU864 (Russia 864-870 MHz ISM Band)

Supported Radios

  • SX1272 Radio
  • SX1276 Radio
  • SX126x Radio
  • LR1110 Radio

Further Information

Please refer also to the following information pages:

Quick-Start Guide

Porting Guide


License

Revised BSD License

Copyright Semtech Corporation 2013. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of the Semtech corporation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


Acknowledgements