Choose a modem
for your station.

Start with the radio path and the station you want to reach. Then compare calculated payload rates, simulated signal requirements, and modeled file times.

An audio-connected station can listen across enabled modem families and supported speeds, independently of its selected transmit mode. Receive modes and automatic replies →

HF or legacy FSQ contact: start with classic FSQ-3 and a radio audio interface.

FM packet or an existing TNC: start with AX1200; built-in audio or KISS can carry the packets.

Experimenting with FM: try JG25 after establishing audio and keying, with compatible builds at both ends.

FSQ / FSQ Fast

FM / HF · Classic + Fast profiles

FSQ++ is our name for OpenJSQ’s FSQ enhancements: multi-slot conversations, CRC integrity checks, and stronger receive validation. FSQ Fast adds speed using more bandwidth.

Connect
Radio audio interface; modem runs in OpenJSQ.
Work with
Classic FSQ peers including fldigi/FSQCall; Fast needs compatible OpenJSQ support.
Keep in mind
FSQ chat is best effort. Legacy waveform compatibility does not include every JSQ service.
Set up FSQProfiles & slots ↓

AX.25 (AX1200)

FM · Standard packet compatibility

Use familiar 1200-bit/s AX.25 framing with existing packet equipment and digipeaters, or let OpenJSQ be the modem.

Connect
Radio audio interface; modem runs in OpenJSQ.
External AX.25 TNC including Dire Wolf via KISS over BLE, serial COM port, or TCP.
Work with
Standard AX.25 peers at the frame level; JSQ services need a capable receiving application.
Keep in mind
One raw rate. Framing, turnarounds and retries reduce useful transfer speed.
Set up AX.25Connections & compatibility ↓

JG25

FM · Experimental

A new packet waveform and framing design for ordinary FM voice audio. It avoids carrying unneeded fields from older AX.25 packet conventions, with selectable error protection.

Connect
Radio audio interface; modem runs in OpenJSQ.
Work with
Peers running compatible experimental JG25 builds.
Keep in mind
Experimental. A standard AX.25 decoder cannot decode JG25.
Set up JG25Waveform & status ↓

Verified direct chat is available on supported AX1200/JG25 links. Groups and relayed chat use Live. Capability discovery establishes which other services a peer offers. Delivery evidence · Service capabilities

Modeled whole-file transfers · Three modem families

Compare speed
and airtime.

The payload column calculates what one frame carries. File times model the complete exchange, including handshakes, acknowledgements, and radio turnarounds. Neither is a measured on-air transfer rate.

Scroll horizontally to compare all columns. With a keyboard, focus the table and use the arrow keys.

Representative OpenJSQ modes: raw signaling rate, calculated payload rate, simulated signal needed, and modeled file time
ModeRaw signaling rateCalculated payload rate
256-byte frame
Signal needed
simulated SNR · see test group
1 KB file, clean10 KB file, clean10 KB, one lost block
FM packet test 300–3000 Hz audio SNR · 9 of 10 intact packets
JG25 · 2400/F0 fastest, no payload FEC2,400 bit/s1,881 bit/s+6.8 dBFM · 9 of 10 packets12.1 s63.9 s65.4 s
JG25 · 2400/F12,400 bit/s1,483 bit/s+8.5 dBFM · 9 of 10 packets13.7 s77.1 s79.1 s
JG25 · 1800/F21,800 bit/s1,045 bit/s+3.8 dBFM · 9 of 10 packets16.7 s1.7 min1.8 min
JG25 · 1200/F3 stronger error protection1,200 bit/s554 bit/s-1.3 dBFM · 9 of 10 packets26.0 s3.0 min3.1 min
JG25 · 1200/F01,200 bit/s1,047 bit/s+6.3 dBFM · 9 of 10 packets16.7 s1.7 min1.8 min
AX.25 · AX12001,200 bit/s926 bit/s+7.6 dBFM · 9 of 10 packets21.0 s2.4 min2.4 min
HF text-copy test 3 kHz reference SNR · at least 95% character copy
FSQ Fast · FSQ-42205.1 bit/s158 bit/s≈ −3 dBHF · 19 of 20 chars69.0 s8.8 min9.3 min
FSQ Fast · FSQ-30146.5 bit/s113 bit/s≈ −4.5 dBHF · 19 of 20 chars97.5 s12.5 min13.0 min
FSQ Fast · FSQ-1258.6 bit/s45 bit/s≈ −9 dBHF · 19 of 20 chars4.7 min38.3 min39.1 min
Classic FSQ · FSQ-629.3 bit/s23 bit/s≈ −10.5 dBHF · 19 of 20 chars12.8 min1.85 hr1.85 hr

