If you already have an RTL-SDR dongle and a Raspberry Pi, you can decode a lot more than broadcast FM radio. In this guide, I’ll show you how to use rtl_433 for 433 MHz sensors and dump1090 for ADS-B aircraft tracking on a Raspberry Pi.
What you needCopy link to section
Before starting, make sure you have:
- A Raspberry Pi 3, 4, or 5 with Raspberry Pi OS or another Debian-based Linux distribution.
- An RTL-SDR dongle, preferably a V3 or V4 model.
- A decent USB cable or a powered USB hub if your RTL-SDR needs extra power.
- Internet access for downloading packages.
If you plan to use the setup continuously, a Raspberry Pi 4 or 5 with an SSD is a better choice than a microSD card.
Step 1: Update your Raspberry PiCopy link to section
Start from a clean and updated system:
sudo apt update
sudo apt full-upgrade -y
sudo reboot
This keeps package conflicts low and makes driver installation easier.
Step 2: Check your RTL-SDR setupCopy link to section
I am assuming you already have the RTL-SDR dongle set up and working. If you do not, follow Step 1 and Step 2 of my previous post Install SDR++ server on Raspberry Pi 4, which covers the installation of the RTL-SDR drivers for the RTL-SDR blog V3/V4 dongle on Raspberry Pi.
If the device is already recognized by your system, you can move on to the next step. If another driver is attached, blacklist the DVB kernel module first.
Step 3: Test the dongleCopy link to section
Before installing any decoder, verify that the SDR is detected:
rtl_test
If the dongle is working, you should see device information and a message saying no errors were found. If another driver is attached, blacklist the DVB kernel module first.
sudo rmmod dvb_usb_rtl28xxu
Then run rtl_test again.
Step 4: Install rtl_433Copy link to section
rtl_433 is one of the most useful tools you can run on an RTL-SDR. Surprisingly, it does not only decode 433 MHz devices; it also targets other ISM bands, like 315 MHz, 345 MHz, 868 MHz, and 915 MHz. It outputs the data as text, JSON, MQTT messages, and more.
Install it from your package manager:
sudo apt install rtl-433
If your distribution package is old, you can build from source instead:
git clone https://github.com/merbanan/rtl_433.git
cd rtl_433
mkdir build && cd build
cmake ..
make -j$(nproc)
sudo make install
sudo ldconfig
Once installed, scan for nearby devices:
rtl_433
You can also narrow the frequency to the band used by most home devices:
rtl_433 -f 433.92M
That is usually enough to catch weather stations, remote switches, tire pressure sensors, and simple sensor nodes.
Step 5: Stream rtl_433 data in JSONCopy link to section
For integrations, dashboards, and automations, JSON output is more useful than plain text:
rtl_433 -f 433.92M -F json
If you want to send decoded sensor data into Home Assistant, Node-RED, n8n, or an MQTT broker, JSON is the format you want to use. It keeps the pipeline simple and makes later parsing easier.
Step 6: Set up ADS-B trackingCopy link to section
ADS-B uses a different frequency and decoding pipeline. The usual approach is to run dump1090, the classic ADS-B decoder created by the amazing programmer antirez, then feed the data into a local map or web UI.
Install the decoder package that fits your distribution or image. On Debian-based systems, dump1090 is usually available through a package or through a source build, depending on the exact distro and image you use:
sudo apt install dump1090
Once installed, start the decoder and point it at your RTL-SDR dongle. The exact service name can vary by package, but the workflow is the same: bind the dongle, start the decoder, then open the local web interface or feed the data to another app.
For manual testing, many setups use:
dump1090 --device-type rtlsdr --gain auto
After starting dump1090, open http://<pi-ip>/gmap.html in your browser, replacing <pi-ip> with your Raspberry Pi’s local IP address. That page shows the live ADS-B map and decoder status. If you have a decent antenna and don’t live under a rock, planes will soon start popping up on the map.
Step 7: Improve receptionCopy link to section
Range matters a lot for both 433 MHz sensors and ADS-B aircraft tracking. A few simple improvements can make a big difference:
- Place the RTL-SDR and its antenna near a window or higher up in the room.
- Use a USB 2.0 extension cable to move the dongle away from Pi noise.
- Don’t plug the USB dongle to a USB 3.0 port on your Pi, use a USB 2.0 port to avoid interference.
- Try a dedicated antenna tuned for the frequency you care about.
- Avoid cheap unshielded USB hubs if you get interference.
For ADS-B, antenna placement is often more important than software. A small change in height can improve reception dramatically. You can also experiment and build your own ground plane antenna tuned to 1090 MHz using a coax cable and some spare copper wires.
Step 8: Run at bootCopy link to section
If you want the decoder to start automatically, create a systemd service or use the package’s built-in service file. For custom installs, systemd is usually the most reliable option.
Here is the general pattern:
sudo nano /etc/systemd/system/rtl433.service
Add a service that launches your chosen command, then enable it:
sudo systemctl daemon-reload
sudo systemctl enable --now rtl433
Use the same approach for ADS-B if you want the receiver online after every reboot.
Practical usesCopy link to section
Once the setup is running, you can build a lot on top of it:
- Track indoor and outdoor temperature sensors.
- Log motion or door events.
- Feed 433 MHz sensors into Home Assistant.
- Track aircraft passing near your area.
- Combine SDR data with dashboards, automations, or alerting tools.
That is what makes an RTL-SDR on a Raspberry Pi useful: (generally) low cost, low power, and a huge number of possible use cases.
ConclusionCopy link to section
An RTL-SDR plus Raspberry Pi is one of the best small-radio projects you can build. rtl_433 gives you access to a broad range of consumer devices, while dump1090 turns the same hardware into a simple, but effective, aircraft receiver. If you already use Raspberry Pi boards for home automation or self-hosted tools, this is an easy next project.