Sobre este blog

https://ea5jtt.blogspot.com/ es una versión mas estable y consolidada del blog https://sonotrigger-software.blogspot.com/ que desde hace años uso como "libreta de laboratorio" donde tomo nota de mis desarrollos, apunto referencias para recordar, etc. para mi uso personal, pero que tengo en abierto por si a alguien le sirve, por eso a veces encontrará entradas descontextualizadas, o que se han quedado a medias o con observaciones personales.

Espero que alguna cosa les resulte útil 

Monitorización de las estaciones WSPR

Existen muchas herramientas que permiten visualizar y consultar los datos almacenados en WSPRnet procedentes de las estaciones receptoras que configuran la red.

 

WSPR ROCKS

Esta web es específica de WSPR y en ella podemos entre otras cosas:


Leyenda: rank(clasificación), beacon(indicativo de la estación), locator (locator de la estación), watts (potencia declarada en WSPRen W), kpw (numero de raw/spots recibidos dividido por la potencia en W), #raw (numero de raws o spots recibidos por la red),# dupes, #unique (Numero de estaciones RX únicas que han recibido los spots), LF-MF-160m, ... (estaciones únicas recibidos en cada  bandas).

Mi mejor clasificación con EA5JTT en TOP BEacon nº 40 12.775 spots 911 estaciones
 






APRSINFO

En esta web se pueden visualizar las conexiones WSPR (TX, RX y TX/RX) en un intervalo de tiempo (1h, 12h, 24h,  una semana y dios semanas) en una banda o en todas

 

PSKREPORTER

Permite visualizar conexiones para una gran variedad de protocolos entre ellos WSPR


Ver también: PSKreporter

 
WSPRnet

Es una web donde se puede acceder de forma libre o con usuario








Tranquito

Ideal para hacer seguimiento de estaciones móviles WSPR (navíos, globos sondas y boyas marinas)

Seguimiento de DP0POL (Buque oceanográfico aleman)


wspr.live (Grafana)

Pensado para la descarga de ficheros para su posterior procesamiento o de forma visual mediante grafana
Caracterización de la estación EA5JTT durante la última hora



Cuadro de mando muy completo

Para EA5JTT en la mañana del 16-8-2025

 

Aunque es un portal para el seguimiento de estaciones APRS parece que se vuelcan de otros protocolos




Listados de ránking de los dos últimos meses



wspr hb9vqq


HB9VQQ busca crear una red mundial de estaciones WSPR TX/RX que permitan crear un modelo de propagación global


Permite comparar estaciones
EA5RKP (23 dBm + Crushcraft) vs EA5JTT (17 dB end Fed 6m)

Permite conocer la propagación entre dos estaciones
EA5RKP (23 dBm + Crushcraft) & EA5JTTSWL (End Fed 23m)


Referencias
Prohibida la reproducción parcial o total de este artículo sin permiso previo del autor  

RTTY beacon ( ESP32 + Si5351 )

 Antes que nada vamos a repasar los desarrollos de balizas realizados o en proyecto

  • CW   (A1A; On-Off Keying modulation OOK; un tono; asíncrono; todo punto y raya y silencio; el ancho de banda de una señal CW es de aproximadamente 4 Hz por WPM palabra por minuto).
  • RTTY (A2A/F1B; 2FSK dos tonos; asincrono;  separación 170 Hz)
  • Opera (F1B; 2FSK síncrono)
  • WSPR (F1B; 4FSK - F1D / F2D, síncrono ): cuatro tonos

RTTY

RTTY es radio-teletipo, una adaptación a la radiofrecuencia del teletipo TTY, al igual que se hizo previamente con la telegrafía Morse,  y todavía se usa en comunicaciones entre radioaficionados y para algunos servicios de radiocomunicación marina.


Podemos generar RTTY de tres formas:

  • AFSK: generar dos tonos en frecuencias de audio (MARK y SPACE)y con ello modular una señal de RF
  • FSK: 
    • generar una señal de RF  y variar su frecuencia según sea MARK o SPACE
    • Generar dos señales de RF y conmutar una u otra según corresponda SPACE o MARK 

Para los dos métodos de generar FSK se puede usar el PLL/reloj SI5351 que es el que vamos a usar


Hardware

Como en las balizas anteriores para HF usaremos:

Bandas y frecuencias de RTTY

  •  80m  3,570– 3,600 MHz
  •  40m  7,035– 7,043 MHz
  •  30m 10,130-10,140 MHz
  •  20m 14,070–14,095 MHz (Se prueba con esta banda)
  •  17m 18,100-18,105 MHz
  •  15m 21,070-21,110 MHz
  •  12m 24,920-24,925 MHz
  •  10m 28,070-28,150 MHz