Choosing JG25 error protection: in these simulations, F3 needed the least signal at every JG25 speed. F1 and F2 sometimes needed more signal than F0. Choose from the results for your path; extra coding alone does not guarantee better reception.

1 KB = 1,024 bytes; 10 KB = 10,240 bytes. Raw signaling rate counts signaling bits before FEC and framing overhead; for FSQ it is five bits per symbol, not text characters per second. The 256-byte payload column is a calculated rate for one transmission, not end-to-end file throughput. File times come from a deterministic timeline of the application protocol (ARQ, handshakes, turnarounds, access, and decode delays); they are not field measurements. “One lost block” is scenario S1: the first DATA block is lost and retransmitted. Real conditions and other losses can increase times. Method and assumptions.

Signal needed comes from software simulations, not on-air tests. Lower is better. FM rows: the SNR at which 9 of 10 256-byte packets arrived intact, as the middle result of seven simulated FM radio audio paths, three of them fitted to recordings of real radios. FSQ rows: the weakest signal, in 1.5 dB steps, at which a 46-character message still copied with no more than about one character in 20 wrong, in plain noise. Neither test includes fading, tuning error or other stations, and the FM and FSQ tests are not directly comparable. Your radios will differ. How the signal figures were simulated ↓

Complete speed comparisonAll 40 profiles · JG25, AX1200, and FSQExplore profilesHide profiles

Compare all 28 JG25 FM mode and FEC combinations, AX1200, and all 11 classic and Fast FSQ speeds. Grouped by signal test, then sorted by payload rate within each group, using the same model, file sizes, and loss scenario as above. The FM and HF signal figures come from different tests; compare them only within the same test.

Scroll horizontally to compare all columns. With a keyboard, focus the table and use the arrow keys.

