====== 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