ALE - Automatic Link Establishment

La señal de ALE (Automatic Link Establishment o Establecimiento Automático de Enlace) es una técnica utilizada en comunicaciones de radio en alta frecuencia (HF) para iniciar y mantener automáticamente comunicaciones, seleccionando la mejor frecuencia de trabajo sin intervención del operador. 

ALE es el estándar de facto para la interconexión digital en HF, ampliamente utilizado por militares (es un estandar militar, concretamente el MIL-STD-188-141), agencias gubernamentales y radioaficionados para emergencias. 

Modulación para 2G ALE: se 8FSK o MFSK ( ocho tonos ortogonales situados entre 750 Hz y 2500 Hz).

Velocidad y Protocolo: Transmite a una tasa de 125 baudios , con una tasa de datos real de 375 bits por segundo.

Sonido: A primera vista, las señales de llamada ALE suenan como una secuencia de "gorgoteo" o "guerra" que dura entre 20 y 90 segundos.

Proceso (Handshake): Las estaciones escanean continuamente una lista de canales. Cuando una estación quiere contactar a otra, envía una señal digital que incluye las direcciones de llamada (similar al ID de llamadas) de ambas partes. Las estaciones se comunican automáticamente (handshake) para confirmar la calidad del enlace antes de pasar a voz o datos.

Generaciones de ALE:

  • 2G ALE (MIL-STD-188-141A/FED-STD-1045): Utiliza escaneo asíncrono y es el más utilizado mundialmente.
  • 3G ALE (MIL-STD-188-141B/STANAG 4538): Utiliza sincronización de tiempo precisa (GPS), permitiendo enlaces más rápidos (menos de 10 segundos) y robustos.
  • 4G ALE (WALE/MIL-STD-188-141D): Utiliza formas de onda de banda ancha (hasta 48 kHz) para un establecimiento de enlace muy rápido. 

En la imagen bajo el epígrafe de "ALE Network" aparece el grupo de frecuencias en las que opera el sistema


¿Quién lo usa en el mundo civil y de aficionados

HFLINK es la red global de radioaficionados que utilizan ALE para comunicaciones de emergencia (EmCom), y larga distancia.


Software para ALE

PC-ALEEs el software más veterano y robusto. Es gratuito y sigue el estándar militar. Es un poco rudo de interfaz (parece de Windows 95), pero es el que mejor funciona.

MARS-ALEUna versión muy utilizada por las redes de servicios auxiliares militares en EE. UU., pero compatible con radioaficionados. No dispone de web como tal

MultiPSKEste software "todo en uno" de modos digitales soporta ALE (MIL-STD), aunque la versión gratuita es limitada. Es útil para decodificar y ver qué estaciones están activas antes de lanzarte a transmitir.

Sorcerer: Más enfocado a la escucha (SWL), es excelente para decodificar tramas ALE y ver quién está llamando a quién.


Redes


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.

Instalando radiosonde_auto_rx

Algunas de las opciones para hacer un seguimiento de las radiosondas meteorológicas son:

  • Ordenador personal con un software SDR como SDRAngel y un dongle USB SDR
  • Raspberry Pi Ordenador personal con radiosonde_auto_rx y un dongle USB SDR
  • ESP32 433 MHZ Lora con rdzTTGOsonde (Que ya hemos analizado aquí)




radiosonde_auto_rx

Para ello vamos a necesitar

  • Una antena onmidireccional o direccional en la dirección en la que nos lleguen las radiosondas a nuestra localización para la banda de 403 MHz, valdría una de la banda de UHF o 430 MHZ de radioaficionados.
  • Un filtro pasa banda de 403 MHz(no imprescindible, conveniente en entornos urbanos o con señales de RF potentes en los alrededores)
  • Una raspberry Pi, en nuestro caso reusaremos una instlación de Pi-Star que no usabamos, pero es lo mismo si se usa una Raspberry Pi limpia 
  • Un dongle o pincho SDR USB, que nos vale un clon v3 como es el "verde" pues va a atrabajar en 403 MHz


1. Preparar la rasberry Pi

  • Conectarse: usurio y contraseña
  • Permitir la escritura: rpi-rw
  • Actualizar sistema operativo:sudo apt-get update

2. Instalar las dependencias de RadioSonde

sudo apt-get install python3-pip python3-dev librtlsdr-dev sox libfann-dev git

3. Clonar e Instalar auto_rx

  • git clone https://github.com/projecthorus/radiosonde_auto_rx.git
  • cd radiosonde_auto_rx/auto_rx/
  • pip3 install -r requirements.txt

    • 3b. si da problemas la instalación hacer  
      • pip3 install --upgrade setuptools wheel
      • pip3 install markupsafe==2.0.1 werkzeug==2.0.3
      • pip3 install flask==2.0.3
      • pip3 install -r requirements.txt

