Tetra demodulator plugin for SDR++
Designed to fully demodulate and decode TETRA downlink signals
Thanks to osmo-tetra authors for their great library
Signal chain:
VFO->Demodulator(AGC->FLL->RRC->Maximum Likelihood(y[n]y'[n]) timing recovery->Costas loop)->Constellation diagram->Symbol extractor->Differential decoder->Bits unpacker->Osmo-tetra decoder->Sink
Binary installing:
Visit the Actions page, find latest commit build artifacts, download tetra_demodulator.so and put it to /usr/lib/sdrpp/plugins/, skipping to the step 4. Don't forget to install libtalloc!
Building:
-
If you have arch-like system, just install package sdrpp-tetra-demodulator-git with all dependencies.
OR
-
Install SDR++ core headers to /usr/include/sdrpp_core/, if not installed. Refer to https://cropinghigh.github.io/sdrpp-moduledb/headerguide.html about how to do that
OR if you don't want to use my header system, add -DSDRPP_MODULE_CMAKE="/path/to/sdrpp_build_dir/sdrpp_module.cmake" to cmake launch arguments
Download and patch ETSI TETRA codec(in this repository):
cd src/decoder/etsi_codec-patches ./download_and_patch.sh
Install libtalloc-dev/talloc via package manager
-
Build:
mkdir build cd build cmake .. make sudo make install
-
Enable new module by adding it via Module manager
Usage:
-
Find TETRA frequency you want to receive
-
Move demodulator VFO to the center of it
-
After some time, it will sync to the carrier and you'll likely see 4 constellation points(sync requires at least ~20dB of signal)
-
If the channel is unencrypted, just wait for the voice activity and listen to it!