# Kenwood and Xiegu (native CAT)

## Kenwood (USB, network)

A native backend talks straight to a **TS-590 / TS-890 / TS-990 / TS-2000**
over its serial port — frequency, mode, VFO, split and PTT, no OmniRig in
between. **Elecraft K3/K4** speak the same dialect. Pick **Kenwood (USB,
network)** in Settings → CAT.

- **Serial**: COM port + baud.
- **Network**: give a `host:port` instead — for a serial bridge (ser2net, an
  Ethernet-serial adapter). *Not* the radio's own RJ45, which speaks Kenwood's
  KNS/ARCP protocol.
- Split is detected from FR/FT when the radio omits it from its status frame.
- The backend was tested end-to-end against a TS-2000 emulator and reports
  useful errors: a port that opens but stays silent is distinguished from one
  sending data that never answers (the error quotes what arrived).

## Xiegu (G90, X6100, X6200, X5105)

These radios speak CI-V but with a **reduced command set** (no scope, no DSP
block, no data mode), so they have their own backend — pick **Xiegu (USB)** in
Settings → CAT. Frequency, mode, split and PTT.

### PTT on a G90 — read this

A **G90 ignores the CI-V PTT command**. That has three consequences:

1. In the Xiegu settings, choose **how the rig is keyed**: CI-V command, RTS or
   DTR — pick the hardware line your interface wires to PTT.
2. WSJT-X & co transmit through OpsLog's **shared CAT link** (Hamlib NET rigctl
   `127.0.0.1:4532` — see [[CAT Control]]): OpsLog converts the PTT request
   into the hardware line. This is the supported path and it works.
3. **WSJT-X + OmniRig will NOT transmit** a G90: OmniRig sends PTT as a CI-V
   command, which the radio ignores. Either use the native Xiegu backend +
   rigctl sharing, or configure the PTT line (RTS/DTR) inside OmniRig itself.

### Keying on connect

Behind an interface that carries PTT on a modem line (e.g. a DE-19), a G90 used
to go **straight into transmit when OpsLog connected** — Windows raises DTR and
RTS when a serial port opens. The Xiegu backend now drops both lines on
connect, then drives only the line you selected for keying.

## Notes

- Both backends refuse a CI-V/CAT frame read at the wrong offset, so a garbled
  answer can no longer turn into a phantom frequency.
- The protocol trace (Settings → CAT) covers both — see [[CAT Control]].