Modos según la separación o shift
  • RTTY clásico = 170 Hz (Se opta por este modo)
  • RTTY estrecha (RTTY-N)= 85 Hz


Velocidades

A mayor velocidad, mayor ancho de banda ocupado

  • 45 y 45,45 baudios es el estándar para radioaficionados (Un baudio equivale a un bit por segundo) y ocupa unos 170 Hz de ancho de banda
  • 50 baudios se usa para RTTY estrecha / comerciales (servicios meteorológicos) y ocupa unos 170 Hz de ancho de banda
  • 75 baudios se usa para RTTY comercial/marítima. Es el antiguo estándar de teletipo en AM, y ocupa unos 170 Hz de ancho de banda
  • 100–110 baudios RTTY comercial rápido Uso en radiodifusión de datos y comunicaciones militares antiguas, unos 500 Hz de ancho de banda
  • 159, 200 y 300 baudios, unos 700 Hz de ancho de banda

Código

  • Baudot / ITA2 (5 bits) tiene distintas tablas de decodificación como en morse (inglesa, europea, americana, rusa, Murray)
Usaremos Baudot / ITA2 (5 bits) europea que es el mas usados entre los radioaficionados y el qu espera FLDIGI

En principio podriamos usar por eejmplo ASCII de 8 bits, pero nuestro receptor debe tnermo en cuenta.
Pruebas de emisión

Pruebas de recepción



  • ATsmini con el firmware de de Hjberndt  previa modificación del hardware (puente)

Ideas

Como RTTY es 2FSK se podrian usar dos salidas CLK y unir las señales previo a la antena 

Un tema que no es trivial es el uso de FSK o AFSK

Pruebas

Se ha conseguido emitir en la frecuencia deseada y generar la modulación de MARCA-Espacio, y decodificar sin problemas con FLDIGI

Primeras pruebas en el banco de trabajo

Recibiendo la señal con ATS.mini

Decodificando RTTY con FLDIGI


Fuentes

El programa para ESP32 y SI5351, probado está en :

Monitorización

Además de la monitorización en local con un SDR con un programa como SDRAngel o con un receptor como ATSmini con un programa como Fldigi, pueden usarse las webs globales de monitorización:

Ver también



Prohibida la reproducción parcial o total de este artículo sin permiso previo del autor

FT8 TX BEACON: arduino / ESP32

 

No es el protocolo ideal para usarlo como baliza de propagación por varias razones:

  • WSPR tiene un margen adicional de 5dB sobre FT8 
  • No dispone de la infraestructura de receptores y base de datos como WSPRnet limitándose al pskreporter para su monitorización.
  • No es puede codificar el hecho de que el TX sea una baliza al no admitir /B o el texto TEST en la llamada CQ

El proyecto de diseñar una baliza para FT8 presenta varias diferencias con respecto a WSPR:

  • WSPR es un protocolo unidireccional y FT8 es bidireccional. Este punto no es relevante pues solamente usaremos una llamada "CQ".
  • Como ya hemos avanzado los mensajes WSPR pueden ser decodificados con una relación S/N de 5dB peor que los mensajes de FT8 con un programa como WSJT-X.
  • Las redes que centralizan los mensajes recibidos son distintas WSPRnet para WSPR y pskreporter para FT8
  • Los mensajes de WSPR son de 162 símbolos que se transmiten dentro de un intervalo de 110,6" mientras que los de FT8  son 79 símbolos que se transmiten en apenas 12,74", a consecuencia de ello el ancho de banda de WSPR es de 6 Hz, mientras que el de FT8 es de  50 Hz (Requiere mas ancho de banda, a mayor velocidad de transmisión mayor ancho de banda)
  • WSPR usa la modulación de 4-FSK mientras que FT8 usa 8-FSK (mas tonos) 
  • WSPR requiere de una precisión en la frecuencia  +/- 1 Hz mientras que la de  FT8 es de +/- 1,5 Hz (mas tolerante)


Un mensaje con formato para ser monitorizado sigue el siguiente esquema

CQ <indicativo 6> <locator 4>


PRUEBAS

ESp32+SI5351

Una primera prueba se realizó aprovechando una ESP32 y una Si5351. Una vez depurado el programa al ejecutarse se observó que no generaba una transmisión correcta, por lo que no era decodificable.

El posible motivo es que Si5351 no es capaz de responder a la velocidad que le exige la transmisión en FT8 por ello se decidió probar con un DDS como AD9850.

