|
|
||
|---|---|---|
| src | ||
| .gitattributes | ||
| .gitignore | ||
| README.md | ||
README.md
PiScan
This software can take a Raspberry Pi (or another embedded computer) and turn it into a radio scanner. With only a $40 Pi and a $20 RTL-SDR dongle, you can build an inexpensive scanner with the capabilities of much more expensive equipment (at least that's the goal for this).
Features
- System scanning
- Traverses through a list of frequencies incrementally
- Manual frequency entry
- rtl_fm based demodulator
- Configurable squelch and tuner gain
- Configurable logging
To-Do
Short-term:
- More efficient scanning (currently can only scan 15 channels/second)
- Modify/rewrite the demodulator to support channelization
- Rewrite scanning algorithm to group frequencies into sections of bandwidth (as opposed to retuning the dongle for each frequency)
- TCP support
- The GUI client will use this to allow remote control of the software
- CTCSS, DCS support
- AM demodulation
Long term:
- P25 trunking
- DMR trunking
Setup
PiScan is supported and has been tested on Debian-based systems (including Raspbian and Ubuntu). In a terminal, download the source with the command:
# install dependencies
sudo apt install -y cmake g++ build-essential librtlsdr0 librtlsdr-dev libusb-1.0-0-dev
git clone https://github.com/ezratl/PiScan
cd PiScan
git submodule update --init --recursive
# create the program directories:
# ./build will be the executable is compiled
# ./data will contain the user files
mkdir build data
# run cmake
cd build
cmake ../src -DDETACH_KERNEL_DRIVER=ON
# build executables
make all
You can now run PiScan from the build directory:
./piScan_backend | aplay -r 12000 -f s16_le -t raw -c 1
Usage
Keep in mind this project is still in alpha in terms of completeness, so it's very likely to break if it isn't used correctly. With that being said, it's best to keep a task manager or second terminal open so you have a way to kill the program if it locks up.
For the software to run, you first need a file containing the frequencies to scan. Currently it only uses favorites lists generated by the Uniden Sentinel software (I will create a data format eventually, but this was the quickest route to achieve data input). To get a favorites list file go to Documents/Uniden/BCDx36HP/FavoriteLists where you will find the desired list as a plaintext .hpd file (on a Windows machine). Either by using scp or copying to a flash drive, save that file to the Linux system as (PiScan directory)/data/list.hpd. The list should contain some amount of conventional frequencies, as the software currently only handles those and will ignore any trunked entries.
At this point, you can make sure an RTL dongle is connected to the system and run PiScan with
./piScan_backend | aplay -r 12000 -f s16_le -t raw -c 1
Command line arguments
PiScan has the following arguments: -v [0-9]: Set the logging verbosity. The default level is 0. Everything above level 3 is basically for debugging and will flood the terminal.
Console input
By default, the software accepts input from the console (which is set up to run as a client connection) for debugging purposes. This will eventually be made optional once support for TCP clients is added. Type help for a list of available commands.