Instalando ACARS en una Raspberry Pi

ACARS (Aircraft Communications Addressing and Reporting System) es un sistema de enlace de datos digital que permite a las aeronaves transmitir mensajes cortos y relativamente simples a las estaciones terrestres (compañías aéreas, centros de control, etc.) y viceversa.

Trabajan en la frecuencia de  131,725MHz y utiliza MSK (Minimum Shift Keying) a una velocidad de 2400 bps. 

En vuelos transoceanicos usan por HF o satélite (Inmarsat). 

En la actualidad ACARS en VHF se encapsula en VDL por lo que puede ser prefesible optar por instalar VDL2, aunu así vamos a probar acarsdec


Tip: ACARS/VDLM2 messages are terse and very “ops”-y. This glossary decodes the most common shorthand.

APU Auxiliary Power Unit
CA Captain
CL Cabin Log
CS Customer Service
DCT Direct (routing)
EFB Electronic Flight Bag
ECAM Electronic Centralized Aircraft Monitor (Airbus)
EICAS Engine Indication and Crew Alerting System (Boeing)
EDCT Estimated Departure Clearance Time
EFC Expect Further Clearance
FA Flight Attendant
FMS Flight Management System
FO First Officer
FOB Fuel on Board
GPU Ground Power Unit
INOP Inoperable / broken
JL Journey Log
MEL Minimum Equipment List
PAX Passengers
PIREP Pilot Inflight Weather Report
QRH Quick Reference Handbook
RON Remaining Overnight
RVR Runway Visual Range
SELCAL Selective Calling system
TCAS Traffic Alert and Collision Avoidance System
UM Unaccompanied Minor
WX Weather
ACARS Aircraft Communications Addressing and Reporting System
ATC Air Traffic Control
ATIS Automatic Terminal Information Service
AOG Aircraft On Ground
CDU/FMC Control Display Unit / Flight Management Computer
CPDLC Controller–Pilot Data Link Communications
ETA / ETD Estimated Time of Arrival / Departure
OOOI Out / Off / On / In times
METAR / TAF Weather report / Forecast
NOTAM Notice to Air Missions
SID / STAR Standard Departures / Arrivals
ZFW / TOW / MLW Weights
HF / VHF Radio bands
CTA / FIR Airspace regions
ETOPS Extended-range Twin-engine Ops
PNR Passenger Name Record

Instalación

Seguimos el procedimiento habitual

Permisos
rpi-rw

Actualizacion y dependencias
sudo apt-get update
sudo apt-get install librtlsdr-dev libasound2-dev libpcre3-dev cmake

Clonamos la libreria
cd ~
git clone https://github.com/f00b4r0/acarsdec.git
cd acarsdec

Compilamos
mkdir build
cd build
cmake .. -Drtl=ON
make
sudo make install


Funcionamiento

Ayuda con los formatos y destinos de salida

acarsdec --output help
--output FORMAT:DESTINATION:PARAMS                                     
Supported FORMAT:       
 "oneline": Single line summary  
 "full": Full text decoding    
 "monitor": Live monitoring 
 "pp": PlanePlotter format  
 "native": Acarsdec native format                                               
Supported DESTINATION:  
 "file": File (including stdout) output. PARAMS: path,rotate 
 "udp": UDP network output. PARAMS: host,port                                   
Parámetros para RTL-SDR

 --rtlsdr <device> decode from rtl dongle number <device> or S/N <device>
 -B <bias> enable (1) or disable (0) the bias tee (default is 0)
 -c <freq> set center frequency to tune to in MHz, e.g. 131.800 (default: automatic)
 -g <gain> set rtl gain in db (0 to 49.6; >52 and -10 will result in AGC; default is AGC)
 -m <rateMult> set rtl sample rate multiplier: sample rate is <rateMult> * 12000 S/s (default: automatic)
 -p <ppm> set rtl ppm frequency correction (default: 0)


Salida por pantalla usando dos terminales

1er terminal
                                              
acarsdec --output full:udp:host=127.0.0.1,port=5555 -
v --rtlsdr 0 131.725 131.825 131.525                                            
Found 1 device(s):                                                              
  0:  Realtek, RTL2838UHIDIR, SN: 00000001                                      
                                                                                
