-
Notifications
You must be signed in to change notification settings - Fork 15
Home
SIGpi is a "go-kit" for Signal Intelligence (SIGINT) enthusiasts with emphasis on capabilities in the VHF, UHF, and SHF spectrum. For completeness, HF spectrum related software is included for optional install. This (bash) shell script builds SIGINT tools on the following platforms:
- Raspberry Pi4 4GB RAM or Raspberry Pi 400 with 32GB microSD card running Raspberry Pi OS Full (64-bit)
- Ubuntu 22.04 LTS on arm64 and amd64
A headless server only install (Node Install) can be performed on Raspberry Pi3 B+ with 32GB microSD card running Raspberry Pi OS Full (64-bit)
- Login as pi or sudo user on supported platform
- Update and install pre-requisite packages to install SIGpi
sudo apt update && sudo apt upgrade
sudo apt-get install -y build-essential cmake git
- From your home directory, create a directory called SIG and switch into it
mkdir ~/SIG && cd ~/SIG
- Clone the SIGpi repo
git clone https://github.com/joecupano/SIGpi.git
- Change into the new SIGpi directory and run SIGpi_installer.sh (Node install run SIGpi_installer.sh node )
cd SIGpi
./SIGpi_installer.sh
This is for headless SDR servers requiring no desktop. This will install RTLTCP, SoapySDRServer, and SDRangelsrv
SIGpi includes it's own package manager to update applications to their latest releases using familiar syntax from package management systems
Usage: sigpi [ACTION] [TARGET]
ACTION
install install TARGET from current release
remove remove installed TARGET
purge remove installed TARGET and purge configs
update check to see if new TARGET available
upgrade upgrade TARGET to latest release
TARGET
A SIGpi package
You can update packages in your existing SIGpi install with the following commands using SDRangel and SDR++ as examples:
SIGpi purge sdrangel
SIGpi install sdrangel
SIGpi purge sdrpp
SIGpi install sdrpp
Perhaps you forgot to add an application during your initial run of SIGpi_installer or there is a new software release available of SDRangel. SIGpi includes its own package management tool for software it supports using similar syntax distro package managers like APT (install, remove, purge, update, upgrade.)
Example
SIGpi install kismet
Best efforts made to update releases when significant releases (X.Y) are made available for component packages with speciall attention to popular SDR packages like SDRangel and SDR++
Though our first priority of support platforms is the Raspberry Pi4 4GB RAM running Raspberry Pi OS Full (64-bit), this build will install and run on Ubuntu 22.04 LTS (amd64 and aarch64)
While tools are included for Amateur Radio, it is not this builds focus. We are focused on the ability to detect and decipher the range of RF signals around us from consumer IoT to critical infrastructure for educational purposes and provide tools to assist those with spectrum planning responsibiity to better visualize spectrum utilization around them.
Total install time will take over an hour - be patient. Below is a list of software included.
Device Drivers
- bladeRF
- HackRF One
- LimeSuite
- PlutoSDR
- RTL-SDR - RTL2832U & R820T2-Based
- SDRPlay
- SoapySDR
- SoapyRemote
- SoapyBladeRF
- SoapyHackRF
- SoapyPlutoSDR
- SoapyRTLSDR
- SoapySDRPlay
- Ubertooth - Ubertooth support
Libraries and Decoders
- aptdec - NOAA satellite imagery decoder
- cm256cc
- dab-cmdline - DABD/DAB+
- dsdcc - Encode/Decode Digital Voice modes (DMR, YSF, D*Star, etc)
- hamlib - API for controlling a myriad of radios
- libax25 - AFSK baseband audio library for AX.25 packet as used by APRS
- libbtbb - Bluetooth Baseband Library
- libsigmf - Used for Signal Metadata Format - sharing of signal data
- liquid-dsp - Digital Signal Processing (DSP) library
- mbelib - P25 Phase 1
- RadioSonde - Various tools for Weather balloon telemetry
- serialDV - Encode/Decode audio with AMBE3000 based devices (DMR, YSF, D-Star, etc)
- sgp4 - Used for satellite tracking given TLE data
SDR Applications
- Audacity - Audio Editor
- CubicSDR
- CygnusRFI - Radio Frequency Interference (RFI) analysis tool
- dump1090 - Mode S decoder specifically designed for RTLSDR devices
- GNURadio
- SDRangel
- SDR++
- rtl_433- Generic data receiver for UHF ISM Bands decoding popular sensors
Amateur Radio Applications
- ax25-apps - Command line AX.25 apps
- ax25-tools - AX.25 for daemon interfaces
- direwolf - Software “soundcard” AX.25 packet modem/TNC and APRS encoder/decoder
- Fldigi - GUI app for CW, PSK, MFSK, RTTY, Hell, DominoEX, Olivia, etc
- js8call - JS8 mode
- QSSTV - GUI app for SSTV
- WSJT-X - FT4, FT8, JT4, JT9, JT65, Q65, MSK144
Satellite and Geo
- gpredict - Satellite Tracking with Radio and Antenna Rotor Control
- xastir - APRS Station Tracking and Reporting
- linpac - Packet Radio Terminal with Mail Client
Other SIGINT tools
- bettercap wireless signal reconnaissance
- Chrony - NTP sync
- HASviolet (RPi only) LoRa communications on 33cm band (902-928 MHz)
- Kismet - wireless reconnaissance and intrusion detection
- Multimon-NG - decodes POCSAG, etc
- NRSC5 - HD Radio decoder
- SPLAT - RF Signal Propagation, Loss, And Terrain analysis tool for 20 MHz to 20 GHz
- srsRAN beta
- [Universal Radio Hacker](https://github.com/jopohl/urh}
- Wireshark - Network Traffic Analyzer
Most of the GUI applications you will find via the SIGpi,Hamradio or other menus. Many of the command line applications are accessible via the SIGpi shell menu. Each menu option opens up a terminal window for that application and invokes its included help info. If a command line tool does not appear in the SIGpi shell menu, not it is in located in /usr/local/bin and in PATH.
sigpi includes its own application management system akin to OS package management systems like APT. The difference is sigpi manages applications whether they are from the distro releases or compiled from other repos such as Github. This enables you to just install the base system and go back and add inidividual applications. sigpi can periodically be run to check on availability of new applications and upgrade them.
Usage: SIGpi [ACTION] [TARGET]
ACTION
install install TARGET application from current release
remove remove installed TARGET application
purge remove installed TARGET application and purge configs
update check to see if new TARGET application available
upgrade upgrade TARGET application to latest release
shell wrap SIGpi environment variables around a TARGET script
TARGET
A SIGpi package or script
Cross-Platform Software-Defined Radio Application. Used with SoapySDR capable devices such as RTLSDR and HackRF. The RPi OS repo package is installed which is the latest version 0.2.5.More information available from the online documentation
CygnusRFI is an easy-to-use open-source Radio Frequency Interference (RFI) analysis tool, based on Python and GNU Radio Companion (GRC) that is conveniently applicable to any ground station/radio telescope working with a GRC-supported software-defined radio (SDR). In addition to data acquisition, CygnusRFI also carries out automated analysis of the recorded data, producing a series of averaged spectra covering a wide range of frequencies of interest. CygnusRFI is built for ground station operators, radio astronomers, amateur radio operators and anyone who wishes to get an idea of how "radio-quiet" their environment is, using inexpensive instruments like SDRs.
Menu launches you into a terminal session in the CygnusRFI directory
DireWolf needs to be running for APRS and Packet applications to have use the AX0 interface defined in the previou section. You will need to configure your callsign, the soundcard device to use, and whether using PTT or VOX in the /usr/local/etc/direwolf/direwolf.conf file. The conf file itself is well documented in how to configure else consult the DireWolf online docs.
Because a number of factors go into a successful DireWolf setup with your transceiver, configuration discussion is deferred to the official DireWolf documentation.
During install you will be flashed with a message that dump1090 can be started automatically via an init-script. Otherwise, the init-script does nothing; you must run dump1090 by hand. Answer no when asked to Start dump1090 automatically? unless you are install the SIGpi node and that is your intent. Dump1090 runs a light HTTP server which could conflict with some SDR gui apps with APIs.
Fast Light Automatic Repeat reQuest is a file transfer application that is based on the ARQ specification capable capable of transmitting and receiving frames of ARQ data via FLDIGI. Program data exchange between FLARQ and FLDIGI is accomplished using a localhost socket interface. The socket interface requires that one program act as the server and the other the client. FLARQ is a client program and FLDIGI is a server program. FLARQ will not execute unless FLDIGI is already running. See the online documentation for more info.
Fldigi is a modem program which supports many classic digital modes used by Amateur Radio operators today (CW, RTTY, MFSK, PSK31, and many others). It is used with a USB sound dongle as a simple two-way data modem connected to the microphone and headphone connections of an amateur radio SSB transceiver or an FM two way radio.
The RPi OS repo package is installed which is version 4.1.18 for RPi and 4.1.20 for Ubuntu 22.04. More information available from the online documentation For advanced RPi OS users, a build script is included to download and compile the most recent version 4.1.20. Remove the old package then install new
SIGpi remove fldigi
SIGpi install fldigi4120
For amd64, GNUradio 3.10.5 is installed from the GNUradio repo. For arm64, GNUradio 3.9.8 is compiled from source during installation. Have yet to identify issues in building GNUradio 3.10.X for arm64. Consult the online documentation for usage details.
JS8Call is a derivative of the WSJT-X application, restructured and redesigned for message passing using a custom FT8 modulation called JS8. It is not supported by nor endorsed by the WSJT-X development group. Note that WSJT-X conflicts with JS8CALL given both use wsjtx-data package. It's installation will conflict with the WSJT-X application.
Packet radio terminal used for AX.25 commuications.
Xastir is an application that provides geospatial mappng of APRS signals. It needs to configured to use the RF interface provided by DireWolf. You must start Direwolf in a separately terminal window before you start Xastir. Be sure to consult Xastir online documentation for more info.
Since stable arm64 and amd64 packages are available from the WSJTX team, we opted to add WSJTX back in. Reminder, WSJT-X does not like being installed with JS8CALL given their common use of wsjtx-data package.
Features enabled/disabled on RPi4 install
-- ######################################################
-- ## LimeSuite enabled features
-- ######################################################
--
* LimeSuiteHeaders, The lime suite headers
* LimeSuiteLibrary, The lime suite library
* ConnectionFX3, FX3 Connection support
* ConnectionFTDI, FTDI Connection support
* ConnectionXillybus, PCIE Xillybus Connection support
* LimeSuiteGUI, GUI Application for LimeSuite
* LimeSuiteExamples, LimeSuite library API examples
* LimeRFE, LimeRFE support
* LimeUtilCommand, Command line device discovery utility
* LimeQuickTest, LimeSDR-QuickTest Utility
* LimeSuiteDesktop, LimeSuite freedesktop integration
* LimeSuiteOctave, LimeSuite Octave integration
-- ######################################################
-- ## LimeSuite disabled features
-- ######################################################
--
* ConnectionEVB7COM, EVB+COM Connection support
* ConnectionSTREAM_UNITE, STREAM+UNITE Connection support
* ConnectionRemote, Remote Connection support for testing
* ConnectionSPI, Rasp Pi 3 SPI Connection support
* SoapySDRLMS7, SoapySDR bindings for LMS7
* LimeSuiteDocAPI, LMS API Doxygen documentation
-- Install prefix: /usr/local
-- Build timestamp: 2021-12-31
-- Lime Suite version: 20.10.0-g1480bfea
-- ABI/so version: 20.10-1
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/SIG/source/LimeSuite/build-dir
Features enabled/disabled on RPi4 install
-- ######################################################
-- ## SoapySDR enabled features
-- ######################################################
--
* Library, runtime library v0.8.1-g6f97389b
* Apps, command line applications
* Tests, library unit tests
* Docs, doxygen documentation
* Python, python bindings v2.7.18
* Python3, python3 bindings
-- ######################################################
-- ## SoapySDR disabled features
-- ######################################################
--
-- SoapySDR version: v0.8.1-g6f97389b
-- ABI/so version: v0.8
-- Install prefix: /usr/local
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/SIG/source/SoapySDR/build
######################################################
## Soapy SDR -- the SDR abstraction library ##
######################################################
Lib Version: v0.8.1-g6f97389b
API Version: v0.8.0
ABI Version: v0.8
Install root: /usr/local
Search path: /usr/local/lib/SoapySDR/modules0.8 (missing)
No modules found!
Available factories... No factories found!
Available converters...
- CF32 -> [CF32, CS16, CS8, CU16, CU8]
- CS16 -> [CF32, CS16, CS8, CU16, CU8]
- CS32 -> [CS32]
- CS8 -> [CF32, CS16, CS8, CU16, CU8]
- CU16 -> [CF32, CS16, CS8]
- CU8 -> [CF32, CS16, CS8]
- F32 -> [F32, S16, S8, U16, U8]
- S16 -> [F32, S16, S8, U16, U8]
- S32 -> [S32]
- S8 -> [F32, S16, S8, U16, U8]
- U16 -> [F32, S16, S8]
- U8 -> [F32, S16, S8]
Features enabled in RPi4 build
----------------------------------------------------------------------
Hamlib Version 4.5.3 configuration:
Prefix /usr/local
Preprocessor gcc -E
C Compiler gcc -g -O2
C++ Compiler g++ -std=c++11 -g -O2
Package features:
With C++ binding yes
With Perl binding no
With Python binding no
With TCL binding no
With Lua binding no
With rigmem XML support no
With Readline support yes
With INDI support no
Enable HTML rig feature matrix no
Enable WinRadio yes
Enable Parallel yes
Enable USRP no
Enable USB backends yes
Enable shared libs yes
Enable static libs yes
-----------------------------------------------------------------------
- We are open to feature requests to enhance the SIGINT capabilities of SIGpi but only those that add reconnaissance value. We may add tools that include great capability thus remind you their use is your responsibility when it comes to compliance with laws in your locale.
- Since 6.X where packages for current versions of software do not exist, we first try to building our own for SIGpi and when that doesn't work we compile during install.
Perhaps you want to remotely connect to your SIGpi box and listen from a more comfortable location. VNC which is included will let you remotely see and touch but not hear audio. For audio we configure via Preferences > PulseAudio Preferences in the Network Access and Network Server tabs. In Network Access check the first box and in Network Server check the first four boxes.
Yes, I know there are more apps installed. There is no short-cut and must defer you to the documentation on their respective sites