# CAT Control

OpsLog has **eight CAT backends** (Settings → CAT). Each auto-reconnects and
connects *non-blocking*, so a powered-off radio never freezes the app. Backends
are named by **how the radio is reached**:

| Backend | Use it for |
|---------|-----------|
| **OmniRig** | Any OmniRig-supported rig (Rig 1 / Rig 2, hot-swap). |
| **FlexRadio (API)** | FlexRadio 6000/8000 over the TCP API. → [[FlexRadio]] |
| **Yaesu (USB)** | FTDX10 / FTDX101 family, direct serial — no OmniRig. → [[Yaesu]] |
| **Kenwood (USB, network)** | TS-590 / TS-890 / TS-990 / TS-2000 (Elecraft K3/K4 speak the same dialect), serial or a `host:port` serial bridge. → [[Kenwood and Xiegu]] |
| **Xiegu (USB)** | G90 / X6100 / X6200 / X5105 — CI-V with their reduced command set. → [[Kenwood and Xiegu]] |
| **Icom (CI-V USB)** | Any Icom over USB. → [[Icom]] |
| **Icom (CI-V network)** | An Icom's built-in LAN/internet server, replacing RS-BA1. → [[Remote Icom over the Internet]] |
| **TCI** | SunSDR / ExpertSDR2 and any TCI (WebSocket) server. |

Once connected, frequency / band / mode follow the radio, clicking a cluster
spot tunes the rig, and (for Flex) cluster spots can be pushed to the panadapter.

## Sharing the rig with WSJT-X / JTDX / MSHV (rigctld)

A native backend holds the radio's serial port **exclusively** — so OpsLog can
serve its rig connection to other programs instead: **Settings → CAT → Share
CAT**. In WSJT-X / JTDX / MSHV / Log4OM pick rig model **Hamlib NET rigctl** at
`127.0.0.1:4532`. Works with every backend and both Hamlib command dialects.

> Never point two programs at the same COM port. If another logger or WSJT-X
> opens the rig's port directly while OpsLog holds it, you get "port busy"
> errors, garbled CI-V frames and erratic rig behaviour. One master — OpsLog —
> and everyone else through the shared rigctl port.

## OmniRig

Pick **Rig 1** or **Rig 2** (the two OmniRig slots). Configure the actual COM
port / baud in OmniRig's own settings.

- **VFO to read** — some OmniRig rig files declare the wrong active VFO (an
  IC-7610 file declared VFO B). If the frequency looks frozen or follows the
  wrong VFO, force **A** or **B** here.
- OpsLog and OmniRig must run at the **same privilege level** — one elevated
  ("as administrator") and not the other cannot see each other; OpsLog detects
  and names this case.

## Icom CI-V (USB)

- **Rig model** — pick your model from the dropdown; it sets the correct **CI-V
  address** automatically (or choose *Other* and type the hex address).
- **COM port** + **baud** must match the radio (set *CI-V USB Echo Back* **OFF**
  on the rig).
- The model choice also tailors the console (e.g. attenuator steps: 20 dB on an
  IC-7300, 6/12/18 dB on an IC-7610/7800).

Full console details: **[[Icom]]**.

## TCI

Enter the TCI host + port (default 40001). Gives freq / mode / PTT / split and,
optionally, panorama spots.

## Serial lines (DTR / RTS)

Windows raises the DTR and RTS lines when a serial port opens, and some
interfaces read one of them as **PTT** — the radio goes into transmit the moment
OpsLog connects. Others need the lines **high** to work at all. So:

- **Xiegu** always lowers both on connect (a G90 behind a DE-19 keyed on open),
  and has a setting for which line keys the rig.
- **Yaesu and Kenwood** have an option (off by default) to lower both lines on
  connect — turn it on only if your interface transmits as soon as OpsLog opens
  the port.
- **Icom CI-V** has always dropped them.

## Protocol trace

Settings → CAT can log the **raw protocol** (every CI-V frame, or every Kenwood
command, as hex/text) to the diagnostic log — invaluable when reporting a radio
that answers oddly. The checkbox shows whether the trace is really running.

## Notes

- The **digital sub-mode** (FT4 vs FT8) is inferred from the frequency.
- A radio reporting LSB or USB selects **SSB** in the entry form.
- **Per-band Flex RX/TX antennas** can be configured and are applied
  automatically on band change (Settings → CAT → FlexRadio).
- Split, RIT/XIT and other rig-specific features are exposed on each backend's
  control tab where supported.
