Articles

FTDX10, WSJT-X and Log4OM together: CAT error fixed

WSJT-X e Log4OM senza errori CAT con FTDX10 e OmniRig - RadioMeteo

📌 IN SHORT

  • WSJT-X showed «Protocol error» with the FTDX10 because it shared the CAT The link that lets a computer control the radio. port with Log4OM through a VSPE splitter.
  • The splitter copies every radio reply to every program: WSJT-X received the replies meant for Log4OM.
  • The fix: a single middleman, OmniRig, which queues the commands from WSJT-X and Log4OM.
  • It also applies to other Yaesu, Kenwood, Icom and Elecraft radios supported by OmniRig.
  • If «Port is not available» appears after the change, unplug and reconnect the USB cable.

If you use the FTDX10 with several programs at once, for example WSJT-X for FT8 A digital mode: the computer sends and receives short messages even with very weak signals. and Log4OM as your logbook, sooner or later you need to share the radio’s CAT port. In my shack I tried a virtual port splitter (VSPE): Log4OM worked perfectly, while WSJT-X kept showing «Rig control error». Here is the whole story: the error, how to read it, why it happened and the final setup that now runs without errors. The screenshots come from the Italian version of the software.

The symptom: «Rig control error»

The station was set up like this: the FTDX10 connected to the PC by USB, which creates the CAT The link that lets a computer control the radio. port COM3. VSPE (Virtual Serial Ports Emulator) took the data from COM3 and shared it on two virtual ports: COM5 for Log4OM and COM6 for WSJT-X.

Log4OM read frequency The “channel” a station transmits on. and mode with no problem. WSJT-X, after a few seconds, showed this window:

WSJT-X rig control error window with the Show Details button highlighted
The WSJT-X error window: «Show Details…» opens the log with the real cause.

Reading the Hamlib log

The generic message says little. The real cause is in the details: WSJT-X talks to the radio through the Hamlib library, which logs every command sent and every reply received.

WSJT-X Hamlib log: IF command sent to the FTDX10, VS0 reply received, wrong reply VS for command IF and Protocol error
The command sent and the reply received do not match.
  • WSJT-X sends the FTDX10 the IF; command, asking for frequency The “channel” a station transmits on. and status.
  • It receives VS0;, which is the reply to the VS; command (which VFO is selected).
  • Hamlib notices the mismatch («wrong reply VS for command IF») and stops with a Protocol error.

But WSJT-X never sent VS;. Log4OM did.

Why a splitter is not enough

Before and after diagram: the VSPE splitter sends FTDX10 CAT replies to both WSJT-X and Log4OM, while OmniRig handles one command at a time
Before and after: the splitter copies everything, OmniRig queues the commands.

The VSPE splitter does one simple thing: everything coming from the radio is copied to every virtual port. Both WSJT-X and Log4OM poll the radio continuously, several times per second. The FTDX10 answers in order, but the splitter does not know which program each reply belongs to, so it delivers it to all of them.

Log4OM tolerates «foreign» replies and ignores them. Hamlib, used by WSJT-X, is strict: as soon as a reply does not match the command it sent, it stops with an error. That is why one program worked and the other did not.

First attempt: tuning VSPE

Before changing approach I tried to reduce collisions by tuning every setting. These are useful if you want to keep using a splitter.

The splitter

VSPE Virtual Splitter window with source port COM3, virtual ports COM5 and COM6 and RTS DTR redirection highlighted
Splitter options: green to enable, red to change.

COM3 parameters

VSPE COM3 serial settings for the FTDX10: 38400 baud, no flow control, RTS and DTR, 2 stop bits
COM3 must match the radio’s CAT menu: 38400 baud, 8N2, RTS and DTR set to 0 (off).

Virtual ports

VSPE virtual port COM6 settings with RTS and DTR redirection to be disabled
Disable RTS and DTR redirection: PTT is handled via CAT.

WSJT-X

WSJT-X Radio settings for Yaesu FTDX-10 with poll interval, data bits, handshake, mode and PWR SWR reading highlighted
In WSJT-X: poll interval 5 s, data bits Eight, handshake None, mode None, PWR/SWR reading off.

⚠️ Warning

The «Read and display PWR and SWR A number that tells you whether the antenna and radio “get along”: the closer to 1, the better.» and «Stop transmitting when SWR > 2.5» boxes make WSJT-X send extra commands at every poll. With a splitter they multiply collisions.

With these settings errors become rarer but do not disappear: as long as two programs poll the radio through a splitter, sooner or later a reply reaches the wrong program.

The acid test

To confirm the diagnosis I closed Log4OM and left only WSJT-X running. Result: no errors, frequency The “channel” a station transmits on. read correctly, band A group of nearby frequencies used for the same purpose, like a lane on a motorway. in sync and FT8 A digital mode: the computer sends and receives short messages even with very weak signals. transmission on 10 metres.

