#5386: Morse Code Between Two Phones: Does It Actually Work?

Two phones, no data, one room. Morse over sound and flashlight — what the research says about echoes, timing, and whether anyone will hear you.

Featuring
Listen
0:00
0:00
Episode Details
Episode ID
MWP-5569
Published
Duration
22:27
Audio
Direct link
Pipeline
V5.2
TTS Engine
chatterbox-regular
Script Writing Agent
DeepSeek v4 Pro

AI-Generated Content: This podcast is created using AI personas. Please verify any important information independently.

Morse code over sound is the most robust acoustic protocol anyone has ever built, and it's having a quiet moment as a practical fallback for two nearby phones with no data connection. The appeal is simple: it only needs a tone to be present or absent. No phase discrimination, no frequency hopping, no handshake.

The first practical surprise is which app to use. Crazy-Marvin's Morse on F-Droid is a fine text-to-Morse translator and tone generator, but it has no microphone decoding at all — it's a one-way street. For actual two-way work you want Gyokov Solutions' Morse Code Engineer, which decodes from mic and camera and transmits via flash, sound, screen, and vibration, or Georgi Gerganov's open-source ggmorse library, which auto-detects pitch between 200 and 1200 Hz and speed between 5 and 55 words per minute.

The second surprise is what actually breaks the link. Intuition says background noise. Research says multipath propagation — echoes off walls, floors, and tables smearing the on/off envelope until dots blur and gaps fill in. A TU Darmstadt study of over 11,000 smartphone transmissions found that even a quiet 53.6 dB office struggled, while an anechoic chamber at 27.65 dB was cleanest. The problem isn't that the room is loud. It's that the room has walls. Soft furnishings, close range, and no hard parallel surfaces help more than silence does.

Device choice matters too. The Darmstadt team used a Pixel 4a as transmitter at volume 19 of 25 — not maxed, because distortion smears the tone — and a Galaxy S20 Ultra as receiver for its low self-noise. Gyokov's app lets you set a pure sine tone, enable filtering, and apply up to 50 ms of timing correction, which at 20 wpm is nearly a full dot's worth of compensation.

Flashlight Morse trades acoustic noise immunity for line-of-sight requirements: unbeatable in a loud factory, useless through a wall, and hard on the battery. SOS Flashlight on F-Droid transmits all three channels at once. And for discretion, the practical skill is knowing that the loud speaker and main mic live on the bottom edge next to the charging port, the earpiece is the slit at the top of the screen, and secondary mics sit on the top edge — findable in about thirty seconds by cupping a hand over candidate holes.

Downloads

Episode Audio

Download the full episode as an MP3 file

Download MP3
Transcript (TXT)

Plain text transcript file

Transcript (PDF)

Formatted PDF with styling

#5386: Morse Code Between Two Phones: Does It Actually Work?