4. Instalar las librerias matemáticas

  • sudo apt-get install libopenblas-dev libatlas-base-dev
  • cd ~/radiosonde_auto_rx/auto_rx/ 
  • ./build.sh

5. Configuración Crítica (El conflicto del SDR)

Si se usa la Raspberry Pi para otras aplicaciones que hacen uso del SDR y con el fin de que no entren en conflicto (No pueen funcionar dos aplicaciones que usen el SDR al mismo tiempo) 

Buscar el nombre correcto del fichero de configuración que terminara en .example o .default (en nuestro caso station.cfg.example) con: ls -F

cp nombre_corecto.example station.cfg

nano ~/radiosonde_auto_rx/auto_rx/station.cfg

  • Asegúrate de que device_idx = 0
  • Ajustar el escaneo a las que vaya a seguir (Peninsula Ib´ñerica y Canarias):
    • min_freq = 401.0  
    • max_freq = 405.5
  • Ajustar las coordenadas de la estacion
    • [location]                                             
    • station_lat = 0.0 
    • station_lon = 0.0                                        
    • station_alt = 0.0 
  • Ajustar el email de contacto
    • sondehub_contact_email = xxx@xxx.xx
  • Ajustar si se quiere subir a APRS
    • [aprs]            
    • # Enable APRS upload (you will also need to change some options below!)
    • aprs_enabled = False             
    • # APRS-IS Login Information
    • # The aprs_user field can have an SSID on the end if desired, i.e. N0CALL-4
    • aprs_user = N0CALL    
    • # APRS-IS Passcode. You can generate one for your callsign here: https://apps.m>
    • aprs_pass = 00000 
  • Cualquier otra variable que vea de interes cambiar
  • Listado de parametros
    • cat ~/radiosonde_auto_rx/auto_rx/station.cfg | grep -v "^#" | grep -v "^$"

6. Lanzamiento manual

Si se va usar otro servicio/programa hay que asegurarse de que esté parado

sudo systemctl stop radiosonde_auto_rx  

Para usar radiosonde_auto_rx (El modo automático):

Debes cerrar cualquier proceso  que use SDR (p.e.) de rtl_fm o direwolf primero:

sudo killall rtl_fm direwolf
cd /home/pi-star/radiosonde_auto_rx/auto_rx/          
python3 auto_rx.py -c station.cfg   

o

python3 ~/radiosonde_auto_rx/auto_rx/auto_rx.py -c ~/radiosonde_auto_rx/auto_rx/station.cfg

7 - Seguimiento 

LOG

pi-star@pi-star(rw):auto_rx$ python3 auto_rx.py -c station.cfg
2026-03-03 10:10:21,213 INFO:Reading configuration file...                      
2026-03-03 10:10:21,261 WARNING:Config - Web Password not set, disabling web con
trol                                                                            
2026-03-03 10:10:25,246 INFO:Config - Tested RTLSDR #0 OK                       
2026-03-03 10:10:25,255 INFO:Started Flask server on http://0.0.0.0:5000        
2026-03-03 10:10:25,261 INFO:Telemetry Logger - Started Telemetry Logger Thread.
2026-03-03 10:10:25,266 INFO:OziMux - Started OziMux / Payload Summary Exporter 
2026-03-03 10:10:25,271 INFO:Sondehub Uploader - Started Sondehub Uploader Threa
d.                                                                              
2026-03-03 10:10:26,226 INFO:Version - Local Version: 1.8.2 - Up to date!       
2026-03-03 10:10:26,252 INFO:Sondehub Uploader - Uploaded station information to
 Sondehub.                                                                      
2026-03-03 10:10:28,228 INFO:Task Manager - SDR #0 has been allocated to Scanner
.                                                                               
2026-03-03 10:10:32,088 INFO:Scanner (RTLSDR 0) - Starting Scanner Thread       
2026-03-03 10:10:32,092 INFO:Scanner (RTLSDR 0) - Running frequency scan.       

Si queremos conectarnos al log y ver su contenido

cd ~/radiosonde_auto_rx/auto_rx/log/ 

ls -lh
  • -rw-r--r-- 1 pi-star pi-star   0 Mar  3 08:59 log_files_go_here.txt             
  • -rw-r--r-- 1 pi-star pi-star 49K Mar  3 11:32 log_power_0.csv   
tail -n 50 log_power_0.csv 

Si encuentra una sonda generará un fichero del tipo auto_rx_AAAA-MM-DD.log que podremos localizar con 

find ~/radiosonde_auto_rx -name "*.log" 

Para analizar un fichero de Log como por ejemplo  20260304-125924_M10-309-2-13942_M10_403401_sonde.log