WSJT-X on FT8 10 metres with frequency read from the FTDX10 and CQ IZ6CLV JN62 being transmitted
WSJT-X alone works: the cause is sharing the port with Log4OM.

Radio, cable and port were fine. The only problem was sharing the CAT The link that lets a computer control the radio. port.

The solution: OmniRig for everyone

In my station Log4OM already used OmniRig, the free program that sits between the radio and your software (setup is covered in Yaesu FTDX10 and Log4OM: How to Configure CAT via USB with OmniRig). It was, however, attached to the splitter’s virtual COM5.

OmniRig settings for Log4OM on virtual port COM5 with a 500 millisecond poll interval
The old setup: OmniRig on the virtual port, polling every half second.

OmniRig has one key feature: only one program talks to the radio. It collects requests from every connected application, queues them and returns each one only its own reply. Both WSJT-X and Log4OM support it directly, so the splitter is no longer needed.

Final OmniRig Rig 1 setup for the FTDX10: COM3, 38400 baud, 8 bits, no parity, 2 stop bits, 2000 ms poll
The final OmniRig setup, directly on the radio’s real port.
  1. Close VSPE and remove it from Windows startup, so COM3 stays free.
  2. OmniRig, RIG 1 tab: Rig type FTDX10, Port COM 3, 38400 baud, 8 bits, parity None, 2 stop bits, Poll int. 2000 ms.
  3. WSJT-X, Settings > Radio: Rig «OmniRig Rig 1», PTT The push-to-talk button you press to transmit. CAT The link that lets a computer control the radio., Mode None, split Listening on one frequency and transmitting on another to avoid confusion. Fake It. Then Test CAT.
  4. Log4OM: CAT interface OmniRig, Rig 1.

The last hurdle: «Port is not available»

On the first start, however, WSJT-X showed a different error:

WSJT-X showing the OmniRig error Port is not available on COM3
OmniRig cannot open COM3.

OmniRig was correctly set to COM3 and Rig 1, and VSPE was closed, yet the port was reported busy. Closing VSPE while it held COM3 open had left the radio’s USB driver with the port «stuck», even though no program was using it.

The fix was simple: unplug and reconnect the USB cable between radio and computer. The driver restarted, the port was released and since then WSJT-X and Log4OM run together with no errors.

💡 Tip

If OmniRig or WSJT-X say the port is not available and nothing is using it, unplug and reconnect the USB cable, or restart the PC, before changing any setting.

Does it apply to other radios?

Yes. The problem is not the FTDX10 but the way CAT The link that lets a computer control the radio. works: any radio controlled by two programs through a splitter risks the same mix-up of replies.

  • Recent Yaesu radios (FTDX101, FTDX10, FT-710, FT-991A and similar): they use text commands such as IF; and VS;, so the Hamlib error is identical.
  • Kenwood and Elecraft: the CAT protocol is very similar, same behaviour.
  • Icom (CI-V): the messages differ, but two programs polling the radio at once can still mix up replies.
  • Other software pairs: N1MM Logger+, JTDX, fldigi or GridTracker instead of WSJT-X and Log4OM hit the same problem when they share the port through a splitter.

The OmniRig fix works for every radio OmniRig supports: Yaesu, Kenwood, Icom, Elecraft, Ten-Tec and several SDR A radio where most of the work is done by software on a computer. receivers. Newer models may need the matching .ini file from the official OmniRig page. Only the rig type and port settings change, and they must match your radio’s CAT menu.

OmniRig runs on Windows only. On Linux and Mac the same idea works with Hamlib’s rigctld or with flrig: one program opens the radio port and the others connect to it.

Final setup at a glance

  • FTDX10, CAT The link that lets a computer control the radio. menu: CAT RATE 38400, CAT TOT 100 ms, CAT RTS OFF. COM3 is the Enhanced port created by the USB cable.
  • VSPE: no longer needed; close it and remove it from startup.
  • OmniRig Rig 1: FTDX10, COM3, 38400, 8N2, Poll int. 2000 ms.
  • WSJT-X: Rig «OmniRig Rig 1», PTT The push-to-talk button you press to transmit. CAT.
  • Log4OM: CAT via OmniRig Rig 1.

⚠️ Safety

With OmniRig connected directly to the radio, the RTS and DTR lines really reach the FTDX10. If the radio ever keys up by itself, set RTS and DTR to Low in OmniRig.

To pass QSOs from WSJT-X to Log4OM see also How to Configure WSJT-X and Log4OM for FT8.

The moral: when two programs must control the same radio, duplicating the serial port is not enough. You need something that queues the questions and hands each program its own answer. OmniRig does exactly that, and it is free.

Sources and further reading

Good FT8 A digital mode: the computer sends and receives short messages even with very weak signals. QSOs!
73 de IZ6CLV

Latest articles