Todos los mensajes o spots recibidos por la red WSPR son almacenados en una Base de Datos llamada WSPRnet, que es pública, por lo que se puede:
- Descargar parejas de registros (A y B) en las que el que en el registro A el indicativo que aparece como TX es RX en el registro B y viceversa (2-way) y que además tengan una diferencia de tiempo menor a 5', lo que supone un "WSPR QSO" (En el protocolo WSPR cada mensaje dura 2' por lo que lo mínimo intervalo para poder tener un TX y un RX entre dos estaciones en simplex serían 4', damos un minuto más de margen de sincronismo y parece razonable estos 300"=5' o incluso si se quiere se puede ampliar a 600"=10'; LoTW admite diferencias de hasta 30' para hacer un match de QSL). No es necesario que se hayan producido en la misma banda pues es radioafición es comun comunicarse usando bandas distintas paa cada sentido de la comunicación.
- Crear un fichero formato .adi
- Firmar el fichero .adi y subirlo (upload) a la web LOTW (Previamente ha debido darse de alta en LOTW).
1 - Descargar los registros emparejados en un intervalo menor a 5' lo que supone un "QSO"
En la web https://wspr.rocks/ se
hace la consulta SQL para extraer los registros emparejados o match con
un formato lo más parecido posible al esperado por la hoja excel de
conversión a formato .adi de forma que nos evitemos manipulaciones
Esta es mi última versión
- SELECT
tx.id AS id_A, replace(toString(tx.frequency/1000000), '.', ',') AS
f_A_MHz, 'WSPR' AS Mode, formatDateTime(tx.time, '%d/%m/%Y') AS date_A,
replace(formatDateTime(tx.time, '%R'), ':', '') AS time_A, tx.tx_sign
AS TX_A, tx.power AS power_A_dBm, tx.rx_sign AS RX_A, tx.snr AS
SNR_A_dB, rx.id AS id_B,
formatDateTime(rx.time, '%d/%m/%Y') AS date_B, replace(formatDateTime(rx.time, '%R'), ':', '') AS time_B,
replace(toString(rx.frequency/1000000), '.', ',') AS f_B_MHz, rx.tx_sign AS TX_B , rx.power AS power_B_dBm,
rx.rx_sign AS RX_B, rx.snr AS SNR_B_dB FROM wspr.rx tx INNER JOIN wspr.rx rx ON tx.tx_sign = rx.rx_sign AND tx.rx_sign = rx.tx_sign AND abs(toUnixTimestamp(tx.time) - toUnixTimestamp(rx.time)) <= 300
WHERE tx.time BETWEEN '2025-07-10' AND '2025-07-10 23:59:59' AND rx.time BETWEEN '2025-07-10' AND '2025-07-10 23:59:59' AND tx.tx_sign ='EA5JTT' ORDER BY tx.time ASC;
En
este caso concreto la QUERY obtiene parejas de registros TX/RX que se
han producido en menos de 300" entre la estación EA5JTT y otra estación
entre el día 7-7-2025 y el 10-7-2025
![]() |
Parte de la respuesta en la que aparecen los datos del registro A |
![]() |
Parte de la respuesta en la que aparecen los datos del registro B |
El resultado lo copiamos y lo pegamos directamente en una hoja de Excel o de OpenOffice Calc
2 - Crear un fichero formato .adi
Descargar desde https://wb8nut.com/resources/ la hoja de cálculo llamada "Manual_ADI_entry.xls"
Abra la hoja de cálculo y:
- En la hoja LOG pegar las columnas desde nuestra hoja de calculo. Hay que cambiar el formato de las celdas de tiempo para que admitan 4 ceros principales
- En la hoja ADIF aparecerán convertidos automáticamente los registros al formato que espera LOTW (si no aparecen copie una fila y copiela las veces que haga falta)
- Salvar el libro como excel con otro nombre
- Salvar la hoja ADIF como CSV con, como separador y ' como separador de texto y la extensión .adi
![]() |
Formato ADIF (.adi) de LoTW, como se observa es un formato de etiquetas en UFT-8 (fichero plano o de texto) |
3 - Firmar el fichero y subirlo a LOTW (Previamente ha debido darse de alta en LOTW)
- Desde el programa TSQL firmar un libro y subirlo automaticmente a LoTW (se usa firma electrónica que podria servir para firmar por ejemplo eQSL en PDF, esto lo he logrado en Windows pero no en MAc y ARRL no me han sabido contestar pues han dicho que ese no es su fin).
- Comprobar en LOTW que ha subido sin errores
si
todo ha ido bien si consulta por un indicativo de los que ha obtenido
en la QUERY de SQL de WSPRnet debera ver toda la información que ha
pasado a LoTW, en este caso probamos con G4LEN
Y ahora suerte de que los corresponsales hagan lo propio y queden confirmados los QSO's con una QSL, para lo cual deben cumplirse los siguientes criterios:
- Deben coincidir
- Indicativo
- Modo
- Banda (Esto obliga a duplicar los registros para las dos bandas de no ser la misma en A y en B)
- Hora con una cierta tolerancia de 30'
![]() |
Observe como queda LoTW cuando se usa una banda o bandas cruzadas en el QSO WSPR |
El formato ADIF (.adi) es directamente importable a la web https://www.eqsl.cc/, generando un email con los resultados de la importación.
![]() |
Log de eQSL |
Referencias
No hay comentarios:
Publicar un comentario