Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
vhf-morse-transmitter-monitor — Set your radio to 148.500 MHz, select FM, USB, or CW mode, and set the squelch to 0 or 1. Then, extend your radio's antenna toward the monitor's HDMI port, and congratulations—you can now transmit in Morse code directly from your monitor! | Kitploit
Tools/GitHubGitHub/ta1eei/vhf-morse-transmitter-monitor
Wireless SecurityHardware & IoT SecurityLearning & Education
GitHubta1eei/vhf-morse-transmitter-monitor

vhf-morse-transmitter-monitor

Set your radio to 148.500 MHz, select FM, USB, or CW mode, and set the squelch to 0 or 1. Then, extend your radio's antenna toward the monitor's HDMI port, and congratulations—you can now transmit in Morse code directly from your monitor!

View Repository
284116h 27m agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
Website

📡 VHF Monitor RF Transmitter (TEMPEST / EMI Side-Channel Morse Generator)

ORCID License: MIT Featured on Hackaday Featured on RTL-SDR

Author: TA1EEI (Efe Işık)
Version: 1.2
License: MIT (Open Source / Educational & Experimental)


📰 Featured In & Media Coverage

  • [Hackaday] - Get Your Monitor Transmitting VHF With A Browser Tool
  • [RTL-SDR.com] - An HTML Browser Page That Uses Display Pixel Clock EMI Leakage to Transmit VHF Morse Code

📌 Project Overview

The VHF Monitor RF Transmitter is a browser-based experimental tool that converts an ordinary computer display into a short-range VHF Morse code transmitter.

Remarkably, this project operates without any radio hardware, RF transmitters, SDRs, or external modems. By controlling the precise pixel output on your screen using an optimized HTML5 Canvas render engine, it manipulates the display's internal video processing unit (GPU/Scaler) and transmission interfaces (HDMI/DisplayPort) to radiate modulated electromagnetic signals directly through side-channel emissions (TEMPEST).


🔬 Deep Dive: The Physics & Engineering Behind Display EMI

Modern video pipelines are not purely optical; they are high-speed digital electronics operating at high frequencies. This project exploits Unintentional Electromagnetic Radiation (EMI) to broadcast readable RF signals.

1. The Video Pixel Clock ($f_{\text{pixel}}$)

To display a stable image, a graphics card continuously pushes video data to a monitor frame-by-frame, line-by-line. The base clock frequency governing this pixel stream is known as the Pixel Clock Frequency ($f_{\text{pixel}}$).

The Pixel Clock is calculated based on total frame dimensions (including active display area plus horizontal and vertical blanking intervals) multiplied by the screen refresh rate:

$$f_{\text{pixel}} = H_{\text{total}} \times V_{\text{total}} \times f_{\text{refresh}}$$

Where:

  • $H_{\text{total}} = H_{\text{active}} + H_{\text{blanking}}$ (Horizontal total pixels)
  • $V_{\text{total}} = V_{\text{active}} + V_{\text{blanking}}$ (Vertical total lines)
  • $f_{\text{refresh}}$ = Screen refresh rate in Hz

Example Calculation (Standard 1080p @ 60Hz):

  • Active Resolution: $1920 \times 1080$
  • CEA-861 Timing Standard: $H_{\text{total}} = 2200$, $V_{\text{total}} = 1125$
  • Refresh Rate: $60\text{ Hz}$ $$f_{\text{pixel}} = 2200 \times 1125 \times 60 = 148,500,000\text{ Hz} = 148.500\text{ MHz}$$

2. High-Frequency Pattern Modulation

When the screen displays a plain black or static background, the signal current across the video cable remains relatively uniform.