cat /home/pi-star/radiosonde_auto_rx/auto_rx/log/20260304-125924_M10-309-2-13942_M10_403401_sonde.log
  • timestamp,serial,frame,lat,lon,alt,vel_v,vel_h,heading,temp,humidity,pressure,type,freq_mhz,snr,f_error_hz,sats,batt_v,burst_timer,aux_data                     
  • 2026-03-04T12:59:24.000Z,M10-309-2-13942,1456664382,38.41766,-1.45537,31633.8,7.1,12.4,198.4,-47.4,0.4,-1.0,0x9F,403.401,5.4,751,11,4.9,,                       
  • 2026-03-04T13:00:44.000Z,M10-309-2-13942,1456664462,38.40920,-1.46029,32077.6,5.3,13.4,179.9,-45.7,0.4,-1.0,0x9F,403.401,5.1,751,11,4.9,,                       
  • 2026-03-04T13:02:13.000Z,M10-309-2-13942,1456664551,38.40439,-1.46024,32586.0,4.5,12.8,190.5,-45.4,0.7,-1.0,0x9F,403.401,5.4,375,10,4.9,,                       
  • 2026-03-04T13:02:34.000Z,M10-309-2-13942,1456664572,38.40308,-1.46114,32694.0,4.6,12.7,186.4,-44.9,0.7,-1.0,0x9F,403.401,6.1,751,10,4.9,,                       
  • 2026-03-04T13:03:22.000Z,M10-309-2-13942,1456664620,38.40244,-1.46114,32616.0,-39.6,1.9,310.0,-46.4,0.9,-1.0,0x9F,403.401,7.0,751,10,4.9,,  
                                                                              

8. comprobaciones

¿Está ejecutándose el programa?

ps -ef | grep auto_rx.py

pi-star  26844 25276  0 18:36 pts/0    00:00:00 grep --color=auto auto_rx.py

¿Está la web lanzada y accesible (crurl es un browser de linea)?

curl -I http://localhost:5000
curl: (7) Failed to connect to localhost port 5000: Connection refused  

9. Conectarnos a la web

Previamente hay que modificar el modo por defecto

sudo nano /etc/fstab

Cambia ro por rw en las líneas de la partición principal (la que apunta a /). Debería quedar algo parecido a esto:

/dev/mmcblk0p2  /  ext4  defaults,noatime,rw  0  1

sudo nano /etc/rc.local

sudo nano /etc/rc.local

Hay que añadir una línea en el firewall justo antes de la línea que dice exit 0 para permitir la conexión

iptables -I INPUT -p tcp --dport 5000 -j ACCEPT

Comprobación de que el puerto está abierto para poder acceder al servior web por el puerto 5000

sudo iptables -L -n | grep 5000

URL en el browser

http://192.168.1.xx:5000

10 - Comprobar que se suben los datos a Internet por ejemplo con https://sondehub.org/





Mi último consejo: Tenga siempre abierta su IA preferida, en mi caso https://gemini.google.com/ que será su mejor aliada en este tipo de batallas


Conclusiones 

radiosonde_auto_rx  con SDR es mas sensible que rdzTTGOsonde con ESP32 LoRa 433, y con mejores herramientas, si bien tambien supone una mayor inversión en tiempo y dinero


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.

Probando el firmware rs41-nfw en una RS41 de Vaisala

En la primera parte del fichero .ino del rs41-nfw vienen las definiciones generales y las especiíficas de los diversos modos en los que es capaz de trabajar:

  • PIP
  • CW
  • APRS
  • RTTY
  • FOX
  • HORUS V2 
  • HORUS V3
En todos ellos puede ponerlos activos (true) o inactivos (false)
(No se ha probado si funciona correctamente con dos o mas modos activos)


LED DOBLE DE LA PLACA

Secuencia de arranque de rs41-nfw cuando se pulsa el interruptor rojo

Secuencia de arranque correcta
  • rojo
  • rojo y verde (naranja)
  • rojo y verde (naranja) intermitente 2 por segundo
  • rafaga de 5 verdes => Fin arranque
  • rojo y verde (naranja) intermitente 2 seguidos
  • verde intermitente
  • verde fijo => OK
Secuencia de arranque erronea por baterias bajas
  • rojo
  • naranja
Secuencia de parada del rs41-nfw cuando se pulsa el interruptor rojo
  • rojo intermitente 3 ó 4 veces
Significado
Durante el arranque:
- Rojo parpadea 3 veces: condiciones incorrectas para la calibración
de humedad cero; se sale de la calibración.
- Rojo parpadea 5 veces: calibración de humedad cero cancelada debido
a un error en el brazo del sensor.
- Rojo fijo: inicialización del hardware.
- Naranja fijo: inicialización del brazo del sensor y del circuito
de calefacción, y también inicialización parcial del GPS.
- Naranja intermitente breve: calibración en curso, ya sea reacondicionamiento,
corrección de temperatura o comprobación de humedad cero.
- Verde parpadea 5 veces: configuración del firmware completada,
ingreso al programa principal

