Resources for LoRa and LoRaWAN

5 minute read


LoRa/LoRaWAN is a new IoT technique which is very suitable for energy efficient and long range communications. This paper summarizes resources for LoRa and LoRaWAN.


A complete LoRaWAN application requires end devices, gateway, network server, and an application.

LoRaWAN Architecture
LoRaWAN Architecture. Source: Page 8 of the white paper A technical overview of LoRa® and LoRaWAN™"


LoRa vs LoRaWAN

Sometimes people use LoRa as the physical layer modulation technique while LoRaWAN as the MAC protocol and also the network structure. In other cases, you may also see that LoRa is used as a general term to represent LoRa/LoRaWAN. A good tutorial and summary of the LoRa and LoRaWAN can be found at link.


LoRa (Long Range) is an IoT wireless technology patented by Smetech. It defines the physical layer modulation.

Some key features of LoRa

Understand LoRa modulation

  • LoRa modem with LimeSDR Link
  • Understanding LoRa RF modulation link

Arduino LoRa Driver


LoRaWAN is a media access control (MAC) protocol for wide area networks. It is defined by LoRa Alliance. The first LoRaWAN specification was published on January 2015 (download link) and the latest LoRaWAN specifications is LoRaWAN® Specification v1.0.3 (July 2018) download link.

Many LoRaWAN protocol implementations may not support the latest version. For example, pycom devices only support LoRaWAN 1.0.2. The previous versions of LoRaWAN specifications can be accessed from

Some key features of LoRaWAN

LoRaWAN is not the only MAC protocol for LoRa. Symphony Link is also available. A difference between Symphony Link and LoRaWAN can be found here

End Device

There are different options for selecting the end devices, based on your preference. Here is a (non-comprehensive) summary of the LoRa/LoRaWAN devices and their drivers.

Hardware TypeDriver (LoRa)Driver (LoRaWAN)LanguageSupported Devices
Pycom devicesLoRaMACLoRaWAN-OTAA, LoRaWAN-ABPMicropythonFiPy, LoPy
Arduino ShieldArduino RadioHeadArduino LMICArduino CArduino LoRa GPS Sheild, Seeeduino LoRaWAN
Raspberry Pi Shield  CLoRa GPS HAT for Raspberry Pi
mBed-BasedSX1272Lib, SX1276LibLoRaWAN-libCSX1272MB2xAS , SX1276MB1xAS
RN2483   Microchip RN2483

A full list of the mbed LoRa device and the mbed LoRaWAN APIs

For example, if you are using Pycom devices, you can connect the end device by using Authentication By Personalisation (ABP) or Over The Air Authentication (OTAA).

LoRaWAN® Transceivers


You may have experience setting up a WiFi router (access point) at home or office. Users will need password to access the router for internet, which can be referred as a private router. In LoRaWAN, it is a different story. You do not need a password to connect to a gateway. As long as there is a gateway nearby, your end devices will connect to the gateway and eventually to the network server. In this case, the gateway is public. A detailed introduction on the gateway can be found at here, where you can find a list of recommended hardware.

If you intend to setup a gateway, you can configure it as public or private. An instruction of using RAK831 gateway can be found here here

Network Server

Public Network Server

The Things Network is a free and probably the most popular LoRaWAN server. Please refer to here for an instruction about creating applications in TTN.

Another tutorial from pycom can be found here.

Private Network Server

  • Tutorial: TTN: Setting up a Private Routing Environment link
  • loraserver


Please refer to this link for building applications using TTN.

There is a number of data API and SDK for interaction between the applications and TTN server.

LoRaWAN Demo at University of Liverpool

A LoRaWAN demo has been created at the Advanced Networks Research Group (ANRG), University of Liverpool. The demo built a complete LoRaWAN-based IoT system, including FiPy end devices, gateway, and applications. A detailed introduction can be found at link.

A public LoRaWAN gateway hosted at The Things Network by ANRG Link. The gateway was built following the instruction here

Other Resources

SDR Implementation

  • gr-lora: A detailed explanation of the model and algorithm can be found in link.
  • gr-lora:. A detailed explanation of the model and algorithm can be found in link. (Yes, both their names are gr-lora)
  • LoRa in Pothos