All modeled OpenJSQ profiles: raw signaling rate, calculated payload rate, simulated signal needed, and modeled file time
ModeRaw signaling rateCalculated payload rate
256-byte frame
Signal needed
simulated SNR · see test group
1 KB file, clean10 KB file, clean10 KB, one lost block
FM packet test 300–3000 Hz audio SNR · 9 of 10 intact packets
JG25 · 2400/F02,400 bit/s1,881 bit/s+6.8 dBFM · 9 of 10 packets12.1 s63.9 s65.4 s
JG25 · 2200/F02,200 bit/s1,754 bit/s+4.5 dBFM · 9 of 10 packets12.5 s67.5 s69.1 s
JG25 · 2000/F02,000 bit/s1,623 bit/s+5.9 dBFM · 9 of 10 packets13.0 s71.7 s73.5 s
JG25 · 1800/F01,800 bit/s1,487 bit/s+3.4 dBFM · 9 of 10 packets13.6 s76.9 s78.9 s
JG25 · 2400/F12,400 bit/s1,483 bit/s+8.5 dBFM · 9 of 10 packets13.7 s77.1 s79.1 s
JG25 · 2200/F12,200 bit/s1,378 bit/s+6.5 dBFM · 9 of 10 packets14.2 s81.8 s84.0 s
JG25 · 1600/F01,600 bit/s1,346 bit/s+4.9 dBFM · 9 of 10 packets14.4 s83.5 s85.6 s
JG25 · 2400/F22,400 bit/s1,342 bit/s+7.7 dBFM · 9 of 10 packets14.4 s83.6 s85.8 s
JG25 · 2000/F12,000 bit/s1,270 bit/s+5.9 dBFM · 9 of 10 packets14.9 s87.5 s89.8 s
JG25 · 2200/F22,200 bit/s1,245 bit/s+5.2 dBFM · 9 of 10 packets15.1 s88.9 s91.3 s
JG25 · 1400/F01,400 bit/s1,199 bit/s+2.0 dBFM · 9 of 10 packets15.4 s91.8 s94.3 s
JG25 · 1800/F11,800 bit/s1,159 bit/s+4.8 dBFM · 9 of 10 packets15.7 s94.5 s97.0 s
JG25 · 2000/F22,000 bit/s1,146 bit/s+5.4 dBFM · 9 of 10 packets15.8 s95.4 s97.9 s
JG25 · 1200/F01,200 bit/s1,047 bit/s+6.3 dBFM · 9 of 10 packets16.7 s1.7 min1.8 min
JG25 · 2400/F32,400 bit/s1,045 bit/s+5.6 dBFM · 9 of 10 packets16.7 s1.7 min1.8 min
JG25 · 1600/F11,600 bit/s1,045 bit/s+4.9 dBFM · 9 of 10 packets16.7 s1.7 min1.8 min
JG25 · 1800/F21,800 bit/s1,045 bit/s+3.8 dBFM · 9 of 10 packets16.7 s1.7 min1.8 min
JG25 · 2200/F32,200 bit/s967 bit/s+3.9 dBFM · 9 of 10 packets17.6 s1.8 min1.9 min
JG25 · 1600/F21,600 bit/s940 bit/s+3.7 dBFM · 9 of 10 packets17.9 s1.9 min1.9 min
JG25 · 1400/F11,400 bit/s927 bit/s+3.0 dBFM · 9 of 10 packets18.1 s1.9 min2.0 min
AX.25 · AX12001,200 bit/s926 bit/s+7.6 dBFM · 9 of 10 packets21.0 s2.4 min2.4 min
JG25 · 2000/F32,000 bit/s887 bit/s+3.7 dBFM · 9 of 10 packets18.6 s2.0 min2.0 min
JG25 · 1400/F21,400 bit/s833 bit/s+2.0 dBFM · 9 of 10 packets19.4 s2.1 min2.2 min
JG25 · 1800/F31,800 bit/s806 bit/s+2.2 dBFM · 9 of 10 packets19.8 s2.2 min2.2 min
JG25 · 1200/F11,200 bit/s806 bit/s+1.6 dBFM · 9 of 10 packets19.8 s2.2 min2.2 min
JG25 · 1600/F31,600 bit/s724 bit/s+2.4 dBFM · 9 of 10 packets21.3 s2.4 min2.4 min
JG25 · 1200/F21,200 bit/s724 bit/s+0.5 dBFM · 9 of 10 packets21.4 s2.4 min2.4 min
JG25 · 1400/F31,400 bit/s640 bit/s+0.5 dBFM · 9 of 10 packets23.3 s2.7 min2.7 min
JG25 · 1200/F31,200 bit/s554 bit/s-1.3 dBFM · 9 of 10 packets26.0 s3.0 min3.1 min
HF text-copy test 3 kHz reference SNR · at least 95% character copy
FSQ Fast · FSQ-42205.1 bit/s158 bit/s≈ −3 dBHF · 19 of 20 chars69.0 s8.8 min9.3 min
FSQ Fast · FSQ-36175.8 bit/s135 bit/s≈ −3 dBHF · 19 of 20 chars79.5 s10.2 min10.8 min
FSQ Fast · FSQ-30146.5 bit/s113 bit/s≈ −4.5 dBHF · 19 of 20 chars97.5 s12.5 min13.0 min
FSQ Fast · FSQ-2097.7 bit/s75 bit/s≈ −6 dBHF · 19 of 20 chars2.5 min19.9 min20.5 min
FSQ Fast · FSQ-1678.1 bit/s60 bit/s≈ −7.5 dBHF · 19 of 20 chars3.3 min26.4 min26.9 min
FSQ Fast · FSQ-1258.6 bit/s45 bit/s≈ −9 dBHF · 19 of 20 chars4.7 min38.3 min39.1 min
Classic FSQ · FSQ-629.3 bit/s23 bit/s≈ −10.5 dBHF · 19 of 20 chars12.8 min1.85 hr1.85 hr
FSQ Fast · FSQ-6W29.3 bit/s23 bit/s≈ −12 dBHF · 19 of 20 chars13.3 min1.91 hr1.92 hr
Classic FSQ · FSQ-4.519.5 bit/s15 bit/s≈ −13.5 dBHF · 19 of 20 chars25.7 min3.99 hr4.02 hr
Classic FSQ · FSQ-314.6 bit/s11 bit/s≈ −15 dBHF · 19 of 20 chars34.1 min5.30 hr5.33 hr
Classic FSQ · FSQ-29.8 bit/s8 bit/s≈ −16.5 dBHF · 19 of 20 chars51.0 min7.91 hr7.95 hr