Durante el funcionamiento:
- Rojo fijo: error importante, como error en el brazo del sensor,
error de calibración inicial del sensor, error de conexión RPM411 (si está configurado).
- Naranja fijo: advertencia, como falta de señal GPS o voltaje
de la batería por debajo de 'vBatWarnValue'.
- Naranja intermitente: modo de rendimiento GPS mejorado habilitado y
la sonda sigue buscando satélites.
- Verde intermitente: modo de rendimiento GPS mejorado habilitado y
la sonda ha encontrado varios satélites y pronto volverá al modo listo para volar.
- Verde fijo: todos los sistemas funcionan correctamente y sin errores;
la sonda está lista para ser lanzada.

La información del LED para el caso del GPS depende de la opción
de gpsOprationmode del .ino

0 - Totalmente desactivado (uso estacionario, como en una estación meteorológica;
las coordenadas estacionarias se pueden especificar en gpsLat-gpsLong)
1 - Por defecto, siempre activado;
2 - Ahorro de energía estándar en posición estable (solo RSM4x2;
función antigua que reduce el consumo cuando la señal GPS es fuerte;
vuelve automáticamente al máximo rendimiento cuando es necesario).
3 - Gestión inteligente de GPS: algoritmo disponible solo para placas
RSM4x4. Este algoritmo, junto con las funciones Super-S, PSMCT, ITFM,
constelaciones y mensajes GNS del GPS M10 u-blox, permite una mejora
considerable en el consumo de energía y la resistencia a interferencias.
LED DEL GPS (bajo el chip)

Verde intermitente (Funciona del GPS)


MODOS


Parámetros comunes a todos los modos

Potencia de emisión
// TX power, 0 = -1dBm (~0.8mW), 1 = 2dBm (~1.6mW),
2 = 5dBm (~3 mW), 3 = 8dBm (~6 mW), 4 = 11dBm (~12 mW),
5 = 14dBm (25 mW), 6 = 17dBm (50 mW), 7 = 20dBm (100 mW)


PIP


Emitir un pitido de forma intermitente

// Pip:
bool pipEnable = false; // Enable pip tx mode (carrier)
constexpr float pipFrequencyMhz = 432.7; // Pip tx frequency
constexpr uint16_t pipLengthMs = 100; // Pip signal length in ms
constexpr uint16_t pipRepeat = 3; // Pip signal repeat count in 1 transmit window
constexpr int8_t pipRadioPower = 7;


CW

Transmite en Morse

La velocidad de transmisión viene fijada por el parámtro morseUnitTime
que por defecto es de 40, que es una velocidad muy alta para la
decodificación manual

Tabla con los valores

Valor (ms)Velocidad (WPM)Sensación
4030Muy rápido (Nivel experto)
6020Rápido pero legible
8015Velocidad ideal para pruebas
10012Lento y muy claro
Parámetros

// Morse: // bool morseEnable = true; // Enable morse tx mode bool morseEnable = false; // disable morse tx mode constexpr float morseFrequencyMhz = 434.6; // Morse tx frequency constexpr uint16_t morseUnitTime = 40; // Morse unit time constexpr int8_t morseRadioPower = 7;

Se modifica:
  • La velocidad a 100, que representa unas 12 ppm
  • La potencia a 6 unos 100 mW
Se prueba recibiendo la señal con RTL-SDR &SDR++ sin problemas y
se recibe el indicativo y la telemetria en formato UKHAS, sin embargo solamente he decodificado el indicativo, 29 numeros y un D1D final

CampoLongitud (aprox.)Significado y Formato
Indicativo6-9 caracteresTu MYCALL (ej: EA5JTT).
Altitud4-5 dígitoslastGpsAlt Altitud en metros (sin unidad). Ej: 12500.
Temperatura2-3 caracteresmainTemperatureValue Temperatura del sensor principal (con signo si es bajo cero). Ej: -45 o 22
Voltaje2 dígitosbatVFactor Voltaje de batería multiplicado por 10 (para no enviar el punto decimal). Ej: 24 significa 2.4V.
Satélites2 dígitosgpsSats Número de satélites en lock. Ej: 09 o 24
Falta conocer exactamente el formato y significado de los datos transmitidos


APRS

Para trabajar con APRS además de configurar el modo APRS en el programa rs41-nfw  se deberá disponer de un iGate próximo que funcione como AFSK 1200 (audio analógico modulado en FM) en 432,500 MHz, no sirven los mas populares en esta banda que lo hacen con modulación LoRa en 433,775 MHz por lo que no valdrá el iGate visto en APRS Automatic Packet Reporting System: Una nueva aproximación a esta red ni tampoco el APRS digital


