This blog has been a little quiet of late, but that’s because I’ve been busy experimenting. I prefer to work on experiments in the background until they’re sufficiently developed and might actually be workable, before writing about them here. This project hasn’t really reached that criteria yet, but I think it’s worth sharing.

I had the first ideas for this in September 2020, while working on Parachute. It’s fair to say I put Parachute to one side while getting this started, and haven’t picked it up again properly yet. I used to work on Parachute mostly during my daily commute, and since the COVID-19 lockdown, no longer had this as a part of my day. My daily routine was completely restructured, and so Parachute opportunities changed.

I’d started developing an application at work using the Rust programming language, which I hadn’t used before. The benefits of Rust for determinism, low-level access to hardware, memory safety and concurrency are very strong indeed. Had I not been exposed to it, I would have started developing this in C++, as I had for Parachute. Using Rust for digimorse was definitely the right choice. I’d still be wrangling boost and CMake if I’d chosen C++, and wondering where low-level software development all went wrong. Rust is a game changer. I like golang as well: it could have been a contender, but Rust is far safer.

Digital communications techniques + Morse code = digimorse

So, what is this? From the project’s README.md:

Morse code was the first means by which messages were sent by Marconi, as he performed his experiments in the 1890’s. This was achieved using a crude spark gap transmitter. In 1913, Edwin Armstrong and Alexander Meissner used thermionic valves to build a continuous wave oscillator which refined the transmission mechanism. This form of transmission, known by the acronym CW, was widely used for military, maritime and commercial telegraphy, gradually being replaced by more modern systems of communication. Its last maritime use was in 1999.

It is still, however, used widely by amateur radio operators, such as myself. Although the electronic circuits used have been refined as far as they can be, the essential continuous wave transmission mechanism has remained unchanged.

This project is an attempt to modernise that.

I’m some way off a release, since only about a third of the architecture is present; there’s no graphical user interface – it’s not usable yet. However, I hope the basic idea might work.

More details of what I’m attempting follow after that paragraph in the README.md… please read on!

For more information, the github repository is at https://github.com/devzendo/digimorse and the documentation describing the system in more detail (as it exists so far) is The digimorse Communications Protocol. [PDF].

Would you like to collaborate?

If you’re interested in helping develop the ideas or the code behind this, please get in touch! As always, all comments are welcome – even if you think the idea won’t work: after forming a hypothesis, one should always seek to falsify it, so as to not waste effort trying to prove it.