-
Notifications
You must be signed in to change notification settings - Fork 0
Kenwood PC
Kenwood radios in this family are read and written using each radio's own PC Control Command reference. None of the manuals for the TS-590S, TS-590SG, TS-890S and TS-990S held here prints a factory serial rate, so the programme opens all four at 9600; if your radio is set differently, change it at the radio's own menu, because the programme has no speed setting and never probes for one. A wrong speed looks exactly like a dead port.
Nothing is deleted and no menu setting is changed (README). Where a
model's own section below says "channels cannot be deleted," the route
that would clear one differs by radio: the TS-890S and TS-990S print a
dedicated deletion command, MA5, that the programme declines to build
and its outbound gate also refuses outright; the TS-590S and TS-590SG
have no such command — only an inferred side effect of a shortened
memory-write frame — that the programme likewise declines to send. See
each model's own Erase procedure below for the detail. Tone and scan
skip ARE read and written on the radios below, unlike
every Yaesu model this programme also supports; each model's section
states its own record shape and any exception.
Read the 100 memory channels, the 10 programmable scan ranges (each a
start and an end frequency, listed as 100L/100U and so on), and the
menu settings: 88 of them on the TS-590S, 100 on the TS-590SG. Tone and
scan skip ARE read and written on these radios, unlike every Yaesu model
above: the memory record carries a tone mode, separate transmit and
receive tone numbers and a channel-lockout flag.
Refused: a memory channel whose transmit frequency you have not supplied yourself, which is every channel as it comes off the radio. These radios express a split as two frames over one channel number, the programme sends one, and what the second frame answers on a simplex channel is printed nowhere in the manual — so a read leaves the transmit frequency unavailable rather than guessing at it, and the write is refused, naming register entry A9. A genuine split is refused even then, rather than silently written as simplex. A scan range is not affected: in that bank the second frame carries a range's end frequency rather than a transmit frequency, so there is no transmit disposition to require. The refusal lifts on a row only when somebody reads a simplex channel's transmit side off a real radio of that model and reports what came back.
Also refused: any channel that is not FM. The two bytes the memory record carries beside the mode have only two printed meanings, "FM Normal" and "FM Narrow", and the manual never says what they mean in SSB, CW, AM or FSK — so an SSB or CW channel is refused rather than written with a byte whose meaning nobody here holds, naming register entry A23. Reading is unaffected: a channel of any mode reads normally.
Also refused: a 1750 Hz receive tone. It is the last entry of the tone-number chart these radios print and has no entry at all in the tone-squelch chart, so the programme writes it as a transmit tone and refuses it as a receive one.
On the TS-590S only, the filter column cannot be set at all, and channel writes are refused outright on a radio reporting firmware 2.00 or later — or a firmware version the programme cannot read: the manual guarantees the filter position in a memory record is unused only on the 1.xx firmware and says nothing about later versions. The TS-590SG has no such condition and sets the filter normally.
A CHIRP file's ordinary rows import on both radios. A blank Duplex
column imports as simplex; Duplex reading off, and CW, CWR and
RTTY rows (these radios' own mode list prints CW, CW-R, FSK
and FSK-R) are refused. What stays unsaid on an imported CHIRP
channel is the data mode and both tone numbers on the TS-590S, those
plus the filter on the TS-590SG.
Channels cannot be deleted.
Guesses: its speed — the programme opens at 9600, and does not offer 4800, which the radios do: each manual attaches a condition to that rate that a flat list of speeds cannot express.
Not shown: the band edges — neither manual prints a frequency range for these radios, so the programme declares none rather than inventing one.
Erase procedure (front panel):
- TS-590S: "The TS-590S has no erase command this build will send, and the absence is a CHOICE over the weakest evidence in the book rather than a plain gap. The only clearing route this radio's own book prints is a side effect of a shortened memory-write frame — leave one digit of the name field unspecified, set every other parameter to zero, and the channel is erased — and the LENGTH of that short frame is a reading of the sentence rather than a number the book prints anywhere. This build therefore admits a memory-write frame of exactly 50 bytes and no other, so the short form cannot be sent even by accident. A channel can be cleared only at the radio itself, and this build does not describe how: no TS-590S instruction 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 clearing procedure in the radio's own instruction manual."
- TS-590SG: "The TS-590SG has no erase command this build will send, and the absence is a CHOICE over the weakest evidence in the book rather than a plain gap. The only clearing route this radio's own book prints is a side effect of a shortened memory-write frame — leave one digit of the name field unspecified, set every other parameter to zero, and the channel is erased — and the LENGTH of that short frame is a reading of the sentence rather than a number the book prints anywhere. This build therefore admits a memory-write frame of exactly 50 bytes and no other, so the short form cannot be sent even by accident. A channel can be cleared only at the radio itself, and this build does not describe how: no TS-590SG instruction 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 clearing procedure in the radio's own instruction manual."
Read the 100 memory channels and the menu settings: 158 of them on the TS-890S, 194 on the TS-990S. Tone and scan skip ARE read and written on these radios, as on the TS-590 pair above: one memory record carries a tone mode, separate transmit and receive tone numbers and a channel-lockout flag, and one frame carries the whole channel. A memory channel read off one of these radios comes back with its transmit frequency already known, so reading the memories, editing a name and sending them straight back works. Every mode these radios publish can be written too: 16 on the TS-890S and 26 on the TS-990S.
Registering a radio does not mean the programme can fill a blank one. Refused: a write to a channel the radio does not already hold. Because one frame carries a whole channel, the programme reads the channel it is about to write and refuses when that read comes back blank, naming register entry A3, rather than creating a channel on an assumption. Channels the radio already holds are written normally.
Also refused: a channel whose secondary side on the radio is not what the programme's own frame would write: before the write it compares the radio's own secondary parameters against what it would emit and refuses, naming the parameter and both values, rather than overwriting a side your file never described.
Also refused: a 1750 Hz receive tone, on both rows and for the same reason as on the TS-590 pair.
On the TS-990S only: a channel with dual reception switched on is refused outright, and a channel whose own answer says it is section defined is refused at the write, naming register entry A8 — reading it is unaffected.
Slots 100–119 are not offered on either radio, and both radios have them. Neither manual prints what selects a section channel's start frequency and which its end, so a bank of those slots would be a reading rather than a transcription; the programme publishes the 100 ordinary memory channels and stops there.
Not shown: the band edges — neither manual prints a frequency range for these radios.
Data modes travel in the mode column. Both radios spell their data
modes into the mode names themselves — LSB-D, USB-D, FM-D, AM-D
on the TS-890S, and three numbered sets (LSB-D1, LSB-D2, LSB-D3
and so on) on the TS-990S — so there is no separate data-mode column
for a CSV or a CHIRP file to carry.
A CHIRP file's ordinary rows import on both radios, on the TS-590
pair's terms for Duplex and mode. Tone is different: each radio's own
grid legend states, "AND AN IMPORTED CHIRP CHANNEL NO LONGER NEEDS YOU
TO SUPPLY EITHER TONE INDEX, since design 2026-09-12-chirp-b1
(symmetric B1, which supersedes the ruling B2 this note used to
record): a CHIRP row's rToneFreq and cToneFreq columns are read even
on a row whose own Tone mode does not use them, so an ordinary
blank-Tone row's 88.5 fill values carry both, and one frame here
carries the tone mode, the transmit tone and the receive tone together
— all three are Known from the file alone, and the write reaches this
radio's unverified-write consent gate rather than refusing on the tone
rung." A row reading TSQL is still refused on the tone column
outright.
A write may read back as the old value if the radio is displaying that channel. Both manuals print it in the same words: "When setting the channel currently being accessed, the new settings are reflected the next time that channel is accessed." This is about checking on the radio's own front panel: a verification read taken there can show the previous contents while that channel is still on screen, so move off it and read again to see the new value.
Channels cannot be deleted. Both radios print a dedicated channel-deletion command and the programme does not build it.
Guesses: its speed — the programme opens at 9600.
Auto Information's handling on these two radios is developer-facing detail; see the TS-890S and TS-990S notes if you need it.
One recorded observation is not visible in the programme at all. The TS-890S's simulated radio models a blank channel that still carries a leftover name, because the manual's blank-channel note stops short of the name window and says nothing about it; the driver ignores such a residue rather than treating it as channel content, and notes it on the driver's own transport log. Nothing in the app or the command line prints that note today (the lift recorded as L-HW-4).
Erase procedure (front panel):
- TS-890S: "The TS-890S has no erase command this build will send, and on this radio the absence is a CHOICE OVER A PRINTED COMMAND rather than over an ambiguous side effect. This radio's own book prints a dedicated deletion command, MA5, "Memory Channel (Channel Deletion)", and this programme does not delete a user's channels — so it never builds that frame, and the outbound gate refuses any frame beginning MA5 besides, which means the command cannot be sent even by accident or by a caller that asked for it. That is stronger evidence than the TS-590 pair had, and it is refused for the opposite reason: there the clearing route was a reading of a sentence, here it is printed plainly and declined. A channel can be cleared only at the radio itself, and this build does not describe how: no TS-890S instruction 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 clearing procedure in the radio's own instruction manual."
- TS-990S: "The TS-990S has no erase command this build will send, and on this radio the absence is a CHOICE OVER A PRINTED COMMAND rather than over an ambiguous side effect. This radio's own book prints a dedicated deletion command, MA5, "Channel Deletion", and this programme does not delete a user's channels — so it never builds that frame, and the outbound gate refuses any frame beginning MA5 besides, which means the command cannot be sent even by accident or by a caller that asked for it. That is stronger evidence than the TS-590 pair had, and it is refused for the opposite reason: there the clearing route was a reading of a sentence, here it is printed plainly and declined. A channel can be cleared only at the radio itself, and this build does not describe how: no TS-990S instruction 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 clearing procedure in the radio's own instruction manual."
Read and write the memory and scan-edge channels. Tone and scan skip ARE read and written, unlike the Yaesu radios this programme also supports: its 50-byte memory record carries a channel-lockout flag and a tone mode with separate transmit and receive tone numbers. This radio has an 8-character channel name, so a Tag column is shown for it — the only row in this wave that has one. A channel is written back once its transmit frequency, DCS code, REVERSE state and memory group are read from the radio first. The TS-2000X and TS-B2000 answer identically to the TS-2000 over the wire; 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):
- TS-2000: "This program sends no memory-clear frame for the TS-2000: no builder for one exists, and no TS-2000 has ever confirmed what a clear command does over this interface. Follow the memory-channel clear procedure in the radio's own instruction manual instead."
- TS-2000X: "This program sends no memory-clear frame for the TS-2000X: no builder for one exists, and no TS-2000X has ever confirmed what a clear command does over this interface. Follow the memory-channel clear procedure in the radio's own instruction manual instead."
- TS-B2000: "This program sends no memory-clear frame for the TS-B2000: no builder for one exists, and no TS-B2000 has ever confirmed what a clear command does over this interface. Follow the memory-channel clear procedure in the radio's own instruction manual instead."
Read and write the memory channels. Tone mode, both transmit and receive tone numbers, and scan skip are all read and written, unlike the Yaesu radios this programme also supports. This radio has no channel-name field over its interface at all, so no Tag column is shown for it. No TS-570 of any row has ever answered a frame from this project, so every write stays behind the opt-in consent route.
The TS-570DG is UNVERIFIED-BY-INHERITANCE. The manual behind this row names the TS-570D and TS-570S only, never the DG — its support here is inherited from its siblings' command set, not read from a DG-specific document, and its CATID is ASSUMED equal to the D's rather than printed anywhere.
Erase procedure (front panel):
- TS-570D: "This program sends no memory-clear frame for the TS-570D: no builder for one exists, and no TS-570D has ever confirmed what a clear command does over this interface. Follow the memory-channel clear procedure in the radio's own instruction manual instead."
- TS-570S: "This program sends no memory-clear frame for the TS-570S: no builder for one exists, and no TS-570S has ever confirmed what a clear command does over this interface. Follow the memory-channel clear procedure in the radio's own instruction manual instead."
- TS-570DG: "This program sends no memory-clear frame for the TS-570DG: no builder for one exists, and no TS-570DG has ever confirmed what a clear command does over this interface. Follow the memory-channel clear procedure in the radio's own instruction manual instead."
Read and write the memory channels. This radio has no channel-name field over its interface at all — NoTag — so no Tag column is shown for it. Tone mode and transmit tone ARE read and written (one shared index): its 22-byte record has no receive-tone byte at all, so tone_rx cannot travel over this frame regardless of what you set at the radio. Scan skip is also read and written. No TS-870S 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 TS-870S: no builder for one exists, and no TS-870S has ever confirmed what a clear command does over this interface. Follow the memory-channel clear procedure in the radio's own instruction manual instead."
The TS-480's driver exists in this programme and the radio is not in the model list: you cannot select it. The reason is a question about an EMPTY channel. The TS-590SG's manual says that reading a memory channel that has never been written answers with an all-zero record; the 2003 TS-480 manual says nothing about an empty channel anywhere. If a TS-480 rejects that read instead of answering it, a brand-new TS-480 cannot be read by this programme at all, and registering the radio would mean offering its owner a read that fails on the first channel.
What would lift it, and it is not one read. A valid zero record on at
least three separate channels, each confirmed unwritten at the
radio's own front panel, across at least two sessions, with no
silence and no ?; among them, every request and answer kept as the
exact bytes that went over the wire, and an observer named.
internal/wiring/testdata/README.md is written for the person who would
take that observation and says where it goes; a go test run is what
checks it, not a judgement on release day.
Erase procedure (front panel): "The TS-480 has no erase command this build will send, and this radio's own book prints no clearing route for one to send: its memory-write section ends without the shortened-frame side effect the TS-590 book prints, and the only "clear" anywhere in its printed command set clears the RIT offset instead. This build admits a memory-write frame of exactly 50 bytes and no other in any case, so the TS-590's short form could not be sent here either. It would refuse a channel write in any case — no channel write of any kind is sent to this radio by this build — so clearing a channel is doubly a front-panel job here. This build does not describe how: no TS-480 instruction 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 clearing procedure in the radio's own instruction manual."
As of v1.9.0 (commit bec7df97).