FCD scanner is a slow and simple implementation of a swept-tuned spectrum analyzer in Python. It can display received signal strength versus time versus frequency using a number of real-time visualizations and can also log measured data for later analysis.
It works by sweeping a radio receiver through a range of frequencies and measuring the signal power at the receiver output. Resolution bandwidth is determined by the channel filter used by the receiver and sweep time is limited by receiver settle time.
See also this blog post for some background information.
- Real-time line, persistence and waterfall plots,
- can log measurements to an ASCII file.
Two radio receivers are currently supported:
- Funcube Dongle Pro using the GnuRadio framework.
- VESNA wireless sensor node connected through a serial port and running the vesna-spectrum-sensor application.
fcd_scanner using Funcube Dongle Pro showing persistence plot:
fcd_scanner using VESNA spectrum sensor showing waterfall plot:
To scan European UHF channels 29 through 41 using a VESNA device, displaying a real-time waterfall and saving measurements into a log file:
$ fcd_scanner -d vesna --start 538M --stop 634M -p 8M -w -o uhf.log
To later plot recorded data with GNU plot, first convert the log file into a pm3d format:
$ fcd_scanner_log_to_pm3d < uhf.log > uhf.dat
And then plot with GNU plot:
gnuplot> set pm3d map gnuplot> splot "uhf.dat"
If you want to process fcd_scanner log files in your own Python scripts, you can use the fcd_scanner.log.load() method and the FCDScannerLog object to parse the log file format.
>>> import fcd_scanner.log >>> f = open("uhf.log") >>> l = fcd_scanner.log.load(f)
A script for loading log files into Octave or Matlab is also provided.
See the README file and docstring documentation for more details.
The latest development version is available for download.
You can also get the Python source directly from the git repository using the command below.
$ git clone http://www.tablix.org/~avian/git/fcd_scanner.git
Refer to the README file included in the distribution for details on installation.
Copyright (C) 2014 Tomaž Šolc
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.