Times are modeled and signal figures simulated; neither is a field measurement. The assumptions and test conditions above apply to every row, and the JG25 figures cover FM profiles only. In these simulations F3 needed the least signal at every JG25 speed. Above JG25 1200, F1 and F2 gained at most 1.2 dB over F0 and often needed more. Speed alone does not establish robustness on your radio path.

Classic FSQ: OpenJSQ and fldigi

The same simulated FSQ signals, decoded by OpenJSQ and by fldigi’s own FSQ decoder, unmodified. Both were scored the same way as the speed tables; lower is better.

Classic FSQ: OpenJSQ and fldigi decoding identical audio (HF · 19 of 20 chars)
ModeOpenJSQfldigi
squelch 22, silent in noise
FSQ-2≈ −16.5 dB≈ −13.5 dB
FSQ-3≈ −15 dB≈ −12 dB
FSQ-4.5≈ −13.5 dB≈ −12 dB
FSQ-6≈ −10.5 dB≈ −10.5 dB
Noise shown as text characters a minute, no signal00

Software simulation, not an on-air test. Squelch 22 is the closest behavioral comparison here: both decoders showed no text in about 32 minutes of noise. It was the lowest fldigi setting that stayed silent in those trials; OpenJSQ waits for a message start. The optional open-squelch results below show the sensitivity/noise tradeoff. Both decoders received identical noisy audio, 20 times at every 1.5 dB step from +6 to −21 dB, and were scored on the message alone. The signals came from OpenJSQ’s transmitter.

fldigi with squelch open: sensitivity and noise

Open squelch copied weaker FSQ-4.5 and FSQ-6 signals in these tests, but also displayed noise as text. These results show that tradeoff.

Same HF text-copy test, with fldigi squelch open
Modefldigi
squelch open
FSQ-2≈ −15 dB
FSQ-3≈ −15 dB
FSQ-4.5≈ −15 dB
FSQ-6≈ −13.5 dB
Noise shown as text characters a minute, no signalabout 215

AX1200: OpenJSQ and Dire Wolf

The same simulated AX1200 packets, decoded by OpenJSQ and by Dire Wolf 1.7, the widely used software packet modem. Lower is better.

AX1200: OpenJSQ and Dire Wolf 1.7 decoding identical packets (FM · 9 of 10 packets, 256 bytes)
DecoderSignal neededWrong messages accepted
of 8,250 test packets
OpenJSQ+7.6 dB0
Dire Wolf default setup+8.8 dB0
Dire Wolf best setup+8.3 dB18

Software simulation, not an on-air test. Dire Wolf was given exactly the same packets as OpenJSQ, through the same seven simulated FM radio audio paths and noise. Its default setup is MODEM 1200; its best setup adds FIX_BITS 1 AX25, which repairs single-bit errors and so accepted 18 wrong frames that passed the checksum.

How to read these rates · assumptions and sources

How the signal figures were simulated

