WSQCall Selcall System

Making use of Directed Mode

V1.00, 18.11.2017
MENU
 Introducing WSQCall  Uses for WSQCall

Introducing WSQCall

Sending text using WSQ is generally very reliable, certainly more so than other digital modes that use no error correction. Therefore with just a little verification, it has been possible to devise a simple system (simple to use, that is), which can provide clutter-free communication (station selective squelch), and can also perform many automated message-related tasks.

This selective calling system is called WSQCall, and operates in the ZL2AFP software in the default Directed mode. Directed mode means that messages are addressed (directed) to a specific station or stations, and are ignored by other stations. The selective calling commands are a sub-set of those used by the HF program FSQCall.

While not attempting to be a full Automatic Link Establishment (ALE) system, WSQCall performs similar functions to allow stations to establish links and pass simple messages manually or automatically. The focus is on sending simple one-sentence messages or commands in a manner best suited to the WSQ protocol. There is a handful of simple and easy to learn commands used by WSQCall. ALL of these can be manually typed, while the receiver end is largely automated. These simple commands allow you to:

  • Find a station's location and status.
  • Read a station's pre-defined message.
  • 'Poll' a station to check how reception is.
  • Send a sentence to just one specific station.
  • Send a sentence to all stations within range.
  • Send a sentence to be stored in a specific file.
  • Change the transmitting speed  at another station.
  • Receive and save a file from an unattended station.
  • Determine which program version a station is running.
  • Send a file to one, many or all stations, even unattended.
  • Determine which  other stations  have been active, and when.
  • Have a station relay your sentence to another station or stations.
  • Send periodic 'soundings' and other messages from third party software.
  • Raise an Alert at a station, with automatic response once acknowledged.
  • Send a periodic 'sounding' message to let other stations know you are active.
This sounds like a tall order, but cunning design has allowed all this to be achieved with just over a dozen easily remembered one-character commands. And you don't even need to remember them all, as the program itself lists the commands for you, with just a mouse-click. There is also comprehensive Help available from the Menu, which gives you details of operating Rules and Syntax, so you can't go wrong.

The WSQCall message structure is simply an extension of WSQ. If you already operate FSQ on HF, you'll find it very familiar. Every sentence starts automatically with your_call:<crc>. The crc (Cyclic Redundancy Check) is used to ensure that the source callsign is received correctly, since it's often used in automatic replies. The CRC is generated and applied automatically. Every message you transmit is identified by your callsign.

You simply type a destination callsign (or maybe more than one), a one-letter command for each callsign, and a message, if needed. Then you just press ENTER, and off the message or command goes.

Let's define some terms:

Direction:
A destination callsign for a message or command.
Preamble:
The transmitting station's callsign and checksum; the stuff that's prepended automatically to the sentence.
Trigger:
The one-letter command character used with every WSQCall transmission.
Payload:
The accompaning information for a message or command.
Sentence:
The complete transmission; Direction, Trigger and message, if any.
Sounding:
Periodic transmission of the Preamble, with or without an optional Payload.
Sounding assists other stations to build a list of available stations.
Sounding is always used without a Direction and Trigger.


Directed message example

Here are some examples below. The text shown bold is added automatically before transmission, outgoing text is in red, while replies (both automated and manual) are shown in blue. In the first exchange, ZL1BPU asks for ZL2ABC's location, which is an automatic response:

zl1bpu:b6zl2abc@

If in range, ZL2ABC will automatically reply:

zl2abc:2ezl1bpu Lower Hutt

Why is the callsign 'zl1bpu' repeated in the reply? So the receiving station WSQCall selective squelch opens, to allow the message to simply print:

Lower Hutt

As another example, ZL1BPU and ZL2ABC have established contact and are chatting in Active mode:

zl1bpu:b6zl2abc Have you seen Jim ZL3JIM lately?
(ZL2ABC sees only Have you seen Jim ZL3JIM lately?)

and ZL2ABC replies:

zl2abc:2ezl1bpu Yes, he was at the club meeting on Wednesday.
(ZL1BPU sees only Yes, he was at the club meeting on Wednesday.)

As you will by now have gathered, if your callsign isn't in an incoming message, nothing will print. WSQCall acts like a smart selective squelch. It opens the receiver for printing on the main screen (and other actions) when your callsign is received, and closes again when the actual receiver squelch closes (when the other station stops transmitting).

The Squelch is also 'fade-proof', using a smart delay design to ride through fades that might otherwise close the Selcall.

Because the squelch also locks-out transmission, just as in FSQCall, stations generally do not transmit over other stations, or reply until the other station has finished transmitting. Various delays are also added before automatic replies, in order to manage the priority of messages. Manually typed messages have the highest priority, and sounding messages the lowest. This technique is called CSMA, or Carrier Sensed Multiple Access, controlling access to the radio channel.

Detailed descriptions of the WSQCall Syntax and WSQCall Rules are also available from the program Menu.

Error Checking

Using full-time Forward Error Correction system (FEC) would add unacceptable delay and markedly reduce throughput, and with the already slow sending rate of WSQCall, this would be impractical. Since WSQCall is generally robust, a simple error check mechanism is all that is required, protecting only the message preamble. The preamble of every sentence is protected by a checksum, an 8-bit Cyclic Redundancy Check. The CRC forms the two mysterious letters/numbers which follow the colon in every WSQCall header. If this preamble is not correct, the message will be ignored, for two reasons:
  1. If the preamble is incorrect, the software won't know who to send automatic replies to!
  2. If the preamble is incorrect, there's a high chance that the message will be too, and you may not know who it's from, in order to ask for a repeat.
Each incoming message is also of course checked for the correct destination callsign (your callsign), and if that's not present, or received incorrectly, the message is ignored. It's also ignored if your callsign is not immediately followed by a permitted trigger character. These are the command characters used to tell the receiver what to do. There are sixteen of them:

? $ * ! ~ # % + | @ & ^ _ < and >, plus space

Quite simply, if you don't get an expected reply to your command or message, you just send it again. Messages that don't have an automatic reply (the only one is callsign followed by space) are best used only when the other station is attended, otherwise you've no way of knowing if it was received. If it wasn't received, or was garbled, the other station operator will probably send "Agn?".

The program has a 'Monitor Pane', and you can always keep an eye on that to see if there was anything you might have missed. This is especially useful if for some reason the squelch closes early (typically caused by a fade), or some station is calling you, but doesn't have your callsign the same as you've set it, or makes an error in the syntax.

Hint: The error rate in WSQCall is so low that you see more errors from typos than from any other cause!

WSQCall Command Summary

This is a very brief summary of the most-used commands. For full syntax, see the WSQCall Syntax Help item within the program.
callsign message           Enables print of message at station callsign
callsign?                  Returns signal report from station callsign
callsign*                  Sets WSQCall into Directed mode at station callsign if it was in SLEEP
callsign!message           Station callsign retransmits message
callsign~message           Station callsign retransmits message after a 15 second delay
callsign#[file.ext]message Station callsign stores message as or appended to file.ext
callsign+[file.ext]        Station returns the requested file using # command
callsign@                  Returns QTH message from station callsign
callsign&                  Returns QTC message from station callsign
callsign>                  Station callsign changes to 3 baud and confirms
callsign<                  Station callsign changes to 6 baud and confirms
allcall message            Enables print of message at all stations in range on the radio channel
It's easy to see how simple this all is. There are various ramifications involved if the syntax is used improperly. Check also the WSQCall Rules. Several other trigger characters and commands are available but not listed here, and others are reserved for future features.

Uses for WSQCall

Keeping in Touch
The simplest application for WSQCall is to provide a convenient 'watering hole' for a group of friends who wish to keep in touch and chat occasionally. Experience has shown that with a 100 W transmitter, leaving your equipment running on a 630 metre calling channel during the day, will provide fairly reliable communications over about 300 km range using ground wave. Signals will be -25dB SNR or better. At night, using E-layer propagation, signals improve by at least 10 dB, but with marked fading. The range could easily be 2000 km.