Corn
Daniel's been poking at the same scenario for a while now — two phones, no data, and you need to get a message across a room. We've looked at the experimental stuff, encrypted audio chirps, protocols that sound like a dial-up modem having a panic attack. He's back this week with something much older and, honestly, much more likely to actually work. He found a Morse code transmitter and decoder on F-Droid. It's slow, but it works. He wants to dig into Morse as a practical acoustic data channel between two nearby phones, with the flashlight as a secondary, occasional option. His setup is two devices close together — one with a Morse keyboard app, the other with a decoder app, though in practice one app does both. His questions are specific. How sensitive is decoding to audio interference or competing frequencies? What tips make the process actually work? If discretion matters, how do you guess where the speaker and microphone are on any two random phones? And roughly how loud does a transmission need to be before it stops being a quiet beep and starts being a thing everyone in the room notices? So let's start with what actually exists on F-Droid right now.
Herman
The app Daniel found is almost certainly Crazy-Marvin's Morse. It's on F-Droid, Apache licensed, version two point two, added back in October of twenty twenty-five. It translates text to Morse in real time, has a built-in Morse keyboard, and a button that plays the code as audio through the speaker. One hundred ninety-four GitHub stars, thirty-seven forks. It's a perfectly decent translator and tone generator. But here's the thing — it does not decode audio. There's no microphone listening feature in that app at all. It's a one-way street. You type, it beeps. It will not hear another phone beeping back.
Corn
So Daniel's assumption that one app does both is wrong for the specific app he found.
Herman
Right. The one-app-does-both tools are Gyokov Solutions' Morse Code Engineer, which decodes from the microphone and the camera and transmits via flash, sound, screen, and vibration, and Georgi Gerganov's open source ggmorse library, which decodes in real time from raw microphone audio. ggmorse auto-detects pitch between two hundred hertz and twelve hundred hertz, and speed between five and fifty-five words per minute. The author's own instruction is just put your phone next to the radio and the app should figure it out. That one's the reference decoder. If you're actually going to try this, you want Gyokov's app or ggmorse, not the Crazy-Marvin one.
Corn
That's a useful correction up front. Daniel found the pretty translator and thought it was the whole tool. The decoder is the hard part, and it lives in a different app.
Herman
And the decoder is where all the interesting physics lives. So how does the audio link actually work when you have a transmitter and a decoder?
Corn
The transmitter side is almost insultingly simple. You've got a sine tone, typically somewhere between six hundred and a thousand hertz. The app keys it on and off in Morse timing. Tone present, tone absent. That's the entire alphabet. The receiver's mic picks it up, and the decoder just has to answer one question: is the tone there right now or not? It's a thresholding problem. That's why Morse is the most robust acoustic protocol anyone's ever built — it doesn't need phase discrimination, it doesn't need frequency hopping, it just needs on and off.
Herman
The timing is where people get lost. Morse is strictly proportional. A dot is one unit. A dash is three units. The gap between elements inside a character is one unit. The gap between characters is three units. The gap between words is seven units. Speed is measured in words per minute using the PARIS standard — the word PARIS is used as the reference length. At twenty words per minute, one unit is sixty milliseconds, so a dash is one hundred eighty milliseconds. At five words per minute, one unit is two hundred forty milliseconds. That's why the app feels glacial. A short message at five or ten words per minute takes many seconds to send. You're sitting there listening to a phone go beep, pause, beep beep beep, pause, and the whole time you're thinking, I could have just walked over and said it.
Corn
And yet the slowness is the point. The decoder isn't trying to recover a high-density signal. It's just watching for a tone to cross a threshold, and the generous gaps give it room to make mistakes and recover. So how sensitive is the decoding to interference? Because that's Daniel's first real question, and I think the intuitive answer is wrong.
Herman
The intuitive answer is background noise. A loud room, a fan, traffic. And sure, that matters. But the strongest evidence we have says the dominant indoor failure mode is multipath propagation — echoes and reverberation. There's a paper from TU Darmstadt, published in ACM Transactions on Internet of Things earlier this year. They ran over eleven thousand smartphone transmissions, nearly twelve thousand recordings, across eight different acoustic schemes. Their conclusion was that many existing schemes face challenges in practical usage, largely due to severe multipath propagation indoors and varying audio characteristics across device models.
Corn
Multipath being the sound bouncing off walls, floors, ceilings, tables — arriving at the mic at slightly different times, smearing the on/off envelope. So the decoder sees the tone linger after it should have stopped, or sees a gap where there shouldn't be one.
Herman
A dot becomes a smear. A gap gets filled in by an echo. The decoder can't tell where the dash ended. And here's the kicker — the Darmstadt group measured their environments. Office background noise was fifty-three point six decibels SPL. Lecture room was sixty point zero one. Anechoic chamber was twenty-seven point six five. The quiet office wasn't loud, and the schemes still struggled. The anechoic chamber, which is acoustically dead, was the cleanest environment by far. So the problem isn't that the room is noisy. It's that the room has walls.
Corn
Which means the practical tip for making Morse work indoors is the opposite of what people assume. You don't need silence. You need to kill the echo. Soft furniture, curtains, carpet, close range, no hard parallel walls. A closet would probably be ideal. A bathroom with tile would be terrible.
Herman
And the devices matter more than people think. The Darmstadt researchers deliberately picked a Google Pixel 4a as the transmitter because it had relatively low distortion at a volume setting of nineteen out of twenty-five. That's a trade-off — they didn't max the volume, because at max volume the speaker and amplifier start to distort, and distortion smears the tone. They picked a Samsung Galaxy S20 Ultra as the receiver because it had low self-noise. Different phones have different frequency responses, especially near the ultrasonic range. Your transmitter might be perfectly clean at eight hundred hertz on one phone and a distorted mess on another.
Corn
So the core lesson from the research applies directly to Morse: test on the actual two devices, in the actual room. Not a simulation, not a different phone, not a different room. The whole field has a reproducibility problem, by the way. The Darmstadt group reviewed thirty-one acoustic communication papers. None of them provided accessible source code. Only three of thirty-one author teams could even supply working code when asked. That's a state-of-the-field aside that should make everyone a little nervous.
Herman
It should. And it means the practical advice for Morse specifically is more art than science. Use a pure sine tone at a single frequency. Gyokov's app lets you set the frequency and the distortion, where zero percent is a pure sine and a hundred percent is maximum distortion. Pure sine is easiest to decode. Turn on the filter checkbox if the app has one — Gyokov's does, and their docs say it can improve audio detection. Use auto speed detection. And if your decoder supports timing correction, Gyokov's goes from zero to fifty milliseconds, use it to compensate for device latency.
Corn
The timing correction is interesting. Fifty milliseconds doesn't sound like much, but at twenty words per minute, a dot is only sixty milliseconds. So a fifty millisecond correction is nearly a full dot's worth of compensation. That's the difference between a clean decode and garbage.
Herman
And ggmorse handles all of that automatically — pitch detection, speed detection, the whole thing. You put the phone next to the source and it just works, most of the time. The author was asked on Hacker News back in twenty twenty-one about adding visual Morse decoding, and his answer was that it sounded like a fun project and he'd give it a thought. As of that thread, it wasn't implemented. So the visual side is still a separate app.
Corn
Which brings us to the flashlight. Daniel mentioned light transmission as an occasional option. How does that compare?
Herman
Light is line-of-sight. It's completely immune to acoustic noise — you could be in a factory with machinery running and the light signal doesn't care. But the camera has to see the emitter, and anything blocking the path kills the signal. Gyokov's app handles this with a crop box, a red frame you position over the light source when it's small, plus camera exposure correction. There's an iOS app called Morse Code Decode and Chat that offers four speed presets from six to twenty-four words per minute and a two-way light chat. And there's SOS Flashlight on F-Droid, GPL licensed, that transmits via flashlight, vibration, and audio simultaneously.
Corn
The trade-off is clean. Audio works around corners, through obstructions, in the dark. Light works in loud rooms but needs a clear sightline and drains the battery through the LED. If you're in a noisy factory and you have line of sight, light wins. If you're in a quiet apartment with a wall between you, audio wins.
Herman
And if you want both, SOS Flashlight does all three channels at once. Flashlight, vibration, audio. Belt and suspenders and a second belt.
Corn
Now Daniel's discretion questions. Where are the speaker and mic on a random phone, and how loud is too loud?
Herman
The main loudspeaker, the media speaker, is on the bottom edge, next to the USB-C or charging port. That's the loudest one, and it's the one you aim at the other phone. The earpiece speaker is at the top of the screen, next to the front camera — quieter, designed for calls. The main microphone is on the bottom edge, immediately left or right of the charging port. Often the hole on the right when you're looking at the bottom of the phone. That's the one you point at the transmitter. Secondary mics are on the top edge for noise cancellation, and many phones have a rear mic near the camera array for video. Pixel phones have two speakers and three mics. iPhones since roughly the XS or eleven have four mics — bottom, front near the earpiece, back near the camera.
Corn
So the quick and dirty method for finding them on a random phone: play a tone and cup your hand over candidate holes until you hear which one muffles it. That's the speaker. For the mic, record a voice memo while covering each hole, and the one that goes quiet when covered is the active mic. It's the kind of thing you can do in thirty seconds with a phone you've never seen before.
Herman
And it works. The holes are small, they're easy to miss if you're not looking for them, but they're almost always in the same places. Bottom edge for the loud speaker and the main mic. Top edge for the noise cancellation mic. The earpiece is a slit at the top of the screen. If you remember those three locations, you can find the right hole on any phone.
Corn
Now the volume question. How loud before it's obvious? And I want to be careful here, because there's a temptation to invent a number.
Herman
No source gives a precise decibel threshold for inaudible to bystanders. Anyone who tells you a specific number is making it up. What we do have are anchors. The Darmstadt study's office ambient was fifty-three point six decibels SPL, and the lecture room was sixty. The researchers used a sub-maximum volume, nineteen out of twenty-five, to avoid distortion. So a tone that sits at or just above room ambient — roughly fifty-five to sixty-five decibels at the receiver, which is conversational to quiet-office level — is enough for a close mic while being masked by ordinary room sound. A quiet beep in a room that already has a fan running, a computer humming, people shuffling papers — it doesn't stand out.
Corn
But a long series of beeps at conversational volume in a silent room is going to get noticed. It's not the volume that gives you away, it's the pattern. A single beep is a notification. Twenty beeps in Morse rhythm is a person doing something weird.
Herman
And the discreet option is near-ultrasonic transmission, eighteen to twenty-two kilohertz. The Darmstadt paper catalogs those schemes extensively. Most adults can't hear them, and the ones who can are usually under twenty-five and will just think a phone is making an annoying whine. But here's the tension — no dedicated Morse-over-ultrasonic app exists. The ultrasonic schemes in the literature are research or commercial data modems, not Morse apps. Morse apps use audible tones. So the most discreet channel is the one Morse apps don't support, and the most robust channel, the audible tone, is the least discreet.
Corn
Which leaves light and vibration as the actual middle ground for covert use. A flashlight blinking Morse at low brightness in a dark room is much harder for bystanders to notice than a phone beeping. Vibration is silent, but it requires the phones to be in contact or very close. The discretion tension is real, and there's no clean answer. You pick your trade-off and live with it.
Herman
And if you're really worried about discretion, you lower the volume, shorten the range, and accept a slower speed. At five words per minute, a dot is two hundred forty milliseconds. That's a long, slow beep. You can make it very quiet and still decode it if the mic is close enough.
Corn
That's the audio side and the light side. Let's take stock. Daniel asked how sensitive decoding is to interference. The answer is that multipath, echoes and reverberation, is the dominant failure pattern indoors, not background noise. He asked for tips. Pure sine, single frequency, filter on, auto speed, timing correction, test on the actual devices in the actual room, kill the echo with soft furniture and close range. He asked where the speaker and mic are. Bottom edge for both the loud speaker and main mic, top edge for the noise cancellation mic, earpiece at the top of the screen. And he asked how loud is too loud. Roughly room ambient, fifty-five to sixty-five decibels at the receiver, but the pattern is what gives you away more than the volume.
Herman
There's one more thing I want to flag before we move on. The Darmstadt paper's finding that fancy high-throughput acoustic schemes fail indoors is an argument for the dumbest possible protocol. Morse is the worst data rate in the entire acoustic communication literature — five to sixteen bits per second for the slowest schemes — and yet it's the most robust, because it only needs tone on and off. The fancy schemes that try to pack more data into the same bandwidth are exactly the ones that fall apart when the room has walls. There's a lesson there about engineering humility.
Corn
The dumbest possible protocol is the one that survives contact with the real world. That's a nice thought. But it also means Morse is never going to be fast. You're not sending a photo over Morse. You're sending a sentence, maybe two, and you're taking thirty seconds to do it. It's a scalpel, not a firehose.
Herman
That's fine. The use case Daniel keeps coming back to is the emergency one — no data, no network, two phones in the same room. You don't need a firehose for that. You need to get three words across. Morse does that.

