An Introduction to JS8CALL

Most introductions to JS8CALL cover configuration and calling CQ. Whilst this is useful I feel it overlooks the power and flexibility of the mode. In this article I hope to jump straight to the more interesting capabilities.


Firstly, the very basics; the above screenshot show the band activity (left), received messages (centre) and heard callsigns (right). The band spectrum is at the bottom and operating mode indicators at the top right.

The first thing we need to to is enable to automatic functions. In the settings screen (under General->Networking & Autoreply), it’s useful to enable ‘Turn autoreply on at startup’. Also, from the main UI, right clicking on the top right control and enable AUTO, HB and ACK.

We’re now set up for most of the more interesting functions of JS8CALL.

Callsign Groups

Firstly, let’s consider callgroups. Callgroups enable us to send and receive bulletins to groups of users. These may be local, regional, club or special interest groups.

Firstly we have the @ALLCALL group by default, this enables us to send and receive messages to ‘all stations listening’. This is particularly useful for automated functions; we’ll return to this below.

Here’s you’ll also see I’ve added @CV19, @EU and @QRP groups. I can now send and receive messages to all other stations listening for the same group calls.

An example message from the @CV19 group callsign

The above screenshot shows a message/bulletin received via the @CV19 group call. Standard groupcalls are listed in the JS8CALL documentation:


In addition to the above groups, I’ve also seen the following commonly used on the bands:


Most are self explanatory. The callgroup @RETRO has been used amongst a few of my friends who have a shared interest in classic computing (Atari, Amiga, etc).

Call groups can be added and removed by simply right clicking in the right ‘Callsigns’ panel and clicking ‘Add New Station or Group’.

If you use additional callsign groups which could be of interest to others, please let me know and I’ll add them above.

Automated Functions

This is where things now get really interesting. JS8CALL includes both relay and mailbox-type functionality. I’m located in Finland and wish to contact a UK station, however propagation is not in my favour. Rather than passing a message directly to the destination, perhaps I can find another station who can hear both of us, and ask them to relay?

Message Relaying

The automated functions of JS8CALL

So, I want to ask @ALLCALL if anyone can hear the recipient. I right click on the @ALLCALL group call, select ‘Directed to @ALLCALL’ and then ‘QUERY CALL [CALLSIGN]?’. I then edit the message in the outgoing message box, replacing [CALLSIGN] with my required destination.

Who is hearing M0SUY (captured whilst in TX, hence strikethough)

The extra characters above (FE4) are a checksum, added automatically to every message sent. I then receive two replies:

Two stations auto-reply: OH2FXD and DG8ACD

Now, I ask DG8ACD to relay a test message to MOSUY (right click on DG8ACD, select ‘Relay Via’, add destination callsign and message. I then click ‘Send’:

DG8ACD, relay following message to M0SUY

Neat! M0SUY can then relay a message back using the same (or different) route.

Message Storage

But, what if the recipient is offline or changing propagation means he/she is otherwise unable to receive my message?

Right click on a callsign, select ‘Directed To …’ and view the list of automated functions again:

JS8CALL ‘Directed To’ options

Why don’t I ask the intermediate station to store a message for later retrieval by the recipient?


“EI2GYB, please store the message ‘TEST MESSAGE’ for later retrieval by M0SUY”

Message Retrieval

In a similar fashion, when I start JS8CALL my first call is usually to @ALLCALL and “QUERY MSGS – Does anyone have any messages for me?”. If a station responds, I can then QUERY MSG [ID] ‘please send me message number x’ to receive the message.

Additional Thoughts

JS8CALL’s decentralised message storage and relay functionality is both incredibly useful and enjoyable to use. Multiple relays can also be used; it isn’t limited to only one hop. Plus, combination messages can be constructed.

For example, I can ask EI2GYB ‘who are you hearing?’, I can then ask EI2GYB to forward a message to one of these distant stations and ask ‘who are you hearing’? I can then ask both stations to relay a message to a third, and so on.

Message passing (or more typically storage) is also possible between bands, with some nodes automatically switching bands at different times of day.

I encourage everyone to explore these functions in more depth as they really bring a lot to the mode. The author (KN4CRD) has more advanced features planned, some of which are mentioned here in the ‘Temporarily Offline’ interview:

I hope you found this interesting.

Now, please explore JS8CALL and more importantly – I’d really enjoy receiving some messages using the mode. I’m located in Northern Europe and typically active on 40m. Find some relays, store some messages for me – I promise to respond to every message received. Also, if you have any more callgroups of possible interest to others, let me know and I’ll add them to the relevant section above.

Finally, all callsigns mentioned in above examples were taken from my recently heard ‘CALLSIGN’ list.

73 & GL


This entry was posted in Uncategorized and tagged , , , , . Bookmark the permalink.

6 Responses to An Introduction to JS8CALL

  1. xaver says:

    Very interesting, thank you very much for this description. Fascinating SW JS8call.

    vy 73 de hb9bms // xaver

  2. N6GRG says:

    I’d like to send a message to a station on APRS from JS8CALL. I’ve done it once, and didn’t realize I was successful till later. I know there is a tight set of punctuation for it and would like to see a simple example line where I can put in my to “call” and message. I’d rather do it that way, not the extra api method. Any help or ideas ?

  3. Mark McNulty says:

    I see “call signs” on JS8call that don’t look like call signs and have forward slashes in the….what the hell are these?

  4. Dave says:


    Great information. I have just discovered JS8 and only beginning to learn it’s capabilities. Seem like this has all the fun and potential of packet without the cumbersome configuration.

    73 and good DX,

  5. Albert Kleyn says:

    Many tks for this detailed explanation. The Right clicking on ALLCALL to query MSGS is very useful and had escaped me… I did not know you could click on the ALLCALL group itself.
    Am most grateful for your time and effort going into detail on this. Yes.. you are right… very few msg or QSO’s but many endless heartbeats… which indeed are necessary to keep the network functioning. Say hello to Julian for me OH8STN.
    Many thanks.

  6. Hey buddy, hope you are good. JS8 is very interesting, I wonder how you have been getting on with your HERMES radio and whether JS8 is still alive and kicking since you wrote this article.. 73!

Leave a Reply

Your email address will not be published. Required fields are marked *