Transplanted from Semtech LoRaWAN( protocol to "ESP32 + Arduino" platform. Use RTC, support deep sleep, only working with ESP32 + LoRa boards made by HelTec Automation(TM). Need a unique license to use it.
Switch branches/tags
Nothing to show
Clone or download
Latest commit b34e3ee Nov 24, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples fix OTAA_DHT11 example Nov 13, 2018
src Bug Fix Nov 25, 2018
.gitignore Fix LoRaWAN library use internal RTC(15KHz) Sep 14, 2018 Fix LoRaWAN library use internal RTC(15KHz) Sep 14, 2018 Update Sep 20, 2018


The Overview

  • This library is make LoRaWAN 1.0.2 protocol running with ESP32. Only support the ESP32 + LoRa series products made by HelTec Automation(TM), and a LoRa gateway is must needed.
  • You may need change some definition in "Commissioning.h" ,"LoRaMac-definitions.h", "board.h"...
  • This library is transplanted form
  • Use RTC and deep sleep mode supported, only few millisecond wake up in a cycle.


To install this library:

  • install it using the Arduino Library manager ("Sketch" -> "Include Library" -> "Manage Libraries..."), or
  • download a zipfile from github using the "Download ZIP" button and install it using the IDE ("Sketch" -> "Include Library" -> "Add .ZIP Library..."
  • clone this git repository into your sketchbook/libraries folder.

For more info, see


The ESP32_LoRaWAN library provides a fairly complete LoRaWAN Class A and Class C implementation, supporting the EU-433 CN-470 EU-868 and US-915 bands. Only a limited number of features was tested using this port on Heltec hardware, so be careful when using any of the untested features.

The following functions included:

  • LoRaWAN protocol V1.0.2 Class A and Class C;
  • Use ESP32's internal RTC(15KHz);
  • All ESP32 + LoRa boards made by Heltec Automation(TM) can use this library;
  • Support deepsleep and stop mode;
  • An unique license ralate to Chip ID is needed, you can check your license here:

Test information

working band status
EU_433 not test
CN_470_510 work well
EU_863_870 work well
US_902_928 work with bug

What certainly works:

  • Sending packets uplink, taking into account duty cycling.
  • Encryption and message integrity checking;
  • Over-the-air activation (OTAA / joining);
  • Deep sleep and wake up;
  • Class A operation.

What has not been tested:

  • Receiving downlink packets in the RX2 window.
  • Class B operation.
  • Class C operation.
  • ABP mode.

What are the known bugs:

  • EU_902_928: In OTAA mode, first join request can't be successfully received in gateway.


Coming soon. Before we release the APIs, user can read the .h files.

How to use this library

The only different with a common Arduino library is need a uniqu license. It's ralate to ESP32 Chip ID.

How to get your board's Chip ID?

How to get the unique license?

Only the boards made after August 2018 can be checked from this page, if you have a former version, you can mail to and improve you already have a HelTec Automation made board.

Contact us

Issue/Bug report template

Before reporting an issue, make sure you've searched for similar one that was already created. Also make sure to go through all the issues labelled as for reference.