The two main standards at work in the low-power long-range radio game are LoRa and Sigfox. I discussed Sigfox in the Pycom SiPy Overview so I won't do that again here. The Pycom LoPy is the device that adds LoRa technology to the basic features seen in the WiPy. Interestingly, Pycom have already upgraded the LoPy, now thought of as LoPy 1.0, to LoPy4. The LoPy4 includes a Sigfox radio and Sigfox network stack which makes sense as LoRa and Sigfox share radio spectrum. There's support for LoRa on the 433MHz band as well.
Hardware:
Features
LoPy features diagram
The LoPy4 shares an antenna connector between LoPy and Sigfox and has a separate connector to support LoRa at the 433MHz frequency. The 433MHz band is available for use in Australia and is covered by a class license, as Sigfox and the other LoRa frequency bands are. This has been done to follow other regions, most notably Europe, where the 433MHz band has been approved for Low Interference Potential Devices (LIPDs).
About LoRa
LoRa is a Low Power Wide Area Network (LPWAN) technology. LoRa's name comes from its Long Range. LoRa devices can communicate when as far as 22km apart. This means two nodes on opposite sides of a shared gateway can be more than 40km apart. If you like, the "network diameter" can be over 40km. This would, however, require ideal conditions with line-of-sight required between devices.
LoRa gateways are set up with their own connection to the Internet allowing connected nodes to send and receive messages via the gateway. Your LoRa compatible device can communicate with a cloud service using existing gateways provided by others, or you can set up your own gateways.
There are both commercial and community deployments of LoRa. Depending on the application, paid access to LoRa services might be the most appropriate deployment method. There is a growing community of LoRa users who put up gateways of their own, with an Internet connection, and provide free access. Have a look at the coverage map on The Things Network web site.
LoRaWAN is the name given to the part of LoRa that involves control of what LoRa devices do. LoRaWAN defines how devices should communicate and share the limited resource of radio frequencies available in any region. In Australia we use the LoRa Region AU915. If a LoRa device in Australia is set to the wrong region it's operating outside the rules.
When experimenting with LoRa, you might like to set up a nano gateway. Pycom provide two example projects to show how to develop a LoRa nano gateway using LoRaWAN and a LoRa nano gateway without LoRaWAN. These are a great way to familiarise yourself with the technology using only a few devices.
LoRa is very reliable. It is designed to use its available radio spectrum to dodge interference and get messages through even in environments with a lot of radio noise. Low power is part of the plan too. LoRa devices are intended to run from a battery for years, waking up when they need to send/receive data, and going back to sleep to conserve energy.
What's the catch? LoRa places strict limits on the amount of time devices can communicate on the network. Each device must not "talk" for more than 1% of the time. Devices placed further apart or competing with more radio noise, slow down their communications automatically to ensure the message gets through. This "spreading factor" means devices with a strong signal talk faster and can send more messages because each message takes less time. Devices with weaker radio signals due to distance and/or noise, talk slower and there for must talk less often so as not to exceed the 1% rule.
You might be tempted to see this as a limitation of LoRa until you understand it is by design. Because IoT devices don't typically need to send large messages, or send messages frequently, it is possible to provide connectivity to devices achieving all these goals:
- Long range wireless connections
- Highly reliable communications
- Low power consumption – long life on battery power
LoRa Applications
Examples of appropriate use of LoRa include:
- Reporting of measurements (moisture, temperature, pressure, GPS location etc.)
- Control of lighting, heating, pumping power circuits
LoRa is not intended for:
- Streaming data (eg, real-time tracking of moving equipment via GPS location)
- Transfer of picture/video data
- Over-the-air update of microcontroller firmware or code
Many applications of LoRa are becoming possible through "intelligent edge" IoT platforms. For example: where an IoT device might have taken a picture and sent that to the cloud for object recognition, the increasing power of IoT devices mean the device can itself analyse an image and report to the cloud the type of object detected instead of it needing to transfer the entire image.
Network Coverage
A major differentiator between LoRa and Sigfox is that Sigfox provides infrastructure: base stations you can access by paying a subscription like with a mobile phone. LoRa has both commercial and community providers and, since LoRaWAN works anywhere, cooperatives are springing up (like The Things Network) that take registration from people who build their own Internet-connected LoRaWAN gateways and want to share these with any LoRaWAN devices. Your IoT project may not need its own Internet gateway; someone may already be providing a gateway service in your deployment area!
Pycom Devices
Pycom support LoRa in two different microcontroller devices: the LoPy and FiPy.
Go Further
We'll post up a Getting Started tutorial and video as well as a full Internet of Things project using LoRa and the Pycom LoPys. Until then, have a look at our other Pycom tutorials and videos.
References
LoRa Chirp, video by Richard Wenner
LoRa Spreading Factor and Data Rate, video by Richard Wenner
Radio Frequency (RF) Bands – Applied IoT Engineering Community (Engineers Australia)
Spectrum at 434 MHz for low powered devices – Australian Communications and Media Authority