De VHF Monitor RF-transmitter is een browser-gebaseerde applicatie die een computerscherm transformeert in een kortbereik VHF-morsetransmitter. Het project is uniek omdat het geen traditionele radiohardware gebruikt, maar gebruikmaakt van TEMPEST (side-channel emissies).
Technische werking
De tool manipuleert de videopijplijn (GPU en HDMI/DisplayPort) door specifieke pixelpatronen te renderen via een HTML5 Canvas. Door afwisselend zwarte en witte pixels te tonen, wordt de serializer van de display-interface gedwongen razendsnel te schakelen. Dit induceert een elektromagnetisch veld op de pixelklokfrequentie ($f_{pixel}$), wat fungeert als een RF-draaggolf.
- Modulatie: Een contrastrijk pixelpatroon creëert een 'Mark' (carrier ON), terwijl een effen zwart scherm een 'Space' (carrier OFF) genereert. Dit stelt de gebruiker in staat om morsecode te verzenden.
- Frequenties: De doelfrequentie is afhankelijk van de resolutie en verversingssnelheid; zo genereert een standaard 1080p-scherm bij 60Hz een frequentie van 148,5 MHz.
Functionaliteiten en Ontvangst
Versie 1.2 introduceert automatische taaldetectie, een live frequentieberekeningsengine en precisie-timing voor de snelheid van de morsecode (WPM). Om de signalen te ontvangen, kan een SDR of handheld radio worden gebruikt, mits deze nauwkeurig is afgestemd en de antenne zich dicht bij de monitorconnector bevindt.
Veiligheid en Juridisch
Vanwege de hoog-contrast flitsen bevat de tool een waarschuwing voor personen met foto-gevoelige epilepsie. Daarnaast wordt benadrukt dat de software uitsluitend bedoeld is voor educatieve en experimentele doeleinden.
VHF Monitor RF-transmitter (TEMPEST / EMI side-channel Morse-generator)
Projectoverzicht
De VHF Monitor RF-transmitter is een experimentele browser-gebaseerde tool die een gewoon computerscherm omzet in een VHF-morsetransmitter met een kort bereik.
Opmerkelijk is dat dit project werkt zonder enige radiohardware, RF-transmitters, SDR's of externe modems. Door de nauwkeurige pixeloutput op het scherm te beheren via een geoptimaliseerde HTML5 Canvas render-engine, manipuleert de tool de interne videoverwerkingseenheid (GPU/Scaler) en de transmissie-interfaces (HDMI/DisplayPort). Hierdoor worden gemoduleerde elektromagnetische signalen direct uitgezonden via side-channel emissies (TEMPEST).
Diepgaande analyse: De fysica en engineering achter display-EMI
Moderne videopijplijnen zijn niet puur optisch; het zijn digitale elektronica met hoge snelheden die op hoge frequenties werken. Dit project maakt gebruik van onbedoelde elektromagnetische straling (EMI) om leesbare RF-signalen uit te zenden.
1. De videopixelklok ($f_{pixel}$)
Om een stabiel beeld weer te geven, stuurt een videokaart continu videodata naar een monitor, frame voor frame en lijn voor lijn. De basisklokfrequentie die deze pixelstroom aanstuurt, staat bekend als de Pixel Clock Frequency ($f_{pixel}$).
De pixelklok wordt berekend op basis van de totale frame-afmetingen (inclusief het actieve weergavegebied plus de horizontale en verticale 'blanking intervals'), vermenigvuldigd met de verversingssnelheid van het scherm:
$$f{pixel} = (H{total}) \times (V{total}) \times f{refresh}$$
Hierbij geldt:
- $H{total} = H{active} + H_{blanking}$ (totaal aantal horizontale pixels)
- $V{total} = V{active} + V_{blanking}$ (totaal aantal verticale lijnen)
- $f_{refresh} = \text{verversingssnelheid van het scherm in Hz}$
Voorbeeldberekening (Standaard 1080p @ 60Hz):
- Actieve resolutie: $1920 \times 1080$
- CEA-861 Timing Standaard: $H{total} = 2200$, $V{total} = 1125$
- Verversingssnelheid: $60\text{ Hz}$
$$f_{pixel} = 2200 \times 1125 \times 60 = 148.500.000\text{ Hz} = \mathbf{148,500\text{ MHz}}$$
2. Hoogfrequente patroonmodulatie
Wanneer het scherm een effen zwarte of statische achtergrond weergeeft, blijft de signaalstroom via de videokabel relatief uniform.
Wanneer de applicatie echter een afwisselend $1 \times 1$ pixelpatroon rendert (afwisselend zwarte #000000 en witte #FFFFFF pixels naast elkaar), dwingt elke opeenvolgende klokcyclus de serializer van de display-interface (TMDS of FRL bij HDMI; Main Link Lanes bij DisplayPort) om razendsnel van voltagesituatie te wisselen.
Deze maximale schakeling induceert een sterk elektromagnetisch veld op exact de pixelklokfrequentie ($148,500\text{ MHz}$), waardoor er een RF-draaggolf in de ruimte wordt uitgezonden.
3. CW (Continuous Wave) / AM Morse-modulatie
Om leesbare data in deze elektromagnetische straling te coderen, wordt het volgende gedaan:
- Carrier ON (Mark): De applicatie rendert een contrastrijk, afwisselend pixelpatroon over het gehele canvas van het scherm. De video-lijn-serializer fluctueert op maximale capaciteit, wat sterke RF-interferentie veroorzaakt.
- Carrier OFF (Space): Het canvas schakelt onmiddellijk over naar effen zwart (#000000). De klokovergangen zakken naar een minimale basisruis, waardoor de uitgezonden RF-output wegvalt.
Door de timing van deze patroonwisselingen af te stemmen op de gestandaardiseerde lengtes van morsecode (punten = 1 eenheid, strepen = 3 eenheden), kan een nabijgelegen radio-ontvanger een hoorbare CW/AM-toon oppikken.
Hoe doelfrequenties worden berekend
Verschillende monitorresoluties en verversingssnelheden produceren verschillende fundamentele frequenties. Hieronder staan de berekende doelfrequenties die gewoonlijk worden gegenereerd door display-timings:
| Resolutie | Verversingssnelheid (Hz) | Totale Timings ($H{total} \times V{total}$) | Fundamentele doelfrequentie |
| 1920 x 1080 | 60 Hz | $2200 \times 1125$ | 148,500 MHz (VHF Amateur 2m Band) |
| 1920 x 1080 | 144 Hz | $2200 \times 1125$ | 356,400 MHz (UHF Military / Aviation) |
| 2560 x 1440 | 60 Hz | $2720 \times 1481$ | 241,500 MHz (VHF High) |
| 1280 x 720 | 60 Hz | $1650 \times 750$ | 74,250 MHz (VHF Low / 4m Band) |
Opmerking over harmonischen: Naast de fundamentele pixelklokfrequentie kunnen ook sterke secundaire en tertiaire harmonischen worden gedetecteerd in hogere banden ($2 \times f{pixel}$, $3 \times f{pixel}$).
Belangrijkste kenmerken in versie 1.2
- Automatische meertalige detectie: Leest bij opstarten
navigator.language en lokaliseert de gebruikersinterface automatisch in het Engels, Turks, Frans, Duits, Spaans of Chinees.
- Live frequentieberekeningsengine: Controleert de resolutie en verversingssnelheid via high-resolution timers (
performance.now()) om dynamisch de actieve transmissiefrequentie te voorspellen.
- Interactieve veiligheids- en toestemmingsoverlay: Bevat een interactief startvenster met waarschuwingen voor foto-gevoelige epilepsie en stappen voor de installatie van de ontvanger.
- Dynamische volledig-scherm optimalisatie: Vraagt automatisch de volledig-scherm modus aan bij het starten van de transmissie om het schermoppervlak te maximaliseren en de uitgezonden RF-vermogen te verhogen.
- Precisie-timing schuifregelaars: Maak de duur van de punten nauwkeurig af te stellen (50 ms – 300 ms) om de snelheid in woorden per minuut (WPM) aan te passen.
Installatie van de ontvanger en hardware-instructies
Om transmissies te beluisteren met een handheld radio (bijv. Baofeng, Yaesu, Icom) of een SDR (RTL-SDR, HackRF, Airspy):
- Bereken de doelfrequentie: Open de app; deze toont uw gedetecteerde doelfrequentie (bijv. 148,500 MHz).
- Stel de ontvangerfrequentie in: Stem uw radio/SDR nauwkeurig af op die frequentie.
- Selecteer de radiomodus: Zet de modulatiemodus op AM, USB, CW of FM.
- Schakel Squelch uit: Zet de Squelch op 0 (niet gedempt, open statische ruis).
- Stel de bandbreedte in: Kies voor een WIDE ontvanger filter-bandbreedte.
- Antenneplaatsing: Houd de antenne van uw ontvanger direct achter uw monitor, zo dicht mogelijk bij de HDMI- of DisplayPort-connector.
Veiligheids- en juridische disclaimer
Waarschuwing voor epilepsie: Deze applicatie rendert hoog-contrast, hoog-frequente visuele flitsen. NIET GEBRUIKEN als u of iemand in uw omgeving lijdt aan foto-gevoelige epilepsie of lichtgevoeligheid.
Naleving & Gebruik: Deze software is strikt uitgebracht voor educatief onderzoek, experimenten met Ham Radio en TEMPEST side-channel demonstraties. Gebruikers dragen alle juridische en operationele verantwoordelijkheid voor de naleving van lokale RF-regelgevingsnormen.
73 de TA1EEI
VHF Monitor RF-transmitter (TEMPEST / EMI side-channel Morse-generator)
Projectoverzicht
De VHF Monitor RF-transmitter is een experimentele browser-gebaseerde tool die een gewoon computerscherm omzet in een VHF-morsetransmitter met een kort bereik.
Opmerkelijk is dat dit project werkt zonder enige radiohardware, RF-transmitters, SDR's of externe modems. Door de nauwkeurige pixeloutput op het scherm te beheren via een geoptimaliseerde HTML5 Canvas render-engine, manipuleert de tool de interne videoverwerkingseenheid (GPU/Scaler) en de transmissie-interfaces (HDMI/DisplayPort). Hierdoor worden gemoduleerde elektromagnetische signalen direct uitgezonden via side-channel emissies (TEMPEST).
Diepgaande analyse: De fysica en engineering achter display-EMI
Moderne videopijplijnen zijn niet puur optisch; het zijn digitale elektronica met hoge snelheden die op hoge frequenties werken. Dit project maakt gebruik van onbedoelde elektromagnetische straling (EMI) om leesbare RF-signalen uit te zenden.
1. De videopixelklok ($f_{pixel}$)
Om een stabiel beeld weer te geven, stuurt een videokaart continu videodata naar een monitor, frame voor frame en lijn voor lijn. De basisklokfrequentie die deze pixelstroom aanstuurt, staat bekend als de Pixel Clock Frequency ($f_{pixel}$).
De pixelklok wordt berekend op basis van de totale frame-afmetingen (inclusief het actieve weergavegebied plus de horizontale en verticale 'blanking intervals'), vermenigvuldigd met de verversingssnelheid van het scherm:
$$f{pixel} = (H{total}) \times (V{total}) \times f{refresh}$$
Hierbij geldt:
- $H{total} = H{active} + H_{blanking}$ (totaal aantal horizontale pixels)
- $V{total} = V{active} + V_{blanking}$ (totaal aantal verticale lijnen)
- $f_{refresh} = \text{verversingssnelheid van het scherm in Hz}$
Voorbeeldberekening (Standaard 1080p @ 60Hz):
- Actieve resolutie: $1920 \times 1080$
- CEA-861 Timing Standaard: $H{total} = 2200$, $V{total} = 1125$
- Verversingssnelheid: $60\text{ Hz}$
$$f_{pixel} = 2200 \times 1125 \times 60 = 148.500.000\text{ Hz} = \mathbf{148,500\text{ MHz}}$$
2. Hoogfrequente patroonmodulatie
Wanneer het scherm een effen zwarte of statische achtergrond weergeeft, blijft de signaalstroom via de videokabel relatief uniform.
Wanneer de applicatie echter een afwisselend $1 \times 1$ pixelpatroon rendert (afwisselend zwarte #000000 en witte #FFFFFF pixels naast elkaar), dwingt elke opeenvolgende klokcyclus de serializer van de display-interface (TMDS of FRL bij HDMI; Main Link Lanes bij DisplayPort) om razendsnel van voltagesituatie te wisselen.
Deze maximale schakeling induceert een sterk elektromagnetisch veld op exact de pixelklokfrequentie ($148,500\text{ MHz}$), waardoor er een RF-draaggolf in de ruimte wordt uitgezonden.
3. CW (Continuous Wave) / AM Morse-modulatie
Om leesbare data in deze elektromagnetische straling te coderen, wordt het volgende gedaan:
- Carrier ON (Mark): De applicatie rendert een contrastrijk, afwisselend pixelpatroon over het gehele canvas van het scherm. De video-lijn-serializer fluctueert op maximale capaciteit, wat sterke RF-interferentie veroorzaakt.
- Carrier OFF (Space): Het canvas schakelt onmiddellijk over naar effen zwart (#000000). De klokovergangen zakken naar een minimale basisruis, waardoor de uitgezonden RF-output wegvalt.
Door de timing van deze patroonwisselingen af te stemmen op de gestandaardiseerde lengtes van morsecode (punten = 1 eenheid, strepen = 3 eenheden), kan een nabijgelegen radio-ontvanger een hoorbare CW/AM-toon oppikken.
Hoe doelfrequenties worden berekend
Verschillende monitorresoluties en verversingssnelheden produceren verschillende fundamentele frequenties. Hieronder staan de berekende doelfrequenties die gewoonlijk worden gegenereerd door display-timings:
| Resolutie | Verversingssnelheid (Hz) | Totale Timings ($H{total} \times V{total}$) | Fundamentele doelfrequentie |
| 1920 x 1080 | 60 Hz | $2200 \times 1125$ | 148,500 MHz (VHF Amateur 2m Band) |
| 1920 x 1080 | 144 Hz | $2200 \times 1125$ | 356,400 MHz (UHF Military / Aviation) |
| 2560 x 1440 | 60 Hz | $2720 \times 1481$ | 241,500 MHz (VHF High) |
| 1280 x 720 | 60 Hz | $1650 \times 750$ | 74,250 MHz (VHF Low / 4m Band) |
Opmerking over harmonischen: Naast de fundamentele pixelklokfrequentie kunnen ook sterke secundaire en tertiaire harmonischen worden gedetecteerd in hogere banden ($2 \times f{pixel}$, $3 \times f{pixel}$).
Belangrijkste kenmerken in versie 1.2
- Automatische meertalige detectie: Leest bij opstarten
navigator.language en lokaliseert de gebruikersinterface automatisch in het Engels, Turks, Frans, Duits, Spaans of Chinees.
- Live frequentieberekeningsengine: Controleert de resolutie en verversingssnelheid via high-resolution timers (
performance.now()) om dynamisch de actieve transmissiefrequentie te voorspellen.
- Interactieve veiligheids- en toestemmingsoverlay: Bevat een interactief startvenster met waarschuwingen voor foto-gevoelige epilepsie en stappen voor de installatie van de ontvanger.
- Dynamische volledig-scherm optimalisatie: Vraagt automatisch de volledig-scherm modus aan bij het starten van de transmissie om het schermoppervlak te maximaliseren en de uitgezonden RF-vermogen te verhogen.
- Precisie-timing schuifregelaars: Maak de duur van de punten nauwkeurig af te stellen (50 ms – 300 ms) om de snelheid in woorden per minuut (WPM) aan te passen.
Installatie van de ontvanger en hardware-instructies
Om transmissies te beluisteren met een handheld radio (bijv. Baofeng, Yaesu, Icom) of een SDR (RTL-SDR, HackRF, Airspy):
- Bereken de doelfrequentie: Open de app; deze toont uw gedetecteerde doelfrequentie (bijv. 148,500 MHz).
- Stel de ontvangerfrequentie in: Stem uw radio/SDR nauwkeurig af op die frequentie.
- Selecteer de radiomodus: Zet de modulatiemodus op AM, USB, CW of FM.
- Schakel Squelch uit: Zet de Squelch op 0 (niet gedempt, open statische ruis).
- Stel de bandbreedte in: Kies voor een WIDE ontvanger filter-bandbreedte.
- Antenneplaatsing: Houd de antenne van uw ontvanger direct achter uw monitor, zo dicht mogelijk bij de HDMI- of DisplayPort-connector.
Veiligheids- en juridische disclaimer
Waarschuwing voor epilepsie: Deze applicatie rendert hoog-contrast, hoog-frequente visuele flitsen. NIET GEBRUIKEN als u of iemand in uw omgeving lijdt aan foto-gevoelige epilepsie of lichtgevoeligheid.
Naleving & Gebruik: Deze software is strikt uitgebracht voor educatief onderzoek, experimenten met Ham Radio en TEMPEST side-channel demonstraties. Gebruikers dragen alle juridische en operationele verantwoordelijkheid voor de naleving van lokale RF-regelgevingsnormen.
73 de TA1EEI