A sentence-mode radio chat system that works like phone texting!


This is a computer program for Amateur Radio transmission and reception using a computer and radio transceiver. The program equips your computer with a one sentence at a time chat-mode for operation on the HF bands. You use it in the same way as you would Skype™ or cell-phone TXTing. This facilitates rapid-fire QSOs and especially makes nets easier.

As usual, sound card techniques are used to generate transmissions using tones at audio frequency, and to receive and decode the incoming signals, also at audio frequency. An SSB transceiver translates these signals to and from the HF Amateur Bands. The EXChat mode is a development of DominoEX, and is completely compatible with other DominoEX versions. In fact operators without EXChat, but who have another version of DominoEX, can take part in a QSO, if in a slightly clumsy manner. What is different about EXChat is that it operates in Sentence Mode.

To read more about DominoEX in general, visit the main DominoEX web page.

The ZL2AFP EXChat program offers the usual six speeds:

EXChat 4 3.90625 173Hz ~25 WPM Baud rate x2
EXChat 5 5.3833 244Hz ~31 WPM Baud rate x2
EXChat 8 7.8125 346Hz ~50 WPM Baud rate x2
* EXChat 11 10.766 262Hz ~70 WPM Baud rate x1
EXChat 16 15.625 355Hz ~100 WPM Baud rate x1
EXChat 22 21.533 524Hz ~140 WPM Baud rate x1

Table of DominoEX modes. * Default mode

The speeds quoted for EXChat are approximate for typical text in English. For speed measured in Characters per Second (CPS), divide the above values by 10. Speed varies slightly with content. Speeds and parameters have been chosen following extensive on-air and simulator testing. Their use can be best summarised by the following table:

In this context, 'DX' means different things on different bands. For example, on 80m DX means anywhere outside groundwave range; on 20m double-hop or long path; on LF, MF and VHF, any weak signal application. There's a general principle for EXChat: it's a bit like driving a car - when the going gets tough, change down a gear! Here are some suggestions:

Sometimes (especially on higher bands) faster speeds give better copy. In a net situation, go with the speed which works for everyone.


This program was written by Con Wassilieff ZL2AFP, using the PowerBASIC V9.01 Windows compiler. Con contributed the amazing synchronous waterfall (seen nowhere else), and patiently interpreted the design intentions into reality. The original development took nearly two years, 2004 - 2006, and many long evenings of code writing and testing. The EXChat version is more recent, but based on the same technology.

The idea of a sentence mode has been around, on and off, for some time, including in various versions of DominoEX, but we decided to make a specialized and much simpler sentence mode application. After numerous experiments with other transport techniques, some quite advanced, looking for a modulation system for a specialized TXT-type mode, we selected DominoEX as the most reliable transport mechanism. The development took place in late 2014 between ZL1BPU (ideas, documentation and testing) and code wizard and author ZL2AFP.

The IFK+ modulation scheme, the Nibble Varicode and various other sneaky algorithms used in the original DominoEX were devised by Murray Greenman ZL1BPU. Much of the underlying MFSK technique, including the sync concept, and the sliding DFT integrate-and-dump detector, were provided by Nino Porcino IZ8BLY and Murray Greenman ZL1BPU, from work with MFSK16 back in 1999. All the hard work, including many clever ideas, were contributed by Con ZL2AFP.


EXChat is especially suited to sentence-mode text messaging:
  1. High tolerance of receiver drift and tuning offset.
  2. High tolerance of multi-path timing (e.g. NVIS on 80 metres) - best at 8 baud.
  3. It is more sensitive and much less error-prone that PSK31 or RTTY. It is so robust that FEC is not required.
  4. Very fast receiver sync. Text is printed very soon after tuning is achieved (there is minimum latency, under one second).
  5. Not only is the tuning display clear and sharp, even when signals are weak, but you need only centre the signal within 100Hz or so.
  6. High typing speed - with a Varicoded character set and no FEC, a data rate of 70 WPM is achieved at the default symbol rate of only 10.76 baud.


