开云体育

ctrl + shift + ? for shortcuts
© 2025 开云体育

Re: CAT control and compatibility with Kenwood TS-480


 

Hello Bj?rn

This afternoon we had a weird power outage in which one of the three phases remained active, and the other two went down. So I was in a weird position of having no internet, but my PC was still working and so was my lab power supply but not any of my other equipment; since apparently different wall sockets are on different phases. Argghhhh... and the aircon wasn't working either, which is a little?uncomfortable when it's?+38C outside and your office is on the attic floor right under the roof. Drying off will take me hours.?

Anyway the end result was that I could neither work on my email and helpdesk ticket mountain nor could I work on the QMX SSB development project. So instead I went and did a number of bug fixes in the QMX code which will be incorporated in the next release, which?I won't leave too long regardless of the state of SSB. So please take the following as a definition of what will happen, from the next?firmware?release onward. It all works great:
  • I discovered RD0; and RU0; do actually set the RIT offset to zero, they just didn't display that properly. They also don't disable RIT mode but I think that's OK because that's also consistent with when RIT mode is selected by a double press of the Left button; RIT stays on even though it's zero, it stays on until you press the "Exit" button to cancel RIT mode. Also, you WANT it this way because if you were just trying to adjust someone slightly off frequency or you were calling CQ and wanted to be able to quickly zero a respondent, then you don't want RIT mode getting cancelled every time you pass through zero on your way from a positive RIT to a negative RIT and vice versa. I well remember a CW QSO with a homebrew station at the other end which had a really severe drift, and I had to work very hard riding the RIT up and down?+/- 2kHz to keep him inside my filter. So RD0; and RU0; now work properly, setting RIT to zero but not cancelling RIT mode.?
  • I also implemented a Set for RT command so that RT1; sets RIT mode on, and RT0; sets RIT to zero and RIT mode off.?
  • I implemented RC; which sets RIT to zero and clears it (if set).
  • I also fixed a few UI vs CAT consistency issues, specifically if you enter or leave RIT mode using any of these CAT commands, the cursor on the LCD screen itself now changes to the RIT field (if RIT is on) or the frequency field (if RIT is off).?
  • I updated the documentation for all this, including the Mode digit of the IF; command, and this will all be in the documentation accompanying the next firmware release. So the mode digit returns the same thing as the MD; command, this behaviour is unchanged but now the IF; documentation properly states this fact.?