The following describes the models and historical simulations behind the tables. The underlying application fixture packages are not published on this website; these descriptions do not claim an independently reproducible public dataset or a current-build radio trial.

FM · 9 of 10 packets (AX1200 and JG25): the actual OpenJSQ receivers decoded packets rendered by the actual transmitters, after they passed through seven software models of an FM radio’s audio path: 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 a Yaesu FT-8800 sending to an FT-817. Steady FM-shaped noise was added; SNR is measured over 300–3000 Hz of the received audio (for the data-port model, before its de-emphasis). Each 256-byte packet had random contents and counted only if it arrived exactly intact. For every mode and channel, the SNR was stepped down until fewer than 9 in 10 got through, at least 40 packets were run at each of the two points either side of that level, and the threshold was interpolated between them. The table shows the middle of the seven results, rounded to 0.1 dB; differences below about 0.5 dB are not significant. AX1200 and JG25 F0/F3 were simulated in September 2026 and JG25 F1/F2 on October 20, 2026, with the same receivers (code baseline d0d6bd26), packets, noise and rules. The receivers have changed since; rebuilt at OpenJSQ 1.0.8 they made the same decisions on every replayed F1/F2 packet and on 1,006 of 1,008 sampled packets of the other modes. No fading, tuning error, squelch or other stations were simulated.

HF · 19 of 20 chars (FSQ): the actual OpenJSQ FSQ receiver decoded a 46-character message rendered at each of the 11 speeds and mixed with white Gaussian noise, with SNR referenced to a 3 kHz bandwidth. Each speed was run 20 times at every 1.5 dB step from +6 to −21 dB. The figure is the lowest step, working down, at which no more than 5% of characters were wrong on average; the true limit lies somewhere in the 1.5 dB below it. Simulated in September 2026; rebuilt at OpenJSQ 1.0.8, the FSQ receiver reproduces these results trial for trial. A real HF path adds fading, multipath, drift and interference, which cost margin. These are text-copy limits, not packet-delivery or file-transfer thresholds.

FSQ-6 sends 5.859375 symbols/s; FSQ-42 sends 41.015625. Ordinary lowercase letters use one FSQ varicode symbol, giving the rounded text estimates above during continuous text. Two-symbol characters, framing and service data reduce that rate. Binary files use their own transport encoding, so these values are not file bytes/s. FSQ profile registry · Character encoding

AX1200 sends one bit per symbol at 1200 baud. JG2400 sends two bits per symbol at 1200 baud. Its F0 body has no payload error-correction redundancy; F3 uses a nominal half-rate code, before termination bits and other overhead. Raw rate includes bits used for framing and service data, not just the user's message or file. AX1200 link · JG25 FM rates · JG25 protection

The table above uses the deterministic file ARQ timeline documented in MODE_THROUGHPUT.md, not measured RF file goodput. The 256-byte frame column counts a single transmission only; the file-time columns include complete file-transfer exchange and the application’s actual per-mode block sizes. RF signal quality and repeat losses change what finishes fastest in practice.

Compatibility: decoders and services

Match the signal.
Check the services.

Decoding a waveform does not provide the full JSQ service set. Check what the other station’s application supports before sending mail or files.

What a compatible receiving station can actually use
Remote stationSignal compatibilityJSQ chat, mail, and files?
Legacy fldigi / FSQCallClassic FSQ framing, subject to settingsClassic text and supported legacy actions only; not the full JSQ service set
Conventional AX.25 / KISS packet receiverAX1200 framesJSQ services require a JSQ-aware application at the peer
Compatible JG25 receiverExperimental native JG25 packetsFull services only when the peer also implements them
OpenJSQ with multi-receive enabledEnabled modem families and their supported profiles, on a suitable audio pathCommon JSQ services, subject to peer capabilities and station policy

No synchronized clocks. Connectionless on the air. FSQ, AX1200, and JG25 acquire each transmission as it arrives. They do not require JS8-style time-aligned intervals or a persistent connected-mode modem session. Reliability follows the service being used. Service design principles →