Download (see below) the archive and unzip it into a new folder called "EXChat" on your computer. This will provide you with all the programs, the help and related documents.

In that folder, locate the executable EXChat_xxx.exe (where xxx is the version number), and create a shortcut to it by right-clicking, and then drag this shortcut to your desktop or task bar. It will have a cute Domino icon.

Very little setting-up is involved. When you first start the program , read the HELP information about setting up, or read it here before you start.

ZL2AFP EXChat Installation V0.00 (03 November 2014)
ZL2AFP EXChat Help

Tuning Signals

The EXChat Tuning Displays Tuning in signals is no different to DominoEX. You can tune the receiver and/or slide the waterfall. (if you hold the mouse over the waterfall, you'll see a 'CLICK LEFT TO DRAG SCREEN' note tied to the mouse). Aim to place the received signal in the centre of the area between the yellow lines. If your transceiver is stable and has no offset between transmitter and receiver, just use the main tuning on the rig, and leave the waterfall alone. This is especially important in a net situation: otherwise stations are forced to continually chase each other around.

You'll need to be quick with tuning, as the transmissions can be quite short. The good news is that if you set up a calling frequency, and tune accurately, everybody will be able to copy everybody else without any retuning.

Make sure you have sufficient audio from the receiver. The waterfall background with no signal should look grey with just a few noise dots and stripes. If the signal tends to disappear during fades, just add a bit more level.

The waterfall display (see picture) has a slider control on the scale, so you can tune the receiver slightly to compensate for receiver/transceiver netting errors. Use this sparingly, especially in a net situation. The scale changes when you change speeds, but always starts at 1000 Hz at the bottom. If, when tuning in a signal, it looks furry, and is either smaller than you expect or too tall, you probably have the wrong speed setting.

The waterfall is much sharper and more informative than you'll see in other programs, because it operates in synchronism with the received signal. As a result it is also much more sensitive. Each of the little white stripes is a received tone or symbol. With NVIS reception, they can be briefly less distinct due to Doppler and timing changes.

Note: When you drag the waterfall to tune in the signal, you ALSO move the transmitter frequency.
The software acts like a transceiver, with the transmitter following the receiver.
If the speed is right (and you will get used to the sound, so be able to guess quickly), the signal will occupy about the centre two thirds of the area between the yellow lines, and the two little 'metrics' displays below will show stable pictures. If the signal strays outside the yellow lines, reception will quite quickly deteriorate.

The little indicator on the right is the instantaneous 'sync triangle', indicating where the software has determined sync to be by measuring the received symbols. The height is arbitrary, and the width is that of one symbol. The red line indicates the current symbol sampling point, and it moves about to track the signal. Sampling in the exact centre gives the most noise-free results and therefore lowest error rate. This display won't have a clear triangular peak if the speed is wrong. The peak tends to move around while receiving, as the ionospheric path changes the signal's time of flight. This is especially true during NVIS reception. The software (indicated by the red line) tracks these changes.

The little display on the left is 'sync history', and displays symbol timing (vertically) against elapsed time (horizontally). Imagine that this is a historical record of the position of the peak of the sync triangle, sampled at every symbol. You should easily be able to see the effects of multi-path and fading here. These little indicators are useful in determining the best operating speed for the prevailing conditions.


In order to tune your rig, antenna tuner, or adjust power level, you can simply press ENTER on the keyboard (or press the SEND button), and the transmitter will operate for a few seconds while you make adjustments. If the transmitter doesn't operate, check your software and rig settings (did you press APPLY?). You will never need to use high power. 10 Watts gives good results on 80/40 metres, because the receiver is so sensitive.

The EXChat Squelch controls To send a sentence, simply type what you want to say, into the Transmit pane (see below), check that the receiver is quiet (there will be no signal on the waterfall), and then press ENTER. The message will be sent, and your text will be placed in the receive pane. The squelch system should prevent you from sending while another station is sending. You can't send until the squelch is closed - until the blue bar on the signal-to-noise (SNR) meter display sinks below the red line. (See the picture to the right).

Because of delays and operator reaction times, you may find that you press ENTER just as a message from another station comes in. You will unfortunately 'double', and the only way to avoid this as much as possible is to listen carefully and watch the metrics. If you spot a 'double' event, just send 'Agn Pse' and wait for the response. You can also cancel an on-going transmission immediately by pressing the RECV button.

You can continue to type while the transmitter is sending the previous sentence. It's a good idea however to wait for the other guy to reply first, as otherwise you could easily be talking at cross-purposes, or have to scrap your sentence to first reply to something he said.

You can edit transmitted text before it is sent by moving the cursor and using Backspace, Delete and the usual editing functions. You can also copy (Ctrl C) and paste (Ctrl V) from the receive pane to the transmit pane if you are quick. This feature is especially useful for repeating what you said when your last over was missed.

The Squelch attack controls are designed to minimize the amount of junk text which appears on the screen. The junk accumulates in the receive buffer at the end of a transmission (before the squelch closes) and typically appears on the screen at the start of the next received signal. The Fast setting will leave more junk, but you won't miss anything you need. Slow may cause the beginnings of transmissions to be lost. Medium is a good compromise for most conditions. Experiment to find the most suitable setting for the prevailing conditions and the speed you are using.

Squelch operation is also affected by the threshold setting. This is made by clicking on the signal-to-noise meter (vertical bar graph) to move the red line. The received text is shown on screen only when the signal SNR exceeds this point. An appropriate setting will depend on the band and conditions, but somewhere around 10 on the (arbitrary) SNR scale is about right. This setting also affects the transmit lockout previously mentioned.

Guided Tour

When you change the operating speed from the menu, the operating speed and the name of the program in the banner (very top of the window) will change. There are two main areas where user text appears, plus a menu and status line. See the image below and the following description:

EXChat Annotated Screenshot
  • The Receive Pane The large cream-coloured area toward the top of the program is where the received text arrives. Sentences you send are also placed here as they are sent, so that they can be archived in conversation order.
  • The Transmit Pane is a smaller pink-coloured area below the receive pane. Here you type the text you want to send. At the end of a sentence, you press ENTER, and that text will be sent, usually immediately. It will not be sent if the receiver squelch is open, indicating that reception is in progress. This reduces the risk of 'doubling', although you still have to take care. Quick replies are still likely to be subject to doubling. Listen for signals and watch the waterfall before transmitting.
  • Progess Bar. At the very bottom of the window is a grey area which tells you how many characters remain to be transmitted, and a large green bar indicates (while transmitting) what percentage of the text remains to be sent.
  • Metrics To the right of the main panes are the QSO performance indicators, which consist of an amazing synchronous waterfall tuning display (top), two sync diagrams, the sync phase history to the left, and the current sync triangle to the right. Below this is the signal-to-noise meter (vertical bar graph), which includes a red line which indicates the receiver squelch threshold. If the signal level does not exceed this point, nothing is printed. If the signals exceeds this point, transmission will not start.
  • Menu The very top line of the program contains a simple menu system. Click on each item (File, Options, Tools, Soundcard and Help to learn what options each offers.

Just to the left of the Signal Meter are three radio buttons which select the characteristics of the squelch. Fast attack means more rubbish is printed between overs, but the risk of losing some real text is reduced. Slow attack means the opposite. The default Med (medium) value will suit most circumstances.

At the bottom on the right are two controls, simple SEND and RECV (Receive) buttons. SEND has the same effect as pressing ENTER. RECV over-rides an on-going transmission, cancelling it to return to receive. The sentence being transmitted is lost.

This program and associated documentation are respectively © Copyright Con Wassilieff ZL2AFP and Murray Greenman ZL1BPU 2003-2014. Please do not copy, alter or publish without permission. All Rights are Reserved.

Copyright � M. Greenman 1997-2014. All rights reserved. Contact the author before using any of this material.