You can leave a message for your friend if they aren't available, and even use one friend to relay a message to another. The software will tell you who is currently available, and you can query the station if you wish to make sure.

If you wish to chat with two or more friends at once, simply include both/all their callsigns in each sentence. Alternatively, use allcall as the address, and everyone will receive the message. In order to avoid serious mayhem on the radio channel, the automated replies do not work with allcall!

Sending Files
WSQCall can send and receive small text files in a range of popular formats. These can be reliably sent and stored automatically. You can also remotely request a file, or read a directory of available files, a brief or detailed list. Files are kept in the /Shared folder, and as a security measure, other users have no access to files elsewhere on your computer. If you wish to give them access to a file, copy it into the /Shared folder, then update the directories using the File/Refresh directories menu item.

To send a file:

callsign#[filename.ext]file content...
You can either type the file content directly into the TX pane, or use the File/File to send Menu option to send a file from anywhere on the computer. If you use this second approach, the command is completed for you, complete with file name.

Other users can read your directories using the file read command:

callsign+[short.callsign]    Short directory listing, just file names
callsign+[long.callsign]     Detailed directory listing (includes file date, time and size)

Sending from Other Applications
Any third party 'Helper' program can also send files. All it needs to do to transmit automatically is place a correctly formatted message in the file 'data.txt', and save it in the /Shared folder. WSQCall will accept files to transmit from any appropriate helper program. You could for example write a 'Smart Sounding' program or a weather message generator.

In this case the file content should start with the intended direction and trigger. Messages to be placed on the screen, messages which elicit automated replies, and messages to be stored as a file can all be sent this way. Messages sent to the same file are appended to the same file in chronological order.

About File Formats
WSQCall will indicate that a file has been received by illuminating the MSG RX light and button. In theory, if you subsequently click on the button, it will open the latest received file for you to view. However, this only works for registered file types, such as .TXT. If you are expecting other file types, register them with your operating system. Also please make your friends aware that if they wish to send you a message as a file, they should ALWAYS use a file suffix .TXT, as it's the only universally accepted file format.

If the file you received won't open, you can still manually access it, as pressing the MSG RX button will open the file folder instead of the file. Just look for the newest file. If the MSG RX light is not illuminated, you will need to press the button twice.

Logging and Web Database
WSQCall generates three log files, based on not just messages addressed to you, but ALL traffic on the channel. The log files are:

  • Message Log
    A time-stamped Message Log, which logs the content of every transmission heard on the working channel. A new log file is started at local midnight. This feature is useful as a tool for 'post mortem' examination of tests, QSOs and propagation, and could be useful to find conversations you missed. The files are available in the working folder as dd_mm_yy_hh_mm_ss_Messagelog.txt.

  • Heard Log
    This file, Heardlog.txt, records every station that is heard and verified (callsign matches checksum), along with time stamp and signal strength. It will record all soundings. It continues to record until you manually start a new log (Files/Clear Heard Station Log), whereapon the file is archived as Heardlogddmmyy.txt, and a new file commenced. The third-party application WSQplot uses this file to plot station signal strength against time.

  • Spot Log
    This file is provided so that third-party programs can report every standardised format sounding spot to an online database. The file contains a time stamp, the verified callsign, a signal report and the standard sounding (locator, power and checksum). This file only records transmissions with verified callsign and verified standard sounding.

    The file, Spotlog.txt, is provided so that a third-party developer might create a program which periodically searches the file looking for soundings that could be posted to a web database (in the manner of WSPR).

    To complement the proposed web database feature, WSQCall has, as mentioned, a special optional fixed-format sounding message containing the station locator, transmitted power level, and a checksum to protect the information. Anyone interested in developing a web database for WSQCall and FSQCall (both have the same Spotlog and Sounding features) should contact the author.


Copyright © Murray Greenman and Con Wassilieff 2013-2017. All rights reserved.