JS8Call


Getting Started

Calsigns
Js8Call uses your amateur radio callsign as your primary network address and identity, allowing for direct messaging, automated relays, and group chats. By placing a specific callsign at the start of a transmission, the software automatically targets that station, even if they are unattended or on a different frequency.
Direct Calling
To initiate a private chat, you type the recipient's callsign first in your message (e.g., N6XXX HELLO). The software interprets this as a directed message.
The receiving station’s software recognizes its own callsign and alerts the operator, or logs it to their inbox if they are away
Group Calls
Js8Call allows you to direct messages to multiple stations simultaneously using group callsigns, which always start with an @ symbol (e.g., @ALLCALL, @ARRL, @LOCAL). Anyone monitoring that group will receive and decode the transmission, making it highly effective for emergency nets or club communications.
Automated Responses & Network Routing
Because your callsign acts as a unique digital identifier, you can configure your station for automated functions. You can send a heartbeat signal (using your callsign) to check who hears you. You can also leave messages for other stations by targeting their callsign, which their system will store until they return to the keyboard.
Primary uses and capabilities
JS8Call bridges the gap between deep-fringe signal decoding and highly interactive, multi-operator text messaging.

To open JS8Call

Excute the AppImage file directly from the terminal
/var/www/html/apps/js8call.sh
or by double-clicking the file JS8Call-Improved-2.5.2-x86_64.AppImage
/var/www/html/apps/JS8Call-Improved-2.5.2-x86_64.AppImage
I have also created a launcher on the panel:
It's the gear icon on the far right

Settings - Getting Started

(tr)uSDX
To operate JS8Call with a (tr)uSDX transceiver on a Linux laptop, you need to use a specific CAT emulation driver and configure audio routing through virtual loopback devices.

Core Software Solution
The primary method for Linux integration is the truSDX-Linux driver, a Python-based CAT interface available on GitHub. This driver emulates a Kenwood TS-480 radio, allowing JS8Call to control the (tr)uSDX via USB. It handles frequency synchronization, PTT control, and audio streaming over the USB connection (using UA0/UA1/UA2 commands).


Configuration


The driver and (tr)uSDX settings have already been installed on the Linux Mint 21.3 image. The below is provided for reference

The most critical setting is PTT Method: CAT, as the (tr)uSDX requires CAT control for transmission, which also disables VOX during band changes.
Essential Configuration Steps
Radio Profile:
Select Kenwood TS-480 (or Kenwood Generic) in the JS8Call/Rig control dropdown.
CAT Control:
Set to /tmp/trusdx_cat with a baud rate of 115200.
PTT Method:
Set to CAT. Ensure DTR and RTS are set to Off/None in the CAT control settings if using the native driver, or configure OmniRig if using it as a bridge.
Serial Port:
Select the correct COM port (e.g., COM8) with a baud rate of 115200.
Data/Stop/Handshake:
Set to 8/1/None.
Audio Devices:
Use Virtual Audio Cables (such as VB-Cable or Loopback) for both Input and Output. Set the Input to the cable receiving audio from the radio and the Output to the cable sending audio to the radio. Firmware:
Ensure the (tr)uSDX is running firmware version 2.00 or higher for stable USB/CAT communication.
Semi-QSK:
Set menu option 2.4 to Off for FT8/JS8Call operations; this should only be On for CW modes.
The (tr)uSDX's USB audio interface is designed to work with software like JS8Call, but proper configuration is essential for reliable operation. By following these steps, you can achieve seamless integration between the (tr)uSDX and JS8Call on a Linux system, enabling effective digital communication in the field.

To configure (tr)uSDX for JS8Call (or JS8Call-Improved), use the Kenwood TS-480 radio profile in your software's radio settings.
To configure JS8Call to work with the (tr)uSDX, follow these steps:
Before going out in the field install the driver
Driver Installation: Clone the miltonics/truSDX-Linux repository and run the setup.sh script. This installs dependencies (Python 3.12+, pyserial, pyaudio) and configures ALSA loopback or PipeWire virtual audio devices.

