Table of Contents

JS8 (JS8Call/FT8Call)

JS8 is a weak signal mode similar to FT8. JS8 provides keyboard-to-keyboard chat, mailboxes, station query and more functionality.

The official JS8 website can be found at: https://js8call.com/


Get JS8

The JS8 installation is simple! JS8 is available for Linux, MacOS and Raspberry Pi.

You can download the JS8 binaries from: http://files.js8call.com/latest.html

OR - JS8 is an open source project, you can download the source from: Source code on BitBucket


Operators Guide

The Settings Menu

  1. Open the settings with F2 or the File, Settings… drop down menu.
  2. On the General - Station tab
    1. Set your Callsign, e.g., M7ABC
    2. Set your Maidenhead Grid Locator, e.g., IO94
    3. You may wish to add @OARC to your Callsign Groups
    4. You may also wish to change the default Station Info and Station Status messages, these will be described later
  3. On the General - Behaviour tab
    1. Check any behaviors you find suitable to your use
    2. If you find that Callsigns or Messages disappear from the main window too quickly, you can increase the delay it takes here, or reduce it if you think they appear for too long
    3. It is recommended not to change the End of Transmission Character Indicator as this is easily identifiable by default, this also applies to the Missing Frame Character Indicator
  4. Under the General - Networking & Autoreply tab
    1. It is recommended to ensure Pause heartbeat transmissions while in a QSO is checked
    2. Configure the other options as desired
  5. The Radio tab will allow you to setup CAT/PTT controls
  6. The Audio tab will allow you to configure the soundcard(s) used by JS8
    1. The Notification Soundcard should be set to the audio device you would usually use for headphones or speakers for you to hear, not your rig
  7. Under the Reporting tab you can configure spotting for PSKReport, APRS-IS and more
  8. We will ignore the Frequencies tab as you shouldn't need to change anything here
  9. The Saved Messages tab can be used to create standard messages which you can send to other amateurs on JS8
  10. If you want to receive notifications, you can configure them under the Notifications tab
  11. The UI tab is used for configuring the look of JS8, configure your fonts and colours here

JS8 Modes

JS8 has four (4) different speeds, each mode has a trade off between bandwidth and speed.

Mode Bandwidth Speed When to use
Slow 25Hz 30s, ~8WPM This mode is the most efficient for low power or reaching stations who struggle to hear you, however it is the slowest mode
Normal 50Hz 15s, ~16WPM This is the default mode for JS8, it provides good speed and range with good speed. Most stations will be using this mode
Fast 80Hz 10s, ~24WPM When you are being heard well by the other station, this mode allows you to send messages quicker, you may be harder to decode to some stations
Turbo 160Hz 6s, ~40PWM This is the fastest mode JS8 offers, providing high speed messaging between stations. The high bandwidth will make it much harder for some stations to hear you.

When should you switch modes?

It may be preferable to start QSOs using Slow or Normal modes, once a QSO has been established and signal reports sent, you may wish to change to a faster or slower mode based on your report and any other information provided by the other station such as if they are suffering from QSB.

Decoders

By default JS8 only decodes transmissions of the same mode as you have selected. To change this behavior check the Enable Simultaneous Decoding of All Speeds (MULTI) option under the Mode drop down menu.

From the same menu, the Decoder Sensitivity option determines how many passes the decoder uses to detect JS8 signals. The higher the value, the more processing power required, lower power systems such as the Raspberry Pi 2 may require a lower number of passes. As a reference point, a Raspberry Pi 400 is capable of processing on (4x) Four Decode Passes mode with ease.

Frequencies

JS8 has a list of builtin frequencies, you can select this from the main window by clicking on the frequency readout in the top left of your screen. If you cannot see this, click View > Show Frequency & Clock. This will be what you use to change bands, it is also the frequency which will be uploaded to PSKReporter and put in your logbook.

JS8 splits the frequency band into 3 (three) section

Frequency range (Hz) Usage
500 - 1000 This section is used for HEARTBEAT messaging
1000 - 2500 This section is used for regular JS8 operating - HEATBEATs may be sent in this region if configured in the settings menu
2500 - 2700 This section is also used for HEARTBEAT messaging

The frequency you're transmitting on can be seen in the spectrogram view as a pair of parallel red lines or under the frequency readout described above. Ensure you have your offset set within the green section of the band (1000-2500Hz).

When sending a HB, the associated HB regions will be used automatically unless configured otherwise. Once sent the transmit frequency will automatically change back to the frequency you set.

Most JS8 activity is seen on 20m and 40m. There is also plenty of JS8 activity on 11m CB.

When operating in the amateurs bands, 20m is most commonly used during the day, and 40m for the evening and night. You may be able to get messages to stations you cannot here by utilising a station on 20m during the day who can relay a message on 40m at night.

Autoreply (AUTO)

JS8 has a set of standard Query Messages which an operator may send to your station, enabling Autoreply will allow your station to reply to these message automatically. Auto mode can be enabled and disabled under the Mode menu.

