JS8Call: Real-Time Messaging over HF — Keyboard-to-Keyboard on Shortwave

Amateur RadioDigiModes
This page has been automatically translated. Errors may occur.

If you know FT8, you know the trade-off: fantastic weak-signal performance, but no room for real conversation. What if you could combine the robustness of FT8 with the freedom of free-form text messaging? That is exactly what JS8Call delivers — a keyboard-to-keyboard messaging system for shortwave that works even under the harshest conditions. While FT8 is like speed dating — a brief exchange, then on to the next — JS8Call enables genuine conversations across thousands of kilometres.

What is JS8Call?

JS8Call is software for digital amateur radio that enables free-form text messaging over shortwave. The mode was originally developed by Jordan Sherer (KN4CRD), building on the WSJT-X codebase. The underlying protocol is called JS8 and uses the same 8-GFSK modulation as FT8 — but with one crucial difference: instead of fixed message formats, operators can send freely composed text.

The analogy is apt: FT8 is like a form — you tick boxes and fill in mandatory fields. JS8Call, on the other hand, is like a chat application. You type what you want to say, and the software transmits it character by character over shortwave. This makes JS8Call a unique tool for anyone who wants more than just exchanging callsigns and signal reports.

The technology behind JS8Call

Technically, JS8Call is based on the same 8-GFSK modulation (Gaussian Frequency Shift Keying with 8 tones) that FT8 uses. Eight carriers are spaced 6.25 Hz apart. In Normal mode, the bandwidth is approximately 50 Hz — extremely narrow, enabling efficient spectrum use.

Decoding works down to a signal-to-noise ratio of -24 dB in Normal mode. This means JS8Call signals can still be received when they are far below the audible noise level. Time synchronisation matters — the PC clock must be accurate to roughly plus or minus 2 seconds UTC. Unlike FT8, however, JS8Call includes built-in automatic time synchronisation that can correct drift.

The protocol transmits messages character by character across consecutive transmission windows. Depending on the chosen speed, each window lasts between 6 and 30 seconds. Longer messages are automatically split across multiple windows. It feels like a slow chat — you watch the other station's message appear piece by piece.

Four speed modes

JS8Call offers four transmission speeds that can be selected based on conditions:

  • Slow: 30-second windows, approximately 25 Hz bandwidth, decoding down to -28 dB SNR, about 8 WPM. Ideal for extremely weak signals and difficult conditions.
  • Normal: 15-second windows, approximately 50 Hz bandwidth, decoding down to -24 dB SNR, about 16 WPM. The default mode and the best choice for getting started.
  • Fast: 10-second windows, approximately 80 Hz bandwidth, decoding down to -20 dB SNR, about 24 WPM. For stronger signals and smoother conversations.
  • Turbo: 6-second windows, approximately 160 Hz bandwidth, decoding down to -18 dB SNR, about 40 WPM. For strong signals when speed matters.

The rule of thumb: start in Normal mode and upgrade to Fast or Turbo when the signal is strong. In poor conditions, switch to Slow. During a QSO, you agree on the mode change by message before switching.

Network features: more than just QSOs

What sets JS8Call apart from other digital mode programs are its built-in networking functions. The system is far more than a simple chat application:

  • @ALLCALL: The equivalent of a CQ call. Messages to @ALLCALL are decoded by all stations within range. Ideal for announcing your presence or sharing general information.
  • @HB (Heartbeat): Automatic beacons transmitted at regular intervals. They show other stations that you are active and reachable. The heartbeat includes your callsign and locator.
  • @GROUP: Organised group calls for nets and round tables. You can define your own groups and decode only messages for your group.
  • Directed messaging: Targeted messages to a specific callsign. The system notifies the recipient visually and acoustically.
  • Relay/Mesh: The ">" operator enables message forwarding via intermediate stations. If station A cannot reach station C directly, the message can be relayed through station B. This creates a genuine mesh network on shortwave.
  • Store-and-forward: The mailbox function allows storing messages for stations that are not currently active. The recipient can retrieve the message later using the "QUERY MSGS" command.

APRS and SOTA integration

JS8Call provides direct integration with two popular amateur radio systems:

APRS-IS Gateway (@APRSIS): Using the @APRSIS GRID command, you can report your position to the APRS-IS network — entirely without VHF equipment or internet access. Your position is sent over shortwave to a gateway station that feeds it into the APRS-IS network. With @APRSIS CMD, you can even send raw APRS packets. This is an enormous advantage for portable stations and outdoor activities.

SOTA Self-Spotting (@SOTA): Summit activators can spot themselves directly via JS8Call on SOTAwatch without needing mobile phone reception. You send your SOTA reference and frequency to @SOTA, and a gateway station handles the spot. This makes JS8Call an ideal companion for SOTA activators in areas without mobile coverage.

Setup and getting started

Installing JS8Call is straightforward. The current version is maintained by the JS8Call-Improved team and is available at js8call-improved.com. The software is available for Windows, macOS and Linux.

