ham:rtl-airband
Table of Contents
RTLSDR-Airband
Ce logiciel est normalement destine a l’écoute des bandes Aviation. Mais il offre un certain nombre d'options inintéressante pour la Radio Amateur.
- L’écoute simultané de plusieurs fréquences
- la démodulation narrow FM.
- L'enregistrement lors d'une émission.
- Plusieurs mode de sorties: Pulse Audio, UDP, IQ Brut
Par exemple avec une simple cle RTL-SDR qui a une capaticite de reception de 3 Msps, il est possible plusieurs d'avoir les 2 Mhz de la bande 2 metres (144Mhz-146Mhz)
Installation
RTLSDR-Airband
Pre-requis
| — | Lib & packages | — |
|---|---|---|
| RTLSDR-Airband | build-essential cmake pkg-config libmp3lame-dev libshout3-dev 'libconfig++-dev' libfftw3-dev | Librairies necessaire |
| RTLSDR-Airband | libpulse-dev | Pulse Audio |
| RTLSDR-Airband | librtlsdr-dev | Cle RTL-SDR |
| RTLSDR-Airband | libsoapysdr-dev | Soapy SDR |
| RTLSDR-Airband | google-perftools libgoogle-perftools-dev | DSP GPU |
| — | Lib & packages | — |
|---|---|---|
| pipewire | pipewire pipewire-pulse wireplumber | Audio |
| wiremix | libpipewire-0.3-dev clang cargo | Pirewire TUI Controller |
Compilation
cmake -DPLATFORM=native -DNFM=ON -DMIRISDR=OFF -DPROFILING=ON ../ -- Build type not specified: defaulting to Release -- Found lame includes: /usr/include/lame/lame.h -- Found lame library: /usr/lib/aarch64-linux-gnu/libmp3lame.so -- Checking for SoapySDR -- SoapySDR found, /usr/include, SoapySDR -- RTLSDR-Airband configuration summary: -- - Version string: v5.2.0 -- - Build type: Release -- - Operating system: Linux -- - SDR drivers: -- - librtlsdr: requested: ON, enabled: TRUE -- - mirisdr: requested: OFF, enabled: FALSE -- - soapysdr: requested: ON, enabled: TRUE -- - Other options: -- - Platform: native -- - Build Unit Tests: FALSE -- - Broadcom VideoCore GPU: FALSE -- - NFM support: ON -- - PulseAudio: requested: ON, enabled: TRUE -- - Profiling: requested: ON, enabled: TRUE -- - Icecast TLS support: TRUE -- Configuring done (0.3s) -- Generating done (0.1s) -- Build files have been written to: /opt/build/RTLSDR-Airband/build
$ make [ 5%] Generating version.cpp, _version.cpp [ 10%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/config.cpp.o [ 15%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/input-common.cpp.o [ 20%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/input-file.cpp.o [ 25%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/input-helpers.cpp.o [ 30%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/mixer.cpp.o [ 35%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/output.cpp.o [ 40%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/rtl_airband.cpp.o [ 45%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/squelch.cpp.o [ 50%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/ctcss.cpp.o [ 55%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/util.cpp.o [ 60%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/udp_stream.cpp.o [ 65%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/logging.cpp.o [ 70%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/filters.cpp.o [ 75%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/helper_functions.cpp.o [ 75%] Generating version.cpp, _version.cpp [ 80%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/version.cpp.o [ 85%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/input-rtlsdr.cpp.o [ 90%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/input-soapysdr.cpp.o [ 95%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/pulse.cpp.o [ 95%] Built target rtl_airband_base [100%] Linking CXX executable rtl_airband [100%] Built target rtl_airband
$ sudo make install [ 5%] Generating version.cpp, _version.cpp [ 10%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/version.cpp.o [ 95%] Built target rtl_airband_base [100%] Linking CXX executable rtl_airband [100%] Built target rtl_airband Install the project... -- Install configuration: "Release" -- Installing: /usr/local/bin/rtl_airband
Pipewire
Installation
$ systemctl --user restart pipewire pipewire-pulse wireplumber
wiremix
$ cargo install wiremix --locked
Configuration
- 2m-band.config
| QRG Mhz | Description | Mode / BW / Demode |
|---|---|---|
| 144,350 | Pager Ham | nFM 22050 POCSAG1200 |
| 144,800 | APRS | nFM 22050 AFSK1200 |
| 144,500 | Images, SSTV, FAX… | nFM |
| 144,600 | Modes numériques, RTTY… | nFM |
| 145,075 | Relais R3 FKIO ARA35 | nFM 12000 |
| 145,3875 | Relais local ARA35 | nFM 12000 |
| 145,500 | FM fréquence d'appel | nFM 12000 |
| 145,450 | Communications d'urgences FRANCE (FM dégagement 1) | nFM 12000 |
| 145,4625 | Communications d'urgences FRANCE (FM dégagement 2) | nFM 12000 |
| 145,475 | Communications d'urgences FRANCE (FM fréquence principale) | nFM 12000 |
| 145,800 | ISS Contact | nFM 12000 |
- Source qrvradio.fr
General
multiple_demod_threads = true; multiple_output_threads = true;
device
devices:
({
type = "rtlsdr";
index = 1;
serial = "10000001";
gain = 25;
centerfreq = 145.0;
correction = 12;
sample_rate = "2.048M"
channels:
( ../.. )
}
)
Pager
{
freq = 145.35;
label = "pager";
modulation = "nfm";
lowpass = 0;
highpass = 0;
bandwidth = 12500;
outputs: (
{
type = "udp_stream";
dest_address = "127.0.0.1";
dest_port = 1234;
},
);
},
Phonie
{
freq = 145.075;
squelch_threshold = -30;
label = "R3 Broc";
modulation = "nfm";
bandwidth = 12500;
outputs: (
{
type = "pulse";
stream_name = "R3_Broc";
},
{
type = "file";
directory = "/home/djo/transmission";
filename_template = "R3_Broc";
continuous = false;
split_on_transmission = false;
include_freq = false;
append = true;
}
);
},
APRS / Pager decoder
multimon-ng sox
- APRS
nc -lun 127.0.0.1 1235 | sox -t raw -efloating-point -b32 -r 16000 - -esigned-integer -b16 -r 22050 -t raw - | multimon-ng -v 3 -t raw -A -a AFSK1200 --timestamp - | tee -a APRS.log
- Pager
nc -lun 127.0.0.1 1234 | sox -t raw -efloating-point -b32 -r 16000 - -esigned-integer -b16 -r 22050 -t raw - | multimon-ng -t raw -f auto -a POCSAG1200 -v 3 --timestamp - | tee -a POCSAG1200.log
Troubleshooting
GPU support
???
$ cmake -DPLATFORM=rpiv2 -DNFM=ON -DMIRISDR=OFF -DPROFILING=ON ../ -- Build type not specified: defaulting to Release -- Found lame includes: /usr/include/lame/lame.h -- Found lame library: /usr/lib/aarch64-linux-gnu/libmp3lame.so -- Checking for SoapySDR -- SoapySDR found, /usr/include, SoapySDR -- RTLSDR-Airband configuration summary: -- - Version string: v5.2.0 -- - Build type: Release -- - Operating system: Linux -- - SDR drivers: -- - librtlsdr: requested: ON, enabled: TRUE -- - mirisdr: requested: OFF, enabled: FALSE -- - soapysdr: requested: ON, enabled: TRUE -- - Other options: -- - Platform: rpiv2 -- - Build Unit Tests: FALSE -- - Broadcom VideoCore GPU: TRUE -- - NFM support: ON -- - PulseAudio: requested: ON, enabled: TRUE -- - Profiling: requested: ON, enabled: TRUE -- - Icecast TLS support: TRUE -- Configuring done (0.3s) -- Generating done (0.1s) -- Build files have been written to: /opt/build/RTLSDR-Airband/build
$ make [ 3%] Generating version.cpp, _version.cpp [ 7%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/config.cpp.o c++: error: unrecognized command-line option ‘-mfpu=neon-vfpv4’ c++: error: unrecognized command-line option ‘-mfloat-abi=hard’ make[2]: *** [src/CMakeFiles/rtl_airband_base.dir/build.make:86: src/CMakeFiles/rtl_airband_base.dir/config.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:131: src/CMakeFiles/rtl_airband_base.dir/all] Error 2 make: *** [Makefile:136: all] Error 2
ham/rtl-airband.txt · Last modified: by djo