For everyone else - I still had time before the power finally came back on and my sweat level started to decrease, to do a few more bug fixes after that (frequency presets are now numbered as the manual says; tune SWR tool display corruption is fixed; voltage icon not being updated when changed from voltage to icon until reboot; RIT rate now moves the cursor when you press the right encoder button (like with normal Tune rate); cancelling loading presets is now on the Exit button, swapping with the rotary encoder button. More details on all these when I get it released.?

73 Hans G0UPL



On Fri, Jul 19, 2024 at 8:11?PM Bj?rn SM7IUN via <bjorn=[email protected]> wrote:
Thanks?Hans,

Much appreciated.

RD/RU
You are right, it is five digits, it was a typo. I know for a fact RD and RU decreases and increases the RIT value on the TS-480.?
Only recently (TS-890 and TS-990) Kenwood?has implemented an absolute RIT control, then using the RF command.?
But for me, as a developer, compatibility with TS-480 is unimportant as long as I know exactly what RD and RU do.
Thank you for the clarification. It would?be great if it was included in the documentation.?

Given your special definition of RD/RU I agree RU0; and RD0; should clear RIT.?
Since RD/RU is relative on "Kenwood?like" radios, they all have a special command to clear RIT: RC;
But again, as long as the behavior is known, compatibility with other radios is unimportant.

FA/FB?
Thank you for the clarification. Much appreciated.

IF
Thank you. The documentation currently says something else.?

Bj?rn SM7IUN

On Fri, Jul 19, 2024 at 10:43?AM Hans Summers via <hans.summers=[email protected]> wrote:
Hello Bj?rn
?
I'm on the DXLog development team and struggle with implementing the drivers for the?
QMX and QCX models. If I had access to them I could do reverse engineering but unfortunately I don't.?

The CAT part of the QMX/QCX documentation is not very detailed and unfortunately also?
somewhat inconsistent.

Just to explain some background. QCX was created in 2017 and there was no CAT port on it; in fact the 32K Flash program memory was 100% full. But CAT was requested and I wrote it. I managed to squeeze existing functionality, to make space for the program code for the CAT features. I chose TS480 because the protocol is well documented and widely supported. I believe (based on similarities) that the Elecraft radios were also based originally off TS480 protocol but I may be wrong on that, and certainly they were later extended and now have their own entries in the list. QRP Labs also has its own radio type in recent hamlibs.?

Because of the very limited program memory and also the fact that of course QCX and TS480 don't have the same capabilities, only a subset of the TS480 protocol was implemented, and it was implemented in a less strict way compared to TS480, in order to save program space. Nevertheless it was sufficient for correct operation with many logging programs. The hardware required a few extra components to be able to share some IO pins with the LCD; later those components were incorporated into PCB revisions so it became standard.?

Later I had requests from QRP Works who wanted to make their SideKar product which had originally been an Elecraft Accessory only.?

George Korper if you are reading this - SideKar is another option for sending keyboard Morse from a QRP Labs transceiver, as you were asking about Keyboards in a different thread.

Anyway - so I added some support for the KY; command to send and retrieve decoded CW. KY is an Elecraft command not a TS480 command so was another departure from pure TS480.?
?
Now some of those CAT commands were inherited into QDX CAT commands, and later QDX CAT was inherited into QMX. Unfortunately QMX doesn't yet handle KY (and perhaps other CW details) because of the inheritance route of the code modules through QCX->QDX->QMX... however this is just an anomaly and will be resolved, in fact it's even quite high on my QMX ToDo list to make KY work properly on QMX. So won't be long I hope.?

QMX has plenty of code space, it isn't so restricted as QCX was so if there are any requests, they can be accommodated (in time).?

I had thought the QCX/QMX documentation is precise and sufficiently detailed but if there are any improvements necessary please let me know/?
?
Since my help desk ticket remains unanswered I am turning to this reflector.?

Apologies for the delay handling that, I'm *still* behind on emails and helpdesk tickets... at the same time trying to carve out a little time for development. Pitying?myself that there is only one me whhaaaaaahhh...?
?
The challenges I face are the following:

RD/RU
Is the implementation of the RD and RU commands really the same as the TS-480??
The documentation suggests otherwise. With the TS-480, RD must be followed by exactly four digits?
and decreases the RIT with a certain number of hertz. RU works?the same but increases the RIT.?
The QMX/QCX documentation seems to suggest RD instead sets the RIT to an absolute value and?
that a sign also must be included?in the command (like with Kenwood's RF command).
How does RD/RU really work with the QMX/QCX and what is the format?

I'm not sure your description of the RU RD commands on a TS-480 is quite right either. The TS-480 document is here:

RD and RU commands are described on pages 17 and 18 respectively.?

The RU description is: "Moves the RIT offset frequency up. Slows down the scan speed in Scan mode". I have no idea what scan mode is but it isn't a current QCX or QMX thing anyway so ignore that. The Set command has format RU p1 p1 p1 p1 p1 ; where P1 is the offset frequency 00000-99999 in Hz. So there are five digits (not four as you state). But my interpretation of the TS480 specification is that this sets the RIT offset frequency in the up direction. Not that it applies a shift to the currently set RIT offset frequency. In other words I interpreted it as an absolute RIT setting, not a shift to the current setting. It seems more logical to me.?

But am I WRONG? Does someone have an actual TS-480 to check? And even if wrong - should I change QMX? (Note: QCX firmware is very stable with few if any known bugs and hasn't had an update for more than 2 years; I'd be reluctant to meddle in QCX firmware unless it is very terribly urgent).?

Attached is a screenshot of the RU command from the Kenwood document. RD is similar. Aside from the 5 digit thing which seems clear, I can't in my view, see a way to interpret this that RU increases the RIT offset. To me it seems it should specify an absolute, positive RIT offset. Since it declares that P1 is the offset frequency, and had previously referred in the description to the "RIT offset frequency". It doesn't say that P1 is a CHANGE to the RIT offset frequency.?

So this is why I implemented it this way. I did not implement the Read command because it appeared to be applicable only in Scan mode.?

To summarize the QMX implementation:
  • RUn; sets an absolute positive RIT of n Hz.?
  • RDn; sets an absolute negative RIT of n Hz.?
  • Neither RU nor RD have a Read implementation, in other words RD; is not supported.?
  • Neither RU nor RD require a sign in front of them; in fact whether you put?+ or - in front of the number, it is ignored. Only the number is read, not the sign; the sign is determined by RU (+) or RD (-)
  • RU and RD are not strict about requiring 5 digits. In other words you can type in RU50; and the RIT will be set to?+50 Hz. You don't need to send RU00050; which would be a strict TS480 compliance; but if you do send RU00050; it will also work fine.?
As a result of typing out this reply and my experiments on an actual QMX+ here I have found the following anomalies and added it to my Dev list to correct:
  • RU0; and RD0; don't set RIT to zero (switching OFF RIT), they do nothing. I think they should set RIT to zero.?
  • RT (sets or reads the RIT function status) only has a Read function, RT; returns the RIT on/off status. If I were to implement the Set function then this would be a way to switch RIT off. Currently there is NO way to set RIT off or to set it to zero from the CAT interface.?
  • I think setting a RU, FA etc command should also move the cursor on the QMX to the altered frequency field; that would make sense and be consistent with what happens if you enter RIT editing on the QMX by double tapping the left button.?
  • Documentation issue: the QMX operating manual says on page 97 in its example of RD, "for example “RD-200;” sets the RIT to -200Hz"; in fact as I mentioned, the minus sign is not required and is ignored. So RD200; would be the correct command to set RIT to -200 Hz.?
FA/FB
With?the?TS-480, the FA and FB commands?must be followed by exactly 11 digits.?
The QMX/QCX seems to accept?a varying?length. Is this true?

Yes. As for RU and RD, with FA and FB QCX/QMX is not strict about the length of the frequency specification, it does not have to be 11 digits.??
?
IF
With the TS-480, the mode field (character number 30) returns the same code as MD.?
This does not seem to be the case with the QMX/QCX. Is this true?

No. On both QCX and QMX IF command character 30 is the same as the result of the MD command.

73 Hans G0UPL

Join [email protected] to automatically receive all group messages.