OpenJSQ Help

Chat, mail, files, and a live map of who hears whom — through a sound-card modem or a KISS TNC.
OpenJSQ 1.0.9 operator guide  ·  FSQ  ·  AX1200  ·  JG25
Describes OpenJSQ 1.0.9. If a control here does not match what is on your screen, the application is right and this page is behind.

New to OpenJSQ? Start with First contact in five minutes. What changed in each version is in the Version notes at the end.

Copyright © 2026 Jerome Goddard II (W4IJG). All Rights Reserved.
OpenJSQ, its documentation and the screenshots in this guide are proprietary. No part of this document may be reproduced or redistributed without permission.

First contact in five minutes

The short way from a new copy to your first message. Each step names the section with the details. If something does not go as written, the checklist in section 2 and Troubleshooting say what to look at.

  1. Install. On Windows, unpack the ZIP somewhere you can write to, such as your Documents folder, and run openjsq-desktop.exe. There is no installer. On a closed-beta copy, put openjsq-beta-license.json in the data folder first (The closed beta licence). On Linux, build from source (Installing).
  2. Answer the wizard. It opens by itself the first time (section 3). Type your Callsign; it is the only answer you must give. For the connection, choose FSQ using computer audio on HF, or AX1200 using computer audio on a VHF or UHF FM radio. You can change it later on the Radio page.
  3. Pick the sound card. On the wizard's connection page, under Sound card, set Audio from radio and Audio to radio to your radio interface (a DigiRig, a SignaLink, a radio's own USB sound device), not the computer's speakers and microphone. If you are not sure which name is yours, see Finding out which sound card is which.
  4. Pick the PTT. On Keying the transmitter, choose VOX if the interface keys on audio (a SignaLink), or Serial line (RTS/DTR) and its port for a DigiRig or another interface with a PTT lead. With a serial line, press Test PTT on that page: the radio should key for about 1.5 seconds with no audio. Put the radio on a dummy load or a clear frequency first.
  5. Listen, then finish. On the Listen page press Start listening. The level should read Usable; if not, adjust the radio's volume or the interface's level. Press Finish.
  6. Start the radio. Press Start radio in the top bar. The receive meter should move with the band noise.
  7. Test PTT on the Radio page. On the Transmit control (PTT) card press Test PTT. The radio keys for 1.5 seconds with no audio, and the line under the button says what happened, for example PTT keyed and released. On VOX it sends a short tone instead. If it says the radio did not key, see Decodes but won't transmit in Troubleshooting.
  8. Set the transmit level, into a dummy load. On the Transmit level card:
    • FSQ: press Tune and raise FSQ drive until the radio shows the power you want with the ALC meter barely moving, then press Stop tuning.
    • AX1200 or JG25 (FM): press Deviation test. It sends 10 seconds of the waveform's own tones at its drive level. Set AX1200 drive or JG25 drive for normal deviation on a deviation meter, or so that a second receiver sounds like a normal voice and no louder. The slider changes the test signal as you move it; press the button again to stop early.
    Details are in Proving your transmitter.
  9. Send a first chat. Set the radio to a frequency where people are (Where the people are). Open Chats, choose the Allcall conversation, type a greeting and press Enter. The line under your message reads Queued, then Sending, then Sent. To write to one station, press + on Chats and type their callsign. Sent means it left your radio; what each state means is in section 8.

Nobody answers? That is normal on a quiet channel. If the Channel page shows other stations, your receiver works and you are early. Sections 5, 6 and 7 go through each waveform step by step. If a transmission has to stop, press ■ Stop TX in the top bar, or Ctrl+Space from any OpenJSQ window (section 4). The same guide and a first-contact page are also on the web at openjsq.com/application.

Part 1 — Getting startedEverything a new operator needs, kept short. Each topic here has a longer section in Part 2.

1. What OpenJSQ is

OpenJSQ turns a radio and a sound card into a messaging station. If you can use a text-messaging app, you can use this — there are no protocol codes to memorize and nothing to type except what you want to say. All the protocol detail is still there when you want it — you just do not need any of it to make a contact.

Four things it does:

It speaks up to three waveforms. FSQ is a slow, very forgiving keyboard mode for HF — good on 80 and 40 meters, and fully compatible with stations running fldigi or FSQCall. AX1200 is classic 1200-baud VHF/UHF packet, and works with any FM rig. JG25 is OpenJSQ’s own FM waveform, faster than AX1200, and still experimental. Everything above — chat, files, mail, the map — works the same on all of them. That is the whole idea behind the program: the services are written once, and the radio underneath is just what carries them.

It hears all three at once
Whichever waveform you pick, OpenJSQ also listens to the other two, on the same radio and sound card. A station calling you on JG25 while you are on AX1200 is heard, answered automatically where you allow it, and put on your map. With FSQ selected on HF, AX1200 and JG25 only listen, and Radio → Receive → Multi-receive can make the other two only listen, or turn them off. What you type still goes out on the waveform you picked. Through a KISS TNC it hears AX1200 only. Section 16 explains.
Two ways to do packet
On AX1200 you can let OpenJSQ be the modem (your FM rig plus the same sound card you would use for HF), or hand the job to a hardware TNC (terminal node controller — a packet modem in a box) — one built into a radio like a BTECH UV-PRO, or a software one like Dire Wolf. Section 6 sets both up; you do not have to decide now.

The third waveform, JG25, is OpenJSQ's own, faster than AX1200, for FM only, and still experimental. Section 17 compares all three and says when to use each; if you are on HF, the answer is FSQ.
Do section 2 first
If this is a new station, read section 2 before you open the setup wizard. It is the hardware you need, the settings to make on the radio itself, how to work out which sound device is your interface, and — on a beta copy — the licence file. Every one of those is invisible to OpenJSQ, and every one of them looks like a software fault when it is wrong.
Good to know
You may still meet the older name OpenFSQ here and there. Your files folder is now Documents\OpenJSQ: if an earlier build left Documents\OpenFSQ in its default place, the first start renames it across in one step, so upgrading never strands your existing mail and files. A folder you pointed somewhere else yourself is left exactly where you put it.

2. Getting ready: hardware, installing, and the beta licence

Everything in this section happens before the setup wizard, and it is the part that decides whether the wizard goes well. None of it takes long, but skipping it is why a first session usually stalls.

What you need

PieceWhat will do
A radio For FSQ: any HF transceiver with SSB. For AX1200 or JG25: any FM rig on 2 m or 70 cm, including a handheld.
A sound-card interface The box that carries audio between the computer and the radio and — usually — keys the transmitter. A SignaLink, a DigiRig, a Masters Communications or Tigertronics unit, the sound device built into a modern rig's USB port, or a cheap handheld cable with a VOX-capable radio. This is the piece most new operators are missing.
A computer Windows 10 or 11 on x64 for the packaged build; Linux by building from source. There is no macOS or Raspberry Pi package, and a macOS build from source is untested. Nothing fast is required — OpenJSQ is not a demanding program — but see Dropouts in section 22 if the machine is already busy.
Nothing else No TNC, no hardware modem, no soundcard-DSP box. A TNC is an option on AX1200, never a requirement.
Optional: a CAT link flrig or Hamlib rigctld talking to your radio, if you want the frequency readout and dial in the top bar, or want to key through CAT. Everything else works without it. OpenJSQ does not drive rigs itself, which is why there is no list of radio models anywhere in the program.

Setting the radio up, once

OpenJSQ cannot see any of these, and every one of them will look like a software fault if it is wrong.

On the radioSet it to
Mode (HF / FSQ) USB, or USB-D / DATA-U if your rig has it. The data mode is better: it takes audio from the rear connector and bypasses the microphone chain.
Mode (VHF / UHF)FM. Narrow FM works but costs you margin on the wide waveforms; wide (25 kHz) FM is the safe choice for AX1200 and JG25.
Speech processor / compressorOff. It is designed to squash a voice, and it will mangle a data signal.
Noise blanker, DSP noise reduction, notch, AGC-fastOff to begin with. Turn them back on one at a time, later, if you want to see what they do — they alter the audio the modem is trying to measure.
Transmit filter width (HF)Wide enough for what you send. Classic FSQ fits in 430 Hz and needs nothing special, but the wide Fast modes reach 3 kHz — a 2.4 kHz transmit filter simply cuts the top tones off, and the far end reports the same characters missing every time.
VOX (if you key by VOX)VOX on, VOX gain high enough to key reliably from the interface's level, and anti-VOX / VOX delay short — long enough not to drop between symbols, short enough not to hold the transmitter up after the frame ends. If the far end says your frames end in the middle, the delay is the wrong one of the two.
Rear-panel audio input levelWherever your rig's data-mode gain lives (menu item names vary). This and OpenJSQ's drive sliders (one per waveform) multiply; set the radio's once and then leave it, and do all further adjustment in OpenJSQ.

Finding out which sound card is which

The wizard's sound-card question stops more first sessions than anything else, and the reason is always the same: the name in the list does not obviously belong to your interface. Two minutes now saves an evening later.

  1. Unplug the interface. On Windows open Settings → System → Sound → All sound devices; on macOS, Audio MIDI Setup; on Linux, arecord -l. Note what is listed.
  2. Plug it back in and look again. Whatever appeared is your interface — under whatever name the manufacturer chose. USB Audio CODEC, USB PnP Sound Device and DigiRig are all common; so is a rig's own name.
  3. Write the name down. That exact string is what you pick in the wizard (Audio from radio and Audio to radio) and on the Radio page (Audio input (from radio) and Audio output (to radio)). Every entry is listed as Name (Host API) — on Windows, USB Audio CODEC (Windows DirectSound), say — because each card is offered through one host API only. A card you saved that the list shows only under another host API (an MME cable where the list offers DirectSound) appears as its own entry, [N] Name (Host API), and stays chosen; one that is unplugged reads Name (Host API) — not connected.
  4. Turn Windows' own processing off for it. In that device's properties, disable Audio Enhancements and any exclusive mode setting. Windows adds effects to sound devices by default, and none of them help a modem.

If you plugged the interface in after starting OpenJSQ, press Refresh on the Radio page. The wizard's sound-card section has no Refresh: it reads the list each time its page is shown, so go back a page and forward again.

Installing

