MENU | |||
Introducing FSQCALL | Uses for FSQCALL | ||
Guided Tour | FSQCALL Operation |
Note: This program may not run well on a low-spec 'netbook' type computer, or older single-core Pentium, as the processing power required for reception is high. Check the Task Manager, and on a slow computer make sure no other unnecessary tasks are running.
Sending text using FSQ is generally very reliable, certainly more so than other digital modes with no error correction. Therefore with just a little checking for errors, it has been possible to devise a very simple network management system (simple to use, that is), which runs on top of FSQ, and which can provide clutter-free communication (station selective squelch), network management, and several useful related tasks.While not attempting to be a full Automatic Link Establishment (ALE) system, FSQCALL (pronounced "F.S.Q. Call") performs enough similar functions to allow stations to establish links within a network, and manually pass or relay simple messages. The focus is on sending simple one-sentence directed chat, messages or commands in a manner suited to the FSQ mode. While you can use the FSQCALL protocol for chat, its main intention is to establish contact to facilitate communication via other modes or mediums.
There is a handful of simple and easy to learn commands used by FSQCALL. ALL of these may be manually typed, while some are available from the Heard list shortcut menu. The response by the receiving end is largely automated. These simple commands allow you to:
This all sounds like a tall order, but cunning design has allowed all this to be achieved with just ten easily remembered commands. The program itself lists the operating rules and syntax for you, so you can't go wrong. The FSQCALL message structure is simply an extension of FSQ. Every sentence starts automatically with your_call:crc. The crc (Cyclic Redundancy Check), two letters and/or numbers, is used to ensure that the source callsign is received correctly, since it's often used in automated replies. The changed preamble (header) also alerts other stations that you are in FSQCALL mode.
- Send an Alert to another station.
- Find a station's location and status.
- Read a station's pre-defined message.
- 'Poll' a station to check how reception is.
- Read a stations recently heard stations list.
- Send a sentence to all stations within range.
- Send a sentence to just one specific station.
- Change the sending speed of another station.
- Send a text file that can be stored in a specific file.
- Type a sentence that can be stored in a specific file.
- Call CQ (prints at all stations in range where CQ is enabled).
- Determine which other stations have been active, and when.
- Determine which version of software another station is running.
- Have a station relay your sentence to another station or stations.
- Send a periodic 'sounding' burst to let other stations know you are active.
- Send an image file in one of several formats including a high resolution FAX mode.
You simply type a destination callsign (or maybe more than one), which we call a direction, a one-letter command for each callsign, which we call a trigger, and a message, if needed. Then you just press ENTER, as in normal FSQ.
Here are some examples. The text shown bold is added automatically, 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@The callsign shown at the beginning of the displayed reply above is recovered locally from the incoming preamble and verified against the CRC, then printed ahead of the incoming message text, so it looks the same as in FSQ mode, but here the callsign has been verified.If in range, ZL2ABC will automatically reply:
zl2abc:2ezl1bpu Lower Hutt
Why is the callsign 'zl1bpu' repeated in the reply? So the receiving station FSQCALL Selcall opens to allow the message to simply print:
zl2abc:Lower Hutt
As another example, ZL1BPU and ZL2ABC have established contact and are chatting, still with FSQCALL on, so are directing their sentences:
zl1bpu:b6zl2abc Have you seen Jim ZL3JIM lately?As you will by now have gathered, if your callsign isn't in an incoming message, nothing will print. In the same way, unless you preface each transmission in FSQCALL mode with a direction (target callsign) or allcall (a generalized callsign for all stations), nobody will see what you've sent.ZL2ABC sees only:
zl1bpu:Have you seen Jim ZL3JIM lately?and ZL2ABC replies:
zl2abc:2ezl1bpu Yes, he was at the club meeting on Wednesday.ZL1BPU sees only:
zl2abc:Yes, he was at the club meeting on Wednesday.
FSQCALL acts like a smart squelch. It opens the receiver for printing (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 squelch design to ride through fades that might otherwise close the Selcall.
Because the squelch also locks-out transmission, just as in FSQ, stations generally do not transmit over other stations, or reply until the other station has finished transmitting. Various randomized delays are also added before automatic replies, in order to manage the priority of messages on the channel and minimize clashes. This protocol is called Carrier Sense Multiple Access (CSMA). Manually typed messages have the highest priority, automatic responses have medium priority, and sounding messages the lowest.
Detailed descriptions of the FSQCALL Syntax and FSQCALL Rules are also listed on the program Options Pane Syntax and Rules tabs.
Using a full error correction system would add unacceptable delay and markedly reduce throughput, spoiling what is a remarkably slick design. Since FSQ is generally robust, an error correction system for FSQCALL is considered unnecessary.In order to ensure accuracy of station reports, network logs and message replies, a simple error check mechanism is used on 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 FSQCALL header. If this header is not correct, the message will be ignored, for several reasons:
Each 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. Here are the main trigger characters: ? * ! ; # % + @ & $ < and >, plus space. (There are also a few rarely used ones that you don't need to remember).
- Unless the preamble is correct, the software won't know who to send automatic replies to!
- If the preamble is incorrect, the message may have errors, and you may be sure who it's from, in order to ask for a repeat.
- This callsign verification approach eliminates the risk of spurious callsigns appearing in Heard Lists and logs.
? * ! ; # % + @ & $ < 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 the 'chat' sentence, 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, and the station is attended, the other station operator will probably send "agn?".
The program has a 'Monitor Pane' as one of the Options Panes, 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), the station operator does not format the message correctly, or some station is calling you, but doesn't have your callsign the same as you've set it.
This is a very brief summary. For full syntax, see the Syntax tab within the program.callsign message Enables print of message at station callsignAll you do is type a callsign (or several callsigns or just allcall), followed by a command character (or space) and then, if required, a message. It really is that simple. Commands can also be relayed. There are various ramifications involved if the syntax is used improperly. Check also the FSQCALL Rules. Several other trigger characters are reserved for additional features.
callsign? Returns signal report from station callsign
callsign* Sets FSQCALL ACTIVE at station callsign if it was in SLEEP
callsign!message Station callsign retransmits message
callsign~message Station callsign retransmits message after a delay
callsign;dest_call message Station callsign relays message to dest_call with reponse relayed back
callsign#[nnn]message Station callsign stores message as or appended to nnn.txt
callsign% format Station callsign receives an image in format, either 'S' (small), 'L' (large) or 'F' (fax)
callsign+[nnn] Reads file nnn.txt from station callsign
callsign@ Returns QTH message from station callsign
callsign& Returns QTC message from station callsign
callsign$n Returns n Heard list entries from station callsign or all if n omitted
callsign> Station callsign changes to faster speed and confirms
callsign< Station callsign changes to slower speed and confirms
callsign^ Station callsign reports its FSQCALL software version
callsign|message Station callsign displays an Alert Box with message, and may sound a BEEP
allcall message Enables print of message at all stations in network
allcall#[nnn]message All stations in network store message as or appended to nnn.txt
allcall% format All stations receive an image in format, either 'S' (small), 'L' (large) or 'F' (fax)
cqcqcq message Enables print of message at all stations with CQ reception enabled
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. When chatting with FSQCALL on, your receive screen is completely free of clutter,
noise-induced characters and traffic from other stations. Sounding transmissions are also invisible, but still register in the log.
FSQCALL is also designed for management of field stations in an emergency, exercise, or sports event scenario.
FSQCALL should not be used to pass important messages (and it won't handle large files), but is absolutely ideal for
passing commands such as changing location, requesting specific information, or passing on changes to plans, schedules
and contact information. Typical messages would be 'Call John (09) 554 321', 'Prepare to receive file in RFSM8000, this QRG', or 'Check number of stage starters with marshall'. By using FSQCALL, the field stations can remain in contact without having to listen on a radio
channel (which can be very tiring), and without missing a message if they step away from the radio for some reason.
FSQCALL also works really well on VHF FM, or on VHF repeaters. Stability of equipment can be an issue on VHF, especially with narrow-band
digital modes. Using audio subcarriers on an FM transmission avoids this. In addition, if the transceiver can be operated
with the FM squelch open (you often don't need to listen anyway), FSQCALL will easily copy signals that won't open the squelch.
In fact it has been found that the sensitivity of IFK modes on FM is much better even than VHF SSB.
Operator training requirements are minimal. Practicing with a couple of laptops chatting across the clubrooms (use audio cables rather than speaker to
microphone) for an hour or so will train new operators well. Another hour spent with each operator's own HF equipment connected
would be useful in order to check out and become familiar with their digital interface, connections and settings.
Only the features that are different from general FSQ use will be described here. See
FSQ Help for help with general FSQ operation.
When FSQCALL is OFF (default state), normal FSQ operation occurs, and the program window is displayed in FSQ mode. There are two other FSQCALL states: SLEEP and ACTIVE.
Switching between these is done using an on-screen button.
When you select FSQCAL/FSQCALL ON from the Menu, FSQCALL changes to ACTIVE state, and many internal changes take
place within the program. The visible differences are the appearance of the tabbed Option Panes, the Heard List and four extras lit
buttons under the Option Panes. The size of the Transmit Pane and Waterfall are reduced to compensate.
Option Panes The Monitor will help you identify stations that are not in FSQCALL mode, and is useful for determining
why FSQCALL directions fail, for example if the checksum is wrong, the operator's procedure is faulty, or the target callsign is misspelt.
Heard List
Once a callsign has been highlighted, right-clicking the callsign opens a shortcut menu. This allows common queries and message send and retrieval commands to be
executed without typing in the TX pane.
FSQCALL has three states:
All valid FSQCALL transmissions consist of at least one target_callsign or direction, followed by a
command letter called a trigger,
then some optional text, and finished with ENTER. For example:
sends a simple sentence only to the same specific station. Other stations see nothing on their RX panes in either case.
One slight difference in FSQCALL mode, that users won't even notice, is that the callsign that prefaces each incoming sentence in the main receive pane
is a recovered and verified callsign. Unlike normal FSQ mode, it is recovered from the preamble and verified against the checksum before display.
The reception is also logged, with time stamp and signal quality.
Lights and Buttons To turn FSQCALL on and ACTIVE, click this button so that it lights. If the button isn't visible, FSQCALL is OFF, so
turn FSQCALL ON from the menu.
When a valid FSQCALL sentence is sensed, this button glows green, and reverts to light blue when the
squelch closes. If the sentence is addressed to you, it will then print.
CQCQCQ SOUND
The purpose of this message is to allow other stations to build a Heard List. The message has the lowest priority. Note that when the SOUND function is on,
your normal transmitted sentence text is not shown in the upper RX pane (normally red text). Not only are the soundings suppressed here, but normal
transmission text is as well. It is best to turn SOUND off when you are in QSO. It's not needed then anyway, as Heard Lists and Logs work equally well from QSO sentences.
MSG RX
Function Key F1
Function Key F2
The program window size is small, and fixed, allowing you to use a laptop with a modest screen, or allowing room for other applications on the screen.
The program consists of just one file, and no changes are made to the
computer's registry or anywhere else. To remove the program, simply
delete the files made during installation. A setup file is made in the
working folder. This can be deleted in order to start afresh.
CAT functions have had limited testing due to lack of suitable rigs. CAT is known to work with Icom, and some Kenwood and Yaesu rigs,
but we could do with assistance testing other transceivers.
Developers interested in writing software for FSQ and/or FSQCAL should contact
ZL2AFP (zl2afp "at" xtra.co.nz) for source code and other details.
Uses for FSQCALL
The simplest application for FSQCALL is to provide a 'watering hole' for a group of friends who wish to keep
in touch, pass messages and chat occasionally. Experience has shown that leaving your equipment running on 7105 kHz during the day,
and 3580 kHz at night, will provide fairly reliable communications over about a 500 - 1000 km range. Depending on propagation, 40m may well work day and night. Only modest power
is required. 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.
Guided Tour
Screenshot of the ZL2AFP FSQCAL software with FSQCALL on
(Click on image for a bigger view)
There are four tabs at present (more are planned). Just click on the label to switch tabs:
The list of recently heard stations is scrollable (assuming there are enough stations). If you double-click on one of the callsigns, it will appear in the TX pane
so you can use it as a message direction. Once a callsign has been highlighted, pressing Function Key F1 will also place the call in the TX pane. The general
allcall direction appears in the list by default, for your operating convenience.
Screenshot of the ZL2AFP FSQCAL software with FSQCALL on and heard list shortcut menu opened
(Click on image for a bigger view)
FSQCALL Operation
Operation will not be described in great detail. Most of what is required is covered by non-Selcall operation,
or is described in the Syntax and Rules. Once you've learned the simple syntax, it really is a simple and effective
protocol to use. Apart from typing a target or direction address (callsign) and adding the trigger character, operation is really no
different to normal FSQ mode. Examples are given in the Introducing FSQCALL section above.
No callsign verification or logging.
No response to remote commands except *. No callsign verification or logging.
SELCAL button is dark blue.
SELCAL button is light blue, turns green when Selcall opens.
zl1ee?
queries the signal strength at station ZL1EE, an automated equivalent of the Morse 'HW?' query, while:
zl1ee How are you this evening?
There are four special buttons under the Option Panes, which can be pressed and light up at various times.
SELCAL
This button is invisible when FSQCALL is OFF. It is dark blue when FSQCALL is in SLEEP. It is
light blue when FSQCALL is ACTIVE (on and running). If FSQCALL appears to be on (the Option Panes and extra buttons show),
but this button is not lit, normal FSQ operation happens, all incoming text is displayed and no automatic functions take place.
FSQCALL is effectively in SLEEP.
Sends the standard CQ message. Anyone in range with CQ reception enabled will see this message.
The button is normally dark blue, and is light blue when active.
After you've pressed this button, the program will transmit a standard sounding message (normally just the preamble),
and again every 30 minutes (default) from the time the button was pressed. If you leave text in the TX pane, this will be added to only the next queued message.
The button is normally dark blue, and is light blue when active.
The periodic soundings are very short (three seconds at default speed), and do not appear on other station's screens, only in the Heard list and log.
When an incoming message is automatically saved to file (# command), this button, normally dark blue, lights red. When you press it, the message file opens, an acknowledgement is sent, and the light goes out.
You can press the button at any time to read the most recent file (press it twice).
Pressing Function Key F1 will place the currently highlighted callsign in the Monitor Heard List into the TX pane, so it can be used as a direction.
Pressing Function Key F2 will place the last sentence sent into the TX pane so it can be repeated.
Operating Hints
Heard Log and Traffic Logs
Editing Files
Dir (direction, in or out), Date, Time, From (origin callsign), SNR/Speed, Trigger, Message (quoted message content, truncated if longer than 250 bytes).
The SNR is given for inbound messages, and the speed in baud for outbound messages.
One of two file formats may be chosen:
Log files in CVS format have extension .csv and can be analysed using a spreadsheet.
Common log format files have extension .log and are more human readable but can be easily processed by scripts.
These logs can be quite long too. It's probably a good idea to clear the file on a daily basis by choosing FSQCALL/Archive Traffic Log from the menu.
The program will archive the old file and start a new one.
Sending from file
Command Hints
Shortcut: To send a text file to a station in the heard list, left-click to select the call and then right-click to open the
shortcut menu. Choose Send File To... (#) to launch an 'Open File' dialog. Browse for the desired file and click Open to send the file automatically
without the need to type in the TX pane.
Only text files may be sent. No error correction is used.
General Hints
FSQCALL Glossary
Software Compatibility
The Windows™ software is written in ANSI C, and is compatible with Vista, WinXP, Win7 and Win8. The program requires at least a 2GHz dual core
processor, SVGA display and a 16-bit sound card. A Pentium 2 class or better is suggested. One serial port (or
USB equivalent) is required for PTT control. Memory requirements are
minimal, and the program size is about 350kB.
Credits