I've been investigating radio networking a bit lately for a side project I'm thinking about. This summarizes what I've learned.
Different radio networking technologies in the hobbyist space have a fundamental tradeoff between range, bandwidth and power usage. Increasing range or bandwidth tends to increase power usage. So one has to ask questions like, how much data do you want to exchange on your network, at what rate, how far apart are they, and will your devices be powered.
- WiFi is a high-bandwidth, high-power-use option with medium range
- LTE is a medium-bandwidth, high-power-use option with long range (if you have coverage) that is pay-to-use.
- Bluetooth Low Energy is medium-high bandwidth, medium-low energy usage with very short range.
You've probably run into these already at some point, so it will be a relief to learn that it's fairly easy to build out hobby projects using these technologies. You may be surprised to learn that none of these are what Phillips Hue, Smart Things, Nest or any other home automation system uses. Why is that?
- Connecting to WiFi (as you know) is not fast, but if your device enters a sleep state, it will have to rejoin when it wakes up. If you have a 20-byte packet to send every minute, the vast majority of your energy use is going to be wasted on WiFi associating. Most residential IoT things would rather have longer battery life.
- Who wants to spend $5/month per LTE device in your house? And what's going to happen if you exceed a few MB of data?
- BLE is explicitly a one-to-one network with low range. It's intended to be a cable replacement. Everything you want to coordinate has to be within the same short distance of your controller.
Now, there are bleeding-edge solutions to many of these problems. There is a low-power WiFi standard and Bluetooth 5 Mesh. But, there are other technologies that might be interesting to a hobbyist. If we were making a chart of bandwidth, power, distance with the options above you'll notice we don't have any medium-long distance, low-bandwidth, low energy use options. Those are:
- ISM-band packet radio
These options are all medium-low bandwidth, medium to long range, low power use. ISM band packet radio is what you get using a BBC micro:bit radio. The lowest-level option is the packet radio, which is essentially the most straightforward spray of a packet of bits on a particular frequency. This is low power use, but also not very reliable. The distance will depend on the power level and the frequency, with lower frequencies having lower bandwidth but longer range. Your choices are going to be 433 MHz, 915 MHz or 2.4 GHz, at least in the US. The BBC micro:bit is essentially doing this using its Bluetooth radio when you use the packet radio.
Zigbee and Thread essentially add addressing and mesh networking on top of the packet radio. The range is tens of feet, so somewhat longer than BLE but not quite WiFi. The main difference between the two is that Zigbee has a complex suite of protocols for different types of appliance and it's own simple addressing scheme, where Thread just lets you use IPv6 addresses to talk to devices and leaves it at that.
LoRa doubles down on distance, having a range measured in multiple miles or kilometers. However, the packet size is very small, around 50 bytes, and you really can't send more than 1% of the time. LoRa devices listen only directly after a broadcast for a tiny amount of time. I'm not sure what this is for. Perhaps farm automation? It's very cool technology though.
Anyway, this is basically what I've learned.