/SIGpi

A SIGINT Go-kit of sorts

Primary LanguageShellGNU General Public License v3.0GPL-3.0

SIGpi

Release: 20211212-1500

Introduction

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.

Requirements

How about other architectures?

There is also a build script for Ubuntu 20.04 LTS Desktop at SIGbox repo

Install

  • 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

Known Issues

  • Artemis does not run on 64-bit build. (Some Pythony issue)

Package Management in SIGpi

You realized afterall that install time you want to change your choices in SDR or Amateur Radio packages.

Adding a SIGpi package

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

Removing a SIGpi package

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

Release Notes

Build Details

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

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

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

APRS and Packet using a VHF/UHF Transceiver

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.

AX.25

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

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

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.

Gpredict

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

Example Hardware Setup

alt-test

Power

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)

Raspberry Pi4

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.

USB Peripherals

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.

What Else

Yes, I know there are more apps installed. There is no short-cut and must defer you to the documentation on their respective sites