Agregador de información de aeronaves y navios: airframes y acarsdrama

AIRFRAME


Airframe es un agregador de información sobre aeronaves y navios de las siguientes fuentes:

  • ACARS ( Aircraft Communications Addressing and Reporting System ): aeronaves en VHF (131,550 MHz) usando ACARSDEC
  • VDL2: aeronaves en VHF (136,5-136,975 MHz)
  • HFDL HF: usando DUMPHFDL
  • Iridium banda L 1616,0-1626,5MHz
  • Inmarsat
  • Inmarsat ADS-C
  • SatDump
  • AIS (Automatic Identification System): Navios en VHF(161,975 MHz - Channel 87B y  162,025 MHz - Channel 88B) usando AIScatcher




Puede convertir su estación de VDL2 en un feeder o alimentardor de airframes ejecutando un comando probado como

Saca dos salidas una en formato texto a la pantalla y otra en formato json a airframes

dumpvdl2 --rtlsdr 0 --gain 30 --output decoded:text:file:
path=- --output decoded:json:udp:address=feed.airframes.io,port=XXXX 136.975M

se puede sustituir la URL feed.airframes.io por la IP 142.132.239.244

dumpvdl2 --rtlsdr 0 --gain 30 --output decoded:text:file:
path=- --output decoded:json:udp:address=142.132.239.244,port=XXXX 136.975M 

se pueden incluir todas las frecuencias recomendadas para la zona (p.e. Europa 136725000 136775000 136825000 136875000 136975000)

dumpvdl2 --rtlsdr 0 --gain 30 --output decoded:text:file:
path=- --output decoded:json:udp:address=142.132.239.244,port=5555 136725000 136775000 136825000 136875000 136975000

Se incluye el identificador y el puerto 5552

dumpvdl2 --rtlsdr 0 --gain 35 --station-id XXXXXXXXX --ou
tput decoded:text:file:path=- --output decoded:json:udp:address=feed.airframes.i
o,port=5552 136725000 136775000 136825000 136875000 136975000 


La que propone airframe da error por el parametro address en lugar de udp

dumpvdl2 --rtlsdr 0 --output decoded:json:address:feed.airframes.io:5555 136650000 136800000 136900000 


Comprobaciones

Si los mensajes no llegan a airframes

Se puede comprobar que se llega

host feed.airframes.io
feed.airframes.io has address 142.132.239.244 

Puede ser necesario abrir puertos en la raspberry

sudo iptables -I OUTPUT -p udp --dport XXXX -j ACCEPT 
sudo iptables -I OUTPUT -p tcp --dport XXXX -j ACCEPT

Desde otra ventana (Instalar tcpdump si no lo está ya)

sudo apt-get update
sudo apt-get install tcpdump

ejecutar

sudo tcpdump -n host 142.132.239.244                     
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode       
listening on wlan0, link-type EN10MB (Ethernet), snapshot length 262144 bytes   
16:40:14.808395 IP 192.168.1.97.42140 > 142.132.239.244.xxxx: UDP, length 845   
16:40:16.339237 IP 192.168.1.97.42140 > 142.132.239.244.xxxx: UDP, length 843

SI no llega a airframe probar con

dumpvdl2 --rtlsdr 0 --gain 35 --output decoded:json:file:
path=- 136.975M | tee /dev/tty | nc -v 142.132.239.244 xxxx                    

dumpvdl2 2.6.0 (libacars 2.2.1)                                                 
Sampling rate set to 1050000 sps                                                
Found 1 device(s):                                                              
  0:  Realtek, RTL2838UHIDIR, SN: 00000001                                      
                                                                                
