====== 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)
{{:ham:rtlsdr-airband_running.png?600 |}}
===== Installation =====
==== RTLSDR-Airband ====
=== Pre-requis ===
* [[https://github.com/rtl-airband/RTLSDR-Airband/wiki/Installation|RTLSDR-Airband]]
^ --- ^ 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
{{ :ham:2-meters.tar.gz | 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 [[https://qrvradio.fr/FreqRA.htm#144|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