Why and how we updated the LoRa library

One of the works our team has been doing the past few weeks is improve on the AllThingsTalk Arduino LoRa library making it more compatible with the LoRaWAN™ specifications. By making a unified interface on the library, it can also be used cross-platform. A Python version will also be available. Who said for the LoPy?

Why the LoRa library update ?

The need for an updated library comes from several months of field experience where we saw a need to focus on a SEND functionality that introduces duty-cycle and time-on-air safeguards. As LoRa limits the amount of time you have on a channel it should not be used when you are expecting a package every few minutes, or for real-time communication. Also Over-the-Air programming is not possible, due to the downlink rate.

arduino-480x270The new code includes duty-cycle management, to help developers stay within the LoRa specifications. By doing so, there should be a significant increase in package delivery reliability. When you want to send packages too fast, a minimal queue will keep them until you are allowed to send again.

By calculating the spreading factor, the modem knows how many bytes it can add to the package. If you try to send a package that is too big because of a the spreading factor, the library will know and not attempt to send it.

Additionally, support for MultiConnect® mDot™ LoRa modems was added, besides the default AllThingsTalk MicroChip™ LoRa modems.


The updated library can be found on our GitHub

Don’t hesitate to ask questions here

You are free to consult our documentation here

And don’t forget to send feedbacks on beta: we reward best ones with WiPy !



EnCo TeamWhy and how we updated the LoRa library
Share this post

Related Posts