Espectro generado por la señal de APRS, observese que configurando a 432,500MHz el rs41-nfw aparece la señal centrada en 433,775 MHz
(el tema de la radiación espurea no es buena pero tampoco podemos hacer nada al respecto)


iGate APRS AFSK UHF

En este punto se ha probado configurar el igate sobre un ordenador personal, en nuestro caso macOS & SDR y sobre una raspberry Pi con SDR

Hay dos lecciones importantes que se han aprendido
  • La libreria usada rtl_fm funciona bien para SDR V3 (originales RTl-SDR o clon), pero no funciona para SDR V4 (RTL-SDR)
  • La frecuencia configurada en rs41-nfw de 432,500 MHz termina siendo en real 433,780 MHz como se puede comprobar con un programa como SDR++ & SDR o con un walkie-Talkie

Instalando sobre un ordenador personal

Se puede hacer de dos formas, aprovechando la salida de un programa SDR para mediante una aplicación como blackhole 2 CH llevarla al decodificador APRS que es Direwolf o hacerlo directamente desde consola (Esta ultima es  por la que finalmente se optó)

Mediante programa
  • Instalar Blackhole 2CH y reiniciar 
  • Instalar Direwolf, en macOS hacer en la consola 
    • brew install direwolf
    • Probar la instalación con direwolf -v y si da probremas hacer brew install portaudio hamlib gpsd direwolf
  • Configurar el SDR (p.e.e RTL-SDR)  y el software (p.e. GQRX, CubicSDR, etc.).
    • Sintonía: la frecuencia real a la que está transmitiendo la radiosonda
    • Modo: NFM (Narrow FM)
    • Ancho de banda (Bandwidth): 12 kHz
    • Salida de Audio: Cambia la salida del programa SDR de "Altavoces" a "BlackHole 2ch".



  • Crear archivo de configuración direwolf.conf
ADEVICE BlackHole2ch
CHANNEL 0
MYCALL NOCALL-10
MODEM 1200
AGWPORT 8000
KISSPORT 8001
# Si quieres que lo suba a internet (APRS-IS):
IGSERVER euro.aprs2.net 14580
IGLOGIN NOCALL12345  # <--- Aquí  indicativo radioaficionado y va tu passcode de APRS

  •  Ejecutar  en donde este direwolf.conf m que en En macOS en el terminal direwolf -c direwolf.conf
###############################################################
# CONFIGURACIÓN iGATE EA5JTT - macOS (Direwolf 1.8.1)
###############################################################
# 1. Identificación
MYCALL NOCALL-10
# 2. Entrada de Audio (SDR via stdin)
ADEVICE stdin null
CHANNEL 0
MODEM 1200
# 3. Servidor APRS-IS (Internet)
IGSERVER euro.aprs2.net
IGLOGIN NOCALL 123456
IGFILTER m/50
# 4. Opciones de Red (Versión 1.8)
IGVIA 0
# 5. Baliza de posición (Para que salgas en el mapa desde el Mac)
PBEACON sendto=IG delay=0:30 every=60:00 symbol="i" overlay=M lat=xx^xx.xxN long=xxx^xx.xxW comment="iGate macOS RS41 UPV NOCALL"


Mediante consola

Comando

rtl_fm -f 433.780M -s 24000 -g 25 | direwolf -c ~/sonda.conf -r 24000 -n 1 -D 1 -a 10 -t 0 -

LOG (En rojo la decodifiación de la trama APRS de la radiosonda)

Dire Wolf Release 1.8.1, November 2025
Includes optional support for:  gpsd hamlib cm108-ptt dns-sd
Reading config file /Users/Juan/sonda.conf
Found 1 device(s):
0:  Realtek, RTL2838UHIDIR, SN: 00000001
Using device 0: Generic RTL2832U OEM
Audio input device for receive: stdin  (channel 0)
Audio out device for transmit: null  (channel 0)
Audio input buffer has unexpected extreme size of 0 bytes.
Detected at /private/tmp/direwolf-20260228-81855-mmd526/direwolf-1.8.1/src/audio_portaudio.c, line 738.
This might be caused by unusual audio device configuration values.
Using 2048 to attempt recovery.
Audio output buffer has unexpected extreme size of 0 bytes.
Detected at /private/tmp/direwolf-20260228-81855-mmd526/direwolf-1.8.1/src/audio_portaudio.c, line 747.
This might be caused by unusual audio device configuration values.
Using 2048 to attempt recovery.
Channel 0: 1200 baud, AFSK 1200 & 2200 Hz, A+, 24000 sample rate, Tx AX.25.
Note: PTT not configured for channel 0. (OK if using VOX.)
When using VOX, ensure that it adds very little delay (e.g. 10-20) milliseconds
between the time that transmit audio ends and PTT is deactivated.
For example, if using a SignaLink USB, turn the DLY control all the
way counter clockwise.
Using VOX built in to the radio is a VERY BAD idea.  This is intended
for voice operation, with gaps in the sound, and typically has a delay of about a
half second between the time the audio stops and the transmitter is turned off.
When using APRS your transmiter will be sending a quiet carrier for
about a half second after your packet ends.  This may interfere with the
the next station to transmit.  This is being inconsiderate.