For operation you need:

  • An HF transceiver with an audio interface (USB audio on modern rigs, or an external interface such as SignaLink USB)
  • CAT control for frequency management (serial or USB)
  • A computer with a sound card and internet access for time synchronisation

After installation, enter your callsign and Maidenhead locator, configure the audio inputs and outputs, and set up the CAT connection to your transceiver. The setup is nearly identical to WSJT-X — anyone already running FT8 can have JS8Call configured in a few minutes. Transmit power should be moderate: 10 to 20 watts is perfectly adequate in most situations.

Standard frequencies

JS8Call has its own calling frequencies, which differ from the FT8 frequencies. The most important:

  • 80 m: 3.578 MHz
  • 40 m: 7.078 MHz — the most active band, especially during evenings and nights in Europe
  • 30 m: 10.130 MHz — consistently active, a good balance between range and reliability
  • 20 m: 14.078 MHz — the primary DX band for intercontinental contacts
  • 17 m: 18.104 MHz
  • 15 m: 21.078 MHz
  • 10 m: 28.078 MHz
  • 6 m: 50.318 MHz
  • 2 m: 144.178 MHz

For getting started, try 40 m (7.078 MHz) in the evening or 20 m (14.078 MHz) during the day. You will nearly always find active stations there.

QRP and emergency communications

Thanks to its outstanding weak-signal characteristics, JS8Call is ideal for QRP operation. Reliable contacts over hundreds of kilometres are possible with just 5 watts. With 20 watts, intercontinental paths open up — all with minimal power consumption.

This makes JS8Call especially interesting for emergency communications (EMCOMM). The advantages are clear:

  • Free text: Unlike FT8, actual messages can be transmitted — situation reports, coordinates, requests.
  • Relay capability: Messages can be forwarded through intermediate stations when no direct path exists.
  • Store-and-forward: Messages can be stored for later retrieval.
  • Low power requirements: Operation with a solar panel and battery is straightforward.
  • No internet required: JS8Call operates entirely autonomously over shortwave.

IARU Region 1 uses JS8Call in emergency communication exercises, and many EMCOMM groups worldwide employ the mode for training scenarios. A typical emergency setup consists of a Raspberry Pi, a QRP transceiver and a solar panel — compact enough for a backpack.

Comparison with other modes

How does JS8Call fit among the digital modes? An overview:

JS8Call vs FT8: FT8 is faster and has far more users, but free-form text messages are not possible. FT8 excels at quick QSOs and DX chasing; JS8Call excels at genuine communication. Both use the same modulation but with different philosophies.

JS8Call vs Winlink: Winlink is an email system over radio — asynchronous, formal, ideal for exchanging forms and documents. JS8Call is real-time communication, spontaneous and direct. Winlink uses VARA or Pactor modulation and generally requires more bandwidth and stronger signals.

JS8Call vs VarAC: VarAC uses the VARA modem and offers higher data rates, file transfer and image transmission. However, VarAC requires stronger signals and more bandwidth. JS8Call excels in weak-signal conditions and does not require time synchronisation via internet or GPS — an advantage for off-grid operation.

JS8Call vs APRS: APRS operates primarily on VHF (144.800 MHz in Europe) using packet radio. JS8Call offers similar position-reporting functions but on shortwave with significantly greater range. For HF-based position reporting, JS8Call is the first choice.

The community and JS8Call-Improved

Development of the original JS8Call project by KN4CRD stalled after version 2.2.0 for several years. A dedicated development team — including W6BAZ, K0OG and AC9KH — continued the project under the name JS8Call-Improved. The legacy Fortran code was ported to C++, the software was updated to Qt6, and numerous improvements were implemented. Jordan Sherer has since joined the JS8Call-Improved team and has requested that the software be released again under the original JS8Call name.

The community organises through the groups.io mailing list, where discussions, tips and announcements are shared. A particular highlight is the monthly JS8 QSO Party, held on the second Saturday of each month. This all-day event has a different theme each month and is an excellent opportunity to get acquainted with the mode. The atmosphere is friendly and patient — perfect for newcomers.

JS8Call impressively demonstrates that digital modes and genuine communication need not be mutually exclusive. Anyone wanting more than just swapping callsigns and seeking the fascination of keyboard-to-keyboard contacts across thousands of kilometres should give JS8Call a try. The barrier to entry is low, the possibilities are vast — and the community welcomes every new station on the air.

73 – your oeradio.at editorial team


Transparency Notice

This article was researched and written with the assistance of AI (Claude, Anthropic). The editorial team has reviewed and edited all content. Despite careful review, occasional inaccuracies may occur — we welcome corrections via email to [email protected].

How do you rate this article?
No cookies are set. Only your rating, optional feedback, and an anonymised IP hash (to prevent duplicate votes) are stored. Privacy policy

RSS Feed

Stay up to date!

Never miss an update – subscribe to our RSS feed

„Wire and will, we’re breaking through –Share · Connect · Create!“

You build antennas, activate summits, experiment with SDR, or hack Meshtastic nodes? OERadio.at is your platform. Share your knowledge – as an article, build guide, field report, or tech tip. Whether experienced YL or OM, freshly licensed or old hand: Your experience matters.