JSQ is inspired by JS8Call but is not JS8 waveform compatible. Compatibility details.

FSQ++ · HF / FM

FSQ, enhanced.
Meet FSQ++.

FSQ++ is our name for the FSQ enhancements in OpenJSQ: faster text, several conversations within one SSB passband, and a receiver that checks more than the sender’s callsign before trusting a message.

Seven FSQ Fast profiles

  • FSQ-6W
  • FSQ-12
  • FSQ-16
  • FSQ-20
  • FSQ-30
  • FSQ-36
  • FSQ-42

Faster text

Up to 41 characters/s

FSQ Fast reaches about seven times the ordinary FSQ-6 text rate. FSQ-42 carries approximately 41 lower-case characters/s at 205 raw bit/s, using more bandwidth. The receiving station needs a compatible Fast decoder.

Compare the profiles →

Shared SSB passband

5 classic slots. 3 on 6W.

Separate stations can chat, transfer files, deliver mail, or exchange network traffic in different slots. One receiver can listen across the enabled slots.

Explore the slot plans ↓

Message integrity

CRC-16, beyond the callsign.

A compact CRC-16 checks the sender, destination, command, and text for corruption. Layered receive validation helps keep damaged messages out of unattended tasks.

See what gets checked ↓

One SSB passband · several independent exchanges

Give each exchange its own space.

SSB slot sharing
Choose a profile to see how it shares the passband

Five narrow slots. FSQ-2, 3, 4.5, and 6 use the classic slot plan. Keep fldigi, FSQCall, and unknown peers at the conventional 1500 Hz position.

Three wider slots. FSQ-6W retains room for separate exchanges. It is an extension that requires a compatible Fast decoder.

Trade sharing for speed. FSQ-12 and higher use a single whole-channel slot plan. Actual signal width grows with the selected profile.

Slot sharing is for SSB. SSB can carry several separated signals in the same receive passband. FM capture can let one transmission suppress the others, so these slots do not provide simultaneous conversations on an FM channel. FSQ itself still works on FM.
Illustrative DSP passband outline and slot allocations, not a measured filter response or exact frequency scale. The callsigns identify each station pair; icons label example activities. Any slot can carry any supported service. Each station remains half-duplex and transmits one signal at a time.

Built for messages that do things

A bad decode should not become an automatic action.

A wrong character in a chat is frustrating. A damaged command, file request, or mail instruction can affect what a station does. FSQ++ combines receive-quality and framing checks, sender validation, and message-integrity evidence before accepting traffic for automatic services.

CRC-16 adds just five FSQ characters. It checks the logical message, including the destination and text. It is optional at classic speeds and required for directed FSQ Fast traffic. This is error detection, not forward error correction (FEC): it detects corruption rather than repairing the message.

More than a callsign check

  1. Check the reception.Assess signal confidence, framing, and interruptions.
  2. Check the message.Evaluate sender and CRC evidence, including the whole-message CRC-16 when present.
  3. Control what happens next.Checked traffic can use permitted automatic services. Unverified traffic needs operator review; rejected decodes stay out of conversations.

These checks protect the work above the modem: automatic station actions, file transport, and mail handling.

FSQ text rates, integrity checks, and profile details

With full receive coverage enabled, the FSQ listener can monitor all 11 classic and Fast speeds and normally answers at the requester's speed when automatic replies are permitted. Reduced receive coverage can leave some speeds unheard. Multi-receive behavior

At classic speeds, the optional whole-message CRC-16 is off by default for legacy compatibility: fldigi and FSQCall can display its extra check characters. Sender-callsign protection and whole-message protection cover different data.

Receive validation considers framing and integrity evidence. Checked traffic is eligible for automatic replies; unverified traffic needs operator approval and does not trigger automatic actions. Monitored candidates remain explicitly untrusted, and rejected decodes are excluded from conversations. Receive grades and controls · Decode Inspector

