WSPR TX beacon ( ESP32 + Si5351 ): versión NTP

Una tarjeta ESP32 con GPS integrado como Lilygo T-Beam GPS cuesta casi el doble que una sin ella como Lilygp LoRa32 V2.1_1.6 de LiLygo, y la cuarta parte si una tarjeta ESP32 con WiFi pero sin Lora, por eso es interesante explorar la posibilidad de configurar un WSPR TX basado en NTP a través de WiFi/internet.

El programa WSPR TX beacon ( ESP32 + Si5351 ) versión GPS/GNSS , cuay documentación debe leer en cualquier caso antes de seguir, pues se dan por sabidas muchas de las cosas que allí se exponen se modificará para:

  • Obtener el tiempo mediante NTP en lugar de con GPS/GNNS
  • Introducir la localización por programa en lugar de obtenerla a partir del GPS
Es necesario hacer un prueba de carga con el fin de determinar la cantidad de mensajes que se pierden por error de sincronismo. Con todo esto nos dará una viabilidad teórica de un WSPR TX NTP pero esto no nos asegura que para una determinada localización funcione, es pues mas dependiente de la localización, algo que con GPS no lo era.

¡ ATENCION !

PARA HACER FUNCIONAR  ESTE PROGRAMA DEBE CONTAR CON UNA LICENCIA DE RADIOAFICIONADO Y AJUSTARSE A LA NORMATIVA ESPECÍFICA DE SU PAIS


Desarrollo WSPR TX NTP para Lilygo T3 V1.6.1





Localizaremos los pines para conectar a la Si5351
  • SCL: pin 22
  • SDA: pin 21
  • GND: pin GND 
  • VIN: pin 3.3V
Que en el código aparecerá como

  • // OLED I2C pins
  • #define OLED_RST NOT_A_PIN
  • #define OLED_SDA 21
  • #define OLED_SCL 22
  • Adafruit_SSD1306 display(OLED_RST);

Usaremos la salida CLK0 (En caso de cambiarla por la CLK1 o CLK2 hay que hacerlo en 5 puntos del programa
  • si5351.drive_strength(SI5351_CLK0, SI5351_DRIVE_8MA);
  • si5351.output_enable(SI5351_CLK0, 0);
  • si5351.output_enable(SI5351_CLK0, 1);
  • si5351.set_freq(tx_freq, SI5351_CLK0);
  • si5351.output_enable(SI5351_CLK0, 0);
Montaje de pruebas de un WSPR TX NTP con una placa de desarrollo Lilygo LoRa 868 MHz (Este valor  no tiene ninguna importancia) T3 V.1.6.1 + Si5351 


Abrir la salida serie con la velocidad definida por programa
  • Serial.begin(115200);
Recuerde que debe calibrar cada placa si5351 que use para que la
frecuecnia real de TX esté en la banda
Band (m) Freq Tx INI-FIN (MHz) 160 1.838 000 – 1.838 200 80 3.594 000 – 3.594 200 40 7.040 000 – 7.040 200 30 10.140 100 – 10.140 300 20 14.097 000 – 14.097 200 17 18.106 000 – 18.106 200 15 21.096 000 – 21.926 200 12 24.926 000 – 24.926 200 10 28.126 000 – 28.126 200 6 50.294 400 – 50.294 600

Compilar y transferir

Comprobaciones


Salida serie correcta

[WSPR Beacon] Inicializando... Conectando a Wi-Fi.... ✅ Wi-Fi conectado. ⏱ Sincronizado con NTP: 16:30:58 [Si5351] Inicializado correctamente. [Timer] Configurado e iniciado. ✅ OLED inicializada, mostrando mensaje... [TX] Frecuencia seleccionada: 14095400 [ENCODE] Codificando mensaje: EA5JTT IM99 7 dBm [TX] Iniciando transmisión WSPR... [TX] Símbolo 0 → Frecuencia: 1409540146 [TX] Símbolo 1 → Frecuencia: 1409540146
...
[TX] Símbolo 160 → Frecuencia: 1409540292 [TX] Símbolo 161 → Frecuencia: 1409540292 [TX] Transmisión finalizada.

Salida serie con errores
  • ERROR] No se detectó el Si5351. => comprobar los pines y las conexioens
Monitorización correcta con SDR




Monitorización a traves de WSPRnet

F4GSM recibe a EA5KJTT en la banda de 14 MHz con SNR=-25



Repositorio completo y probado en: 


Desarrollo WSPR TX NTP para la placa ESP32 WROOM 32D DEV KIT V1 30PINS

La placa de desarrollo ESP WROOM 32D DEV KIT V1 es una placa muy popular (p.e. se incluye en el ESP32 Basic Starter Kit  ) y barata (Se puede obtener por menos de 5€ en Aliexpress)

COmo en cualquier desarrollo tenemos que conocer el mapa de pines para poder adaptar nuestro programa 



En este caso para economizar no instalamos pantalla OLED aunque se puede hacer (Ver: ESP32 Basic Starter Kit for dummys:  Proyecto - 12 ESP32_OLED_Display)

Parametros Arduino IDE:
  • Placa ESP32-WROOM-DA
  • conexión: /dev/cu.usbserial-0001
Pines conexión de la placa de reloj Si5351
  • SCL: pin 22
  • SDA: pin 21
  • GND: pin GND 
  • VIN: pin 3.3V
Errores

i2c.master: I2C hardware NACK detected
i2c.master: I2C transaction unexpected nack detected
i2c.master: s_i2c_synchronous_transaction(945): I2C transaction failed
i2c.master: i2c_master_multi_buffer_transmit(1214): I2C transaction failed

Por algún motivo (deben coincidir las direcciones de OLED y Si5351) las definiciones de la pantalla OLED y los comandos display le molestan por lo que como para esta placa de desarrollo ESP32 no son necesarias, se elimina.

Repositorios completos y probados en :


NTP vs GPS


Con la misma antena, y las mismas placas ESP32 y si5351,la versión con GPS obtiene 8 veces mas spots que NTP.

La primera hipótesis es que NTP no es lo suficientemente preciso. Una posible solución es dotar al sistema con un reloj de precisión como puede ser DS3231 AT24C32 que además posibilitaría que pudiera trabajar sin Wi-Fi.

Pero las hipótesis hay que confirmarlas o refutarlas, así que haremos una prueba


Ver también:

 

No hay comentarios:

Publicar un comentario

INDICE DE TEMAS DEL BLOG 2023 - 2024 - 2025

  ¿Qué son los blogs SONOTRIGER-SOFTWARE y EA5JTT? Dispositivos Activos Amplificadores de RX (De bajo ruido - LNA) (Pocos o ninguno valen la...