Using device 0: Generic RTL2832U OEM                                            
Found Rafael Micro R820T tuner                                                  
Exact sample rate is: 1050000.026077 Hz                                         
[R82XX] PLL not locked!                                                         
Center frequency set to 136975000 Hz                                            
Bandwidth set to 21000 Hz                                                       
Device #0: gain set to 33.80 dB                                                 
Device 0 bias tee set to 0                                                      
Device 0 started                                                                
Allocating 15 zero-copy buffers                                                 
{"vdl2":{"app":{"name":"dumpvdl2","ver":"2.6.0"},"t":{"sec":1778424716,"usec":35
927},"freq":136975000,"burst_len_octets":44,"hdr_bits_fixed":0,"octets_corrected
_by_fec":1,"idx":0,"sig_level":-32.879055,"noise_level":-47.864647,"freq_skew":0
.318651,"avlc":{"src":{"addr":"4400DC","type":"Aircraft","status":"Airborne"},"d
st":{"addr":"10926A","type":"Ground station"},"cr":"Command","frame_type":"I","r
seq":0,"sseq":1,"poll":false,"acars":{"err":false,"crc_ok":true,"more":false,"re
g":".OE-IDT","mode":"2","label":"_d","blk_id":"9","ack":"T","flight":"EC37HE","m
sg_num":"S32","msg_num_seq":"A","msg_text":""}}}} 

PLAN B

Pese a todos los intentos no se consiguió que llegaran los mensajes a airframe por lo que se decidió usar airframes-client https://github.com/airframesio/airframes-client

rpi-rw
cd /home/pi-star
git clone https://github.com/airframesio/airframes-client.git
sudo mkdir -p /usr/local/airframes
sudo cp -rf airframes-client/scripts/adc /usr/local/airframes/
sudo cp airframes-client/json/airframes.json /boot/airfra
mes.json  
sudo apt update
sudo apt install python3-pip python3-setuptools
cd /usr/local/airframes/adc
sudo pip3 install -r requirements.txt
find / -name airframes.json 2>/dev/null
/boot/airframes.json   
sudo nano /boot/airframes.json  

{
      "name": "dumpvdl2",
      "input": {
        "type": "decoder",
        "name": "dumpvdl2",
        "path": "/usr/local/bin/dumpvdl2",
        "config": {
          "receiver": "o",
          "gain": 40,
          "frequencies": ["136650000", "136800000", "136975000"]
        }
      },

outputs": [
        {
          "type": "logfile",
          "format": "af.json.v1",
          "path": "/var/log/airframes/airframes.data.json"
        },
        {
          "type": "logfile",
          "format": "af.json.v1",
          "path": "/var/log/airframes/dumpvdl2.data.json"
        },
        {
          "type": "net:tcp",
          "format": "af.json.v1",
          "feed": { "id": "xxxxxxxxx" },
          "hostname": "feed.acars.io",
          "port": 5555
        },

sudo mkdir -p /var/log/airframes
sudo chmod 777 /var/log/airframes  
cd /usr/local/airframes/adc    
sudo ./adc

Tampoco de esta forma se consiguio avanzar pues no soporta TCP que espera airframe


ACARSDRAMA

Debido al fracaso con DUMPVDL2 y AIRFRAME se prueba el agregador ACARSDRAMA.

las caracteristicas para el Feeder son:
  • URL/IP: feedthe.acarsdrama.com
  • Port: 5555
  • Formato: JSON
  • Protocolo: UDP
dumpvdl2 --rtlsdr 0 --gain 35 --station-id EA5JTT --output decoded:text:file:path=- --output decoded:json:udp:address=feedthe.acarsdrama.com,port=5555 136725000 136775000 136825000 136875000 136975000 

mas ligero

dumpvdl2 --rtlsdr 0 --gain 35 --station-id EA5JTT --output decoded:text:file:path=- --output decoded:json:udp:address=feedthe.acarsdrama.com,port=5555 136800000 136975000


He entendido que realmente ACARSDRAMA filtra los mensajes que le llegan y los mas importantes los publica en Bluesky y en Mastodont @acarsdrama, en estos momentos lo estoy comprobandolo, pero no es exactamente lo que quería pues yo deseaba que interpretara los mensajes sin filtrar.

Referencias

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