Release: 20211212-1500
Much how you see Amateur Radio operators build "go-kits" for remote or emergency operations, 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 a Raspberry Pi4 4GB RAM with 32GB microSD card running Raspberry Pi OS Full (32 or 64-bit). The script MUST be run as user pi.
- Raspberry Pi 4 4GB Model B minimum
- 32GB microSDHC card Class 10
- Raspberry Pi OS Full "Bullseye" 32 bit or 64 Bit
There is also a build script for Ubuntu 20.04 LTS Desktop at SIGbox repo
- Login as Pi on your fresh install of Raspberry Pi OS Full
- Create a directory in your home directory called SIG and switch into it
- Clone the SIGpi repo
- Run SIGpi_installer.sh
- Follow script instructions.
sudo apt-get install -y build-essential cmake git
mkdir ~/SIG && cd ~/SIG
git clone https://github.com/joecupano/SIGpi.git
cd SIGpi
./SIGpi_installer.sh
- Artemis does not run on 64-bit build. (Some Pythony issue)
You realized afterall that install time you want to change your choices in SDR or Amateur Radio packages.
From within /home/pi/SIG/SIGpi/scripts run the following command
./SIGpi_pusher.sh <PACKAGE>
where (PACKAGE> is the name of the SIGpi package as
listed in /home/pi/SIG/SIGpi/etc/SIGpi_packages
From within /home/pi/SIG/SIGpi/scripts run the following command
./SIGpi_popper.sh <PACKAGE>
where (PACKAGE> is the name of the SIGpi package as
listed in /home/pi/SIG/SIGpi/etc/SIGpi_packages
Menu entries will be required to be removed manually
Total install time will take over three hours because of compile times for vairous components indicates below with an asterisk (*). SDRangel and its dependencies will use half of the time to compile - be patient. Below is a list of software installed.
Device Drivers
- RTL-SDR RTL2832U & R820T2-Based *
- HackRF One Hack RF One *
- PlutoSDR *
- LimeSuite *
- SoapySDR SoapySDR Library *
- SoapyRemote Use any Soapy SDR Remotely *
- SoapyRTLSDR Soapy SDR Module for RTLSDR *
- SoapyHackRF Soapy SDR Module for HackRF One *
- SoapyPlutoSDR Soapy SDR Module for PlutoSD *
- GPS client and NTP sync (gpsd gpsd-clients python-gps chrony)
Libraries and Decoders
- aptdec * NOAA satellite imagery decoder
- cm256cc *
- dab-cmdline * DABD/DAB+
- mbelib * P25 Phase 1
- serialDV * Encode/Decode audio with AMBE3000 based devices (DMR, YSF, D-Star, etc)
- dsdcc * Encode/Decode Digital Voice modes (DMR, YSF, D*Star, etc)
- sgp4 * Used for satellite trakcing given TLE data
- rtl_433 Generic data receiver for UHF ISM Bands decoding popular sensors
- dump1090 Mode S decoder specifically designed for RTLSDR devices
- libsigmf * Used for Signal Metadata Format - sharing of signal data
- liquid-dsp * Digital Signal Processing (DSP) library
- libbtbb * Bkuetooth Baseband Library
- hamlib 4.3.1 * API for controlling a myriad of radios
SDR Applications
- GNURadio
- GQRX
- SDRangel 6.17.4 *
- SDR++ 1.0.5 *
- CubicSDR SDR Receiver
- Artemis Radio Signals Recognition Manual
- CygnusRFI Radio Frequency Interference (RFI) analysis tool
AFSK, FSK, Packet, APRS Communications
- libax25 AFSK baseband audio library for AX.25 packet as used by APRS
- ax25-apps Command line AX.25 spps
- ax25-tools AX.25 for daemon interfaces
- direwolf 1.7 * Software “soundcard” AX.25 packet modem/TNC and APRS encoder/decoder
- HASviolet (Delware Release) LoRa communications on 33cm band (902-928 MHz)
Amateur Radio
- Fldigi 4.1.18 GUI app for CW, PSK, MFSK, RTTY, Hell, DominoEX, Olivia, etc
- WSJT-X 2.5.2 * GUI app for FST4, FST4W, FT4, FT8, JT4, JT9, JT65, MSK144, and WSPR
- js8call JS8 mode
- QSSTV 9.4.4 GUI app for SSTV
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
Tools
- Kismet Wireless sniffer and monitor
- Wireshark Network Traffic Analyzer
- Audacity Audio Editor
- PAVU PulseAudio Control
- SPLAT RF Signal Propagation, Loss, And Terrain analysis tool for 20 MHz to 20 GHz
SDRangel and other SDR applications have the capability to decode APRS and Packet Radio signals and transmit at very low RF power levels with SDR devices supported. If you have an Amateur Radio license and aspire to operate serious distance including satellites then you will need VHF/UHF transceiver capable of 5 watts for the latter interfacing to the transceiver through audio and radio control via Hamlib.
In the past dedicated hardware known as TNCs (terminal node controllers) was used between a computer and transceiver. But the signals themselves are audio so TNCs were replaced with software and soundcards connected to the transceiver. For this build DireWolf is the software replacing the TNC and AX.25 software providing the data-link layer above it that provides sockets to it.
If you are planning to operate APRS and Packet Radio with a transceiver then configuring DireWolf and AX.25 is necessary. Otherwise you can skip the subsections.
If you intend to transmit, you will need to edit axports and change to your licensed Amateur Radio callsign
sudo nano /etc/ax25/axports
- Change N0CALL to your callsign followed by a hyphen and a number 1 to 15. (For Example N0CALL-3)
# /etc/ax25/axports
#
# The format of this file is:
#
# name callsign speed paclen window description
#
ax0 N0CALL-3 1200 255 4 APRS / Packet
#1 OH2BNS-1 1200 255 2 144.675 MHz (1200 bps)
#2 OH2BNS-9 38400 255 7 TNOS/Linux (38400 bps)
- Save and exit
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.
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.
Some satellites have packet capability. Gpredict is a real-time satellite tracking and orbit prediction application. It needs to be configured with your lcoations latitiude, longitude, altitude, plus online data feeds for accurate tracking. Be sure to consult [Gpredict documentation]( http://gpredict.oz9aec.net/documents.php} for more info
In this setup a 12V@17A switching supply powers all the kit. Since RPi4 are picky about getting 5.1V a set-up converter is added to power it. A 12V Rpi4 are pickya bout getting 5.1V. USB peripherals can be hungry so a powered USB hub is included. While 7 ports are available no more than three devices requiring power should be enabled since hub produces a maximum of 36 Watts ( 3 x 5V x 2.4A = 36 Watts)
Since this is a SIGINT platform we do not want to be generating any RF so onboard Bluetooth and WiFi should be disabled. If Internet is needed and only available via WiFi then so be it and use your onboard WiFi.
Only three USB devices requiring power should be enabled at a time. The range of devices depicted is only to demonstrate what you could potentially connect to it.
Yes, I know there are more apps installed. There is no short-cut and must defer you to the documentation on their respective sites