====== JS8 (JS8Call/FT8Call) ====== JS8 is a weak signal mode similar to FT8. JS8 provides keyboard-to-keyboard chat, mailboxes, station query and more functionality. The official JS8 website can be found at: [[https://js8call.com/|https://js8call.com/]] ---- ===== Get JS8 ===== The JS8 installation is simple! JS8 is available for Linux, MacOS and Raspberry Pi. You can download the JS8 binaries from: [[http://files.js8call.com/latest.html|http://files.js8call.com/latest.html]] OR - JS8 is an open source project, you can download the source from: [[https://bitbucket.org/widefido/js8call/src/js8call/|Source code on BitBucket]] ---- ===== Operators Guide ===== ==== The Settings Menu ==== - Open the settings with **F2** or the **File, Settings...** drop down menu. - On the **General - Station ** tab - Set your Callsign, e.g., M7ABC - Set your Maidenhead Grid Locator, e.g., IO94 - You may wish to add **@OARC** to your Callsign Groups - You may also wish to change the default **Station Info** and **Station Status** messages, these will be described later - On the **General - Behaviour** tab - Check any behaviors you find suitable to your use - If you find that Callsigns or Messages disappear from the main window too quickly, you can increase the delay it takes here, or reduce it if you think they appear for too long - It is recommended not to change the **End of Transmission Character Indicator** as this is easily identifiable by default, this also applies to the **Missing Frame Character Indicator** - Under the **General - Networking & Autoreply** tab - It is recommended to ensure **Pause heartbeat transmissions while in a QSO** is checked - Configure the other options as desired - The **Radio** tab will allow you to setup CAT/PTT controls - The **Audio** tab will allow you to configure the soundcard(s) used by JS8 - The **Notification Soundcard** should be set to the audio device you would usually use for headphones or speakers for you to hear, not your rig - Under the **Reporting** tab you can configure spotting for PSKReport, APRS-IS and more - We will ignore the **Frequencies** tab as you shouldn't need to change anything here - The **Saved Messages** tab can be used to create standard messages which you can send to other amateurs on JS8 - If you want to receive notifications, you can configure them under the **Notifications tab** - The **UI** tab is used for configuring the look of JS8, configure your fonts and colours here ==== JS8 Modes ==== JS8 has four (4) different speeds, each mode has a trade off between bandwidth and speed. ^ Mode ^ Bandwidth ^ Speed ^ When to use ^ | Slow | 25Hz | 30s, ~8WPM | This mode is the most efficient for low power or reaching stations who struggle to hear you, however it is the slowest mode | | Normal | 50Hz | 15s, ~16WPM | This is the default mode for JS8, it provides good speed and range with good speed. Most stations will be using this mode | | Fast | 80Hz | 10s, ~24WPM | When you are being heard well by the other station, this mode allows you to send messages quicker, you may be harder to decode to some stations | | Turbo | 160Hz | 6s, ~40PWM | This is the fastest mode JS8 offers, providing high speed messaging between stations. The high bandwidth will make it much harder for some stations to hear you. | ** When should you switch modes? ** It may be preferable to start QSOs using **Slow** or **Normal** modes, once a QSO has been established and signal reports sent, you may wish to change to a faster or slower mode based on your report and any other information provided by the other station such as if they are suffering from QSB. ==== Decoders ==== By default JS8 only decodes transmissions of the same mode as you have selected. To change this behavior check the **Enable Simultaneous Decoding of All Speeds (MULTI)** option under the **Mode** drop down menu. From the same menu, the **Decoder Sensitivity** option determines how many passes the decoder uses to detect JS8 signals. The higher the value, the more processing power required, lower power systems such as the Raspberry Pi 2 may require a lower number of passes. As a reference point, a Raspberry Pi 400 is capable of processing on **(4x) Four Decode Passes** mode with ease. ==== Frequencies ==== JS8 has a list of builtin frequencies, you can select this from the main window by clicking on the frequency readout in the top left of your screen. If you cannot see this, click **View > Show Frequency & Clock**. This will be what you use to change bands, it is also the frequency which will be uploaded to PSKReporter and put in your logbook. JS8 splits the frequency band into 3 (three) section ^ Frequency range (Hz) ^ Usage ^ | 500 - 1000 | This section is used for HEARTBEAT messaging | | 1000 - 2500 | This section is used for regular JS8 operating - HEATBEATs may be sent in this region if configured in the settings menu | | 2500 - 2700 | This section is also used for HEARTBEAT messaging | The frequency you're transmitting on can be seen in the spectrogram view as a pair of parallel red lines or under the frequency readout described above. Ensure you have your offset set within the green section of the band (1000-2500Hz). When sending a HB, the associated HB regions will be used automatically unless configured otherwise. Once sent the transmit frequency will automatically change back to the frequency you set. Most JS8 activity is seen on 20m and 40m. There is also plenty of JS8 activity on 11m CB. When operating in the amateurs bands, 20m is most commonly used during the day, and 40m for the evening and night. You may be able to get messages to stations you cannot here by utilising a station on 20m during the day who can relay a message on 40m at night. ==== Autoreply (AUTO) ==== JS8 has a set of standard Query Messages which an operator may send to your station, enabling Autoreply will allow your station to reply to these message automatically. Auto mode can be enabled and disabled under the **Mode** menu. ^ Query message ^ Purpose ^ Response ^ | SNR? | Request a signal report from a station | Signal report in DB e.g. SNR -12 | | INFO? | Request the INFO message from a station | The INFO message set in the Settings menu | | GRID? | Request the stations GRID location | The GRID set in the Settings menu e.g., IO94 | | STATUS | Request the stations STATUS | The STATUS message set in the Settings menu | | HEARING? | Request a list of stations that M7ABC can hear | Responds with the 4 (Four) most recently heard stations | | QUERY MSGS | Query the stations mailbox, do they have a message for you stored? | If a message is stored, the message ID is returned | | QUERY MSG | Query the station for a message with | Responds with the content of the message | ==== HEARTBEAT (HB) ==== Heartbeats are a "Networking" mode for JS8, a station sends a HB and any station configured to Autoreply with Heartbeats enabled will respond with a signal report. Heartbeats can be sent manually or automatically every N minutes. Heartbeats are opt-in so you may see that stations on PSKReporter (and similar) are reporting they can hear you, but they may not be setup to respond to a HB. Hearbeats can be enabled/disabled under the **Mode** menu. Stations that respond to HB requests may be suitable for other Autoreply messages such as those listed above. ==== Mailboxes ==== JS8 provides "Mailbox" store and forward type messages using the "MSG" and "MSG TO:" commands. These messages are stored for later reading. The **MSG** command identifies to the receiving station that the message is for them and they should store it for when the operator returns. M7ABC: 2E0XYZ MSG Hello 2E0XYZ from M7ABC! The **MSG TO:** command identifies to the receiving station that the message is to be stored ready for another station to request, these messages take the form: M7ABC: 2E0XYZ MSG TO:M0XXX Hello M0XXX from M7ABC! For store and forward messages, if the destination station is seen sending a heartbeat, the storing station will respond to the station identifying they have a message for them, indicating the message ID. The destination station can then request the message be sent to them. This is done with the QUERY messages identified in the previous section ==== Relays ==== Similar to the store and forward mailbox feature, stations can also act as relays, where a message is sent immediately to the destination as opposed to stored and sent on request. This would allow a QSO to take place using a middle man station, note that this method of communication would be very slow. A relay message will look like this M7ABC: 2E0XYZ>M0XXX Hello M0XXX I am talking to you VIA 2E0XYZ ==== Sending messages ==== When responding to a station, select them in the station list on the right, here you can send them a directed message. There are some predefined messages such as the QUERY messages but also others such as **REPLY** which is used to respond to a CQ call and **SNR** which is used in response to a **REPLY** message. After this establishment you can use free text messaging by typing into the message box and hitting **Enter/Return** to send the message. You can continue to write your message while it is sending to avoid delays or doubling however, if the software reaches where you are typing it will consider this the end of the message and the new text added will be a new message which is sent, this may cause confusion so use this feature carefully. The longer your message is, the longer it takes to send. Keep in mind your mode of operation when writing your messages, use acronyms and shorthand where possible. JS8 QSOs can take a long time, try to keep messages as short as possible however sometimes a 5 (five) minute message is unavoidable if you're having a proper long form QSO. If you have a good signal, try using one of the faster messaging modes, remembering to be mindful of adjacent stations as you increase your bandwidth. If a station is operating in AUTO mode and the operator is away, this may be a good time to send them a long message using the **MSG** function. ==== Common Acronyms and Shorthand ==== Due to the slow nature of JS8, many operators will use a variety of acronyms in addition to QCodes to help pack more information into their messages with minimal impact to the time taken to send a message. Many of these will also be utilised in Morse Code (CW) operation. ^ Acronym ^ Meaning ^ | GM | Good Morning | | GA | Good Afternoon | | GE | Good Evening | | BTU | Back To You | | UR | Your | | SNR | Signal to Noise Ratio | | ANT | Antenna | | SK | Silent Key - I'm going silent now - End of communication | | PWR | Power | | NR | Near | | WX | Weather | | Q?? | This is a standard Q Code [[https://en.wikipedia.org/wiki/Q_code#Amateur_radio|https://en.wikipedia.org/wiki/Q_code#Amateur_radio]] | ---- ===== Troubleshooting ===== ==== Empty spectrum ==== If your spectrum is showing up completely black or with a constant stream of fixed vertical lines try the following: - Ensure your sound card settings are correct in the **Settings > Audio** section - Try restarting JS8, sometimes it glitches if something has gone wrong - Check that you are in the correct Sideband, you should be using USB - Ensure you're plugged into the radio and have the audio levels set appropriately ==== I can see activity but it won't decode ==== - One common issue is accidentally moving to the wrong frequency, JS8 looks very similar to FT8 and FT4, check you're in a JS8 frequency band. - If you're in band and the activity is above 2500Hz, it may be FT4 activity, there is some over lap with the common frequencies used. - Check you're in USB mode - Is the signal starting before/after the horizontal lines that get drawn every N seconds? If so your stations clock is out of alignment, JS8 is dependent on the system clock similar to FT8. Try fixing your system clock using NTP or using the offset control in the **View > Waterfall Time Drift controls** menu. ==== I can't find my issue or none of the above have resolved my issue ==== Hop into Discord, I'm sure someone can point you in the right direction.