If you are trying to use VOX with connected mode packet, expect
frustration and disappointment.  Connected mode involves rapid responses
which you will probably miss because your transmitter is still on when
the response is being transmitted.

Read the User Guide 'Transmit Timing' section for more details.

Ready to accept AGW client application 0 on port 8000 ...
Ready to accept KISS TCP client application 0 on port 8001 ...
DNS-SD: Announcing KISS TCP on port 8001 as 'Dire Wolf on mbp-de-juan-2'
Found Rafael Micro R820T tuner
Tuner gain set to 25.40 dB.
Tuned to 434032000 Hz.
Oversampling input by: 42x.
Oversampling output by: 1x.
Buffer size: 8.13ms
Exact sample rate is: 1008000.009613 Hz
Sampling at 1008000 S/s.
Output at 24000 Hz.

Now connected to IGate server euro.aprs2.net (193.237.219.53)
Check server status here http://193.237.219.53:14501

[ig] # aprsc 2.1.19-g730c5c0
[ig] # logresp EA5JTT verified, server T2UK
[ig] EA5JTT-10>APDW18:!3928.91NM00020.67W#iGate macOS RS41 UPV EA5JTT

EA5JTT-11 audio level = 27(4/3)    __|||____
[0.3] EA5JTT-11>APRNFW,WIDE2-1:!3928.92N/00019.87WO/A=000042/F33S24V2463C6I20T24H80P10225J0R4  NFWv65
Position, Original Balloon (think Ham balloon), UNKNOWN vendor/model
N 39 28.9200, W 000 19.8700, alt 13 m (42 ft)
/F33S24V2463C6I20T24H80P10225J0R4  NFWv65

ADEVICE0: Sample rate approx. 23.8 k, 0 errors, receive audio level CH0 34



Instalando sobre una Raspberry Pi

Se decidió reusar una Raspberry Pi que tenía instalado el software Pi-STAR y conectado el hardware "Jumbospot  UHF y VHF MMDVM" pensando que podría reusarse la parte de radio, sin embargo eso no fue posible por lo que se terminó conectando un SDR al puerto USB, que como ya se ha comentado debe ser V3 pues con V4 no se consiguió que funcionara

Por lo tanto no ganamos nada con el uso de la Pi-Star mas haya de darle un nuevo uso ahora que se tenía parada.
 

Configurando en PI-Star (Raspberry Pi)

Una Pi-Star tanto si la compra ya montada como si se construye con una Raspberry Pi y un Jumpospot no deja de ser una Raspberry Pi a la cual se puede entrar sin problemas desde un navegador con la http://pi-star.local/ y en su consola llendo a la opción "Modo expert" SSH ACCESS

Al entrar hay que hacer logon introduciendo el User (por defecto pi-star) y Password (por defecto raspberry) y comenzar a instalr el software necesario.


Desbloquear la protección de escritura

rpi-rw 

Comprobar si está instalado direwolf y en caso contrario instalarlo

whereis direwolf
rpi-rw
sudo apt-get install direwolf -y

Comprobar si está instalado rtl-sdr y en caso contrario instalarlo

whereis direwolf
sudo apt-get update
sudo apt-get install rtl-sdr -y

Conectar pincho USB SDR (ojo solo he conseguido que funcionen los V3) y probar 

rtl_test -t

Probar el SDR y su software

sudo modprobe -r dvb_usb_rtl28xxu

Crear el fichero de configuración que hemos llamado /home/pi-star/igate_upv.conf con el editor nano

# Identificación del iGate
MYCALL NOCALL-10
# Conexión a la red APRS-IS
IGSERVER euro.aprs2.net
IGLOGIN NOCALL NOPASSWORD
# Configuración del canal de radio (SDR)
ADEVICE stdin null
CHANNEL 0
MODEM 1200
# Filtros y comportamiento (Lo que hablábamos)
IGVIA 0
IGFILTER m/50
# Baliza de posición (Para que salgas en el mapa)
PBEACON sendto=IG delay=0:30 every=60:00 symbol="i" overlay=R lat=xx^xx.xxN long=0xx^xx.xxW comment="iGate RS41"

