-
Notifications
You must be signed in to change notification settings - Fork 0
Yaesu CAT
Yaesu radios in this family are read and written over CAT, using the commands printed in each radio's own CAT Operation Reference Manual. Two of them are explicit about the cable: the FT-891's "USB connection is a dual-UART bridge, so the radio appears as two serial ports, and the manual never says which carries CAT; if the first is silent, try the other", and the FT-991A's "USB connection is a built-in dual-UART bridge, so the radio appears as two serial ports and the manual never says which carries CAT; if the first is silent, try the other." The FTdx101D and FTdx101MP instead "present two virtual COM ports, and only the Enhanced COM Port carries CAT" — the Standard COM Port is for TX control and answers nothing to a CAT probe.
A channel cannot be deleted from the programme: "the Yaesu radios have
no such command." Menu settings are never written
(docs/menu-write-decision.md).
Reads and writes the 99 memories and the 9 PMS pairs, and reads every menu setting. Writes were proven on a real radio, including creating a channel in an empty slot and clearing a tag. Needs firmware V01-10 or later; the programme cannot ask the radio its version, but memory CAT arrived with that firmware, so a radio that answers the read has proved it. Nothing is typed in.
Refused: tone, scan-skip and clarifier cannot be set over CAT, so an edit to any of them is refused rather than silently dropped. The radio does not report per-channel CTCSS tone frequencies, so the programme preserves whatever tone the radio already holds.
Erase procedure (front panel): "The FT-710 has no CAT erase command. To delete a channel on the radio: press and hold [V/M] to open the memory channel list, select the channel, then touch [ERASE]."
Read the 99 memories and the 9 PMS pairs and every menu setting, on the same terms as the FT-710. Writes follow the FT-710's ladder but have never been sent to a real radio.
Erase procedure (front panel):
- FTdx10: "The FTdx10 has no CAT erase command, so a channel can only be deleted at the radio itself. This build does not describe how: no FTdx10 operating manual is held here, and inventing front-panel key presses would be worse than saying nothing — follow the memory-channel erase procedure in the radio's own operating manual."
- FTdx101D: "The FTdx101D's CAT command set has no erase command — its CAT manual lists the whole set, and there is none — so a memory channel can only be cleared at the radio itself. This build does not say how: the FTdx101D's operating manual is not held here, and inventing front-panel key presses for a radio nobody here has touched would be worse than admitting the gap. Use the memory-channel erase procedure in the radio's own operating manual."
- FTdx101MP: "The FTdx101MP's CAT command set has no erase command — its CAT manual lists the whole set, and there is none — so a memory channel can only be cleared at the radio itself. This build does not say how: the FTdx101MP's operating manual is not held here, and inventing front-panel key presses for a radio nobody here has touched would be worse than admitting the gap. Use the memory-channel erase procedure in the radio's own operating manual."
Reads the 99 memories, the 9 PMS pairs and the 159 menu settings; its menu addresses are four digits, other Yaesu radios use three or six, and files accept any of the three widths.
Refused: tone and scan-skip cannot be set over CAT (the memory record
has no tone-number byte and no scan-skip flag), and a transmit-clarifier
flag arriving in a file written for another radio is refused rather
than sent. A CHIRP file's CW, CWR and RTTY rows are not imported:
they resolve to names this radio's own mode list does not print (it
prints CW, CW-R, RTTY-LSB and RTTY-USB), so the row is blocked
rather than guessed at.
Guesses: its speed. The manual lists four rates and marks none as the factory setting, so the programme opens at 38400; if your radio is set differently, change menu 0506 on the radio, because the programme has no speed setting. Its socket: the USB connection is a dual-UART bridge, so the radio appears as two serial ports, and the manual never says which carries CAT; if the first is silent, try the other. And the manual contradicts itself about whether a memory channel may be read at all, so a read refused for a channel that is plainly in use is the manual's ambiguity showing, not a fault in the programme.
Erase procedure (front panel): "The FT-891 has no CAT erase command, and on this radio that absence is documented rather than merely unclaimed: the CAT manual prints the whole command set in one Control Command List and no memory-erase command appears in it. A channel can therefore be cleared only at the radio itself, and this build does not describe how — no FT-891 operating manual is held here, and inventing front-panel key presses for a radio nobody here has touched would be worse than admitting the gap. Follow the memory-channel erase procedure in the radio's own operating manual."
Reads the 99 memories, the 9 PMS pairs and 152 menu settings.
The PMS pairs are listed as the channel numbers 100 to 117, which
is what the radio's CAT record uses, while the radio's own front panel
and manual print the same eighteen slots as P-1L to P-9U. The
numbers are the wire's and the letters are the panel's; they name the
same slots in the same order.
The settings list shows 152 items where the radio's menu chart prints 153 rows. Row 087, RADIO ID, is left out because the chart gives it neither a width nor a parameter — ten printed hyphens and nothing else — so the programme cannot size an answer to it and will not send a question it cannot read.
Refused: the tone frequency number, the DCS code and scan skip are not
part of what this programme writes to a channel. The memory record does
carry a five-state tone byte — CTCSS off, CTCSS encode and decode,
CTCSS encode, DCS encode and decode, DCS encode — which the programme
reads and writes; what it has no field for is which tone or which
DCS code. Set the number, the code and the skip marking at the radio.
A CHIRP file's DTCS and Cross rows are therefore still refused,
and the reason given says so: this radio writes the DCS state but not
the DCS code. A CHIRP file's CW, CWR and RTTY rows are not
imported either, for the FT-891's reason — they resolve to names this
radio's mode list does not print (it prints CW, CW-R, RTTY-LSB
and RTTY-USB). And C4FM is one of this radio's fourteen modes that
CHIRP has no name for at all, so no CHIRP file can describe a C4FM
channel.
Guesses: its speed. The menu row that sets the rate for the socket this programme uses is 031 CAT RATE, which lists 4800, 9600, 19200 and 38400 and marks none as the factory setting, so the programme opens at 38400; if your radio is set differently, change menu 031, because the programme has no speed setting. Menu 029 is not that row — 029 sets the rate of the rear-panel RS-232C jack, a different port. Its socket: the USB connection is a built-in dual-UART bridge, so the radio appears as two serial ports and the manual never says which carries CAT; if the first is silent, try the other.
Erase procedure (front panel): "There is no CAT erase command for the FT-991A, and here that absence is printed rather than merely unclaimed: this radio's Control Command List is the whole of its CAT vocabulary and holds no command that clears a memory channel — the nearest entries, QMB STORE and QMB RECALL, address the quick-memory bank instead. Clearing a channel is therefore something only the radio itself can do, and this build will not describe how: no FT-991A operating manual is held here, and inventing front-panel key presses for a radio nobody here has touched would be worse than saying so. Follow the memory-channel erase procedure in the radio's own operating manual."
Read and write the memory and PMS (programmable memory scan) channels. This radio has no tag/name command anywhere in its manual, so no Tag column is shown for it. The CTCSS tone is a live tone-table index and is read and written like the clarifier, shift and CTCSS state; there is no scan-skip position and no data-mode byte in this 27-byte record. No FTdx5000 has ever answered a frame from this project, so every write stays behind the opt-in consent route.
Erase procedure (front panel): "This program sends no memory-clear frame for the FTdx5000: no builder for one exists, and no FTdx5000 has ever confirmed what a clear command does over CAT. Follow the memory-channel clear procedure in the radio's own manual instead."
Read and write the memory and PMS channels, on the same 27-byte record shape as the FTdx5000. This radio has no tag/name command anywhere in its manual, so no Tag column is shown for it. The CTCSS tone is a live tone-table index and is read and written. One SERIES manual documents both the FT-2000 and the FT-2000D; this programme tells them apart only by which one you chose when you connected. No radio of this family has ever answered a frame from this project, so every write stays behind the opt-in consent route.
Erase procedure (front panel):
- FT-2000: "This program sends no memory-clear frame for the FT-2000: no builder for one exists, and no FT-2000 has ever confirmed what a clear command does over CAT. Follow the memory-channel clear procedure in the radio's own manual instead."
- FT-2000D: "This program sends no memory-clear frame for the FT-2000D: no builder for one exists, and no FT-2000D has ever confirmed what a clear command does over CAT. Follow the memory-channel clear procedure in the radio's own manual instead."
Read and write the memory and PMS channels, on the same 27-byte record shape as the FTdx5000. This radio has no tag/name command anywhere in its manual, so no Tag column is shown for it. The CTCSS tone is a live tone-table index and is read and written. This radio is also marketed as the "FT-9000" — one SERIES manual covers both names — and answers its identity probe with one of three printed CAT IDs, all accepted. No FTdx9000 has ever answered a frame from this project, so every write stays behind the opt-in consent route.
Erase procedure (front panel): "This program sends no memory-clear frame for the FTdx9000: no builder for one exists, and no FTdx9000 has ever confirmed what a clear command does over CAT. Follow the memory-channel clear procedure in the radio's own manual instead."
Read and write the memory and PMS channels, on the same 27-byte record shape as the FTdx5000. This radio has no tag/name command anywhere in its manual, so no Tag column is shown for it. The CTCSS tone is a live tone-table index and is read and written; leaving a channel's tone unset when writing defaults it to wire index 0 rather than refusing. This radio has one extra regular memory channel over the rest of this family — its channels are numbered from 000, not 001. No FT-950 has ever answered a frame from this project, so every write stays behind the opt-in consent route.
Erase procedure (front panel): "This program sends no memory-clear frame for the FT-950: no builder for one exists, and no FT-950 has ever confirmed what a clear command does over its own interface. Follow the memory-channel clear procedure in the radio's own manual instead."
Read and write the memory and PMS channels, on the same 27-byte record shape as the FTdx5000. This radio has no tag/name command anywhere in its manual, so no Tag column is shown for it. The CTCSS tone is a live tone-table index on READ but is printed FIXED on the memory-write frame, so it is read-only over CAT: the programme grades writing it Unsupported outright, and a write naming a tone is refused before anything reaches the radio — nothing is silently lost. AM-N (the manual's own mode 'D') is ASSUMED excluded from the modes this programme will write — it is printed only on the live mode command, never on the memory-read or memory-write legend. No FTdx3000 has ever answered a frame from this project, so every write stays behind the opt-in consent route.
Erase procedure (front panel): "This program sends no memory-clear frame for the FTdx3000: no builder for one exists, and no FTdx3000 has ever confirmed what a clear command does over its own interface. Follow the memory-channel clear procedure in the radio's own manual instead."
Read and write the memory and PMS channels, on the same 27-byte record shape as the FTdx3000. This radio has no tag/name command anywhere in its manual, so no Tag column is shown for it. There is no CTCSS tone route over CAT at all: the tone field is printed fixed on both the read and write frames, so this build neither reads nor writes it. This radio identifies with either of two CAT IDs, "0582" or "0583", depending on whether its optional FFT-1 board is fitted — both answers are accepted as the same radio. No FTdx1200 has ever answered a frame from this project, so every write stays behind the opt-in consent route.
Erase procedure (front panel): "This program sends no memory-clear frame for the FTdx1200: no builder for one exists, and no FTdx1200 has ever confirmed what a clear command does over its own interface. Follow the memory-channel clear procedure in the radio's own manual instead."
Registered in the SAFE SHAPE agreed 13/09/2026 (radio-roadmap.md,
RELEASE PATH RULING): read channels 001-504; write 001-500 ONLY (the
Operating Manual folio 58 says the regular channels are read/write, the
CAT book gives MW the ordinary 27-byte frame). PMS 501-504 (2 scan-limit
pairs) are READ-ONLY until an owner probe shows MW501...; succeeding on
real hardware, at which point this is a one-line capability flip — not a
hardware-unverified state the opt-in write consent can open, since this
project's own caution rather than a documented radio limit. 505-510 (the
60 m band and the Alaska Emergency channel) are NOT in the dialect at
all: real channels the Operating Manual names, but the CAT book never
gives them a channel number. Tags are front-panel-only (a 7-character
name field with no CAT text route), so NoTag. Tone is a live CTCSS-tone
index and is written, for the 500 regular channels only.
The exact boundaries of the PMS bank and the 505-510 span are still being confirmed by hardware probes rather than read from the manual; see the FT-450D notes for what is being checked, and Reporting a test if you own this radio and can help settle it.
Erase procedure (front panel): "This program sends no memory-clear frame for the FT-450D: no builder for one exists, and no FT-450D has ever confirmed what a clear command does over its own interface. Follow the memory-channel clear procedure in the radio's own manual instead."
The first two radios registered on this project's OTHER Yaesu protocol: a 5-byte binary-CAT opcode set (argument-then-opcode frames, no ASCII, no semicolon terminator), distinct from the NEWCAT/MR-MW protocol every other Yaesu row above uses. Neither radio carries a CAT-ID byte on the wire; two fixed probe frames prove identity instead of the usual ID query.
Every write runs the family's full VFO→M choreography: select VFO-A, set frequency, mode, clarifier and shift (and tone), then Store — never a partial update of one field, because there is no per-channel "write record N" command, only "commit whatever VFO-A holds into channel N". The memory record's second half cannot be carried across a rewrite: Store overwrites the whole record from live VFO state, so this build has no way to read those bytes aside and write them back unchanged. NoTag: no channel-name opcode exists in either radio's command table. No FT-890 or FT-900 has ever answered a frame from this project, so every write stays behind the opt-in consent route.
Erase procedure (front panel):
- FT-890: "This program sends no memory-clear frame for the FT-890: no builder for one exists, and no FT-890 has ever confirmed what a clear command does over its own interface. Follow the memory-channel clear procedure in the radio's own manual instead."
- FT-900: "This program sends no memory-clear frame for the FT-900: no builder for one exists, and no FT-900 has ever confirmed what a clear command does over its own interface. Follow the memory-channel clear procedure in the radio's own manual instead."
One registered row for both bodies, sharing the FT-890/FT-900's binary-CAT protocol and VFO→M write choreography, narrowed to its own 16-byte record: there is no tone byte anywhere in it, so this build shows no Tone, Scan Skip or Tag column for this radio at all. The repeater-offset magnitude can be written but never read back.
Store/Enter ships as Unverified and consent-gated: its own channel-argument byte position is an assumed reading (chosen among three equally plausible candidates in the opcode's own parameter table), and the channel-numbering base is assumed 1-based, since the manual's own coding examples disagree with themselves and with each other on this point. This build never hides or retries a read-back mismatch after a write — it is reported as a failed write outright. No FT-1000MP has ever answered a frame from this project, so every write stays behind the opt-in consent route.
Erase procedure (front panel): "This program sends no memory-clear frame for the FT-1000MP or Mark-V: no builder for one exists, and no FT-1000MP has ever confirmed what a clear command does over its own interface. Follow the memory-channel clear procedure in the radio's own manual instead."
The FT-920 — a related but different Yaesu radio from the same era — stays unregistered: its manual documents the Memory Store verb but not how the memory record encodes frequency, so no codec can be written from paper. Deferred to the roadmap.
As of v1.9.0 (commit bec7df97).