Published document · Markdown source · part of the specifications index. Experimental drafts can change section numbers; archived revisions are linked from the specifications index.

Protocol compatibility #

Compatibility contract: the pinned fldigi implementation (v4.1.23, 61b97f41…) and the published FSQ documentation by ZL1BPU/ZL2AFP.

Key reference facts (from the Gate 0 audit):

Directed-command reference (from the pinned fldigi implementation) #

Semantics verified against the parse_* bodies in the vendored fsq.cxx. Wire form: DEST<trigger>[args], sent inside a directed frame.

TriggerWire exampleMeaningRemote behavior (fldigi)
(space)w4ijg helloChat textDisplays the message
?w4ijg?Signal reportReplies snr=<estimate>
$w4ijg$Heard-list queryReplies Heard: + its heard list (multi-line)
@w4ijg@Location queryReplies with its QTH text
&w4ijg&Station-message queryReplies with its QTC text
^w4ijg^Version queryReplies fldigi <version>
*w4ijg*Wake stationEnables its monitor (SELCAL) and acks; works even when "asleep"
!w4ijg! textRepeatEchoes the message back immediately (OpenJSQ differs by design: it repeats its own last transmission to the requester, not the supplied text — JSQ_PUBLIC_PROTOCOL_SPEC.md §79)
~w4ijg~ textDelayed repeatEchoes back after 15 s (OpenJSQ: repeats its last transmission after a bounded delay, §79)
#w4ijg#[name.txt]textStore message/fileWrites text to name.txt (default <sender>.txt), acks
+w4ijg+[name.txt]Read message/fileSends the stored file's contents back
|w4ijg|textAlertPops an alert dialog with the text
>w4ijg>FasterSteps its FSQ speed up one notch, confirms new baud
<w4ijg<SlowerSteps its FSQ speed down one notch, confirms
;via;dest textRelayvia retransmits to dest, inserting [origin]
[dest[origin] textRelayed markerMarks traffic relayed from origin; relayed queries answered via the relay path
%w4ijg%SImage transferStarts image RX (mode letter selects size) — OpenJSQ parses the trigger and answers nothing; no image service is transmitted by this release
-Unsupportedfldigi replies "not supported"

allcall frames only honor space, *, #, %, [ (no query amplification storms). OpenJSQ mirrors this table in DirectedCommand and the session's compose logic; every mapping is unit-tested.

Forms (ICS-213 and similar) #

Forms are structured text riding the existing transports: transmitted as a directed message or stored at the remote station via #[formfile]. The serialized layout (field labels + values, flmsg-compatible where feasible) is a UX/application-layer concern — see DESKTOP_UX.md. No modem or protocol changes are required to carry forms.

This document grows into the full field-by-field compatibility spec as the fixture corpus expands. Fixture expectations are the ground truth; do not silently update them (see CONTRIBUTING.md).