Automatizacion 
  • nano /home/pi-star/run_aprs.sh
    • #!/bin/bash
    • # Forzar modo escritura (necesario en Pi-Star)
    • sudo mount -o remount,rw /
    • # Liberar el driver de TV si está bloqueando el USB
    • sudo modprobe -r dvb_usb_rtl28xxu 2>/dev/null
    • # Lanzar el iGate con los parámetros probados
    • rtl_fm -f 433.780M -s 24000 -g 25 | direwolf -c /home/pi-star/igate_upv.conf -r 24000 -n 1 -D 1 -t 0 -a 10 -  
  • chmod +x /home/pi-star/run_aprs.sh
  • rpi-rw
  • Editar /etc/rc.local con sudo nano /etc/rc.local
    • añadir antes de "exit 0"
      • sleep 10
      • /home/pi-star/run_aprs.sh & 
  •  Quitar automatización en caso de que no arranque
    • Editar /etc/rc.local con sudo nano /etc/rc.local
      • comentar o quitar  /home/pi-star/run_aprs.sh & 
  • Escribe: nano /home/pi-star/.bashrc
    • Ve al final del todo y añade esta línea:
      • alias sonda='/home/pi-star/run_aprs.sh'
    • Guardar y salir.
    • Escribiendo  "sonda" en la consola funcionará 
COMPROBACIONES DESDE CONSOLA
  • Comprobación del voltaje
    • vcgencmd get_throttled
      • ok throttled=0x00000  
      • Fallo throttled=0x50000
  • Comprobación de fecha
    • date
      • Sat 28 Feb 16:56:40 CET 2026  
  • comprobación de SDR-USB
    • lsusb
      • Bus 001 Device 005: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T
      • Bus 001 Device 003: ID 0424:ec00 Microchip Technology, Inc. (formerly SMSC) SMSC 9512/9514 Fast Ethernet Adapter
      • Bus 001 Device 002: ID 0424:9514 Microchip Technology, Inc. (formerly SMSC) SMC9 514 Hub
      • Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  • comprobación Internet
    • ping -c 3 google.com
      • PING google.com (142.250.185.14) 56(84) bytes of data.
      • 64 bytes from mad41s11-in-f14.1e100.net (142.250.185.14): icmp_seq=1 ttl=118 time=14.8 ms 
      • 64 bytes from mad41s11-in-f14.1e100.net (142.250.185.14): icmp_seq=2 ttl=118 time=14.2 ms 
      • 64 bytes from mad41s11-in-f14.1e100.net (142.250.185.14): icmp_seq=3 ttl=118 time=14.7 ms 
      • --- google.com ping statistics ---
      • 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 14.232/14.580/14.824/0.252 ms  
  • Comprobacion procesos
    • ps aux | grep direwolf
  • Comprobación direcworf
    • direwolf -c /home/pi-star/igate_upv.conf
  • comporbacion errores
    • sudo journalctl -u rc.local -f
      • -- Journal begins at Fri 2024-09-06 00:06:17 CEST. -- 
  • Limpieza de procesos por si se queda zombie
    • sudo killall direwolf rtl_fm
EL COMANDO (probado y funciona OK)

rtl_fm -f 433.780M -s 24000 -g 25 | direwolf -c /home/pi-star/igate_upv.conf -r 24000 -n 1 -D 1 -t 0 -a 10 -  
  • Corrección de frecuencia en el comando -f 432.500M , probar con -f 433.775M 
    • rtl_fm -d 0 -f 433.775M -s 24000 -g 40 | direwolf -c /home/pi-star/igate_upv.conf -r 24000 -D 1 -a 10 - 
  • Correccion nivel en el comando de -g60 a -g25
    • rtl_fm -d 0 -f 432.248M -s 24000 -g 25 | direwolf -c /home/pi-star/igate_upv.conf -r 24000 -D 1 -a 10 -  

Parametros de rtl_fm

ParámetroFunciónPor qué es importante para ti
-fFrecuenciaEl centro de la sintonía. Como vimos, en el Mac pones 433.780M para compensar el error, pero en equipos precisos pondrías 432.500M.
-M fmModo de ModulaciónIndica que la señal es FM. Aunque el APRS son tonos, viajan "dentro" de una portadora FM (NFM).
-sSample Rate (SDR)Es el ancho de la "ventana" que el SDR mira. Con 24k miras una ventana estrecha; con 250k miras una muy ancha que perdona errores de sintonía.
-rResample (Salida)Es la velocidad del audio que sale hacia Direwolf. Debe coincidir con el -r de Direwolf (ej. 24000 o 48000).
-gGain (Ganancia)El volumen del "micro" del SDR. 25 es un buen medio. Si subes a 40-50 oyes señales lejanas pero saturas las cercanas.
-pPPM ErrorCorrección de error del cristal. En el Blog V4 es 0, en clones baratos puede ser 50 o más.
-FFiltro-F 9 activa un filtro de mayor calidad (baja latencia) que ayuda a que los tonos AFSK no se deformen.
-dDevice IndexSi tienes varios pinchos SDR, -d 0 elige el primero.
Parámetros de direwolf