Hilbert: The human ear is better.
Corn
Say more.

Hilbert: You're talking about apps that decode Morse from a microphone. The reason Morse worked for a hundred years wasn't the simplicity of tone on and off. It was that a trained operator can pick a single tone out of a room full of noise better than any machine. The ear and the brain together are astonishingly good at it. The apps are solving a problem humans already solved. I worked a six-month contract in the late eighties as a night-shift radio operator for a regional courier company. They still used Morse to coordinate truck movements between depots. I sat in a windowless room with a Yaesu FT-seven-five-seven-GX transceiver and a straight key. Drivers would pull over at payphones and relay their position in Morse because the company was too cheap to install mobile radios in every cab. I could copy fifteen words a minute through static that would make one of your apps throw up its hands. The tone was buried, but my ear found it.
Herman
That's a fair point. The decoder is doing a thresholding job, and it's good at it, but it doesn't have the pattern recognition a trained operator has. A human hears the rhythm through the noise. An app sees a smear and gives up.

Hilbert: The company switched to voice radio eventually. Accident rate went up. Drivers stopped pulling over, started talking while driving. Morse forced them to stop the truck, get out, send the message, get back in. Voice let them multitask. Multitasking is how you put a truck in a ditch.
Corn
The slowness was a safety feature. That's a interesting angle. The protocol's inefficiency created a behavioral constraint that kept people alive.

