
Sintoniza tu radio a 148.500 MHz, selecciona el modo FM, USB o CW, y ajusta el squelch a 0 o 1. Luego, extiende la antena de tu radio hacia el puerto HDMI del monitor y, ¡felicidades—ya puedes transmitir en código Morse directamente desde tu monitor!
Autor: TA1EEI (Efe Işık)
Versión: 1.2
Licencia: MIT (Código Abierto / Educativo y Experimental)
El Transmisor RF de Monitor VHF es una herramienta experimental basada en navegador que convierte una pantalla de computadora común en un transmisor de código Morse VHF de corto alcance.
Notablemente, este proyecto opera sin ningún hardware de radio, transmisores RF, SDR o módems externos. Al controlar la salida precisa de píxeles en su pantalla mediante un motor de renderizado HTML5 Canvas optimizado, manipula la unidad interna de procesamiento de video (GPU/Scaler) y las interfaces de transmisión (HDMI/DisplayPort) de la pantalla para radiar señales electromagnéticas moduladas directamente a través de emisiones de canal lateral (TEMPEST).
Los pipelines de video modernos no son puramente ópticos; son electrónica digital de alta velocidad que opera a altas frecuencias. Este proyecto explota la Radiación Electromagnética No Intencional (EMI) para transmitir señales RF legibles.
Para mostrar una imagen estable, una tarjeta gráfica empuja continuamente datos de video a un monitor cuadro por cuadro, línea por línea. La frecuencia de reloj base que gobierna este flujo de píxeles se conoce como la Frecuencia de Reloj de Píxeles ($f_{\text{pixel}}$).
El Reloj de Píxeles se calcula basándose en las dimensiones totales del cuadro (incluyendo el área de visualización activa más los intervalos de blanking horizontal y vertical) multiplicadas por la frecuencia de actualización de la pantalla:
$$f_{\text{pixel}} = H_{\text{total}} \times V_{\text{total}} \times f_{\text{refresh}}$$
Donde:
Ejemplo de Cálculo (1080p estándar @ 60Hz):
Cuando la pantalla muestra un fondo negro o estático, la corriente de señal a través del cable de video permanece relativamente uniforme.
Sin embargo, cuando la aplicación renderiza un patrón alternante de píxeles de $1 \times 1$ (alternando píxeles negros #000000 y blancos #FFFFFF lado a lado), cada ciclo de reloj adyacente obliga al serializador de la interfaz de pantalla (TMDS o FRL en HDMI; Main Link Lanes en DisplayPort) a alternar su estado de voltaje rápidamente.
Esta alternancia máxima de estado induce un campo electromagnético fuerte en la frecuencia exacta del reloj de píxeles (148.500 MHz), transmitiendo una onda portadora RF al espacio.
Para codificar datos legibles en esta radiación electromagnética:
#000000). Las transiciones de reloj caen al ruido base mínimo, colapsando la salida RF radiada.Al temporizar estas alternancias de patrón para que coincidan con las longitudes estandarizadas de elementos de Código Morse (Puntos = 1 unidad, Rayas = 3 unidades), un receptor de radio cercano capta un tono CW/AM audible.
Diferentes resoluciones de monitor y frecuencias de actualización producen frecuencias fundamentales distintas. A continuación se muestran las frecuencias objetivo calculadas que se generan comúnmente con las temporizaciones de pantalla:
Nota sobre Armónicos: Además de la frecuencia fundamental del reloj de píxeles, también se pueden detectar armónicos secundarios y terciarios fuertes en bandas superiores ($2 \times f_{\text{pixel}}$, $3 \times f_{\text{pixel}}$).
navigator.language al iniciar y localiza la interfaz automáticamente en inglés, turco, francés, alemán, español o chino.performance.now()) para predecir dinámicamente la frecuencia de transmisión activa.Para escuchar las transmisiones con una radio portátil (por ejemplo, Quansheng, Baofeng, Yaesu, Icom) o un SDR (RTL-SDR, HackRF, Airspy):
148.500 MHz).Si utiliza este proyecto en su investigación, trabajo académico o experimentos técnicos, por favor cítelo de la siguiente manera:
@software{isik2026vhf,
author = {Isik, Efe},
title = {VHF Monitor RF Transmitter: Browser-Based TEMPEST / EMI Side-Channel Morse Generator},
year = {2026},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{[https://github.com/TA1EEI/vhf-morse-transmitter-monitor](https://github.com/TA1EEI/vhf-morse-transmitter-monitor)}},
license = {MIT}
}
| Resolución | Frecuencia de Actualización (Hz) | Temporizaciones Totales ($H_{\text{total}} \times V_{\text{total}}$) | Frecuencia Objetivo Fundamental |
|---|
| 1920 x 1080 | 60 Hz | $2200 \times 1125$ | 148.500 MHz (Banda VHF de Aficionados 2m) |
| 1920 x 1080 | 144 Hz | $2200 \times 1125$ | 356.400 MHz (UHF Militar / Aviación) |
| 2560 x 1440 | 60 Hz | $2720 \times 1481$ | 241.500 MHz (VHF Alta) |
| 1280 x 720 | 60 Hz | $1650 \times 750$ | 74.250 MHz (VHF Baja / Banda 4m) |