Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rigproxygui

A small GUI proxy that sits between a single rigctld instance and multiple client programs that want to talk to it at once (e.g. running two or more FT8/digital-mode apps against the same rig simultaneously).

rigctld (Hamlib) only expects one client connection at a time. Programs like WSJT-X, JTDX, or fldigi each open their own connection and poll frequency, mode, and PTT state continuously — run more than one and they start fighting over the socket. rigproxygui listens on a local port, forwards commands to the real rigctld, and serves a shared, cached view of frequency/mode/PTT to any number of connected clients.

How it works

  • On start, rigproxygui opens a TCP server on a configurable "Listen IP/Port" and connects out to the real rigctld at a configurable "Physical IP/Port".
  • A background loop polls rigctld for frequency (f), mode (m), and PTT (t) roughly once per second and caches the results.
  • Client requests for f, m, and t are answered instantly from the cache, so any number of clients can poll at once without contending for the rig.
  • Any other command (e.g. F, M, T, VFO switches) is forwarded straight through to the real rigctld, and the response is relayed back to the requesting client.
  • While a client is actively transmitting (T 1), the cache-refresh polling pauses so it doesn't collide with time-sensitive commands.
  • Idle clients (no request for 120 seconds) are automatically disconnected to free up resources.

Requirements

Install dependencies:

pip install -r requirements.txt

Usage

  1. Start rigctld as you normally would, e.g.:
    rigctld -m <model_id> -r /dev/ttyUSB0 -t 4535
  2. Run the proxy:
    python rigproxygui.py
  3. In the GUI, configure:
    • Listen IP / Port — where the proxy accepts client connections (this is what you point your FT8/digital-mode programs at instead of the real rig).
    • Physical Rigctld IP / Port — the address of the real rigctld instance from step 1.
    • Auto-connect on startup — if enabled, the proxy starts automatically when the app launches.
  4. Click Start Proxy.
  5. In each client program (WSJT-X, JTDX, etc.), configure the rig control to use "Hamlib NET rigctl" (or equivalent) pointed at the proxy's Listen IP/Port instead of the real rigctld port.

The status panel shows whether the proxy is connected to the physical rigctld backend, and lists currently connected clients.

Settings are saved to rigproxy_config.json in the working directory and reloaded automatically on the next launch.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages