So, I’ve found a number of websites that have significant material relating to RF modules of various types, and the kinds of boards and software combinations that we might consider for small scale device communications.
The link shown above (jeelabs) points to a sprawling website with over 1500 posts of the type that might interest us in this realm of things. Check out the other pages on his site, as there’s embedded stuff galore.
Specifically, jeelabs has links to github pages that contain the sources for an RF69 driver that can be used on the Pi as well as the Odroid C1, and has example programs for utilizing that driver. The RF69 driver is at:
An example program that use the RF69 driver can be found at:
The jeelabs site is also good for some insight into the ways these types of RF modules modulate their RF signals using various things such as GFSK, FSK, and OOK. The author makes mention of spread spectrum techniques, and how the applicable parameters effect range and data rates. The RF69W and nRF24 both primarily use gaussian frequency shift keying, with no frequency hopping AFAIK.
The IoT style device channel width is quite a bit less than the spread spectrum (DSSS) WiFi at 20 MHz. Many nRF24 or RFM69 “channels” will fit into a standard WiFi channel. Since no frequency hopping is used, the nRF24 and RF69W modules have less interference rejection than Bluetooth2, which hops around in 79 different 1MHz “channels” – inside of the same 2.4 GHz spectrum where WiFi operates. On the 5 GHz band, the width of each WiFi channel is 40 MHz, giving an even higher throughput (600 Mbps). Note my information on the bandwidth for Bluetooth2 is not 100 percent certain. I’m collecting just enough information to coordinate my projects, to decide what tech to use for which purpose. There’s some conflicting info out there! Some registers in the nRF24 device apparently allow for the use of frequency hopping algorithms, but some experimenters have reported less than optimal results, and so I’d guess that’s not the strong point for the device, but it’s only a guess.
Since some of the WiFi channels overlap, there will be portions of the band where there is more interference than others. Thus, the ability to select a narrow slice or “subchannel” of a normal WiFi channel is a convenient way to reduce interference. One thing to do is to run the scanner program in the base RF library, and use that to select a lesser used spot in the band.
So, to cap it off:
- 5.17 GHz WiFi – 40 MHz channels (over 100 of them), full or partial channel use, depending on interference, using DSSS digital modulation spread spectrum techniques. Power restrictions, depending on frequency (up to 600 Mbps throughput)
- 2.40 GHz WiFi — 20 MHz channels (11 of them), full or partial channel use, depending on interference, using DSSS digital modulation spread spectrum techniques. Power restrictions, depending on frequency (up to 250 Mbps throughput)
- Bluetooth 2 – 1 MHz channels (79 of them), hopping from channel to channel to avoid interference, with FHSS spread spectrum techniques (up to 3 Mbps throughput, dependent on power). Bluetooth 3 is much faster.
- Most IoT style 2.4 GHz comm boards – like blue tooth, except no frequency hopping (except in more recent boards). Uses GFSK, FSK, or OOK modulation (throughput variable – very dependent on power and interference).
- Most IoT style 915 MHz comm boards – like blue tooth, except no frequency hopping (except in more recent boards). Uses GFSK, FSK, or OOK modulation (throughput variable – very dependent on power and interference).
- Most IoT style 433 MHz comm boards – like blue tooth, except no frequency hopping (except in more recent boards). Uses GFSK, FSK, or OOK modulation (throughput variable – very dependent on power and interference).
All of this should be taken with a grain of salt, as I’m just now collecting my thoughts and categorizing things as I pull down resources related to the bits and pieces of it. It’s a big RF subcategory, and rapidly developing.
It should be noted that of the IoT style devices mentioned, the 2.4 GHz variety will have the highest throughput at close ranges. But – the 433 MHz variety will have the longer range in most cases. Only the 2.4 GHz and 915 MHz versions are legal in the US. WiFi fights interference by reducing its usage of the single big channel that it’s operating within. Bluetooth fights interference by hopping around, selecting one of many other smaller channels where interference is less. Some IoT devices fight interference by using hardware auto-acknowledge mechanisms, and resending packets (well the others do this too, it’s just that the really simple devices may have ONLY resends as a defense).
There are three special WiFi channels (the ones between 2.462 and 2.482 GHz) that are legal in the US with only very low power. The rest of the 2.4 GHz channels are legal at the normal power levels. On 5 GHz, there are channels that may be used only with low power.
Note: the author does not have a recent, applicable background in circuit building, or battery related issues, so this is presented as the work of a hobbyist, and is not meant for duplication by others. Readers should look elsewhere for design advice and info. Note: This author and site is not affiliated with the Raspberry Pi in any way. For information about those projects visit http://www.raspberrypi.org.Note: The Odroid site is http://www.hardkernel.com and is not affiliated with this site in any way. The nrf24 is a product of http://www.nordicsemi.com, They are not affiliated with this author or website in any way. Note: The RFM69W module is a product of HopeRF, LTD. They are at http://www.hoperf.com. This author and site is not affilicated with HopeRF, LTD in any way. Some of the modules in this series of posts are produced by LowPowerLab.com. This author and site has no affiliation with them. Bluetooth is a trademark of the Bluetooth Special Interest Group, and is not affiliated with this author or site in any way.