RTLSDR Scanner
![]() |
|
A cross platform Python frequency scanning GUI for the OsmoSDR rtl-sdr library.
The scanner attempts to overcome the tuner's frequency response by averaging scans from both the positive and negative frequency offsets of the baseband data.
Tested on:
- Windows 7 (x86 and x64)
- Ubuntu 12.04 (x86)
- Ubuntu 12.10 (x64)
- OS X Snow Leopard
Download the latest release from GitHub.
You'll also need the following installed on your machine:
- Python 2.6 or greater
- wxPython
- matplotlib
- numpy
- rtlsdr
- pyrtlsdr
Installation instructions are here.
Windows 64 bit modules can be found here.
OS X users report success using Homebrew, if you have problems with imports this page may help (thanks @edy555).
Quick start
Run 'rtlsdr_scan.py'.
To start a scan simple enter the range at the bottom of the window and click 'Start', after a while a plot of signal strengths should be displayed.
'Dwell' controls how long each step is sampled for, longer times will result in more averaging of the signal.
'Continuous update' updates the display on each step. Caution only use this with small scans and low dwell times, otherwise it will become unresponsive.
'Grid' displays a grid on the scan plot.
Auto Calibration
Scans around the frequency specified for the strongest signal and then calculates the error correction of the dongle.
To get the best out of it you really need a continuous signal peak that stands out from the background noise. If you live near an airport RADAR signals are great for this. Mobile phone signals also work well but you need to know the channel frequencies, making it tricky. I have had some luck with commercial FM radio but you'll have to set the dwell time to the highest setting to get a usable offset.
File Menu
- Open... - Open a saved scan
- Save As... - Save a scan
- Export... - Export a scan to a CSV file
Scan Menu
- Start - Start a scan
- Stop - Stop a scan
View Menu
- Preferences - Set dongle gain, calibration, Local Oscillator (positive offset for upconverters) and sample bands (see below)
Tools Menu
- Auto Calibration - Perform a crude calibration of the dongle to a known signal (this should be a continuous, unwavering signal)
Tweaking
Dongles will differ depending on the tuner and circuit that's used, the software allows you to pick the best range that is sampled to give improved results.
Click on View -> Preferences and select the 'Band Offset' for you tuner, next detach the aerial or even better terminate it with a 50 ohm load. Now click refresh to show the noise floor of the tuner, adjust the offset so the marked bands overlay the flattest areas of the plot and click OK.
I find the following offsets work well (click the offsets for images):
| Tuner | Offset (kHz) |
| Elonics E4000 | 250 |
| Fitipower FC0012 | 140 |
| Rafael Micro R820T | 100 |
Note the large peak in the middle, this is at 0Hz (i.e. its the DC offset). On the R820T it is much narrower, this is because it uses an intermediate frequency away from the low frequencies. In this case the resulting spike is due to the sample length not being infinitely long (imagine taking a complete cycle of a sine wave then chopping the end off, this leaves it unbalanced and its average value is no longer 0, in other words it looks like it has a DC offset), the sample is windowed to reduce this but it's a trade-off between accuracy and frequency response.
Troubleshooting
Run 'rtlsdr_scan_diag.py', this test if the correct modules are installed.




Comments
vincent van sch...
Sat, 03/16/2013 - 15:20
Permalink
help
hello,
i really like this software, and would love to use it. unfortunatly, i cant figure out how to instal/ open it. can anyone help me with this?
thanks in advance!
kind regards vincent
Al
Sun, 03/17/2013 - 19:47
Permalink
Re: help
Hello, I've posted some installation notes here to help with the installation.
If you need any more help just ask.
vincent van sch...
Mon, 03/18/2013 - 20:03
Permalink
hello,
hello,
i followed all the steps, but when i open rtlsdr_scan.py only short time a cmd window pops up, nothing else happens...
vincent
Al
Mon, 03/18/2013 - 20:25
Permalink
Re: hello
Hi,
Can you run rtlsdr_scan_diag.py and post the results please?
Elias
Tue, 04/02/2013 - 13:11
Permalink
Thank you, great job
Thank you for your work. Your aplication runs perfectly on my windows 7 32bit. Only one thing, in the installation instructions link at the windows instructions after:
In the same way download pyrtlsdr and extract it, then run the command setup.py from the extracted folder.
I think there should be a link pointing RTLSDR-Scanner package, because the next instruction is run rtlsdr_scan.py
thank you 73's
Al
Tue, 04/02/2013 - 20:14
Permalink
Re: Thank you, great job
Thanks for the feedback, everything helps!
I've updated the installation instructions to make things clearer.
Click to add a comment