JS8Call is a weak-signal digital mode built on the same foundation as FT8 but designed for something FT8 deliberately avoids — real conversation. Where FT8 is a tightly scripted contact exchange, JS8Call lets you type freely to other operators, send messages that get relayed across a network of stations, and participate in group nets, all at signal levels far below what SSB voice requires.
If FT8 is a postcard, JS8Call is a text message. It is slower and more deliberate, but it lets you actually say something.
How JS8Call Works
JS8Call transmits in fixed time slots like FT8, but the slots are longer — 15 seconds in the default Normal speed mode — and the content is free-form text rather than a scripted exchange. Your typed message is broken into chunks and transmitted sequentially, with each chunk decoded independently by receiving stations.
JS8Call operates at several speed settings:
Slow (30 seconds) — Maximum weak-signal performance. Useful for very difficult propagation.
Normal (15 seconds) — The standard mode. Best balance of speed and sensitivity. Most activity is here.
Fast (10 seconds) — Faster throughput at the cost of some weak-signal performance.
Turbo (6 seconds) — For strong signal conditions where speed matters more than sensitivity.
Most operators use Normal mode. Slow mode is worth knowing about for marginal band conditions or emergency situations.
What You Need
The hardware requirements are identical to FT8. You need an HF transceiver, a PC, and an audio interface connecting the two for audio in/out and PTT. A SignaLink USB or DigiRig Mobile both work perfectly with JS8Call using the same cable and configuration you would use for WSJT-X.
Accurate time is just as important as with FT8. Keep your PC clock synced to within one second using Windows Time Service or chrony/ntpd on Linux.
Installing JS8Call
JS8Call is a separate application from WSJT-X, though they share the same underlying signal processing technology.
Download it at js8call.com
Windows: Download and run the installer. JS8Call will install and create a desktop shortcut.
Linux: Download the .deb package for Debian/Ubuntu-based systems and install with:
sudo dpkg -i js8call_*.deb
sudo apt-get install -f
For other distributions, use the tarball or check your package manager.
Configuring JS8Call
Open JS8Call and go to File → Settings.
Station tab:
Enter your callsign and grid square. Same as WSJT-X — for Ocala that is EL89.
Audio tab:
Select your USB audio interface as both the Input and Output device. Same device you use for WSJT-X.
Radio tab:
Configure CAT control if your radio supports it. For the IC-718, select the correct COM port (Windows) or /dev/ttyUSB0 (Linux) and match the baud rate to your radio’s CAT settings. PTT can be set to CAT, RTS, or VOX depending on your interface — SignaLink users should use VOX, DigiRig users should use RTS or CAT per their cable documentation.
Reporting tab:
Enable PSK Reporter spotting to upload your spots and see who is hearing you. Also consider enabling the JS8Call API if you want to integrate with other tools or logging software.
Audio Levels
Audio level setup is the same as FT8. Watch your radio’s ALC meter — it should barely move during transmit. Start with PC audio output at 50% and increase slowly. Keep power to 25–50W on a 100W radio. JS8Call is a continuous duty cycle mode like FT8 and will stress your finals if run at full power for extended periods.
Common JS8Call Frequencies
Set your radio to USB mode. Standard dial frequencies:
80m: 3.578 MHz
40m: 7.078 MHz
30m: 10.130 MHz
20m: 14.078 MHz
17m: 18.104 MHz
15m: 21.078 MHz
10m: 28.078 MHz
20m and 40m see the most activity. 40m is particularly useful in the evening and overnight for regional contacts.
Making Your First Contact
Once JS8Call is configured and you can see decoded messages appearing in the activity window, you are ready to make contact.
To call CQ, type your message in the transmit window at the bottom:
CQ CQ WZ4JM EL89
Click Transmit or press Enter and JS8Call will queue your message for the next available slot.
When another station responds, their message will appear in the activity window with their callsign. Click their callsign to direct your reply to them specifically. JS8Call will automatically address your outgoing message to that station.
Conversations flow naturally from there — type your message, hit transmit, wait for their reply. The rhythm is slower than voice but surprisingly engaging once you get used to it.
Store and Forward Messaging
One of JS8Call’s most useful features is store-and-forward messaging. You can leave a message for a callsign that is not currently on the air, and any JS8Call station that is running as a relay (called a Heartbeat station) will hold that message and deliver it when the destination station comes online.
To send a stored message:
In the transmit window, type:
@WZ4JM MSG Hello, this is a test message
Any relay station that hears this will store it. When WZ4JM comes online and sends a heartbeat, relay stations will forward the stored message automatically.
To check for messages waiting for you, send:
WZ4JM QUERY MSGS
Relay stations that heard you will respond with any stored messages addressed to your callsign.
This makes JS8Call useful for low-bandwidth asynchronous communication — similar in concept to Winlink but without requiring a gateway station or internet connection at either end.
Heartbeat and Relay Operation
A Heartbeat is an automatic periodic transmission JS8Call sends to announce your presence on the band. Enabling Heartbeat in the settings tells other stations you are active and makes you eligible to act as a relay for store-and-forward messages.
To enable Heartbeat go to File → Settings → Heartbeat and set a heartbeat interval. The default is every 15 minutes. Running with Heartbeat enabled makes you a useful node in the JS8Call network and helps other operators know who is active.
Group Messaging
JS8Call supports group addressing, allowing you to send a message to a named group rather than a specific callsign. Any station monitoring that group will receive the message.
Predefined groups include:
@ALLCALL — Heard by all JS8Call stations
@JS8NET — The general JS8Call network group
@EMCOMM — Emergency communications group
@SKYWARN — Weather spotters
You can also create custom groups for nets, clubs, or regional activity.
To send to a group:
@ALLCALL DE WZ4JM EL89 Good morning from Ocala FL
Group messaging is particularly valuable for emergency communications nets where you want all participating stations to receive the same message simultaneously.
APRS-Like Position Reporting
JS8Call includes a built-in position reporting feature that works similarly to APRS. When enabled, JS8Call will periodically transmit your grid square as part of your heartbeat, and stations that hear you will record your position. Some gateway stations upload these positions to a mapping network.
Enable position reporting under File → Settings → Heartbeat by including your grid square in the heartbeat message. A 6-character grid (EL89xx) gives more precise location information than a 4-character grid.
JS8Call vs FT8 — When to Use Which
Both modes have their place. FT8 is the right tool when you want to maximize contact count, work DX efficiently, or operate under difficult conditions with minimal effort. JS8Call is the right tool when you want to actually communicate — exchange information, check in with a net, pass traffic, or have a real conversation with another operator.
Many stations run both. WSJT-X and JS8Call can run simultaneously on the same computer as long as they are on different bands or using different audio devices — they cannot share the same radio and audio interface at the same time on the same frequency.
Further Reading
JS8Call website and downloads — js8call.com
JS8Call groups.io mailing list — groups.io/g/js8call — active community and support
PSK Reporter — pskreporter.info — see who is hearing your JS8Call transmissions
Jordan Sherer KN4CRD — the developer of JS8Call. Follow his updates on QRZ and the mailing list for the latest development news.
73 de WZ4JM — feel free to reach out via the Contact page with any questions about getting JS8Call running.