Let’s start with something easy: FM broadcast. First, you will have to select the correct mode. In this case, we want either FM (Frequency Modulation) or BFM (Broadcast Frequency Modulation). The BFM mode provides better audio quality, as well as RDS text (Radio Data System) – text information that the station can optionally transmit. Typically, this is the station name or sometimes the name of the song that is currently playing.
Now just find the frequency of your favorite FM station and type it into SDR Console! If you do not have a favorite FM station (quite understandable in the Internet era!) just search the FM broadcast band (87.5 to 108 MHz) for massive peaks. Those are the FM broadcast stations, so just tune in and listen!
The reason I originally bought the RTL-SDR dongle was to monitor communications in the ISM band 433 MHz. ISM (Industry-Medical-Scientific) is a group of license-free bands. This means that anyone can transmit in this band. Of course, certain legal limitations might still apply, depending on your area of residence. The 433 MHz band is commonly used for all sorts of wireless devices: garage door controllers, remote doorbells, thermometers, and basically anything that needs to transmit simple wireless data over ranges up to a few hundred meters.
In the above picture, you can see an example of what the 433 MHz band looks like. As you can see, there’s quite a lot of traffic at different frequencies. Most of these signals transmit for less than a few seconds and have up to a few minutes long delays between transmissions. That’s probably because most of those devices are powered by batteries, so they try to save some energy.
Time for something more interesting: LoRa transmissions! As I mentioned in Arduino Long Range Communication Tutorial – LoRenz Shield, LoRa is a chirp spread spectrum (CSS) modulation. This means that the frequency of the signal changes over time. LoRa modulation is used in wireless, low-power wide-area (LPWA) networks, such as LoRaWAN. There’s an important distinction we have to make: LoRa is a modulation, while LoRaWAN is a protocol that uses LoRa modulation as its physical layer in the ISO-OSI model. This example is only concerned with properties of LoRa modulation, not the properties of LoRaWAN networks.
The LoRa modulation itself is proprietary, which means that unless we use the receiver made by Semtech (the company that created the LoRa modulation), we won’t be able to decode the transmission into binary data. However, we can observe how the different settings of the LoRa module affect the transmission. Those settings are bandwidth, spreading factor, and coding rate.
Bandwidth is pretty easy to understand; it’s the frequency range of the transmission. Higher bandwidth means higher data rate, but also reduced range and increased power consumption – a critical factor in LoRa systems since the modulation itself was designed to use as little power as possible and to transmit over as long range as possible. The highest bandwidth supported on Semtech LoRa modules is 500 kHz and the lowest is 7.80 kHz.
Spreading factor setting is a bit more complicated because it is tied to the nature of LoRa as a chirp spread spectrum modulation. It is a measure of the number of bits encoded per symbol of the transmission and ranges from 6 to 12; higher spreading factor means lower data rate over a longer range. You can imagine symbol as a higher information unit than a bit. As a simple example, consider data transmission over an old, analog telephone line. That was designed to carry sounds, not digital bits. However, if you represent 1s as one tone, and 0s as another, you can transmit digital information over an analog-based medium. You are now using symbolic alphabet with two symbols in it. The cool part is: why stop at just two symbols? You can start grouping bits into longer sequences, and represent those sequences by symbols. So if you want to encode 4 bit sequences, you will have to expand your symbolic alphabet to 16 symbols and use 16 tones.
Coding rate expresses the amount of forward error correction done on the packets. This parameter changes the overall length of the message, so it’s understandable that low value of coding rate (4/5) will lead to slightly higher data rates than high value (4/8). In return, the link is more robust with higher coding rate.
The next two pictures compare two extreme scenarios of LoRa transmission. The top one is set to the highest data rate, which means 500 kHz bandwidth, spreading factor 6 and coding rate value of 4/5. As you can see, the packet (28 bytes long) is transmitted very quickly, but for that brief moment, our transmission completely blocks a huge chunk of the 433 MHz ISM band. Also, the transmission probably won’t be able to reach very far, even in an open space.
On the other hand, here is the lowest possible data rate transmitting the same 28 bytes of data. Note that the waterfall only displays about 4 seconds of the transmission. The whole thing takes about 30 seconds, which gives you an approximate data rate of less than a byte per second. Compare that to the previous one where the transmission took only a fraction of a second! However, with this setting, we only occupy a tiny part of the ISM band, and the range is drastically improved.
The sound that the SDR Console produces after demodulating this LoRa transmission using SAM (Synchronous Amplitude Modulation) is quite interesting as well!