User Tools

Site Tools


ham:rtl-airband

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

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

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