También se pensó en prepara una nueva versión que usara los datos precodificados con el fin de aligerar el procesado por si ese era el problema pero se obtuvo el error:

E (19736) i2c.master: I2C hardware timeout detected
E (19740) i2c.master: s_i2c_synchronous_transaction(945): I2C transaction failed
E (19747) i2c.master: i2c_master_receive(1268): I2C transaction failed

que sugiere que los cambios de frecuencia son demasiado rápidos.

Todo eran hipotesis que no se confirmaron pues con un nuevo código si consiguieron los resultados esperados.

ESP32 + AD9850  

Como consecuencia del fracaso de la primera prueba se decidió conseguir una placa de desarrollo DDS AD9850 0-70MHz 0-40MHz capaz de generar 2 ondas sinusoidales y 2 ondas cuadradas concretamente la "HC-SR08 DSS_AD9850" (Disponible en Aliexpress por unos 10 €)

Aprovechando el tiempo muerto se buscó una placa de reloj de precisión del tipo DS3231 AT24C32 IIC  dada la mayor exactitud demandada por FT8. Con este módulo ademas de disponer de una mayor precisión aunque haya fallos NTP y/o wi-fi  se le da mas autonomía al no necesitar ni GPS, ni NTP de forma continua (Disponible en Aliexpress por unos 2€).


AD9850 0-70MHz 0-40MHz



Conviene calibrarlo  con un programa de test y recibiendo la señal con un SDR

/ Programa de TEST
#include <Arduino.h>
#include "AD9850.h"
// Pines conectados al AD9850 (ajusta según tu módulo)
#define W_CLK 14
#define FQ_UD 25
#define DATA 26
#define RESET 13
// Crear instancia del DDS
AD9850 dds;
void setup() {
Serial.begin(115200);
Serial.println("Prueba mínima AD9850...");
// Inicializar DDS con pines
dds.begin(W_CLK, FQ_UD, DATA, RESET);
// Establecer frecuencia de prueba
double testFreq = 10000000.0; // 10 MHz
dds.setfreq(testFreq, 1); // 1 = activar salida
Serial.print("Frecuencia configurada: ");
Serial.print(testFreq);
Serial.println(" Hz");
}
void loop() {
// Nada más, la señal sigue generándose en SINE OUT
delay(1000);
}

Segun el modelo:

  • AD9850: Banda de frecuencias 0-40MHz; reloj de 125 MHz
  • AD9851: Banda de frecuencias 0-70MHz ;reloj 30 MHz

Dispone de 4 salidas

  • QOUT1 / QOUT2 Señales cuadratura (I/Q) TTL
  • ZOUT1/ ZOUT2 Señales diferenciales internas del DAC TTL

Especificaciones

PLACA DE DESARROLLO ESP32

Se usa la placa ESP32 LiLYgo LORA32 T3 V1.6.1 con pantalla OLED, si bien este proyecto no usa LORA32 y es opcional usar la pantalla OLED. En cualquier caso se necesita el pinout de la placa de desarrollo ESP32 usada


Conexiones LILYGO T3 - AD9850

AD9850 LILYGO T3 GPIO PIN   Comentario
W_CLK         14      14    señal de reloj de palabra
FQ_UD         25      25    actualización de frecuencia
DATA         19 19    datos serie
RESET        26      26    reset DDS
VCC         5V      VCC   alimentacion +5V del módulo
GND         GND     GND   alimentación -5V del modulo tierra común
OUT1                                             salida RF

Frecuencias FT8

160m:  1840000  Hz 
 80m:  3573000  Hz 
 40m:  7074000  Hz 
 30m: 10136000  Hz
 20m: 14074000  Hz 
 17m: 18100000  Hz
 15m: 21074000  Hz 
 12m: 24915000  Hz 
 10m: 28074000  Hz 
  6m: 50313000  Hz

COMPILACION

Descargar https://github.com/F4GOJ/AD9850 y desde Sketch de IDE Arduino incluir biblioteca ZIP

 

PRUEBAS

La configuración final fue ESP32+SI5351 con sinconización mediante NTP de Wi/Fi. El código estará disponible en GitHub:


Referencias

  • VK3PGO FT8 Player
  • https://github.com/pengowray/ft8play
  • https://github.com/kholia/ft8_encoder_web
  • Emulating a full FT8 band for 'real'
  • Easy-Digital-Beacons-v1

  • Prohibida la reproducción parcial o total de este artículo sin permiso previo del autor

    Sobre este blog

    https://ea5jtt.blogspot.com/  es una versión mas estable y consolidada del blog https://sonotrigger-software.blogspot.com/  que desde hace a...