Ordinary lower-case text ranges from about 2 to 41 characters per second across the registered profiles: about 5.9 characters/s at classic FSQ-6 and 41 characters/s at FSQ-42. Capitals, digits and punctuation can take more symbols. These are character-rate estimates, not binary file speeds or measured end-to-end throughput.

FSQ is a single-carrier, constant-envelope, 33-tone waveform using differential incremental frequency-keying (IFK+) coding. The profiles use radio audio for FM / HF operation; the Fast profiles expand both symbol rate and tone spacing by an integer scale factor. FSQ Fast 4

Tones
33, spaced 8.7890625 Hz × the profile scale factor, around a conventional 1500 Hz centre. FSQ Fast 5
Ordinary profiles
FSQ-2, FSQ-3, FSQ-4.5 and FSQ-6. These are the legacy-interoperable set. FSQ Fast 6
Fast profiles
FSQ-6W, 12, 16, 20, 30, 36 and 42. FSQ Fast 8
Slots
OpenJSQ can monitor five classic FSQ slots inside one SSB passband. Compatibility mode keeps the traditional 1500 Hz slot and places additional OpenJSQ slots around it; unknown or legacy peers stay on 1500 Hz. FSQ-6W is wide enough to reduce the plan to three slots, and the faster profiles use a single whole-channel slot.
Integrity
A CRC-8 protects the sender callsign. The logical message CRC-16 is optional at classic speeds and required for directed Fast traffic. Classic operation leaves it off by default for legacy compatibility. FSQ Fast 29

FM · Experimental

JG25.
Built around voice-radio audio.

JG25 uses four-tone FSK through the normal microphone and speaker path, including FM emphasis and de-emphasis. It does not assume a flat high-speed data connector.

Choose from seven speeds and four error-protection settings to suit the path. Each frame identifies its rate and FEC, so a compatible receiver can decode it without matching the sender’s transmit settings. JG25 is experimental; both stations need compatible builds.

Seven JG25 speeds 1,200–2,400 raw bit/s

  • JG1200
  • JG1400
  • JG1600
  • JG1800
  • JG2000
  • JG2200
  • JG2400

Mode names give the raw bit rate, in 200-bit/s steps. FEC and framing reduce the useful data rate.

Error correction in the on-air format

FEC is built into JG25.

Forward error correction adds redundancy that helps the receiver recover damaged data during reception. Choose F1, F2, or F3 for payload error correction, or F0 for lower overhead without payload FEC. The header remains protected at every setting.

FEC can reconstruct damaged data; CRC-32C checks the decoded frame. The JSQ file service can request another copy of blocks that still fail to arrive intact.

Choose the payload protection

F0
No payload FEC
F1
Lighter redundancy ≈ 3/4 coding rate
F2
More redundancy ≈ 2/3 coding rate
F3
Most redundancy 1/2 coding rate

More redundancy uses more airtime. In the current simulations, F3 needed the least signal; F1 and F2 did not always improve on F0. Compare the results for your path →

A leaner packet format

The design started from a clean slate. Rather than carrying fields inherited from AX.25's X.25-derived packet framing simply because traditional packet radio used them, JG25 uses a native frame designed for JSQ traffic. The aim is to put more of each burst into useful data while retaining the framing and integrity checks needed for reliable decoding.

Less protocol overhead is a design goal, not a claim of guaranteed faster transfers across every radio link.

Why four tones?

The starting question was simple: 1200-baud AX.25 AFSK uses two tones—could more tones improve speed and reliability? Extensive testing through normal FM microphone and speaker paths, including pre-emphasis and de-emphasis, led to four-tone JG25 as the chosen speed/robustness balance among the designs tested, without requiring a flat 9600-baud data port.

JG25 is a separate on-air format. AX.25 equipment and standard KISS TNCs do not gain JG25 support simply because both modes use FM audio.

JG25 raw rates, calculated payload and FEC

The seven modes run from 1,200 to 2,400 raw bit/s. Dividing by eight gives 150–300 bytes/s before frame overhead with no payload FEC; the half-rate FEC profile reduces that calculated body rate to 75–150 bytes/s. These are not measured file-transfer speeds.