However, when the application renders an alternating $1 \times 1$ pixel pattern (alternating black #000000 and white #FFFFFF pixels side by side), every adjacent clock cycle forces the display interface serializer (TMDS or FRL in HDMI; Main Link Lanes in DisplayPort) to toggle its voltage state rapidly.

This maximum state toggling induces a strong electromagnetic field at the exact pixel clock frequency (148.500 MHz), broadcasting an RF carrier wave into space.

3. CW (Continuous Wave) / AM Morse Modulation

To encode readable data into this electromagnetic radiation:

  • Carrier ON (Mark): The application renders a high-contrast alternating pixel pattern across the entire screen canvas. The video line serializer fluctuates at maximum capacity, emitting strong RF interference.
  • Carrier OFF (Space): The canvas switches instantly to solid black (#000000). Clock transitions drop to minimal baseline noise, collapsing the radiated RF output.

By timing these pattern toggles to match standardized Morse Code element lengths (Dots = 1 unit, Dashes = 3 units), a nearby radio receiver picks up an audible CW/AM tone.


🧮 How Target Frequencies are Calculated

Different monitor resolutions and refresh rates produce distinct fundamental frequencies. Below are calculated target frequencies commonly generated by display timings:

Note on Harmonics: In addition to the fundamental pixel clock frequency, strong secondary and tertiary harmonics can also be detected across higher bands ($2 \times f_{\text{pixel}}$, $3 \times f_{\text{pixel}}$).


🚀 Key Features in Version 1.2

  • 🌐 Automatic Multilingual Detection: Reads navigator.language on startup and localizes the UI automatically into English, Turkish, French, German, Spanish, or Chinese.
  • ⚡ Live Frequency Calculation Engine: Probes resolution and refresh rate via high-resolution timers (performance.now()) to dynamically predict the active transmission frequency.
  • 🛡️ Interactive Safety & Consent Overlay: Features an interactive startup modal providing photosensitive epilepsy warnings and receiver setup steps.
  • 🖥️ Dynamic Fullscreen Optimization: Auto-requests fullscreen mode on transmission start to maximize screen surface area and boost emitted RF power.
  • ⏱️ Precision Timing Sliders: Fine-tune dot durations (50 ms – 300 ms) to adjust Words Per Minute (WPM) speed.

⚙️ Receiver Setup & Hardware Instructions

To listen to transmissions using a handheld radio (e.g., Quansheng, Baofeng, Yaesu, Icom) or an SDR (RTL-SDR, HackRF, Airspy):

  1. Calculate Target Frequency: Open the app; it will display your detected target frequency (e.g., 148.500 MHz).
  2. Set Receiver Frequency: Tune your radio/SDR precisely to that frequency.
  3. Select Radio Mode: Switch modulation mode to AM, USB, CW, or FM.
  4. Disable Squelch: Set Squelch to 0 (unmuted, open static noise).
  5. Set Bandwidth: Choose WIDE receiver filter bandwidth.
  6. Antenna Placement: Hold your receiver antenna directly behind your monitor, as close as possible to the HDMI or DisplayPort connector.

⚠️ Safety & Legal Disclaimer

  • Epilepsy Warning: This application renders high-contrast, high-frequency visual flashing. DO NOT USE if you or anyone nearby suffers from photosensitive epilepsy or light sensitivity.
  • Compliance & Use: This software is released strictly for educational research, Ham Radio experimentation, and TEMPEST side-channel demonstrations. Users assume all legal and operational responsibility for compliance with local RF regulation standards.

📖 Citation

If you use this project in your research, academic work, or technical experiments, please cite it as follows:

root@kitploit:~
@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}
}
Download Tool
ResolutionRefresh Rate (Hz)Total Timings ($H_{\text{total}} \times V_{\text{total}}$)Fundamental Target Frequency
1920 x 108060 Hz$2200 \times 1125$148.500 MHz (VHF Amateur 2m Band)
1920 x 1080144 Hz$2200 \times 1125$356.400 MHz (UHF Military / Aviation)
2560 x 144060 Hz$2720 \times 1481$241.500 MHz (VHF High)
1280 x 72060 Hz$1650 \times 750$74.250 MHz (VHF Low / 4m Band)