The CW Commuter

I’ve written before about trying to use CW while commuting. I was looking into a bunch of different ways of achieving commute CW operating via the Internet.

And going back to 2016, I started thinking about how to send/receive CW via a lossy datagram-based internet connection.  Lossy, because us hams can do error correction and deal with QSB already with our operating practices.   And it is more like real radio if it is a bit unreliable.

The protocol

So back in 2016, I wrote down an on-the-wire protocol for this — called bitoip.  Each end would send and receive packets of carrier-on and carrier-off events to communicate the CW with real timing (and therefore hand-key “fist” dynamics) — without needing to run up a pile of audio channels and all of that.   I assume it this ought to be low-bandwidth and reasonably reliable but not too reliable.

Protocol details in the GitHub repo at See for those details.


Okay, so how about the equipment needed for this?  There are two components:

  1. A station – that turns keyed morse into packets, and receives packets and turns them into a tone in headphones or can drive a separate oscillator.
  2. A reflector – that creates a number of channels that stations can connect to.  This really just broadcasts to connected stations what it hears coming in.  Plus other enhancements if needed later.

So now let’s look at equipment options:


My minimal station would be a tiny box that can wifi to my phone hotspot and has a key and a headphone jack.  Optionally a volume control and channel selector.   That’s a minimal option.  That’s a Pi Zero W with a couple of parts to add a headphone output.  Other ways would be — a PC or Mac (Linux, Windows, OS/X) with a serial interface for key and using the built-in audio.

I’ve built basic Go code for a one-channel station client that will compile for most platforms. This includes the serial and Pi GPIO I/O for key interface (in/out) and PWM audio.   That’s in the repo. See

I’ll tidy up the hardware and publish that soon.


I’ve built a basic one-channel-only reflector in Go that works nice on a Pi, on OS/X or Linux.   That is also in the repo at

There’s a basic single-channel reflector server running on

Initial Testing

CWC Pi and serial development

Over this Easter break, I’ve writing Go code and have been doing some tests of the basic station and reflector.  It works.  I suspect some more work on time sync is needed but for now, it seems to capture, transmit, receive and reconstruct morse okay.

More on Github

I’m going to keep working on this. Feel free to join and collaborate over on GitHub at or leave a comment here.

A Daily CW QSO: My 2019 challenge

I want to get more comfortable with CW QSOs. I can do a 599 contest or special event QSO without thinking but I bumble around, feel the nerves and basically suck at sending nice clean Morse in a more conversational QSO.

I need more learning and more practice and it feels like that learning needs to be social.

So I’m setting myself a goal.. I want to make at least one real CW QSO per day in 2019. The more rag-chewy the better. So here are my rules:

  1. Speed doesn’t matter. Good sending does matter.
  2. Focus on the art of a good conversation, warmth and connection.
  3. If I miss a day then make it up in the following couple of days. This allows for days away from radios completely etc.
  4. Contests like CQWW or CWOps CWTs count as one QSO the only.
  5. The point is to enquire and learn about myself and improve my CW. No slavish adherence to rules is needed.

Other CW learning

I also need to do sending practice. I’m still thinking too hard about straight key and paddle sending. And I’m still enjoy doing an ARRL Morse practice mp3 file at 25 or 30wpm every couple of days for receiving practice.

Pi + Mumble + iCW

I commute to and from London 4 days a week.  There’s an hour on the train each way.  I can only do so much CW training. What I need is something that connects to the phone to allow an easy CW QSO or two.  iCW is close, but doing that with a computer and all the gubbins is a bit too much to set up.  So I was thinking about this:

What sort of small black box can I make that will wifi to my phone hotspot, have a plug for key and headphones and micro USB for power (or have battery brick inside.)  It’d have just one big knob for channel selection and a couple of LEDs to indicate connection status.  

What would that be?  First thought is a Raspberry Pi Zero W with the headless Mumble client by Daniel Chote: and a bit of work to interface a key and add a hacky headphone output.

