A Blocked Call List for WSJT-X

Matt Roberts - matt-at-kk5jy-dot-net

Published: 2021-11-30

Updated: 2023-03-14


The WSJT-X software package has become quite popular on the HF bands.  Recent versions have a highly automated user interface, that automatically transitions between message types in response to transmissions from other stations.  This allows smoother and more efficient contact to be made, by switching between messages without repeats or broken messages.

One downside to all this automation is that it can become easily confused or stuck if one or more other stations doesn't behave in a predictable manner.  If the other station is a broken robot, or a malicious operator, using the stock automation in WSJT-X can be irrecoverably disrupted by other operators.

For example, if a remote station answers your CQ repeatedly, but never sends a signal report, they can prevent your station from working any other stations while they repeat the same message over and over.  The only way to get past this with the stock WSJT-X is to disable the automation and work other stations by hand until the malfunctioning station goes away.  The same thing can happen while trading any other part of a QSO, where the other station calls repeatedly, causing the automation to become "stuck." There are some malicious operators who send messages with bogus calls or other misleading content deliberately, to interfere with others' automation.

I discovered this early while operating FT8, and as a result, one of the first features I added to my station is a blocked call list, that prevents WSJT-X from responding to specific calls that are known to cause problems.  My first draft of this functionality would watch the transmit message stream, and force the next message to be something else, to avoid situations that would "lock up" the automation.  However, I recently dug into the C++ code in WSTJ-X and made a much faster and cleaner version of the blocked call list that operates as part of the application itself.

This improved filter prevents WSJT-X from responding to any call that is in the user-provided list of callsigns.  The decoder still shows messages from these calls, and reports them to PSKReporter, but the application ignores them for any other purpose.

The block list is just a text file, called BLOCKED.TXT, that is placed in the current configuration folder, alongside ALL.TXT and other configuration files.  The BLOCKED.TXT file lists calls, one per line.  The file is watched by the patched WSJT-X, and reloaded whenever it changes.  Comments are allowed in the file, starting with a hash character (#) and continuing to the end of that line.

An example blocklist is below:
#
#  BLOCKED.TXT - example block list for WSJT-X
#

# here is a blocked call
N0CALL

# here is another blocked call
N0QSOS  # here is a trailing comment
When a problem station interrupts the normal workflow, adding the station to the blocked call list is as simple as editing the BLOCKED.TXT file, adding that callsign to the text, and saving the file.  This will immediately cause WSJT-X to ignore that call in all automation decisions.

I have patched and tested this feature against WSJT-X 2.1.2 and several later versions, including the current 2.6.1.  I am releasing the changes here, both as a patch and as a standalone modified tarball of 2.6.1.  This should allow others to use the feature as part of a custom build, or to integrate the patch into a development branch of WSJT-X.


Software Downloads

The patch files are available for download below.  I also included a full source tarball of WSJT-X 2.6.1 and 2.1.2, with the patch applied.  This allows you to do a custom build of the software with the blocked call list installed.  The older 2.1.2 build is mostly for Raspberry Pi users, since the newer FT8 decoders are far too slow on even the newest Raspberry Pi.

If anyone is interested in integrating this feature into a newer version of WSJT-X for general public use, please contact me at the email address above.

All software and firmware is released under the terms of the GPL version 3.

WJST-X Blocked Call List Patch  (Click Here)

Click the link above to download firmware or software packages.  The source is being released under the GPL version 3, which is also available on the download page.


Release History

2023-03-14 - Added tarball for WSJT-X 2.1.2.
2023-02-23 - Updated patch and tarball for WSJT-X 2.6.1.
2021-11-30 - Initial release, tested against WSJT-X 2.1.2.

Copyright (C) 2021,2023 by Matt Roberts, KK5JY.
All Rights Reserved.