
Ajuste seu rádio para 148.500 MHz, selecione o modo FM, USB ou CW e ajuste o squelch para 0 ou 1. Em seguida, estenda a antena do seu rádio em direção à porta HDMI do monitor e, parabéns—agora você pode transmitir em código Morse diretamente do seu monitor!
Autor: TA1EEI (Efe Işık)
Versão: 1.2
Licença: MIT (Código Aberto / Educacional e Experimental)
O Transmissor RF de Monitor VHF é uma ferramenta experimental baseada em navegador que converte um monitor de computador comum em um transmissor de código Morse VHF de curto alcance.
Notavelmente, este projeto opera sem qualquer hardware de rádio, transmissores RF, SDRs ou modems externos. Ao controlar a saída precisa de pixels na sua tela usando um mecanismo de renderização HTML5 Canvas otimizado, ele manipula a unidade interna de processamento de vídeo (GPU/Scaler) e as interfaces de transmissão (HDMI/DisplayPort) do display para irradiar sinais eletromagnéticos modulados diretamente através de emissões de canal lateral (TEMPEST).
Os pipelines de vídeo modernos não são puramente ópticos; são eletrônicos digitais de alta velocidade operando em altas frequências. Este projeto explora a Radiação Eletromagnética Não Intencional (EMI) para transmitir sinais RF legíveis.
Para exibir uma imagem estável, uma placa gráfica continuamente envia dados de vídeo para um monitor quadro a quadro, linha por linha. A frequência de clock base que governa este fluxo de pixels é conhecida como Frequência de Clock de Pixel ($f_{\text{pixel}}$).
O Clock de Pixel é calculado com base nas dimensões totais do quadro (incluindo a área de exibição ativa mais os intervalos de blanking horizontal e vertical) multiplicadas pela taxa de atualização da tela:
$$f_{\text{pixel}} = H_{\text{total}} \times V_{\text{total}} \times f_{\text{refresh}}$$
Onde:
Exemplo de Cálculo (1080p padrão @ 60Hz):
Quando a tela exibe um fundo preto simples ou estático, a corrente de sinal através do cabo de vídeo permanece relativamente uniforme.
No entanto, quando o aplicativo renderiza um padrão alternado de pixels $1 \times 1$ (alternando pixels pretos #000000 e brancos #FFFFFF lado a lado), cada ciclo de clock adjacente força o serializador da interface de exibição (TMDS ou FRL em HDMI; Main Link Lanes em DisplayPort) a alternar seu estado de voltagem rapidamente.
Esta alternância máxima de estado induz um campo eletromagnético forte na frequência exata do clock de pixel (148.500 MHz), transmitindo uma onda portadora RF para o espaço.
Para codificar dados legíveis nesta radiação eletromagnética:
#000000). As transições de clock caem para o ruído mínimo de base, colapsando a saída RF irradiada.Ao temporizar estas alternâncias de padrão para corresponder aos comprimentos padronizados de elementos de Código Morse (Pontos = 1 unidade, Traços = 3 unidades), um receptor de rádio próximo capta um tom CW/AM audível.
Diferentes resoluções de monitor e taxas de atualização produzem frequências fundamentais distintas. Abaixo estão as frequências alvo calculadas comumente geradas pelos timings de exibição:
Nota sobre Harmônicos: Além da frequência fundamental do clock de pixel, harmônicos secundários e terciários fortes também podem ser detectados em faixas mais altas ($2 \times f_{\text{pixel}}$, $3 \times f_{\text{pixel}}$).
navigator.language na inicialização e localiza a interface do usuário automaticamente em inglês, turco, francês, alemão, espanhol ou chinês.performance.now()) para prever dinamicamente a frequência de transmissão ativa.Para ouvir as transmissões usando um rádio portátil (por exemplo, Quansheng, Baofeng, Yaesu, Icom) ou um SDR (RTL-SDR, HackRF, Airspy):
148.500 MHz).Se você usar este projeto em sua pesquisa, trabalho acadêmico ou experimentos técnicos, por favor cite-o da seguinte forma:
@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}
}
| Resolução | Taxa de Atualização (Hz) | Timings Totais ($H_{\text{total}} \times V_{\text{total}}$) | Frequência Alvo Fundamental |
|---|
| 1920 x 1080 | 60 Hz | $2200 \times 1125$ | 148.500 MHz (Faixa VHF Amador 2m) |
| 1920 x 1080 | 144 Hz | $2200 \times 1125$ | 356.400 MHz (UHF Militar / Aviação) |
| 2560 x 1440 | 60 Hz | $2720 \times 1481$ | 241.500 MHz (VHF Alto) |
| 1280 x 720 | 60 Hz | $1650 \times 750$ | 74.250 MHz (VHF Baixo / Faixa 4m) |