Hilbert: I still have the key from that job. A J-thirty-eight with a worn bakelite knob. Haven't touched it since ninety-one. I could still send fifteen words a minute. The callsign was Kilo Delta Seven. I still hear it in my sleep.
Corn
Do you hear it in Morse?

Hilbert: I hear it in the rhythm of the windshield wipers on the bus. Dash dash dot, dash dot dot. Kilo Delta Seven. Every time it rains.
Herman
The brain doesn't let go of a rhythm like that. It's the same reason you can still sing a jingle from thirty years ago. Morse gets into the pattern-matching part of the brain and stays there.

Hilbert: The apps are fine for what they are. But if you want to know whether Morse works in a noisy room, ask a person who copied it for a living. It works better than any decoder you can download.
Corn
That's a useful correction to the whole framing. We've been talking about the apps as if they're the only way to do this. But the human operator is still the gold standard for extracting a tone from noise. The apps are convenient, but they're not the ceiling.

Hilbert: One thing I wanted to ask. If I had two phones and one of these apps, could I send a message from one room to another through a wall? The wall's drywall, not concrete.
Herman
Through a drywall wall, at close range, probably yes, if the volume is high enough. The wall will attenuate the high frequencies more than the low ones, so a lower tone, maybe six hundred hertz, would do better than a higher one. But multipath is still a problem — the sound will bounce around both rooms and smear the envelope. You'd want the phones close to the wall, on opposite sides, and you'd want the room as dead as possible.