Using device 0: Generic RTL2832U OEM                                            
Found Rafael Micro R820T tuner                                                  
Tuner gain: AGC                                                                 
#1: Fc = 131675000Hz, Fr = 131725000Hz, phase =  0.327249 (+50000Hz)            
#2: Fc = 131675000Hz, Fr = 131825000Hz, phase =  0.981748 (+150000Hz)           
#3: Fc = 131675000Hz, Fr = 131525000Hz, phase = -0.981748 (-150000Hz)           
Setting center freq: 131.6750 MHz                                               
Setting sample rate: 0.9600 MS/s                                                
Setting bandwidth to: 324.00 kHz                                                
Setting bias tee to 0                                                           
UDP: Attempting to resolve '127.0.0.1:5555'.                                    
Starting, decoding 3 channels                                                   
blk_starting                                                                    
Allocating 4 zero-copy buffers   

Otro formato con IP de la RAspberry Pi

acarsdec -v -g 35 --rtlsdr 0 --output oneline:udp:host=19
2.168.1.97,port=5555 131.725                                                    
Found 1 device(s):                                                              
  0:  Realtek, RTL2838UHIDIR, SN: 00000001                                      
                                                                                
Using device 0: Generic RTL2832U OEM                                            
Found Rafael Micro R820T tuner                                                  
Tuner gain: 33.8                                                                
#1: Fc = 131725000Hz, Fr = 131725000Hz, phase =  0.000000 (+0Hz)                
Setting center freq: 131.7250 MHz                                               
Setting sample rate: 0.9600 MS/s                                                
Setting bandwidth to: 24.00 kHz                                                 
Setting bias tee to 0                                                           
UDP: Attempting to resolve '192.168.1.97:5555'.                                 
Starting, decoding 1 channels                                                   
blk_starting                                                                    
Allocating 4 zero-copy buffers 

2º terminal

nc -u -l -p 5555

se quedará esperando a recibir un mensaje ACARS ... 

Salida por pantalla usando un unido trminaly con ganancia (-g 40)

acarsdec -g 40 --output full:udp:host=127.0.0.1,port=
5555 --rtlsdr 0 131.725 131.825 131.525 2>&1 | nc -u -l -p 5555 

Solo aviones

acarsdec --output full:udp:host=127.0.0.1,port=5555 --rtlsdr 0 131.725 131.825 131.525 > /dev/null & nc -u -l -p 5555

Solo un canal (Menos stress apra el SDR)

acarsdec -g 40 --output full:udp:host=127.0.0.1,port=5555
 --rtlsdr 0 131.725 2>&1 | nc -u -l -p 5555 

Mensaje de pruebas desde otro terminal

echo "TEST RADIO UPV" | nc -u -w1 127.0.0.1 5555

echo "TEST RADIO UPV" | nc -u -w1 192.168.1.97 5555

acarsdec -g 40 --output full:udp:host=127.0.0.1,port=
5555 --rtlsdr 0 131.725 131.825 131.525 2>&1 | nc -u -l -p 5555    
TEST RADIO UPV  

Ver mensajes del proceso desdde otro terminal
tail -f acars.log   

Limpia procesos colgados
sudo killall -9 acarsdec         

Conclusiones

Por el momento no se ha captado ningun mensaje ACARS del tráfico aéreo del aeropuerto de Manises (El receptor está a unos 15km y no está en las sendas de despegue y aterrizaje del aeropuerto). 

Por otra parte hay que tener en cuenta que el sistema VDL es un sistema mas moderno que tiene el mismo uso, por lo que pasamos a probar VDL2


Advertencia importante

Las modificaciones, configuraciones y procedimientos descritos en este sitio pueden implicar riesgos técnicos, legales o de seguridad. El autor no se responsabiliza del mal funcionamiento de los equipos, daños permanentes, pérdida de garantía ni de posibles infracciones legales derivadas del uso de esta información.
El lector asume plena responsabilidad por cualquier acción que decida realizar basándose en el contenido de este blog.


© 2026 EA5JTT. Queda prohibida la reproducción total o parcial sin autorización expresa del autor.

No hay comentarios:

Publicar un comentario

Meshcore : room Servver

Los Romm Server son nodos que reciben los mensajes dirigidoas a los clientes suscritos  y los almacena de forma que cuando el cliente se con...