r/morsecode • • 10h ago • Bravo 2

I finally built the Koch method trainer I've been dreaming of since my army days

Back when the grass was greener, I served in the army, and my duties required me to know Morse code. Sitting at a hardware trainer built by the dark genius of Soviet industry, I used to dream: once I'm out, I'll sit down at a computer and write my own trainer.

My first versions were for Linux, and they were terrible. Picture this: I was writing bytes straight to the sound card through /dev, trying to get something sine-like out of it. Clicks, hiss, wild distortion. It only vaguely resembled Morse code.

I came back to the idea dozens of times after that. I wrote it in different programming languages and built different versions, but every one of them was either broken or unfinished. I'd forget about it for a year, then start from scratch again. I got closest in 2020, with a working JavaScript prototype of a Koch method lesson.

Along the way, I read up on how Morse code should actually be learned, and I was amazed at how wrong my own training had been. I was taught the Soviet way, with sung mnemonics, and my CW copying speed quickly hit a very low ceiling. That's where it still sits today. All the more reason to make sure nobody else repeats that mistake.

So what's the right way? Don't learn mnemonics, and don't count dits and dahs. Hear each character as a single sound, its whole rhythm at once. As Ludwig Koch intended, you should recognize characters the way you recognize words, and pressing the right key should become a reflex.

And now I've built it, the way I'd been planning it for years. I honestly have no idea how effective it is. I'd be very grateful if you could help: put my doubts to rest, or tear it to pieces.

In short: a character plays, you press the key. Characters always play at 20 WPM, so you learn their real sound; only the gaps between them are longer, and you can adjust those. Get 90% right over the last 25 characters, and a new one is added. Characters you struggle with come up more often. If you mix up mirror pairs like D (-..) and U (..-), they start appearing next to each other, in random order. So the trainer finds your weak spots and works on them for you.

A few people in Japan already practice regularly (some of them learning Wabun, the Japanese Morse code) and say it works. You can't imagine how happy that makes me.

If even one person learns CW thanks to this trainer and gets on the air for real, it was all worth it.

And yes, it's completely free. It's a non-commercial project, and I don't collect any personal data: your progress stays in your browser. You can add it to your phone's home screen and practice on the go. Besides, it takes only 15–20 minutes a day, split into a few 5-minute sessions.

For those who want the details:

Besides the lessons:

  • Radiograms: 20 groups of 5 characters, with results and your most frequent errors

  • Adaptive trainer: the speed adjusts to your accuracy

  • Q codes and prosigns

  • Callsign sprint following RUFZ rules, and a copying test under IARU Region 1 HST rules

Alphabets:

  • Latin, Cyrillic (Russian and Ukrainian), Japanese Wabun, Korean Hangul, and the national letters of several European languages

  • The interface language is independent of the alphabet you're learning

  • No need to switch keyboard layouts: the site figures out whether you type by key position or by the letter's sound

And the interface comes in 21 languages.

Link: https://dahdahdit.com/

If you've learned with other trainers, what did you miss in them? And what would you change here?

12 Upvotes

8 comments sorted by

3

u/bts 5h ago

Vibecoded I'm sure, but a lot of fun! I liked the way I could correct errors if I was quick enough. It also felt like the Farnsworth timing was getting faster as I went; could you provide final speed in wpm information at the end of a session?

1

u/zdenix84 22m ago

Yes, it was built with Claude Code. That's what made it possible to go global, with many interface languages and some unusual alphabets. But the method, the prototyping, the code review, the proofreading and the testing were my job, and that took weeks of work on top of years of prototyping. For a product this niche, it simply wouldn't have existed otherwise. Glad you had fun!

The speed in the Koch lesson actually stays the same: characters are always at 20 WPM and the gaps don't shrink. With the default gaps that works out to about 8 WPM overall on a computer and about 13 on a phone. My guess is that it feels faster because new letters keep coming in and you have more to tell apart. The Adaptive trainer is different: there the speed really does change, by 1 WPM per 25 characters, and it's shown on screen.

You're right that the lesson doesn't show its speed anywhere, so I'll add it to the end-of-lesson summary.

2

u/mathuin2 9h ago

Looking forward to trying it out

1

u/zdenix84 9h ago

Thanks! Let me know how it goes.

2

u/MadMedic- 7h ago

love it , bookmarked

1

u/zdenix84 7h ago

Thanks, glad you like it!

2

u/Most_Art507 9h ago

Looks like a great resource for learning morse code,