So, that’s the basic idea.  I’ll see where experiments take me.   

Attachment to words and letters

This is my next update on my morse learning experience.  I had a bit of a break over Christmas while away from my commute morse code learning.  Coming back, I’m please to have not gone backwards over the break.

So while doing the walking part of my commute I’m listening to 20/25wpm morse of random english words at minimum possible volume without headphones, so the rest of the world’s noise is in there too.  My experience is something like this:

  • At 20/25wpm, I tend to ‘get’ a word or two then miss the next one — this seem to be because I grab that word and interrupt the stream of recognition while I think about the word
  • Increasingly frequently, I can ‘get’ several words in a row.  This has some detachment/stepping back about it — my certainty about individual words is slightly lessened, more the experience of the words appearing in my head.   More like ‘knowing’ than ‘thinking’. Feels good.
  • I can feel the building of a decision tree for english words in morse forming in my head somewhere. How a word starts off as something then flips to something else.

Not sure these reflections are useful for anybody else.  They seem to help me.  The focus going forward with this type of practice is to listen more lightly, allow the words to form themselves without forcing them and then rejoicing/checking.  A kind of gentle, platful enquiry.

Otherwise, have acquired a PC so I can get Morse Runner going. I’ve set that at 15wpm. It was initially bewildering, but now starting to get a few points from simulated contest QSOs. I think it is useful for callsign recognition and getting the feel for on-air contest contacts.

More progress, more understanding I guess.   Slow, enjoyable 

That head copy feeling

Some more steps forward in the CW learning in the last week:

And I did have a tears of joy moment when I realised that I just understood a couple of words without trying at all.  Wow.

And this makes all the difference.  Learning now seems easier.  I still can’t head-copy continuous words or transmissions though, still need to stop between words for long enough to make it hard to get the next word.   The struggle to learn seems to have reduced a lot.  It seems now that just listening to lots of CW will do it. 

I listened to a fair few CW QSOs last weekend and my pickup of what is going on has improved radically, and the learning of the structure of CW contacts with it.

I’ve upped the speed a bit. During my commute I’m listening to English words, callsigns, my CW QSO words list and also just numbers with 20/25wpm Farnsworth.  The gaps between words aren’t big enough for me yet.  Still, that feels like the right way to do it.

And breathing, clearing the mind and relaxation makes it so much easier.

What if feels like

I want to record how CW now feels different in my head and body before I forget.  I can now start to feel the beginnings of my own autonomic or involuntary recognition of bits of words.  First shift was that while concentrating on the first few letters of a word, I would start to find myself getting the ends of words when my focus was on the start.   So that was the beginning of the involuntary recognition — common suffixes seem to emerge sometimes.

This is all only sometimes.  Sometimes it is a bunch of noise and I need an anchoring letter to get started.  Like C or W, which seem to be that for me. Haha. 

And I’m now increasing careless – in not trying to remember everything and kind-of assembling words from part memory, part guess and often enough getting it right.

Basically, it feels very different.  CW head copy has shifted from a ‘maybe never’ to a ‘when’ in my approach.

My approach

I’m mostly listening on the walking part of my commute, without headphones, keeping the volume level as low as possible, so allowing the ambient traffic etc noise around me to play a part.  I guess I’m thinking I want to learn to copy with background (band) noise as well (read that somewhere). Something about a generally low audio level seems to makes copying easier.  Not sure why that is.  I guess I’m regularly doing 20-30 mins listening per week day spread over morning and evening.   For months I was doing a lot less, maybe 10 mins every second day. The increase is basically about it becoming more possible and fun.  Note I’m just listening, not writing stuff down at all except when in front of the radio at home.


I’ve hardly done any sending practice at all since my ZL2 days (> 30 years) so have started that, with a paddle, using my right hand rather than my left that I write with.  Much more to do there. It is easy to follow in the flow of some sending but when I first start I’m not sure which way to squeeze for dits and dahs.  More practice needed.  