Radio
FM on 2 m or 70 cm; wide (25 kHz) FM is the conservative choice. Operator guide 2
Waveform
Continuous-phase 4-FSK, with two Gray-coded bits per symbol. JG.25 3.1
Modes
JG1200 at 600 baud through JG2400 at 1200 baud, in seven steps. The mode name is the raw bit rate. JG.25 4
FEC
F0 none; F1 about 3/4; F2 about 2/3; F3 1/2, using a convolutional code and soft decoding. JG.25 7
Acquisition
A known preamble and synchronization sequence lets the receiver find the packet; the following header is deliberately slower and more heavily protected than the data body. JG.25 5 JG.25 6
Integrity
A CRC-32C integrity check is carried on every frame. JG.25 8
Reliability
JSQ handles acknowledgements and selective repair of missing file blocks, including whole-file SHA-256 verification. JG25 does not add a second automatic-repeat-request (ARQ) layer underneath it. JG25 files
TNC
JG25 runs through computer audio. It does not use a standard AX.25 terminal node controller (TNC) unless that device gains native JG25 support. JG.25 24
Payload bit rate for all seven modes and four FEC profiles. JG.25 4 JG.25 7
ModeBaudF0F1 (~3/4)F2 (~2/3)F3 (1/2)
JG12006001200900800600
JG140070014001050933700
JG1600800160012001067800
JG1800900180013501200900
JG200010002000150013331000
JG220011002200165014671100
JG240012002400180016001200

These are asymptotic payload rates while a data body is transmitting. The exact wire format also includes acquisition, a protected physical-layer header, frame integrity fields and coding termination bits. In OpenJSQ the operator selects mode and FEC; the frame itself tells the receiver what was used. JG.25 6.2

FM · Standard packet

AX.25.
Your existing packet path.

AX1200 carries JSQ traffic inside standard AX.25 UI packets over 1200-baud AFSK. Use OpenJSQ’s built-in audio modem or connect your existing packet equipment through KISS.

Reach through existing digipeaters.

Existing AX.25 digipeaters can repeat these packets without understanding the JSQ content. Set a Digipeater path supported by your local network to extend the radio path. This packet-level forwarding is separate from JSQ application relay; the destination still needs a compatible application for the services you use.

Connect by Bluetooth, serial, or network.

  • Bluetooth Low Energy (BLE): a compatible BLE KISS TNC.
  • Serial COM port: a USB or Bluetooth serial KISS TNC.
  • TCP/IP KISS: Dire Wolf or another network KISS TNC.

Bluetooth serial uses the COM-port option. BLE requires a device that exposes the KISS service and a build with BLE support. KISS connection guide →

Short chats on an existing APRS network.

Select APRS coexistence to encode chats inside APRS user-defined messages and exchange them with other OpenJSQ stations through an existing APRS network. The profile disables file transfers, mail custody, JSQ relay, and station queries and automatic replies, including signal reports.

The receiving application must understand the encoded chat. Use a digipeater path and traffic policy accepted by the local network. APRS coexistence settings →

AX1200 rate and link details

The Digipeater path is empty by default for simplex operation. Each added hop repeats the frame and consumes airtime. Packet settings

AX1200 carries 1,200 raw bit/s (150 bytes/s before overhead). Useful throughput is lower after framing, channel access, turnarounds, and retries. Actual file-transfer speed depends on the setup and path.

Radio
Any FM rig on 2 m or 70 cm, including a handheld. Operator guide 2
Link
AX.25 unnumbered-information (UI) frames over 1200-baud AFSK. Protocol 6
OpenJSQ data
JSQ service records ride in the AX.25 information field using the OpenJSQ application envelope (OFQ2). Protocol 7
Providers
OpenJSQ native audio, BLE KISS, serial COM KISS, or TCP/IP KISS including Dire Wolf. Transport 3

Start with your station.

Follow the guide for your hardware and make a direct test contact.

Operator guideFirst contact