Introduction
For working around the restrictions of transmitting flexible payloads over sub-GHz links, we’ve conceived the BERadio protocol based on BEncode the other day and also added a convenient implementation for creating, serializing and transmitting message objects in form of the BERadio C++ library later.
Always looking around beyond what we have done there, we just found the Helium LongFi Protocol conceived by the folks at https://www.helium.com/ and boldly designated as The world’s first peer to peer wireless network. While we are definitively not into things related to any kinds of Blockchain technologies and would like to avoid them for the time being, reading about the foundation layer of this specification solely based on pure LoRa (not LoRaWAN) sparked our interest.
About
LongFi is Helium’s open source, sub-GHz wireless protocol purpose-built for a wireless peer-to-peer network. Any device running the Helium LongFi protocol can send and receive packets over the Helium Network via Hotspots in range. LongFi provides miles of range and optimized battery life for low-bandwidth IoT sensor applications. The protocol is designed to reduce technical friction and facilitate a fast, simple hardware product development cycle.
LongFi is compatible with most certified LoRa modules such as the SX127x or SX126x from Semtech. Some of the key features of the LongFi protocol are:
- Packet fragmentation and reassembly – The ability to send packets of arbitrary size is a core feature of LongFi;
- Fully bi-directional – LongFi allows for over-the-air (OTA) firmware updates and sending of things like control packets.
- Roaming – Because all LongFi devices are trusted by all Hotspots on the network, and all Hotspots have the same set of capabilities, developers can take advantage of one, unified Helium Network anywhere coverage exists.
Specifications
Implementations
- GitHub - helium/longfi-core: Platform agnostic implementation of core LongFi primitives.
- GitHub - helium/longfi-device: C library of device-side LongFi Protocol
- GitHub - helium/longfi-arduino
- GitHub - helium/longfi-device-rs: Rust bindings to C implementation of LongFi protocol
- GitHub - helium/longfi-erlang: LongFi core bindings for Erlang
-
GitHub - helium/helium-client-python: A Python wrapper to the helium-client library(deprecated)
Overview — helium-client-python 1.5.1 documentation