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
- 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
- rojo
- naranja
- rojo intermitente 3 ó 4 veces
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.
| Valor (ms) | Velocidad (WPM) | Sensación |
| 40 | 30 | Muy rápido (Nivel experto) |
| 60 | 20 | Rápido pero legible |
| 80 | 15 | Velocidad ideal para pruebas |
| 100 | 12 | Lento y muy claro |
- La velocidad a 100, que representa unas 12 ppm
- La potencia a 6 unos 100 mW
| Campo | Longitud (aprox.) | Significado y Formato |
| Indicativo | 6-9 caracteres | Tu MYCALL (ej: EA5JTT). |
| Altitud | 4-5 dígitos | lastGpsAlt Altitud en metros (sin unidad). Ej: 12500. |
| Temperatura | 2-3 caracteres | mainTemperatureValue Temperatura del sensor principal (con signo si es bajo cero). Ej: -45 o 22. |
| Voltaje | 2 dígitos | batVFactor Voltaje de batería multiplicado por 10 (para no enviar el punto decimal). Ej: 24 significa 2.4V. |
| Satélites | 2 dígitos | gpsSats Número de satélites en lock. Ej: 09 o 24. |
- 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
- 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
- Ejecutar en donde este direwolf.conf m que en En macOS en el terminal direwolf -c direwolf.conf
Mediante consola
sudo modprobe -r dvb_usb_rtl28xxu- 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 consudo nano /etc/rc.localañadirantes de "exit 0"sleep 10/home/pi-star/run_aprs.sh &Quitar automatización en caso de que no arranqueEditar /etc/rc.local consudo nano /etc/rc.localcomentar 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á
- [Unit]
- Description=iGate APRS EA5JTT (Direwolf)
- After=network.target
- [Service]
- Type=simple
- User=pi-star
- WorkingDirectory=/home/pi-star/
- # Usamos /bin/bash -c para que la tubería "|" funcione correctamente
- ExecStart=/bin/bash -c "/usr/bin/rtl_fm -f 433.780M -s 24000 -g 25 | /usr/local/bin/direwolf -c /home/pi-star/igate_upv.conf -r 24000 -n 1 -D 1 -t 0 -a 10 -"
- Restart=always
- RestartSec=10
- [Install]
- WantedBy=multi-user.target
- 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
- 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 -
| Acción | Comando |
| Pasar a Modo Sondas | sudo systemctl start autorx |
| Pasar a Modo iGate APRS | sudo systemctl start aprs-igate |
| Ver qué hace la Pi ahora | sudo systemctl status autorx (o aprs-igate) |
| Ver el mapa de sondas | Entra en |
| Parámetro | Función | Por qué es importante para ti |
-f | Frecuencia | El 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 fm | Modo de Modulación | Indica que la señal es FM. Aunque el APRS son tonos, viajan "dentro" de una portadora FM (NFM). |
-s | Sample 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. |
-r | Resample (Salida) | Es la velocidad del audio que sale hacia Direwolf. Debe coincidir con el -r de Direwolf (ej. 24000 o 48000). |
-g | Gain (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. |
-p | PPM Error | Corrección de error del cristal. En el Blog V4 es 0, en clones baratos puede ser 50 o más. |
-F | Filtro | -F 9 activa un filtro de mayor calidad (baja latencia) que ayuda a que los tonos AFSK no se deformen. |
-d | Device Index | Si tienes varios pinchos SDR, -d 0 elige el primero. |
| Parámetro | Función | Por qué es vital para tu sonda |
-c | Config File | Indica dónde está tu archivo de configuración (sonda.conf). Sin esto, Direwolf no sabe quién eres (NOCALL) ni a qué servidor conectarse. |
-r | Sample Rate | Es 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. |
-n | Canales | -n 1 le dice que solo use un canal de audio (mono), que es lo que saca el pincho SDR. |
-D | Debug/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. |
-a | Audio 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). |
-t | Text Colors | -t 0 desactiva los colores de la terminal. Útil si la terminal del Mac o la Pi hace cosas raras con los caracteres. |
-X | FX.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. |
-B | Baud 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". |
- 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) |
| Campo | Significado | Descripción Técnica |
| PayloadID | ID de la Sonda | Identificador único del hardware (p. ej. EA5JTT). |
| Counter | Contador | Número secuencial del paquete. Útil para saber si has perdido tramas. |
| Time (H/M/S) | Hora UTC | La hora exacta del GPS (no la de tu reloj). |
| Latitude / Longitude | Coordenadas | Posición decimal (p. ej. 39.48 / -0.34). |
| Altitude | Altitud | Altura en metros (medida por GPS o sensor RPM411). |
| Speed | Velocidad | Velocidad de desplazamiento en nudos. |
| Sats | Satélites | Cuántos satélites está viendo el GPS (viste 24 en tu prueba). |
| Temp | Temperatura | Temperatura externa del "Silver Hook" (el gancho de plata). |
| BattVoltage | Voltaje | Estado 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:
$$$$$(Cabecera de sincronismo).Indicativo.
Contador de tramas (
rttyFrameCounter).Tiempo GPS (
gpsHours,gpsMinutes,gpsSeconds).Latitud/Longitud con 4 o 5 decimales.
Checksum (CRC16) al final para que el software dl-fldigi la valide.
FOX
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