ShackAssistant
Guide › Rig control

Rig control

Rig control lets ShackAssistant read and set your radio's frequency and mode over a cable (CAT). Hamlib, the radio library that does this, is included - nothing to install. Pick your radio, pick the port, press Connect. The rest of this page can wait until you need it.

An Icom with a network connection (IC-7610, IC-7300MK2, IC-7760, IC-9700, IC-705) can also be reached without a cable, audio and scope included - see Icom over the network.

Step by step

Connecting, step by step

  1. Settings → Rig Control. Tick Enable Rig Control.
  2. Choose your Rig model. For a radio on the network, pick Hamlib NET rigctl and fill in host and port - or, for an Icom, tick Network (Icom LAN).
  3. Choose the Port your radio's USB or serial cable is on. Ports are shown with their Windows name, e.g. COM3 — Silicon Labs CP210x USB to UART Bridge.
  4. Set the Baud rate to match the radio's menu. The other serial settings can usually stay as they are.
  5. Press New beside Preset, give it a name (IC-7610), and Apply.
  6. On the main window: pick the preset under Rig Control and press Connect.

The frequency in the entry turns red and follows the radio. That means Track is on.

Apply takes effect straight away; no restart needed. Change the radio's settings while it is connected and it reconnects with the new ones by itself.

Settings, Rig Control tab: QSY wipe, rig connection, PTT, rigctld server and the Hamlib library
Everything about the radio on one tab.
Reference

Every field on the tab

FieldWhat it does
Enable Rig Control The master switch. Off, the radio is left alone.
Rig model All radios Hamlib supports. Updating Hamlib adds new ones.
Port The COM ports on this PC, with their Windows names.
Baud, data bits, stop bits, handshake, DTR, RTS Serial settings, to match the radio's menu. DTR and RTS matter when the same plug also carries PTT or a CW key.
Host / Port (network rig) Where rigctld is running - another PC in the shack, or a remote set-up.
Network (Icom LAN) An Icom over its own network server - see Icom over the network.
Poll interval How often the radio is read; 100 ms by default.
Preset + New / Save / Delete The whole connection under a name - see below.
rigctld ServerSee Sharing the radio.
QSY wipeSee QSY wipe.
Hamlib librarySee Updating Hamlib.
More than one radio

Presets

A preset stores the whole connection under a name: model, port and serial settings, host and network port, poll interval, the transverter row, and for an Icom on the network its address, login, audio quality and scope switch.

Day to day

On the main window

  • Connect turns green when the radio answers, and becomes Disconnect in red.
  • Auto Connect connects at every start.
  • Track beside the frequency: ticked, the radio sets the frequency (red field). Untick it to type a frequency yourself, for example to log a QSO afterwards.
  • Mode and Submode are locked while the radio is connected, so the log always has the mode the radio was on.
  • If the connection fails, a message tells you what went wrong.
The callsign box also takes commands for the radio
14074     go to 14.074 MHz
+600      move up 600 Hz   (-600 moves down)
CW        switch the radio to CW

Anything else you type there is treated as a callsign.

The Rig Control frame on the main window: preset, Connect and Auto Connect
Another radio is one choice away.
Microwaves

Transverter and QO-100

A transverter makes a 2 m radio into a 13 cm station, and the radio never finds out: it still reads 144.100. ShackAssistant puts one offset between the two. That offset is a translation layer and not a display trick - above it everything speaks the real frequency, below it the radio speaks its IF.

What is on which side

Speaks 2300.100Speaks 144.100
the entry box and the title barthe cable to the radio
the logbook, so the QSO is right 
a DX spot you click 
the UDP broadcast to a dashboard 
WSJT-X, over the rigctld server 

The layer sits at the boundary of the radio connection, which is why all of those are right at once: the rigctld server and the UDP sender hold the same connection, so a layer any higher up would miss exactly those two.

Where to set it

Settings → Rig Control, in the Rig Connection frame - the same frame as the radio and the port, because New / Save / Delete at the top of it save these three with the preset. A 13 cm setup and a plain HF setup are then two entries in one list.

FieldWhat it is
ModeOff, Transverter or QO-100. This tick box is the only authority: an offset with the box off does nothing, and the marker stays away.
IF bandThe band the radio itself works in, by name, from the same band table the rest of the program uses.
OffsetIn MHz, added to what the radio shows. A comma is read as a point, and it is stored in a way that travels between machines.

The line under the row has five states, three of them red - no band, a zero offset, or not a number. A row that looks usable and does nothing is worse than no row.

A 13 cm setup
Mode:       Transverter
IF band:    2m
Offset:     +2156.000

# radio    144.100
# offset  +2156.000
# antenna 2300.100  <- this is what gets logged
What the refusals mean
2320.800 MHz is another band
    a band change - switch the layer off first