Hilbert: Huh. Drywall. Good to know.
Corn
The mind races at what Hilbert's planning, and I'm choosing not to ask.
Herman
The other thing about a wall is that it blocks light completely. So if the audio fails, there's no fallback. You're committed to the acoustic path.

Hilbert: The wall's in my flat. It's not urgent.
Corn
I'm going to choose to believe that.
Herman
The open question at the end of all this. The Darmstadt paper found that fancy high-throughput acoustic schemes fail indoors. That's an argument for the dumbest possible protocol. But does that mean Morse is actually the future of close-proximity device communication, or just a curiosity? The reproducibility crisis in acoustic comms — thirty-one papers, zero with source code, only three of thirty-one authors could supply working code — suggests the field has a long way to go before any of this is standardized. And the hardware is improving. Phones are getting more microphones and better speakers. But the software ecosystem for Morse over audio remains fragmented and largely hobbyist. The discretion tension — ultrasonic is discreet but unsupported by Morse apps, audible is robust but obvious — isn't going to resolve soon.
Corn
The misconception I'd name is that background noise is the thing that kills acoustic transmission. It's not. It's the room itself. Echoes and reverberation smear the signal more than a fan or a conversation ever will. If you're setting up a Morse link between two phones, the first thing to fix is the acoustics, not the volume.
Herman
The fix is usually just getting closer and putting something soft between you and the hard surfaces. It's not complicated. It's just not obvious.
Corn
If you want to try this yourself, grab Gyokov's Morse Code Engineer or ggmorse from F-Droid, put two phones on a table, and see how slow five words per minute really is. And if you find a Morse-over-ultrasonic app, let us know — we couldn't find one.
Herman
Thanks to Hilbert Flumingtop for producing.
Corn
This has been My Weird Prompts. Email us at show at my weird prompts dot com. We'll be back soon.

This episode was generated with AI assistance. Hosts Herman and Corn are AI personalities.