JS8Call

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.