164.800 MHz is not in a band at all
    a typing mistake

Nothing is sent in either case, and the reason says where to switch it off. A set command outside a band cannot be taken back once it is on the air.

Settings, Rig Control: the transverter row with mode, IF band and offset inside the Rig Connection frame
Three fields, saved with the preset.

While it is on

QO-100

The QO-100 narrowband transponder is a fixed 500 kHz wide, and its downlink sits a fixed distance from its uplink. So there is nothing to type twice: choose QO-100, give the IF start frequency your transverter wants, and the offset is worked out from it.

  • The frequency box is labelled TX (MHz): in this mode, with the RX row under it - so there is never a doubt which of the two you are typing.
  • Connecting parks the radio in the IF window if it was elsewhere. Without that the box would show an IF number, because the layer rightly does not translate outside the transponder.
  • A QSO made through the transponder is stamped with the receive frequency and the band 3cm, and Satellite and Propagation fill themselves in. Only what the program itself put there is cleared again, so your own entry is never overwritten. An imported QSO is never stamped - a satellite mark on a QSO that did not go that way is a lie in your log.
  • The receive frequency and band have their own box in Edit QSO, under Frequency.

One offset, so a separate receive path - an LNB with its own LO on the downlink - cannot be expressed and is not this. Simplex is the assumption.

QO-100, with a 70 cm IF
Mode:       QO-100
IF start:   432.000

# uplink    2400.000 .. 2400.500   500 kHz, fixed
# downlink 10489.500 ..10490.000   uplink + 8089.500

# so IF 432.360  ->  TX 2400.360  ->  RX 10489.860
The main window in QO-100 mode: the TX (MHz) frequency box with the RX downlink row beneath it
TX above, RX below - no doubt which is which.
Keying

PTT per transmitter

PTT switches the radio to transmit. Each thing that transmits has its own PTT setting, set where that transmitter is set up - so a voice keyer on CAT and an FSK key on a serial line can live side by side.

TransmitterWhere its PTT is
Voice keyer (message keys, CAT macros) Settings → DVK
Key Master, CWKey Master Settings → CW
Key Master, RTTYKey Master Settings → RTTY
MethodWhat it is
NoneNothing is keyed. For listening or testing decoders.
CATThrough the control connection. Rig control must be connected. With an Icom on the network, PTT goes straight to the radio.
RTS / DTRA hardware line on a serial port, as most simple interfaces use. Works without rig control.

Opening a serial port does not key your transmitter: ShackAssistant drops RTS and DTR as soon as it opens a port.

Sharing

Sharing the radio with WSJT-X

Only one program can open the radio's port at a time. So WSJT-X connects to ShackAssistant instead, on port 4532, as if it were rigctld (Hamlib's standard radio server). WSJT-X, JTDX and other Hamlib programs can then share the radio - frequency, mode and PTT.

  1. On the Rig Control tab, tick Server active on port 4532 (the port can be changed).
  2. In WSJT-X, Settings → Radio, use the settings beside this text.
  3. Test CAT in WSJT-X should go green.

If something does not work, switch on the trace log: it records every command and answer.

To send QSOs from WSJT-X into your log, see Settings & integration.

WSJT-X → Settings → Radio
Rig:             Hamlib NET rigctl
Network Server:  127.0.0.1:4532      # the port set under rigctld Server
PTT Method:      CAT
Mode:            Data/Pkt
The title bar counts them

While the server runs, the title bar shows how many programs are connected - a quick check that WSJT-X found it.

A small kindness

QSY wipe

Tune away from the station you were working and the entry is cleared, so an unworked call does not end up in the next QSO.

SensitivityCounts as “away” from
Fast0.5 kHz
Medium2 kHz
Slow5 kHz
Maintenance

Updating Hamlib from inside

The Hamlib library frame at the bottom of the tab shows the loaded version and its folder.

A newer Hamlib adds new radios and fixes, separate from ShackAssistant updates.

Troubleshooting

If it does not work

What you seeWhat to look at
Connect fails at once Another program has the port - WSJT-X, a terminal program, a second copy of ShackAssistant. The message says so (Hamlib error -22: port in use). Let other programs in through the rigctld server.
Connected, but the frequency stands still Check baud rate and CI-V address in the radio's menu, and settings like “CI-V transceive” or “CAT rate”.
The frequency updates about once a second You are probably connected to an external rigctld with its own caching.
PTT does nothing Press Test in the PTT frame of that transmitter (DVK, or Key Master's CW or RTTY tab). With CAT, rig control must be connected; with RTS/DTR, try the other line.
The mode boxes are grey Normal while the radio is connected - see On the main window.
No models in the list The Hamlib library was not found. The frame at the bottom of the tab shows which folder was searched.

The program's log and the Hamlib log are under Help → Open Debug Log Folder.

The other guides