JS8Call Radio Settings:

.AppImage

JS8Call-Improved is distributed as an AppImage for Linux users, providing a convenient way to run the application without traditional installation. To set up JS8Call-Improved on MX Linux, follow these steps:
chmod +x JS8Call-Improved-*.AppImage
After making the AppImage executable, you can run it directly from the terminal or by double-clicking the file in your file manager.
You can then launch the application by double-clicking the file or executing it directly via the terminal. Note that because JS8Call-Improved is a fork of the original JS8Call, you may need to install additional dependencies such as libqt5multimedia5-plugins if your audio devices do not appear in the settings, which can be done with:
sudo apt install libqt5multimedia5-plugins
To change your callsign in JS8Call, open the Settings menu by pressing F2 or navigating to File > Settings.
In the General - Station tab, locate the Callsign field, enter your new amateur radio callsign (e.g., KO6LVT), and save the changes.

How to Achieve BktTimeSync-Level Accuracy on Linux

Follow these steps to use a USB GPS dongle as a primary time source
Install Required Packages
Open your terminal and install the GPS daemon and time synchronization tools (for Debian/Ubuntu-based distributions):
bash
sudo apt update
sudo apt install gpsd gpsd-clients chrony

2. Configure the GPS Daemon
Map the GPS to mount on your system (usually /dev/ttyUSB0).
Edit the gpsd configuration file:
bash
sudo nano /etc/default/gpsd
Update the DEVICES and GPSD_OPTIONS lines:
textDEVICES="/dev/ttyUSB0"
GPSD_OPTIONS="-n"

3. Configure chrony or ntp as Your Time Source
You can configure chrony to pull time from the GPS daemon instead of the internet.
Open the configuration file:
bash
sudo nano /etc/chrony/chrony.conf

Add the GPS as a local reference clock. You will typically add a line like this at the bottom of the file (refer to the GPSD Time Service HOWTO for exact syntax):
textrefclock SHM 0 poll 4 refid GPS precision 1e-1
Restart the chrony service to apply your changes:
bash
sudo systemctl restart chronyd
Alternatives to BktTimeSync for Linux
If you prefer a simpler GUI-driven method similar to BktTimeSync on Linux, you can use these software options:
JTSync: A popular tool for amateur radio users that provides clock synchronization by reading incoming FT8/WSJT-X signals and localizing callsigns.
GPSD Web Interfaces / Gpsmon: You can use built-in tools like gpsmon via your terminal to verify satellite fixes and ping your system with real-time NMEA data.

GridTacker2

GridTracker features initial, community-driven or variant support for JS8Call via specific UDP configurations or WSJT-X server emulation, though native integration historically required specific packet structures from the JS8Call application side.
You can track real-time digital decodes, map stations, and handle logging by ensuring your UDP port settings align between the applications.
Integration and Setup
JS8Call-Improved
To route traffic successfully from JS8Call-Improved to GridTracker, you must trick GridTracker into treating the data stream like standard WSJT-X data.
Because GridTracker natively uses WSJT-X data structures, you must configure JS8Call-Improved to simulate a WSJT-X server.
Configure JS8Call-Improved
Configure GridTracker
Known Limitations
No Call Roster Replies:
Due to inherent UDP structural differences, you cannot click a callsign inside the GridTracker Call Roster to initiate a reply back inside JS8Call-Improved. Replying must be handled directly within the JS8Call-Improved chat interface.
Shared Port
Shared Port Conflicts: If you also use WSJT-X for FT8, ensure both software applications are not trying to send data to the same port at the same exact time to avoid traffic collisions.
Snips from the Docs
GridTracker’s IP address and Port settings must match WSJT-X’s. If they don’t the two applications won’t be able to communicate with each other.
If you have opened WSTJ-X but don’t see “RECEIVE” in the control panel check your GridTracker settings.

At the top of the General tab the “Application Status” should read:
WSJT-X - ? - (127.0.0.1/2237)/JTDX - ? - (?)

Note: if you’re running WSJT-X and GridTracker on separate computers use multicast address 224.0.0.73.

Easy |