logo-mobile

ROHM

ROHM
Menu
  • Arduino –
  • Raspberry Pi –
  • Trending –
  • Others –
  • About –
  • Contact –

Arduino

Intro to RTL-SDR for AM/FM, ISM band, LoRa transmission, and satellite tracking

Jan Gromes
Published by Jan Gromes at February 14, 2018
Categories
  • Arduino
Tags
  • am/fm
  • Arduino
  • LoRa
  • radio
  • rtl-sdr
  • satellite

Example 1: FM broadcast

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!

rtl-sdr

Figure 5. FM broadcast

 

Example 2: 433 MHz ISM band

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.

rtl-sdr

Figure 6. 433 MHz ISM band

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.

 

Example 3: LoRa broadcast

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.

rtl-sdr

Figure 7. The fastest possible LoRa setting. LoRa transmissions are marked with red markers in the waterfall.

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.

rtl-sdr

Figure 8. The slowest possible LoRa setting.

The sound that the SDR Console produces after demodulating this LoRa transmission using SAM (Synchronous Amplitude Modulation) is quite interesting as well!

 

1 2 3
Jan Gromes
Jan Gromes
Jan is currently studying Electrical Engineering at Brno University of Technology. He has many years of experience building projects using Arduino and other microcontrollers. His special interest lies in mechanical design of robotic systems.

Check us out on Social Media

  • Facebook
  • Twitter

Recommended Posts

  • Arduino Long Range Communication Tutorial – LoRenz ShieldArduino Long Range Communication Tutorial – LoRenz Shield
  • Arduino Long Range Communication Tutorial – LoRaLib LibraryArduino Long Range Communication Tutorial – LoRaLib Library
  • Intro to CMUcam5 Pixy Vision Camera Sensor Part 2 – Creating a Ball Balance BeamIntro to CMUcam5 Pixy Vision Camera Sensor Part 2 – Creating a Ball Balance Beam
  • Arduino Explorer Rover Part 3 – ProgrammingArduino Explorer Rover Part 3 – Programming
  • Arduino Robot RF Explorer – Part 2 – Putting Everything TogetherArduino Robot RF Explorer – Part 2 – Putting Everything Together
  • An Intro to: CMUcam5 Pixy Vision Camera SensorAn Intro to: CMUcam5 Pixy Vision Camera Sensor
Receive update on new postsPrivacy Policy

Recommended Tutorials

  • How to integrate an RFID module with Raspberry Pi How to integrate an RFID module with Raspberry Pi
  • How to Use the NRF24l01+ Module with Arduino How to Use the NRF24l01+ Module with Arduino
  • How to Run Arduino Sketches on Raspberry Pi How to Run Arduino Sketches on Raspberry Pi
  • Setting Up Raspberry Pi as a Home Media Server Setting Up Raspberry Pi as a Home Media Server

Recommended Trends

  • SewBot Is Revolutionizing the Clothing Manufacturing Industry SewBot Is Revolutionizing the Clothing Manufacturing Industry
  • All About The Sumo Robot Competition And Technology All About The Sumo Robot Competition And Technology
  • 5 Interesting Tips to Calculating the Forward Kinematics of a Robot 5 Interesting Tips to Calculating the Forward Kinematics of a Robot
  • Go Inside the Drones That Are Changing Food Delivery Go Inside the Drones That Are Changing Food Delivery
Menu
  • Arduino –
    Arduino Beginner’s Guide
  • Raspberry Pi –
    Raspberry Pi Beginner's Guide
  • Trending –
    Updates on New Technologies
  • Others –
    Interviews / Events / Others

Check us out on Social Media

  • Facebook
  • Twitter
  • About
  • Company
  • Privacy Policy
  • Terms of Service
  • Contact
  • Japanese
  • 简体中文
  • 繁體中文
Don’t Forget to Follow Us!
© Copyright 2016-2023. Device Plus - Powered by ROHM
© 2023 Device Plus. All Rights Reserved. Muffin group

istanbul escort istanbul escort istanbul escort