Internet Relay Morse Code
Go to file
Gerolf Ziegenhain f028280963 cleanup 2015-01-04 15:29:26 +01:00
doc added description of the protocol 2015-01-04 13:22:32 +01:00
src cleanup 2015-01-04 15:29:26 +01:00
.gitignore merged from master 2015-01-04 14:44:17 +01:00
AUTHORS added dg6fl 2015-01-04 13:25:38 +01:00 merged from master 2015-01-04 14:43:28 +01:00

irmc - Internet Relay Morse Code

What is IRMC?

IRMC stands for Internet Relay Morse Code. It implements the CWCom protocol as adopted by MorseKOB. You can try out the software in a browser using Java.

Why morse code over IP?

Why not? A number of different approaches for CW over IP exist. An early implementation has been the CWCom protocol, which has been the basis for Morse KOB, a ready-to-use software. Both chat programs have been written for CW exclusively and are compatible. An alternative implementation in C exists as well as a port to the ATMEL AVR Microcontroller.

Besides a variety of other approaches exist, for example an IRC plugin (CWirc), a JavaScript implementation, a bandwidth-eating UDP implementation, a chat for iOS or a modulated CW over IP using Mumble (iCW).

How to build?

Install dependency: morse keyer library

tar xzf v0.1.tar.gz
cd morse-0.1
./configure  --with-portaudio
sudo make install

Debian (Wheezy)

Some dependencies have to be installed:

apt-get install -y alsa-oss oss-compat build-essential autoconf libao-dev libtool

Afterwards compilation with make should work. If something went wrong, you may have to adjust your LD_LIBRARY_PATH. Alternatively try:

LD_LIBRARY_PATH=/usr/local/lib ./irmc 7890 33 123 

OSX (Yosemite)

Compilation with make :)

For the USB serial devices you need a PL2303 driver (i.e. PL2303_Serial-USB_on_OSX_Lion.pkg).

Testing with MorseKOB 3.0 (Java)

This software will run on Linux, Windows and OSX. With the RXTX software for Java (i.e. librxtxSerial.jnilib on OSX) it is even possible to connect to external hardware. NB: before you transmit make sure you uncheck the "circuit closer".

How to use:

The usage is: irmc [hostname] [port] [channel] [id] [serialport

For example: `./irmc 7890 103 MyID /dev/tty.usbserial´

Morse KOB Servers

  • 7890
  • 7890 A current list of servers if provided on the MorseKOB Website.

Hardware interface options

A good description on how to build differnt interfaces (telegraph key, sounder or both) is given on the MorseKOB Website. Landline telegraphs use "closed circuits" for communications; if you have built one at home, you may also use the loop interface.


  • v0.2 zip - ported to debian wheezy and osx yosemite, DG6FL
  • v0.1 zip - original version, VE7FEB


Original post by Fernan Bolando (VE4FEB)

Copied on 20150103 from

I have been using cwcom to practice sending morsecode, unfortunately my main computer at home is running openbsd and it has gotten harder to gain access to a reliable MS Windows machine. So I wrote my own client that works on openbsd. This is written in C and although not tested it should compile under other OS. If any one wants to try it and send me feedback. you can download version 0.01 here Les Kerr of has been very patient in answering my questions regarding the cwcom protocol and setting up a test server during debugging.

There are few difference between this and the official cwcom client

  1. It is a command line tool
  2. It does not send the characters of the message to the receivers screen.
  3. It does not translate CW for you. You can try fldigi if you just want see the transmission.
  4. Tone pitch is currently hard coded to 650Hz
  5. It does not have a way to show you who is listening.

Bugs: There are a few that I am working on right now, but feel free to send me feedback if you get a chance to try it out.

File(s) The following people have helped me a lot to learn the protocols and setting up test servers. Les Kerr - Bob Denny - John Samin -