
Dump1090 es un simple decodificador Mode S para dispositivos RTLSDR
Dump 1090 es un decodificador de Modo S diseñado específicamente para dispositivos RTLSDR.
Las principales características son:
Aunque de vez en cuando sigo añadiendo / corrigiendo cosas en mi fork, busco el minimalismo en la implementación. Sin embargo, hay un fork mucho más completo en funciones disponible, desarrollado por MalcolmRobb.
Escriba "make".
Para capturar tráfico directamente desde su dispositivo RTL y mostrar el tráfico capturado en la salida estándar, simplemente ejecute el programa sin opciones:
./dump1090
Para simplemente mostrar mensajes hexadecimales:
./dump1090 --raw
Para ejecutar el programa en modo interactivo:
./dump1090 --interactive
Para ejecutar el programa en modo interactivo, con soporte de red, y conectar con su navegador a http://localhost:8080 para ver tráfico en vivo:
./dump1090 --interactive --net
En el modo interactivo es posible tener una salida con menos densidad de información pero más "estilo arcade", donde la pantalla se actualiza cada segundo mostrando todas las aeronaves vistas recientemente con información adicional como altitud y número de vuelo, extraída de los paquetes Modo S recibidos.
Para decodificar datos de un archivo, use:
./dump1090 --ifile /path/to/binfile
El archivo binario debe crearse usando rtl_sdr de esta manera (o con cualquier otro
programa que pueda generar muestras IQ sin signo de 8 bits a una frecuencia de muestreo de 2Mhz).
rtl_sdr -f 1090000000 -s 2000000 -g 50 output.bin
En el ejemplo se usa una ganancia de 50 con rtl_sdr; simplemente debe usar la ganancia más alta
disponible para su sintonizador. Esto no es necesario al llamar a Dump1090
ya que puede seleccionar automáticamente la ganancia más alta soportada.
Es posible alimentar el programa con datos a través de la entrada estándar usando la opción --ifile con "-" como argumento.
Dump1090 puede ejecutarse con otras opciones de línea de comandos para establecer una ganancia, frecuencia, etc. diferentes. Para ver una lista de opciones use:
./dump1090 --help
Todo lo que no está documentado aquí debería ser obvio, y para la mayoría de los usuarios, ejecutarlo sin argumentos es lo mejor que se puede hacer.
Por defecto, Dump1090 intenta corregir errores de bits usando la suma de comprobación CRC. El programa usa una tabla de síndromes precalculada para identificar y corregir rápidamente hasta dos errores de bits en los mensajes recibidos.
Esto ciertamente puede corregir errores y funciona de manera fiable en mi experiencia; sin embargo, si le interesan datos muy fiables, sugiero usar la opción de línea de comandos --no-fix para deshabilitar la corrección de errores.
En mi limitada experiencia, Dump1090 pudo decodificar una gran cantidad de mensajes incluso en condiciones donde encontré problemas usando otros programas; sin embargo, no se realizó ninguna prueba formal, por lo que no puedo afirmar realmente que este programa sea mejor o peor en comparación con otros programas similares.
Si puede capturar tráfico que Dump1090 no logra decodificar correctamente, envíeme un correo electrónico con un enlace de descarga. Puedo intentar mejorar la detección durante mi tiempo libre (esto es solo un proyecto de hobby).
Dump1090 puede decodificar mensajes de posición en superficie (Código de Tipo 5-8), que son transmitidos por las aeronaves mientras están en tierra (rodando, esperando en puertas, etc.). Estos mensajes incluyen la posición de la aeronave, la velocidad respecto al suelo y la trayectoria respecto al suelo.
Las posiciones en superficie usan una codificación diferente a la de las posiciones en vuelo: el CPR (Compact Position Reporting) cubre solo 90 grados en lugar de 360, y requiere una posición de referencia dentro de 45 millas náuticas para una decodificación sin ambigüedad.
En lugar de exigirle que configure la ubicación de su receptor, Dump1090 calcula automáticamente una posición de referencia promediando todas las posiciones en vuelo decodificadas correctamente. Esto funciona porque si puede recibir tráfico en superficie de un aeropuerto, casi con seguridad también recibe tráfico en vuelo. La posición promediada de las aeronaves que sobrevuelan proporciona una referencia que es lo suficientemente cercana (muy dentro del requisito de 45 NM) para decodificar posiciones en superficie.
Nota: Las posiciones en superficie solo se mostrarán una vez que al menos una posición en vuelo se haya decodificado correctamente para establecer la referencia. Las aeronaves en tierra se mostrarán con altitud 0 en la pantalla interactiva.
Al habilitar el soporte de red con --net, Dump1090 comienza a escuchar conexiones de clientes en los puertos 30002 y 30001 (puede cambiar ambos puertos si lo desea, consulte la salida de --help).
Los clientes conectados reciben los datos tan pronto como llegan del dispositivo (o del archivo si se usa --ifile) en el formato sin procesar similar al siguiente:
*8D451E8B99019699C00B0A81F36E;
Cada entrada está separada por un simple salto de línea (carácter LF, hex 0x0A).
El puerto 30001 es el puerto de entrada sin procesar, y se puede usar para alimentar a Dump1090 con
datos en el mismo formato especificado anteriormente, con mensajes hexadecimales que comienzan con
* y terminan con el carácter ;.
Así, por ejemplo, si hay otra instancia remota de Dump1090 recolectando datos, es posible sumar la salida a una instancia local de Dump1090 haciendo algo como esto:
nc remote-dump1090.example.net 30002 | nc localhost 30001
Es importante señalar que lo que se recibe a través del puerto 30001 también se transmite a los clientes que escuchan en el puerto 30002.
En general, todo lo recibido desde el puerto 30001 se maneja exactamente igual que el tráfico normal de los dispositivos RTL o de archivo cuando se usa --ifile.
Es posible usar Dump1090 solo como un hub usando --ifile con /dev/zero como argumento, como en el siguiente ejemplo:
./dump1090 --net-only
O alternativamente para ver lo que está sucediendo en la pantalla:
./dump1090 --net-only --interactive
Luego puede alimentarlo desde diferentes fuentes de datos de internet.
Los clientes conectados reciben mensajes en formato SBS1 (BaseStation), similar a:
MSG,4,,,738065,,,,,,,,420,179,,,0,,0,0,0,0
MSG,3,,,738065,,,,,,,35000,,,34.81609,34.07810,,,0,0,0,0