ParámetroFunciónPor qué es vital para tu sonda
-cConfig FileIndica dónde está tu archivo de configuración (sonda.conf). Sin esto, Direwolf no sabe quién eres (NOCALL) ni a qué servidor conectarse.
-rSample RateEs la "velocidad" a la que espera recibir el audio. Debe coincidir con el -r (o -s) de rtl_fm (ej. 24000). Si no coinciden, el audio suena "acelerado" o "lento" y no decodifica.
-nCanales-n 1 le dice que solo use un canal de audio (mono), que es lo que saca el pincho SDR.
-DDebug/Detail-D 1 es el nivel de detalle. Te muestra qué está pasando "por dentro". Es lo que nos permitió ver el mensaje de éxito de la sonda.
-aAudio Stats-a 10 te muestra el nivel de audio cada 10 segundos. Fundamental para saber si el volumen del SDR es el correcto (recuerda: busca un nivel de 30-50).
-tText Colors-t 0 desactiva los colores de la terminal. Útil si la terminal del Mac o la Pi hace cosas raras con los caracteres.
-XFX.25 (Pro)-X 1 activa la detección de FX.25. Como la RS41-NFW usa este sistema de corrección de errores, este parámetro es tu "red de seguridad" si la señal llega débil.
-BBaud Rate-B 1200 fuerza la velocidad a 1200 baudios (estándar APRS).
-Stdin (El guion)El guion final le dice: "No abras el micrófono del Mac, escucha lo que te llega por la tubería de rtl_fm".
LOG (En azul el iGate en verde el tracker RS41)
  • Now connected to IGate server euro.aprs2.net (86.123.190.5)
  • Check server status here http://86.123.190.5:14501
  • [ig] # aprsc 2.1 # T2Romania - APRS Tier 2 Network
  • [ig] # logresp EA5JTT verified, server T2ROMANIA
  • [ig] EA5JTT-10>APDW18:!3928.91NM00020.67W#iGate macOS RS41 UPV EA5JTT
  • EA5JTT-11 audio level = 15(7/6)   [NONE]   _||||:___                            
  • [0.3] EA5JTT-11>APRNFW,WIDE2-1:!3928.92N/00019.87WO/A=000042/F93S23V2366C18I22T2 6H74P10209J0R4  NFWv65     Position, Original Balloon (think Ham b, APRStraffic N 39 28.9200, W 000 19.8700, alt 42 ft /F93S23V2366C18I22T26H74P10209J0R4  NFWv65   
Prueba de funcionamiento correcto vista por aprs.fi
en la que se observa el iGare (-10) y el tracker (-11)




RTTY

CampoSignificadoDescripción Técnica
PayloadIDID de la SondaIdentificador único del hardware (p. ej. EA5JTT).
CounterContadorNúmero secuencial del paquete. Útil para saber si has perdido tramas.
Time (H/M/S)Hora UTCLa hora exacta del GPS (no la de tu reloj).
Latitude / LongitudeCoordenadasPosición decimal (p. ej. 39.48 / -0.34).
AltitudeAltitudAltura en metros (medida por GPS o sensor RPM411).
SpeedVelocidadVelocidad de desplazamiento en nudos.
SatsSatélitesCuántos satélites está viendo el GPS (viste 24 en tu prueba).
TempTemperaturaTemperatura externa del "Silver Hook" (el gancho de plata).
BattVoltageVoltajeEstado de las pilas (0 = 0.5V, 255 = 2.0V).

Para RTTY, el programa es más "hablador". Utiliza la variable String rttyMsg. La longitud de la trama RTTY es mucho mayor (unos 60-80 caracteres) porque incluye:

  1. $$$$$ (Cabecera de sincronismo).

  2. Indicativo.

  3. Contador de tramas (rttyFrameCounter).

  4. Tiempo GPS (gpsHours, gpsMinutes, gpsSeconds).

  5. Latitud/Longitud con 4 o 5 decimales.

  6. Checksum (CRC16) al final para que el software dl-fldigi la valide.

Se ha comprobado que emite, pero no se ha conseguido decodificar con éxito con RTL-SDR & SDRANgel (RTTY). Se volverá a intentar teniendo en cuenta el desplazamiento de frecuencias observado en APRS

FOX

No se ha probado


HORUS V2 

No se ha probado, pues es necesaria una labor previa de buscar un software decodificador adecuado y en base a ello configurar el receptor


HORUS V3

No se ha probado, pues es necesaria una labor previa de buscar un software decodificador adecuado y en base a ello configurar el receptor



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.

ALE - Automatic Link Establishment

La señal de ALE (Automatic Link Establishment o Establecimiento Automático de Enlace) es una técnica utilizada en comunicaciones de radio en...