ChatterBox Communication
Protocol Agnostic / Fault Tolerant
The ChatterBox protocol and platform is uniquely designed to work with any transmission method/vehicle that can send and receive bytes, which is just about anything. It is designed well with unreliable transmission methods that offer no inherent security or guarantee of delivery. ChatterBox is specifically designed to work well with intermittent and unreliable connectivity.
The responsibility of ensuring delivery, retries, validating signatures/payloads, encrypting/decrypting, and deciding which communication method(s) and paths to take is delegated to each individual device, which is fully capable of all that and more.
This combination ensures that the communication between devices is secure, robust, and resilient, whether a cluster has 2 devices or 90.
LoRa + ISM Bands
LoRa
LoRa, as you might guess, stands for Long Range. It is a technique for transmitting data over radio frequencies using spread spectrum modulation, invented by Semtech (a hardware company). It has quickly caught on for low power, off-grid, and IoT (internet of things) applications, as it performs quite well over fairly long distances with minimal power consumption and low cost hardware. LoRa is an open standard that many hardware companies build modules and devices for.
We selected LoRa as the primary means of transmitting data, precisely for those reasons. There is a deep selection of transceivers, antennas, amplifiers, and other products that are options with LoRa.
ISM Bands
ISM stands for industrial, scientific, medical. It is a frequency range that is often referred to as “unlicensed”, as individual devices and users do not need a license to use the frequency range, provided the equipment they are using meets certain FCC regulations.
In the US, the ISM bands include 902-928 MHz, as well as the commonly used 2.4 and 5.8 GHz frequencies. In other countries, the frequency ranges can vary.
When communicating via LoRa, ChatterBox primarily uses on 902-928, but can also utilize 863-870 range.
Frequency Hopping
Regardless of the frequency range being used with LoRa on ChatterBox, a hopping technique is utilized. This reduces or prevents RF collisions between clusters, as well as individual devices. It also makes each cluster and device less susceptible to jamming, because if a certain frequency is being jammed/spammed, it should only affect an device or cluster for a few seconds.
The hopping technique uses a secure algorithm whereby every device in the cluster hops to a frequency in unison, which is the “base” frequency for the cluster for a very short amount of time.
When transmitting directly between two devices, the first packet transmission will happen on this rotating base frequency, while the remaining packets will be striped across different frequencies, specific to the two devices in contact, and only known to the two devices in contact. This per-packet hopping happens very fast, typically within milliseconds.
MQQT + WiFI
MQQT
MQQT is another popular IoT technology that is often used for low bandwidth communication between devices and sensors. It’s low-overhead, quick, and there’s no guarantee that any given message/packet will arrive at its destination, which may seem like a negative, but it’s a large part what makes MQTT quick, efficient, and perfect for resource / bandwidth constrained devices.
MQTT is a protocol that is implemented by many products, open source, commercial, and cloud-based. It works well with TLS, which can add a level of security, at the cost of adding additional work to the client devices (which, again, may be resource constrained and have very little memory). So, depending on the devices and application, TLS may or may not be desired in a given situation.
We selected MQTT over 2.4 GHz WiFi as the secondary means of communication, because the characteristics of both the frequency range and protocols are very different from LoRa, so it widens the diversity of the platform significantly, while still preserving the security and decentralized nature of ChatterBox.
MQTT is secondary and not at all required for a ChatterBox cluster or channel. It does open the ability to bridge extremely long distances, since internet, hot spots, satellite, etc can be used.
Other Methods
ChatterBox has been tested with other communication methods that work, but are currently disabled in the firmware, mainly because giving users too many options can often make the system harder to understand or use.
UDP Multicast + 2.4 GHz WiFi
Similar to MQTT (but without servers), UDP is very fast with no guarantee of delivery, and relies on common networking protocols to copy packets/data between devices that are connected to the same network.
UDP does work quite well with ChatterBox, but requires more networking expertise to set up, so for that reason we currently don’t enable that option.
UART
A wired protocol that you use any time you plug in a USB cable to transfer data. ChatterBox does still use this if you download analysis data to a PC, but currently its not enabled as a communication method, although it has been in the past (wiring two nodes together with a USB cable).
CAN
This is a wired protocol, often used in automotive industry. One benefit is the distance that can be spanned with CAN vs other low power wired protocols.
BLE
Bluetooth low energy is another option that lends itself well to the way ChatterBox communicates. We may open this option again in the future, specifically for inter-cluster communication, where two nodes or communicators near one another, but on different clusters, may help to bridge two clusters.