LoRa (Long Range) is a low-power wide-area network technology. It uses a license-free ISM frequency band at 433 MHz in ITU Europe or 900 MHz in ITU Americans. These packet radios are simpler than WiFi or BLE for making a connection. The modules do packetization, error correction, and can also automatically re-transmit. They come in four variants (two modulation types, and two frequencies). Range varies by variant.
Location | Variant | Range | Security |
---|---|---|---|
Europe | RFM69 @ 433 MHz RFM98 @ 433 MHz |
350 m / 1148 ft 2000 m / 6562 ft |
AES-128 |
Americas | RFM69 @ 433 MHz RFM95 @ 900 MHz |
350 m / 1148 ft 2000 m / 6562 ft |
The sub-GHz radio is not designed for streaming audio or video. It's best used for small packets of data. The data rate is adjustable but its common to stick to around 19.2 Kbps (thats bits per second). Lower data rates will be more successful in their transmissions. Radios only talk to radios of the same part number.
Use them in the packetized mode, so that a designated recipient, error correction, automatic re-transmit, and return-receipt is implemented.
The cross platform RadioHead Library is well known, with good support notes. Details from Adafruit on using the RadioHead library.
Adafruit RFM69HCW and RFM9X LoRa Packet Radio Breakouts
The data packet contents and transmission interval vary by application. In general, they can be categorized into streaming and event based scenarios.
In this scenario, you transmit on a regular interval the value measured from a sensor(s), with the goal of providing the latest value to the recipient. The data is sent as quickly as possible, recognizing that occasionally a packet will be dropped, sacrificing package receipt robustness for update speed.
An example of this applications is a remote control with variable hand trigger input, or a user operated potentiometer. Output from a sensor that typically changes slowly, like temperature & humidity could also utilize this coding protocol.
I am easily able to send an encrypted 16 byte 256 AES encrypted message between two Adafruit Feather M4 Express (ATSAMD51 ) with a Adafruit Adafruit LoRa Radio FeatherWing - RFM95W 900 MHz every 91 ms or 11 Hz with a 0 % error rate (missed transmissions) measured over 12 hours.
When a sensor event occurs such as the triggering of a motion sensor, or when a particular temperature / acceleration threshold has been exceeded, then you want to transmit via LoRa one or more sensor values, and insure that the packet is received by the recipient.
An example would be the monitoring of shock magnitudes for an asset being transported and tracked. Each time an acceleration or temperature threshold is exceeded, the values of all sensors are recorded and sent via LoRa in a single packet.
I am easily able to send an encrypted 16 byte 256 AES encrypted message using RadioHead reliable datagram and my own acknowledge persistance code between two Adafruit Feather M4 Express (ATSAMD51 ) with a Adafruit Adafruit LoRa Radio FeatherWing - RFM95W 900 MHz every 91 ms or 11 Hz with only a 0.2% error rate (missed transmission).
Do you need help developing or customizing a IoT product for your needs? Send me an email requesting a free one hour phone / web share consultation.
The information presented on this website is for the author's use only. Use of this information by anyone other than the author is offered as guidelines and non-professional advice only. No liability is assumed by the author or this web site.