(RTTY) Contesting on GNU/Linux with Win‑Test
Serge Stroobandt, ON4AA
Copyright 2015–2019, licensed under Creative Commons BY-NC-SA
- Home
- Win-Test
Introduction
RTTY is a great mode for contesting. There is no need to type a lot, nor do you need to shout your voice hoarse. What is more, you even do not need to listen to RTTY stations in order to work them. These characteristics render late-night RTTY contesting especially gentle towards family members and nearby neighbours. The required signal-to-noise ratio lies between a moderately low -5 to -9 dB @ 2500 Hz; in any case, much lower than the +10 dB for SSB!
However, getting set for RTTY contesting under GNU/Linux is kind of challenging.
- The name may sound elusive, but Win-Test happens to be the only full-featured contest logging program offering some support for running on Linux, albeit under Wine and at the price of a licensing fee. The number of supported contests is fair, but could be better. Minor updates are free of charge for an unlimited period of time. Here are the release notes.
It was Ulf Schneid, DK5TX, who made me aware of this by courteously sharing his story on the net, accompanied by Wine instructions. Here, a slightly different set-up will be presented, as I prefer the use of PlayOnLinux — a front-end for Wine — over using bare metal Wine. PlayOnLinux offers the benefit of installing unrelated Windows™ programs on separate virtual drives, also called «bottles» in CrossOver, a commercial offering similar to the free (as in beer) PlayOnLinux. The use of virtual PlayOnLinux drives keeps things uncluttered and limits the damage when any Windows™ program goes awry.
microHAM Digi Keyer
If you own a modern transceiver with a USB port which presents audio as a sound device, you may skip this part.
Many transceiver interfaces work with GNU/Linux. However, as with all hardware under GNU/Linux, always check for Linux support on the web before acquiring a new interface! Because they are quite popular and I had one lying around, this article will focus on the excellent microHAM interface products.
The good news is Matthias (Max) Moeller, DJ5QV, was so kind to code and share the mhuxd
microHAM Unix daemon. In doing so, he could count with the help of Joe Subich, W4TV of microHAM for providing protocol specifications. The daemon should support all microHAM interface products.
On Ubuntu-derived systems, it is best to install mhuxd
by adding its PPA repository. This will ensure updates are installed automatically when they become available. Type the following commands (without the $
prompt) in a terminal window:
$ sudo add-apt-repository ppa:dj5qv/mhuxd-0.5
$ sudo apt-get update
$ sudo apt-get install mhuxd
The mhuxd
daemon should immediately start running in the background. You can check that and perform the initial configuration by opening the following URL in your browser: http://localhost:5052
Bookmark this URL as you may need it again occasionally. Note that microHAM interfaces are powered by the transceiver; not the computer.
Caveat: Upgrade to the latest firmware!
Once
mhuxd
is installed, first, make absolutely sure your microHAM keyer is running the latest firmware! Failing to do so, guarantees problems with MMTTY PTT keying over the FSK port —as I experienced first-hand.The firmware for the micro/Digi/CW keyers (MK/CK/DK) goes under the name of
mmk
. Hidden deep within its change filemmk_change_log.txt
, the November 22, 2007 entry reads:«Some changes in keyer protocol and settings format was introduced to be compatible with router v5.1.0. Hence firmware MUST be upgraded and power-up settings MUST be again stored to EEPROM of keyer.»
Installing new keyer firmware is the one and only instance where you are probably quicker off borrowing a Windows™ computer. In less than 10 minutes, you get the job done. Just install the Windows™ microHAM USB Device Router and let this program upgrade your keyer to the latest version of the appropriate firmware. Keep your transceiver and cabling at hand too, because —remember— the keyer gets its power from the transceiver.
microHAM port routing
In this step, the CAT, PTT and FSK channels of the microHAM keyer will be assigned to a Linux device virtual serial port. Also make sure to tick off RTS-PTT for each of these virtual serial ports.
Here is why: MMTTY is only able to employ a single COM port for both PTT T/R and FSK tone keying. Instead of using the dedicated PTT1 port, MMTTY will need to key PTT with a RTS (ready to send) signal on the FSK1 port. (See below.) It is a good idea to also configure RTS-PTT for the other virtual serial ports for use with other programs.
channel | RTS-PTT | virtual serial port |
---|---|---|
CAT1 | ☑ | /dev/mhuxd/cat1 |
PTT1 | ☑ | /dev/mhuxd/ptt1 |
FSK1 | ☑ | /dev/mhuxd/fsk1 |
To make the mhuxd
device ports accessible from your account, add your username to the mhuxd
group. Log out for this change to take effect.
$ sudo adduser $USER mhuxd
In the rare event of a mhuxd
daemon crash, there is no need to restart your computer. Typing the following command in a terminal window should do as long as your system is not using systemd
.
$ sudo service mhuxd restart
Specifying the CAT protocol
The CAT1 port on the microHAM interface needs to be informed about the serial protocol parameters which are specific to your transceiver brand and model. Consult your transceiver manual for the proper settings. This CAT port will be used by Win-Test —not MMTTY— to read and control your transceiver.
FSK parameters
Standard FSK parameters for amateur radio TTY service are shown below. Other services (press, diplomatic, military) may require different parameters.
Setting the keyer mode
Keyer mode is the only setting which requires changing each time one switches between operating modes (e.g. when switching from real FSK
for MMTTY to DIGITAL
AFSK for use with Fldigi). On newer microHAM interfaces (DK2, MK2 and MK2R+), it is more practical to opt for the Keyer Mode Follows RIG
automation. This will eliminate once and for all the need to revisit this mhuxd
configuration page.
Transceiver settings
- Whenever possible, always use truly keyed FSK on transmit. Because of confusing FT‑990 CAT messaging, I am required to always operate my Yaesu FT‑990 in
RTTY‑USB
mode. - To protect the transceiver PA from overheating, reduce the
RF PWR
to 50%. - If one of the tones falls outside the (250 Hz) bandpass filter, use the transceiver’s
SHIFT
knob to correct this. - For fine tuning, employ
RX CLAR
andTX CLAR
simultaneously on the FT‑990. - I prefer to listen to lower pitched “European” RTTY tones instead of the US default. On the FT‑990, this is set using DIP switches.
style | MARK |
shift | SPACE |
---|---|---|---|
US default | 2125 Hz | 170 Hz | 2295 Hz |
EU easy listening | 1275 Hz | 170 Hz | 1445 Hz |
Caveat: Reversed FSK on RX implies inversing FSK on TX!
My Yaesu FT-990 insists on designating
RTTY-LSB
as reversed orRTTYR
in its CAT communication with my computer. This is cumbersome for logging QSOs on LoTW which does not know how to handleRTTYR
as a mode. Hence, I operate this transceiver always in itsRTTY-USB
mode. This means Rev. on reception is alwayson
in MMTTY and either my keyer or my transceiver is set to inverse the FSK transmission stream. I chose to do the latter by flipping a DIP switch on the FT‑990. Remember: If nobody answers your calls, chances are you are sending in reverse!
PlayOnLinux
- As mentioned earlier, PlayOnLinux is a neat front-end for Wine, offering the possibility to install unrelated Windows™ programs on segregated virtual drives. Being included with the Xubuntu LTS repositories, installing PlayOnLinux is straightforward:
$ sudo apt-get install playonlinux
MMTTY installation
- MMTTY is installed first, on a PlayOnLinux virtual drive called
win-test
. MMTTY and Win-Test will share this virtual drive because both programs are related and need to be aware of oneanother. MMTTY allows for hard FSK keying, which in a contest environment is less prone to errors than modulating audio AFSK.
Caveat: Do not install EXTFSK!
On the web, you may find conflicting advice about installing the EXTFSK MMTTY extension. Here is the definitive answer by Joe Subich, W4TV, of microHAM:
«*NEVER* use EXTFSK with microHAM microKEYER, DigiKeyer, microKEYER II, DigiKeyer II, MK2R+ or micro2R. All of those interfaces provide a UART compatible, virtual port for FSK that handles 45, 50, 75 and 100 baud RTTY (baudot) directly. EXTFSK is not compatible with the FSK output of the microHAM “keyer” devices.»
Wine COM port mapping
Both MMTTY and Win-Test carry along their own drivers to communicate with the CAT interface of most common transceivers. These drivers function perfectly with PlayOnLinux, provided the Linux mhuxd
device ports appear as COM
ports to the Windows™ programs on the win-test
virtual drive.
I reiterate that as a GNU/Linux user, one needs to make oneself member of the mhuxd
group in order to use these virtual ports.
Old wine
versions, prior to version 2.8
Up to wine
version 2.8, symbolic links from the Linux device ports to the typical Windows™ COM
ports can be created directly in the directory ~/.PlayOnLinux/wineprefix/win_test/dosdevices
on the win_test
virtual drive:
$ cd ~/.PlayOnLinux/wineprefix/win_test/dosdevices
$ ln -s /dev/mhuxd/cat1 com1
$ ln -s /dev/mhuxd/ptt1 com2
$ ln -s /dev/mhuxd/fsk1 com3
New wine
versions, since version 2.8
Since the advent of wine
version 2.8, above solution no longer works because wine
overwrites any symbolic link. However, the CAT1, PTT1 and FSK1 ports can be mapped to respectively COM1
, COM2
and COM3
by adding new string entries to the HKEY_LOCAL_MACHINE\Software\Wine\Ports
key of the wine
registry on the win-test
virtual drive.
name | type | data |
---|---|---|
COM1 |
REG_SZ |
/dev/mhuxd/cat1 |
COM2 |
REG_SZ |
/dev/mhuxd/ptt1 |
COM3 |
REG_SZ |
/dev/mhuxd/fsk1 |
After editing the registry, shut down Wine with wineserver -k
. Next time Wine runs a program, changes will take effect.
Wine DPI setting
When you are used to GNU/Linux or for people with poor eyesight, the fonts on the Windows™ screens may appear particularly small. Luckily, the dots per inch (DPI) screen resolution can easily be set for each wine
virtual drive individually.
Pulseaudio settings
The microHAM Digi Keyer contains its very own low-noise PCM2902 stereo USB1.1 codec chip. To use it, open pulseaudio
volume control while MMTTY is running and select the PCM2902 chip as recording source for MMTTY. Newer microHAM interfaces use a differently named chip, as do modern transceivers with a built‑in sound device and USB port.
MMTTY configuration
MMTTY is best configured and tested running standalone, i.e. independently of Win-Test. All MMTTY configuration settings will remain in place under Win-Test, except for the CAT settings and casual QSO message macros which apply only to MMTTY running standalone.
COM port for keying
I am a fervent advocate of hard FSK keying, which in a contest environment is less prone to errors than modulating audio AFSK. To do so, select COM3
in MMTTY’s TX
menu for FSK (and PTT) keying.
MMTTY is only able to use a single COM port for both FSK and PTT keying. Hence, PTT keying will be performed with a RTS (ready to send) signal on the very same COM3
port. For this to happen, place the appropriate check mark in MMTTY’s Radio command
menu, underneath the TX
menu. This setup will only work when RTS-PTT was previously selected on the microHAM port routing screen.
MMTTY’s all important main settings are next up for discussion.
Rev.
Because of confusing FT‑990 CAT messaging, I need to operate my Yaesu FT‑990 in RTTY‑USB mode. Consequently, MMTTY’s Reverse Rev. needs to be always on
in my case. Test this setting by entering in an RTTY QSO before the contest! Very occasionally, when restarting under Win‑Test, MMTTY might be a little confused showing Rev. as on
whilst not decoding in reverse. Should this happen, simply click Rev. twice, and all should be again in good order.
I have noticed that, upon starting MMTTY V1.68A, one needs to click the Rev. button twice in order to put MMTTY effectively in reverse decoding!
UOS on
It is recommended to Unshift On Space UOS, on both transmit and receive, whilst employing space delimiters (instead of using 599-001-001
hyphens). Doing so, increases the noise immunity for letters (which are more common), by always forcing the LTRS
code page (i.e. unshifting) after a space.1 By using unshifting spaces as delimiters between number sequences, the FIGS
shift will also be repeated more often.
ATC
Automatic Threshold Control ATC adjusts the input level to the comparator in accordance with the strength of the input signal. If propagation conditions are good, it is better left off
. It is only useful when there is an echo on the received signal.2
- MMTTY’s decoding threshold can also be set manually by moving the slider along the green bar. Set this according to your local noise level and propagation conditions.
NET
Activating NET makes your transmit frequency follow your receive frequency when using AFSK. This feature should never be used during a contest. It is of no effect when employing truly keyed FSK.
AFC
Automatic Frequency Control AFC lets MMTTY track the frequency of the received signal within the receive passband. Leave AFC off
when operating in S&P
mode; In RUN
mode, having AFC switched on
may be useful for working «lid operators». However, remember to reset your MARK
tone using the HAM button, when switching it back off
! Otherwise, you yourself become the «lid operator»!!!
operating mode | AFC |
---|---|
search & pounce | always off |
running | allowed on reset MARK tone using HAM after use! |
HAM
HAM resets your MARK
tone and SHIFT
to your preset defaults.
There is an excellent MMTTY help which you should have read at least once. Additional MMTTY setup documentation is made available by Donald A. Hill, AA5AU.
Casual QSO messages for MMTTY
Contest messages are always sent by Win-Test; not MMTTY. Independently of these, you can define casual QSO messages for standalone MMTTY use. Here are some examples. Adding line feeds at the beginning and end, makes your messages stand out more at the reception end.
__
%c DE %m %m %m K
_\
__
%f %n
UR %r %r
OP SERGE SERGE
QTH HASSELT HASSELT
%c DE ON4AA K
_\
__
%f %n
UR %r %r
OP SERGE SERGE
QTH HASSELT HASSELT
LOC JO 20 QW JO 20 QW
P 50 W 50 W
CENTER LOADED OCFD ANT AT 15 M
MMTTY ON XUBUNTU LTS GNU LINUX
WWW.HAMWAVES.COM
%c DE ON4AA K
_\
__
%c DE %m
TNX %n FOR QSO
LOTW BURO EQSL
73 PEACE AND GD HEALTH
%c DE %m SK
_\
__
AGN? AGN?
_\
__
QSL QSL DE %m K
_\
Caveat: Avoid frequent shifts to
FIGS
!When defining RTTY messages, try to avoid frequent changes between letter and figure characters. Missing a
LTRS/FIGS
shift means that all subsequent characters will be printed wrong up until the nextLTRS/FIGS
shift. This situation can be improved upon by setting Unshift On Space UOS, on both transmit and receive, whilst employing space delimiters (instead of using599-001-001
hyphens). Doing so, increases the noise immunity for letters (which are more common), by always forcing theLTRS
code page (i.e. unshifting) after a space.1 By using unshifting spaces as delimiters between number sequences, theFIGS
shift will also be repeated more often.
Binary code 00000 is the null character, used for idling.
binary | hex | LTRS | FIGS |
---|---|---|---|
00011 | 03 | A | - |
11001 | 19 | B | ? |
01110 | 0E | C | : |
01001 | 09 | D | $ |
00001 | 01 | E | 3 |
01101 | 0D | F | ! |
11010 | 1A | G | & |
10100 | 14 | H | # |
00110 | 06 | I | 8 |
01011 | 0B | J | BELL |
01111 | 0F | K | ( |
10010 | 12 | L | ) |
11100 | 1C | M | . |
01100 | 0C | N | , |
11000 | 18 | O | 9 |
10110 | 16 | P | 0 |
10111 | 17 | Q | 1 |
01010 | 0A | R | 4 |
00101 | 05 | S | ’ |
10000 | 10 | T | 5 |
00111 | 07 | U | 7 |
11110 | 1E | V | ; |
10011 | 13 | W | 2 |
11101 | 1D | X | / |
10101 | 15 | Y | 6 |
10001 | 11 | Z | " |
01000 | 08 | CR | CR |
00010 | 02 | LF | LF |
00100 | 04 | SP | SP |
11111 | 1F | LTRS | LTRS |
11011 | 1B | FIGS | FIGS |
Win-Test installation
- The story behind Win-Test is absolutely fascinating. Win-Test appears to be developed by a handful of French rocket scientists who, in their 35-hour work week, apparently had too much time on their hands waiting for the next rocket launch. Olivier Le Cam, F5MZN, spearheads this tremendous software project. The proceeds of Win-Test go in their integrity to FY5KE, the M/S contest station of the Radio Amateur Club of Kourou, better known as RACK and located at the Centre Spatial Guyanais, the space port of the European Space Agency (ESA) in French Guiana.
The registration process is quite lengthy. Upon acquiring a license, an e-mail will be sent with credentials to download the registrable version of Win-Test.
Install Win‑Test on the same win-test
virtual drive where MMTTY was installed previously.
Without further ado, here is what Win‑Test looks like on my Xubuntu LTS GNU/Linux system:
Well in advance of any contest…
Check whether the contest is supported by Win‑Test and if any Win-Test updates are available.
RTTY contest messages
Win-Test’s default RTTY contest messages can be improved upon. Donald A. Hill, AA5AU, of RTTY contesting fame offers a great breakdown of optimal RTTY contest messages. Some of this great information has been condensed in the following set of rules3 and the tables below. On his fabulous website, Don also offers a number of contest-specific examples.
- Start all primary messages with a carriage return (CR/LF).
- End all messages with a single space character.
- Do not use outdated characters or character strings such as
DE, K, BK, SK or URin any of your messages. - Send RST always as
599
and send it only once if required. If not required, do not send RST at all. - Always employ space delimiters (instead of
599-001-001
hyphens).1 - Always end your CQ message with
CQ
. - Always end your run confirmation message with either
CQ
orQRZ
.
If you are completely new to RTTY, you will certainly find the RTTY DXing presentation1 of Ed Muns, WØYK/P49X, very helpful in getting you started.
As indicated by the RTTY messaging documentation, RTTY messages are defined under the Options → RTTY → Modify standard messages…
menu.
During a contest, you can work stations in two ways:
- either running: i.e. calling CQ TEST,
- or search & pounce: i.e. working stations that are calling CQ.
Contest mode switching is done by means of the Ctrl+TAB key combination. The currently selected mode is shown in the clock window.
key combination | action |
---|---|
Ctrl+TAB | Switch the primary radio between RUN and S&P mode. |
SHIFT+Ctrl+TAB | Switch the secondary radio between RUN and S&P mode. |
run messages | key |
---|---|
F1 | $13 $RSTEXCHSENT CQ TEST $MYCALL $MYCALL CQ \ |
F2 | $13 $SETEXCHSENT $LOGGEDCALL $RST $SERIAL $SERIAL $LOGGEDCALL \ |
F3 | $CR $13 $LOGGEDCALL TU $MYCALL CQ \ |
F4 | $13 AGN? AGN? \ |
F5 | $13 $SERIAL $SERIAL $SERIAL $SERIAL \ |
key | search & pounce messages |
---|---|
F1 | $13 $MYCALL $MYCALL $MYCALL \ |
F2 | $13 $SETEXCHSENT $RST $SERIAL $SERIAL $MYCALL \ |
F3 | $13 QSL $MYCALL \ |
F4 | $13 AGN? AGN? \ |
F5 | $13 $SERIAL $SERIAL $SERIAL $SERIAL \ |
key | run messages |
---|---|
F1 | $13 $RSTEXCHSENT CQ TEST $MYCALL $MYCALL CQ \ |
F2 | $13 $SETEXCHSENT $LOGGEDCALL $RST $ZONE $ZONE2 $LOGGEDCALL \ |
F3 | $CR $13 $LOGGEDCALL TU $MYCALL CQ \ |
F4 | $13 AGN? AGN? \ |
F5 | $13 $ZONE $ZONE2 $ZONE $ZONE2 \ |
key | search & pounce messages |
---|---|
F1 | $13 $MYCALL $MYCALL $MYCALL \ |
F2 | $13 $SETEXCHSENT $RST $ZONE $ZONE2 $MYCALL \ |
F3 | $13 QSL $MYCALL \ |
F4 | $13 AGN? AGN? \ |
F5 | $13 $ZONE $ZONE2 $ZONE $ZONE2 \ |
The $13
macro code sends a carriage return character to the other station. Are you missing some exchange variable? Here is a list of all available Win-Test message variables
In the wee hours of the contest, even hitting the F1 key will get draining. This is where Tools → Automatic CQ repeat…
comes handy. Hit ESC to interrupt it at any time.
QSO entry
Caveat: Select the Win-Test window to communicate!
MMTTY lives in a window which is actually separate from Win‑Test’s window. By consequence, after tinkering with MMTTY, be sure to reselect Win‑Test’s window! Failure to do so, will result in you hitting buttons without anything happening. You are warned.
callsign colours |
---|
NEW CALLSIGNS |
DUPES |
NEW MULTIPLIERS |
NEW DOUBLE MULTIPLIERS |
key combination | action |
---|---|
ESC | Abort the current transmission. |
CLICK on call | Enter the RTTY call. |
CLICK on exchange | Enter the RTTY exchange. |
RETURN | Log the QSO with bandmap entry. |
numeric ENTER | Log the QSO without bandmap entry. |
SPACE | Move to next essential QSO field. |
TAB | Move to the adjacent QSO field. |
Alt+F | Edit date, time, frequency or operator of QSO. |
Alt+W | Wipe the current QSO record completely. |
Ctrl+W | Wipe the current call, keeping the exchange. |
↑/↓ | Edit a QSO or reuse a QSO record for messaging. |
Ctrl+TAB | Switch the primary radio between RUN and S&P mode. |
Band maps
Right click Properties…
on the band map to configure the band map spot lifetime. The maximum value is 120 minutes. In this very same configuration window, also change the spot bandwidth to 400 Hz for RTTY. For more information, refer to the band map documentation.
key combination | action |
---|---|
RETURN | Log the QSO with bandmap entry. |
numeric ENTER | Log the QSO without bandmap entry. |
Ctrl+RETURN | Place the current call on the band map without logging. |
DOUBLE CLICK | Use the spot. |
Ctrl+DOUBLE CLICK | Delete the spot. |
MOUSE WHEEL | Zoom the band map. |
More Win-Test information
- At any time, one can modify the contest configuration by reopening the log file.
- Log files are available under
/home/user/win-test
- http://docs.win-test.com/wiki/Menu:Tools
- http://docs.win-test.com/wiki/Interfaces
- http://docs.win-test.com/wiki/RTTY
- http://www.country-files.com/
- http://www.supercheckpartial.com/
2Tone
According to Marc, DO4DXA, the RTTY-only decoder 2Tone can be used with Win‑Test. This new decoder by G3YYD may offer improved decoding. However, MMTTY is still required for transmitting RTTY as 2Tone does not transmit. Marc’s trick involves renaming 2tone.exe
to mmtty.exe
. I have not tried this yet, but when I do, I will report here.
Cabrillo & ADIF
At the end of the contest, create Cabrillo
and ADIF
log files for log submission, respectively importing to the CQRLOG DX logging program . These files will be available in the ~/win-test/
directory, after going through File → Create log file…
.
Conclusion
There you have it. Provided you take care of using the right software, RTTY contesting at a competitive level sure is possible with GNU/Linux! Once you have set this up in, for example, Xubuntu LTS, you will experience surprisingly less maintenance issues than with whatever Windows™ version.
TODO
- Installing a Windows™ program under PlayOnLinux
- band maps: segments
- country files
- super check partial
- Reference for “Truly keyed FSK on transmit is preferred over transmitting audio AFSK.”
- spot click mode
References
This work is licensed under a Creative Commons Attribution‑NonCommercial‑ShareAlike 4.0 International License.
Other licensing available on request.
Unless otherwise stated, all originally authored software on this site is licensed under the terms of GNU GPL version 3.
This static web site has no backend database.
Hence, no personal data is collected and GDPR compliance is met.
Moreover, this domain does not set any first party cookies.
All Google ads shown on this web site are, irrespective of your location,
restricted in data processing to meet compliance with the CCPA and GDPR.
However, Google AdSense may set third party cookies for traffic analysis and
use JavaScript to obtain a unique set of browser data.
Your browser can be configured to block third party cookies.
Furthermore, installing an ad blocker like EFF's Privacy Badger
will block the JavaScript of ads.
Google's ad policies can be found here.
transcoded by to make it run as secure JavaScript in the browser.