Use of JS8Call Messages for Exercises or Emergencies

Using these messages can be useful during exercises, operations or emergencies to reach others as the messages can be accurately conveyed over extremely long distances. It is preferable to try to use messaging with acknowledgements for important messages. One of JS8Call’s primary strengths is to be able to store a message at your station or a 3rd party, for later retrieval by the destination station (store and retrieve) so use this tactically to your advantage especially as propagation conditions vary, and also consider how special group call signs can be used to your advantage to target specific stations.

Thanks to Alister ZS1OK (now ZS2OK) for providing a lot of valuable input below.

Consider printing out this webpage and keeping it available for offline use during emergencies.

Preferred Settings

  • Ensure ‘Auto Reply’, ‘Enable Heartbeat Network’ and ‘Enable Heartbeat Acknowledgements’ are all enabled.
  • Ensure the TX button is green on the software otherwise your station will not respond with replies. Default settings can have this disabled in some cases.
  • Enable ‘Simultaneous decoding of All Speeds’ on PCs and Raspberry Pi 4’s. Raspberry Pi 3’s may suffer.
  • JS8Call frequency for 60m in ZA (is not a default in the software):    5,163 kHz
  • Consider updating your Station Info in settings (Settings->General->Station) to reflect alternative means of contacting your station as this will be broadcast to PSKReporter site as well as to querying stations eg. ‘I am monitoring 145.700MHz repeater’ or ‘Relay via ZS1DCC’.
5wkfyvj61kJpBD1IfaUZupZxuWqkl3gW9JflfAJrIl4HHHe5Tk9I0APvHOzScb3vhzns4OP3lx43nOd13GXoAWYNZiBq4TQ1a2oiAxKQGLT4WanOn7ZhOsiUuJ1zSUrWI lEz7zb
JS8Call application screen

Valuable Operational Tips

  • For operation in a very busy environment (exercise or emergency), select a single TX frequency band and try stick to it. Frequency hopping confuses everyone. An exception may be if there are a few bridging stations which can relay manually between two bands which are in use (not everyone can operate on multiple bands). With such bridging you end up with two isolated bands where stations cannot communicate to stations on the other band.
  • When you hover your mouse over a callsign in the right-hand ‘Calling Stations (CQs) Screen’ it opens a small window which shows which stations that callsign can hear, and who can hear that callsign.  Use this info to plan your message relays via those 3rd parties.
  • Use the JS8Call message store and forward capabilities – it takes most of the effort from you. Other stations should be calling QUERY MSGS to check for stored messages.
  • When using Stored Messages, you will receive an ACK when your message is successfully received (it is a checksum that checks the message is fully and correctly received).  If you don’t receive an ACK, then you know you have to resend the message, until you get an ACK.  Use this functionality instead of repeatedly trying to ask a station if they have received a direct message.
  • Store messages locally on your stations for others to collect.  Then you have no pain.  GOLDEN TIP: When others beacon (Send Heartbeats), your station replies that it also has a message for them (WATCH out for that appended MSG in a beacon ACK). This means a plain Heartbeat will also be checking for stored messages for you = less messaging traffic!
  • Query either @ALLCALL or other relevant JS8Call group for messages.  Then retrieve messages from them using the  MSG ID they provide.
  • Store messages for later retrieval at stations who can hear your destination station ie. a 3rd party both of you can reach.
  • As one gets to know JS8Calls in-depth messaging features, it helps to make life much easier for you.  It takes time to get to know and test these features – and messages don’t always get through correctly as well – hence the notion to use the ACK feature built-in to JS8Call.
  • For JS8Call to respond appropriately for Emcomm use it has to be configured correctly and using it to auto-respond as much as possible. This allows stations to operate without manual intervention for relaying, storing messages, sending ACKs, proving station INFO or STATUS, and more. The more stations available in this manner, the more nodes there are to cover blind spots.
  • Be aware that if a station is selected (highlighted) in right-hand window the messages are only directed to that station and will not go out to a group or anyone else. This is a common operator error. Right-click on the selected station choose ‘Deselect’ or click on the ‘Deselect’ button below the message input box.
  • Consider when an operation or exercise begins, to first dedicate a period of time to identify all stations and locations before messaging just commences. If station info in JS8Call has been temporarily replaced with operational info, a simple @group INFO? or even @ALLCALL INFO? will return that information. 
  • To be verified still: If a team comprises two or more stations working together, they could set their team name as a @group in JS8Call (up to 8 characters) so that any message sent to that @group which reach whatever stations were participating in it. Need to verify if such messages directed to the group would highlight in colour like messages directed to a station.
  • Having your computer/Pi time to within a second accuracy is quite important as all messages start/stop within standard timeframes. If you do not have access to the Internet you can consider purchasing a GPS dongle such as the U-blox7. They attach via the USB port and there are many free apps to read the time and set the computer time accordingly.
  • Note that in Cape Town, HAMNET tries to keep the ZS1DCC JS8Call station active 24/7 on 40m as well as 2m for the purpose of acting as an automatic relay station, and for storing messages for later retrieval.

