
Réglez votre radio sur 148,500 MHz, sélectionnez le mode FM, USB ou CW, et réglez la squelch sur 0 ou 1. Ensuite, étendez l'antenne de votre radio vers le port HDMI du moniteur, et félicitations—vous pouvez désormais transmettre en code Morse directement depuis votre moniteur !
Auteur : TA1EEI (Efe Işık)
Version : 1.2
Licence : MIT (Open Source / Éducatif et Expérimental)
L'Émetteur RF de Moniteur VHF est un outil expérimental basé sur navigateur qui transforme un écran d'ordinateur ordinaire en émetteur Morse VHF à courte portée.
Fait remarquable, ce projet fonctionne sans aucun matériel radio, émetteur RF, SDR ou modem externe. En contrôlant la sortie précise des pixels sur votre écran à l'aide d'un moteur de rendu HTML5 Canvas optimisé, il manipule l'unité de traitement vidéo interne de l'écran (GPU/Scaler) et les interfaces de transmission (HDMI/DisplayPort) pour rayonner des signaux électromagnétiques modulés directement via des émissions par canaux auxiliaires (TEMPEST).
Les pipelines vidéo modernes ne sont pas purement optiques ; ce sont des électroniques numériques haute vitesse fonctionnant à hautes fréquences. Ce projet exploite les Rayonnements Électromagnétiques Non Intentionnels (EMI) pour diffuser des signaux RF lisibles.
Pour afficher une image stable, une carte graphique pousse en continu des données vidéo vers un moniteur image par image, ligne par ligne. La fréquence d'horloge de base régissant ce flux de pixels est connue sous le nom de Fréquence d'Horloge de Pixels ($f_{\text{pixel}}$).
L'Horloge de Pixels est calculée sur la base des dimensions totales de l'image (y compris la zone d'affichage active plus les intervalles de suppression horizontale et verticale) multipliées par la fréquence de rafraîchissement de l'écran :
$$f_{\text{pixel}} = H_{\text{total}} \times V_{\text{total}} \times f_{\text{refresh}}$$
Où :
Exemple de Calcul (1080p Standard @ 60Hz) :
Lorsque l'écran affiche un fond noir uni ou statique, le courant du signal à travers le câble vidéo reste relativement uniforme.
Cependant, lorsque l'application rend un motif de pixels alterné de $1 \times 1$ (alternance de pixels noirs #000000 et blancs #FFFFFF côte à côte), chaque cycle d'horloge adjacent force le sérialiseur d'interface d'affichage (TMDS ou FRL en HDMI ; Main Link Lanes en DisplayPort) à basculer rapidement son état de tension.
Cette bascule d'état maximale induit un champ électromagnétique puissant à la fréquence exacte de l'horloge de pixels (148.500 MHz), diffusant une onde porteuse RF dans l'espace.
Pour encoder des données lisibles dans ce rayonnement électromagnétique :
#000000). Les transitions d'horloge chutent au bruit de fond minimal, effondrant la sortie RF rayonnée.En synchronisant ces bascules de motifs pour correspondre aux durées standardisées des éléments Morse (Points = 1 unité, Traits = 3 unités), un récepteur radio à proximité capte une tonalité CW/AM audible.
Différentes résolutions et fréquences de rafraîchissement de moniteur produisent des fréquences fondamentales distinctes. Voici les fréquences cibles calculées couramment générées par les synchronisations d'affichage :
Note sur les Harmoniques : En plus de la fréquence fondamentale de l'horloge de pixels, de fortes harmoniques secondaires et tertiaires peuvent également être détectées sur des bandes supérieures ($2 \times f_{\text{pixel}}$, $3 \times f_{\text{pixel}}$).
navigator.language au démarrage et localise automatiquement l'interface utilisateur en anglais, turc, français, allemand, espagnol ou chinois.performance.now()) pour prédire dynamiquement la fréquence de transmission active.Pour écouter les transmissions avec une radio portable (par ex., Quansheng, Baofeng, Yaesu, Icom) ou un SDR (RTL-SDR, HackRF, Airspy) :
148.500 MHz).Si vous utilisez ce projet dans vos recherches, travaux académiques ou expériences techniques, veuillez le citer comme suit :
@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}
}
| Résolution | Fréquence de Rafraîchissement (Hz) | Synchronisations Totales ($H_{\text{total}} \times V_{\text{total}}$) | Fréquence Cible Fondamentale |
|---|
| 1920 x 1080 | 60 Hz | $2200 \times 1125$ | 148.500 MHz (Bande VHF Amateur 2m) |
| 1920 x 1080 | 144 Hz | $2200 \times 1125$ | 356.400 MHz (UHF Militaire / Aviation) |
| 2560 x 1440 | 60 Hz | $2720 \times 1481$ | 241.500 MHz (VHF Haute) |
| 1280 x 720 | 60 Hz | $1650 \times 750$ | 74.250 MHz (VHF Basse / Bande 4m) |