Where your data lives
OpenJSQ keeps a single data folder — settings, profiles, history, mail and the beta licence. On Windows that is normally %LOCALAPPDATA%\OpenJSQ\OpenJSQ; on macOS and Linux it is the equivalent under your user data directory. You never have to guess: Settings → Files & configuration (open the card's More options first) shows the exact path, and the beta dialog described below names the licence file's full path and offers to open the folder it belongs in. If you drop a file named openjsq-portable.txt beside the program and that folder takes writes, OpenJSQ uses the program's own folder instead — which is what makes a jump-drive station possible.

The closed beta licence

Beta builds are licensed to one operator by callsign. This is not copy protection in the usual sense — it is so that a copy which turns up somewhere it should not can be traced back — but it does mean there is one file to put in place before the program will transmit.

  1. You are sent a file called openjsq-beta-license.json.
  2. Put it in the data folder, with that exact name. The full path is <data folder>/openjsq-beta-license.json.
  3. Start OpenJSQ. If the licence is good you go straight to the program; the title bar picks up your callsign and a day count.

If it is not good, OpenJSQ says so once, at startup, in a dialog titled OpenJSQ Closed Beta — before the main window opens, rather than opening and then refusing everything. The dialog names the licence file's full path, and carries two buttons: Open Data Folder, which opens the folder the file belongs in, and Exit.

Nothing is ever removed
Whatever the licence says, no expiry, refusal or mismatch deletes or resets anything — not your settings, not your messages, not your files, not your logs. The refusal messages say so in as many words, because a tester staring at a refusal has no way to know it from the outside. An expired beta is a reason to stop transmitting. It is never a reason to touch your data.

What each message means

What you seeWhat to do
“This build needs an OpenJSQ beta licence…” There is no licence file. Press Open Data Folder, put the file there, check the name is exactly openjsq-beta-license.json — Windows hides the .json by default, so a file that looks right may really be …json.json.
“This beta licence could not be verified…” The file is there but its signature does not check out — it is for a different build, or it was altered in transit. Mail clients and chat apps sometimes rewrite an attachment; ask for it again, zipped.
“This beta licence is not valid yet. Check that this computer's clock and date are right.” Almost always the computer's clock, not the licence. Check the date, the time and the time zone.
“This beta licence has expired…” Ask whoever issued it for a new one. Your station is untouched and will pick up exactly where it was.
“This beta build expired on date…” The program ran out, not the licence, and a fresh licence will not help — you need a newer build. The title bar warns about this one in advance and marks it (build).
“This computer's clock is set earlier than a date OpenJSQ has already seen…” The clock has gone backwards. Put the date and time right and start it again. A laptop whose battery died, or one that came back from a time-zone change with the clock set by hand, both do this.
“This copy is licensed to CALL, and this station is set to something else. You can read and receive, but it will not transmit until the callsigns match.” This one is not fatal, and it is the only one that is not. It is also the only one that never appears at startup: the program opens normally, the title bar shows the callsign the licence was issued to, which is not yours, and you meet the sentence when you first try to send. See below.
Receive-only is a real state, and it looks like a working station
A callsign mismatch does not stop OpenJSQ. It starts, it decodes, the Channel and Network pages fill up, and everything looks healthy — but the station will not key, presence and soundings are turned off at the source, and automatic replies are silenced. If your station hears everybody and nobody ever answers you, check the title bar and check that Settings → Station → Callsign matches the callsign the licence was issued to. That box holds the callsign alone; the AX1200 SSID and the FSQ / JG25 name (with its suffix box) under it are separate, and neither of them affects the match — the licence is checked against the callsign, so W4IJG, W4IJG/CRB and W4IJG-7 are all the same operator to it.

Being warned before it runs out

OpenJSQ counts down whichever expires first, the licence or the build. The title bar always carries the count beside your callsign — N0CALL - 23 days left, with (build) added when it is the program that runs out; from 7 days out the title also spells it out in a sentence; on the last day that sentence becomes a notice at startup instead. The wording always says which clock is running out, because the two need different answers: a licence expiring is a message to whoever issued it, a build expiring needs a new download.

Am I set up? — the checklist

Everything below can be checked without transmitting. Work down it before your first call, and again whenever something stops working.

#CheckWhere
1Title bar shows your callsign and a sensible day count (beta builds).Window title
2Your callsign is set, and it matches the licence. The preview under the identity boxes reads back what each waveform will transmit: with FSQ / JG25 name set to Same as AX1200, one line, FSQ / JG25 / AX1200: W4IJG-7 — one name on every waveform; with Callsign with suffix, two, FSQ / JG25: W4IJG/CRB and AX1200: W4IJG-7. Answered once: neither the suffix nor the SSID is ever touched again because you changed waveform.Settings → Station
3Audio in and audio out both name your interface, not the computer's speakers and microphone.Radio → Radio & audio
4The radio starts, and the footer says what it is running.Start radio
5Audio path reads Running at 48000 Hz with transmit and receive under it. If it says receive only, you have no transmit side.Radio → Live status
6PTT shows idle (or KEYED, or transmit stopped by the operator after a Stop TX) under the keying method, not UNAVAILABLE.Radio → Live status
7The FSQ, AX1200 and JG25 rows say what each waveform is doing; the one you selected reads Selected — what you type goes out here.Radio → Live status
8The receive meter moves with band noise and sits above its floor.Top bar, or Radio → Live status
9Dropouts reads all zeros, and the audio path is keeping up, after a few minutes of listening.Radio → Live status
10Something — anything — appears on Channel after a while on a live frequency, on any of the three waveforms.Channel
11Transmit level set with Tune into a dummy load, ALC barely moving (FSQ; on AX1200 and JG25 Tune is greyed out — see below). Each waveform has its own drive slider.Radio → Transmit level

Items 1 to 9 are all checkable in a shack with the antenna disconnected. Only 10 and 11 need the outside world.

Proving your transmitter, without bothering anybody

Steps 1 to 4 put no signal on the air at all.

  1. Watch the software key. Press Tune on the Radio page with the radio switched off. Stop TX appears in the top bar and the status bar reads TX · slot N. That proves OpenJSQ's side.
  2. Watch the radio key. Turn the radio on, into a dummy load, and press Tune again. The transmitter should come up. If it does not, this is PTT — see Decodes but won't transmit in section 22.
  3. Set the level. Still into the dummy load: raise FSQ drive until the rig shows the power you want with the ALC meter barely moving, then Stop tuning. On FM there is no ALC to watch — set drive so the deviation sounds like a normal voice on a second receiver, and no louder. Each waveform has its own drive slider, and Tune sets only FSQ's: it works only while FSQ is selected, and on AX1200 and JG25 the button is greyed out. Set AX1200 drive and JG25 drive with that waveform selected, using Deviation test into the dummy load. Set them even if you never select those waveforms: they are the levels those receivers answer at (section 16).
  4. Hear yourself. Put any second receiver — a handheld, a web SDR, an SDR dongle — on your frequency and press Tune once more. Now you know what your signal sounds like, and that it is going somewhere.
  5. Send something. Antenna on, an Allcall greeting on a live frequency. If nobody answers, that is normal — see below.
Testing with no partner at all
Two copies of OpenJSQ on two computers, two handhelds a room apart on a simplex frequency at minimum power, is the single most useful test setup there is: you control both ends, so anything that goes wrong is diagnosable. Two profiles on one computer will not work — one sound card cannot be two stations — but two cheap handhelds and two USB sound dongles will.

Where the people are

OpenJSQ does not pick frequencies for you, and this guide will not print a list that goes stale.

When something is wrong: what to send

A screenshot of a symptom is rarely enough to find a radio problem. There is a built-in flight recorder, and it is worth turning on before you try to reproduce anything:

  1. Open Channel, tick Show advanced settings at the top right, then tick Record diagnostics. It takes effect at once and needs no restart; the status bar carries a ● recording diagnostics reminder while it is on.
  2. Make the problem happen.
  3. Press Save bundle… and keep the ZIP. It is written in the background: the button is greyed until the file is done, and then a message says Saved and names the file.

The bundle holds the last ten minutes of receive audio exactly as the modem heard it, the decode history with offsets into that audio, and this station's configuration — which together answer nearly every “was it the radio or the software?” question. Send it with a sentence about what you expected and what happened instead.

Reporting a problem

The quickest route is the Report a problem… button beside Save bundle… on the Channel page (with Show advanced settings ticked), or the arrow beside Help at the foot of the rail (or a right-click on Help). One window offers everything:

The Report a problem window: Save diagnostics bundle, the note that recording is off with Turn recording on, Open the bug report form, Ask on the forum, Contact page and Close.
The Report a problem… window, with recording off.

The form cannot carry files, so send the bundle separately: email it to contact@openjsq.com, or post it on the forum (forum.openjsq.com).

3. First launch: the setup wizard

The first time you run OpenJSQ, a short wizard called Welcome to OpenJSQ walks you through setup. It is four pages long, and only one answer is truly required: your callsign. Everything else can be changed later on the Radio and Settings pages, and from the second page on there's a Skip the rest button if you're in a hurry. Cancel setup, at the left of the button row, leaves without saving anything.

  1. Your station — enter your Callsign (required — it identifies every transmission), then, if you want them, the two optional pieces under it. AX1200 SSID (optional) is chosen from a list: No SSID or -1 to -15. FSQ / JG25 name says which name FSQ and JG25 use, and each of its two choices shows the name it gives: Same as AX1200 — W4IJG-7 (chosen to start with: one name on every waveform, or your callsign alone if you picked no SSID) or Callsign with suffix — W4IJG, whose line carries a fixed / and the suffix box — P for portable, CRB for a net's own tag, CRB/P for both. The suffix box is greyed out while Same as AX1200 is chosen, and what it holds is kept. These are the same answers the Settings page keeps, and they are the whole of your station's identity: OpenJSQ works out what each waveform transmits from them, so you never edit anything when you change waveform. More about your station (optional) opens two more boxes, Location and Station message; they're what your station answers when someone asks where you are or what's new, and whatever you type in them is saved even if you close the section again.
    Text size, in the top corner of this page, is there for anyone who needs larger text before reading the rest: Normal, Large, or Extra Large, applied as you pick it. It enlarges the text you read — messages, mail, channel traffic and the explanations on these pages; the meters, the navigation rail and the diagnostic cards keep their size, so nothing is pushed off the window. The theme (dark or light) is not asked here: it is in Settings.
    The boxes are checked as you type, and one preview line under them reads back what will go on the air on each waveform — FSQ / JG25 / AX1200: W4IJG-7 — one name on every waveform with Same as AX1200, or FSQ / JG25: W4IJG/CRB AX1200: W4IJG-7 with a suffix. The callsign is the only one you have to fill in, but Next waits for everything to be right: a suffix or an SSID that is wrong would be saved exactly as typed, so it holds the page just as a bad callsign does, with the reason printed above the preview. The suffix is checked only while Callsign with suffix is chosen; with one name on every waveform it is not used. The callsign is the callsign alone: letters and digits, at least one digit, six characters at most, because that is what an AX.25 address field holds — and the callsign and the suffix together must fit 15 characters, which is the most another OpenJSQ station will accept as an FSQ relay hop or address (section 9). An identity of 16 to 20 characters saved by an earlier version has to be shortened before the radio will start: Start is refused with that reason, and Settings will not save until it fits. Type /CRB or -7 into it and the page says which box each belongs in rather than refusing silently.
    The wizard's Your station page with KK4IB entered, Callsign with suffix chosen and CRB in the suffix box, and the preview line under them.
    Page 1 filled in: the callsign on its own, Callsign with suffix chosen with CRB after the fixed slash, and the preview reading back what each waveform will transmit — FSQ / JG25: KK4IB/CRB and AX1200: KK4IB. No SSID was picked, so AX1200 carries the plain callsign.
    The wizard's Your station page as it opens: Text size in the corner, then callsign, AX1200 SSID, the FSQ / JG25 name choice and More about your station, nothing typed yet.
    Page 1 — Your station, as it opens: nothing typed yet, Same as AX1200 chosen under FSQ / JG25 name, Text size in the corner and More about your station closed. The callsign is the only required answer in the whole wizard.
    The wizard's Your station page with KK4IB-7 typed into the callsign box and the reason it is refused printed under the boxes.
    The same page refusing KK4IB-7 in the callsign box: Next stays disabled, and the reason names the box each part belongs in.
  2. Radio connection — how OpenJSQ reaches your radio, and under it only the questions that connection needs. FSQ using computer audio for HF keyboard work, AX1200 using computer audio to let OpenJSQ be the packet modem itself, AX1200 through an external KISS TNC if you already have one (Mobilinkd, Dire Wolf, a hardware TNC), JG25 using computer audio (experimental), or Advanced or multi-kit setup — take me to the Radio page, which asks nothing more about the radio here and opens the Radio page when you press Finish. What do these connections mean? opens a short explanation of each. On a profile that already has a connection, the list opens on it; one the list cannot name — KISS over TCP or Bluetooth, Dire Wolf — appears as Keep the connection set on the Radio page, and is left exactly as it was. Don't agonize: you can switch any time on the Radio page, and section 17 compares the three waveforms properly.
    For the three computer-audio connections, two sections appear under the list. A TNC does its own modulation and keys the radio itself, so choosing it (or Advanced) hides both — they are questions about hardware your station does not have — and only what a section showed when you pressed Next is saved.
    • Sound card — pick Audio from radio and Audio to radio. This step stops more first sessions than any other. Choose the interface wired to your radio (DigiRig, SignaLink, a USB rig's own sound device, or a virtual cable) — not the computer's own speakers and microphone. OpenJSQ tries to guess from device names and tells you when it has; check the guess, because a name is all it had to go on. Audio to radio also offers Receive only — never transmit. On a virtual audio cable, name the real devices: the system default is the cable, and alert sounds played there go out over the air. A profile that already names its sound card opens on that card, found by its name as the Radio page finds it, and the guess is used only where nothing is saved; a saved card that isn't plugged in is listed as <card> — not connected and stays chosen, so nothing else is used in its place.
    • Keying the transmitter — how the radio is told to transmit. VOX — the interface keys on audio needs no extra wiring, is what a SignaLink and other audio-operated interfaces use, and is the safe first choice. Serial line (RTS/DTR) keys a control line — a DigiRig, and most interfaces with a dedicated PTT lead; pick the Serial port below it, and Test PTT keys that line for a moment with no audio. A profile that already has keying opens on it: its serial port (listed as not connected if it isn't there), or CAT, shown as set on the Radio page and kept. Keying through CAT (flrig, rigctld, or a direct rig connection) is on the Radio page under advanced settings — OpenJSQ does not drive rigs itself, which is why there is no list of radio models in the wizard. The one thing this section does not settle is the drive: each waveform's drive — FSQ, AX1200 and JG25 — starts at a quiet −10 dB, and you set them on the Radio page's Transmit level card while watching the meter.
    The wizard, page 2 of 4: the connection list set to FSQ using computer audio, with the Sound card and Keying the transmitter sections under it.
    Page 2 — Radio connection. With a computer-audio connection, the Sound card and Keying the transmitter sections sit under the list; a KISS TNC or Advanced hides both. The device and port names in this picture are made up.
    The wizard, page 2 of 4, with AX1200 through an external KISS TNC chosen: no sound card or keying sections.
    The same page with AX1200 through an external KISS TNC chosen: the TNC owns the audio and the keying, so neither section is shown, and its port is set on the Radio page.
    The wizard's connection list, with the JG25 entry and the Advanced entry.
    The list itself. JG25 using computer audio (experimental) is the entry for JG25.
  3. How should your station behave on its own? — first the Station style: Careful, Community or Performance, each with a line saying what it does, the same three styles as at the top of Settings. A new installation starts on Community, today's defaults; a station that was set up before starts on Keep my current settings, which changes nothing. Choosing a style ticks the boxes below to match and, on Finish, sets the rest of that style too (the airtime allowances, the mail and shared-folder limits and the other rows in Station style); the boxes are its Customize view, and changing one afterwards shows Custom (based on …). A style never changes your identity or hardware, and never chooses Unlimited airtime or HF No restriction. Then the five services, and this is where you are told about them: Answer questions about this station (all waveforms), Carry other stations' messages (all waveforms), Repeat messages other stations ask you to repeat, Accept files and notes left for you, and Hold mail for stations that are not on air. The boxes show what your station already does. On a new station, carrying messages for others and repeating are both ticked: the airtime budget, the limits in Settings → Relaying and the HF rules keep them in bounds, and untick either if your station should not do it. Repeating is for a case such as a net check-in through a hilltop station, which sends it again, unchanged, to everyone; Settings → Relaying can choose carrying waveform by waveform and who may ask for a repeat. Every one of them transmits under your callsign. Turn any on or off here, or later in Settings. The page closes with the escape hatch: Net mode in the top bar holds all of them at once for a directed net, without changing these answers. These answers are not limited to the waveform you choose. By default OpenJSQ also listens on the other two and, where the band allows, answers there under these same settings; with FSQ selected the radio is taken to be on HF, so AX1200 and JG25 only listen. Radio → Receive → Multi-receive → Other waveforms chooses Listen and answer, Listen only or Off, and a KISS TNC station hears AX1200 only (section 16).
    A station that already has a callsign never walks the whole wizard again: when a later build adds a question it has not answered, a short version titled A few new questions opens at this page instead, and leaves every earlier answer where it was. In 1.0.7 the new question was Repeat messages other stations ask you to repeat, shown once, ticked; your saved answer for carrying other stations' messages is shown as it was and is not changed.
    The wizard, page 3 of 4: How should your station behave on its own? The Station style choice (Careful, Community, Performance) with Community selected, then the five automatic services under Customize, all ticked, each with a line saying what it transmits.
    Page 3 — How should your station behave on its own? Station style comes first, with Community selected: Careful, Community or Performance sets the answers below together, and the line under the choice names the style or says Custom once a box differs. Under Customize are five services, all ticked: answer questions about this station, carry other stations' messages, repeat messages, accept files and notes, and hold mail — each with a line saying what it transmits. The note at the foot says Net mode holds all of them at once.
  4. Listen, then finish — the proof step, and a last look at what you set up. Press Start listening and watch the level bar — nothing is transmitted. When it moves, the page reports the actual level in dBFS and grades it: Too quiet — turn the radio up below −40 dBFS, Usable between −40 and −6, Clipping — turn the radio down above −6. That is the audio level and nothing more — it does not yet show that a message decodes, or that your transmitter is set up. If the bar stays flat for ten seconds the page says so itself and names the three usual causes — wrong input device, radio volume down, cable not seated. If you chose a KISS TNC there is nothing to listen to here: your TNC does its own receiving, and its port is set on the Radio page. The Advanced route says the Radio page opens after Finish to set up the radio, and a connection kept as the Radio page set it says to start the radio there to check it.
    Under the meter: what was set up, what was left alone, and what still needs doing. Transmit level is untested on every route, so it is named here rather than discovered on the air. The paragraph at the foot is the one worth reading twice: it spells out, in plain sentences, every transmission this station will make without being asked. One addition to that list, which the page itself does not make: where Radio → Receive → Multi-receive and the band allow, automatic answers can also go out on the two waveforms you did not choose (section 16).
    The wizard, page 4 of 4: Start listening and the level bar, then what is set up, what is still to do, and the paragraph listing every transmission the station makes on its own.
    Page 4 — Listen, then finish. Start listening opens the radio's input and the bar shows the level arriving, graded in words; under it, what is set up (callsign and connection), what is still to do (the untested Transmit level), and the paragraph that spells out every transmission this station will make on its own.
Tip
Nothing is committed until you press Finish. Cancel setup, at the left of the button row, saves nothing and puts back the look you tried; the same choices are waiting on Radio and Settings — and anything the wizard started for the Listen test is stopped, so a cancelled wizard leaves your radio exactly as it found it. Skip the rest leaves every page it passes untouched: the settings you already have are not replaced with a new install's defaults. Pressed on the connection page, it keeps the connection but not the sound card and keying shown under it, which are saved only when you go on with Next. On a new station Finish records all five behaviour answers as shown; in A few new questions the behaviour page saves only the boxes you change. Either way an answer it cannot show exactly — carrying on some waveforms, repeating for listed stations — is kept as it was.

If your AX1200 path is an external KISS TNC, say so on the connection page — the wizard hides the sound-card and keying sections, which do not apply to you, and points you at the Radio page for your TNC's port and speed.

4. A quick tour of the window

The OpenJSQ main window on FSQ with the radio stopped: the rail on the left with Inbox 2 and Help, with its arrow, at its foot, the conversation list, and N4UZZ's conversation open.
The main window, radio stopped. The rail on the left is the whole navigation; the Help button at its foot opens this guide in your browser, and the arrow beside it offers Report a problem….

The rail on the left is the whole navigation. There is no menu bar. In a window shorter than about 640 px the rail scrolls. Top to bottom:

PageWhat it's for
ChatsConversations — one per station or group, like any messenger.
InboxMail: letters other stations left for you, and letters you wrote. Shows Inbox ●N when you have unread mail (Chats and Files carry the same kind of count).
FilesThe whole file service in one place: every transfer live and historical, the folder you share (and, if you choose, files other stations send you published straight into it), another station's files to browse, and the log of what your station was asked for.
NetworkWho you hear, and the who-hears-whom map.
ChannelEverything your receivers decode on every waveform, as a feed with the newest at the bottom and each entry tagged with its waveform — and, in Advanced, the evidence behind it.
RadioHardware: sound card, PTT, levels, which waveform you are running, and Start/Stop.
SettingsWho your station is and how it behaves: identity, automatic replies, relaying and repeating messages for others, automatic traffic on HF, mail, the files you accept and how much, presence, appearance, and policy — plus the technical limits on file sharing, whose switch lives on Files.
DeletedThe recycle bin, last of the pages. Everything you delete waits here 30 days before it's really gone. Delete forever removes a received attachment's saved copy, but never a file of yours that you attached to a letter you sent. A file the bin cannot trace back to where it came from is restored into your files folder.
HelpNot a page: the button at the very foot of the rail opens this guide in your web browser and changes nothing on screen. F1 does the same from anywhere. The small arrow beside it, or a right-click on it, lists Operator guide and Report a problem… (Reporting a problem). The guide travels inside the program, so it works with no internet connection; the copy it opens is written to the data folder, under help, each time you ask.

The top bar runs left to right:

ControlWhat it's for
Callsign chipWho you are on the air — the identity for the radio you are running, as that radio will send it: W4IJG-7 on every waveform when FSQ / JG25 name is Same as AX1200, otherwise your FSQ/JG25 suffix on FSQ and JG25 and your AX1200 SSID on AX1200. (Left of it sits the OpenJSQ wordmark.) It reads NO CALL until a callsign is set. Click it to change your identity in Settings.
Waveform chipWhich waveform you transmit on — FSQ, AX1200 or JG25. The other two are still received (section 16). Hovering names the waveform in a sentence and, while the radio runs, lists all three with the sentences of the Radio page's Live status — FSQ: Selected — what you type goes out here.; clicking opens radio setup. See section 17 for what the three are and when to use each.
Profile buttonShows the active profile's name — Home ▾, say. Switch between separate stations — shack, portable, ARES. See section 20.
Receive-level meterHow much audio is arriving from the radio.
Dial (CAT only)The radio's frequency in MHz, read from the rig, in a box you can type a new one into. It appears only while a rig-control backend is configured and the radio is running — a station without CAT sees the bar exactly as before. A frequency is never sent mid-transmission: while you are keyed the box reads TX · QSY after and cannot be edited.
● Radio off / ■ Stop TXOne slot, right of the meter, or of the dial when CAT is on. While the radio is stopped it holds the quiet ● Radio off pill; while you are actually transmitting the red ■ Stop TX button takes its place — its presence is itself the warning. Pressing it drops the PTT line at once, throws away the audio already queued, and stops what is still waiting to go out: queued messages, answers held for later, outgoing file transfers and, on JG25, a verified message still waiting for its acknowledgment (these end here and nothing more of them is sent, not even an ABORT; a file you are receiving is kept), while a fault of this station's own (a key-up the radio refuses, a PTT line whose state is lost, a sound card that stops playing) keeps those files and verified messages: they go again a few seconds after it, and only if the transmitter fails three times without getting any of them out, or the fault stops every key-up for a minute (a PTT alarm, no working PTT; a busy channel does not count), do they end, marked failed for the transmitter rather than cancelled, a delayed repeat or echo still waiting (a PTT failure drops these too), and on AX1200 a station action still waiting to learn what the other station supports, whose capability question is withdrawn too. What has already gone out can't be recalled, and what you have received and stored is untouched, and the status bar says Transmission stopped. Through a KISS TNC, a frame the TNC has already accepted may still go out; only the radio can stop that. Ctrl+Space does the same from any OpenJSQ window. While the radio is running and idle the slot is empty.
Mode (FSQ)Your speed (section 18). Changing it does not restart the radio: the change is used from your next transmission. Anything already queued or arriving, and a file transfer in progress, finish on the old speed first; until then the box shows a dashed outline, and its tooltip says what it is waiting for. A wide mode (FSQ-12 and up) takes the whole channel, and your Channel mode choice comes back when you step down. (Earlier builds also kept Busy margin here; it is now FSQ busy margin on the Radio page's Receivers card — see section 15.)
Mode and FEC (JG25)What JG25 needs instead: how fast you transmit, and how much error correction goes with it. Section 17 explains both. Changing either does not restart the radio: the change is used from your next transmission. Anything already queued, and a JG25 file transfer in progress, finish on the old setting first; until then both boxes show a dashed outline, and their tooltip says what they are waiting for. AX1200 has neither box.
Net modeOne click: transmit nothing automatically. For directed nets. The button turns amber and reads Net mode ON while it is engaged. When net mode is off but something else, such as a licence problem, still holds transmit, it reads Net mode with an amber outline, and its tooltip begins Net mode is off. This station still transmits nothing automatically: …
Start radio / Stop radioStarts and stops the radio. Start radio can be refused — no callsign, an identity this waveform cannot transmit, a sound card that has gone — and the status line says which; Stop radio never is. Nothing about a saved callsign is a reason to keep transmitting.

In a narrow window the bar gives way rather than holding the window wide. Once the window is narrower than the whole bar needs (about 1115 px on FSQ and about 1250 px on JG25 with standard Windows fonts), it drops the receive-level meter (the Radio page's Live status card still has one), the OpenJSQ wordmark and the words Mode and FEC, and tightens its spacing; the selectors and their tooltips stay, except that on JG25 the Mode list then shows its short name (FM 2400) and the FEC box folds away (FEC is on the Radio page too). The window then narrows as far as its pages allow, the same on every waveform: about 820 pixels with standard Windows fonts, wider with a larger Text size. Choosing JG25 never makes a narrow window grow. The first window opens wide enough for the whole bar when your screen allows; if the window is narrower than that, you see the compact bar described here. A short window works too: when it is shorter than about 640 px, the page list on the left scrolls (and keeps the button of the page you are on in view) instead of holding the window up, so the window fits a 768-pixel laptop screen. Ctrl+1 to Ctrl+8 and F1 reach every page whatever is in view.

The top bar on JG25 in a narrow window: callsign, JG25 chip, profile, radio state, the Mode list reading FM 2400, Net mode and Start radio. The meter, wordmark, the words Mode and FEC and the FEC box are gone.
A narrow window (about 820 pixels): the top bar has shed its level meter, wordmark and the words Mode and FEC, shows JG25's Mode by its short name (FM 2400) and has folded the FEC box away; FEC stays on the Radio page.

Short-lived notices also appear here when the station does something on its own — ✉ Transmitting: announcing held mail for N4UZZ., ✉ Mail from N4UZZ arrived — see Inbox., a shared file going out — so unattended work is never invisible. Where the window is narrow a notice shortens rather than pushing the bar around: ✉ ← N4UZZ for mail arrived, ✉ ✓ N4UZZ for mail delivered. Most fade after about 12 seconds; a held-mail announcement carries a Cancel send button while it goes out.

The top bar showing Mail from N1TSB arrived, and the same notice shortened in a narrow window.
The top bar the moment a letter lands: the shortened notice ✉ ← N1TSB beside Stop TX, on a JG25 station whose Mode and FEC boxes leave no room for the long form. Where there is room the same notice reads ✉ Mail from N1TSB arrived — see Inbox. This picture is from an earlier build and shows the bench stations N1TSA and N1TSB, not the demonstration callsigns used in the text.

In a conversation, an unbroken run of automatic presence sends is collapsed into one quiet line — “Automatic presence ×6 · last 11:14” — so a station that has been sounding all afternoon does not bury the two sentences somebody actually typed. Presence is never new chat: it lights no unread dot, counts in no badge and does not replace a conversation's preview — those answer only to what somebody typed.

What a slot is
FSQ does not use one frequency inside your SSB channel — it uses several, side by side, and they are called slots. A station transmits on one of them; OpenJSQ listens to all of them at once, so you never have to pick the right one to hear somebody. The default plan has five, and one of them (1500 Hz) is the single frequency fldigi and FSQCall use — which is how a five-slot OpenJSQ station and a one-frequency fldigi station hear each other without either being reconfigured.

Slots are why the strip below has several chips, why a message can wait for a clear channel while other slots are busy, and why the Channel page reports traffic slot by slot. AX1200 and JG25 have no slots at all — one channel carries everything, and their strip shows a single chip.

Under the top bar sits the live spectrum strip. While receiving, it shows the audio and — on FSQ — the slot occupancy; the small slider at its right edge changes display sensitivity only. The slot chips live here, each one sitting inside the band it describes — S1 ● when clear, S3 ● busy in amber, S3 ▲ TX in red for the slot you are transmitting on — with the frequency it listens on written in the band (1500 Hz · fldigi for the slot other FSQ programs use, at the Normal speeds; with a CAT dial each caption adds the frequency in MHz). Hovering a chip gives that slot's noise-floor numbers. AX1200 and JG25 have no slots — one channel carries everything — so on those the strip shows a single chip, AX ● or JG ●, that turns amber when the channel is busy (on AX1200 it clears about 4 seconds after the channel holds only noise) and red with ▲ TX while you transmit; hovering it names the state in words (AX1200 packet channel clear). Over a KISS TNC the chip reads AX ● unknown. An RX or TX tag sits at the left of the trace. While the radio is stopped, the strip becomes useful rather than decorative: it says “Radio off — click to start listening”. If the missing callsign is the blocker, it reads “No callsign set — click to choose one” and takes you to Settings. The sensitivity slider is hidden while the radio is stopped. The chips describe the selected waveform only: the two waveforms received alongside it have no chip of their own, although the trace shows all the audio they hear.

Keyboard
Ctrl+1 through Ctrl+8 jump through the rail pages in order, Chats to Deleted; hover a rail button to see its number. Ctrl+F from any page opens Chats with the cursor in its search box. In Chats, Esc clears an active search first, then cancels an armed chat action. F1 opens this guide in your web browser. Ctrl+Space stops transmitting from any OpenJSQ window, and Ctrl+Shift+1 through 8 move a page into a window of its own (below).

Pages in windows of their own, and Ctrl+Space

With more than one monitor, Chats, Inbox, Files, Network and Channel can each be moved into a window of their own and dragged to another monitor. Right-click the page's button on the rail and choose Open Chats in its own window, or press Ctrl+Shift and the page's number (Ctrl+Shift+1 for Chats; the number is in the rail button's tooltip). To put it back, close the window, press Back to main window at its top, choose Bring Chats back on the rail, or press the same keys again; Bring all windows back does every one. Radio, Settings and Deleted always stay in the main window.

The page is moved, not copied: there is still only one Chats, and the unread counts on the rail keep updating. While a page is out, its place in the main window shows a note with Show the window and Bring it back, its rail button carries a small mark of two overlapping squares, and clicking the button brings the window forward. Ctrl+1 to 8 work from every window, and a link such as Open in Chats brings Chats forward wherever it is. Each window has its own title, Chats — OpenJSQ · W4IJG, and its own taskbar entry, and can be maximised.

Each window starts with a thin station strip: your callsign, the waveform and speed, and whether the radio is off, listening, receiving, the channel is busy (with how long) or you are transmitting (with how long). While you transmit the strip turns red and shows ■ Stop TX. Ctrl+Space stops transmitting from any OpenJSQ window, even when you are typing in a message box or a dialog is open. It does that only while your transmitter is keyed; at any other time it is an ordinary key, and Ctrl+Shift+Space is not it.

OpenJSQ remembers which pages were out, where, and on which screen, and puts them back at the next start. If that monitor is not connected then, or the window would be off every screen, the page opens in the main window and the status bar says so. Closing the main window closes them all, and a window never keeps the program running. Prompts the program raises by itself (an alert, a shared-file approval, Cannot transmit) appear on the main window's monitor. Placement on a real second monitor has not had a bench pass yet; if a window lands somewhere odd, Bring all windows back puts everything home.

The top bar while transmitting: Stop TX appears, the slot chip turns red with ▲, and the status bar reads TX · slot n.
The top bar while transmitting: Stop TX appears, the slot chip turns red with ▲, and the status bar reads TX · slot n.

The status bar at the bottom narrates what the station is doing (“Radio running.”, “TX · slot 3”), and says so plainly when something fails rather than leaving a button looking dead. Notices that need nothing from you — an automatic restart of the receive audio, or a receiver for another waveform that could not start beside yours — are shown without Error:, and the Radio page's Live status goes on showing the second. Section 22 has both. The red TX always means your transmitter is keyed.

(Through an external KISS TNC that indication lags by the TNC's own delay — OpenJSQ knows when it handed the frame over, not when the transmitter actually came up.)

5. Quick start on HF — FSQ

Goal: from a working wizard to your first message in about five minutes.

  1. Tune the radio. Set your rig to a known FSQ frequency in USB (data/USB-D if you have it) — e.g. 7.104 or 3.588 MHz are common FSQ gathering spots in North America. Frequency and mode are set on the radio itself.
  2. Check who you are on the air. On the Radio page, directly under the three waveform buttons, the read-only Station identity line says what this waveform is about to transmit — W4IJG-7 on FSQ when FSQ uses your AX1200 name, W4IJG/CRB on FSQ with a suffix, or your bare callsign with neither. It is not typed there. The Callsign, the AX1200 SSID and the FSQ / JG25 name (Same as AX1200, or Callsign with suffix and its suffix box) are in Settings → Station, and Edit station identity… beside the line opens them. Answer them once: AX1200 takes the callsign with the SSID, FSQ and JG25 take either that same name or the callsign with the suffix, and changing waveform never needs an identity edit. An fldigi station hears a W4IJG-7 sender under its full name and can answer it (section 9).
  3. Start the station. Press Start radio in the top bar (or the same button at the bottom of the Radio page). The footer reads “Running — 5 slots, monitoring all of them.” and the spectrum strip comes alive.
  4. Check your receive level. The RX meter should move with band noise and hover comfortably above its floor — set your radio and interface levels so that on an empty channel the small slot chips in the spectrum strip stay quiet instead of flickering busy. (A slot is one of several sub-channels FSQ stations share inside one SSB channel — OpenJSQ listens to all of them at once).
  5. Pick a mode. In the top bar's Mode box, start with FSQ-3 — it's the everyday speed and every FSQ program decodes it. (The four modes above the separator are the fldigi-compatible ones.)
  6. Listen first. Stations appear on the Network page as they're decoded, and everything on frequency shows on Channel — AX1200 and JG25 traffic heard on the same audio too, each entry carrying a small waveform tag. A few minutes of watching tells you who's around.
  7. Set your transmit level — once, carefully. On the Radio page, card Transmit level: Tune puts a real carrier on the air — use a dummy load or a clear frequency. Press Tune, raise FSQ drive until your radio shows the power you want with the ALC meter barely moving, then press Stop tuning. FSQ puts out a steady, unvarying signal, so cranking for power buys you nothing — a clean signal with the ALC (automatic level control) meter barely moving beats a loud dirty one.
  8. Say hello. On Chats, open the Allcall conversation (that's everyone on channel), type a greeting, press Enter. The message waits for a clear channel, then transmits — the footer under your bubble reads Queued, then Sending, then Sent. (Through a relay it reads Sent to relay instead, which is a smaller claim and an honest one.)
  9. Nobody answers? That is normal — an FSQ channel can be quiet for hours, and silence is not a fault. Check the Channel page: if other stations are decoding there, your receive side works and you are simply early. If Channel is still empty after twenty minutes, try another frequency or another band. Section 22 covers the rest.
  10. Talk to someone. Click a station on the Network page (double-click opens their chat), or press + on Chats and type their callsign. Try Actions ▾ → Ask for a signal report — the reply comes back as a plain sentence telling you how they hear you: N4UZZ heard you at 12 dB.
Tip
Want other stations' heard lists to find you? Set Settings → Presence → Announce my presence, for example every 10 minutes. Presence status already reads available; change the words, or clear it for the classic bare FSQ sounding. AX1200 carries the status in its beacon, JG25 in its presence announcement, and FSQ sends it as an automatic Allcall line.
The Transmit level card on FSQ: FSQ, AX1200 and JG25 drive sliders, a peak meter, Tune and Deviation test.
Setting transmit level: press Tune, then raise FSQ drive until the radio shows the power you want with little or no ALC. AX1200 and JG25 have drive levels of their own, used for everything those waveforms send.

That is a working HF station. Section 8 covers everyday operating — the next section is only for VHF/UHF packet, and nothing in it is needed for FSQ.

6. Quick start on VHF — AX1200 packet

On HF? Skip to section 8
This section is only for VHF/UHF FM. Nothing in it is needed for an FSQ station.

Goal: from a working wizard to your first packet message in about ten minutes, on 2 m or 70 cm.

  1. Choose the waveform. On the Radio page, card Radio & audio, set Waveform to AX1200.
  2. Check your packet address. Under the waveform buttons, Station identity reads back what this station will transmit — W4IJG-7 on AX1200, say. It is not set here: the callsign and the AX1200 SSID live in Settings → Station, and Edit station identity… beside the line takes you straight there. Leave the SSID at No SSID, or pick one such as -7 for a handheld; the SSID tells apart packet stations that share a callsign, and W4IJG-1 and W4IJG-2 are two different stations to everything on the channel. An FSQ / JG25 suffix is simply left off here — AX.25 cannot carry one — and the AX1200 card says so in as many words. With FSQ / JG25 name set to Same as AX1200 (the choice a new station starts with), FSQ and JG25 send this same name, so you are one station everywhere: one conversation, one heard row and one mail address for each person you work. Answer the Station card once and this line follows the waveform buttons by itself: switching waveform is never an identity edit.
  3. Pick the radio link. Under Radio link:
    • Built-in modem (sound card) — OpenJSQ makes the 1200-baud audio itself and keys your FM rig exactly like the FSQ setup (same sound card and PTT settings).
    • Bluetooth KISS TNC — only for a TNC that offers KISS as a Bluetooth Low Energy service; most handhelds do not, and use the serial entry below. Section 15 has the details (AX1200 settings).
    • Serial KISS TNC — for a radio with a TNC built in, such as a BTECH UV-PRO paired over Bluetooth, which appears to Windows as a COM port. Three steps, in order:
      • In the radio: turn KISS TNC on and Digital Mode Enable off.
      • In Windows: pair the radio with the computer.
      • Here: pick the COM port — OpenJSQ offers the right one first — leave Speed at 9600, and press Connect.
      No sound card and no PTT wiring are used: the radio does all of it.
    • Network KISS TNC — for a TNC that is a program on the network rather than a device on a wire: Dire Wolf, a Raspberry Pi beside the radio, or a shared TNC elsewhere in the shack. Enter its Host (127.0.0.1 if it is on this computer) and TCP port, then Connect. Like the serial TNC, it modulates, listens to the channel, and keys the transmitter itself.
      The one Dire Wolf mistake everybody makes
      Point OpenJSQ at the KISS port, not the AGW port. Dire Wolf listens for KISS on its KISSPORT line — 8001 by default — while AGWPORT (8000) speaks a different protocol entirely. A station aimed at 8000 connects perfectly and then never passes a single frame.
  4. Pick the channel profile. Network profile: use Dedicated OpenJSQ channel on your own simplex frequency. Choose APRS coexistence only if you must share an APRS channel — it politely disables files, relay, and automatic signal reports so you don't clutter the shared frequency.
  5. Start. Press Start radio. The footer reads “Running AX1200 - packet channel active.” On the built-in modem the station also listens for FSQ and JG25 on the same audio, unless Radio → Receive → Multi-receive → Other waveforms is Off; through a KISS TNC it hears AX1200 only (section 16).
  6. Say hello. Chats works exactly as on FSQ. One packet-only extra: the Live / Verified chip next to the compose box. Live sends once; Verified gets acknowledged packet by packet and re-sends anything missing — pick Verified when the message matters and you're talking to one station. A new conversation starts on Settings → Chats → Default chat delivery (Live unless you change it).
  7. Send a file. On Files, pick a recently heard station from Destination (or type another callsign), click the file field or folder button, then press Send file. Progress, retries, and the result all show in the table; a partial transfer is resumable rather than restarted from byte zero.
AX1200 over a network KISS TNC — point it at the KISSPORT line, not AGWPORT.
AX1200 over a network KISS TNC — point it at the KISSPORT line, not AGWPORT.
Relaying on AX1200
AX1200 relaying is on Settings → Relaying, beside FSQ and JG25. All waveforms, or the wizard's “Carry other stations' messages”, turns it on for all three; Some waveforms lets you tick AX1200 alone, and Off carries nothing. A new station starts with it on for all three (the wizard shows the box ticked); an upgraded station keeps the choice it had. The AX1200 card on the Radio page shows a Relaying line saying what AX1200 is doing right now, and its Relaying settings… link takes you to the card. AX1200 never relays on the APRS profile or while a digipeater path is set, and the line says so. Relay a message only if it has made at most N hops (advanced, 1 to 8, 2 by default) sets how far a relayed message may already have travelled when you pass it on; it covers JG25 too, and FSQ relays the chain its sender names, whatever its length.
Note
On AX1200 the transmit speed is always 1200 baud — the Speed box on a serial TNC sets only the cable speed between computer and TNC (9600 is the BTECH default).

7. Quick start on VHF — JG25

Two reasons to skip this section
You are on HF. JG25 is for FM on VHF and UHF, and using it on HF is a mistake the program will let you make — section 17 explains why not.
No other station runs it. JG25 is in every shipped build of OpenJSQ, but it is still experimental (see the note in section 17). With nobody else on JG25, there is nothing to talk to yet.

Goal: a working JG25 station in about five minutes, given that AX1200 or FSQ already works on the same computer. If neither does, do section 6 first — the sound card and keying are the same hardware and the same settings, and it is much easier to debug those on a waveform other people can hear.

  1. Both ends must be OpenJSQ, and the same build. This is the one requirement JG25 adds and it is not negotiable: no other program decodes this waveform, and the wire format is not frozen between beta builds. Agree with the other operator on a frequency and on which build you are both running before you start.
  2. Choose the waveform. Radio page, card Radio & audio, set Waveform to JG25 — the third button on the row. Switching while the radio is running asks first, then restarts cleanly. The AX1200 panel disappears and the JG25 one takes its place.
  3. There is no separate JG25 address to set. JG25 uses the same name as FSQ, chosen by FSQ / JG25 name in Settings → Station: with Same as AX1200 (where a new station starts) it is your AX1200 name, W4IJG-7, or your callsign alone if you set no SSID; with Callsign with suffix it is W4IJG/CRB. The Station identity line under the waveform buttons reads it back — W4IJG-7 on JG25 — read-only, and following the buttons by itself, so coming to JG25 from AX1200 needs no identity edit at all. JG25 accepts an SSID of 1 to 15 after a hyphen and refuses any other hyphen (W4IJG-99), with the reason. Nothing else to fill in.
  4. Leave the sample rate at 48000 Hz. The JG25 modem works at 48 kHz internally; matching the sound card to it avoids a resampling step for no benefit.
  5. Leave Mode and Error correction alone to begin with. A new station starts at JG25-FM 2400 with F0 — the fastest mode and no error correction, which is what JG25 was measured and validated at. Both settings describe what you transmit and nothing else — every frame carries a protected header naming the speed and coding it used, so the far station follows you automatically and the two of you never have to agree in advance. Change either later, on the top bar, when the path tells you to; the radio keeps running. To help you choose, Chats shows a line under the message box once it has measured the other station's signal — Signal from N4UZZ about 9 dB, 2 min ago: JG25-FM 1400/F0 should work; 2400/F0 needs about 12 dB. It compares the newest SNR you measured from that station, no more than 30 minutes old, with the real radio pair column of the table in section 17, plus 2 dB to spare. It is advice only: OpenJSQ never changes your mode by itself, and they may hear you differently from how you hear them.
  6. Start. Press Start radio. The footer reads Running JG25 (experimental) — native packet channel active., and the spectrum strip shows a single chip — JG25 has no slots, one channel carries everything — reading JG ●, JG ● busy in amber, or JG ▲ TX in red while you transmit. Hovering it says the same in words: JG25 packet channel clear.
  7. Say hello. Chats works exactly as it does on the other two. The Live / Verified chip is there as on AX1200: Verified when the message matters and you are talking to one station. Settings → Chats → Default chat delivery sets what a new conversation starts with, for both.
  8. Send a file. As on AX1200 — Files, pick the destination, choose the file, Send file. Whole-file verification and resume both work.

If it does not decode

JG25's four tones span almost the entire audio passband, which makes it fussier about the audio path than AX1200 is. OpenJSQ receives JG25 whichever waveform is selected, unless Radio → Receive → Multi-receive → Other waveforms is Off or the link is a KISS TNC, and it follows the JG25 panel's settings, so this list applies while you are on FSQ or AX1200 too. In order:

  1. Turn the radio's processing off. Speech processor, noise blanker, DSP noise reduction, any “clarity” or “enhance” feature. All of them reshape the audio the demodulator is measuring.
  2. Use wide FM if you have the choice. Narrow (12.5 kHz) FM clips the top of the passband, which is where JG25's fastest tones live.
  3. Leave Adaptive receive equalization on. It is on by default and it exists precisely because FM audio is not flat and the tilt differs from radio to radio. Turn it off only to compare against a path you know is flat.
  4. Raise the error correction. F3 spends the most airtime and survives the most damage. At JG25-FM 2400 it needed about 2 to 5 dB less signal than F0 in the tests in How fast, and how robust, and a 1 KB file took 16.7 s instead of 12.1 s.
  5. Drop a mode. A slower mode often gets through where a faster one does not decode at all, though not every step down is a tougher mode (the same tables). Robust acquisition, a longer preamble, helps a receiver find a weak or fading signal in any mode.
  6. Check drive. Over-deviating on FM does not sound like distortion the way an overdriven SSB signal does; it just stops decoding. Set it with Deviation test, by ear on a second receiver against a normal voice signal or on a deviation meter.
Before you rely on it
JG25 is experimental. The modem passes its own test suites and the whole service stack — chat, files, mail, station actions, relay and receipts — has been run end to end through it, but the full on-air qualification has not been done and the wire format may change in a later build. Use it where losing a contact costs nothing. For traffic that matters, use AX1200, which is finished work and which other people's equipment can hear.
Relaying on JG25
JG25 has its own choice on Settings → Relaying (All waveforms, or Some waveforms with JG25 ticked), and it applies at once, separately from AX1200's. Like AX1200, JG25 carries one hop, not a chain: a route you type names one relay. How far an already-relayed message may have come when you pass it on is the one hop setting, Relay a message only if it has made at most N hops, shared with AX1200. See section 17. When you turn JG25 relaying on or off, or the HF hold lifts, JG25 sends one presence announcement so nearby stations know whether you relay. In Net mode it waits until Net mode ends. It is not charged to the automatic airtime budget.

8. Everyday operating

Sending a message

Open a conversation, type, press Enter. That's the whole procedure. Under the box, a note line tells you what is about to happen. Messages wait for a clear channel before they transmit, so you can always change your mind: press Cancel in the status line of its bubble, beside the words that say where it stands (its tooltip reads Take this back before the radio keys.). Once the radio has keyed a message, it is too late: the bubble reads Already sent and has no Cancel, and OpenJSQ never cuts a frame that is on the air. Only ■ Stop TX does that. Taking back what is waiting, below, has the rest.

If a message cannot be sent at all, a dialog says why and what you typed stays in the box: Address cannot be sent on this waveform when the selected waveform cannot carry the address (section 9), and Message not sent, Action not sent or Mailbox message not sent for anything else, such as a closed-beta copy that may not transmit. While the radio is stopped there is nothing to refuse: the box and Send are greyed, and the box reads Radio is off. Whatever you type goes out on the waveform selected on the Radio page, even in a conversation whose last message arrived on another (section 16). When that happens, a line above the compose box says so and offers to switch (section 9).

Taking back what is waiting

Anything of yours that has not gone out yet can be taken back, from whichever page you are looking at. Every Cancel reads the same list of what is waiting, so they never disagree with each other.

What a row says after you click Cancel:

The row saysWhat it means
Cancelled before it went outIt had not reached the air. Nothing was transmitted.
Cancelling - telling N4UZZA file whose offer had already gone out. It is ended here, and a short ABORT is on its way to the other station.
CancelledTaken back.
Given upA letter you no longer hold: Given up: it will not be delivered. If another station is delivering it, the row reads Given up here: another station may still deliver it, and it may still arrive.
Already sentA chat whose frame is already on the air. There is no Cancel, and OpenJSQ never cuts a frame that is being sent.

A row can also read Already finished (it ended before your click) or Can't be taken back: the link already has it (a KISS TNC).

What Cancel all waiting never touches. It reads the list once, at the click, asks first, and takes back only the items it named: nothing that starts waiting afterwards. It leaves alone anything incoming, anything your station relays for others, automatic traffic (receipts, answers, echoes) and letters carried for other stations; a shared-folder answer to another station or a letter's text carried for one is service traffic, and keeps its own Cancel on the Files page. The only thing it sends is the short ABORT that ends a file whose offer already went out. What has already gone out is left as it is, and your own letters are given up (one that another station is delivering may still arrive, and the answer says so).

Stop TX is not Cancel. ■ Stop TX and Stop transmitting keep their emergency meaning: they drop the PTT now and stop everything still waiting to go out, whether or not you chose it (section 22). Cancel takes back only the items you pick. Giving up a letter in Holding (section 12) stops its text too, even if it is already going out as a file, so the recipient does not get it after all.

Knowing what happened to it

Every sent message carries its delivery state underneath. The words are chosen carefully: OpenJSQ never claims more than it can actually prove, so a weaker-sounding state is usually the honest one rather than a fault.

StateWhat it meansIs it a problem?
QueuedWritten and accepted, nothing on the air yet — including while it waits for somebody else to finish using the channel. A question, download or mailbox request to a station that is still answering your last one (or to anyone through the same relay) waits here too, reading Waiting for N4UZZ's answer.; it goes once that answer, a refusal or the file arrives, or the time the answer should take has passed. A file on its way between you holds it too, unless nothing of the file has been sent or heard for fifteen minutes (twenty on FSQ). Cancelling a question that has already gone does not end that wait: its answer may still be on the way. If you change the conversation's route meanwhile, it goes on the new route (one asked through a relay never goes direct by itself); deleting the conversation takes it back. Through a relay, once you hear the relay carry the question on, only the answer's way back is waited for. It also waits while your receiver hears the channel in use, up to three minutes from asking. Plain chat never waits for an answer.Not unless it sticks — see section 22.
SendingPTT is keyed and it is going out. Your transmitter is on. On AX1200 and JG25 it also reads Sending while acknowledgements come back or a retry runs.No.
SentThe whole message went out of your radio.No. It does not mean anybody received it.
Handed to the radioThe KISS TNC route's finish line: OpenJSQ gave the frame to your TNC. What the TNC did next is the TNC's business.No — it is the strongest honest claim about somebody else's modem.
Sent to relayYou asked another station to carry this onward, and that request went out.No. A relay may still decline; the route line beside it fills in as evidence arrives.
DeliveredThe far station acknowledged it, packet by packet. Only on AX1200 and JG25, whose frames can be acknowledged — a chat sent with Verified chosen, for example.No — this is the strongest state there is.
Failed / CancelledIt did not go, or you took it back. A send still under way when you stop or restart the radio — a waveform switch included — is marked Failed, with the reason The radio stopped before this transmission completed. Send it again. On AX1200, a message that was still waiting when you pressed ■ Stop TX reads Not sent: transmitting was stopped (Stop TX). One that never went out reads Not sent: the radio stopped or restarted before this went out., and a verified JG25 message that went out but was not yet acknowledged reads Sent, but the radio stopped before the acknowledgment arrived. Before a setting restarts the radio, OpenJSQ says how many messages are still waiting and will not be sent.Failed is worth a look: on AX1200 the reason follows the word.
via CALL · unconfirmedRelayed, and nothing has been observed since.Usually not. Most relays cannot be overheard from where you sit, and none needs confirming to work.
via CALL · carriedYou overheard the relay putting it back on the air.No.
via CALL · deliveredThe destination itself sent a receipt. Only a receipt from the destination ever says delivered. A station sends one for a message that reached it through a relay on FSQ, AX1200 and JG25 alike. A station in net mode sends no receipts, so a message relayed to one holding a net stays unconfirmed or carried until later.No.
⚠ NOT VERIFIEDOn something you received (⚠ NOT VERIFIED — may contain errors): the sender is identified but not every character can be vouched for.Not a malfunction — it is the honest grade for a marginal decode. Read it, then press ✓ to approve it or ✕ to discard it.

The state word sits after the time and the mode — 18:34 | FSQ-3 | Sent — in amber while the message is on its way and green once it is Sent or Delivered.

Section 9 has the full journey line for a relayed message, and section 10 the grades OpenJSQ gives to everything it receives.

Talking to stations that are not running OpenJSQ

Plenty of the program works with people who have never heard of it, and it is worth knowing which half is which before you wonder why a feature seems to be ignored.

On FSQ, with fldigi or FSQCallOn AX1200, with any packet station
Plain chat, Allcall and directed — at the four classic speeds only (FSQ-2 to FSQ-6). OpenJSQ never sends a fast mode at a station that has not advertised it. Plain chat and anything else carried in ordinary AX.25 UI frames. A TNC, a Mobilinkd, Dire Wolf or another operator's packet station can all copy you, and you can share a channel with APRS.
The classic FSQ queries and their replies — signal report, location, heard list and the rest — because those are FSQ's own, not OpenJSQ's. OpenJSQ answers them at the speed the asker used. So is repeat my message to everyone: fldigi's ! or ~ followed by text is answered exactly as fldigi answers it, and an fldigi station's own undirected text (call: text) is shown like any other message. Nothing above the frame. Files, mail custody, verified chat, delivery receipts and the network map are OpenJSQ services carried over AX.25, and a plain packet station will simply not answer them.
Relaying, which is part of FSQ itself. Names such as W4IJG-7: fldigi hears such a station under its full name and can answer it, but cannot itself be one (fldigi drops kk4ib-1 hello without showing it). Not yet tried with FSQCall. An APRS digipeater will repeat your frames if the path asks it to; that is digipeating, not OpenJSQ relaying, and the two are counted separately.
Not the fast modes, files, mail custody or delivery receipts — those are OpenJSQ's, and a station that has not advertised the capability is never sent one. Set Network profile → APRS coexistence when you share a channel: it turns off files, relay and automatic signal reports so you are not cluttering somebody else's frequency.

On JG25 the answer is simpler: nobody. It is OpenJSQ's own waveform and no other program speaks it — which is the whole trade described in section 17.

Knowing whether a station is workable

Two kinds of evidence answer different questions. When the radio link can measure it, the SNR under a message describes how that one copy arrived. On FSQ, hover the footer for the decode margin — how much signal you had to spare over the mode's decode threshold — and the footer itself adds low margin N dB when there was less than 6 dB, because the next fade will lose you. Link Quality instead summarizes how reliably that station's recent traffic has decoded.

Asking things politely

The Actions ▾ button in any single-station chat turns the classic FSQ queries into plain clicks: signal report, location, what's-new, heard list, what the station supports, wake, resend your last message, repeat my message to everyone, shared files, and more. Each radio action loads the compose box and nothing transmits until you press Enter; Esc cancels. Station info… is different: it opens the local station panel and transmits nothing. In a group conversation the menu offers one question only, Ask for a signal report — see Groups in section 9.

When mail arrives

The rail shows Inbox ●1 and the chat notes “Mail from N4UZZ arrived — see Inbox.”, or “… arrived via K4ABC — see Inbox.” when a mailbox station carried it. Open the Inbox, read, done. To leave someone a letter for later, use Inbox → New mail… — your station holds it, announces it once straight away, and keeps trying when they are next heard.

Net mode engaged: this station transmits nothing automatically until you turn it back off.
Net mode engaged: this station transmits nothing automatically until you turn it back off.

Staying a good neighbor

That's the basics
You can operate happily with nothing but Part 1 — the sections above. The rest of this document is the long version: every page, every control, every dialog — for when you want it.

Part 2 — Going furtherThe complete reference: every page in depth, plus how the station decides what to trust.

9. Chats in depth ↑ contents

Chats on FSQ: the conversation list with link-quality badges, and N4UZZ's thread opening with the answer to Ask what they support, then a received message, a reply marked Sent and a second received message.
Chats: the conversation list with its link-quality badges, and a thread whose reply shows its delivery state. The header above the thread names the station, its signal and what it supports; in a pane this narrow its buttons read Direct ▾, Relay ▾ and a paperclip ▾, with Actions ▾ beside them.

The conversation list

Conversations appear for: Allcall (always present — it's the whole channel), every group you're subscribed to, stations you've added by hand, every station in your heard list (which all three waveforms' receivers fill, section 16), and anyone you have history with. Each row shows the callsign, an unread dot, a ✉ badge when they've left unread mail, the slot and signal they were last heard on, and a preview of the last message — the last message somebody typed. The time on the right is when that message was sent or received, on the calendar: 14:07 today, Yesterday 14:07, 24 Sep 14:07 earlier this year, with the year added before that; hover it for the exact moment. It says when you last talked, never when the station was last heard — a message you sent a minute ago does not mean anyone heard back. A station's automatic presence line, like a bare sounding, refreshes the signal badge but never the preview, the unread dot or the timestamp, so a station heard only by its presence reads Heard 18 min ago — how long since this receiver last heard it, kept up to date while the list is open. A reception still coming in previews live, marked ▸, character by character, as it decodes. In the thread itself each day opens with a heading: TODAY — 26 SEP 2026, YESTERDAY — 25 SEP 2026, WED 23 SEP 2026.

A station with a suffix or an SSID has a different name on each waveform — for example W4IJG/CRB on FSQ and JG25 and W4IJG-1 on AX1200 — unless it uses Same as AX1200, which makes it W4IJG-1 on all three. A direct chat sent to any of those names lands in the sender's conversation, whichever waveform is selected, with the waveform named in its footer; so does the ✉ badge for mail. One of your own other names never becomes a conversation of its own.

Press + (or right-click → New conversation…) to start one. You do not have to have heard a station first — FSQ lets you call a station before it sounds. Type a callsign (portable suffixes work on FSQ and JG25; AX1200 uses the AX.25 callsign/SSID form), or a group name starting with @ or # — typing a group here also joins it. The box checks the address against the waveform selected, in a dialog titled New conversation. With FSQ selected it takes a station of 3 to 15 characters — letters, digits and / for portable suffixes — or, since 1.0.7, a callsign with -1 to -15 such as W4IJG-7; anything else is refused with “…” is not a callsign FSQ can address. and the rule. With JG25 selected it takes letters, digits, / for a suffix and a hyphen; a hyphen other than a -1 to -15 name (W4IJG-99) is refused when you send, as described below. If you type an -SSID name that has never been heard on FSQ or JG25, a note says so — A JG25 station answers to an -SSID name only when it uses its AX1200 name on every waveform … — and the conversation opens anyway. With AX1200 selected it takes up to six characters and an optional SSID, such as W4IJG-7. On every waveform a group starts with @ or #, and your own callsign is refused.

The station panel for N4UZZ: heard recently and on the channel now, first and last heard, last and best SNR, last mode JG25-FM 2400/F0, messages with you, and Open chat and Close.
The station panel: what this station has done, and how well you hear each other.

Finding old traffic and inspecting a station

Search chats (Ctrl+F) searches more than the preview you can see: it digs into everything that station has ever sent you, pulls the conversation up, and then narrows the open thread to the matching lines. Clear the box to return to the ordinary conversation list.

Click the callsign in an open conversation, or choose Actions ▾ → Station info…, for a non-modal card titled Station N4UZZ with what OpenJSQ actually knows: whether they are on the channel now (Heard recently — on the channel now, or Heard this session, not currently active; a station restored from the saved heard list says so), first and last heard — each as how long ago and when, 4 h 5 min ago · 10:02, with the exact moment on hover — last and best SNR, the last mode, whether their callsign checksum has been verified (FSQ), how many messages you have exchanged, and Link Quality. Missing evidence is shown as a dash rather than invented as zero.

Groups

A group is a shared address several stations listen to at once — @ARES, #SKYWARN. Joining is as simple as starting a conversation with the group's name, or listing it under Settings → Chats & groups → Subscribed groups. One list serves every waveform. Group traffic is broadcast: delivery is always Live, and 📎 Files is unavailable.

The Actions ▾ menu in a group offers two things, Ask for a signal report and Send an ICS-213 form… (see ICS-213 forms below); everything else is greyed with the reason. A question every member would answer differently, or acknowledge, is not offered to a group, and none is offered to Allcall: your station refuses to send one even when it is typed by hand. Every member whose station answers group questions replies after its own short delay, so the answers do not collide, and the answers are filed in the group's conversation — K4ABC heard you at 14 dB — while your question's footer counts them: 1 station answered, 3 stations answered. Because each question costs the channel an answer from every member, you may ask the same group once every 5 minutes by default; inside that time the menu row reads Ask for a signal report — again in 3 min. Both halves live in Settings → Automatic replies: Limit group signal report requests to one per group every (No limit, 1, 2, 5, 10, 15 or 30 minutes) for asking, and Answer group signal report requests (Automatically by default, and only while automatic answers are on) for whether your own station replies.

The conversation header

Above the thread, on the right, sit four controls and one piece of evidence.

The conversation header with the Files menu open under the paperclip button, offering Send N4UZZ a file and Browse N4UZZ's files, beside the Direct and Relay buttons and Actions.
The header's controls, shortened in a pane this narrow: Direct ▾ is the Route button, Relay ▾ the relayable/local-only one and the paperclip ▾ the 📎 Files ▾ menu, here open, with Actions ▾ beside them. The Files menu is the one a messaging user reaches for; neither of its entries transmits from here.
“Shares files” is evidence, not a guess
Shares files in the header's list, and the Shares files badge on the Files and Network pages, appear only when the station has actually said so — its capability record, or a listing you have already decoded from them. A station with no evidence shows nothing at all, never a grey “unknown”, because “I have not been told” and “no” are different answers. Once you have decoded a listing the badge on those pages reads Shares files · seen 14:22 and that stronger form lasts 24 hours. The badge is not a permission slip: whether you may browse is their access policy's answer, given when you ask. And browsing a station with no badge is perfectly allowed — it is how you find out.

What a station offers

At the top of a conversation, beside the callsign, OpenJSQ lists what the other station offers on the waveform you are using — for example chat with receipts, files, relays for others — and when that was learned: as of 14:05, with the date once it is older, or may be out of date when the station has since announced a change. The labels are the same on FSQ, JG25 and AX1200: chat with receipts, verified chat (which covers receipts, so a station that offers it is not listed with both), files (it accepts files you send), shares files, mail, mailbox, station actions, heard list, groups, relays for others (written relays for others (up to 3 hops) on JG25 and AX1200 when it says so, and relays for others (chains) on FSQ, whose relays forward a chain of any length) and, new in 1.0.7, repeats for others (it will repeat a message to everyone when asked; see Ask them to repeat my message… below). A service the waveform cannot carry is simply left out: FSQ never says verified chat, and only AX1200 says groups. A station that offers nothing reads plain chat only; one OpenJSQ has not heard from yet reads Not known yet: learned from the first answer or presence. A station you reach only through a relay is learned from its answers that come back through it: station actions once it has answered one (a relay does not carry its record on JG25). When the header is too narrow for the whole line it drops whole labels and says +3 more, never cutting one in half; the full list is behind the ⓘ.

Press the ⓘ to see what the station offers on each waveform and how each was learned — its own answer, a presence that confirmed it, or its own announcement — with when. Press it again to close it.

The conversation header with the information panel open under it: one line per waveform, FSQ and JG25, each reading chat with receipts, files, station actions, from its answer, as of 12:30.
The ⓘ panel: what the station offers on each waveform, and how each was learned (here, from its own answer) and when. Press ⓘ again to close it.

Stations send only a short change counter with their presence. When a station changes a setting that matters (turns relaying on, stops sharing files) it announces its new record once, and OpenJSQ asks again only before you do something that depends on it — pick it as a relay (Route or Send through a relay station…), send it a file, or send it a station action — and only when its information is missing or out of date, at most once every five minutes per station. What you learn is remembered across a restart. Your own record is truthful and follows your settings: turning relaying, folder sharing or Repeat messages for on or off, or selecting another waveform, changes it while the radio runs and goes out once as an announcement on each running waveform (held by Net mode, and not charged to the airtime budget); receipts, mailbox, custody, automatic answers, the heard list and Accept files from other stations take effect the next time the radio starts. Those, and anything else you change and save in Settings (which restarts the radio), go out once as an announcement when the radio is back, if your record changed; on FSQ only when the FSQ part changed. A station running 1.0.5 does not send the record; for it OpenJSQ reads the older JG25 and AX1200 capability answers, and never refuses a send or a station action because such a station left something out.

When a station announces a change unasked, one small line appears in the conversation, kept after a restart: N4UZZ: verified chat, files, relays for others. Your own question reads You asked N4UZZ what it supports. Actions → Ask what they support asks the same question on every waveform, and the answer arrives as a message from that station, with the usual time, signal and waveform under it: the program and version on the first line (OpenJSQ 1.0.7), then Supports: … with every service and its hop limit, then Works on JG25 (the waveform its operator has selected). A station that does not say which program it runs — one older than 1.0.7, or a station whose Answer "what software" is Never — reads Software: not reported. JG25 and AX1200 do not carry the question through a relay, so a routed ask there is refused with a sentence. When the station is fldigi or FSQCall, whose answer carries no labels, it reads N4UZZ runs fldigi 4.2.00 and the reply stays in the chat as well. Only a short line that names software (a version number or a known program) is taken as that answer, so ok thanks 73 after your question stays an ordinary message. This station's own automatic answer to someone else's question reads Told N4UZZ what this station supports — in the conversation and in the conversation list — instead of the raw software text.

The answer to Ask what they support in Chats: your italic line You asked N4UZZ what it supports, and under it a bubble reading OpenJSQ 1.0.7, Supports: chat with receipts, files, station actions, and Works on JG25.
The answer to Ask what they support: your question as an italic line, then a message from the station with the program and version, a Supports: line and a Works on line, with the usual time and signal under it.

A heard-list answer reads as an answer on every waveform: a heading, N4UZZ hears:, then one line per station — KK4IB heard at 12 dB at 2026-10-22 12:30 UTC, or heard, no SNR where that station measured none — or N4UZZ's heard list: no stations. Long lists stop at twenty and count the rest. The conversation list shows the short form, N4UZZ hears: KK4IB, W4IJG, and the request you sent moves from Queued to Sent and Answered (or, once the time an answer should take has passed — about two minutes, see section 24 — No answer from N4UZZ.). A JG25 answer lists every station that station has heard lately on any waveform, not only those its JG25 receiver heard, and leaves out the station that asked.

If you pick a relay (Route, or Send through a relay station…) that says it does not relay, or ask a station for something it says it does not answer, OpenJSQ tells you instead of sending: N4UZZ doesn't relay for others right now., N4UZZ doesn't answer station actions., N4UZZ doesn't share its heard list. If OpenJSQ's information is out of date and says no, it asks the station again, does not send yet, and says Checking whether N4UZZ relays for others. Try again in half a minute. A station that has said nothing is never taken to mean no. In Net mode OpenJSQ does not ask, and the send goes ahead.

The compose row, left to right

When the station was last heard on another waveform, an amber line above the box says so — “⚠ K4ABC last reached you on FSQ — what you type here goes out on JG25.” — with a Switch to FSQ button beside it. Multi-receive hears all three waveforms, and OpenJSQ's automatic answers go back on the waveform each request came in on, but what you type always goes out on the waveform selected on the Radio page, and a station that only runs FSQ, such as fldigi, never hears a JG25 reply. The button does exactly what clicking FSQ on the Radio page does: the usual confirmation, then the radio stops and restarts on FSQ. Nothing switches on its own.

The reply-waveform warning above the compose box: K4ABC last reached you on JG25 — what you type here goes out on FSQ, with Switch to JG25 and a close button beside it.
The warning on an FSQ station whose correspondent last came in on JG25. Switch to JG25 selects JG25 after the usual confirmation; × hides the line for this conversation.

The line goes by the newest chat, letter or file that station itself sent you, on any waveform — never by what you sent them, and never by the presence, answers and capability lines its radios send by themselves on other waveforms, which say nothing about where its operator reads. A station you have only heard, and have had no chat, letter or file from, gets no line. It stays away when that is not known, when it matches your selection, in Allcall and groups, and while the radio is stopped. × hides it for that conversation until OpenJSQ restarts or you switch profile; it comes back if the station turns up on yet another waveform or you select a different one. Either way the Send button's tooltip still says where the message goes: Goes out on JG25. K4ABC last reached you on FSQ.

When the station only reached you through a relay, a line in the same place says so — “⚠ W4IJG reached you through KK4IB — you may not hear each other directly.” — with a Reply via KK4IB button. It shows when the station's newest message to you came through a relay, the conversation's route is Direct, and you have not heard that station directly lately. The button sets the conversation's route to that relay, exactly as the Route chip does; × hides the line for that conversation. It clears by itself once you hear the station directly or choose a route (choosing Direct again brings it back). When both warnings apply it is one line, “⚠ W4IJG reached you through KK4IB on FSQ — what you type here goes out on JG25.”, with both Reply via KK4IB and Switch to FSQ. For an FSQ chain the button sets only the last carrier, because a relayed FSQ message does not carry the way back; a longer return route has to be typed. The button is left out when that station is not a valid relay on the selected waveform.

The waveform line and Network's Last RX give the same answer, so the two pages agree: when the station's own capability record says which waveform it works on, the line reads “N4UZZ works on AX1200 — …”.

A long conversation does not draw itself all at once. The newest 200 lines appear immediately, and a bar above the thread counts the earlier lines not drawn yet, with a Show 200 more button beside it. Nothing has been lost or trimmed; only the drawing is deferred, which is what keeps a two-year conversation from taking a visible moment to open.

If you scroll up to read, new messages do not pull you away, and a ↓ Newest button at the bottom right of the thread takes you back to the newest message (and returns you to the compose box). You count as at the bottom within 8 pixels of the end — a little more at the larger Text sizes — the same rule the Channel feed uses.

The note line under the box is the app thinking out loud: what the message will do, what it costs (on AX1200: bytes, packets, and airtime), and any problem with it — before anything transmits.

Each waveform checks the address before anything is sent. On AX1200 an SSID belongs in the box like any other callsign: type W4IJG-2# to leave a note in that packet station's mailbox, or W4IJG-2;N4UZZ text to route through it. FSQ addresses W4IJG-2 too, since 1.0.7: a callsign of up to six letters and digits, a hyphen and a number from 1 to 15 is one address to every OpenJSQ station. Any other hyphen still starts a command at the receiving station, so with FSQ selected a destination or relay hop such as W4IJG-16, W4IJG/P-1 or a station address longer than 15 characters is refused before anything is queued, in a dialog titled Address cannot be sent on this waveform: W4IJG-16 cannot be addressed over FSQ. FSQ keeps a hyphen only in a callsign followed by -1 to -15, such as W4IJG-7; anything else after a hyphen is read as a command. … fldigi and FSQCall: fldigi hears a W4IJG-2 station under its full name and its automatic answers reach it, but a message addressed to KK4IB-1 reaches a plain fldigi KK4IB as an unknown command, which fldigi drops without showing — so an fldigi station keeps a plain or /suffix callsign. Not yet tried with FSQCall. JG25 carries W4IJG-2 as it is, and a station using Same as AX1200 answers to it there; any other hyphen (W4IJG-99) is refused in the same dialog, because no station can have that name. If that exact name has never been heard on FSQ or JG25, New conversation says so — it may be a station that answers to it on AX1200 only — and opens the conversation anyway. AX1200 has the mirror-image rule: a /suffix identity such as W4IJG/CRB is refused with … AX1200 cannot address /suffix stations …, because no SSID can be worked out from it. Either way your line stays in the box.

Two consequences are worth knowing. A hyphen alone does not make an address. What stands in front of it has to be a callsign in its own right, so 2-3?, 10-4, RE-2? and covid-19? go out as the words you typed rather than as a question fired at a station of that name. And one station has one spelling. W4IJG-01 is read as W4IJG-1, and W4IJG-0 and W4IJG-00 as the bare W4IJG — AX.25 writes no SSID at all for zero — so the loop check, the repeat check, the transport and the history row all see one canonical address and cannot disagree about who you addressed.

An address the wire cannot carry — W4IJG-99, say, when AX.25 SSIDs stop at 15, or W4IJG-2-3 carrying two of them — is explained in the note line while you type (⚠ … Fix the address, or delete it to send the line as an ordinary message.) and your line is left exactly where you typed it, rather than being cleared or quietly transmitted as ordinary words. You get that sentence only where the line is plainly meant as an address — a hop behind it, a semicolon in front of the next one, or a trigger such as ? or # stuck to its back. Anywhere else a hyphenated word is nobody's business and passes without comment.

Multi-receive brings these rules to the surface. You hear K4ABC-7 on AX1200 while FSQ is selected, open the conversation and reply. Since 1.0.7 FSQ can address K4ABC-7, so the reply goes out on FSQ; if their last chat to you came on AX1200, the line above the compose box says so and offers Switch to AX1200. It reaches K4ABC only if that station answers to K4ABC-7 on FSQ too (Same as AX1200). If it keeps a plain or /suffix FSQ name, select AX1200 to answer, or write to its FSQ name (section 16).

The Address cannot be sent on this waveform dialog: W4IJG-16 cannot be addressed over FSQ, with the advice to use the station's FSQ name or select AX1200, and an OK button.
A reply to W4IJG-16 while FSQ is selected: FSQ keeps a hyphen only in a callsign followed by -1 to -15, so nothing was queued and the dialog says why. Use the station's FSQ name, or select AX1200 for this address; the address is never converted automatically, and the reply stays in the compose box.

The Actions menu, item by item

The Actions menu open in N4UZZ's conversation: Station info, the ask items (signal report, QTH, QTC, last message, repeat my message, what they support, wake them), Send an alert, Send through a relay station, Leave a message in their mailbox, Browse their files and Send a text file.
The Actions menu, with the 1.0.7 items Ask them to repeat my message…, Ask them to repeat my message later… and Ask what they support. The line at its top says each ask loads the box below; nothing goes on the air until you press Enter. Ask who they can hear is greyed in this conversation.

Open a single-station chat and press Actions ▾. As the menu itself says: each of these loads the box below — nothing goes on the air until you press Enter.

In the Allcall conversation Actions ▾ has one entry of its own, Announce my presence now. It sends your presence announcement at once, the same as Announce now on Radio → Live status (see Presence), and is greyed, with the reason, when the radio can't send. Station conversations don't have it, and Allcall has none of the station actions.

The Actions menu open in the Allcall conversation: one entry, Announce my presence now, greyed here because the radio is stopped.
The Actions ▾ menu of the Allcall conversation. The entry is greyed while the radio is stopped.
Menu itemWhat it does
Station info…First in the menu, and the one item that transmits nothing: the station card described above.
Ask for a signal reportHow do they hear you? Your question stays in the thread as Asked for a signal report, its footer says answered when it is, and the reply arrives as its own sentence: N4UZZ heard you at 12 dB (or …heard you, but could not measure the signal). A station answering you automatically shows You heard N0CALL at 12 dB on its own screen, marked sent automatically. Asked through a relay (a route on the chip), the number is how that station hears the relay, not you, and the sentence says so on every waveform — W4IJG heard you through KK4IB-1: the last hop, KK4IB-1 to W4IJG, at -6 dB — while the Network page draws only the relay's link to it, never a line between you and a station your radio cannot hear. The answering station's own copy says You heard N4UZZ through KK4IB-1: the last hop, KK4IB-1 to you, at …, via KK4IB-1.
Ask where they are (QTH)Their location text.
Ask what's new (QTC)Their status line.
Ask who they can hearTheir heard list. With a route on the chip it goes through the relay and the list comes back the same way, on every waveform. Asked that way, a station that does not answer heard lists says so.
Ask for their last message to you / Ask for it again after a pauseThey resend the last message they sent you in the past 30 minutes, whatever waveform it went out on: a message they sent you on JG25 is resent on FSQ if you ask on FSQ. The answer comes on the waveform you asked on; on AX1200 and JG25 a long message is cut to what one answer carries. On FSQ a message from another waveform that would not fit one transmission at that speed, or has characters FSQ cannot send, is not sent: the answer reads last message too long to repeat here or last message can't be sent on FSQ. Group and everyone messages are not included. It is answered only if your request reaches them the same way their message reached you: directly, or through the same relay. Ask for it again after a pause does the same after 0–60 seconds: type the number before pressing Enter (blank means 15). A station running an older OpenJSQ only looks on the waveform you asked on; if it has nothing there, you see, for example, Nothing to resend on JG25: their last message to you came on FSQ. — named only when that message is less than 30 minutes old, so ask again on that waveform while it is still recent. Otherwise it reads Nothing to resend on JG25: they haven't sent you a message on JG25 in the last 30 minutes. (On AX1200, where a station's SSID cannot be tied to its FSQ or JG25 suffix, it names only AX1200, and a message is matched to the exact name it was sent to.) A delayed answer you promised is dropped if you turn on Net mode, or turn automatic answers off, before it is due.
Ask them to repeat my message… / Ask them to repeat my message later…They send your text, unchanged, to everyone, under their callsign - for example a net check-in carried by a hilltop station that everyone hears. The compose box starts with your callsign (W4IJG: ); type the rest and press Enter. Later first asks for a pause of 0–60 seconds. On FSQ this is fldigi's ! or ~ followed by the text, so fldigi stations understand it; OpenJSQ's own delay form ~{30} is used only with stations whose record says they repeat for others, and every other station gets fldigi's form (fldigi waits 15 seconds). On AX1200 and JG25 it is a station action. A station whose record says it does not repeat for others is not asked, and you are told why. Your row reads You asked BALDKNOB to repeat: …, and the conversation says Repeated when you hear the echo. If they refuse, their answer says why: not repeating messages, not repeating commands, asked too soon, wait a little (you asked again inside the spacing), busy (no room to carry it just now), too long or already repeated. Without text, ! and ~ still mean the row above.
Ask what they supportThe program and version they run and the services they offer (What a station offers), as a message from them. It sends the capability request on every waveform: ^ on FSQ, the capability request on JG25 and AX1200.
Wake them (sound their alarm)Sounds an alarm at their radio — even if they're “asleep.” Use sparingly.
Send an alert…An alarm plus your words at their station. There it opens a warning window titled Alert from KK4IB that shows your words, or KK4IB is calling for your attention. if you sent none. A second alert while the window is still up is added to it, newest last (the last six are kept, with a count of how many arrived), and one OK dismisses them all.
Send through a relay station…Prefills a one-hop route into the compose box for this message only. For a route that stays put, use the Route chip in the header instead — see below.
Leave a message in their mailbox…Stores a note at their station; they read it any time from their Inbox.
Browse their files…Asks that station for the list of files it shares. The list arrives on the Files page, in Browse a station, where you pick a row and download it. The remote path is never typed over the air. There is a second door to the same thing: 📎 Files ▾ → Browse their files in the same header.
Send a text file…On FSQ, transmits a small text file (8 KB cap — FSQ is slow); on AX1200 and JG25, hands off to the Files page.
Send an ICS-213 form…The EmComm general-message form as a fill-in sheet — see below.

Grayed items explain themselves — hover for the reason (station doesn't support it, radio not running, APRS profile, and so on).

Relaying through another station

The route menu under the Direct button: Direct ticked, via K4ABC, via W4IJG, and a hint that longer chains are typed as VIA1;VIA2;DEST text.
The route menu (the Direct ▾ button): every station you have heard can be offered as a relay, and a longer chain is typed.

When a station is beyond your reach, you send through one that hears you both. The station in the middle retransmits your traffic; the recipient sees it as coming from you, tagged via whoever carried it.

The Route chip

In the header of any single-station conversation, beside Actions ▾, sits a chip reading Route: Direct ▾. Click it and you get Direct, then one via … entry for every station you have heard that the selected waveform can send through — hover an entry for that relay's link quality, so you are choosing on evidence rather than hope. Pick one and the chip becomes Route: via K4ABC ▾.

The list holds only names the selected waveform can send through, because your heard list holds every waveform's receptions and one station may have a different name on each. A relay that is W4IJG-1 on AX1200 and W4IJG/R on FSQ and JG25 may be in your heard list under both. With AX1200 selected the menu does not offer W4IJG/R, because AX1200 has no /suffix. With FSQ or JG25 selected it offers both, because since 1.0.7 both waveforms carry -1 to -15 names; choose the name you heard on that waveform, because a station answers to W4IJG-1 on FSQ or JG25 only when it uses Same as AX1200. Groups, Allcall and the person you are writing to are never offered, and nor is your own station, under any of its names.

An entry may also read via K4ABC (heard N0XYZ 3 min ago). That is the other half of the question, and it comes from the relay's own heard list: K4ABC has told the network, in its own words, that it can hear the station you are writing to. The age is worded the way every heard station's age is, and uses the same time limit: a hearing older than Settings → Presence → Consider stations recent for is not offered, just as the Network map greys that edge. When your correspondent is no longer recent on your receiver, and somebody else can still hear them, those stations move to the top of the list so you see them first. Nothing is chosen for you — the app never picks a route by itself. The hint is a past hearing on somebody else's clock, not a promise that the relay will carry anything, and a clock well ahead of yours shows as heard N0XYZ 10 min in the future. Your journey line still says unconfirmed until real evidence arrives.

That route then stays set for that conversation until you change it. It is not a one-shot decision per message, which is the point: if a correspondent is only reachable through a relay, that is a property of the path, not of one sentence you happened to type. The route belongs to one conversation on one waveform. A relay chosen with AX1200 selected is AX1200's, and the chip reads Route: Direct ▾ after you switch to FSQ until you choose FSQ's own. Switch back and the AX1200 route is still there. Since 1.0.5 a route survives a restart: a path that needed a relay yesterday usually still needs one today, and losing the setting silently meant the next message went direct — which looks exactly like a message that was relayed. It belongs to the profile it was chosen in, so switching station identity gives you that identity's own routes. Deleting the conversation takes its routes on all three waveforms with it. A route that can no longer work is dropped rather than restored: one through any of your own callsigns (after you change it, say), or one with a hop its waveform cannot address. A route saved by an earlier build, before routes were kept per waveform, is kept on every waveform that can send all of its hops and dropped if none can. Change it whenever propagation has, with one click on the chip.

The chip does not appear on Allcall or a group. Everyone hearing a broadcast has already heard it.

On AX1200, a relay that last said it does not relay is asked again before your message goes out (at most once a minute per relay), and the bubble reads Checking whether K4ABC relays for others.... If it still says no, the message fails with K4ABC doesn't relay for others right now., the same sentence the other waveforms give; if it does not answer, with K4ABC didn't answer when asked whether it relays for others. Try again in a minute, or choose another relay. Choose another relay, or send direct.

On AX1200 a relayed message must fit in one packet: about 180 bytes, a little less to a longer callsign. While a route is set, from the chip or typed as VIA;DEST words, the line under the box counts it — 142 of 179 bytes left for a relayed message. Past the limit it says by how much — Too long to relay: 190 of 179 bytes. Shorten it by 11 to send. — and Send waits until you shorten it. Or send it direct. A letter such as é counts as two bytes, as it is sent.

Routes need the full chat format. If Chat format on the Radio page is Compatible with older OpenJSQ versions, the Route chip is greyed and its tooltip says so. A route already set can still be set back to Direct; until then the line under the box says why, and Send waits.

What travels the route

Once a route is set, it carries almost everything you do in that conversation — ordinary messages, the questions on the Actions menu, alerts, and mailbox notes. A route and an armed action work together rather than cancelling each other: arm Ask for a signal report, and the note line reads the whole plan back to you before you press Enter. Under the compose box you will see ↗ Goes to K4ABC, who passes it to N0XYZ — the route in English, never in punctuation.

Longer chains

The chip offers one hop, because one hop is what almost everyone needs, and it never offers the recipient as their own relay. For a longer route, type it: VIA1;VIA2;DEST your message — each hop separated by a semicolon, destination last. FSQ will carry a chain; AX1200 and JG25 pass traffic through one relay only and refuse a longer route rather than quietly truncating it.

Every hop is a separate transmission, so a chain is slow, and every station in it has to be listening and willing to relay. The note line warns you about any hop you have not actually heard.

Routes the app will not let you send

Each of these is refused with the reason in the note line, never silently downgraded to a direct send:

Keeping one conversation off the repeaters

Beside the Route chip sits a second chip that answers a neighbouring question: may repeaters carry this conversation at all? It reads the effect, not where the answer came from: Relayable ▾ when repeaters may carry what you send here, Local only ▾ when your frames ask them not to. Click it for three choices:

The choice applies to everything you send in that conversation: messages, the Actions questions and mailbox notes. It also covers what your station sends that station on its own, such as automatic answers, including answers from the waveforms listening beside the selected one (section 16). It works on all three waveforms, is kept per conversation beside the route and survives a restart, belongs to the profile it was chosen in, and is removed when you delete the conversation.

Two things it never changes, and the chip's tooltip says so. A message you route through a named relay goes out unmarked, because you asked that relay to carry it. A delivery receipt goes out unmarked, because it closes the other station's loop. So a conversation set to Local only whose message you send via K4ABC is not a contradiction: naming the relay for that message wins.

There is no compose-box shorthand for this. A leading = would collide with ordinary text, and = is also the mark itself on the FSQ wire. Use the chip.

What a relay can and cannot carry

TrafficThrough a relay
Messages, actions, alerts, mailbox notesYes, on every waveform.
Verified delivery (AX1200, JG25)No — a relayed message goes out Live. An acknowledgment would come from the relay rather than the recipient, which would be a delivery confirmation that confirms nothing, so the app declines to offer it.
FilesUp to 256 KB, travelling as a letter's body. Larger than that, send it directly.
A long ICS-213One hop only. Past one frame the form travels as a file, and a file can be relayed through a single station, not a chain.
Browsing a station's shared filesNot yet. The listing travels as a file transfer and has no relayed form — ask that station directly. A route you have set is refused in words, with the route named, rather than quietly downgraded to a direct transmission you were never told about. The same holds on the Files page: if your conversation with that station goes through a relay, browsing its shared files (or downloading from its list) is refused with a message naming the relay; send the file as mail and let a custodian carry it instead.
A long mailbox note on AX1200No. Past the frame size it becomes a file, and AX1200 file transfers do not relay. Shorten it or send direct.

Mailbox notes (the # convention)

Typing #your note in a chat stores the note in that station's mailbox instead of their chat window — they read it later from their Inbox, even if they weren't listening when you sent it. #[name.txt] your note gives it a file name. This is the classic FSQ store mechanism, so it works with fldigi stations too.

ICS-213 forms

The ICS-213 form dialog filled in: To N4UZZ, From KK4IB, a subject, a one-line message and a signature, the tick that files it in their mailbox, and the byte count, 132 of 136.
The ICS-213 sheet: To, From, Subject, Message and Signature, the tick that files it in their mailbox so they send back a receipt, and the byte count under it (132 of 136 here). Past the limit the form travels as a file transfer instead.

Actions ▾ → Send an ICS-213 form… opens a fill-in sheet mirroring the paper form: To, From, Subject, Message, Signature; date and time are stamped automatically in UTC. A box at the foot, File it in their mailbox, so they send back a receipt, is ticked by default, and the button reads Send form. Like every other action, Send form transmits nothing by itself: it loads the compose box — N4UZZ#[ics213-kk4ib-2609152129.txt], the form filed under a name your station derives — and the note line says ICS-213 for N4UZZ is ready — press Enter to transmit it. The byte counter now explains the transport rather than simply refusing a large form: a short form rides directly, while a form that exceeds the short-message budget is carried by the JSQ file service. At the far end it still opens as an ICS-213 form in the conversation/Inbox, and the underlying transfer remains visible on Files. Short labeled-text forms remain readable by classic FSQ software.

To a group. In a group conversation the form goes to every member as one ordinary group message. It is never filed in their mailboxes and never sent as a file, and no member acknowledges it, so the filing box is gone and the dialog says Sent to the group as one message. Members see the form; it will NOT be acknowledged. The byte counter is what one group message carries on the selected waveform; a longer form cannot be sent to a group (too long for a group): shorten it, or send it to each station or as mail. Members' stations show it as the form. A form cannot be sent to Allcall.

The ICS-213 form dialog for a group: To @DRILLNET, From KK4IB, a subject, a message and a signature, the note Sent to the group as one message, and the byte count, 136 of 136.
An ICS-213 form to a group: no filing box, and the dialog says it goes as one message that will not be acknowledged.

Deleting

Use a message's ✕ button (Delete this message); delete a whole conversation from its header's 🗑 or the list's right-click menu. Deleting a conversation takes its letters and file-transfer lines with it, and the confirmation counts each kind in its own words — 4 messages, 1 letter, 2 file transfers — because messages, letters and downloads are three different things on three different pages. A transfer still on the air is left out of that count and left alone; this does not reach into a live transfer. A station you deleted stays off the list until it is heard again, or until something newer than the deletion passes either way; opening its chat from Channel, the map or the Inbox shows the thread without putting it back on the list, and sending it something does. A group has no presence of its own, so only a message brings one back. Allcall is the one conversation that cannot be deleted at all — it is the whole channel rather than a station, the program says so, and its individual messages still delete. If the history store refuses a deletion — a history.sqlite locked or made read-only by a sync client is the usual cause — the row stays and you are told, instead of the bubbles vanishing and reappearing at the next start. Everything goes to the Deleted page, where it waits 30 days and can be restored with one click (Restore puts it right back; restored files never overwrite — a name clash becomes name (restored).ext).

10. Reading what arrives ↑ contents

Chats told you how to hold a conversation. This section is about reading one: the numbers under each message, the badge beside a callsign, and how much the program is willing to vouch for any of it. It is the part of OpenJSQ an operator grows into, and none of it needs a setting changed.

The footer under every message

A message the transport will not vouch for arrives labelled, not hidden.
A message the transport will not vouch for arrives labelled, not hidden.

Every bubble carries a footer line, and it is worth learning to read — it answers most of what you want to know about a contact without going anywhere else. On a received message the fields are, in this order, separated by bars — 18:28 | SNR 29 dB | 100% | FSQ-3 | slot 2 | 4.8 ch/s (58 wpm):

FieldExampleWhat it tells you
Time14:32When it was decoded here, in local time.
SignalSNR 29 dBThe signal in dB above your receiver's own noise floor (not an absolute S/N). Above 40 dB it reads 40+; where nothing was measured it reads --, never a made-up number. On FSQ, hover the footer for the decode margin — how far the signal sat above the measured decode threshold for that mode. A margin near zero is the app telling you to slow down before the band does it for you.
Link qualitya colored 92% blockSee below.
ModeFSQ-3, AX1200, JG25-FM 2400/F0What carried it. A JG25 message names its mode and error correction together. Because OpenJSQ receives all three waveforms at once (unless Other waveforms is Off), this is also the answer to which waveform brought it: one thread can hold FSQ-3, JG25-FM 2400/F0 and AX1200 footers from the same station (section 16).
Slotslot 3Where on the channel — FSQ only, and only when the channel plan has more than one slot.
Realized speed4.8 ch/s (58 wpm)What the reception actually achieved — message characters divided by the channel time it occupied. It always reads below the mode's nominal rate, and the shorter the message the further below, because the frame's own header, callsigns and checksum share that same span. Hover for the arithmetic. A question or other request has no text to divide, so this place shows its air time instead: 2.8 s on air.

After those, a received footer adds notes only when they happen: via K4ABC on a relayed message, naming the station that actually handed it over (plain relayed when that was not recorded); on AX1200, FEC recovered, 3/5 packets or live partial, missing packet, gap repaired, and APRS when it arrived under APRS coexistence; the outcome of a station action; low margin -2 dB on FSQ when there was little to spare; and no CRC on an FSQ message that carried no checksum.

A sent bubble is shorter — time, mode, slot where there is one, and the delivery state from section 8: 18:34 | FSQ-3 | Sent (Sent to relay when it went through a relay, and Handed to the radio on a KISS TNC, which may still be waiting for the channel). There is nothing to measure on something you sent. Its notes say what else is known: answered or 2 stations answered on a question; sent automatically, automatic presence, carried for another station or mailbox service when a service rather than you sent it; 12/15 packets on a multi-packet AX1200 send; the relay journey below; and relayed for N4UZZ.

Following a relayed message on its way

A message you sent through a relay carries a short journey line that fills in as evidence arrives:

via K4ABC · unconfirmedSent, and nothing has been observed since. This is not failure. Many relays simply cannot be overheard from where you sit, and no confirmation is ever required for a relay to work.
via K4ABC · carried 11:16Your station has positive evidence the relay put it back on the air — it overheard the retransmission, or heard the relay's own wrapped copy, or heard a digipeater repeat the frame.
via K4ABC · carried 11:16 · delivered 11:17The destination itself sent a receipt — delivered is added to whatever the line already said, so a relay you never overheard reads via K4ABC · unconfirmed · delivered 11:17. Only a receipt from the destination ever says delivered — a relay carrying your message is not the same as the far end receiving it, and OpenJSQ will not blur the two.

Messages sent before this tracking existed simply say so rather than pretending to be unconfirmed. And when evidence could plausibly belong to more than one pending relayed message, it promotes neither — an ambiguous match leaves both unconfirmed rather than crediting the wrong one.

A received message's footer: time, SNR, link quality, mode and realised speed.
A received message's footer: time, SNR, link quality, mode and realised speed. An FSQ footer adds the slot.

The Link Quality badge

Where a station has enough scored receptions, you will see a colored percentage such as 92%. That is Link Quality: how reliably this station's recent transmissions have actually decoded here. Signal strength is the physics when it is measurable; Link Quality is the outcome history.

80–100%Reliable — their traffic gets through.
50–79%Marginal.
0–49%Poor.
grayThe evidence is old, not bad. Once the newest evidence behind the figure is older than Consider stations recent for (Settings → Presence, an advanced row, 2 hours by default) the badge grays in the conversation list, the conversation header, the Station info panel and the Network page — the same window that marks the station Inactive, so a recent station carries a coloured badge and an inactive one a gray badge; with Never no badge grays. It grays on a quiet channel too, and after a restart — a message's own footer keeps the colour it had when that message arrived — but the number itself is never decayed, so gray 92% honestly means "92%, measured two hours ago."

The number is always inside the badge, so color is never the only signal. You will see Link Quality in chats, the open-conversation header, incoming bubbles, the Station info panel, and the Network page's Link column. It is tracked on FSQ, AX1200 and JG25 and survives a radio restart. It is kept per exact name: KK4IB, KK4IB-2 and KK4IB/HME each have their own figure, so a station silent for weeks never wears the fresh badge its namesake earned yesterday. A dash means OpenJSQ does not yet have enough evidence to claim a score.

Honest limits
Link Quality is deliberately not a conversion of SNR, and it is uncalibrated on purpose — it drives nothing automatic. Treat it as a well-informed opinion about a station, not a measurement. The forensics of how a particular copy arrived live on the Channel page; the bubble only answers whether to trust the sender.

What the other station can do

The header of every conversation, on every waveform, lists what the other station offers on the waveform in use — chat with receipts, files, relays for others — with when that was learned and a ⓘ that opens the whole picture. A station that offers none of the extras reads plain chat only, a real answer, and a station OpenJSQ has not heard from yet reads Not known yet: learned from the first answer or presence, deliberately worded differently from "no". What was learned is kept across a restart. This is why grayed items in the Actions menu are grayed: the other end has told you what it can do. What a station offers has the details.

When you ask yourself (Actions ▾ → Ask what they support), the answer arrives as an ordinary incoming message from that station, with the usual time, signal and waveform footer, in three lines: its program and version (OpenJSQ 1.0.7), Supports: with every service it offers, its relay hop limit and repeats for others included, and Works on JG25, the waveform its operator has selected. A station that does not report its software (on JG25 or AX1200, one older than 1.0.7; on any waveform, one whose Answer "what software" is Never) reads Software: not reported. A change a station announces unasked stays a small grey line in the conversation.

How much OpenJSQ will vouch for it

Sometimes a banner appears above the message text, with the ordinary footer still under it, and it is worth knowing why. Weak-signal decoding means occasionally receiving a message almost perfectly. Most software silently guesses at the rest. OpenJSQ grades instead, and shows you the grade:

What you seeWhat it means
received, checkedFraming intact and integrity verified (the Channel page's advanced view names the check, e.g. CRC16 VERIFIED; the bubble shows nothing extra). Trusted — eligible to trigger automatic replies.
⚠ NOT VERIFIEDSender identified, but not every character can be vouched for. Shown with the banner ⚠ NOT VERIFIED — may contain errors (or, for an FSQ message recovered because it names a known callsign, VERIFY - known callsign; integrity checks did not validate or VERIFY - CRC FAILED - content may be corrupted); you approve it (✓) or discard it (✕, recoverable from Deleted). Never triggers automatic actions. An FSQ message that lost only its opening characters, while its checksum, its ending and its continuity all hold, lands here rather than under 👁 MONITORED.
👁 MONITOREDMarked 👁 MONITORED — not vouched for: attributed text the receiver does not stand behind at all. Kept for completeness on the Channel page and marked wherever it appears.
REJECTEDFailed validation. On the Channel page it is hidden in the Basic view until you tick Show damaged (then it reads Damaged), and in the Advanced view it is shown as REJECTED with the reason — and it is never delivered to a conversation.

That table grades one message. The Link Quality badge grades a station — how reliably its recent traffic has decoded here — and the two are deliberately separate: a perfectly checked message from a station you have mostly been missing is still a checked message, and OpenJSQ will not average the two into a single reassuring number.

The Receive effort setting moves how much marginal text you see, but never what the station trusts — an unverified message stays unverified at every setting. Where OpenJSQ has a valid signal measurement, it normalizes SNR into the same 3 kHz reference so values are comparable across native radios. A KISS TNC that supplies no SNR is shown as unknown, not zero. OpenJSQ tells you when it has done something on its own; nothing happens off-screen.

Plain talk about “security”
OpenJSQ verifies integrity (checksums at several layers, whole-file hashes, acknowledged delivery). It does not encrypt — amateur radio is an open service — and it does not cryptographically prove who sent a message. “Verified” means the bits arrived intact and were acknowledged.

11. Sending and receiving files ↑ contents

The Files page: the action bar, the Send a file card, and the transfer ledger with four verified transfers, two outgoing and two incoming.
The Files page: the action bar, the Send a file card and the transfer ledger, here with four verified transfers. Letters, forms and browse answers are gathered under one collapsed heading below the ledger, and — scrolling on down — Browse a station, Share a folder and Sharing activity. One page for the whole file service.

The Files page is the whole file service for every waveform — sending, another station's files, the folder you share, and the log of what you were asked for, in that order down the page. Under the title and its one-line description sit the three commands, then the Send a file card, then the transfer ledger. To send, choose a recently heard station from the editable station list (its placeholder reads Destination, e.g. N1RX-7), or type a callsign, click anywhere in the Choose a file field or its folder button, then press Send file. A zero-byte file is refused up front — there is nothing to send. With AX1200 selected, a station AX.25 cannot address — a /suffix identity, or a malformed one — is refused before anything transmits, in a dialog titled AX1200 address cannot be sent that gives the reason. The same check guards Browse, Refresh and Download below.

What you accept is one setting for every waveform. Settings → Files holds Accept files from other stations — on by default; with it off, FSQ, JG25 and AX1200 all refuse an offered file and your capability record stops saying files — and, under the card's More options, the file size limits and Files at once. The receiving limits apply on every waveform; the two for sending are marked AX1200 only, because FSQ and JG25 have no outgoing limit (section 19).

Each row has its own checkbox. Tick one or several rows, then use the buttons under the table. The table shows direction, station, mode, file, size, Progress, rate, retries, state, and location. Progress counts blocks: 12 / 40 is what the receiver has confirmed, and an outgoing transfer that is ahead of its acknowledgements reads 16 / 40 sent · 12 confirmed. Being ahead is normal: the sender fills its window and only then asks. Hover the cell for the difference — blocks sent are not blocks delivered. Rate is measured by each station on its own clock, so the two ends of one transfer can differ slightly; Retries is counted by the sender and left blank on an incoming row. States include Queued Offering… try 2 of 9 Waiting Sending / Receiving Confirming Retrying Verified Failed Cancelled Paused. Offering means the offer to send the file is on the air and the other station has not answered it yet, with the try it is on out of those allowed. On AX1200 a file whose offer is not accepted within fifteen minutes fails with the receiver never answered the file offer (or the file offer could not be sent, when the channel never let it out). Confirming means every block is acknowledged and the whole-file verdict is still to come. Verified means the end-to-end file check completed successfully. On AX1200 a transfer cut off because the radio stopped fails with the radio stopped before the transfer finished; the receiver keeps what it got, so sending the file again carries on from there.

The list shows the files you actually sent and received. A good deal of what crosses a radio arrives as a file without ever having been one to you — a letter's body past the inline limit, an ICS-213 form (a short one that arrives as a named drop as well as a long one), a long mailbox note, the answer to a shared-files browse. They are listed too, because they cost real airtime and are exactly what you want when something goes wrong; they are gathered under one heading, ▸ Carried for Mail, Forms and Library (n), collapsed until you click it. Every column works on the rows inside, and each carries a small Mail, Form or Library badge. The message itself is still in the Inbox, and a browse answer still in Browse a station below. Once what one of them carried has been read out of it, its file is removed from disk and the row stays; its Location then says where the message went instead of naming a file that is gone — Stored in Inbox for a letter's body, Read into history for a form, Read for a browse answer — and Open folder is off for it.

Those files are not kept among your received files. What arrives for the program itself goes to an internal folder inside the profile's own data folder — beside its databases, not in your Documents files folder — and is deleted the moment it has been read: a letter's body once the letter is safely in the Inbox, a shared-files listing once it has been read, a form or note once it is safely saved in the conversation. If a form or note cannot be saved — the profile's history database locked or read-only, say — its file stays among your received files and is read in again the next time the profile opens. The row in the list stays, and says where its contents went. What decides this is which transfer the program was waiting for, never a file's name: a file somebody sends you that happens to be called mail-body.txt is an ordinary file and lands in your received files like any other. Leftovers from an interrupted transfer are cleared after a day, and the first start of this version removes the letter bodies earlier versions left in the received files — only those whose letter is already in the Inbox, and never a file you received as a file. Listings earlier versions left there are kept: a file named like a listing may be somebody's own file, and a file is only treated as a listing when it comes from a station you asked for one.

Two long letters in a row both arrive. A letter past the inline limit is fetched as a file and acknowledged once it is stored. If the sending station has to restart the body transfer part-way, or the body finishes after a long wait behind another transfer, the letter is still filed and acknowledged once — the body is not sent twice — and a station that re-offers a letter you already have is simply told so.

New files are marked until you have seen them. A file that arrives while you are somewhere else lights the rail button — Files ●1 — and its row is drawn in bold with the same blue dot the Inbox uses for unread mail. Seeing it is enough: you do not have to open the file. What counts as seeing is the Files page being the page on screen and the OpenJSQ window being the one in front — a file that lands while the window is minimised, or behind another program, stays New even if Files was the last page you had open, and bringing the window to the front on Files is the look. The count on the rail clears the moment you look, but the rows that were New stay bold for as long as you stay on the page, so you can still see which ones they were; a file that arrives while you are looking is marked the same way and never counted. Only files you received count — not files you sent, not failed or cancelled transfers, and never anything under Carried for Mail, Forms and Library. What you have and have not seen is kept with each profile, so an unseen file is still New after OpenJSQ is closed or restarted, and switching profile shows that station's own. The first time a version with this starts, everything already in the list is treated as seen, once.

The Files ledger with the carried-objects heading opened, each row wearing its badge.
The same heading opened: three objects a waveform carried as files, each saying which — Mail, Form, Library — beside its direction.

How it works underneath. JSQ File ARQ sends blocks, polls the receiver for the missing set, and retransmits only what still needs to arrive. On slow FSQ modes OpenJSQ sizes DATA blocks by airtime rather than forcing one enormous fixed block; if a transfer stops making progress it drops to smaller blocks and tries again — still the same transfer, so mail and resumption never lose track of it. The whole-file check is the final authority, not the number of apparently successful blocks.

The action bar: three verbs

The Files page action bar: Send a file, Browse files, and Share files with its state.
The three things this page does. Share files reports the state and the count, and takes you to the section — the switch itself is down there, because that click deserves to be deliberate.

Everything about files is on this one page now. Send a file… opens the file picker for the Send a file card just below. Browse files jumps to Browse a station. Share files reads Share files: Off, or Share files: On · 6 files, and scrolls you to your own sharing section. Nothing on the action bar transmits.

The Send a file card, step by step

The Send a file card: a destination box, a file box with a folder button, and Send file.
The Send a file card: who, which file, then Send file (greyed until the radio is running).

The card under the action bar is where a file is actually sent. It has one row: the station, the file, and the button.

  1. Start the radio on the waveform the file should travel on. A file goes out on the selected waveform, like everything you send. While the radio is stopped Send file stays greyed, and the transfer history below is still there to read.
  2. Choose the station. The first box (Destination, e.g. N1RX-7) drops down the stations this profile has heard, and you can type a callsign nobody has heard yet. 📎 Files ▾ → Send N4UZZ a file… in a chat's header, and the same item on a right-clicked Stations heard row, bring you here with it filled in.
  3. Choose the file. Click anywhere in the Choose a file field, or the folder button beside it (or Send a file… on the action bar), and pick it. The picker opens in this profile's files folder.
  4. Press Send file. The field empties and the transfer appears in the table below, where Progress and State follow it to Verified. Cancel it there with the Cancel in its State cell, or pause, resume or cancel it with its checkbox and the buttons under the table.

Some sends are refused before anything goes on the air, each with a reason in a dialog: an empty file; with AX1200 selected, a station AX.25 cannot address (AX1200 address cannot be sent); a waveform whose file service is not running; and a full queue. When a send is refused because too much is already waiting, the dialog lists what is waiting and offers Cancel it (Review waiting… for several). Whether the other station accepts files is its operator's choice (Settings → Files on their side), and a refusal from them shows in the transfer's State.

Sharing a folder of your own

Off by default, and the first thing you see is an invitation rather than a switch:

The empty state: Share a folder with the stations you hear, with Choose a folder and How sharing works.
What a station that has never shared sees. Choosing a folder is itself the decision to share — that is what turns it on.

How sharing works spells out the whole contract before you commit to anything: you choose one folder; a station that has heard you can ask for the list of what is in it, and then ask for one file by its number in that list; your station answers only stations you allow, only files inside that folder, only up to the size and daily limits, and — if you choose Ask me first — only after you say yes. Hidden files are never listed, and every ask and answer is recorded under Sharing activity.

To share, step by step:

  1. Make a folder for it. Put in it only what you mean to offer: everything in it is listed by name to any station allowed to browse.
  2. Press Choose a folder… and pick that folder. Choosing it is the decision to share: the card becomes Your shared files, with Sharing on ticked.
  3. Decide who may browse, and whether downloads wait for you (Who may browse and When a station asks, in the table below).
  4. Read the two lines under the controls: a file the size ceiling would refuse is named there, and the count says how many files are offered.
  5. For an unattended station, if you want it: choose whose files are published into the folder as they arrive (Publish files received from).

Pick a folder and the invitation is replaced by the section that owns every sharing decision:

Your shared files: Sharing on, the folder, Who may browse, Publish files received from set to These stations with N4UZZ and K4ABC listed, when a station asks, and the size warning and file count.
Your shared files on the Files page. Publish files received from decides whose received files are also placed in the folder (here two named stations); Stations to publish is the list. The warning line is computed from the folder as it is now — that file really is over the ceiling, and a download of it really would be refused.
ControlWhat it decides
Sharing onWhether anybody may browse or download at all. Turning it off withdraws the offer immediately — the capability your station advertises follows the switch rather than waiting for the next request.
FolderThe one folder that is served. Nothing outside it is ever offered, hidden files are never listed, and links leading out of it are not followed. Open folder and Choose folder… sit beside the path, which is shortened in the middle when it is long — hover for the whole thing.
Who may browseStations I have heard (the default), Everyone, or Only these stations — which reveals an Allowed stations box. This decides only who may browse and download; whether a download waits for you is the next row.
When a station asksServe automatically serves every station Who may browse allows at once, heard stations included; Ask me first — each download then pops a question and the asker is told it is waiting for your approval; the file follows if you say yes.
Publish files received fromNobody (the default), These stations or Everyone. Files from the stations chosen are moved from Incoming into the Received subfolder of the shared folder, where browsing stations can see them — so an unattended station can be sent files and serve them with nobody at the keyboard. These stations enables the Stations to publish box: W4IJG-1 matches that station only; W4IJG matches it with any SSID. Everyone means any station that can send you a file can publish it from your station, unattended. No waveform verifies who sent a file: any station can put any callsign, or SSID, on the air. List only stations you trust, and remember that others could pose as them. The filename is kept, and a name already there gets a suffix (report-1.txt) rather than being overwritten. Files you asked for yourself (a download from Browse files), mail attachments, letters, forms and shared-file lists are never moved. If there is no shared folder, or it cannot be written, the file stays in Incoming and the status bar says so. If Include subfolders (Settings → Shared files, an advanced row) is No, the files go straight into the shared folder, because stations could not browse a subfolder. On the Files page the row then shows the new location, and its Location tooltip reads Published to shared folder.

Under those, two lines the folder itself writes: a warning for every file the size ceiling would refuse, named individually so you can act on it before anybody asks, and the count — “6 files offered from this folder.”, or “Sharing is off — nothing is offered.” Changes apply at once; there is no Save button and no restart.

Two things to be clear-eyed about
The listing publishes your file names. Point this at a folder you assembled for sharing, not at your documents folder.
A callsign is a claim. Who may browse and Allowed stations decide who gets an answer; nothing on the air can prove who is asking. They are courtesy controls, never security.
Keep the shared folder small and local
Choose a small folder on a local drive. A very large folder, a network share, or OneDrive files that are only online can make the radio pause for a moment while another station browses the folder. This improves in 1.1.

Browsing another station's files

Browse a station: N4UZZ's listing of four files with File, Size and State, one marked Downloaded.
Browse a station. The list is metadata, not a transfer — reopening the page costs no airtime, and only Refresh puts a request on the air.
  1. Choose the station. Type a callsign or pick one you have heard. Three doors lead here with the station already filled in: Actions ▾ → Browse their files…, 📎 Files ▾ → Browse their files in the chat header, and a right-click on a row in Network → Stations heard.
  2. Browse shows the list if this session already has it, and otherwise asks for it over the radio. Refresh always asks again. The distinction matters: one costs nothing, the other costs airtime and their rate-limit budget. The asking is visible in that station's conversation too — Asked to browse their shared files, then Asked to download shared file #3, each with its delivery state, and Download complete: shelter-roster.csv when the file lands.
  3. The status line says how old the list is — “Last listing 14:07 · 5 files”, after the station's Shares files badge when it has one — and adds a warning of its own once the station has not been heard for six hours or more: “list may be old — K4ABC has not been heard for 7 h”.
  4. Pick a row and press Download (or double-click it). The State column then tracks that entry — Requested 14:09, Downloading…, Downloaded 14:16, or a refusal — while the file itself arrives in the transfer table at the top of the page like any other transfer. If the listing has two entries with the same file name and you asked for both, a file of that name cannot say which entry it was: the rows read notes.txt arrived 14:16 (which entry is not known) until as many files have arrived as you asked for, and then both read Downloaded.

Why you pick by number and never by name. The download carries the row's position in the listing plus a short fingerprint of that entry, never a filename. A filename is a path, and a path is something that can be pointed outside the shared folder; a row number cannot. The fingerprint is what makes a changed folder come back as “refused: their files changed since you listed them — ask for the list again” instead of quietly sending you the wrong file.

Answers you may get instead of a file

A refusal is a sentence, not a silence, and most of them are ordinary. The same words reach you whichever waveform carried the request — FSQ has no status byte and answers in short text, AX1200 and JG25 carry a code, and both are translated into one vocabulary before you see them.

What the State column saysWhat it means
Waiting for their approvalThe far operator runs Ask me first and has been asked. If they say yes the file simply arrives; asking again changes nothing.
Refused: busy — try againAnother shared-files transfer is already running there. Wait — do not hammer it, which earns the next line.
Refused: asking too oftenYou asked again inside their per-station interval (10 seconds by default). Browsing and then downloading counts as one ask, and so do up to eight downloads from one file list in the ten minutes after it: a second file picked from the list follows the first instead of being refused. Asking again for a file they have already sent you is still counted.
Refused: over size limitThe file is above their per-file ceiling — 256 KB unless they raised it.
Refused: sending budget spentThey cap how much they will transmit per day, and it is used up.
(the list empties)Their folder changed since you listed it. The stale list is cleared for you and the status line reads refused: their files changed since you listed them — ask for the list again. Refresh and download from the fresh one.
Refused: no such entryThat row number is not in their current listing.
Refused: not sharing with youSharing is off, no folder is chosen, or you are outside their Who may browse setting.
RefusedOn FSQ, the far operator answered No to the Ask me first question (their chat says refused: the station declined your request). On AX1200 and JG25 a No sends nothing more, so the row stays at Waiting for their approval.
Refused: not supported thereThat station's build does not speak the shared-files service at all.
Retrying…On AX1200 and JG25: they answered busy, and your station is asking once more by itself, a couple of seconds later. With no answer within a minute it goes back to Refused: busy — try again.
FailedTheir end could not send it, or the download ended without delivering.
Waiting for KK4IB's answer…The station is still answering your last request, or sending you its file. The download goes by itself when that ends.
No answer — try Download againNothing came back within three minutes of the request going out.

Sharing activity: what your station was asked for

Sharing activity: when, which station, what it asked for and what your station answered, four requests from N4UZZ and K4ABC.
Every ask and every answer, newest last. Here N4UZZ asked for the file list and then fetched one file, K4ABC asked for the list and then for a file over the size limit, and each answer reads as it was handled: served, served — 7987 B or refused: too large.

This is monitoring, not correspondence: your station working for somebody else, so it belongs beside the files rather than in Chats. The header counts today's requests; the table gives the time, the station, what was asked for ((file list) or a filename), and the answer your station gave, in this end's words — served — 14336 B, refused: asking too often, refused: not offered, refused: too large, refused: budget spent, waiting for you — while the far operator sees the same decision in the vocabulary of section 11's refusal table. Requests can arrive on any of the three waveforms, and each is answered on the waveform that asked, where Other waveforms and the band rule let that waveform answer (section 16). It is cleared when the application restarts.

To read it:

  1. Open Files and scroll to the bottom: Sharing activity is the last card.
  2. Read today's count in the header and the newest rows: the time, the station, what it asked for and the answer your station gave.
  3. An answer reading waiting for you is an Ask me first question: answer it before the Approval timeout runs out, or the station is refused.
  4. To change why requests are refused, use the Share files card on this page or Settings → Shared files.

The technical limits, in Settings

Settings → Shared files: a read-only summary, Manage in Files, and the five limits.
Settings → Shared files keeps only the numbers you set once. The line at the top is the same state the Files page shows, computed from the same source; Manage in Files is the way back to the switch.

Under Settings → Shared files, with the card's More options open:

SettingDefaultWhat it does
Include subfoldersNoWhether the scan descends past the folder itself.
Largest file to serve256 KB64 KB, 256 KB, 1 MB, 10 MB or Unlimited. Unlimited is a real choice — your licence, your airtime — but a 10 MB file is hours of channel time.
Serve at most, per day1 MB (and 20 files)A daily ceiling on what you will transmit for other people: 1, 5 or 20 MB, or Unlimited. A station that chose before keeps its choice.
Each station may ask every10 secondsThe per-station interval. This is the one limit here that protects everyone on frequency rather than just you — the airtime an answer spends is shared. Removing it is a courtesy decision, not only a personal one.
Approval timeout2 minutesHow long an Ask me first question stays open. After that it is closed at your end and nothing more is sent: the asker keeps the waiting for approval answer it already had, which is true of a station whose operator was not there, and can ask again.
Limits worth knowing
The chat-side Send a text file… still caps classic FSQ text-file sends at 8 KB because slow FSQ airtime gets long quickly. The general JSQ file service is designed for reliable transfers on the packet waveforms, and AX1200 or JG25 is the practical choice for anything large. APRS coexistence disables the file service to protect the shared channel. A shared listing still cannot travel through a relay on any waveform — ask that station directly.

12. Mail: letters that wait ↑ contents

Inbox: three letters left for you, one open in the reading pane, with the Holding (1) button in the toolbar.
Inbox: letters left for you, one open in the reading pane, with Holding on the toolbar.

Mail exists for one situation: the other station is not on the air right now. Your station takes custody of the letter and handles delivery itself.

One Inbox for every identity and waveform. Letters addressed to any of your names — one name such as W4IJG-7 on every waveform, or, when the Station card's FSQ / JG25 name is Callsign with suffix, W4IJG/CRB on FSQ and JG25 and W4IJG-7 on AX1200 — land in the one Inbox, whichever waveform carried them and whichever you had selected. A letter your station holds for someone else, and a long letter's file body, travel on the waveform the letter came in on, if that waveform may answer (section 16); otherwise it waits, and the Channel log says why (section 14).

If a letter does not move. When a station announces mail for you and it is not fetched, or a reply has waited for the transmitter, a note on the Channel page says why (section 14). On FSQ, the replies in a letter exchange — the query, the fetch, the receipt, the delivered notice, and the letter itself sent in answer to a fetch — go at the speed the other station used, not at your own FSQ speed; what you start yourself (the announcement and the deposit) keeps yours.

Writing a letter

New mail to K4ABC with a long message: the counter reads 793 bytes, over the 768-byte FSQ limit, and the note says the letter travels as a file transfer.
New mail. Past the inline limit — 768 bytes on FSQ — the letter travels as a file transfer instead, and the dialog says so under the text.
  1. Inbox → New mail…
  2. To: the recipient. Leave with: normally This station (deliver it yourself) — or pick a mailbox station that's on the air more than you are, and it will carry the letter for you (it must have custody enabled; if it declines, your station keeps the letter). With AX1200 selected, a recipient or mailbox station AX.25 cannot address — a /suffix identity, say — is refused with AX1200 address cannot be sent and the reason, and the letter stays open.
  3. Write the letter and press Send when your own station will carry it. If you chose a third-party custodian, the button instead says Leave with <CALLSIGN> so the custody choice is explicit. The live counter is in bytes, not characters.

One announcement goes out straight away, heard or not — you just pressed send, and the worst case is one unanswered call. A small notice says so as the dialog closes: Held for K4ABC, and announced now. If they do not answer, it waits until they are heard — leave the radio running, and watch Holding for its progress. It says so even when net mode is on or the radio is stopped; the activity line below is then the one to believe. From then on it's automatic: when the recipient is next heard — even from a routine sounding — your station announces the letter again, they fetch it, and their confirmation releases it. Leave the radio running and watch Holding for progress.

The Holding window with one letter, to K4ABC, listed with its status, tries, expiry and the start of its text.
Holding: the letters this station is responsible for, and what it is doing about each. The one row here is a letter for K4ABC; the radio is stopped, so its status reads Radio stopped — resumes on start, with 0 of 3 tries used and the days left before it expires.

If nothing goes out at all, the activity line says which hold is stopping it — “Held for K4ABC. Net mode is on, so nothing goes out automatically.”, “Held for K4ABC. It goes out when the radio is started.”, “Held for K4ABC. It goes out when the mail service next runs.”, or “Held for K4ABC. Not transmitting: …” for a licence or transmit problem — rather than reporting that the letter is on its way.

Short letters and long ones

A letter that fits in one frame rides inside the mail message itself. A longer one is not refused — the recipient is sent a short notice and the text follows automatically as a file transfer. You are told which is happening before you commit, because the second costs a negotiated transfer on the air and the first does not.

RadioFits in one frame up toAbove thatHard ceiling
FSQ768 bytesSent as a file transfer. The dialog says so as you type — “923 bytes — over the 768-byte FSQ limit, so this letter travels as a file transfer (up to 256 KB)” — and the activity line notes “Sending the letter's body as a file transfer.” The recipient needs a build that speaks the file service.256 KB
JG25256 bytes
AX1200128 bytes

Past 256 KB the letter is refused with the reason, and the dialog points you at the Files page — which is what the recipient would have received either way. Letters left with a mailbox station work the same: an oversize deposit carries a referral and the custodian passes the file along.

Filing a letter: right-click for Reply, Save, Mark unread, Delete, Move to folder and New folder.
Filing a letter: right-click for Reply, Save…, Mark read / Mark unread, Delete, then the Move to folder heading over your folders and New folder…; inside a folder the menu adds Move back to Inbox and Delete folder.

Letters that arrive as a file

A letter too long for one frame travels as a file — the bench letter above did, at 288 bytes on JG25 — and still arrives as ordinary text in your Inbox, read back from the transfer once it is verified. A letter whose body is a file, on the other hand (a file handed on through a relay as a letter, say), shows in your Inbox as Attachment: name (n KB) rather than as body text. The file is kept exactly as it was sent, byte for byte — nothing is decoded, trimmed or tidied on the way in, because a letter that was acknowledged as delivered and then quietly altered would be worse than one that failed. The name shown is the one the author's file had, when their station and every relay on the way are 1.0.7 or later; otherwise it is one your station makes up from the letter. Either way it is only a label: the file is saved under a name your own station chooses, never under one taken from the air.

The same rule constrains what you can send this way. A file relayed as a letter body has to be genuine text that survives the round trip — an empty file, one containing binary data, or one that is not valid UTF-8 is refused up front with the reason, rather than being carried and arriving as mush.

Finding, filing, replying, and steering delivery

Dates. A letter's header in the reading pane, and the Sent and Holding views, give the day with the time — Today 23:40, Mon 5 Oct 23:40 for this year, 5 Oct 2025 23:40 for an older one. Hover it for the full date, time and time zone.

Being a community mailbox

Settings → Mail → Hold letters for other stations (on by default) lets other stations deposit letters with you for third parties — a store-and-forward network needs stations willing to carry mail. Your own letters are always held by your own station regardless.

Why mail never double-delivers
Delivery is exactly-once by design. Your station remembers what it has acknowledged (for 30 days), so a repeated announcement gets answered from the log instead of fetched twice — even when two different custodians hold the same letter. Undelivered letters are given up on after 7 days by default — Settings → Mail → Give up on undelivered letters after changes it.

13. The Network page: mapping who hears whom ↑ contents

The Network page: the map with a works-on label under stations that have told us what they run, the legend under it, the Recent and All heard choice in the top bar, the Stations heard list, and the Relay activity heading, closed.
The Network page: who hears whom, with calibrated SNR on each leg where one was measured and a works on label under each station whose own record says what it runs, and the heard list beside it, showing Recent stations (Recent and All heard are in the top bar). Relay activity is closed until you open it. Last RX says where each station was last heard (hover a cell for the evidence, section 16), and Heard how long ago.

The right-hand STATIONS HEARD list is your receiver's memory, filled by all three waveforms' receivers. Its columns are Station, Last RX, Signal, Link, and Heard. Last RX says where that station's operator is, as far as your receiver can tell. It is evidence, not a setting, and it reads, in this order: works on AX1200 when the station's own capability record says which waveform it has selected; otherwise the waveform of the newest chat heard from it — overheard chats count, so a station chatting with someone else on AX1200 reads AX1200; otherwise its newest reception, marked · automatic (JG25 · automatic) when all that has been heard from it is its software speaking by itself — its presence line, a capability line or an answer — and Unknown where none was recorded. A station working on AX1200 whose JG25 receiver, listening beside it, answers by itself therefore does not read as a JG25 station. Hover for the exact profile and time of the last reception and Receive evidence; the selected transmit mode may be different., followed by what the answer rests on — Works on AX1200: its own capability record says so, as of …, or where its operator's last traffic came from — and when its software last spoke by itself. The column is as wide as its words. A reception that was only overheard shows the plain waveform. Signal is calibrated SNR when the active modem/TNC actually supplies a valid measurement; an external KISS path that cannot report SNR shows -- dB rather than a made-up 0 dB. Its number can come from an older reception than Last RX, when the newest one had no measurement. Link is the recent decode-success score, independent of signal strength, and not limited to the waveform Last RX shows. Heard says how long ago — just now, 18 min ago, 4 h 5 min ago. Double-click a row to open that station's chat.

In the top bar, centred, Recent and All heard choose what the list and the map show; with Recent a station or link with nothing inside the window is left off the map, with All heard it is drawn grey. Recent, where it starts (remembered per profile), lists the stations heard within Settings → Presence → Consider stations recent for; while it hides older rows a line under the list reads N more heard earlier — Show all. All heard lists every station still on the heard list, the older ones dimmed and reading Inactive · 4 h 5 min ago. Hovering the time gives the full timestamp, and a row restored from the saved heard list says From the saved heard list (earlier session).

The graph is the bigger picture. Arrows point at the station doing the hearing — A ⟶ B means B hears A. Blue straight arrows are first-hand paths: what your receiver heard, a station's own report about hearing you, or — drawn with -- and no number — a station whose traffic proves it decoded you, because it acknowledged your message, answered your request (including your question about what it supports, on any waveform), replied to your file transfer, relayed your message on, or took custody of your letter (hover the leg and it says which); green curved arrows are hearsay from one remote station about another. A signal report you ask for through a relay is the answering station's reading of the relay, so it draws only a green curve from the relay to that station: no blue arrow between you and the answerer, and the answerer is not marked as heard here. Edge labels show dB when a valid SNR exists, 40+ dB above the measurable range, and -- dB when nothing was measured. Every name your station has — its FSQ/JG25 name and its AX1200 name — is drawn as the one node, you. Wheel zooms, drag pans, +/−/fit on the toolbar, and hovering an edge explains who heard whom and when.

Under each station sits a small mode badge: the same answer as Last RX (the waveform it works on, else where its newest chat came from, else its newest reception), with the profile and time on hover, or Unknown when none was recorded. Grey means old, not gone. A station or a link with no evidence inside Settings → Presence → Consider stations recent for — the recent window, an Advanced row — is drawn grey and stays on the map as history; each link ages on its own, and Never there means nothing greys. (Remove stations from heard list after does not change the map's colours.) A station coloured only because another station recently reported hearing it — not heard here within the window — wears a dashed green ring. Hover a station for where its evidence came from: Heard here: …, Reported by W1ABC: …, or Historical — nothing within the recent window. The legend under the map lists grey as history, not recent and the dashed ring as reported, not heard here; hovering it gives the whole key.

Mapping beyond your horizon

Press Map network. Your station asks each neighbor who they hear and draws the combined graph. The same station-action dispatch is used on FSQ, JG25, built-in AX1200 and KISS AX1200; if a request cannot actually be queued, the crawl skips it with the refusal reason instead of pretending it waited for a remote timeout. The button becomes Stop mapping; stopping keeps partial results.

Reset clears the topology picture and the RELAY ACTIVITY table below it — not your heard list, and not any history. Switching profiles also clears the old profile's graph so a plausible-looking map from the shack cannot leak into a field profile.

Airtime
A heard-list query is a real transmission and a reply can run half a minute, so the crawl is bounded on every side: it never runs on its own, it sends at most six queries, it goes two hops deep, it asks each station only once, and it will not ask a station to relay through a path weaker than +3 dB — a marginal relay costs everybody airtime and rarely answers. A station that stays silent is dropped rather than retried. Run it when the channel can spare the time.

What a Stations heard row can tell you about files

A right-click on a Stations heard row: Open chat, Browse their files and Send N4UZZ a file.
The right-click on a Stations heard row, its Last RX cell beside the callsign. The same two file verbs as the chat header, plus the way into the conversation.

A station that has given evidence of sharing carries a Shares files badge beside its callsign in Stations heard, with a small network icon — the same badge the chat header and the Files pickers show, from the same single record. No evidence means no badge, never a grey “unknown”: the program does not report a station as not sharing merely because it has not been told. Right-click any row for Open chat, Browse their files and Send … a file… — the same verbs as the chat header, and browsing a station with no badge is allowed, because that is how you find out.

Relay activity: what you carried for other people

RELAY ACTIVITY: traffic this station carried for other people, and whether it was passed on.
RELAY ACTIVITY, opened by its arrow: traffic this station carried for other people, and whether it was passed on.

Below the map, RELAY ACTIVITY lists the traffic your station has passed along for others. It starts closed; click its arrow to open the list, and hover the heading for what the list is and, after a Reset, what was cleared. This is service work, not conversation — none of it ever appears in Chats or in an unread count, which is exactly right: being a relay should not fill your inbox with other people's mail.

Six columns: From (the station that wrote it), To (where it was going), Carried (what was relayed — on AX1200 and JG25 a sentence naming the kind, Relayed a message for K4ABC, on AX1200 also Relayed file traffic for …, a station action or a control frame, on JG25 Relayed a receipt for …; on FSQ the text that was passed along), Heard, Passed on, and State. States run waiting for the channel → transmitting → passed on, with retrying, failed and cancelled where they apply. A row reading not passed on means your station heard the request and did not retransmit it — relaying switched off, or the traffic was a duplicate or a loop.

Two honest limits, stated in the column headers
From is a claim, not a fact. A relayed origin is carried inside somebody else's frame and is not something your station can verify. Hover any value in that column and it tells you so.
“Passed on” means you transmitted it — not that anyone heard it. A relay never learns whether the next station copied it. What your station can honestly say is that it put the traffic back on the air, and that is precisely what the State column claims and no more.

What the map answers in practice: who would make a good net control (everyone hears them), which paths are one-way (A hears B at +12 while B hears A at +2 — perfectly normal on HF, and exactly what you need to know), and who is only reachable via which relay.

14. The Channel page: everything your receiver hears ↑ contents

The Channel page in its Basic view: one toolbar row (All, Received, Sent, the Waveform selector, Show damaged and the ... menu), a day heading, and one entry per transmission, FSQ, JG25 and AX1200 together, each naming its waveform.
The Channel page in its Basic view: one toolbar row above the feed, a heading for the day, and one entry per transmission with its message under it — FSQ, JG25 and AX1200 together, each named by its waveform badge, newest at the bottom.

Chats shows conversations; Channel shows the channel — every waveform, every slot, every decode, addressed to you or not, plus the evidence behind every decision. You never need this page to operate. You'll want it anyway.

The page has two views. Basic, the everyday one, answers “what came and went?” as a feed. Each transmission is one entry: who it was from and to (K4ABC → you, you → everyone, with a bold arrow that grows with the Text size), the time, a small tag naming the waveform and mode (FSQ-3, JG25-FM 1400/F3, AX1200), and a coloured result — Received, Sent, Needs your eye, Damaged, Unreadable, Presence or Local note. The message is underneath, in plain words, using the whole width of the page (K4ABC heard you at 29 dB, mail announcement). What you sent has a light background. Service traffic — a station's sounding, a presence beacon, a request or an answer, a capabilities exchange (capabilities from K4ABC: files, mail), file and mail traffic, receipts — is shown smaller, as one muted line with a small icon, so it never buries a chat. A file transfer's blocks are folded into one line, 12 file blocks, 14:05–14:09 · all received; press it to list them, and the transfer's finish or abort is its last line. Basic leaves out noise decodes — FSQ characters that name no station a checksum vouches for, which a quiet band turns into strings like fdezd cbeeslz; Advanced lists them.

Newest is at the bottom. The page opens there. If you scroll up to read, new entries do not pull you away, and a ↓ Newest button takes you back (you count as at the bottom within 8 pixels of the end, a little more at the larger Text sizes — the same rule Chats uses). Changing the FSQ speed, the JG25 mode or the waveform is the exception: it takes you to the newest entry and closes any entry you had open, wherever you were reading, while Basic and Advanced and the waveform filter keep your place; Load older history, at the top, loads the next 4,000 retained records and is shown only when there are older ones. A heading above each day's first entry — Today — 25 Sep 2026, Yesterday — 24 Sep 2026, Wed 23 Sep 2026 — says which day, in both views and under any filter, and a radio start reads — radio started 25 Sep 2026 14:07 — (Advanced shows a Session entry instead). The time on an entry is the clock time; hover it for the full date and zone.

One row of controls. The filters are All, Received and Sent, then a Waveform choice that narrows the feed to All waveforms (where it starts), FSQ, JG25 or AX1200 — Show history from all waveforms or one receiver. The two work together: Received with JG25 is what arrived on JG25. Show damaged is a tick box, off in Basic; damaged entries are receptions that were heard but could not be read — usually one decoder trying the wrong speed — and the box says how many it is holding back, Show damaged (2 hidden). A damaged entry names the decoder that tried (FSQ-4.5 head). Basic and Advanced each remember their own setting. The ··· button holds Monitor squelch (FSQ only: it hides decoded FSQ text weaker than that many dB above the noise floor and changes nothing about what is decoded), Keep history, the Colour key and Clear all, which asks first — Erase the stored Channel history for every waveform and slot? — and erases every waveform's rows.

Select an entry to see more. Click it, or move to it with the arrow keys (Home, End and the page keys too) and press Enter or Space: its details open in place, each with its label and a colon — Time:, Signal:, Waveform:, Heard by: (which receiver), Kind: (what kind of message) and Length: — with Open in Chats › (Open chat with K4ABC › where the entry names a station) and Show diagnostics ›. Select it again to close it. Tab enters the feed as one stop and leaves it again, and a screen reader reads each entry as a sentence: who to whom, the time, the result and the message, and its details with the same labels.

The Channel page's Waveform selector dropped down: All waveforms, FSQ, JG25 and AX1200, beside Show damaged and Show advanced settings.
The Waveform selector: one history, narrowed to one receiver when you want it.

Relayed traffic says what it carries. A frame a relay carried is worded by what is inside it. On FSQ, KK4IB → W4IJG, relayed from N4UZZ: nothing to repeat is the relay's forward, and N4UZZ → W4IJG, via KK4IB: … is the first hop; neither shows bracket fragments or everyone. On AX1200 a relayed frame reads, for example, relayed from N4UZZ: capability request or relayed from N4UZZ: delivery receipt, as a compact control entry, instead of a byte count. AX1200's two capability frames read apart — link capabilities to KK4IB and capabilities to KK4IB: … — and a capability request that goes through a relay names the station asked: capability request to W4IJG via KK4IB. A very long raw payload shows three lines and … 240 more bytes; the inspector has all of it. One start of the radio is one — radio started … — line.

Which way a frame went is the radio's answer, not a guess from the callsign. The transmitted-or-received mark on every row comes from the transport that handled the frame, which knew. That matters wherever two stations share one callsign: at a bench running W4IJG-1 beside W4IJG-2, the sibling's transmissions are filed as receptions of somebody else's traffic — with their admission verdict and their signal reading intact — instead of being claimed as your own.

Show advanced settings, at the top right, turns the same feed into the evidence view the rest of this list describes. Every entry carries its addressing, the time to the second, an assurance badge, the operation, the waveform tag, the message and an evidence line; when several decoders produced the same transmission, their copies are nested under it, a rejected copy with a red left edge and the decoder named; and every file block is its own entry. Show damaged starts on. The filters add Review and Monitor. A second row holds, on FSQ, the slot buttons, then Show unparsed packets, Record diagnostics, Save bundle…, Report a problem… and the clear button; the Decode Inspector sits beside the feed whether or not an entry is selected, and on FSQ a strip of decoder cards sits above it. Basic shows none of these. The slot buttons and decoder cards are there only while FSQ is the selected waveform (while the radio is stopped, Advanced shows them as a placeholder on every waveform): the FSQ receiver that runs while AX1200 or JG25 is selected has none, although its receptions are all in the history.

The Channel page with advanced settings shown: the filter chips and Waveform selector, Record diagnostics, Save bundle... and Report a problem..., the status-bar chip that says the recorder is running, and the inspector for the selected reception.
Under Show advanced settings: the filter chips and the Waveform selector, the recorder's controls with Save bundle… and Report a problem…, the status-bar reminder that it is running, and the inspector for the selected reception beside the feed.
What the recorder is, and is not
It records what your radio heard on frequency, never your microphone, and it transmits nothing; alongside the received audio the bundle also keeps this station's own transmit-path trace and the audio it generated for transmission, so both ends of a failed exchange are in it. The window is a rolling ten minutes, so save the bundle promptly after a problem — anything older has already been discarded. Saving still works after you untick the box, so unticking never throws away the evidence you just caught.
Do bear in mind what a bundle contains: ten minutes of everything your receiver heard, including other stations' traffic, plus your decode history and your station configuration. Send it to people you mean to send it to.
The Decode Inspector: every admission check, and the evidence behind the verdict.
The Decode Inspector: every admission check, and the evidence behind the verdict.
“Answering shortly” is not “ignored”
When another station asks your station something and the answer is held back — rate limiting, a busy channel, relay policy — the Channel log records “K4ABC asked: signal report — answering shortly”, with the reason in brackets after it. When the request is actually refused it records “— not answered” instead, again with the reason. The two are deliberately worded differently, because an operator who cannot tell them apart keeps retransmitting into an answer that is already on its way.

When another station asks yours to repeat its message to everyone (Repeat my message), the log says Repeated for W4XYZ, or Repeating for W4XYZ shortly while it waits for its turn, or W4XYZ asked you to repeat a message — not repeated with the reason: busy, already repeated, too long, not repeating commands, not repeating relayed messages, or not repeating messages when your Repeat messages for choice (Settings → Relaying) leaves that station out.

When a waveform may not answer at all — it only listens, net mode is on, the band rule holds it, or this copy may not transmit — the log says so, once per station and reason every ten minutes: Not answered on JG25: W4XYZ asked for a signal report — listening only (FSQ selected, radio taken to be on HF). The row's Result reads Local note, and the reason at its end is the one to fix (section 16). To be sure of seeing every note, leave the Waveform row on All waveforms.
When announced mail is not fetched
If a station announces mail for you and it is not fetched, Channel says why, once per reason every ten minutes. Not fetched on FSQ: W4IJG announced mail for this station — it is addressed to KK4IB-7, and mail on FSQ is fetched only for this station's FSQ name, KK4IB/CRB. means the announcement used another of your names (which happens only when the Station card's FSQ / JG25 name is Callsign with suffix); … it was already asked of N4UZZ; waiting for that answer means the letter is being fetched from another station. Not sent yet on FSQ: a reply has waited 31 s — the AX1200 receiver hears the channel busy. appears when a reply on a waveform listening beside the selected one (a mail request, an automatic answer) has waited 30 seconds for the transmitter, and names the cause: another waveform has the transmitter, the radio is still sending, a receiver hears the channel busy, a PTT fault, a transmit test, the licence or receive-only, Stop TX, or Net mode holding the reply. A listening-only waveform keeps its own Not answered on … note. A letter whose fetch request never got through is asked for again when its holder announces it again. The Not fetched notes are for FSQ mail only.

The FSQ busy margin row on the Radio page's Receivers card belongs to this world: it's how many dB above a slot's own noise floor the signal must rise before the slot counts as busy (Auto, 3.0 dB; 0 turns busy detection off). It gates only transmitting — decoding always runs.

Receptions that failed, on JG25

While Record diagnostics is on, a JG25 reception that never became a packet still gets a row. It is named JG25 receive rather than drawn as an arrow between two blank callsigns — nothing was recovered to read addresses from — and its inspector opens a Receive attempt group, followed by a Branches group, carrying the whole account: what the acquisition, header and body each decided, the mode and FEC if the header was read, the clock and timing figures if a body was demodulated, the SNR where the geometry allowed one, the busy-detector's capture with its RMS, peak, noise floor and why it closed, and the result of every equalization branch in the order they were tried. A field the decoder never reached reads null, never zero — a clock error of 0 ppm and a clock error nobody measured are not the same reading. All of this works whether JG25 is the selected waveform or only being received alongside another.

This matters because the alternative was silence: a reception that never acquired, one whose header checksum did not hold, and one whose header described an impossible frame all used to leave no trace at all, so a recording full of strong signals could sit beside a channel history with one row in it. Successful receptions keep their single traffic row — duplicating them would cost this page its readability for a comparison the diagnostic bundle supports better. The bundle now carries the same account as jg25-rx-attempts.jsonl and a jg25-summary.json whose funnel accounts for every reception, including the two losses that are not decode failures and look exactly like them: a reception the busy detector had no free slot for, and a good result the hand-off could not carry.

A successful frame can also be marked Rescued. On JG25 that means it decoded on a fallback equalization branch — the best-scoring branch could not produce it, which is the receiver telling you its emphasis setting is off from what this path wants. On AX1200 it means the frame check failed but OpenJSQ's own CRC-32 held, which points at a damaged end of transmission: an early unkey, a squelch tail, a discriminator transient. AX1200 also has further recovery paths for damaged RF frames, and the inspector's Receive branch says which one recovered a frame.

15. The Radio page in depth ↑ contents

Everything hardware. Two habits to know: this page saves as you change things (no Save button), and the controls whose defaults already do the right thing sit behind a More options line on the card they belong to. Open one on its own, or tick Show all advanced options at the top right to open them all (it never shows a control its card has no use for, such as the sample rate on a TNC link). The page has five tabs, in a fixed place whatever the window size: Setup (waveform, station identity, sound card), Transmit (keying, drive, Tune and the tests), Receive (receivers, receive emphasis, Multi-receive, FSQ receive), Rig control and Live status. Changing tab changes nothing on the air. The pinned footer, on every tab, holds Start radio / Stop radio, a status line and a one-line strip: audio path, PTT, receive level and dropouts, and Waiting to send while anything waits. If PTT release cannot be confirmed the strip says PTT release not confirmed and links to Live status, where The radio is receiving - clear the PTT alarm is.

Running old settings. A few settings are read only when the radio starts: AX1200's profile, path and file settings and its KISS timing, the receivers' effort and receive emphasis, JG25's acquisition and transmit settings. Change one while the radio runs and the status bar says Running old settings · Restart, on every page, until a restart really applies it or you put the setting back as it was. Answering Later when you leave the Radio page (asked once per set of changes), moving between pages or tabs, and a restart that is refused all leave it on. Restart asks first, and says what it costs when messages are still waiting to go out. With the radio stopped a change is simply what the next start uses.

You will only ever touch four of these
This is the longest section in the guide and almost none of it needs a decision from you. On an ordinary station the controls that matter are Audio input, Audio output, Keying and the drive slider for your waveform — four answers, set once, and never touched again. Everything else already holds the value the bench settled on. Read the rest when something is wrong, or when you are curious; do not read it before your first contact.
The Radio page on FSQ, Setup tab, with the advanced options hidden — the everyday view: the five tabs across the top, the Radio & audio card with the FSQ, AX1200 and JG25 waveform buttons and the read-only station identity line, and the Start radio footer pinned below.
The Radio page on FSQ, on its Setup tab, with the advanced options hidden — the everyday view. The five tabs (Setup, Transmit, Receive, Rig control, Live status) run across the top, and the Start radio footer stays pinned below whichever tab is open. FSQ, AX1200 and JG25 sit on one row whether or not the advanced options are shown, and Station identity says who this station is on the mode selected, with Edit station identity… beside it.

Radio & audio

The card that connects OpenJSQ to your radio interface and chooses the waveform you transmit on.

The Radio and audio card on FSQ with advanced settings shown: audio input and output with Refresh, sample rate, the FSQ, AX1200 and JG25 waveform buttons, station identity, receive emphasis and channel mode.
Radio & audio, advanced settings shown: the two audio lists (both on the system default here), the sample rate, the waveform buttons, the read-only station identity, receive emphasis and, on FSQ, the channel mode.
  1. Plug in the interface (a DigiRig, a SignaLink, the radio's own USB sound card) and press Refresh if it is not listed yet.
  2. Choose Audio input (from radio) and Audio output (to radio): the two halves of that same interface, not the computer's own speakers and microphone.
  3. Press a Waveform button: FSQ on an HF or SSB radio, AX1200 or JG25 on FM (section 17). Station identity under the buttons then says who you are on it.
  4. Leave Receive emphasis at Adaptive (recommended) unless you know better, and press Start radio. The Receive level meter on Live status should move with band noise.

Every control on the card, in order:

Receivers: how readily each receiver hears

The Receivers card: Receive effort, FSQ busy margin, JG25 carrier-detect offset, AX1200 carrier detect, Set all to Auto and the Beside the selection lines.
Receivers: how readily each receiver hears a signal and calls the channel busy. The two margins read Auto with their calibrated values; Set all to Auto puts every threshold back.

One card for the settings that decide how readily a receiver hears a signal and calls the channel busy. Each row applies wherever its waveform listens — the selected waveform, or one running beside it under Multi-receive — so none of them is hidden while it is in use. The two thresholds read Auto at their calibrated default, and Receive effort reads Balanced; Set all to Auto puts every row back. The values behind Auto are the ones these settings have always had.

To set it:

  1. Open Radio and find the Receivers card.
  2. Leave Receive effort (FSQ, AX1200) at Balanced. Go toward Reach for weak signals, or toward Clean or Strict for fewer false lines.
  3. If noise keeps holding your transmissions, raise FSQ busy margin or JG25 carrier-detect offset a little at a time. Lower the JG25 offset if weak stations go unheard; lower the FSQ margin if you find yourself transmitting over weak stations (it gates only transmitting, never decoding).
  4. To undo everything, press Set all to Auto.
  5. Changing FSQ busy margin while the radio is running restarts the radio.

The Channel page's Monitor squelch only hides weak lines from view; it changes nothing any receiver hears. FSQ's own receive settings (the corruption check, the clear-channel wait and the decoders, below) are likewise shown whenever FSQ listens, not only when it is selected.

Multi-receive

The Multi-receive card on Radio › Receive, with Other waveforms, FSQ listener on FM and FSQ listener's speed, all at their defaults.
Radio → Receive → Multi-receive with its More options open, at its defaults: Other waveforms at Listen and answer, the FSQ listener hearing Normal and Fast speeds at Same as the FSQ Mode.

The card for the two waveforms that run beside the one you selected. What you type always goes out on the selected waveform; this card, on the Radio page's Receive tab beside the receivers it configures, decides what the others may do. Which band your radio is on, without rig control, is said on the Radio page's Rig control tab. It is shown on every waveform. The walkthrough, with the band rule and what each setting looks like in practice, is Setting it up in section 16 (the card's "?" opens that section).

To change it: open Radio → Receive, open the Multi-receive card's More options for the rows marked advanced, and make your choices. Like the rest of the Radio page each one is saved as you make it. The receivers read them when the radio starts, so on a running radio the status bar says Running old settings · Restart until a restart applies them.

ControlWhat it doesDefault
Other waveformsListen and answer: automatic requests, acknowledgements, file and mail replies go back on the waveform they came in on. Listen only: the others are received and shown but never transmit, so stations using them get no acknowledgements and their transfers retry and give up. Off: only the selected waveform runs, which saves about 12–15% of one fast core (roughly double on a modest laptop).Listen and answer
FSQ listener on FM (advanced)While AX1200 or JG25 is selected, FSQ listens on one slot at 1500 Hz. Normal and Fast speeds hears every FSQ speed (11 decoders, about 6% of one core). Normal speeds only hears FSQ-2, 3, 4.5 and 6 (4 decoders, 5 when its own speed is a Fast one; about 1%), for a slower computer. Greyed while Other waveforms is Off.Normal and Fast speeds
FSQ listener's speed (advanced)Same as the FSQ Mode, or any FSQ speed, the Fast ones marked OpenJSQ only. The listener answers an automatic request at the speed it was asked at; this is the speed it uses otherwise — when the asker's speed cannot be used — and for the files, mail and relays it sends. FSQ-2, 3, 4.5 and 6 reach every FSQ station; faster speeds reach only OpenJSQ stations that hear the Fast speeds. Greyed unless Other waveforms is Listen and answer.Same as the FSQ Mode

FSQ receive

The FSQ receive card on Radio › Receive: Check every message for corruption, In wide modes, wait for a clear channel, and Decoders running at once, with their notes.
Radio → Receive → FSQ receive, its More options open: FSQ's own receive settings, shown wherever FSQ listens.

FSQ's own receive settings, in a card of their own on the Receive tab (they were on Settings until 1.0.8). It is shown whenever FSQ listens: when FSQ is the selected waveform, or beside AX1200 or JG25 while Multi-receive → Other waveforms is not Off — so the FSQ receiver running beside another waveform can be set without changing the waveform. While FSQ does not listen the card is hidden (no More options or Show all advanced options brings it back) and a line on the Multi-receive card says where it went; the rows keep their values.

To change them:

  1. Make sure FSQ is listening: FSQ selected, or Other waveforms not Off.
  2. Open Radio → Receive and the FSQ receive card's More options.
  3. Make your choice. Like the rest of the Radio page it is saved at once. The FSQ receiver reads these when the radio starts, so on a running radio the status bar says Running old settings · Restart until a restart applies them, or you put the setting back.
  4. To see the wait work, send in a wide mode (FSQ-12 and up) on a busy channel: your message stays Queued while the radio waits. To check the decoders, watch Radio → Live status → Dropouts: after a few minutes it should stop climbing (Live status).

The wait. From FSQ-12 up, your signal covers most of the channel, so OpenJSQ holds each transmission until every slot inside it is quiet, up to the time set here. When the wait runs out the transmission goes ahead: the whole-channel check is dropped and only your own frequency still has to be clear of a station actively sending — it never transmits on top of one. It has no effect in FSQ-2 through FSQ-6W, where signals fit their own slot.

The decoders. OpenJSQ runs several FSQ decoders at once so it hears speeds you did not choose. The cost is linear and measured: a Normal-speed decoder takes roughly 0.25% of one processor core and a Fast one about 1%, so the default five-slot plan's 15 decoders (it also hears the Fast speeds at 1500 Hz) come to about 8–10%. The cap never drops your own speed or the four Normal speeds, and sheds the fastest Fast speeds first.

ControlWhat it doesDefault
Check every message for corruptionYes adds a 5-character checksum to each FSQ message you send, so a damaged copy is caught at the far end. fldigi shows those characters as line noise, so the classic speeds default to No. On the OpenJSQ-only modes (FSQ-6W and faster) nobody but OpenJSQ decodes the message, so it is on and the box is greyed, reading Yes (always on for FSQ-12); your own choice comes back when you step down to FSQ-6 or slower.No
In wide modes, wait for a clear channelDon't wait, 10 seconds, 30 seconds, 1 minute, 2 minutes or Wait indefinitely. Messages stay Queued while it waits.30 seconds
Decoders running at onceEverything the mode can hear, At most 9 decoders, At most 7 decoders or At most 5 decoders. More decoders hear more speeds without changing anything; fewer use less processor time.Everything the mode can hear

Transmit control (PTT) and level

Two cards share this section: Transmit control (PTT), which decides how OpenJSQ keys the transmitter, and Transmit level, which sets how hard it drives it. Neither is shown on a KISS TNC link, where the TNC keys and drives the radio itself.

The Transmit control (PTT) card: keying method, key-up lead, key-down tail and Test PTT.
Transmit control (PTT): how the radio is keyed (VOX here), the lead and tail around each transmission, and Test PTT.
  1. Choose Keying: Serial line for a DigiRig or any interface with a PTT line, CAT when rig control software already owns the only serial port, VOX when the radio keys itself on audio.
  2. For a serial line, pick the Serial port (Rescan after plugging in). Leave Control line and Polarity at their defaults unless the transmitter keys the moment the port opens.
  3. Start the radio and press Test PTT into a dummy load. It should say PTT keyed and released, and the radio should have keyed for a moment.
  4. Set the level on the Transmit level card, as described under Transmit level below.
The Transmit level card on FSQ: three drive sliders at -10 dB, a peak meter, Tune and Deviation test.
Transmit level: only the selected waveform's drive carries what you type, and the other two are the levels their receivers answer at. Tune and Deviation test need the radio running.

Live status

The card that answers “is this station actually working?” without going on the air.

The Live status card on FSQ with no rig control and nothing declared about the band: FSQ reading Selected and asking you to say whether the radio is on FM or HF, AX1200 and JG25 reading Listening only because FSQ is selected, then Receive level, Dropouts, Stop transmitting and Reset counters.
Live status on an FSQ station that has no rig control and has not said which band it is on. FSQ is selected, and its row asks you to say under Radio → Rig control whether the radio is on an FM channel or an HF band; AX1200 and JG25 only listen, because with FSQ selected the radio is taken to be on HF. (Taken on the bench without a radio, so Audio path reads Stopped.)

To check it:

  1. Press Start radio.
  2. Audio path should read Running at 48000 Hz followed by transmit and receive.
  3. PTT should read idle, not UNAVAILABLE.
  4. Receive level should move with band noise.
  5. Each waveform row (FSQ, AX1200, JG25) should read as you expect: the selected one Selected — what you type goes out here. (see the table below).
  6. Dropouts should stay at 0; press Reset counters to watch for a change.
  7. Stop transmitting is the emergency stop: know where it is.
  8. These are items 4 to 9 of the first-run checklist (Am I set up?).

What the waveform rows can say. USB and 7.104 stand for whatever rig control reports.

RowSentenceWhat it means
The selected waveformSelected — what you type goes out here.The normal state.
Selected — what you type goes out here; net mode holds automatic answers.Net mode is on: what you type still goes, and automatic traffic waits (section 8).
Selected — receiving only: this copy may not transmit.A closed-beta licence problem: nothing transmits on any waveform (the beta licence, section 2).
Selected — receiving only: no audio output is selected.Audio output is No output (receive only): nothing can transmit.
Selected — what you type goes out here. OpenJSQ cannot tell whether your radio is on FM or HF: say which under Radio › Rig control, or connect rig control, so automatic answers can follow the band.FSQ is selected, there is no rig control, and Radio → Rig control → Without rig control, my radio is on is Not stated. Nothing is held back; tell OpenJSQ where the radio is (section 16).
Selected — what you type goes out here; automatic answers use narrow FSQ speeds only and nobody else's traffic is relayed, because the rig is on 14.0740 MHz, outside the US §97.221(b) automatic-control sub-bands. The reason can also be a mode that cannot place the signal (… in AM, which does not place your signal on one side of the dial …) or no current frequency (you said your radio is on an HF band and no current frequency is known …).FSQ on HF under Follow US §97.221, outside an automatic-control sub-band or with no frequency to check (Automatic answers off FM, section 16).
Selected — what you type goes out here; automatic answers and relaying may use any FSQ speed, because the rig is on 14.0970 MHz, in the 20 m 14.0950-14.0995 MHz sub-band (US §97.221(b)). AX1200 and JG25 send nothing automatically.FSQ inside a §97.221(b) sub-band, by rig control's reading.
Selected — what you type goes out here; automatic traffic is not restricted by band, because Automatic traffic on HF is set to No restriction.FSQ off FM, with Settings → Relaying → Automatic traffic on HF at No restriction.
Selected — what you type goes out here; automatic answers are held: the rig reports USB, not FM, and AX1200 is too wide to send unattended off FM. The evidence can also be the rig is on 7.104 MHz or you said your radio is on an HF band.AX1200 or JG25 is selected and the radio is taken to be off FM. What you type still goes out; automatic answers wait. Check the rig, or change Radio → Rig control → Without rig control, my radio is on from An HF band. A reading from rig control that has stopped answering adds (rig control's last reading; it is not answering now).
A waveform beside itListening and answering.It receives, and may answer automatic requests.
Listening only (Receive › Multi-receive).Other waveforms is Listen only.
Listening only: FSQ is selected, so the radio is taken to be on HF.The band rule: with FSQ selected, AX1200 and JG25 do not answer unless Radio → Rig control → Without rig control, my radio is on says An FM channel (section 16). With An HF band chosen there it can name AX1200 or JG25 instead.
Listening only: the rig reports USB. or Listening only: the rig is on 7.104 MHz (HF).The band rule, read from rig control.
Held: net mode is on.Net mode holds its answers.
Held: this copy may not transmit.The licence holds it.
Held: receive only, no audio output is selected.No output (receive only) is chosen.
Not running: Other waveforms is Off.Only the selected waveform runs.
Not running: a KISS link has no other receivers.The TNC does the receiving.
Not running: this receiver could not be started.It failed as the radio started. The rest of the station is running (section 16).
The Live status card at the narrowest window: the FSQ row's long HF-rule sentence wrapped onto three lines, AX1200 and JG25 reading Listening only: the rig reports USB.
At the narrowest window (about 820 pixels) the long HF-rule sentence wraps inside the card instead of running off it. This FSQ row says automatic answers and relaying may use any FSQ speed because the rig is on 14.1010 MHz, inside the 20 m sub-band.
The Transmit level and Live status cards on JG25: JG25 drive in bold, Tune greyed, JG25 reading Selected, FSQ and AX1200 reading Listening and answering.
The same two cards on a JG25 station, with the FSQ radio declared to be on FM. JG25 drive is the bold row and the note under the sliders names JG25; Tune is greyed. With the radio on FM, FSQ and AX1200 may answer. (Taken without a radio, so Audio path reads Stopped.)

Audio gaps. If the sound card or the computer falls behind while receiving, the status bar says Receive audio skipped a moment (the sound card or this computer fell behind); a packet heard just then may have been missed. It is a notice, not an error: your own keying, and another waveform's, never cause it. Transmit audio ran dry mid-packet is reported only when a frame really did go out with a gap in it; the normal end of a frame, while the sound card plays the last of it, does not count. The counts are in the audio-health tooltip and in the diagnostic bundle.

A pause in the program. If OpenJSQ itself is held up for a few seconds, by a slow dialog or a diagnostic export say, it now reads the waiting audio afterwards instead of throwing it away, so a frame that was on the air during the pause is still decoded, a second or two after the window comes back. No new transmission starts until it has caught up, because the last few seconds of the channel have not been heard yet. Only a pause longer than the sound card's buffer (about 5.5 seconds at 48 kHz) still loses audio; that is counted as dropped audio, and the receivers start again once. A computer too slow to catch up gives up after a few seconds and goes back to live audio.

Rig control (CAT)

Backend: None — OpenJSQ does not talk to the radio, flrig — already knows your radio, on localhost:12345, or Hamlib rigctld — more radios, better units, on :4532. With a backend connected you get live frequency/mode/meter readouts, a Set mode row to put the rig in its data mode, and the option of CAT keying. The mode the rig reports is also what the band rule reads first (section 16). OpenJSQ deliberately shows — rather than a stale number whenever the link can't vouch for a reading.

Setting it up, step by step. The Backend row is always on the Rig control tab, in the everyday view too; once you pick a backend, a More options line appears with the rows below.

The Rig control (CAT) card with a rigctld backend: address and port, read interval, while-transmitting choice, link state, frequency, mode, meters and Set mode.
Rig control (CAT), advanced, with the Hamlib rigctld backend chosen. Choosing None hides every row below Backend.
  1. Start flrig or rigctld first and make sure it talks to your radio on its own.
  2. Pick the Backend. The rows below appear, with the usual port already filled in.
  3. Change Address only if needed: another computer, or a port you moved in flrig's setup.
  4. Start the radio and watch Link turn to Connected and the frequency and mode fill in. If it stays red or amber, the text says why.
  5. If the rig is not in its data mode, pick it under Set mode and press Set on radio.
  6. Optional: choose CAT — the rig control link keys the radio under Keying on the PTT card (above) if your interface has no separate PTT line.

With rig control connected, its frequency and mode also decide the band rule and the HF rule for automatic traffic (section 16), so a correct reading matters more than it looks.

Without rig control, my radio is on — on the same card, in the everyday view, and never greyed: Not stated (the default), An FM channel or An HF band. It replaces the two ticks My FSQ radio is on FM and My radio is on HF, which used to be on Settings and contradicted each other; a profile keeps what it had. It applies at once, on a running radio too.

The Radio page on AX1200, Setup tab, with all advanced options shown: the Radio & audio card with its More options open, the sample rate and the Radio link list below.
The Radio page on AX1200, on its Setup tab, with Show all advanced options ticked: More options is open and the AX1200 settings continue below the card shown here.

AX1200 settings

The AX1200 settings with More options open — every control in this list, with its shipped default.
The AX1200 settings on the built-in modem, More options open: every control below, with the value it ships with.

Connecting a KISS TNC, step by step

A KISS TNC does the modulating, listens to the channel and keys the transmitter itself, so no sound card and no PTT wiring are used, and frequency, power and TX delay are set on the radio or the TNC, not here. Choosing one of the three KISS links under Radio link shows its own card below the AX1200 card, and each card's line of Status: says what the link is doing. Starting the radio connects to the radio, port or host you chose last time by itself.

Bluetooth KISS radio, for a TNC that offers KISS as a Bluetooth Low Energy service (rare: most handhelds use Serial, below).

The Bluetooth KISS radio card: a radio list, Scan, Connect, Disconnect, a reconnect checkbox and Status.
Bluetooth KISS radio: scan, pick the radio, connect. Tick the reconnect box to have the link come back after a drop.
  1. Turn the radio's KISS TNC on, and Bluetooth on the computer.
  2. Press Scan. Radios that advertise the KISS service are marked — KISS at the top of the Radio list.
  3. Pick yours and press Connect; Disconnect lets it go. A radio connected before is offered without scanning.
  4. Leave Reconnect automatically if the link drops ticked (the default), then Start radio.

Serial KISS TNC, for a TNC on a USB or Bluetooth serial port, such as a BTECH UV-PRO.

The Serial KISS TNC card: port and speed lists with Refresh, Connect, Disconnect and a reconnect checkbox.
Serial KISS TNC: choose the port and the cable speed, then Connect. The port in this picture is made up.
  1. On a UV-PRO: turn KISS TNC on and Digital Mode Enable off in the radio's settings, then pair it with the computer. Pairing makes two COM ports; the higher-numbered one is normally the KISS port, and it is offered first. Close the radio's programming software, which holds the same port.
  2. Choose the Port (Refresh rescans after plugging in or pairing).
  3. Choose the Speed: the cable speed to the TNC, not the speed on the air, which stays 1200 baud. 9600 suits a BTECH radio.
  4. Press Connect, or just Start radio. Port and speed lock while the link is up; the status line counts frames and bytes sent and received.

Network KISS TNC, for a software TNC such as Dire Wolf, on this computer or another.

The Network KISS TNC card: host 127.0.0.1, TCP port 8001, Connect and Disconnect.
Network KISS TNC: the host and the TCP port. Point it at Dire Wolf's KISSPORT, not AGWPORT.
  1. Host: 127.0.0.1 when the TNC runs on this computer, otherwise its address.
  2. TCP port: the TNC's KISS port, which is Dire Wolf's KISSPORT, 8001 by default. Not its AGWPORT (8000): that speaks another protocol, and a station aimed at it connects and never passes a frame.
  3. Press Connect, or Start radio. Host and port lock while connected.

KISS timing, shown on every KISS link with More options on the AX1200 card, on a KISS link: Allow the radio (1500 ms by default) and KISS port (0), both explained in the list above. Set Allow the radio from the radio's own TX delay, rounded up generously, and leave KISS port at 0 unless the TNC has more than one radio port.

The KISS timing card: how long to allow the radio, and the KISS port number.
KISS timing: how long to allow the radio to finish a transmission, and the KISS port (0 unless the TNC has more than one radio port).

16. Multi-receive: all three waveforms at once ↑ contents

OpenJSQ listens to FSQ, AX1200 and JG25 at the same time, from one radio and one sound card. Pick FSQ and your station still copies the AX1200 net and the JG25 station calling you. Pick JG25 and it still hears the FSQ station on 1500 Hz and the packet traffic. Nothing needs switching on: by default every audio sample your radio delivers goes to all three receivers at once, and each one decodes what is there to decode. One setting, Other waveforms in Radio → Receive → Multi-receive, decides what the other two may do, and its default lets them answer.

On by default
Multi-receive is on by default whenever OpenJSQ is the modem, which means any sound-card link: FSQ, AX1200 on the Built-in modem (sound card), or JG25. It is part of every shipped build, JG25's included. The one exception is an external KISS TNC: the TNC does the receiving on that link and OpenJSQ never sees the audio, so it receives AX1200 only. Other waveforms set to Off turns multi-receive off (Costs, limits and caveats, below).

How it works, in radio terms

Imagine putting three receivers on one speaker, each listening for its own kind of signal. The sound card delivers one stream of audio, and OpenJSQ hands exactly the same samples to an FSQ receiver, an AX1200 receiver and a JG25 receiver. They do not take turns and they do not share a decoder. Each listens the whole time, each applies its own checks, and whatever passes goes into the same Chats, Inbox, Channel history and heard list. The one you selected is the transmit waveform; the other two are the other waveforms, as Settings calls them.

This is not the same thing as the FSQ receiver's own many decoders, which OpenJSQ has always had: those are several FSQ decoders on different slots and speeds (the decoder cards of the Channel page's advanced view, section 14, and Decoders running at once in section 15). Multi-receive is three different waveforms.

ReceiverWhat it listens forWhich of your settings it follows
FSQ With FSQ selected: every slot of your channel plan at your own FSQ speed, plus every other FSQ speed, Normal and Fast, on the 1500 Hz slot. That is 15 decoders on the default Multi — compatible plan, 11 on a single slot whether your mode is a Normal or a Fast one, 13 on FSQ-6W and 6 on Multi — dense, which has no 1500 Hz slot and so hears only your own speed (section 18).
With AX1200 or JG25 selected: the radio is on FM, where FSQ has no slot plan, so FSQ listens on one slot at 1500 Hz, whatever FSQ Channel mode you saved. By default it hears every FSQ speed (11 decoders); set it to the four Normal speeds (4 decoders, or 5 when its own speed is a Fast one) for a slower computer. Its own speed is Radio → Receive → Multi-receive → FSQ listener's speed, or your FSQ Mode if that is left at Same as the FSQ Mode.
With FSQ selected, the FSQ Mode and Channel mode and Radio → Receive → FSQ receive → Decoders running at once. With AX1200 or JG25 selected, Radio → Receive → Multi-receive → FSQ listener on FM and FSQ listener's speed (and through it your FSQ Mode) instead, still within the Decoders running at once ceiling. On either, Receive effort, Receive emphasis and Check every message for corruption.
AX1200 1200-baud Bell 202 packet. Your AX1200 address (the callsign with its SSID), the AX1200 card on the Radio page, and Receive effort.
JG25 All seven JG25 speeds and all four error-correction settings. Every frame's header says which were used, so nothing has to be chosen. The JG25 card on the Radio page, including Adaptive receive equalization, and JG25 carrier-detect offset on the Radio page's Receivers card.

Every receiver keeps the acceptance rule it has always had. FSQ still grades every reception on its admission ladder, AX1200 still needs a good frame check, and JG25 still needs its CRC-32C to hold. Running three receivers does not lower the bar for any of them.

Why you will want it

Setting it up

  1. Use a sound-card link. Any of the three waveforms through your interface will do. On AX1200 that means Radio link → Built-in modem (sound card), not a KISS TNC.
  2. Pick the waveform you mean to transmit on with the Waveform buttons on the Radio page. That is the only thing the choice decides now.
  3. Look over the other two waveforms' settings once. The receivers running alongside use whatever each waveform's own settings say, including the panels the Radio page hides while another waveform is selected (section 15). Most people never touch them. While AX1200 or JG25 is selected, the FSQ receiver ignores your saved Channel mode and listens on one slot at 1500 Hz; it speaks at FSQ listener's speed, which is your FSQ Mode unless you set it (the table above). To change any of the others' settings, switch to that waveform, make the change, and switch back.
  4. Decide what the other two may do, in Radio → Receive → Multi-receive. The default, Other waveforms: Listen and answer, suits most stations. If you run FSQ on an FM radio without rig control, choose An FM channel under Radio → Rig control → Without rig control, my radio is on so that AX1200 and JG25 may answer too (the band rule, below). On a slow computer, FSQ listener on FM: Normal speeds only or Other waveforms: Off saves processor time. FSQ listener on FM and FSQ listener's speed are advanced rows (under More options). The first is greyed while the others are Off; the second unless they may answer. Radio → Rig control → Without rig control, my radio is on is never greyed: it also decides what FSQ's own automatic answers may do (Automatic answers off FM, below). The card is pictured in section 15.
  5. Press Start radio. The receivers start with it, and the Radio page's Live status card has a row for each waveform saying what it is doing — Listening and answering., Listening only: FSQ is selected, so the radio is taken to be on HF. — which the top bar's waveform chip repeats in its tooltip (section 15).

The Multi-receive card, control by control

The Multi-receive card at its defaults: Other waveforms, FSQ listener on FM and FSQ listener's speed.
Radio → Receive → Multi-receive at its defaults. Which band the radio is on when rig control cannot tell is on the Rig control tab.

On the Radio page's Receive tab. Like the rest of the Radio page, each choice is saved as you make it. The receivers read them when the radio starts, so on a running radio the status bar says Running old settings · Restart until a restart applies them.

ControlChoicesWhat it decides
Other waveformsListen and answer (the default), Listen only, OffWhat the two receivers beside the selected waveform may do. Listen and answer: automatic requests, acknowledgements, file and mail replies go back on the waveform they came in on. Listen only: they are received and shown but never transmit, so stations using them get no acknowledgements and their transfers retry and give up. Off: only the selected waveform runs, which saves about 12–15% of one fast processor core. What you type goes out on the selected waveform under all three.
FSQ listener on FM (advanced)Normal and Fast speeds (the default), Normal speeds onlyUsed only while AX1200 or JG25 is selected, when FSQ listens on one slot at 1500 Hz: every FSQ speed (11 decoders, about 6% of one core), or FSQ-2, 3, 4.5 and 6 only (4 decoders, about 1%) for a slower computer. Greyed while Other waveforms is Off.
FSQ listener's speed (advanced)Same as the FSQ Mode (the default), or any FSQ speed; the Fast ones are marked (OpenJSQ only)Used only while AX1200 or JG25 is selected: the speed the FSQ listener sends at when it cannot use the asker's speed, and for the files, mail and relays it sends (At what FSQ speed, below). Greyed unless Other waveforms is Listen and answer.
Radio → Rig control → Without rig control, my radio is onNot stated (the default), An FM channel, An HF bandA statement about your radio when rig control does not report one. An FM channel: with FSQ selected, AX1200 and JG25 may answer beside it (the band rule, below). An HF band: automatic traffic follows Settings → Relaying → Automatic traffic on HF (Automatic answers off FM, below); what you send yourself is not affected. One choice, so the two can no longer contradict each other; it applies at once.

The note under the two boxes points to Settings → Relaying → Automatic traffic on HF, where the HF rule itself is chosen. When rig control (CAT) reports the radio's mode or frequency, that decides instead of either box.

If one receiver cannot start
The radio runs without it. The one to expect is AX1200, when no valid AX1200 address, destination or digipeater path can be made from your settings. That waveform's row in Live status then reads Not running: this receiver could not be started. for as long as the radio runs, and it is the place to look: the reason is reported only as the radio starts. Your radio is running, on the waveform you chose, and so are the other receivers. Only that one is missing.

What you will see

A few things do not change. The Radio page footer still describes only the waveform you selected (Running AX1200 - packet channel active.); the Live status rows are where the other two report. The spectrum strip shows the whole audio as it always has, but its slot plan, and the slot buttons and decoder cards of the Channel page's advanced view, appear only when FSQ itself is selected. The FSQ receiver running behind AX1200 or JG25 has no cards of its own, although its receptions are in the history.

When one signal is heard more than once

Within FSQ this happens all the time: the decoders on one slot all hear the same transmission, and a decoder set to a neighbouring speed often decodes it too. OpenJSQ keeps the first copy, gives it the best signal reading and the strongest assurance any copy earned, and folds the rest into it. Copies within two seconds count as one reception. On the Channel page they are one row; in Chats, one bubble. A copy never triggers anything: a question heard by four decoders is answered once, not four times.

Different waveforms are different transmissions, and OpenJSQ does not merge copies across them. A station that sends the same words on FSQ and then on JG25 has sent two messages, and you will see both, each labelled.

Transmitting: one transmitter, one waveform at a time

You have three receivers and still one transmitter, and a transmitter carries one signal at a time. Two rules decide which waveform each transmission uses, and the first is the one to remember.

What you type goes out on the selected waveform. Always.
Replying in a thread doesn't switch your waveform to match the bubble you're answering. If K4ABC's message arrived on JG25 and FSQ is selected, your reply goes out on FSQ. If K4ABC is not listening on FSQ, they never hear it. To answer on JG25, select JG25 on the Radio page first (the radio restarts; the receivers come straight back), or press Switch to JG25 on the warning line above the compose box, which does the same after the same confirmation (section 9). The address checks follow the selected waveform too: an address such as W4IJG-16 cannot be sent on FSQ, and a /suffix FSQ identity cannot be sent on AX1200. OpenJSQ refuses either with the reason rather than guessing (section 9).

Automatic answers go back the way the question came. With Other waveforms at Listen and answer, the default, each receiver has its own service session, with the same settings as the rest of your station. When a station asks for something on AX1200, and the band rule below lets AX1200 answer, the AX1200 side answers, on AX1200. Each waveform answers with its own form of your identity: your FSQ / JG25 name on FSQ and JG25 (W4IJG-7 with Same as AX1200, the choice a new profile starts with, or W4IJG/CRB with Callsign with suffix), and callsign and SSID on AX1200 (W4IJG-7), so the asking station hears from the address it asked. That covers:

The Channel page in its advanced view with FSQ selected: a TRANSMITTED row from KK4IB to K4ABC tagged JG25 and chat, selected, and the inspector beside it reading This station transmitted this JG25 frame.
FSQ is selected, but this station also answers on JG25 where the band rule allows (the band rule, below). The selected row is a message it sent on JG25: tagged TRANSMITTED and JG25 · chat, and the inspector beside it reads This station transmitted this JG25 frame, with its frame check and addresses. Below it, K4ABC's request for a signal report was answered on JG25 too.

Which of the other waveforms may answer: the band rule

AX1200 and JG25 are FM waveforms and must never key up on HF, while FSQ is at home on both. So before a waveform beside the selected one answers anything, OpenJSQ works out which band the radio is on:

The rule only ever holds back AX1200 and JG25 beside the selected waveform; the FSQ receiver is never held by it. The selected waveform itself is never blocked: what you type always goes out.

Automatic answers off FM

What this station sends by itself — answers to questions, refusals, capability and heard-list answers, echoes, receipts, presence, and traffic relayed for other stations — follows a rule of its own when there is evidence that the radio is not on FM: rig control reporting a non-FM mode or a frequency below 30 MHz (a reading from a link that has since stopped answering still counts), or An HF band chosen under Radio → Rig control → Without rig control, my radio is on. Which rule is set by Settings → Relaying → Automatic traffic on HF:

What you type, and the files and mail you send or accept, are never affected. The Live status row names the rule in force and why — Selected — what you type goes out here; automatic answers and relaying may use any FSQ speed, because the rig is on 14.0970 MHz, in the 20 m 14.0950-14.0995 MHz sub-band (US §97.221(b)). AX1200 and JG25 send nothing automatically., or … automatic answers use narrow FSQ speeds only and nobody else's traffic is relayed, because the rig is on 14.0740 MHz, outside the US §97.221(b) automatic-control sub-bands. A selected AX1200 or JG25 says automatic answers are held: the rig reports USB, not FM, and AX1200 is too wide to send unattended off FM. With FSQ selected, no rig control and neither An FM channel nor An HF band ticked, OpenJSQ cannot tell where the radio is: nothing is held back, and the row says so and how to tell it.

This is a software safeguard, not legal advice. It is not a statement that anything is or is not permitted where your radio is; you, as the control operator, are responsible for your station. It knows only the US §97.221 sub-bands, not other countries' rules or band plans; it does not know about split operation (rig control reports one VFO) or whether the station is under local, remote or automatic control.

At what FSQ speed

Automatic FSQ replies (a signal report, your location or station message, your software version, your heard list, a repeat or delayed repeat, an echo of a message another station asked you to repeat to everyone, a wake-up, the mailbox answers, a group signal report, and a refusal) go out at the speed the request came in at, because that is the speed the asking station is listening at. A station that asks on FSQ-12 while you run FSQ-3 is answered on FSQ-12. What you type, files and relays, and the mail you start yourself (an announcement, a deposit), go at your own speed, as always. A reply to another station's mail request goes at the speed that station used: its query, fetch, receipt, deposit answer and delivered notice, and the letter itself, sent in answer to a fetch. When several receivers decode the same question or fetch, the speed is the one that best fits how long the frame took on the air, so an FSQ-3 question is answered at FSQ-3 even when your FSQ-2 receiver copied it too.

With FSQ selected, an answer at an FSQ speed wider than your own (for a Normal-speed station, FSQ-6W and up) first waits for the whole channel to be clear, as any wide transmission does (Radio → Receive → FSQ receive → In wide modes, wait for a clear channel, 30 s by default); if the channel stays busy that long it goes at your own speed instead, which fits in one slot. The FSQ listener beside AX1200 or JG25 does not wait for the whole channel: on FM there is one channel and no neighbouring slots to splash, and an open squelch's hiss would read as busy for ever. It answers at the asker's speed as soon as its channel is clear. When it cannot use the asker's speed, and for the files, mail and relays it sends, it uses Radio → Receive → Multi-receive → FSQ listener's speed (advanced): Same as the FSQ Mode (the default) or any FSQ speed. FSQ-2, 3, 4.5 and 6 reach every FSQ station; the faster ones are marked OpenJSQ only in the list, because fldigi, FSQCall and an OpenJSQ station without Fast decoders cannot hear them, and nothing slows them down for such a station.

JG25 follows the same idea. An automatic answer — a capability, heard-list, signal-report or other station-action answer, and a repeat my message echo — goes out in the mode and error correction the request came in with, so a station that decodes only its own mode still hears it. What you type, delivery receipts and relayed frames keep your own JG25 Mode and FEC.

What the other receivers never do is announce you. Presence announcements and FSQ soundings go out only on the selected waveform, so stations on the other two find you by hearing you, or by your answers. The one exception is a change to what your station offers (relaying, the shared folder): each waveform running beside the selection, on Listen and answer, announces the change once.

Who gets the transmitter

The station-wide controls cover all three
■ Stop TX, and Stop transmitting on the Radio page, drop PTT and empty the queue of every waveform, including automatic answers the other two had waiting, and drop a delayed repeat or echo still waiting (a PTT failure does too). On AX1200 they also cancel a station action or message still waiting to learn what the other station supports, and withdraw the capability questions still waiting for an answer (except the one a mail deposit needs); nothing is asked again while the transmitter is off. Net mode holds automatic traffic on all three. On a closed-beta copy whose licence does not allow transmitting, none of the three transmits, and all three keep receiving.

Costs, limits and caveats

When multi-receive is not doing what you expect

Start with the Radio page's Live status card. It has a row for each waveform that says what it is doing and why (section 15): Listening and answering., Listening only: FSQ is selected, so the radio is taken to be on HF., Held: net mode is on., Not running: Other waveforms is Off. and so on. Most of the rows below are one of those sentences worked through. The tooltip on the waveform chip in the top bar lists the same three.

SymptomWhat to check
A station on another waveform is never heardIs Radio → Receive → Multi-receive → Other waveforms set to Off? Then only the selected waveform runs. Is this a KISS TNC link? Then there is nothing to share and only AX1200 is heard. Otherwise check that waveform's row in Live status: Not running: this receiver could not be started. means it failed as the radio started. For AX1200 the usual cause is an address that cannot be made valid. For JG25, work through its own list in section 7, because it follows the JG25 card's settings even while it is not selected.
Live status says “Not running: this receiver could not be started.”That receiver could not start; the reason is reported only as the radio starts. The waveform you selected is on the air and the other receiver is listening. For AX1200 the usual cause is an address that cannot be made valid (Settings → Station); fix it and restart the radio. The one message of this kind that appears while the radio runs is More than one waveform requested transmit at once., below.
I answered a message and the other station never heard meLook at the footer of the message you answered and at the waveform selected on the Radio page. If they differ, your reply went out on the selected waveform. The line above the compose box warns about exactly this — ⚠ … last reached you on FSQ — what you type here goes out on JG25. — and its Switch to … button restarts the radio on theirs after the usual confirmation. Switch, or select theirs on the Radio page, and send again. If you dismissed the line with ×, the Send button's tooltip still says where the message goes.
My station transmitted on a waveform I am not usingThat is an automatic answer to something asked on that waveform: a signal report, a station action, an acknowledgement, a file block, a held letter or a relay. The Channel page shows it as a Sent entry tagged with that waveform. To let the other waveforms receive without ever transmitting, set Other waveforms to Listen only in Radio → Receive → Multi-receive. Net mode holds automatic traffic on every waveform, or turn the service off in Settings.
Stations on AX1200 or JG25 get no answer or acknowledgement from me while FSQ is selectedThat is the band rule: with FSQ selected OpenJSQ assumes HF, where AX1200 and JG25 must not transmit, so they only listen, and those stations' verified messages and file transfers retry and give up. If your FSQ radio is on an FM channel, choose An FM channel under Radio → Rig control → Without rig control, my radio is on. If your radio has rig control, its mode decides instead: an FM mode means FM, and USB, a data mode or CW means HF whatever the frequency. The AX1200 and JG25 rows in Live status say which reason applies. Check too that Other waveforms is not Listen only. Otherwise select their waveform to answer them.
A reply to an automatic question seems slowIt is waiting its turn. Only one waveform can hold the transmitter; what you send on the selected waveform goes first, then its relay forwards and answers (for at most six seconds while a reply beside it waits), and other automatic traffic on all three takes turns. A waveform beside the selected one also waits until no receiver hears the channel busy, so traffic on any of the three waveforms holds it.
Audio stutters, or Dropouts climb, since upgradingMore receivers mean more processor work. Close whatever else is busy, then trim Radio → Receive → FSQ receive → Decoders running at once (under More options), set FSQ listener on FM to Normal speeds only, or set Other waveforms to Off. Reset Dropouts and watch whether it climbs again.
The status bar says “More than one waveform requested transmit at once.”The safety check that should never trip has tripped: two waveforms claimed the transmitter together, and no new transmission is allowed until that clears. Press ■ Stop TX, and if it happens again save a diagnostic bundle (section 14) and send it in.
The Channel history seems to be missing trafficCheck the Waveform selector. A list narrowed to FSQ earlier hides JG25 and AX1200 rows. Set it back to All waveforms. For rows further back, use Load older history.
The Channel log says “Not answered on AX1200: … — listening only (…)”A note, not an error: that waveform heard a request and was not allowed to answer. The note gives the reason: Other waveforms at Listen only, the band rule, net mode or the licence. Fix that reason, or select their waveform (section 14).
AX1200 and JG25 stay quiet on an FM rig although An FM channel is chosenRig control's mode wins over that choice. A USB or DATA-U mode reads as HF, and Live status says so: Listening only: the rig reports USB-D. Check the mode the rig reports.
Live status says “Selected — what you type goes out here; automatic answers are held: the rig reports …”Rig control (or An HF band under Radio → Rig control → Without rig control, my radio is on) says the radio is not on FM while AX1200 or JG25 is selected. What you type still goes out; automatic answers on it are held, unless Settings → Relaying → Automatic traffic on HF is No restriction. Check the rig's mode.
Automatic answers on another waveform are too loud or too softEach waveform answers at its own drive. Set that waveform's slider on the Radio page's Transmit level card (section 15).

Questions people ask

How do I turn multi-receive on?

You don't have to. It is on by default whenever OpenJSQ is the modem, which means any sound-card link. If it has been turned off, set Radio → Receive → Multi-receive → Other waveforms back to Listen and answer.

Can I turn it off?

Yes, in Radio → Receive → Multi-receive. Other waveforms: Off runs only the selected waveform and saves the processor time the others cost. Listen only keeps hearing all three but transmits only on the selected one; the catch is that stations on the other two get no acknowledgements, so their verified messages and files retry and give up. If you want your station silent except for what you type, on every waveform including the selected one, Net mode does that.

Why did an automatic FSQ answer go out at FSQ-12 when I am set to FSQ-3?

Because the question came in at FSQ-12. Automatic FSQ replies (signal report, location, station message, version, heard list, repeats, echoes, wake-ups, mailbox answers, group signal reports, refusals) go out at the speed the request came in at, so the asking station, which is listening at that speed, hears them. A reply to another station's mail request goes at that station's speed too. What you type, files, relays and the mail you start yourself go at your own speed. The one exception is a wide answer that waited out the whole-channel courtesy with FSQ selected: that goes at your own speed (section 16, At what FSQ speed).

Does the waveform I pick still matter?

Yes, for everything you send: messages, files, letters, questions, presence announcements and FSQ soundings. It does not limit what you hear.

Why was my reply to a station refused?

Because the selected waveform cannot carry its address. A station heard on FSQ or JG25 as N4UZZ/CRB cannot be addressed over AX1200, which has no room for a /suffix, and on FSQ and JG25 a hyphen must be followed by 1 to 15 (K4ABC-16 is refused). K4ABC-7 can be addressed on all three; if that exact name has never been heard on FSQ or JG25, the New conversation dialog says so and opens the conversation anyway. The dialog says which, and your reply stays in the box. Select the waveform that can carry the address, or write to the station's address on yours (section 9 shows the dialog).

Will people on the other waveforms know I am listening?

Only if they hear from you. Your station announces itself on the selected waveform only. It answers on the others when asked, and each answer is something the asking station hears from you.

Does it work with fldigi or FSQCall stations?

Yes. The FSQ receiver always includes the four classic speeds on 1500 Hz (except on the Multi — dense plan, which has no 1500 Hz slot), so an fldigi station is heard whatever waveform you have selected, unless Other waveforms is Off, and that includes fldigi's undirected text (call: text, the form its echoes take), which OpenJSQ used to discard. Replying to them needs FSQ selected.

Is it in every shipped build?

Yes. JG25 is in every shipped build, so every copy listens to all three waveforms. A closed-beta copy whose licence does not permit transmitting still receives all three.

Why does K4ABC show “JG25” under Last RX when I only ever talk to them on AX1200?

Only when nothing but their software has been heard. A 1.0.6 station that has AX1200 selected says so in its capability record, and Last RX then reads works on AX1200; failing that it shows the waveform of the newest chat heard from them, overheard chats included. JG25 · automatic appears when all your receiver has heard is their JG25 receiver answering by itself. Last RX still says nothing about which waveform your next message will use; that is always the selected one.

Does a message heard on two waveforms show up twice?

If the station sent it twice, once on each waveform, yes. Those are two transmissions, and each bubble is labelled. The same FSQ transmission heard by several FSQ decoders shows up once.

Can I receive a file on JG25 while I am on AX1200, or on FSQ?

On AX1200, yes, if you accept files (Settings → Files, one switch for every waveform; section 11). The JG25 side acknowledges each block on JG25, taking its turn for the transmitter between your AX1200 transmissions, and the file lands in the same incoming folder. On FSQ only if you have chosen An FM channel under Radio → Rig control → Without rig control, my radio is on (or rig control reports an FM mode): otherwise OpenJSQ takes FSQ for HF, JG25 only listens, and the sender's transfer retries and gives up. A shared-folder listing you asked for is different. It has to come back on the waveform you asked on, because that is the only request your station is waiting on.

17. Choosing a waveform: FSQ, AX1200 and JG25 ↑ contents

OpenJSQ is one program over three different radios' worth of physics. The waveform decides how fast you can talk, how bad the path may get before you stop being heard, and who else can decode you — but it does not decide what the program can do: chats, mail, files, groups, the network map and relaying are the same services on all three. Pick the one that matches the band you are on, and change your mind later on the Radio page. The choice is what you transmit on: all three are received at once (section 16).

The three at a glance

 FSQ++AX1200JG25
Band it is for HF and NVIS — 40 and 80 m above all. Works on VHF/UHF too. VHF/UHF FM. VHF/UHF FM only. See the warning below.
Waveform 33-tone IFK+, 1.95 to 41 baud. Bell 202 AFSK, 1200 baud, 1200/2200 Hz. Continuous-phase 4-FSK, 600 to 1200 baud, two bits per symbol.
Speeds you can pick Eleven, FSQ-2 to FSQ-42 — see section 18. One. 1200 baud is the standard. Seven, JG25-FM 1200 to JG25-FM 2400 (the number is the bit rate).
Room it needs in the audio 430 Hz classic; up to 3 kHz on the widest Fast mode. About 2 kHz within the FM voice passband. Roughly 475–2600 Hz — very nearly the whole voice passband, in every mode.
Error correction None. Checksums tell you what arrived damaged. None on the link. Files carry their own FEC. Selectable — F0 to F3 convolutional coding, plus a CRC-32C over every frame.
Who else can decode you fldigi and FSQCall, at the four classic speeds. The Fast modes are OpenJSQ-only. Any AX.25 station; it can share a channel with APRS. Nobody. It is OpenJSQ's own waveform and no other program speaks it.
Verified chat No — FSQ chat is best-effort by design. Yes.Yes.
Reliable file transfer Between OpenJSQ stations, yes, with whole-file verification, though slowly. To fldigi and FSQCall, # is the file protocol. Yes, with whole-file verification. Yes, with whole-file verification.
Letter that fits in one frame 768 bytes.128 bytes.256 bytes.
Relay chain you may ask for As long as you like — the route travels in the frame. One hop.One hop.
What the Channel page shows Its entries in the one shared feed, tagged FSQ; the advanced view nests each decoder's copy and the admission checks behind every reception. Its packet traffic in the same feed, tagged AX1200.Its packet traffic in the same feed, tagged JG25.
Status Shipped.Shipped. Experimental. In every shipped build.

Which one do you want?

JG25 is for FM. Do not use it on HF.
JG25 was designed for, and tested on, ordinary FM voice radios on VHF and UHF. Every mode spreads its four tones across almost the whole audio passband — from about 475 Hz to about 2600 Hz — and runs at 600 to 1200 baud, which is the opposite of what an HF path rewards. On HF it would be too wide to be a good neighbour in a crowded band, too fast to survive fading and multipath, and its receive correction is shaped for the audio tilt of an FM discriminator rather than for an SSB receiver. On HF, use FSQ. That is what FSQ is for, and it is the only one of the three whose sensitivity is measured in the numbers HF operators care about.

How fast, and how robust: the modes compared

Two questions decide whether a mode suits a path: how quickly it moves what you send, and how weak a signal it still copies. The tables below answer both for every mode OpenJSQ transmits, FM first and then HF. They come from calculation and simulation, not from on-air tests, so treat them as a guide to which way to move rather than as a promise about your radio.

Reading the numbers

On FM: AX1200 and JG25

"Signal needed" here is the SNR at which 9 packets in 10 arrive intact. The first column is the middle result across seven models of an FM voice radio's audio path. The second is a model built from recordings of one real pair of radios, a Yaesu FT-8800 sending to an FT-817. On that pair JG25 needed about 1.5 to 5.5 dB more than the middle result, and AX1200 about 1 dB more. Half the packets still get through at about 1 to 2 dB below the 9-in-10 figure.

ModeReal speed, 128-byte message1 KB file10 KB fileSignal needed, seven FM modelsSignal needed, real radio pair
AX1200761 bps21.0 s2.4 min6.8 dB7.9 dB
JG25-FM 1200, F0929 bps16.7 s1.7 min6.0 dB11.5 dB
JG25-FM 1400, F01049 bps15.4 s91.8 s2.3 dB6.5 dB
JG25-FM 1600, F01161 bps14.4 s83.5 s5.0 dB8.8 dB
JG25-FM 1800, F01266 bps13.6 s76.9 s3.0 dB8.2 dB
JG25-FM 2000, F01365 bps13.0 s71.7 s5.6 dB11.0 dB
JG25-FM 2200, F01459 bps12.5 s67.5 s4.0 dB9.0 dB
JG25-FM 2400, F0 (default)1547 bps12.1 s63.9 s6.6 dB11.5 dB
JG25-FM 1200, F1730 bps19.8 s2.2 min1.5 dB6.0 dB
JG25-FM 1400, F1830 bps18.1 s1.9 min2.7 dB6.7 dB
JG25-FM 1600, F1925 bps16.7 s1.7 min4.0 dB8.0 dB
JG25-FM 1800, F11015 bps15.7 s94.5 s4.2 dB8.8 dB
JG25-FM 2000, F11101 bps14.9 s87.5 s5.2 dB9.9 dB
JG25-FM 2200, F11183 bps14.2 s81.8 s6.0 dB10.8 dB
JG25-FM 2400, F11261 bps13.7 s77.1 s8.0 dB12.9 dB
JG25-FM 1200, F2661 bps21.4 s2.4 min0.2 dB4.9 dB
JG25-FM 1400, F2753 bps19.4 s2.1 min1.9 dB5.5 dB
JG25-FM 1600, F2841 bps17.9 s1.9 min3.5 dB6.9 dB
JG25-FM 1800, F2925 bps16.7 s1.7 min3.0 dB7.9 dB
JG25-FM 2000, F21005 bps15.8 s95.4 s4.7 dB9.6 dB
JG25-FM 2200, F21082 bps15.1 s88.9 s5.2 dB9.8 dB
JG25-FM 2400, F21156 bps14.4 s83.6 s6.9 dB12.0 dB
JG25-FM 1200, F3514 bps26.0 s3.0 min−1.3 dB2.7 dB
JG25-FM 1400, F3589 bps23.3 s2.7 min0.3 dB3.7 dB
JG25-FM 1600, F3661 bps21.3 s2.4 min1.7 dB5.0 dB
JG25-FM 1800, F3730 bps19.8 s2.2 min1.8 dB6.4 dB
JG25-FM 2000, F3798 bps18.6 s2.0 min3.0 dB7.8 dB
JG25-FM 2200, F3862 bps17.6 s1.8 min3.6 dB7.8 dB
JG25-FM 2400, F3925 bps16.7 s1.7 min4.8 dB6.2 dB

F1 and F2 sit between F0 and F3 for speed, and above JG25-FM 1200 they add little over F0 for signal. At JG25-FM 1400 and up, F1 and F2 needed within about 2 dB of F0, one way or the other: F2 did up to 1.5 dB better at 1600, and F1 did 2 dB worse at 2200. They cost speed for that small change, and F3 needed less signal than either of them at every speed. At JG25-FM 1200 they do help (F0 needs 6.0 dB, F1 1.5 dB and F2 0.2 dB), but F3 helps most, at −1.3 dB. So when F0 struggles, F3 is the step to take. Robust acquisition was not measured: every figure here uses Normal.

The JG25 ladder is not a straight line. In these tests, with F0, JG25-FM 1400, 1800 and 2200 held on to weaker signals than the slower modes beside them. Speed alone does not tell you which JG25 mode is the tougher one, so read it from the table.

How AX1200 compares. On the seven-model measure this build's AX1200 receiver needs 6.8 dB, and at 8 dB it delivers 94 packets in 100. On the same test, Dire Wolf 1.7 in its default setup needed about 1 dB more.

On HF: FSQ

On HF, "signal needed" is the weakest signal at which FSQ still copies a message with no more than about one character in twenty wrong, on average. It was measured in plain background noise, with no fading. Typing speed is the same kind of figure a received message's footer shows as ch/s. FSQ chat is sent once, with no retries, so the typing speed is the whole story for a chat. Files between two OpenJSQ stations use the same acknowledged file transfer as the FM waveforms, and the last column is what that costs.

ModeTyping speed, 128-character message1 KB of text in one message1 KB fileWeakest usable signal
FSQ-21.57 ch/s9.3 min51.0 minabout −16.5 dB
FSQ-32.35 ch/s6.2 min34.1 minabout −15 dB
FSQ-4.53.13 ch/s4.6 min25.7 minabout −13.5 dB
FSQ-64.68 ch/s3.1 min12.8 minabout −10.5 dB
FSQ-6W4.54 ch/s3.1 min13.3 minabout −12 dB
FSQ-129.05 ch/s93.1 s4.7 minabout −9 dB
FSQ-1612.04 ch/s69.9 s3.3 minabout −7.5 dB
FSQ-2015.02 ch/s55.9 s2.5 minabout −6 dB
FSQ-3022.40 ch/s37.3 s97.5 sabout −4.5 dB
FSQ-3626.78 ch/s31.1 s79.5 sabout −3 dB
FSQ-4231.14 ch/s26.7 s69.0 sabout −3 dB

The signal figures were measured in 1.5 dB steps, which is why they read "about". In plain noise FSQ-6W copied at least as deep as FSQ-6 at the same typing speed. What its wider tone spacing is really for is multipath and drift, which this test does not include. It costs twice the width, and fldigi cannot decode it.

Which to pick

What these numbers are not
They are simulations, not on-air tests. The FM figures come from seven models of an FM radio's audio: a sub-audible tone filter, a voice path with emphasis and a deviation limiter, a data port that de-emphasises audio nobody pre-emphasised, narrow receive audio, and three models fitted to recordings of real radio paths, two of them from the FT-8800 and FT-817 pair. All of them add steady noise, with no fading, no tuning error, no squelch and no other stations. The HF figures use plain noise alone: no fading, multipath, drift or interference, which a real HF path adds and which cost margin. Your radios will move these numbers by several dB. Deviation, audio filtering and levels matter, and the real-radio column is one pair of radios on one day. Do not compare the FM table with the HF table. They use different noise, different pass marks and different kinds of radio, and FSQ was not measured on FM. The speed and file times assume a clear channel with nothing lost and nobody else on frequency, so busy channels and retries make every transfer longer.

Sources: speed and file times from the project's docs/MODE_THROUGHPUT.md and the FM signal figures from its September 2026 modem comparison, both made at commit d0d6bd26 and re-checked at 6443783b. FSQ signal figures measured at 6443783b with the FSQ modem's sensitivity bench, 20 trials per point.

JG25 in the program

JG25 is OpenJSQ's own packet waveform: continuous-phase 4-FSK carrying two bits per symbol, a slow protected header in front of every frame that names the speed and coding used, convolutional forward error correction over the body, and a CRC-32C the receiver checks before it will accept anything. It carries the whole service stack natively — chat with fragmentation, verified chat, reliable files with whole-file verification, custody mail, station actions, one-hop relay and delivery receipts.

It is in every shipped build of OpenJSQ: a JG25 button on the Radio page and a JG25 entry in the first-run wizard.

The Radio page running JG25, Setup tab: the JG25 waveform button selected and JG25's own settings, Mode and Error correction, under the audio lists.
The Radio page on JG25. The Waveform row's third button is selected, and JG25's own settings take the place of the AX1200 ones on the Setup tab.
The JG25 settings on the Radio page's Setup tab: the note that JG25 is experimental, Mode, Error correction, Acquisition and Adaptive receive equalization.
JG25's own settings, on the Radio page's Setup tab: Mode, Error correction, Acquisition and Adaptive receive equalization. JG25's transmit settings sit with the other waveforms' on the Transmit tab, under More options in the Transmit level card (Transmit turnaround, JG25 transmit level, VOX audio lead); the Presence schedule is in Settings.

Mode

Seven modes, JG25-FM 1200 to JG25-FM 2400, named for their raw bit rate. This sets what you transmit, and only that — the frame header tells the receiver which mode was used, so the far station follows you automatically and the two of you do not have to agree in advance.

The JG25 Mode list dropped down from the top bar: JG25-FM 1200 through JG25-FM 2400, with the FEC list and Net mode beside it.
The seven modes. Faster is not free: each step up buys throughput with tolerance for noise, drift and multipath.

Faster modes pack more into the same bandwidth and survive less. On a weak or fluttery path a slower mode gets through where a faster one does not decode at all. JG25-FM 2400 is the narrowest margin of the set, and it is the default because it is the mode JG25 was validated at. If it struggles on a path, switch the error correction to F3 before you drop the speed: in the measurements that bought 2 to 5 dB, and a 1 KB file took 16.7 s instead of 12.1 s (How fast, and how robust, above).

Error correction

Spare bits sent alongside your data so the receiver can rebuild what the noise damaged without asking you to send it again. The rate is how much of the frame is your data:

The JG25 error-correction list: F0 through F3.
F0 to F3. Stronger correction means a longer transmission for the same message.
SettingRateWhat it means
F0—No spare bits at all. Fastest; a damaged frame is simply lost. The shipped default.
F13/4Three quarters of the frame is your data.
F22/3Two thirds is yours.
F31/2Half is yours. The most robust.

On receive, any JG25 frame whose first decode fails gets a slower second try in the background — a few seconds, up to about 4 s of searching — which can finish after you have transmitted. That try includes an equaliser trained on the frame's own preamble, for the delay that CTCSS (sub-audible tone) filtering adds to the lowest tones of JG25-FM 1800 to 2400. A JG25-FM 2400 frame sent with F3 also gets one extra decoder in that try, limited to 2 s. All of it is on by default and needs no setting; Live status → Recovery shows it working (section 15).

Like speed, this is a choice about what you send: both stations choose independently and the header carries the answer. There is no automatic ladder yet — the pairing that suits the path is the operator's call, which is exactly why both controls are on the top bar as well as on the Radio page.

The top bar on JG25, carrying Mode and FEC where FSQ carries Mode alone.
On JG25 the top bar carries Mode and FEC — the two things you reach for when the path changes under you — where FSQ carries Mode alone, as here at a width with room for the whole bar. On a narrow window the top bar gives way rather than the window growing: below the width the whole bar needs (about 1115 px on FSQ and about 1250 px on JG25, standard Windows fonts), it drops the level meter, the OpenJSQ wordmark and the words “Mode” and “FEC”, shows JG25's Mode by its short name (FM 2400) and folds the FEC box away, which is on the Radio page too (picture under The top bar, section 4). The window narrows as far as its pages allow, the same on every waveform — about 820 pixels with standard Windows fonts, wider with larger text.

The rest of the panel

What experimental means here
JG25's modem passes its own test suites, and the whole service stack — chat, files, mail, actions, relay, receipts — has been run end to end through it. What has not been done is the full real-radio qualification: the on-air work so far is a set of preserved FM captures between two handhelds, and the wire format is not frozen. Two stations must be running the same build to be sure of each other, and a future build may change the format in a way that breaks compatibility with this one. Use it where losing a QSO costs nothing. For traffic that matters, use AX1200.

18. The FSQ mode ladder ↑ contents

The FSQ Mode list: four interoperable speeds, a separator, then the Fast modes.
The mode ladder: four interoperable speeds, then the seven Fast ones below the separator. The list scrolls.

This section is about FSQ. AX1200 has one speed and JG25 has its own seven — section 17 covers those. The top bar's Mode box lists eleven FSQ modes. The first four are classic FSQ — every FSQ program ever shipped decodes them. The seven below the separator are OpenJSQ-only Fast modes: the same waveform run faster and wider. Changing mode does not restart the radio. The change is used from your next transmission; until then the status bar and the box's tooltip say what it is waiting for: FSQ-6 applies when this transmission finishes, … when the messages waiting to go out have gone, … when the station being heard finishes, or … when the file transfer finishes. A file transfer finishes at the speed it started. Conversations, the heard list and the other waveforms' receivers carry on, and the Channel page draws a line where the change happened: ---------- mode FSQ-3 → FSQ-6 ----------. A conversation whose Slot chip names a slot the new mode does not have goes back to Auto. With FSQ selected, the receiver also hears every other FSQ speed, Normal and Fast, on the 1500 Hz slot, so a caller at any speed is heard whatever mode you chose (except on Multi — dense, which has no 1500 Hz slot). While AX1200 or JG25 is selected, the FSQ receiver running alongside listens on one slot at 1500 Hz instead, at every speed or only the four classic ones (Radio → Receive → Multi-receive → FSQ listener on FM), and sends at FSQ listener's speed, which is your FSQ Mode unless you set one (section 16).

ModeEffective baudChannel allocationWho can decode / what it wants
FSQ-21.95430 HzEveryone (fldigi/FSQCall). The weak-signal workhorse — usable copy to about −16.5 dB.
FSQ-32.93430 HzEveryone. The everyday default.
FSQ-4.53.91430 HzEveryone.
FSQ-65.86430 HzEveryone. The classic top speed.
FSQ-6W5.86860 HzOpenJSQ only. FSQ-6's speed with double-spaced tones — extra multipath/drift tolerance, and it still shares the channel.
FSQ-1211.71.3 kHzOpenJSQ only; any band.
FSQ-1615.61.7 kHzOpenJSQ only; wants a quiet band.
FSQ-2019.52.2 kHzOpenJSQ only; quiet band.
FSQ-3029.32.2 kHzOpenJSQ only; wants a strong, clean signal — strength, not just quiet.
FSQ-3635.22.6 kHzOpenJSQ only; strong and clean. The practical top rung.
FSQ-4241.03.0 kHzOpenJSQ only; strong, clean, and a genuinely wide SSB filter.

Every step up the ladder costs sensitivity, and predictably so: about 3 dB for each doubling of speed, about 13 dB from FSQ-2 to FSQ-42 as measured. Each mode's real speed and weakest usable signal are in How fast, and how robust (section 17). The mode list's tooltips carry each mode's requirements. Beyond that physics, two rules keep the Fast modes civilized, and the app enforces both:

19. Settings in depth ↑ contents

Settings with all advanced options shown: the Find box, the seven sections down the left (Station, Automatic traffic, Mail & files, Stations heard, Chats & groups, Alerts & appearance, About & storage), the Station style card and the Station card below it.
Settings with Show all advanced options ticked. The seven sections are listed on the left and Find a setting… searches them all. Station style leads the Station section, then Station: the callsign alone, the suffix after its fixed slash, the AX1200 SSID, and the two lines that read back what goes on the air.

The page has seven sections, listed down the left (in a narrow window they are a box under the heading): Station, Automatic traffic, Mail & files, Stations heard, Chats & groups, Alerts & appearance and About & storage. One shows at a time. Find a setting, top right, looks through every setting's name and explanation: type a few letters, press Enter for the first match or pick one from the list, and the page goes to that section, opens the card's More options if the row is in them, and puts the cursor on it. Esc closes the list, then clears the box. Find never lists a setting that does not apply right now (an FSQ-only setting while FSQ is not listening, say).

Unlike the Radio page, Settings stages your edits. Change a box and a bar appears pinned at the foot of the page, in view whichever section you are on: 3 unsaved changes — saving restarts the radio so they take effect immediately. with Discard and Save & restart radio. The count is how many boxes differ from what is saved: put a box back as it was and it is no longer counted, and the bar goes when none differ. Nothing takes effect until you press the second button. If messages are still waiting to go out the program asks first (Save and restart the radio?), because a restart fails what is queued. Cards that apply at once wear an Applies at once chip in their title: Colours and Text size (the Appearance card) and every row of the Relaying card. They never count as unsaved changes, and Discard does not undo them. Each card shows what everyone touches and folds the rest behind its own More options (N) line; rows marked (advanced) in the tables below are the ones behind it. Show all advanced options, top right, opens every card's More options at once; the choice is remembered. A row that depends on a choice appears only when that choice is made — the waveform ticks under Carry messages for other stations → Some waveforms, the callsign list under Repeat messages for → These stations — and keeps what it holds while it is out of sight. The table below says which section each card is in, and this chapter takes the cards in this order: Station, Known callsigns, Automatic replies, Relaying, Mail, Files, Shared files, Presence, Chats, Groups, Appearance, Alerts, Files & configuration and About.

The "?" button. Every card has a small ? at the right end of its title. It opens this guide at that card's own section below, so each section is written to be read with the card open beside it: what the card is for, the steps to change it, and every box on it.

Settings no longer holds anything only FSQ uses: the corruption check, the clear-channel wait and the decoders are on Radio → Receive → FSQ receive (section 15), shown wherever FSQ listens, and Multi-receive is beside them. While another waveform is selected, the Known callsigns card adds that only FSQ learns callsigns, so its list does not change meanwhile.

The cards at a glance

CardWhat it is forSection
Station styleCareful, Community or Performance: how much your station transmits on its own, set together and saved like any edit.Station
StationWho you are on the air: callsign, suffix, SSID, the name FSQ and JG25 use, location and station message.Station
Known callsignsThe roster of callsigns your station has verified.Stations heard
Automatic repliesWhat your station answers without asking you.Automatic traffic
RelayingCarrying and repeating other stations' messages, and the HF rule. Instant, no Save.Automatic traffic
MailWhether you hold letters for others, and for how long.Mail & files
FilesWhether you accept files, and the size and count limits, on every waveform.Mail & files
Shared filesA summary of the shared folder, and its technical limits.Mail & files
PresenceAnnouncing yourself, and how long a heard station counts.Station
ChatsAllcall chats in the sender's conversation, and the default chat delivery.Chats & groups
GroupsThe groups your station listens to, on every waveform. Instant, no Save.Chats & groups
AppearanceColours and text size. Instant.Alerts & appearance
AlertsThe arrival chime and the speakers it comes out of.Alerts & appearance
Files & configurationThe folder files live in, and where the settings file is.About & storage
AboutThe version to quote in a bug report, and the credits.About & storage

Station style

About thirty settings decide how much your station transmits on its own: what it answers, whether it carries and repeats other stations' messages, how much mail and how many shared files it handles for others, and its airtime allowances. Station style, at the top of Settings, sets them together.

The Station style card on Settings: the Station style list reading Community, the line describing Community, and a note that a style never changes your identity or hardware.
Settings → Station style, at the top of the Station section: the list reads Community, the shipped style, with a line under it saying what it does.

Choosing a style is an edit like any other. It changes the settings below as if you had set each one yourself. The changed rows are highlighted and the Save bar counts them. Save applies them, with the usual restart warning; Discard puts them back. Rows that normally apply at once (Relaying, Repeating, Limits) also wait for Save once a style is chosen. Your other unsaved edits stay as they were.

A style also sets two rows on the Radio page: Other waveforms and In wide modes, wait for a clear channel. The Save bar names them, and Save writes them for the Radio page.

Custom. Once one of a style's own settings differs from it, the selector reads Custom (based on Community), naming the closest style. The line under it lists the settings that differ, and Reset to Community stages the style again. Only the settings a style sets count: your callsign, text size and everything else never make the style Custom. A profile from an earlier version keeps its exact values and shows Custom with the closest style; nothing is applied until you choose one.

What a style never changes. Your identity and hardware: callsign and name, location and station message, sound card, keying, drive, receive thresholds, rig control and FSQ/JG25 speeds. Nor groups, the shared folder's on/off and audience, the files folder, appearance, alerts, known callsigns, the band claim, default chat delivery or file quotas. A style never chooses Unlimited (I'm responsible) airtime or HF No restriction: those stay your own choice, each with its own confirmation. Turning off Hold letters for other stations stops new letters being taken; letters already held are kept and still delivered.

SettingCarefulCommunityPerformance
Answer group signal report requestsNeverAutomaticallyAutomatically
Group report request limit15 min5 min2 min
Carry messages for othersOffAll waveformsAll waveforms
Relay hop limit–23
Answer questions that reach you through a relayNoYesYes
Repeat messages forNobodyEveryoneEveryone
Longest message to repeat–One FSQ transmissionNo limit
Automatic airtime1 in 10 min2 in 10 min4 in 10 min
Relay forwarding allowance–3 in 10 min6 in 10 min
Hold letters for other stationsNoYesYes
Tell a station it has mail at mostevery 5 minevery 2 minevery minute
Give up on undelivered letters–7 days14 days
Shared folder: each station may ask every60 s10 s10 s
Shared folder: serve at most per day1 MB1 MB5 MB
Shared folder: largest file to serve64 KB256 KB1 MB
Announce my presenceOffOffEvery 30 min
In wide modes, wait for a clear channel (Radio)2 min30 s30 s
Other waveforms (Radio)Listen onlyListen and answerListen and answer

Every style also answers questions automatically, answers "what software", answers "who have you heard", lets other stations relay your traffic, accepts messages left for you from anyone, keeps the echo spacing at 30 s and the duplicate window at 5 min (Careful leaves both alone), counts echoes against automatic airtime, and follows US §97.221 on HF. A dash means the style leaves that setting as it is.

Station

A close-up of Settings, Station: callsign KK4IB, AX1200 SSID -7, the FSQ / JG25 name set to Callsign with suffix with P after the slash, and both preview lines.
Settings → Station: the callsign alone, Callsign with suffix with P after the fixed slash, -7 from the SSID list — and under them the two lines that say what each waveform will transmit: FSQ / JG25: KK4IB/P and AX1200: KK4IB-7.

The first card on the page, and not an advanced one — this is where a station's identity is typed, and the only place it is. Three questions — the callsign, the packet SSID and which name FSQ and JG25 use — answered once, and OpenJSQ works out the rest.

To set up your identity:

  1. Open Settings in the left rail. Station is the first card.
  2. Type your callsign in Callsign, on its own: W4IJG. No slash, no hyphen. It is shown in capitals.
  3. If you use a packet SSID, pick it in AX1200 SSID (optional); otherwise leave No SSID.
  4. Choose the FSQ / JG25 name: Same as AX1200 to be one station on every waveform, or Callsign with suffix and type the tag (P, CRB, CRB/P) in the box after the fixed slash.
  5. Read the line or two under the boxes. They are what each waveform will actually transmit. An amber sentence under them means one box is wrong and names which; Save will refuse until it is fixed.
  6. Optionally fill Location and Station message, below.
  7. Press Save & restart radio in the bar at the foot of the page.
BoxWhat goes in it
CallsignThe callsign on its own — W4IJG. Letters and digits, at least one digit, six characters at most, because that is what an AX.25 address field holds. Neither / nor - belongs here; each has its own box.
AX1200 SSID (optional)A list: No SSID, or -1 to -15. It tells this packet station apart from your others — -7 on a handheld, say — and W4IJG-1 and W4IJG-2 are two different stations on the air. FSQ and JG25 use it too when the next choice is Same as AX1200.
FSQ / JG25 nameTwo choices, each showing the name it gives. Same as AX1200 — W4IJG-7: FSQ and JG25 use your AX1200 name, so you are one station on every waveform — one conversation, one heard row and one mail address at the far end, whichever waveform they heard you on. With No SSID that is your callsign alone, W4IJG. Callsign with suffix — W4IJG/ followed by the suffix box: the FSQ / JG25 suffix described above. The suffix box is off while Same as AX1200 is chosen, and keeps what it holds. A new profile starts at Same as AX1200; a profile set up before 1.0.7 keeps its suffix name until you change it. fldigi and FSQCall stations hear and answer a W4IJG-7 station, but an fldigi station cannot itself use such a name (section 9).
Suffix — the box after the fixed slash in the FSQ / JG25 name rowThe tag after the slash, and the slash itself is printed beside the box rather than typed: P for portable, CRB for a net's own tag, or CRB/P for both. It is part of the identity other stations see, so W4IJG and W4IJG/CRB are two different stations to every FSQ decoder. AX1200 cannot carry it and leaves it off. The callsign and the suffix together must fit 15 characters — the most another OpenJSQ station will accept as an FSQ address or relay hop — so a long tag is refused here rather than building a station nobody can address or route through. An identity of 16 to 20 characters saved by an earlier version has to be shortened before the radio will start: Start is refused with that reason, and Settings will not save until it fits.

Under them, two lines say what each waveform will actually transmit — FSQ / JG25: W4IJG/CRB and AX1200: W4IJG-7, or the one line FSQ / JG25 / AX1200: W4IJG-7 — one name on every waveform — filled in as you type, with the reminder that OpenJSQ uses the identity for the mode you select. Either line reads — while there is nothing to show, which is half the explanation of why the callsign box will not take a slash: type W4IJG/CRB into it and the FSQ line fills in while the AX1200 line beside it stays empty. That is the point of the three boxes: switching waveform never needs an identity edit again, and the Radio page only reads the answer back to you.

Anything the wire cannot carry is caught here rather than at Start radio. The note under the boxes appears while you type, and Save is refused with the same sentence — nothing on the page is written, your edits stay staged, and the cursor lands in the box at fault. “The callsign box holds the callsign alone…”, “A packet SSID such as -7 is not an FSQ suffix…”, “AX1200 carries at most six letters or digits in a callsign…”: each one names the box the thing belongs in. An empty callsign is the one exception — it is a question you have not answered yet, not a mistake, so it does not hold up saving your audio devices; it is refused at Start, where it matters.

Portable calls: which side of the slash
A suffix is supported and a prefix is not. W4IJG/P and W4IJG/CRB/P are fine — the callsign is still W4IJG and the tag rides after it on FSQ and JG25. VE2/W4IJG is not: the part before the slash is what AX.25 has to carry as an address, and it has to be a legal one. If you operate that way, set the callsign your packet frames should bear and put the rest in the suffix.

Whatever you set, that whole thing is “you”. The identity check is over the whole callsign, everywhere the program has to decide whether a message is yours: Chats, the Channel page, the Network map, Mail, Files and the relay refusals all agree with each other and with what the radio put on the air. So a message for W4IJG-2 reaches W4IJG-2 and not the operator's other station, a route through yourself is still recognised as yourself, and two stations sharing a callsign on one bench do not read each other's traffic as their own.

The rest of the card:

BoxWhat it doesDefault
Location (sent when asked)Free text — Anytown AA00, a grid square, a town. Sent word for word, on any waveform, to a station that uses Actions → Ask where they are (QTH) on you, and only while Answer questions automatically (Automatic replies) is on. Anyone can ask, so put nothing in it you would not say on the air.Empty
Station messageFree text — monitoring — leave a message. Sent the same way, to a station that uses Actions → Ask what's new (QTC).Empty

Known callsigns

The Known callsigns card: a keep-days list, an empty roster table, and Add, Remove, Pin or unpin, Clear expired, Import and Export buttons.
Settings → Known callsigns (advanced), with an empty roster: the keep-days list above, the six buttons below.

A roster of callsigns your station has verified. It exists for one reason: when a damaged FSQ message arrives, an exact match with a name on this list lets OpenJSQ put the message in front of you for review instead of dropping it. A match never authorizes an automatic action — nothing is answered, relayed or carried because a callsign is on the list. Only FSQ learns callsigns, so while AX1200 or JG25 is selected a note on the card says the list is kept but does not change.

To work with the list:

  1. Choose Stations heard in the list on the left of Settings; the Known callsigns card is there, and Keep unpinned learned callsigns is under its More options.
  2. To add one by hand, press Add, type the callsign and press OK. A name that is not a valid FSQ callsign is refused with Enter a valid FSQ callsign.
  3. To remove, pin or unpin one, click its row first, then press Remove or Pin / unpin. A callsign you added yourself is always kept, so Pin / unpin acts only on learned ones.
  4. Press Save & restart radio. List changes are staged like every other setting.
ControlWhat it doesDefault
Keep unpinned learned callsignsHow long a callsign the station worked out for itself stays on the list: 30, 60, 90 or 180 days. Callsigns you typed in, and any you pinned, are kept regardless.60 days
The listFour columns: Callsign; Source (Added by you, Learned (checksum verified) — heard in a message whose whole-message checksum passed — or Learned); Last validated (hover for the exact time); Pinned (Yes/No).
Add / RemoveAdd one callsign by hand, or remove the selected row.
Pin / unpinA pinned learned callsign is never aged out.
Clear expiredThe one button that actually removes learned, unpinned callsigns older than Keep unpinned learned callsigns. Nothing is deleted behind your back.
Import / ExportImport reads a text file of callsigns separated by spaces, commas, semicolons or new lines and adds each as Added by you. Export writes every callsign on the list, one per line, to a text file (it offers openfsq-known-callsigns.txt).

Automatic replies

Settings → Automatic replies card.
Settings → Automatic replies: what your station answers, and how often you may ask a group.

What your station answers by itself, on all three waveforms, when another station asks. Every automatic transmission appears in the conversation stream, and each answer goes back on the waveform it was asked on. Answers on a waveform beside the selected one also depend on Multi-receive and the band rule (section 16). Automatic answers share one airtime allowance with repeating; carrying for others has an allowance of its own (both in Settings → Relaying, advanced), and Net mode holds them all (section 8).

To change what your station answers:

  1. Open Settings and find Automatic replies.
  2. The first row is the master switch. Leave Answer questions automatically (all waveforms) on Automatically unless you want a station that never answers anything; Never silences every answer on the card; the group, heard-list and software answers below also stop.
  3. Choose each of the other answers. The two that say more than I hear you — who you have heard, and what software you run — are separate choices.
  4. Press Save & restart radio.
ControlWhat it doesDefault
Answer questions automatically (all waveforms)Automatically or Never. When another station asks for your signal report, location, news, who you hear or what software you run, the answer goes out without asking you. On FSQ this must also be on for your station to carry other stations' traffic. It is not Unasked signal reports below.Automatically
Answer group signal report requestsWhen a station asks a group you have joined for a signal report, answer it. Each member answers once, after its own short delay so the answers do not collide, and only while the first row is on.Automatically
Limit group signal report requests to one per group everyHow often you may ask the same group: No limit, 1, 2, 5, 10, 15 or 30 minutes. Every member answers each request, so each one costs the channel an answer from every member. On FSQ a member treats the same question to the same group within 45 seconds as a repeat. Applies as soon as you save.5 minutes
Answer "who have you heard"When a station asks who you have heard, send the callsigns with when and how well you heard them. It tells anyone who asks who is on the air near you, so choose Never if you would rather not. It is on by default, for a new station and in every Station style; a station that already chose keeps its choice. With it off, JG25 also stops offering a heard list when another station asks what yours can do. A change applies at once.Automatically
Answer "what software"When a station asks, say OpenJSQ and its version. This is the program-and-version line another OpenJSQ station sees at the top of its Ask what they support answer (section 9), and with Never it is left out on every waveform; on FSQ the same answer is also how two OpenJSQ stations find each other's extra speeds, so leave it on unless you have a reason.Automatically
Unasked signal reports (AX1200 only) (advanced)Send or Never. When a packet addressed to you arrives — chat or mail, not files, acknowledgements, capability traffic or station actions — your station sends that station a signal report of how it heard the packet, although nobody asked. Never on the APRS profile, and never over a KISS TNC link, which has no receiver of its own to measure with. It does not decide whether you answer Ask for a signal report; that is the first row.Never (new profile; a saved choice is kept)
Unasked reports to one station at most every (advanced)The least time between two unasked reports to the same station, 5 to 3600 s. Greyed while the row above is Never, and on the APRS profile.30 s

Relaying

The Relaying card with advanced settings shown: carry for other stations, hops, answers through a relay, letting others relay, repeat messages for, the stations that may ask, echo interval, same-text window, longest message, the budget choice, Automatic airtime (2 min in any 10) and Relay forwarding (3 min in any 10) each with an Unlimited box, Automatic traffic on HF set to Follow US 97.221, and a Right now summary.
Settings → Relaying, advanced settings shown: what the station carries, the repeat (echo) limits, the HF rule, and under them a Right now summary of what each waveform will do once the radio is started.

Everything about passing traffic along, and about letting other stations pass yours, on one card. Every row applies the moment you change it — there is no Save, the radio keeps running, and it takes effect on the selected waveform and the two beside it. Right now at the foot of the card says what each waveform is doing.

Since 1.0.7 a new station carries other stations' messages and repeats them by default. A new install, a profile made with Profiles → New, and a profile started with --instance NEW --callsign X all start with Carry messages for other stations on for all waveforms and Repeat messages for on Everyone. The setup wizard's page How should your station behave on its own? shows both as ticked boxes (Carry other stations' messages and Repeat messages other stations ask you to repeat); unticking either there, or using this card, turns it off. An upgraded station keeps exactly its saved choice for carrying, and is asked the repeat question once. The airtime budget, the hop and rate limits and the HF rules bound what other stations can make yours send.

To change what your station carries or repeats:

  1. Open Settings and find Relaying. Open the card's More options to see the hop limit, the four repeat limits and the two airtime allowances.
  2. Set Carry messages for other stations: Off, All waveforms, or Some waveforms, which shows FSQ, JG25 and AX1200 boxes.
  3. Set Repeat messages for to Nobody, These stations (then type their callsigns in Stations that may ask) or Everyone.
  4. If you are on HF, choose Automatic traffic on HF.
  5. Read Right now. A waveform that is not carrying says why.
ControlWhat it doesDefault
Carry messages for other stationsOff, All waveforms or Some waveforms (then tick FSQ, JG25, AX1200). Your station retransmits for stations that cannot hear each other, under your callsign, so the network reaches past one hop. On AX1200 it carries only what a station sent through yours (a route via your callsign); it never repeats what it merely overhears, so stations that hear each other are not sent everything twice. When you turn carrying on or off, AX1200 and JG25 each tell the stations around them once whether you now relay; in Net mode or under the HF hold that waits until the hold lifts.All waveforms (new station); an upgraded station keeps what it had
Relay a message only if it has made at most … hops (advanced)1 to 8. The most hops a frame may already have taken when you forward it, on AX1200 and on JG25. A change applies at once, and your capability record advertises it. It is not the length of a route you type: FSQ carries a chain of any length (relays for others (chains), the sender sets the route), and AX1200 and JG25 carry one named relay.2 hops
Answer questions that reach you through a relayYes or No, on FSQ, AX1200 and JG25. With No, a question another station carried to you (a signal report, your heard list, a mailbox note) is left unanswered; questions asked of you directly are still answered.Yes
Let other stations relay my trafficThe other direction: whether anybody may carry yours. Yes: a repeater that hears you may retransmit what you send, which is how a station too far away to hear you directly hears you at all. No: every message you start goes out carrying a "do not relay" mark and a repeater that understands the mark stays quiet; stations that hear you directly still receive and answer you and still store your mailbox drops. A route you chose always goes: a named relay (the Route chip, a VIA;DEST line, an AX.25 digipeater path) is sent unmarked. It is not privacy, and an older station that has never heard of the mark will repeat you anyway. The chip beside the Route chip in a conversation's header (Relayable ▾ / Local only ▾) can override it for one conversation (Keeping one conversation off the repeaters).Yes
Repeat messages forNobody, These stations or Everyone. Another station can ask yours to repeat a message to everyone — for example a net check-in carried by your hilltop station. Your station sends the text unchanged, under your callsign, as an Allcall, on the waveform it was asked on and at the asker's speed (on JG25, in the asker's mode and FEC). fldigi stations ask with ! or ~ followed by the text and are answered exactly as fldigi answers; OpenJSQ stations use Actions → Ask them to repeat my message…. Echoes are automatic traffic: Net mode, the HF rules and the airtime budget apply. The Channel page shows Repeated for W4XYZ, and your capability record says repeats for others while this is not Nobody.Everyone
Stations that may askActive only for These stations: callsigns separated by spaces or commas, applied when you leave the box. A callsign without an SSID matches it with any SSID; with nobody listed, nobody may ask.Empty
One echo per station every (advanced)The least time between two echoes for the same station, 0 to 3600 s; Off (0) means no spacing. A station asking sooner is answered busy.30 s
Don't repeat the same text from the same station within (advanced)0 to 120 minutes; Off (0) means every request is repeated, retries included. The same text inside the window is answered already repeated.5 min
Longest message to repeat (advanced)One FSQ transmission (256 characters; longer is answered too long) or No limit (up to the app's longest message, which may take several transmissions).One FSQ transmission
Count echoes against the automatic airtime budget (advanced)Yes: echoes share the two-minute automatic budget with every other automatic transmission, and wait or are dropped when it is spent. No: neither counted nor held by it.Yes
Automatic airtime (advanced)At most so many minutes of transmitting in any so many minutes for everything your station sends by itself because another station asked: answers to questions, refusals, capability answers, mail custody and receipts, and echoes when they count. When it is spent those wait or are dropped until it refills; what you send yourself is never held. One allowance per radio, shared by FSQ, AX1200 and JG25. 1 to 60 minutes in a window of 1 to 60; Unlimited (I'm responsible) removes the limit. It is a software safeguard: you are responsible for your station, and the automatic-control rules of your licence (in the US, Part 97) apply whatever is set here.2 min in any 10
Relay forwarding (advanced)The same, for messages your station carries for other stations, counted apart from the automatic airtime so relaying a busy line does not use up your own answers. When it is spent, a station that asks yours to carry a message is told relay busy until it refills; that answer counts against the automatic airtime, so it is not sent while that is used up too. Unlimited (I'm responsible) as above.3 min in any 10
Automatic traffic on HFWhat your station may send on its own once the radio is taken to be on HF (rig control reports an HF frequency or a non-FM mode, or Radio → Rig control → Without rig control, my radio is on says An HF band). Follow US §97.221: inside a §97.221(b) automatic-control sub-band, with rig control reporting the frequency, automatic FSQ answers, echoes and relaying go at any FSQ speed; elsewhere on HF, or with no current frequency, automatic answers and echoes go only at the narrow FSQ speeds (500 Hz or less) and nothing is relayed for others. The whole signal has to fit the sub-band, so a dial near its edge counts as outside; in AM, DSB or a mode that is not USB or LSB the narrow rule stays. AX1200 and JG25 send nothing automatically on HF. No restriction (I'm responsible for my station's rules): automatic traffic on HF behaves as on FM — for operators outside the US, or who know their own situation. It applies at once. A software safeguard, not legal advice: you are responsible for your station, and nothing you send yourself is ever limited here (Automatic answers off FM).Follow US §97.221
Right nowOne line per waveform: FSQ: carrying, off, or why it is paused — this copy may not transmit; receive only; Net mode; Other waveforms is Listen only (or Off); the APRS profile or a digipeater path (AX1200); the radio taken to be on HF, with what it was decided from; FSQ needing automatic answers (the line calls the setting Answer queries; it is Answer questions automatically in Settings → Automatic replies); the relay forwarding allowance used up for now. Re-read every few seconds while the page is open.

Repeating has refusals in plain words, never silence: not repeating messages (Nobody, or the asker is not on your list), not repeating commands, asked too soon, wait a little (you asked again inside the spacing), busy (no room to carry it just now), too long or already repeated. A request that came through a relay is not repeated, and an echo is never itself repeated. Nor is text an fldigi station would obey as a command: fldigi reads the first word of undirected text as an address, so allcall#[f]x would make every fldigi station in earshot write a file. Text whose first word is a callsign, allcall or cqcqcq followed straight away by a command character is answered not repeating commands; W4XYZ: check-in is fine. fldigi stations see an echo in their monitor pane, not their chat.

Carrying has refusals in words too. A station asked to carry a message that it does not carry tells the station that sent it, in one short message: not relayed to N4UZZ: relay busy when its relay forwarding allowance is spent (or, on FSQ, its queue is full or the message waited too long, or the message is a question and the allowance has no room left for its answer), or not relayed to N4UZZ: not relaying when it has stopped carrying for others. fldigi and FSQCall show it as an ordinary message; OpenJSQ also marks the message you sent through that relay Not relayed, with the reason, instead of leaving it Sent to relay. Only a station named as the relay answers this way; one that merely overheard your message says nothing. Like any automatic answer it is held by Net mode and by Answer questions automatically set to Never, counts against the automatic airtime (so with that used up as well, nobody is told), and a station sending many messages at once hears it at most once every 10 seconds.

A relay that says nothing. A relay does not carry a question it could read only by guessing where its frame started; it notes that in its own Channel log and sends nothing. On FSQ, when you ask a station something through one relay and hear nothing at all from the relay for about 25 seconds at FSQ-6 (longer at the slower speeds), OpenJSQ sends the question once more. If the relay stays silent again, the row says Not relayed: KK4IB-1 was not heard passing it on. and your next question goes. If anything was heard on the air after your question, even a signal too weak to read, it is not sent again and waits the full time: the relay may have passed it on.

The relay's turn to pass it on. After anything you send through a relay on FSQ, your station waits about 2.5 seconds at FSQ-6 (3.2 at FSQ-2) before it sends again, and longer while it hears a signal on any FSQ frequency, so the relay is not passing your message on when your next one starts. That longer wait ends after about the time the relay needs to pass the message on, even if the signal does not stop. Meanwhile the status bar says Transmit waiting for the relay to finish passing your message on.

Mail

The Mail card: accept stored messages, hold letters for other stations, give up after, and tell a station it has mail at most.
Settings → Mail: the mailbox policy, holding other stations' letters, the give-up time and the notice rate.

Whether your station will carry letters for other stations, and how long it holds them. The letters you write with New mail… are always held and delivered by your own station whatever you set here; this card is about carrying other stations' letters. What you are holding right now is under Inbox → Holding (section 12).

To change it:

  1. Open Settings → Mail.
  2. Accept messages left for you (mailbox): From anyone stores the classic # mailbox notes other stations leave for you; Nobody refuses them.
  3. Hold letters for other stations: Yes to act as a community mailbox, No to hold only your own letters.
  4. Open the card's More options, then set Give up on undelivered letters after (how long a held letter waits before the sender is told it expired) and Tell a station it has mail at most (how often the I am holding mail for you notice may repeat).
  5. Press Save & restart radio. Nothing on this card takes effect until you do.
  6. Check what your station is holding under Inbox → Holding (section 12).
ControlWhat it doesDefault
Accept messages left for you (mailbox)From anyone or Nobody: whether the classic # mailbox notes other stations leave for you are stored.From anyone
Hold letters for other stationsThe community-mailbox switch. Yes — act as a community mailbox: another station can leave a letter here for a third station, and yours announces and delivers it when the recipient is next heard. A store-and-forward network needs stations willing to carry mail; a quota bounds how much yours holds. No — hold only my own letters carries nothing for anyone else.Yes
Give up on undelivered letters after (advanced)12 hours, 1, 3, 7, 14 or 30 days. After this the sender is told the letter expired. It applies to letters your station is holding: your own outgoing mail and anything left for a third station. It is a ceiling: a letter that arrived with a shorter deadline of its own keeps it.7 days
Tell a station it has mail at most (advanced)Every 30 seconds, 1, 2, 5 or 15 minutes. It is not how often mail is delivered — a station that answers gets its letter at once; it is how often the I am holding mail for you notice may repeat, which is airtime everyone on the channel pays for. Shorter reaches a station that is only briefly on the air; longer leaves more of the channel to everyone else.Every 2 minutes

Files

The Files card: accept files from other stations, the size limits, and how many files at once for receiving, per station and sending.
Settings → Files, advanced settings shown. The 1.0.7 publish received files row is on the Files page, in the Your shared files card.

One set of file settings for every waveform: FSQ, JG25 and AX1200 all obey this card, so a switch or limit set here cannot differ between radios. It decides what your station accepts. What it offers to others is the Files page (Share files, section 11), and what to do with files other stations send you — including publishing them straight into your shared folder — is the Publish files received from choice on that page. Received files land in the Incoming folder (section 21).

To change it:

  1. Open Settings → Files.
  2. Tick or untick Accept files from other stations. It is one switch for FSQ, JG25 and AX1200.
  3. For the limits, open the card's More options, then set the File size limits and Files at once boxes.
  4. Press Save & restart radio. The switch needs this too, not only the limits: it takes effect when the radio next starts.
  5. To publish what you receive, go to the Files page instead: Files → Share files → Publish files received from (section 11).

A transfer past a limit is refused rather than truncated, and the other station is told why.

ControlWhat it doesDefault
Incoming files → Accept files from other stationsOne switch for FSQ, JG25 and AX1200. Off, an offered file is refused (the sender is told), your own sending is not affected, and your station's capability record stops saying files. AX1200's APRS profile carries no files. If you had files off on the old AX1200 card, FSQ and JG25 now refuse them too.On
File size limits → all incoming (advanced)The most space all the files being received at once may reserve, 1 to 4096 MB, on every waveform.64 MB
File size limits → all outgoing (AX1200 only) (advanced)The most all the files waiting to be sent may add up to, 1 to 4096 MB; no single file larger than this goes out on AX1200 either. FSQ and JG25 have no such limit. The shared folder's own limit, on every waveform, is Largest file to serve under Shared files.64 MB
Files at once → receiving (advanced)How many files may be received at once, 1 to 128.16
Files at once → from one station (advanced)How many of those may come from one station, 1 to 32.4
Files at once → sending (AX1200 only) (advanced)How many files may wait to be sent at once, 1 to 128. FSQ and JG25 send one transfer at a time per station.16

AX1200's own link tuning — file error correction and transfer pacing — stays on the Radio page's AX1200 card. Values you saved on that card carry over.

Shared files

The Shared files card: a read-only summary line with Manage in Files, and the limits for subfolders, largest file, per-day total, ask interval and approval timeout.
Settings → Shared files: the summary at the top is the Files page's own state, and the five limits are the numbers you set once.

The switch is not here. Sharing on/off, the folder, who may browse, the allow-list, serve-automatically and Publish files received from all live on the Files page — one home for the whole file service, so no control exists in two places and can be set two ways. What this card carries is a read-only summary in the same words the Files page uses (“File sharing: On · 6 files offered · folder …”), a Manage in Files button that takes you there, and, under the card's More options, the five technical limits below. Section 11 covers the whole service, including which limit protects the whole channel rather than just you.

To check it or change a limit:

  1. Open Settings → Shared files and read the summary line at the top: it is the same state the Files page shows.
  2. Sharing on or off, the folder, who may browse and publishing are not set here: press Manage in Files to go to them.
  3. For the limits, open the card's More options and set the five rows in the table below.
  4. Press Save & restart radio.
ControlWhat it doesDefault
Manage in FilesOpens the Files page, where the switch and the folder are.
Include subfolders (advanced)Yes or No: whether the listing includes the shared folder's subfolders. Files published from Publish files received from go into the Received subfolder; if subfolders are not served they go straight into the shared folder instead, because stations could not browse a subfolder.No
Largest file to serve (advanced)64 KB, 256 KB, 1 MB, 10 MB or Unlimited. On every waveform, the largest file your station will send when another station asks to download it; a larger file in the folder is refused and flagged in the Files page. Files you send yourself are not held to it. Unlimited is a real choice — your licence, your airtime — but a 10 MB file is hours of channel time.256 KB
Serve at most, per day (advanced)Unlimited, 1, 5 or 20 MB a day; and at most 20 files. Unlimited lifts both.1 MB, 20 files
Each station may ask every (advanced)10, 30 or 60 seconds, or No limit. The one limit here that protects everyone on frequency, not just you: it bounds how often each station may ask, and the airtime an answer spends is shared. Removing it is a courtesy decision.10 s
Approval timeout (advanced)1, 2, 5 or 10 minutes: how long an Ask me first question waits for you before the station is refused. The asker was told it is waiting for your approval meanwhile.2 minutes

Stations download by number from the listing, never by name, so a request cannot reach outside the folder, and every ask and every answer is recorded on the Files page under Sharing activity. Who may browse, the size limit and the daily budget apply to published files as to any other.

Presence

The Presence card: the announcement switch, status text, and the recent-for and remove-after horizons for the heard list.
Settings → Presence, advanced settings shown: the announcement, the status text and the two heard-list horizons.

One schedule for every waveform, announced on the selected one only (the receivers beside it never announce). It is how other stations learn that you are on the air. AX1200 carries the status in its beacon, JG25 in its presence announcement, and FSQ sends it as a status-bearing automatic Allcall line; clear the status to get the classic bare FSQ sounding. Net mode holds all of them. Announce now on the Radio page's Live status tab, or Actions ▾ → Announce my presence now in the Allcall conversation, sends one at once on whichever waveform runs, whatever the schedule says: on FSQ your status line, or the bare sounding when the status is empty. Net mode and the schedule being Off don't hold it. It still waits for a clear channel, and the next scheduled announcement counts from it. While one is still waiting to go, the button is greyed, so a second press cannot send a second copy.

When the radio starts the rule is the same on every waveform:

To start announcing:

  1. Open Settings → Presence.
  2. Pick an interval in Announce my presence. Nothing announces you until you do (it ships Off), and not Every minute (bench) on a shared channel: that entry is for testing on a cable.
  3. Edit Presence status, or clear it to send FSQ's classic bare sounding.
  4. For the heard list, open the card's More options and set Consider stations recent for and Remove stations from heard list after.
  5. Press Save & restart radio. If you changed the status, OpenJSQ asks Announce the new status now? Announce sends it at once; Not now leaves it for your next announcement.
  6. To send one announcement now, open the Radio page, its Live status tab, and press Announce now, or in Chats open Allcall and choose Actions ▾ → Announce my presence now. Net mode holds the scheduled announcements, not this one.
ControlWhat it doesDefault
Announce my presenceOff, Every 5 minutes, 10, 30 minutes or Every hour, and an Every minute (bench) entry that exists for testing on a cable and is far too often for a shared channel.Off
Presence statusThe text sent with the announcement, up to 128 characters. Clearing it makes FSQ send the classic bare sounding.available
Consider stations recent for (advanced)10 or 30 minutes, 1, 2, 4 or 8 hours, or Never. How long after this receiver last heard a station it still counts as recent: listed under Recent in Stations Heard, drawn in colour on the Network map (section 13), and not marked Inactive in the conversation header. Older stations stay listed as Inactive; nothing is removed. Never keeps every heard station recent. Applies as soon as you save.2 hours
Remove stations from heard list after (advanced)1, 6 or 24 hours, 7 days, or Never. This one actually removes the station from Stations Heard and from the suggestions you get when addressing a message or choosing who carries a letter. It deletes nothing else: conversations, files, mail and Channel history stay, and the Network map keeps the station as grey history. Takes effect when the radio next starts.24 hours

Chats

The Chats card with its two lists: show Allcall in the sender's conversation, and default chat delivery.
Settings → Chats: two choices about how conversations behave.

Two choices about how conversations behave.

To change them:

  1. Open Settings → Chats.
  2. Also show incoming Allcall chats in the sender's conversation: Off or On.
  3. Default chat delivery: Live or Verified.
  4. Press Save & restart radio.
  5. The Live / Verified chip on a conversation's compose row overrides the default for that conversation.
ControlWhat it doesDefault
Also show incoming Allcall chats in the sender's conversationOff keeps incoming Allcall chat only in the Allcall conversation. On adds the same saved message to the sender's own conversation too; it does not send or store a second copy, and replies still go to the conversation you send them from.Off
Default chat deliveryLive sends and moves on; Verified waits for the other station to confirm each message. It is the delivery a new conversation starts with, for every waveform; JG25 and AX1200 send verified chat, and FSQ, which has no verified mode, uses its delivery receipts either way. The Live / Verified chip on the compose row always overrides it for that conversation. Allcall, groups and relayed messages always go Live.Live

Groups

The Groups card on Settings: a box for subscribed group names starting with @ or #, applied at once.
Groups: the group names this station listens for. Each must start with @ or #.

Subscribed groups is its own card in Settings → Chats & groups, because which groups you listen to is how your station behaves, not hardware, and one group list serves every waveform. It carries an Applies at once chip: like Relaying, it is never staged and needs no Save. Enter one per line or comma-separated; group names must begin with @ or #. The larger box is meant to be audited at a glance rather than treated as a hidden protocol setting.

  1. Type the group's name in Subscribed groups: @emcomm, #skywarn. After the @ or #, letters, digits, hyphen, underscore and dot are allowed. Capitals do not matter.
  2. Read the line under the box. It says Listening to @emcomm, #skywarn. for every name it took; Ignored: … for a name that is not a group address; and, for a name that works on AX1200 and JG25 but is too long for FSQ once FSQ's escaping is added, that it cannot be carried on FSQ. Shorten such a name to use it everywhere. With the box empty it reads Not subscribed to any group.
  3. That is all. The change is saved and takes effect at once, without restarting the radio, on the waveform you selected and on the receivers running beside it, and each group gets its own conversation on the Chats page. Typing a group into Chats' New conversation joins it by adding it to this box, and removing a name here leaves the group.

Appearance

The Appearance card: Colours, Text size and a live sample message bubble.
Settings → Appearance: colours and text size, applied the instant you choose, with a sample bubble to judge them by.

How the program looks. Both rows apply the instant you choose — no restart and no Save — and are about reading the screen, not the radio.

To change it:

  1. Open Settings → Appearance.
  2. Colours: Dark or Light.
  3. Text size: Normal, Large or Extra Large, judging it by the sample message beside the box.
  4. That is all: both apply at once, and there is no Save to press.
ControlWhat it doesDefault
ColoursDark suits a shack at 3am; Light suits a bright room, a projector, or a laptop outdoors. Kept per profile.Dark
Text sizeNormal, Large or Extra Large, with a live sample beside the box — a real received message in the selected waveform's own footer, so you see what you will actually read. It enlarges the text you read (messages, mail, channel traffic, the explanations on these pages); the meters, the navigation rail and the diagnostic cards keep their size so nothing is pushed off the window. It belongs to the computer, not the profile, so a large-print setting follows you into every profile.Normal

Alerts

The Alerts card: a sound switch, the output device list, Test sound and a warning about alerts on the transmit device.
Settings → Alerts: the chime, the device it plays through and Test sound. The note under the list explains why an alert must not play on the device that carries your transmit audio.

The chime that tells you a message has arrived.

To set it up:

  1. Open Settings → Alerts.
  2. Sound when a message arrives: On (or Off for none).
  3. Play alert sounds through: your speakers or System default output, never the radio's sound card.
  4. Press Test sound and read the Playing through … line under it to see which device made the sound (No tone was played means nothing could).
  5. Press Save & restart radio.
ControlWhat it doesDefault
Sound when a message arrivesOn or Off.On
Play alert sounds throughThe sound card the arrival chime and the wake alarm come out of. Point it at your speakers, never at the radio's sound card: OpenJSQ detects that conflict and silences alerts rather than transmitting your chime, and says so in the status bar, but naming the right device is better. The list starts with two entries that are not devices: System default output, and Silent (no sound) — the way to keep the chime switched on while producing no sound at all, which is what you want on a machine sharing a room with the radio.System default output
Test soundPlays the arrival chime through whatever is selected right now, before you save, and a line under it names the device that played it (Playing through …). If nothing can make a sound it says No tone was played. DirectSound cannot play a sound on its own, so the same card is used through another driver and the line says so.

Files & configuration

The Files and configuration card: the folder for files with Browse and Open, and the settings file path with Open folder.
Settings → Files & configuration (advanced): where this profile's files live and where its settings file is. The folders in this picture are throwaway ones for the screenshot.

Where this profile's files live and where its settings are. Everything OpenJSQ reads or writes on your behalf lives under the folder named here: the mailbox files other stations can fetch, files they leave for you, and whatever you save out of a chat (section 21).

To move the files folder:

  1. Choose About & storage in the list on the left of Settings; the card is there.
  2. Press Browse… beside Folder for files and choose a folder, or leave the box empty for the default.
  3. Press Save & restart radio.
  4. To check, Open shows the folder in your file manager, and Open folder beside Settings file shows where openfsq.ini is.
ControlWhat it does
Folder for files with Browse… and OpenThe shared base folder. Each profile keeps its own folder inside it, so the box holds the base rather than this profile's own folder. Leave it empty for the default (Documents\OpenJSQ). Open shows the folder in your file manager.
Settings file with Open folderThe path of the profile's openfsq.ini, selectable so you can copy it, and a button that opens its folder. A note says whether the install is portable (the settings sit beside the program, so the whole station copies to another machine as one folder) or the program's folder is not writable and the settings are kept in your user account.

About

The About card: version and build, credits, and the protocol specifications button.
Settings → About: the version and build, what JSQ and OpenJSQ are, the credits and the button for the published protocol specifications.

The last card, and the only one that is not a setting: it is where the program says what it is, and where you get the two numbers a bug report needs. It opens with OpenJSQ version (build commit), then by Jerome Goddard II (W4IJG). The card is basic rather than advanced, and every word of it is selectable with the mouse — both on purpose: an operator hunting the version to quote should not have to find a toggle first, and a commit hash retyped by hand is how the wrong hash gets reported. To quote it, drag across the version line, copy, and paste.

To copy the version for a bug report:

  1. Open Settings and scroll to the end: About is the last card.
  2. Drag across the version line, OpenJSQ with its version and the build commit.
  3. Press Ctrl+C.
  4. Paste it into the bug report, with the build commit.

Under that it says what the program is. JSQ is a modem-agnostic transport — messaging, file transfer, custody mail and network mapping — and OpenJSQ is its implementation, carrying those services over FSQ, JG25 and AX1200. Then the credit the program makes for the mode it speaks — FSQ was designed by Murray Greenman ZL1BPU and Con Wassilieff ZL2AFP. — the thanks to the hams who put the beta on the air — Thanks to Otto (N4UZZ), Sparks (KK4IB), Mac (KO4UWY) and Charles (KD4AXP) for their testing and suggestions. — the copyright line, Copyright © 2026 Jerome Goddard II (W4IJG). All rights reserved., a line saying that use is governed by the OpenJSQ licence agreement (EULA) — free for personal and nonprofit use — and one line on the licence: the program is proprietary, but every waveform and protocol it transmits is publicly documented and anyone may identify, monitor and implement it. The Protocol specifications (openjsq.com/specs) button opens the published specifications in your web browser, and Licence agreement (EULA) opens the agreement: the EULA.txt installed beside the program, or the copy at openjsq.com/eula when that file is not there. Section 25 says the same at a little more length.

20. Profiles: one program, many stations ↑ contents

The profile menu: Home, KK4IB ticked, and Manage profiles.
The profile menu — separate stations on one computer.

A profile is one theater of operations — the shack, a POTA kit, an ARES deployment. Each one keeps its own callsign and radio setup, its own conversations, mail, network map, and files, and nothing crosses between them. If you operate in more than one situation, this is the feature that stops the situations contaminating each other.

What a profile owns, and what it doesn't

Per profileShared by the whole computer
Callsign and station identity · radio and audio setup · PTT and rig control · conversations · mail and Holding · file history · network map · themeText size — so a large-print setting follows you into every profile instead of needing to be set again in each one.

Working with profiles

Two things people get wrong

One profile, one window
Two copies of OpenJSQ may run side by side, but never on the same profile — two programs writing one profile's databases would corrupt them. OpenJSQ refuses at startup with “The profile … is already open in another OpenJSQ window.” Give the second window its own profile. (If you deliberately run two stations at once, start the second with --instance NAME, which also stamps the name into the window title so you can tell them apart on the taskbar.)
The map does not follow you into the field
Switching profiles clears the Network graph on purpose. A topology picture built at the shack — full of stations a base antenna hears — would be actively misleading in a field profile on a whip, and a map you cannot trust is worse than no map. The new profile's picture refills from what it hears.

A profile is a folder

Everything a profile owns lives in one directory, which makes the whole station portable: copy it to the field laptop and you have the same setup, the same mail, and the same history. Settings → Files & configuration (under its More options) names it: the Settings file row prints the profile's openfsq.ini, and the Open folder button beside it opens the profile directory. It also makes backup obvious — copy the folder before a deployment, and a mistake in the field costs you nothing at home.

21. Where your files live on disk ↑ contents

WhatWhere
Your files folderDocuments\OpenJSQ\<profile-id> by default — the id is the profile's name in lower case with spaces turned into hyphens, so Field Day lives in field-day — change the base under Settings → Files & configuration → Folder for files. An older Documents\OpenFSQ in that default place is renamed to OpenJSQ on first start, and the move is noted in migration-log.txt inside it.
Newly received files, any waveform…\incoming. FSQ, AX1200 and JG25 share one destination because “what arrived?” matters more than which modem carried it — except what the program receives for itself, below, and files you have chosen to publish.
Files published to your shared folder<your shared folder>\Received, when the Files page's Publish files received from is These stations or Everyone and the sender qualifies: the finished file is moved out of incoming, keeping the name it arrived under (a name already there becomes report-1.txt, never an overwrite). If Include subfolders is No in Settings → Shared files it goes straight into the shared folder instead. Files you asked for yourself, mail attachments, letters, forms, shared-file lists and partial files are never published. With no shared folder chosen, or one that cannot be written, the file stays in incoming and the status bar says so. The Files row follows the file (Open folder opens the shared folder) and its Location tooltip says Published to shared folder (section 11).
What the program receives for itself<profile data folder>\internal, in mail, listings, forms, staging and transfers: letter bodies, shared-files listings, forms and notes that came as files, your outgoing staging, and the file service's partial files and receipts. Each is deleted once it has been read and stored, and leftovers are swept after a day (section 11).
Mailbox notes…\mailbox for the classic flat-file mailbox material owned by that profile.
Deleted file material…\deleted where applicable; the Deleted page is the operator-facing recycle bin.
This guide<data folder>\help\OpenJSQ_Help.html, written fresh from the running program each time you press Help or F1, so it always describes the build that wrote it.
What other stations offercapability_records.jsonl, in the profile's data folder beside the Channel history: each station's capability record on each waveform, and this station's own change counter, kept across restarts. It is small, and deleting it only makes OpenJSQ ask again.
Settings & historyInside the active profile's data folder. Settings → Files & configuration shows the exact settings path (under its More options). A portable install — a file named openjsq-portable.txt beside the program, in a folder that takes writes — keeps everything beside the program instead.
After upgrading from an older build
OpenJSQ does not move old received files out of the former fsq and ax1200 folders, because historical transfer rows already point to those paths. The first radio start after the change shows a one-time notice. New arrivals go to incoming; old files stay exactly where the old build put them.

22. Troubleshooting ↑ contents

SymptomWhat to check
The RX meter never movesThe wizard's own words: the wrong input device is selected, the radio's volume is down, or the cable isn't connected. Radio → Audio input → pick the interface, press Refresh if it was plugged in late. Windows tip: check the device isn't muted in the sound control panel.
The radio won't startThe footer status line names the reason. “Could not start: set your callsign in Settings first.” means exactly that, on every waveform. Could not start: followed by a sentence about the callsign, the suffix or the SSID means the saved identity is not something this waveform can transmit — Settings → Station, and the note under the three boxes says which one is wrong. Could not start: followed by a device error means another program has the sound card, or it's unplugged. A card that was saved by name and is no longer connected is refused outright — Audio input '…' isn't connected. Plug it in or choose another card on the Radio page. — and the picker shows that choice as … — not connected, rather than opening whatever now holds its old position in the list. A saved card the list does not show, because it is listed under another host API such as MME, is kept as itself, [N] Name (MME), never replaced by the system default.
Settings will not save, and a line under the callsign says whyThat is the identity check, and it is doing its job at the one place the identity is typed. Nothing on the page is written when it refuses — your other edits are still staged — and the cursor is put in the box at fault. A / or a - in the Callsign box is the usual cause: /CRB belongs in the suffix box of FSQ / JG25 name (Callsign with suffix) and -7 in the AX1200 SSID list. A callsign with no digit, or longer than six characters, is not an address AX.25 can carry. An empty callsign never blocks a save — it is refused at Start radio instead.
The Station identity line is amberThe callsign, the AX1200 SSID and the FSQ / JG25 name (Same as AX1200, or the callsign with a suffix) are set in Settings → Station, and each waveform takes the part of them it can carry. The Radio page's Station identity line reads the answer back as you press the buttons. If it is amber, the saved identity is not something the selected waveform can transmit — Edit station identity… goes to the boxes. A radio that is already running is never stopped over this: the identity is checked before anything is taken down, and a refusal leaves you on the air exactly as you were.
Decodes but won't transmitPTT. The Radio page's Live status card shows the PTT state, and UNAVAILABLE: there, with the reason under it, means the keying method needs fixing — wrong serial port, or CAT keying with Backend still on None (the page warns in red).
Strong stations decode with characters missing from the middleLook at Dropouts in the Radio page's Live status card. All zeros means the sound card is keeping up and the problem is on the air. A number that climbs while you watch means the machine is not feeding the sound card in time — another program competing for it, power saving, or a machine that is simply busy. Press Reset counters, change one thing, and watch whether it climbs again.
Everyone says you're splatteringTransmit level, for the waveform they heard: each has its own drive slider. On FSQ, Tune into a dummy load and back FSQ drive off until ALC barely moves; on AX1200 and JG25, back that waveform's drive off until the deviation is normal. If the hint line says Clipping, it's telling you the same thing.
Messages sit at “Queued”The channel really is busy — or the busy detector is being touchy. The status bar will suggest it, calling it the Squelch margin: raise FSQ busy margin a little (Radio → Receive → Receivers), or set it to 0 to disable busy detection entirely. Per-slot states are on the Channel page. It may also be waiting while an automatic answer on another waveform holds the transmitter (section 16), or because net mode is on, which holds file traffic while it lasts. A request that reads Waiting for N4UZZ's answer. is taking turns with the station you asked: through a relay you can't hear its answer coming, and asking again on top of it would lose both. It goes by itself; Cancel or Stop TX takes it back.
Alert chime got transmitted / alerts are silentOpenJSQ silences alerts when they're routed to the radio's own sound card and says so in the status bar. Point Settings → Alerts → Play alert sounds through at your actual speakers.
AX1200 file transfers keep failingRadio page → advanced → File transfer pacing: set window to 1 and the wait to 4000 ms. If the errors stop, the radios were transmitting over each other's acknowledgments — raise listen toward 500 ms and re-widen the window gradually.
Dire Wolf connects but no frames ever passAlmost always AGWPORT (8000) where KISSPORT (8001) was wanted — see section 6. A station aimed at the AGW port connects perfectly and then never passes a frame.
An external TNC hears nothing from youCheck KISS port on the Radio page. Single-radio TNCs and every handheld with one built in use port 0. See section 15: a multi-port TNC silently discards frames sent to a port with no radio on it.
The far end rejects every frame, but says the header looks perfectOn the built-in sound-card modem this is the PTT tail being shorter than your sound card's output latency: the transmitter is released while the end of the frame is still inside the sound card, so the closing flag and checksum never reach the air. Open Channel and read the AX1200 diagnostics — it prints both numbers side by side and tells you which way round they are. The fix is to raise Key-down tail (Radio page, advanced) above the reported latency.
Wide FSQ modes always lose the same charactersStart with Radio → Receive emphasis → Adaptive (recommended). Wide FSQ is sensitive to a receiver that rolls off the upper audio tones; Adaptive learns from the radio's idle audio, locks its choice during a signal, and remembers the learned slope for that radio profile. Use Manual de-emphasis correction only when you specifically need the fixed correction (including an AX1200 path); Off is right for genuinely flat audio.
A file transfer gives up having moved nothingIf OpenJSQ reports that the same block failed every round, the far station is not decoding at this speed — it is not a lost-packet problem that more retries will fix. Drop to a slower FSQ mode, or send a smaller file.
A relayed message says “unconfirmed” foreverUsually nothing is wrong. Unconfirmed means only that your station has not overheard the relay retransmitting — and most relays cannot be overheard from where you are. A relay needs no confirmation to work. Check Network → RELAY ACTIVITY on the relay's own station if you have access to it, or simply ask the recipient.
Nothing relays through your stationOpen Settings → Relaying and read Right now: it says, waveform by waveform, whether your station is carrying and, if not, why — switched off, Net mode, Listen only, the APRS profile or a digipeater path on AX1200, the radio taken to be on HF, FSQ needing automatic answers, or the relay forwarding allowance used up (stations asking are then told relay busy, unless the automatic airtime is used up too or Answer questions automatically is set to Never; the line says which). A new station carries on every waveform from the start, so if yours is not, it is an upgraded station keeping an earlier choice: turn it on here. The RELAY ACTIVITY panel on the Network page uses the same words.
Nobody is repeating my trafficThe other direction: Settings → Relaying → Let other stations relay my traffic. If that is No, everything you start carries a "do not relay" mark and well-behaved repeaters leave it alone — stations that hear you directly are unaffected, which is why this looks like "some people get my messages and some don't". Turn it back on, or send that one message through a named relay (pick a route, or type VIA;DEST text), which goes regardless.
A relayed send is refusedRead the note line; it names the reason rather than failing quietly. The usual ones: more than one hop on AX1200 or JG25 (FSQ takes chains, they do not), a station appearing twice in the route, a route ending back at you, a file over 256 KB, or a shared-folder listing — which cannot be relayed at all yet.
Serial KISS won't connect (UV-PRO)KISS TNC on, Digital Mode Enable off, radio paired; take the COM port OpenJSQ offers first — it prefers the port Windows reports as the outgoing side of the pair and never offers the incoming one, falling back to the higher-numbered port only when it cannot tell; close the radio's programming software (it holds the port); speed 9600.
“The profile … is already open in another OpenJSQ window”Two windows may not share one profile (it would corrupt the databases). Close the other window, or start this one on a different profile.
A message shows ⚠ NOT VERIFIEDNot a malfunction — the honest grade for a marginal decode. Read it; Approve if it reads right, Discard if not. If you want fewer of these, move Receive effort toward Strict.
A failure only happens on the real radioBefore reproducing it, open Channel, tick Show advanced settings, then Record diagnostics. After the failure, press Save bundle…. The ZIP ties the last ten minutes of modem-input audio to the exact Channel-history rows and session configuration, which is far more useful than a screenshot of the symptom.
OpenJSQ will not start, and says something about a beta licenceSection 2 has all seven messages and what each one means. The two most common: the file is not named exactly openjsq-beta-license.json (Windows hides the extension, so a correct-looking file may really be …json.json), or the computer's clock is wrong. Press Open Data Folder in the dialog — it opens the folder the file belongs in.
It receives beautifully and never transmits, and nothing looks wrongOn a beta build, check the title bar. A callsign mismatch deliberately does not stop the program: you get a fully working receiver with the transmitter, presence, soundings and automatic replies all silenced. Make Settings → Station → Callsign match the callsign the licence was issued to. Live status then reads Selected — receiving only: this copy may not transmit. If that is not it, check Net mode is off and see Decodes but won't transmit above.
Relaying changed after going back to 1.0.5 and returning1.0.5 has one Carry relayed traffic switch for FSQ, JG25 and relayed answers together, so when you go back to it that switch reads Yes only if all three were on here, and AX1200 reads as it was. Anything you change in 1.0.5 is taken over when you return; anything you leave alone is kept as you set it here.
Station actions get no reply, but only when a third station is relayingA known rough edge in this build, reproducible on the bench: on a channel where all three stations hear each other and one of them has AX1200 relaying on, replies to Actions ▾ queries can fail to come back — with peer capability discovery timed out or they had nothing to send against them — while ordinary chat between the same two stations keeps working. Turning the third station's relay off restores them. On a channel where every station hears every other, nobody needs to relay anyway. A repeat request is different, and Nothing to resend there is by design: it is answered only along the path the message took, so a repeat asked through a relay of a message that was sent direct (or the other way round) gets that answer.
You cannot find the shared-folder settings any moreThey moved to the Files page in 1.0.2 — Share files on the action bar, or Settings → Shared files → Manage in Files. Settings keeps only the size, budget, rate and approval-timeout limits, plus a read-only summary.
Another station's file list opens nowhereThere is no window any more. The listing lands on the Files page under Browse a station, with the station preselected. Browse shows a list this session already has; only Refresh puts a fresh request on the air.
A station has no “Shares files” badge, but you think it sharesThe badge needs positive evidence — the station's capability record (an answer, an announcement, or a presence that confirmed it), or a listing you have already decoded. Not having been told is not the same as “no”, so nothing is shown. Browse them anyway; that is how you find out, and it is allowed.
Your station refuses every request with “not offered”Read Sharing activity on the Files page — it records the answer that actually went back. The usual causes: Sharing on is off, no folder is chosen, the asking station is outside Who may browse (the default admits only stations you have heard, so a station you have not yet decoded is refused), or an Ask me first question timed out.
A file in your shared folder is never servedThe section names it: “county-map.png is over the 256 KB limit — a download will be refused”. Raise Largest file to serve under Settings → Shared files, or take the file out of the folder. Zero-byte and control-character-named files are never offered at all.
JG25 loses about four packets in ten, both directionsTransmit turnaround on the Radio page's Transmit tab (under More options, with JG25 selected). Keying again within a few tens of milliseconds of unkey damages the waveform before it leaves the transmitter; the default is 1.5 s and lowering it is what causes this. Recorded audio replayed offline loses the same packets, which is how you tell this apart from a receive problem.
A JG25 signal is plainly there and the Channel page shows nothingFirst check that the Channel page's Waveform row reads All waveforms or JG25: a list narrowed to another waveform hides JG25 rows. Then tick Show advanced settings and Record diagnostics, and look again: failed receptions then appear as JG25 receive rows you can expand, naming which stage gave up. Without it, only receptions that became packets are drawn — see section 14.
A station's shared-file list never appearsA listing is fetched as a file transfer, and it is only recognised as a listing if it arrives within 15 minutes of your asking. A slow AX1200 link, a retried transfer or a walk away from the computer can push it past that, and then the listing is filed as an ordinary received file in …\incoming instead — no error, just nothing under Browse a station. Look in incoming for a file you did not expect, and ask again when the channel is quieter.
JG25 does not decode from a station you can hear clearlyCheck you are both on the same build — the wire format is not frozen between betas. Then work down the list in section 7: radio processing off, wide FM, adaptive equalization on, raise the FEC, drop a speed, check drive.
“Address cannot be sent on this waveform”, or “AX1200 address cannot be sent”The selected waveform cannot carry that address. FSQ and JG25 carry a plain callsign, a /suffix identity and, since 1.0.7, a name ending in -1 to -15 such as K4ABC-7; any other hyphen (K4ABC-99) is refused, with the reason. AX1200 carries a callsign of at most six characters and an optional SSID, but not a suffix: N4UZZ/CRB is an FSQ/JG25 identity AX1200 cannot send to. Select the waveform that can carry it, or write to the station's address on yours. On JG25, a -n name that has never been heard on FSQ or JG25 draws a note — the station may answer to it on AX1200 only — and the conversation still opens. Nothing was sent, and your draft is still there (section 9).
The status bar reads “Receive audio stopped delivering samples; restarting the radio automatically.”The sound card stopped delivering audio mid-run, and OpenJSQ restarted the radio once by itself. If it came back, nothing needs doing. If it keeps happening, check the device, its cable and its power saving. An input that never delivered audio is not restarted, so this cannot loop (section 15).
“PTT safety timer: OpenJSQ could not run the radio for more than 6.0 s while transmitting, so the transmitter was released and this transmission was stopped.”The program was busy or stuck for longer than its transmit audio lasts, so a separate timer let go of the PTT line (or sent the CAT release) after about 6 s rather than leave the radio keyed into silence (Transmit control). The transmission was cut; send it again if it does not go again by itself. If it keeps happening, note what the computer was doing (a big export, a slow or sleeping disk, another heavy program) and save a diagnostic bundle. On VOX the radio had already stopped transmitting when the audio ran out.
Messages turned Failed: “The radio stopped before this transmission completed. Send it again.”You stopped or restarted the radio, or switched waveform, while they were still Queued, Sending or Retrying. Send them again. Saving settings, changing squelch or switching waveform restarts the radio, and asks first if messages are still waiting; those that had not gone out read Not sent.
A waveform's Live status row reads “Not running: this receiver could not be started.”One of the two waveforms received alongside yours could not start; the reason, Multi-receive is not listening on …: …, is reported only as the radio starts. Your own waveform is running, and so is the other receiver (section 16).
“More than one waveform requested transmit at once.”An internal safety check tripped. Press ■ Stop TX; if it happens again, save a diagnostic bundle and report it (section 16).
The Channel page shows traffic on a waveform you did not selectThat is normal. OpenJSQ receives all three waveforms at once, and the Waveform column says which one heard each row (section 16).
Your station transmitted on a waveform you did not selectAn automatic answer to something asked on that waveform. Net mode holds them on every waveform, or set Other waveforms to Listen only (section 16).
The Channel log says “Not answered on …”A note, not an error (section 14): that waveform was not allowed to answer, and the note says why. To see every note, leave the Waveform row on All waveforms.
AX1200 or JG25 answers, or stays quiet, unexpectedly on a rig with CATThe band rule reads the rig's mode first (section 16). On FM, check the rig reports an FM mode, not a bare DATA or a digital-voice mode, which leave the decision to the frequency.
Live status says “Selected — what you type goes out here; automatic answers are held: the rig reports …”Rig control (or An HF band under Radio → Rig control → Without rig control, my radio is on) says the radio is not on FM while AX1200 or JG25 is selected. What you type still goes out; only automatic answers wait. Check the rig's mode, or change Radio → Rig control → Without rig control, my radio is on from An HF band (section 16).
The Radio page says “Recovering 2 frames…”Normal. A JG25 frame is getting a second try in the background and may still arrive late, even after you have transmitted (section 15).
A file transfer or a verified chat stalls during a netNet mode holds file traffic, acknowledgements and receipts on every waveform. A verified chat's sender retries until the net is over (section 8).
A send is refused with “N4UZZ doesn't relay for others right now.” (or “doesn't answer station actions”, “doesn't share its heard list”)That station's capability record says it does not offer that, so OpenJSQ does not try. The ⓘ in the Chats header shows what the record says and when it was learned. If the record may be out of date, OpenJSQ asks again and says Checking whether N4UZZ relays for others. Try again in half a minute. A station that has said nothing is never taken to mean no: it is tried. In Net mode OpenJSQ does not ask at all.
Your station refuses files on every waveformSettings → Files → Accept files from other stations is one switch for FSQ, JG25 and AX1200. A station that had files off on the AX1200 card before 1.0.6 now refuses them everywhere. Tick it again and save.
Ctrl+Space does nothingIt acts only while the transmitter is keyed, the same test the top bar's ■ Stop TX uses; at any other time it is an ordinary key. Ctrl+Shift+Space is not it (section 4).
The status bar reads “Receive audio skipped a moment…” or “Transmit audio ran dry…”The first is a notice: the sound card or the computer fell behind while receiving, and a packet heard just then may have been missed. The second means a frame really did go out with a gap in the middle; the normal end of a frame does not count. Look at Dropouts in Live status, and see Strong stations decode with characters missing above (section 15).
Where did my deleted thing go?The Deleted page. Nothing you delete anywhere in OpenJSQ skips it. 30 days, then gone.
I asked a station to repeat my message and nothing came backThe far station always answers in words, never silence — read the conversation and the Channel. not repeating messages: it has Repeat messages for on Nobody, or you are not on its list. not repeating commands: your text began with a callsign, allcall or cqcqcq followed straight away by a command character. asked too soon, wait a little: you asked again within its spacing (30 s by default). busy: it had no room to carry the repeat just now. too long: over 256 characters. already repeated: the same text within 5 minutes. OpenJSQ does not ask at all when that station's record says it does not repeat for others, and tells you why (the ⓘ in the Chats header shows the record). With no answer, the far station's Net mode, HF rule or airtime budget may be holding the echo — it is never queued for later. Your conversation says Repeated when you hear it.
My station says “not repeating messages” to everyoneSettings → Relaying → Repeat messages for is Nobody, or These stations with no callsign listed (with nobody listed, nobody may ask). New stations start on Everyone; an upgraded station is asked once.
A file sent to my station is not in my shared folderThe Files page's Publish files received from is Nobody by default. With These stations the sender must be on the list — W4IJG-1 matches that station only, W4IJG matches any SSID. With no shared folder chosen, or one that cannot be written, the file stays in incoming and the status bar says so; a file another program is holding is retried for a few seconds first. A file you asked for yourself, a mail attachment, a letter, a form, a shared-file list and a partial file are never published, and neither is an FSQ # mailbox drop. With Include subfolders off in Settings → Shared files the file is in the shared folder itself, not in Received.
Ask what they support says “Software: not reported”The station did not send its program and version: it runs something older than 1.0.7, or its operator set Settings → Automatic replies → Answer "what software" to Never. The other lines (what it supports, where it works) are still good.
On HF my station answers only at narrow speeds and relays nothingThat is the HF rule, not a fault. Settings → Relaying → Right now says paused: the radio is taken to be on HF and what that was decided from. Follow US §97.221 lifts the limit only inside a §97.221(b) automatic-control sub-band with rig control reporting the frequency; with no rig control, or off those bands, only the narrow speeds are used. Connect rig control, or choose No restriction if you know your own rules. What you send yourself is never limited.
I pressed Stop TX and things I had queued are goneStop TX drops the queued audio on the shared transmitter, including automatic answers the receivers beside yours had queued (on AX1200, every frame still waiting for a clear channel), drops a delayed repeat or echo another station asked for that was still waiting to go (~, {N}, or a JG25 or AX1200 repeat later; a PTT failure drops these too), cancels station actions and messages that were waiting to learn what a station supports (AX1200), and withdraws capability questions still waiting for an answer. The status bar says Transmission stopped and how much audio was discarded. Send again what you still want sent.
The top bar lost its level meter, the wordmark and the words “Mode” and “FEC”The window is narrower than the top bar needs. They are dropped in that order so the Mode and FEC boxes keep their room; if that is not enough, JG25's Mode list shortens to FM 2400 and its FEC box folds away. Widen the window to bring them all back.
The same station shows up twice, as W4IJG and as W4IJG-7It is heard under two names, and OpenJSQ cannot know they are one operator. A station that sets FSQ / JG25 name to Same as AX1200 is one name on every waveform, with one conversation, one heard row and one mail address. A station set up before 1.0.7 keeps its suffix name until its operator changes it in Settings → Station.

23. Glossary ↑ contents

ALCAutomatic level control — the circuit that pulls back your transmitter when it is pushed too hard. On a data mode any ALC movement means you are overdriving: back that waveform's drive slider off until the meter barely twitches.
AllcallThe everyone-on-frequency address. FSQ's version of calling CQ.
APRSThe Automatic Packet Reporting System, which shares the 1200-baud packet world. OpenJSQ has an APRS-coexistence profile that keeps it quiet on a shared APRS channel.
ARQAutomatic repeat request — the receiver tells the sender what's missing, and only that is re-sent. How OpenJSQ moves files reliably.
Automatic traffic on HFWhat your station sends by itself — answers, repeats, relaying — once the radio is taken to be on HF. Settings → Relaying → Automatic traffic on HF chooses between Follow US §97.221 (any FSQ speed inside an automatic-control sub-band with rig control reporting the frequency, narrow speeds only elsewhere) and No restriction. A software safeguard, never a limit on what you send yourself.
AX.25 / AX1200The amateur packet-radio protocol, and OpenJSQ's 1200-baud implementation of it for VHF/UHF FM.
Band ruleWhether AX1200 and JG25 may answer beside the selected waveform. Rig control's reported mode decides first, then its frequency (below 30 MHz is HF); without rig control the selection does, and FSQ selected means HF unless Radio → Rig control → Without rig control, my radio is on says An FM channel. The selected waveform is never held back. Section 16. Once the radio is taken to be on HF, Settings → Relaying → Automatic traffic on HF decides what the station may then send on its own.
Capability recordWhat a station offers — receipts, verified chat, files, shared files, mail, mailbox, station actions, heard list, groups, relaying and its hop limit, and the waveform the station works on — as one short record that means the same on FSQ, JG25 and AX1200. OpenJSQ remembers each station's, shows it at the top of a conversation, and asks again only when it has changed and you are about to depend on it (section 9). Since 1.0.7 the answer to Ask what they support also names the program and its version on every waveform; a station that does not send them (older than 1.0.7, or one whose Answer "what software" is Never) reads Software: not reported.
CustodyResponsibility for a mail letter. Exactly one thing releases it: the recipient's acknowledgment.
dB / SNRSignal-to-noise ratio in decibels. OpenJSQ's figures are calibrated in a standard 3 kHz bandwidth: 0 is workable, +10 is comfortable, −10 is weak-signal territory.
De-emphasisThe treble roll-off an FM receiver applies to its audio. Fine for voice; it weakens the high tones of a wide data mode, which OpenJSQ can correct.
DigipeaterA packet station that repeats your AX.25 transmission to extend range; a path such as WIDE1-1 is a familiar APRS-style example.
Dire WolfA widely used software TNC that runs on a PC or Raspberry Pi. OpenJSQ connects to it over the network as a Network KISS TNC.
EchoYour station repeating, unchanged and to everyone, a message another station asked it to say — a net check-in carried by a hilltop station. Controlled by Settings → Relaying → Repeat messages for; asked with Actions → Ask them to repeat my message…, or on fldigi with ! or ~ and the text.
FECForward error correction — extra parity sent alongside the data so the receiver can rebuild a damaged block without asking for it again. Used on AX1200 and JG25 file transfers, and selectable (F0–F3) on every JG25 frame.
FSQFast Simple QSO, by ZL1BPU and ZL2AFP — a 33-tone HF keyboard mode built for weak, fading paths. OpenJSQ's FSQ is fully compatible with fldigi and FSQCall.
FSQ / JG25 nameThe name FSQ and JG25 use for your station: Same as AX1200 (W4IJG-7, one name on every waveform) or Callsign with suffix (W4IJG/CRB). Set in Settings → Station and in the setup wizard.
FSQ listenerThe one-slot FSQ receiver at 1500 Hz that runs beside AX1200 or JG25. Radio → Receive → Multi-receive sets which speeds it hears and the speed it sends at.
Heard listThe stations a receiver has decoded recently. The raw material of the network map.
ICS-213The standard general-message form used in emergency communications. OpenJSQ carries it as a fill-in sheet and renders a received one as a form card rather than a wall of text.
KISSThe simple protocol a computer uses to talk to a TNC — over serial, Bluetooth, or the network. Its KISS port number (0–15) selects which radio on a multi-radio TNC; single-radio TNCs use 0.
Last RXThe Network page column that says which waveform a station's operator is on: works on AX1200 when the station's own capability record says so, otherwise the waveform of the newest chat heard from it, and JG25 · automatic only when all that has been heard is its software speaking by itself. Receive evidence, not a setting: your next message to that station still goes out on the transmit waveform.
Link QualityA per-station score, 0–100%, for how reliably that station's recent transmissions actually decoded here. It is built from what actually decoded, not converted from SNR; it works on every waveform, and grays when the evidence is old.
MarginHow many dB a reception sat above the measured decode threshold for the mode you are running. Positive is headroom; near zero means slow down.
Multi-receiveReceiving FSQ, AX1200 and JG25 at the same time from one sound card. The waveform you select is the one you transmit on; the other two run as receivers beside it, and Radio → Receive → Multi-receive → Other waveforms decides whether they answer, only listen, or run at all. With FSQ selected on HF, AX1200 and JG25 only listen (the band rule). Not the same thing as the FSQ receiver's many decoders, which listen to several FSQ slots and speeds. Section 16.
Net modeA temporary top-bar hold on automatic transmissions for a directed net. Presence, automatic query replies, held-mail work, file transfers, chat acknowledgements and delivery receipts wait; operator-initiated chats remain available. It resets off at application restart.
Other waveformsThe Radio → Receive → Multi-receive choice for the two waveforms beside the selected one: Listen and answer (the default), Listen only or Off — and the two receivers themselves. Each decodes its own waveform and, at Listen and answer and where the band rule allows, answers automatic requests on it once no receiver hears the channel busy. It never announces your presence.
PTT / VOXPush-to-talk — keying the transmitter. VOX keys automatically when audio is present; RTS/DTR keys via a serial control line; CAT keys through the rig-control link.
Peak over noiseThe second figure on a Channel page decoder card, peak 18 dB over noise, beside its SNR. Related to but deliberately not the same as SNR — it describes the tones that decoder is hearing, not the strength of a decoded message. (Earlier builds showed it as Q.)
Publish received filesThe Files page's Publish files received from choice (Nobody, These stations, Everyone): a file a chosen station sends you is moved from Incoming into the Received subfolder of your shared folder, where browsing stations can see and download it, with nobody at the keyboard (section 11).
Realized speedThe characters per second (and words per minute) a reception actually achieved, as opposed to the mode's nominal rate. Always lower, because the frame's own overhead shares the airtime.
Recovery (JG25)The background second try at a JG25 frame whose first decode failed. The Radio page's Live status shows it; it can deliver a frame after you have transmitted.
Reply viaThe button in Chats' warning that a station reached you through a relay: Reply via KK4IB sets the conversation's route to that relay, so your answer goes back the way theirs came (section 9).
Shared filesA folder you deliberately offer to other JSQ stations, managed on the Files page. Requesters browse a listing and download by entry number; sharing is off by default and every request/answer is logged.
SimplexOne frequency, both directions, no repeater in between — the normal arrangement for packet, and for OpenJSQ on VHF.
SlotOne of several sub-channels FSQ stations share within a single SSB channel. OpenJSQ listens to all of them at once.
SoundingA brief automatic station ID that keeps you on other stations' heard lists. Off by default in OpenJSQ.
SSIDThe number after the hyphen on a packet callsign (for example N0CALL-7), distinguishing several AX.25 stations that share one callsign. OpenJSQ offers No SSID or -1 to -15 in Settings → Station — there is no -0, because AX.25 writes no SSID at all for zero. Typed into a chat line, -0 and -00 are read as the bare callsign and -01 as -1: they are accepted spellings on the way in, and one address still goes out one way. FSQ and JG25 have no SSID field; their equivalent is the suffix below. Since 1.0.7 a -1 to -15 name is an ordinary FSQ and JG25 address too, and Same as AX1200 uses yours on every waveform.
Suffix (FSQ / JG25)The tag after the slash on an FSQ or JG25 identity — W4IJG/P, W4IJG/CRB. It is part of the callsign other stations see, so a station with one is a different station from the same operator without it. AX.25 cannot carry it, so AX1200 leaves it off. Set in Settings → Station, beside the callsign and the SSID.
TNCTerminal node controller — a packet modem. OpenJSQ has one built in (sound card) and also talks to external ones via KISS.
Transmit waveformThe waveform selected on the Radio page and shown in the top bar: the one everything you send goes out on. It does not limit what you hear.
Works onThe waveform a station says its operator is using, carried in its capability record. It decides what Last RX reads on the Network page and what Chats' last reached you on line says, so the two agree.

24. Numbers and defaults at a glance ↑ contents

Every default and limit the rest of this document mentions, in one place. None of these is something you have to set. They are the answers OpenJSQ already gives. Useful when someone asks "what is yours set to?", and useful for deciding what to change first.

On the air

FSQ busy margin3.0 dB above the noise floor before a slot counts as busy. 0 disables busy detection. Radio → Receive → Receivers.
FSQ station address3 to 15 characters: letters, digits and /. Since 1.0.7 a callsign of 3 to 6 letters and digits may also end in -1 to -15 (W4IJG-7); any other hyphen is refused.
In wide modes, wait for a clear channelWith FSQ selected, wide modes wait up to 30 s for the whole channel to clear, then go anyway (Radio → Receive → FSQ receive).
Key-up lead / key-down tail100 ms each. The lead is raised to 300 ms automatically when you pick CAT keying.
Serial keying lineRTS, normal polarity (keys on a high line).
PTT safety timerIf OpenJSQ itself stops running for about 6 s while the radio is keyed, a separate timer lets go of the PTT line (serial or CAT; it waits longer at the 16 and 12 kHz sample rates). Nothing to set. VOX and a KISS TNC have no line for it to release.
Unasked signal reports (AX1200 only)Off for a new profile (Settings → Automatic replies); a profile that saved a value keeps it. At most once every 30 s per station when on. Nothing at all over a KISS TNC.
Group signal reportsAnswered automatically. You may ask one group once every 5 minutes; settable from no limit to 30 minutes.
KISS handover allowance1500 ms — how long a frame may still be inside the TNC before an acknowledgment counts as late.
AX.25 application identifierAPZJQ1. Digipeater path: empty.
Default chat deliveryLive, for every waveform (Settings → Chats). The chip on the compose row overrides it per message.
Presence (sounding)Off. Nothing announces you until you choose an interval.
Presence statusavailable.
FSQ / JG25 nameSame as AX1200 for a new profile (W4IJG-7, or the plain callsign with no SSID); a profile set up before 1.0.7 keeps its suffix name until you change it.
Automatic traffic on HFFollow US §97.221 (Settings → Relaying). Narrow FSQ speeds are 500 Hz or less. No restriction makes it behave as on FM.
Smallest main windowAbout 820 pixels with standard Windows fonts (wider with larger text), the same on every waveform; the first window opens wide enough for the whole top bar when your screen allows. Below the width the whole top bar needs (about 1115 px on FSQ, about 1250 px on JG25), it drops the level meter, the wordmark and the words Mode and FEC.
Net modeOff, and deliberately never remembered — a station silenced for one net must not still be dark next week.
Carrying messages for other stationsOn, all waveforms, for a new station or profile; Settings → Relaying turns it off or picks waveforms. An upgraded station keeps what it had.
Hops a frame may already have taken when you forward it (AX1200 and JG25)2 by default, settable 1–8 (Settings → Relaying, advanced).
Repeat messages forEveryone (Settings → Relaying; also asked by the setup wizard). Limits (advanced): one echo per station every 30 s, the same text from the same station not repeated within 5 minutes, the longest message one FSQ transmission (256 characters), counted against the automatic airtime budget. Each limit can be turned off.
Relayed route length you can sendFSQ: a chain. AX1200 and JG25: one hop.
File carried through a relay256 KB.
Automatic airtimeAt most 2 minutes in any 10 per radio for what your station sends by itself (Settings → Relaying, advanced; 1–60 minutes, or Unlimited).
Relay forwarding allowanceAt most 3 minutes in any 10 for messages carried for others, apart from the automatic airtime; then relay busy, while the automatic airtime has room (same place, same ranges).
Waiting for an answerJG25 and AX1200: 2 minutes after the question went on the air, 3 through a relay. FSQ: 2 minutes at FSQ-6 and faster, longer at the slow speeds in proportion (4 at FSQ-3, 6 at FSQ-2), twice that through a relay. Then the question says No answer.
JG25 quiet after another station750 ms after another station's carrier drops before JG25 keys, so the station that just stopped can hear it.
Relay duplicate memory10 minutes on AX1200 — how long a relay remembers traffic so it does not carry the same thing twice.
Network crawl6 queries, 2 hops deep, and it will not relay through a path weaker than +3 dB.
Transmit drive10 dB below full scale for each of FSQ, AX1200 and JG25, settable 0–45 dB.
JG25 transmit level0.80, settable 0.05–0.95. JG25 drive applies on top.
JG25 VOX audio lead200 ms, settable 0–2000 ms. Used only with VOX keying.
Answers beside the selected waveformWait until no receiver hears the channel busy; a receiver busy without a break for over a minute stops holding the others off.
Held-answer notesAt most one per waveform, station and reason every 10 minutes.
“Not fetched” and “Not sent yet” notesA reply on a waveform beside the selected one gets a Not sent yet note after waiting 30 s for the transmitter. Each of these notes appears once per cause every 10 minutes. The Not fetched notes are for FSQ mail only.
Capability recordSix bytes on every waveform. A station's record is asked for again at most once every 5 minutes per station and waveform, and only before you depend on it; a refused send says Try again in half a minute. Presence carries a change counter, 1 to 999. A change to this station's own record goes out once as an announcement. The answer to Ask what they support also carries the program and version (JG25: an optional extension; AX1200: an optional field after the record).
Speed and robustness of each modeSee How fast, and how robust (section 17).

Receive

Receivers at onceThree on a sound-card link — FSQ, AX1200 and JG25 — whichever you select. AX1200 only, through a KISS TNC.
FSQ decoders at onceWith FSQ selected: 15 on the default five-slot plan, 11 on a single slot (Normal or Fast mode), 13 on FSQ-6W, 6 on Multi — dense (your own speed only); capped by Decoders running at once (FSQ receive). With AX1200 or JG25 selected: 11 on the one-slot listener, or 4 with Normal speeds only (5 if its own speed is a Fast one), within the Decoders running at once cap. Copies within 2 s are one reception.
FSQ decoder costAbout 0.25% of one processor core for a Normal-speed decoder, about 1% for a Fast one; about 8–10% for the default five-slot plan.
Other waveformsListen and answer. The other two together cost about 12–15% of one fast core (roughly double on a modest laptop); Off saves it. With FSQ selected, AX1200 and JG25 only listen unless Radio → Rig control → Without rig control, my radio is on says An FM channel; rig control decides by its mode first, then its frequency (below 30 MHz is HF).
FSQ listenerNormal and Fast speeds, sending at Same as the FSQ Mode. Radio → Rig control → Without rig control, my radio is on Not stated.
Receive effortBalanced — the calibrated middle of five levels.
JG25 mode / FECJG25-FM 2400 and F0 (no FEC). Seven modes, JG25-FM 1200 to JG25-FM 2400; four FEC settings, F0–F3.
JG25 acquisitionNormal. Robust roughly doubles the preamble.
JG25 receive equalizationAdaptive, on. Branches at 0, +3, +4, +5, +6 and +8 dB/octave.
JG25 carrier-detect offset0 dB, settable −6 to +12 dB.
JG25 tonesFour per mode, each set falling between about 475 Hz and 2600 Hz; the widest, JG25-FM 2400, spans 500–2600 Hz. Header 950/1350/1750/2150 Hz at 350 baud.
JG25 background recoveryEvery frame whose first decode failed, up to about 4 s of search; the extra JG25-FM 2400/F3 decoder is limited to 2 s. On by default.
Receive emphasisAdaptive. Manual's corner frequency defaults to 210 Hz, settable 50–1000 Hz.
Sound-card sample rate48000 Hz. The decoders run at 16000 Hz regardless; OpenJSQ resamples.
CAT pollingEvery 1000 ms, and stopped while transmitting.
Spectrum display floor-70 dBFS. Display only; it changes nothing about decoding.
Link QualityGrays when its newest evidence is older than Consider stations recent for (2 hours by default; never with Never). The score itself is never decayed.
Diagnostic recordingA rolling 10 minutes of receive audio, when switched on.
Channel history4,000 records per load; Load older history fetches the next 4,000.
“At the bottom” of Channel and ChatsWithin 8 pixels of the end (a little more at the larger Text sizes); further up, new entries do not move you and ↓ Newest appears.
Receive-audio restartOnce per episode: when the capture stream stops, or after 3 s of silence on an input that had delivered (never in its first 4 s).
A pause in the programThe waiting audio is read late, not thrown away, and no new transmission starts until it has caught up. Only a pause longer than the sound card's buffer (about 5.5 s at 48 kHz) loses audio; at 16 and 12 kHz the receivers are kept no more than 6 s behind. A catch-up is given up after 3 s with no progress, or 10 s in all.

Mail

Fits in one frame768 bytes on FSQ, 256 bytes on JG25, 128 bytes on AX1200. Above that a letter travels as a file transfer.
Largest letter256 KB. Past that, send it from the Files page.
Undelivered letters expire7 days. Settable 12 hours – 30 days.
“You have mail” noticeAt most once per recipient every 2 minutes. Settable 30 s – 15 min.
Asking all stations or a group for mailOnce every 10 minutes on each waveform. A station holding mail for you answers after its own delay, spread over up to 30 s on FSQ and 10 s on AX1200 and JG25, and answers one asker at most once a minute. Silence means nobody holds mail for you.
Receipts kept30 days.
Holding for othersOn. Your own letters are always held by your own station regardless.
Recent / removed from heard listA station counts as recent for 2 hours after it was last heard, and is removed from the heard list after 24 hours. Past the 2 hours it greys on the Network map.
Learned callsigns kept60 days, unpinned only. Pinned and hand-entered callsigns are kept indefinitely.

Files

Text file from a chat (FSQ)8 KB.
File size limits64 MB in (every waveform), 64 MB out (AX1200 only). Settable 1–4096 MB, in Settings → Files.
Blocks in flight16 by default — the shipped window. The protocol itself allows up to 32 before the sender must stop and ask what is missing, so raising the window above 32 buys nothing.
AX1200 file error correction16 data blocks, 4 repair blocks. Clamped at 32 and 16.
Concurrent transfers16 in, 4 in from any one sender, 16 out.
Shared filesOff. Once on: browsable by stations you have heard, served automatically to the audience you chose (choose Ask me first to approve each download), subfolders excluded, 256 KB per file, 1 MB and 20 files a day, one request per station per 10 seconds, and an Ask-me-first question that expires after 2 minutes.
Publish files received fromNobody. With These stations or Everyone the finished file goes into the Received subfolder of the shared folder, under the name it arrived with (a clash becomes report-1.txt). Shared-folder limits apply to it as to any other file.
“Shares files” badgeShown only on positive evidence. A decoded listing holds the stronger form for 24 hours.
Conversation drawn at onceThe newest 200 lines, then 200 more per Show 200 more (fewer, when fewer are left).
Allcall chats in the sender's conversationOff.
JG25 transmit turnaround1.5 s, settable 0–30 s.
Deleted itemsKept 30 days, then really gone.

Numbers other people's software cares about

Dire Wolf KISS port8001. Not 8000 — that is AGW, a different protocol, and a station pointed at it connects and then never passes a frame.
KISS port number0, unless your TNC documents otherwise.
Serial KISS speed9600 — the BTECH default, and the cable speed only. The radio still transmits at 1200 baud.
FSQ compatibility slot1500 Hz, which is where fldigi and FSQCall listen.

25. About OpenJSQ ↑ contents

JSQ is a modem-agnostic transport: messaging, file transfer, custody mail and network mapping, written once and carried over whatever radio is underneath. OpenJSQ is its implementation, by Jerome Goddard II (W4IJG), carrying those services over FSQ, JG25 and AX1200.

FSQ was designed by Murray Greenman ZL1BPU and Con Wassilieff ZL2AFP. Fast Simple QSO is their work and not this program's: OpenJSQ implements it, and implements the four classic speeds to stay compatible with fldigi and FSQCall, because the people already on the mode are the reason to be on it.

Four amateurs put the beta on the air and said what was wrong with it. Thanks to Otto (N4UZZ), Sparks (KK4IB), Mac (KO4UWY) and Charles (KD4AXP) for their testing and suggestions.

How it talks is public, and anyone may build on it. Every waveform and protocol OpenJSQ transmits is published at openjsq.com/specs (JG25: openjsq.com/docs/jg25-specification.html). Anyone may read, copy and distribute those specifications, and use them to identify, monitor and implement the protocols, without charge, and a station needs no OpenJSQ code to do it. That is also the public documentation US rules ask for a digital code (47 CFR §97.309(a)(4)). It covers the specifications and the protocols; the OpenJSQ program itself stays proprietary.

Copyright © 2026 Jerome Goddard II (W4IJG). All rights reserved.

The licence agreement. Your use of OpenJSQ is governed by the OpenJSQ end-user licence agreement (EULA), in EULA.txt beside the program, behind Settings → About → Licence agreement (EULA), and at openjsq.com/eula. In short: OpenJSQ is free for personal use and for nonprofit groups such as clubs and emergency-communications teams; you may give unmodified copies of the official installer or ZIP to others free of charge; anyone may use it to receive, but you need a licence to transmit, and you are responsible for every transmission your station makes, the automatic ones included; it is not for life-safety use; and it collects nothing about you. Commercial use needs written permission. The agreement itself is what counts, not this summary.

The Windows packages include Qt and other libraries under the LGPL. You may replace them with your own builds (put your DLL in the program folder in place of the one supplied), and the licence does not limit the rights their licences give you. Their licences, and where to ask for their source (the contact page at openjsq.com/contact), are in the licenses folder (THIRD_PARTY_NOTICES.txt).

Version notes ↑ contents

What changed in each version, and why some things work the way they do. None of it is needed to operate the station.

New in 1.0.9

1.0.9 makes the radio steadier and fills in gaps between the three waveforms. No setting you made before has changed. Two things behave differently: presence now follows one rule when the radio starts, on every waveform, and a JG25 chat that reaches you through a relay now gets a delivery receipt. The full list is in CHANGELOG.md.

New in 1.0.8

1.0.8 is mostly about making the program easier to find your way around: a shorter setup wizard, Settings and the Radio page in sections, and a Cancel you can see. Nothing you set before has moved to another place on the air or changed its default. The full list is in CHANGELOG.md.

New in 1.0.7

1.0.7 is a small release: files can go straight into your shared folder, a station can use one name on every waveform, another station can ask yours to repeat its message, and the guide now explains every card behind a ?. A 1.0.6 AX1200 station does not read the new 1.0.7 capability record and falls back to the older answer beside it, and a station older than 1.0.7 cannot tell you its program and version. The full list is in CHANGELOG.md.

New in 1.0.6

1.0.6 changes what stations say about themselves on the air, so upgrade all your stations together. A 1.0.6 desktop still reads the capability answers a 1.0.5 station sends on JG25 and AX1200; a 1.0.5 station just cannot see what a 1.0.6 station offers. Chat, file and mail frames did not change. The full list is in CHANGELOG.md.

New in 1.0.5

1.0.5 is mostly a safety release. No frame format changed: 1.0.4 and 1.0.5 stations work together. The full list is in CHANGELOG.md.

New in 1.0.4

Earlier changes worth knowing about

About this guide

The screenshots were retaken for 1.0.7 from the build of 9 October 2026, and for 1.0.9 the rail with the Help arrow, the Actions menu, the Check for mail dialog, the Network page and its Stations heard crops, the Relay activity list, the Channel page's advanced view with its Report a problem button, the Report a problem window and the Allcall and group pictures (24 October 2026); the Relaying card was retaken on 12 October 2026, when it gained the Automatic airtime and Relay forwarding rows. The pictures and the examples in the text use the callsigns of the project's beta testers and its author (except K4ABC, a placeholder), in invented conversations: KK4IB is the station in the pictures, N4UZZ and K4ABC are its correspondents and W4IJG is the third station. The conversations, signal figures and files shown are made up, and so are the sound-card and serial-port names in the wizard and Radio-page pictures. Pictures of the whole window taken before 1.0.9 show the rail without the arrow beside Help. Some pictures were not retaken: the notice on the top bar when mail arrives, the top bar while transmitting, a message that arrives labelled, the received-message footer, the Files ledger with its carried-objects heading opened and the mail right-click menu. They come from earlier builds and a bench of two stations (N1TSA and N1TSB) joined by a virtual audio cable, so they show those callsigns, and where one of them and the text disagree, the text is current. A few cards are shown in a state a real station cannot be in at that moment (the Live status pictures show the waveform rows while Audio path reads Stopped), because the pictures were taken without a radio.

The parts changed for 1.0.9 (New in 1.0.9, Announce now and the Allcall Actions entry, Check for mail, ICS-213 to a group, the Network page and Report a problem) were written against the 1.0.9 release branch, 24 October 2026. The parts changed for 1.0.8 (New in 1.0.8 and Taking back what is waiting in section 8) were written against the 1.0.8 work branch, October 2026. The parts changed for 1.0.7 (New in 1.0.7, section 19 and the cards behind each ?) were written against the 1.0.7 release branch, 9 October 2026. The parts changed for 1.0.6 (New in 1.0.6, the Channel page, Pages in windows of their own, What a station offers and the About text) were written against the 1.0.6 release branch, 5 and 6 October 2026. The 1.0.4 text was checked against commit 6443783b on branch claude/batch2, 27 September 2026, and the parts changed for 1.0.5 (New in 1.0.5, and Automatic answers off FM in section 16) were written against the 1.0.5 release branch. All were compiled with JG25, which every shipped build has; where a picture and the text disagree, the text is current.

OpenJSQ by Jerome Goddard II (W4IJG) · Copyright © 2026, All Rights Reserved · current OpenJSQ source is distributed under the repository's proprietary license, and anyone may implement the published protocols (section 25); third-party material keeps its own license terms. FSQ was designed by Murray Greenman ZL1BPU and Con Wassilieff ZL2AFP.
Describes OpenJSQ 1.0.9, October 2026 — what the program does today, not what is planned. Labels quoted in blue match the program's own text.