- Raspberry Pi 3 Model B+ (or newer)
- MicroSD card (16GB or larger)
- RTL-SDR or HackRF One SDR
Flash Raspberry Pi OS (64-bit Lite recommended) to your SD card. See official Raspberry Pi imaging guide.
Enable SSH during imaging for headless setup. Set up Wifi before imaging if possible.
64-bit Trixie (Debian 13) or newer.
On any other platform, see compile from source below.
Boot the Pi, connect via SSH, and update the system:
sudo apt-get update
sudo apt-get upgrade -yAdd the package repository and install:
echo 'deb [trusted=yes arch=arm64] https://repo.lapbeeps.com/apt/ /' | sudo tee /etc/apt/sources.list.d/openstint.list
sudo apt update
sudo apt install openstintThat is the whole install. It pulls in the SDR libraries and Python
dependencies, then enables and starts openstint.service.
It's using the RTL-SDR implementation by default, so if it's plugged it, this shows it already working:
systemctl status openstintArguments live in /etc/openstint.conf, not in the unit file:
sudo vim /etc/openstint.conf
sudo systemctl restart openstint.serviceOPENSTINT_ARGS="-g 20 -s /var/lib/openstint"To use a HackRF instead of an RTL-SDR, switch the ExecStart line — the unit
ships with the HackRF variant commented out — and set the HackRF gain flags in
/etc/openstint.conf (-l/-v, not -g):
sudo systemctl edit --full openstint.serviceThe bridges in /usr/share/openstint/integrations/ are all installed, but
bridge-zround.service ships disabled: which bridge you want depends on
your timing software. Enable the one you need:
sudo systemctl enable --now bridge-zround.serviceSee ZRound, RCGTiming and LapBeeps for the per-back-end notes.
sudo systemctl status openstint.service
sudo journalctl -u openstint.service -fLearning-mode *.rc4 files are saved to /var/lib/openstint. This library is user-writable (no need for sudo to modify it).
For development, for platforms other than 64-bit Raspberry Pi OS, or to change
build flags such as SAMPLES_PER_SYMBOL.
Tools to compile (ubuntu/raspbian/etc.):
sudo apt-get install build-essential cmake pkg-config ninja-build gitInstall its dependencies:
sudo apt-get install hackrf libhackrf-dev librtlsdr-dev libliquid-dev libzmq3-dev cppzmq-dev libfec0 libfec-devThen checkout this repo, and build with cmake/make (Release build enables -O3 compiler flag, improves performance significantly):
git clone https://github.com/zsellera/openstint.git
cd openstint
cmake -DCMAKE_BUILD_TYPE=Release .
make
./src/openstint_rtlsdr -g 20 # or ./src/openstint_hackrf -l 20 -v 20Install bridge-zround dependencies:
sudo apt-get install python3 python3-zmqThe unit files in systemd/ are the build-from-source variants: they run as
User=pi out of /home/pi/openstint, so name your user pi to use them
unmodified. (The packaged units in packaging/ are the ones the .deb
installs; they differ deliberately.)
sudo cp systemd/openstint.service /etc/systemd/system/
sudo cp systemd/bridge-zround.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now openstint.service
sudo systemctl enable --now bridge-zround.serviceWith this path, openstint arguments are edited in the unit file itself:
sudo nano /etc/systemd/system/openstint.service
sudo systemctl daemon-reload
sudo systemctl restart openstint.serviceSee README.md for available command-line arguments.