# WSQCall Selcall System

## Making use of Directed (CALL) Mode

V1.20, 24.03.2018

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), that can provide clutter-free communication (station selective squelch), and can also perform some simple automated tasks. It provides a protocol which simply works with the WSQ modem.

> This selective calling system is called WSQCall, and operates in the ZL2AFP software in the default CALL mode. CALL mode means that messages are addressed (directed) to a specific station or stations, and are ignored by other stations. The selective calling commands are mostly a small 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, and in this case, the relatively slow speed of transmission. There are just a few 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:

> - Ask for a message to be repeated.
> - 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 of the stations within range.
> - 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.
> - 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 seven easily remembered one-character commands. And you don't even need to remember them, 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 term 'WSQ' (Weak Signal QSO) describes the modem used by the system, i.e. the encoding of the text and the modulation used. 'WSQCall' implies the selective calling protocol which sits on top of this modem.

> The WSQCall message structure is simply an extension of WSQ. If you already operate FSQCall on HF, you'll find it very familiar. Every sentence transmitted 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, two numbers and/or letters, is generated and applied automatically. Every message you transmit is identified by your callsign, without you having to type it, and the callsign is protected by the CRC so the recipient station software can verify it.

> 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. It's like an address.
> > 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 directed 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 generally used without a Direction and Trigger.
> >   Soundings may include an optional locator/power message.

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? It's the 'direction', 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 CALL 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, there will be no blue text. (The message might print in green or not at all). WSQCall acts like a smart selective squelch. It opens the receiver for printing blue 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 delay design to ride through fades that might otherwise close the Selcall. The squelch is fully opened by the signal, and decaus slowly if a signal is no longer present. This slow decay helps it ride through fades.

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.

Automatic replies can be disabled using an 'RX Only' option, which retains all the other directed properties of CALL mode. Detailed descriptions of the WSQCall Syntax and WSQCall Rules are also available from the program Menu.

### Error Checking

> Many radio modems rely on error correction to cover up limitations in the modem technology used. WSQ was carefully designed from the ground up to minimise reception errors, so that no Forward Error Correction (FEC) would be needed. Using a full-time FEC system would add unacceptable delay and markedly reduce throughput, and with the already slow sending rate of WSQCall, this would be impractical.

> Since WSQCall is inherently 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 automated 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 only seven of them:

> ? $ ! @ & + , plus space

> 'Ignored' in this context depends on settings. Normally messages received with preamble errors, or not intended for you, are not seen on the Receive pane. There is an option to display such messages in green.

> 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?". There's now a special command to auto-send the last sentence again.

> 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 QRM), 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. The Monitor operates in real time, while the main Receive pane is post-processed more accurately, using synchronous technology (after reception is complete).

> Hint: The error rate in WSQCall is so low that you often see more errors from typos than from reception errors!

### WSQCall Command Summary

> For a more detailed description of the syntax for each command, 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$ Returns list of callsigns heard by station callsign
> > callsign!message Station callsign retransmits message
> > callsign@ Returns QTH (location) message from station callsign
> > callsign& Returns QTC message from station callsign
> > callsign+ Station repeats its last transmission
> > 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.

### 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 at night exceeds 3000 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!

> Making Chat even Slicker
> You can turn off CALL mode, and send messages with no preamble. This can save about 40 seconds per transmission, but does mean that you will need to occasionally identify manually, and the transmissions won't appear in any of the logs. The station you are working should do the same. Text will appear in green.

> Working DX
> It's never easy to find very weak DX stations, but with WSQCall, they come to you! With region-wide calling frequencies set up, you can sit on the channel and monitor who is Sounding. If an interesting callsign pops up, give them a call! Once in QSO, move off the calling frequency by 100 Hz.

> When in QSO, conversation will go faster if you both slip out of CALL mode, as this saves sending all the preamble stuff as just explained. Remember to return to CALL mode after the QSO.

> Sending Files
> WSQCall can send very small text files in a range of popular formats, but unlike FSQCall, there is no automated file-store mechanism at the receiver.

> You can use the File/File to send Menu option to send a file from anywhere on the computer. The file name will be prepended to the file, i.e. sent ahead of it. The file will be loaded into the TX buffer, and you need to press ENTER to start transmission. Because of the low WSQCall transmission rate, files must be very small, preferably just a few words.

> 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, or messages which elicit automated replies can be sent in this way.

> About File Formats
> You can ONLY send text files, typically those with a .TXT suffix. Received files are not stored, but you can copy them off the RX pane and save them using Copy and Paste.

> 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. 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 file is kept in the working folder as Messagelog.txt. The file can be cleared (the content will be archived), and restarted from the menu: otherwise it keeps accumulating forever. The archived file will be named dd_mm_yy_hh_mm_ss_Messagelog.txt and found in the working folder.

> - 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 the Heardlog to plot station signal to noise ratio (SNR) against time.

> - Locator 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, Locatorlog.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). The Locatorlog is found in the working folder.

>   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.

> Raw Sample Data
> WSQCall V1.15 includes an advanced synchronous decoder, which provides very sensitive reception with very low error rate. For various reasons, it isn't perfect, so users may be able to improve on it! It is quite possible to write your own synchronous decoder, and maybe you can do even better! At the end of reception (once the squelch has closed) the file raw.RS will be available in the /Shared folder. This file contains every sample received by the FFT detector while the squelch was open, at 16 samples/symbol. It contains a list of (comma delimited) numbers, which are FFT bin numbers. From these you can discover sync and decode the message. It has already been done, using a program written in QB64, so it may well be possible to improve on the existing decoders.

> Here's an example. This program, written in QB64, locates the sync using a cross-correlator, synchronously decodes the sentence from raw.RS, then displays the sentence, complete with all the hidden characters, those you don't normally see in WSQCall.

> The raw.RS file will be written over by WSQCall when the next reception is made. A third-party program may use and delete raw.RS, then wait for it to reappear.

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