JS8Call takes the weak-signal technology behind FT8 and turns it into something FT8 explicitly isn't — a conversational mode. Where FT8 exchanges only callsigns and signal reports in rigid structured messages, JS8Call lets you type freeform text and have actual keyboard-to-keyboard conversations over HF, even at signal levels well below what SSB or CW requires.
Think of it as the love child of PSK31's conversational ability and FT8's weak-signal performance.
What Makes JS8Call Different from FT8
FT8: Structured exchanges only (callsign, grid square, signal report). No freeform text. Contacts take 60-90 seconds. Designed for confirming contacts quickly.
JS8Call: Full keyboard messaging. Any text you can type can be transmitted. Messages are decoded at -24 dB SNR (similar to FT8). But transmissions are longer because they carry more data.
Key capabilities JS8Call adds:
- Freeform text messages (any length)
- Directed messages (to a specific station or group)
- Store-and-forward (relay messages through other stations)
- Heartbeat beacons (announce your presence automatically)
- Group messaging (@ALLCALL, @HB for heartbeat monitoring)
- Station queries (ask another station for its grid, info, or relay capability)
Installation and Basic Setup
Download and Install
JS8Call is available for Windows, Mac, and Linux from js8call.com. It requires:
- A computer with sound card
- CAT control or VOX for your radio
- Audio interface between radio and computer (same setup as FT8/WSJT-X)
If you already run FT8 with WSJT-X, your audio interface and CAT control already work. JS8Call uses the same type of connection.
Audio Configuration
- Open JS8Call → File → Settings → Radio tab
- Set your audio input (from radio) and output (to radio)
- Set CAT control (same COM port/settings as WSJT-X)
- Set PTT method (CAT, VOX, or DTR/RTS)
- Test: click Tune → radio should transmit carrier → click Tune again to stop
Audio levels: Same principle as FT8 — set your transmit audio so the radio's ALC meter barely moves. Power output around 20-40W is typical (you don't need high power for weak-signal modes).
Station Configuration
- File → Settings → General tab
- Enter your callsign and grid square
- Set your station info string (appears when others query @INFO)
- Set your speed: Normal (default, 15 seconds per transmission frame) or Slow/Fast variants
Speed options:
- Slow: Better decoding sensitivity (-28 dB SNR). Longer transmission time. Good for difficult paths.
- Normal: Standard speed (-24 dB SNR). Best balance of speed and sensitivity.
- Fast: Quicker transmissions but reduced sensitivity (-20 dB SNR). Good for strong signals or local/regional.
- Turbo: Fastest, least sensitive. Like fast PSK31.
Most operators use Normal speed.
Frequency Selection
JS8Call has recognized calling frequencies by band:
- 40m: 7.078 MHz USB
- 20m: 14.078 MHz USB
- 30m: 10.130 MHz USB
- 80m: 3.578 MHz USB
- 15m: 21.078 MHz USB
- 10m: 28.078 MHz USB
The software shows a waterfall like WSJT-X. Signals appear as horizontal traces. Click on a signal to decode it.
Operating JS8Call
Monitoring (Passive)
Just leave JS8Call running. It automatically decodes all signals in the passband and displays them. You'll see:
- Heartbeat beacons from active stations
- Directed messages between other stations
- @ALLCALL messages (broadcast to everyone)
- CQ calls
The Activity window builds a list of all stations heard, with their grid square, SNR, and last heard time.
Calling CQ
Type in the message window and transmit. JS8Call handles the protocol:
- Click the message box
- Type your CQ message or use the macro:
@ALLCALL CQ CQ DE [your call] - Click Send
- Your message transmits in 15-second frames until complete
Or use the built-in CQ button for a standard CQ message.
Directed Messages
To message a specific station:
- Click their callsign in the Activity window (or type it)
- Type your message
- Send
The message is tagged for that station. Other stations can hear it (it's RF, not private), but the intended recipient's software highlights it.
Relaying / Store-and-Forward
JS8Call supports relay operation:
- If Station A can hear Station B, and Station B can hear Station C, but A can't hear C directly — Station B can relay messages between A and C.
- Enable relay in settings to offer your station as a relay.
- To use relay: send a message to the target via a relay station. JS8Call handles the protocol.
This is genuinely useful for emergency communications or reaching stations beyond your direct range.
Heartbeat Mode
Enable heartbeating in settings. Your station automatically transmits a short beacon every 15 minutes (configurable). This:
- Announces your presence to the network
- Lets others know you're monitoring
- Builds the station activity database
Heartbeats use minimal power and bandwidth. Other stations see your heartbeat and know they can reach you if needed.
Practical Tips
Keep Messages Concise
Each 15-second frame carries limited characters. A long message takes many frames to transmit. Unlike PSK31 where typing speed is the limit, JS8Call's limit is the encoding rate.
Short, telegram-style messages work best: "TNX FER CALL UR 559 IN GA QTH IS ATLANTA 73"
Rather than: "Thank you for the contact! You are signal report 559. I am located in the state of Georgia, specifically in Atlanta. Best wishes, 73."
Power Settings
20-40 watts is typical for JS8Call. The weak-signal decoding means you don't need big power. Running 100W doesn't help much — the receiving station's decoder has the same sensitivity regardless of your power. Lower power = less QRM to others sharing the band.
Multiband Monitoring
JS8Call supports multiple instances. Run one instance on 40m and another on 20m to monitor both bands simultaneously (requires either two radios or a radio with dual receivers).
Alternatively, check different bands at different times of day:
- 40m: evenings and nighttime
- 20m: daytime
- 30m: almost any time
Integration with APRS
JS8Call can gateway messages to APRS-IS and vice versa. Enable the APRS gateway function and messages sent to @APRSIS are forwarded to the APRS internet system. This bridges HF messaging with VHF APRS — useful for emergency communication when VHF infrastructure is damaged but HF propagation works.
JS8Call for Emergency Communications
JS8Call has become popular in the emergency communications (EMCOMM) community because:
- Works at very low signal levels — damaged antennas, QRP, compromised stations can still communicate
- Store-and-forward — messages can be relayed even if direct path doesn't exist
- Heartbeat monitoring — incident commanders can see which stations are active without polling them
- Group messaging — send to @EMCOMM or custom group tags to reach all relevant stations
- Low power requirement — runs on battery/solar easily at 20W
- Simpler than Winlink — no email server infrastructure needed
Emergency Nets via JS8Call
- Net control calls on @ALLCALL
- Stations check in via directed message to NCS
- NCS can query station status, relay messages between stations
- All activity is logged in the software
- Messages can be relayed through multiple hops if direct path fails
Limitations and Honest Assessment
Speed: JS8Call is slow. A simple exchange takes 2-5 minutes. A conversation takes 10-20 minutes. If you want fast, use SSB or CW. JS8Call trades speed for reliability and weak-signal performance.
Not private: Everything transmitted is decodable by anyone with JS8Call. Don't send sensitive information.
QSO logging: JS8Call is a messaging mode, not a contact-logging mode like FT8. Some operators log JS8Call contacts; others treat it as a messaging utility. Neither approach is wrong.
Limited adoption: JS8Call has fewer active users than FT8. During off-peak hours, you might see few or no stations on some bands. 40m and 20m have the best activity.
Software development: JS8Call development has been intermittent. The software works well but updates are infrequent. It's stable but don't expect rapid feature development.
Reader field notes — share yours
Log in to share your field notes and photos.