Still need to make the first on air QSO after 30 years.   I’ve fully run out of excuses 🙂  Might have a go at the CQ WW CW on Sunday, but very slowly.

Tools and tips

I mostly practice with Morse Trainer/CW Trainer on my android phone.

I keep re-reading Zen and the Art of Radiotelegraphy which is a revelation and a masterpiece.

CW: Getting inside the symbols

In the last post I talked a bit about learning sequences of numbers.  I got up to 3 numbers fairly reliably, then I went back to the weaker letters and numbers and tried that.   I’m still doing this during my commute, and mostly in the walking parts, so I’m not writing anything down and I’m doing one group at a time.

I noticed two things:

  1. I can feel my tendency to (unnecessarily) delay recognising a letter or number until a bit late.   Like I need to hear the whole thing and then think what it is.   That means the next letter is already happening and I’m still thinking about the last one.  Or even delay until the end of the word.
  2. There’s a joyful ‘yay’ in my mind when I recognise something. This then distracts me and makes me lose the next symbol.

From this I’m thinking that I need to fully climb into each symbol and try and recognise them before they are finished.  More like feeling the letter or number and then quietly moving on rather than delaying and getting caught up with it.

As a result of this, I’ve gone on to working with enough symbols at a time that I can’t stop and think, or delay to the end,  so I’m trying individual groups of 5 and concentrating on properly climbing into each symbol and not getting stuck in them, in the congratulations about recognising something, or delaying it all until there’s a gap.  Some of this is mindfulness (being still enough, back to the Zen and the art of Telegraphy focus on getting into a mindful state) and some is trust and perseverance.   

So, I’m going to keep working with 5 symbol groups for a while, still at 18 wpm, and see how good I can get.All in all, I’m loving the learning at the moment. Long may that continue.

Notes on CW learning

I do most of my CW training while working to and from work on my morning  commute.  So, I’m not writing stuff down at all, just listening to the Morse Trainer app on my phone.    Here are a few reflective notes on what I’m up to and what I’m learning about myself while doing CW training like this.

As I wrote here I’ve been training with a list of common QSO words.  Seem to have them pretty much down at 18 wpm.   18 wpm seems to be the max that the Morse Trainer app can handle, so I fix it there with no extra symbol spacing.   I can imagine there is going to be a bit of trouble getting me beyond 18 wpm.. But that would be a great problem to have 🙂

So, after the random QSO words list, I’ve gone back to training random letter and number groups, starting at 2 symbols together and planning on going up to 3, 4 and then 5.   So I’ve started with ‘AB’ or ‘C5’ or whatever the randomiser throws up.  This is going ok, except I can feel slowness/weakness with some numbers (2,3, 7 and 8) and letters like G, W, F, Q, Y.

This morning, I thought I’d have a go at the numbers. Started with random 2 digit numbers at 18wpm. I feel pretty ok with them, especially after a little practice.  Feels like about 90% correct on those so have stepped up to 3 digits now, intending to go up to 4 and 5 digit numbers and keep on those until basically perfect.   And after that I need to go back to the harder letters, or maybe even all-letter or letter-number groups up to 5 long at 18 wpm.

It feels like the key thing in here is noticing when my recognition is weak, so that takes awareness and that gentle kindness and experimentation to see what I can do.    I’m looking forward to real CW QSOs and want to be able to QSO before around the end of September.

My CW QSO training word list

I’ve been using Morse Trainer for Ham Radio on Android to speed up and re-learn morse up to decent QSO speed.  I really like this app, it has most of what I need.

One of the modes is own text mode where you can add plain text (which will be sent as CW as is) or comma-separated list mode.  In comma-separated-list mode, the words are randomly played back.  I’ve been using this with a set of words commonly used in QSOs.