Morse Station

Send and receive Morse code via audio tone or light flashes. Vigenère encryption optional, key shared across all modes.

Shared encryption key

no key
📡 Send
📥 Receive
🔊 audio
💡 light

Message

Speed

12

Tone

700 Hz
70%

Uses rear torch on Android Chrome. iOS / desktop fall back to full-screen white flash. The receiver pairs with the 💡 light tab.

Transmit

audio
ready
 
🔊 audio
💡 light

Listen

audio
idle

Bandpass filter

700 Hz
20 ±17 Hz
0.015

Aim the rear camera at the transmitting light source. The brightness threshold auto-adapts to whatever you're pointing at — no manual tuning needed.

Decoded

 

Received (raw / encrypted)

Decrypted output

How this works

Vigenère cipher: each letter shifts by the corresponding key letter's position (A=0..Z=25). "HELLO" + key "KEY" → "RIJVS". Both sender and receiver need the same key.
Audio: sender plays a tone at a chosen frequency. Receiver bandpasses around that frequency, then thresholds the filtered RMS. Frequencies up to 30 kHz supported (ultrasonic — inaudible but speakers and mics on most phones still work to ~16 kHz).
Light: sender blinks the rear torch (Android Chrome) or screen-flashes (iOS/desktop). Receiver samples camera brightness and adapts the threshold to the scene.
Decoder: shortest pulse defines the dot reference. Letter/word gaps adapt to observed silences. Handles Farnsworth timing.