For the message direct/relay/storage/retrieval examples below we’ll have four stations (text in blue is what you would type into the outgoing message box (TX), obviously adapting the callsigns for your own scenario):

  • Sender = ZS1SND
  • Receiver = ZS1RCV
  • 3rd Party (relay) Station = ZS13RD (OK I know it’s not a valid callsign format)
  • 4th Party (relay) Station = ZS14TH
  • @ZA = A custome group defined in JS8Call called @ZA

Trying to Locate the Receiver Station

If the Internet is up you can have a look at or to see if the station is receiving your heartbeat. You may also be able to see what other stations are nearby which you can reach.

If the Internet is down you can also send out the following messages to try to locate that receiver station:

  • Try first getting a response directly:  ZS1RCV SNR? and if a signal report comes back you are in direct contact.
  • ‘Is anyone hearing ZS1RCV’ goes out to all stations which can receive your signal: @ALLCALL QUERY CALL ZS1RCV (you will receive back a YES from stations that can – you can then try relaying through stations which replied yes).
  • ‘What stations are you hearing’ to a nearby group (message only directed to that group so be sure all targeted members belong to the group otherwise they won’t respond) for anyone they can hear: @ZA HEARING? or a remote station that may be nearer to that station: ZS13RD HEARING?
  • You can also query where stations are located to try find out who is nearby a station you are trying to reach (assuming you know where the destination station is located) with @ZS GRID? where the maidenhead locator will be returned.
  • If the Internet is not available for sending SPOTs to PKSReporter, it is important to then have your station set to respond to heartbeats from other stations, otherwise they will have no way of knowing where their signals are being received.

Ways to Message the Receiver Station

  • Direct message if you can reach the station (no acknowledgement and can send while you continue to type): ZS1RCV this is my message
  • Direct message into their inbox with pop-up notifier on their side and an automatic ACK sent to you when their station has received the full and correct message (more reliable than a plain directed message): ZS1RCV MSG this is my message
  • Store/Save a message at a 3rd party (intermediate) which can receive ZS1RCV: ZS13RD MSG TO:ZS1RCV this is my message and when the recipient queries for any messages they will see it waiting for them at ZS13RD. You cannot store messages to a group – they must be directed to a station to store.
  • Relay message if 3rd parties and receiver are online (no space between ‘>’ and ‘callsign’ while typing in message box, you will receive back an automatic ACK from the destination station via the relay to acknowledge:
    • ZS13RD>ZS1RCV>MSG this is my message (will go into their inbox)
    • ZS13RD>ZS1RCV>this is my message
    • ZS14TH>ZS13RD>ZS1RCV>this is my message
  • You can also save a message in your own local mailbox for them to retrieve later on when they query for messages: Right-click on their station name in the right-hand window for Calling Stations (CQs) and select Store option. Your station needs to remain online for them to retrieve it.
  • Ask remote station to resend last message: ZS1RCV AGN
  • As you type your message you’ll see the send button display the transmission time it’ll take to send your complete message.
  • Just type words and sentences and let the code compress it efficiently.

Checking for messages left for you

Do this every 30 mins or so if an exercise or emergency:

  • Query all stations (I’ve saved this in my saved messages in JS8Call Settings as it is the broadest possible query – stations only respond if they have a message for you): @ALLCALL QUERY MSGS.
  • Or just query a group if used, such as @ZS: @ZS QUERY MSGS (In South Africa we informally started using @ZS for any SA stations). Your operation may have a special group name (or even team names as a JS8Call group) allocated – make sure you add it in the JS8Call Settings otherwise your station won’t respond to the group being called.
  • When sending a heartbeat look for a MSG X at the end of an acknowledgement you get back, this indicates that station has a message number X (whatever the number) that you can retrieve from it. This is the quickest and least traffic option of sending a heartbeat and checking for messages with one transmission! Note the message number returned is the oldest message waiting for you, so another query may reveal another newer message also waiting (the response does not indicate how many messages).
  • To retrieve and read the complete stored message: ZS13RD QUERY MSG X (where X is number of the message)

Replying to Directed Messages

  • You do not need to include your callsign when initiating your directed replies. They will be prefixed to your message automatically when you have a callsign selected in your heard list.
  • You do not have to reply on the same frequency offset as the caller. But, if you’re calling another station off their frequency, you need to include their callsign at the beginning of the message so it is directed to them and will show up in their yellow directed activity window.

[I need to test relayed messages a bit to explain more about replying to them here]

Useful queries

  • Try relaying a query to check a station’s information for additional useful information they may have posted: ZS13RD>ZS1RCV>INFO?

Call Activity Status

  • A ★ indicator will be displayed next to their callsign. This helps you find, at a glance, other operators that are confirmed to be able to hear you.
  • If a station has left you a message, a ⚑ indicator will be displayed next to their callsign. You can read that message by right-clicking on the station and clicking “Show Message Inbox”.

Updated: 2022-04-29