Query message Purpose Response
SNR? Request a signal report from a station Signal report in DB e.g. SNR -12
INFO? Request the INFO message from a station The INFO message set in the Settings menu
GRID? Request the stations GRID location The GRID set in the Settings menu e.g., IO94
STATUS Request the stations STATUS The STATUS message set in the Settings menu
HEARING? Request a list of stations that M7ABC can hear Responds with the 4 (Four) most recently heard stations
QUERY MSGS Query the stations mailbox, do they have a message for you stored? If a message is stored, the message ID is returned
QUERY MSG <ID> Query the station for a message with <ID> Responds with the content of the message

HEARTBEAT (HB)

Heartbeats are a “Networking” mode for JS8, a station sends a HB and any station configured to Autoreply with Heartbeats enabled will respond with a signal report. Heartbeats can be sent manually or automatically every N minutes. Heartbeats are opt-in so you may see that stations on PSKReporter (and similar) are reporting they can hear you, but they may not be setup to respond to a HB. Hearbeats can be enabled/disabled under the Mode menu.

Stations that respond to HB requests may be suitable for other Autoreply messages such as those listed above.

Mailboxes

JS8 provides “Mailbox” store and forward type messages using the “MSG” and “MSG TO:” commands. These messages are stored for later reading.

The MSG command identifies to the receiving station that the message is for them and they should store it for when the operator returns.

M7ABC: 2E0XYZ MSG Hello 2E0XYZ from M7ABC!

The MSG TO: command identifies to the receiving station that the message is to be stored ready for another station to request, these messages take the form:

M7ABC: 2E0XYZ MSG TO:M0XXX Hello M0XXX from M7ABC!

For store and forward messages, if the destination station is seen sending a heartbeat, the storing station will respond to the station identifying they have a message for them, indicating the message ID. The destination station can then request the message be sent to them. This is done with the QUERY messages identified in the previous section

Relays

Similar to the store and forward mailbox feature, stations can also act as relays, where a message is sent immediately to the destination as opposed to stored and sent on request. This would allow a QSO to take place using a middle man station, note that this method of communication would be very slow.

A relay message will look like this

M7ABC: 2E0XYZ>M0XXX Hello M0XXX I am talking to you VIA 2E0XYZ

Sending messages

When responding to a station, select them in the station list on the right, here you can send them a directed message. There are some predefined messages such as the QUERY messages but also others such as REPLY which is used to respond to a CQ call and SNR which is used in response to a REPLY message. After this establishment you can use free text messaging by typing into the message box and hitting Enter/Return to send the message. You can continue to write your message while it is sending to avoid delays or doubling however, if the software reaches where you are typing it will consider this the end of the message and the new text added will be a new message which is sent, this may cause confusion so use this feature carefully.

The longer your message is, the longer it takes to send. Keep in mind your mode of operation when writing your messages, use acronyms and shorthand where possible.

JS8 QSOs can take a long time, try to keep messages as short as possible however sometimes a 5 (five) minute message is unavoidable if you're having a proper long form QSO.

If you have a good signal, try using one of the faster messaging modes, remembering to be mindful of adjacent stations as you increase your bandwidth.

If a station is operating in AUTO mode and the operator is away, this may be a good time to send them a long message using the MSG function.

Common Acronyms and Shorthand

Due to the slow nature of JS8, many operators will use a variety of acronyms in addition to QCodes to help pack more information into their messages with minimal impact to the time taken to send a message. Many of these will also be utilised in Morse Code (CW) operation.

Acronym Meaning
GM Good Morning
GA Good Afternoon
GE Good Evening
BTU Back To You
UR Your
SNR Signal to Noise Ratio
ANT Antenna
SK Silent Key - I'm going silent now - End of communication
PWR Power
NR Near
WX Weather
Q?? This is a standard Q Code https://en.wikipedia.org/wiki/Q_code#Amateur_radio

Troubleshooting

Empty spectrum

If your spectrum is showing up completely black or with a constant stream of fixed vertical lines try the following:

  1. Ensure your sound card settings are correct in the Settings > Audio section
  2. Try restarting JS8, sometimes it glitches if something has gone wrong
  3. Check that you are in the correct Sideband, you should be using USB
  4. Ensure you're plugged into the radio and have the audio levels set appropriately

I can see activity but it won't decode

  1. One common issue is accidentally moving to the wrong frequency, JS8 looks very similar to FT8 and FT4, check you're in a JS8 frequency band.
  2. If you're in band and the activity is above 2500Hz, it may be FT4 activity, there is some over lap with the common frequencies used.
  3. Check you're in USB mode
  4. Is the signal starting before/after the horizontal lines that get drawn every N seconds? If so your stations clock is out of alignment, JS8 is dependent on the system clock similar to FT8. Try fixing your system clock using NTP or using the offset control in the View > Waterfall Time Drift controls menu.

I can't find my issue or none of the above have resolved my issue

Hop into Discord, I'm sure someone can point you in the right direction.