What Rig Bridge Is

Rig Bridge is a small, plugin-based bridge application that runs on the computer physically connected to your radio. It translates between OpenHamClock and your transceiver, handling the low-level CAT, CI-V, or network protocol of each radio make and model.

Once running, Rig Bridge exposes a simple HTTP API on port 5555. OpenHamClock's browser interface connects to that API and, from that moment, every frequency link in the dashboard โ€” a DX spot, a POTA activator, a WSJT-X decode โ€” becomes a one-click tune command sent directly to your radio.

Your Radio 14.074 MHz CAT ยท CI-V ยท USB rigctld ยท flrig ยท TCI SmartSDR ยท RTL-SDR USB / LAN Rig Bridge localhost : 5555 PLUGINS Radio Plugin WSJT-X Relay UDP :2237 APRS TNC Rotator JS8Call / JTDX Cloud Relay exposes HTTP REST + SSE /stream X-RigBridge-Token auth SSE /stream live state ยท 500 ms HTTP POST tune commands OHC Browser DX Cluster ยท WSJT-X Rig Control ยท APRS
How the pieces connect: your radio talks to Rig Bridge over USB or LAN; Rig Bridge exposes an HTTP API on port 5555; OpenHamClock's browser connects to that API to read state and send tune commands.

How OpenHamClock Connects to Rig Bridge

OpenHamClock talks to Rig Bridge over a standard HTTP connection โ€” the same way your browser loads any web page. The connection has two parts:

SSE stream OpenHamClock opens a persistent Server-Sent Events connection to http://<host>:5555/stream. Rig Bridge pushes real-time state updates down this stream whenever the frequency, mode, or PTT state changes โ€” typically every 500 ms. This is how the Rig Control panel stays live without polling.
REST commands When you click a frequency in OpenHamClock, the browser sends an HTTP POST to /freq (frequency in Hz) or /mode. These are authenticated with the API Token in the X-RigBridge-Token header. Unauthenticated requests to write endpoints are rejected.

The token is generated automatically by Rig Bridge on first run and shown prominently in its setup UI. You copy it once into OpenHamClock's Settings โ€” after that the connection is fully automatic.

โ„น๏ธ
OpenHamClock's browser, not its server, connects to Rig Bridge

Rig Bridge is called directly by the browser tab running OpenHamClock, not by OpenHamClock's Node.js server. This means Rig Bridge must be reachable from the machine where the browser is open โ€” not necessarily from the Pi or server that hosts OpenHamClock.

Installing Rig Bridge

Option A โ€” Installer (recommended)

The easiest way. OpenHamClock provides a platform-specific installer script that downloads Rig Bridge, installs dependencies, and starts it automatically.

  1. Open OpenHamClock Settings โ†’ Rig Bridge

    Click the โš™๏ธ icon, navigate to the Rig Bridge tab, and enable it. Download links for your OS will appear.

  2. Run the installer

    Windows: double-click install-rig-bridge.bat
    macOS / Linux:

    bash
    $ chmod +x ~/Downloads/install-rig-bridge.sh
    $ ~/Downloads/install-rig-bridge.sh

    The installer downloads the code, runs npm install, and starts Rig Bridge.

  3. Open the Rig Bridge setup UI

    Navigate to http://localhost:5555. You will see the Rig Bridge dashboard with your API Token displayed at the top. Keep this tab open โ€” you will need the token in the next section.

Option B โ€” From source

If you prefer to run directly from the OpenHamClock repository:

bash
$ cd openhamclock/rig-bridge
$ npm install
$ node rig-bridge.js

Option C โ€” Standalone executable

Pre-built binaries require no Node.js installation. Download the correct file for your platform from the releases page:

Windowsohc-rig-bridge-win.exe
macOS (Intel)ohc-rig-bridge-macos
macOS (Apple Silicon)ohc-rig-bridge-macos-arm
Linux x64ohc-rig-bridge-linux
Raspberry Pi (arm64)ohc-rig-bridge-linux-arm64

Supported Radios

Rig Bridge uses a plugin architecture โ€” each radio type or connection method is a separate module. Select the plugin that matches your radio in the setup UI.

USB direct connection

PluginProtocolRadios (examples)
Yaesu CAT over USB serial FT-991A, FT-891, FT-710, FT-DX10, FT-DX101, FT-DX3000, FT-5000
Kenwood / Elecraft Kenwood ASCII over USB serial TS-890S, TS-590SG, TS-2000, TS-480, K4, K3, K3S, KX3, KX2
Icom CI-V over USB serial IC-7300, IC-7610, IC-9700, IC-705, IC-7851

Network connection

PluginProtocolRadios / software
TCI / SDR TCI WebSocket (TCP) Thetis, ExpertSDR2 (Expert Electronics), Afedri SDR โ€” default port 40001
SmartSDR FlexRadio REST API (TCP) FLEX-6300, FLEX-6400, FLEX-6500, FLEX-6600, FLEX-6700 โ€” default port 4992
rigctld (Hamlib) Hamlib TCP Any radio supported by Hamlib, via the rigctld daemon โ€” default port 4532
flrig XML-RPC Any radio controlled by the flrig front-end โ€” default port 12345
RTL-SDR rtl_tcp protocol RTL-SDR dongles via rtl_tcp โ€” receive only, default port 1234

Configuring Your Radio

All radio configuration is done in the Rig Bridge setup UI at http://localhost:5555. The configuration is saved to a JSON file on your machine:

macOS / Linux~/.config/openhamclock/rig-bridge-config.json
Windows%APPDATA%\openhamclock\rig-bridge-config.json

Yaesu (USB CAT)

  1. Set CAT baud rate on the radio

    On your Yaesu, go to Menu โ†’ Operation Setting โ†’ CAT Rate and set it to 38400.

  2. Configure in the setup UI

    Radio Type โ†’ Yaesu, select your serial port, baud rate 38400, Stop Bits 2, enable Hardware Flow (RTS/CTS) for FT-991A and FT-710. Click Save & Connect.

Icom (CI-V)

  1. Note your radio's CI-V address

    Check your radio's menu under Connectors or CI-V. Common addresses:

    IC-73000x94
    IC-76100x98
    IC-97000xA2
    IC-7050xA4
    IC-78510x8E
  2. Configure in the setup UI

    Radio Type โ†’ Icom, select your serial port, enter the CI-V address, baud rate 115200. Click Save & Connect.

TCI / SDR (Thetis, ExpertSDR)

  1. Enable TCI in your SDR software

    In Thetis: Setup โ†’ CAT Control โ†’ Enable TCI Server (port 40001).

  2. Configure in the setup UI

    Radio Type โ†’ TCI / SDR, Host localhost, Port 40001. Click Save & Connect.

โš ๏ธ
Serial port permissions on Linux

Your user account needs access to /dev/ttyUSB0 (or equivalent). Add yourself to the dialout group and log out/in:

sudo usermod -aG dialout $USER

Connecting OpenHamClock to Rig Bridge

Once Rig Bridge is running and your radio is connected, tell OpenHamClock where to find it and give it the API token.

  1. Copy your API Token from Rig Bridge

    Open http://localhost:5555. The token is shown at the top of the page. Click to copy it.

  2. Open OpenHamClock Settings โ†’ Rig Bridge

    Click the โš™๏ธ icon in OpenHamClock and go to the Rig Bridge tab.

  3. Enter the connection details
    Enable Rig BridgeToggle on
    Hosthttp://localhost (same machine) or http://192.168.1.50 (LAN)
    Port5555
    API TokenPaste the token copied from Rig Bridge
  4. Click Save

    OpenHamClock immediately opens the SSE stream to /stream. The Rig Control panel will show your radio's current frequency within a second if the connection is successful.

โš™๏ธ Screenshot: OpenHamClock Settings โ†’ Rig Bridge panel assets/img/screenshots/rig-bridge-settings.png
The Rig Bridge settings panel in OpenHamClock. Enter the host, port, and API token from Rig Bridge. The status indicator turns green once the SSE stream is established.

Rig Bridge on a Different Machine

If your radio is connected to one computer (e.g. a shack PC) and you open OpenHamClock on another (e.g. a tablet or a Raspberry Pi running the server), Rig Bridge needs to listen on the network, not just localhost.

Start Rig Bridge with the --bind flag, or change bindAddress in the setup UI:

bash
$ node rig-bridge.js --bind 0.0.0.0

Then in OpenHamClock Settings โ†’ Rig Bridge, set Host to the shack PC's LAN IP address (e.g. http://192.168.1.50) instead of localhost.

Cloud Relay

When OpenHamClock is hosted in the cloud (openhamclock.com or your own Railway instance), the browser tab is served from a remote server โ€” it cannot reach localhost:5555 on your home network directly.

The Cloud Relay plugin inside Rig Bridge solves this. Rig Bridge opens a persistent outbound HTTPS connection to your cloud OpenHamClock instance and maintains it as a long-poll channel. Commands from the browser travel:

flow
Browser click โ†’ Cloud OHC server โ†’ HTTPS long-poll โ†’ Rig Bridge โ†’ Radio (USB)

To enable Cloud Relay:

  1. In the Rig Bridge setup UI, go to Security and enable HTTPS. Restart Rig Bridge and install the self-signed certificate when prompted.
  2. In Plugins โ†’ Cloud Relay, enter your cloud OpenHamClock URL and the relay API key from OpenHamClock's Settings โ†’ Rig Bridge page.
  3. In OpenHamClock Settings โ†’ Rig Bridge, set the host to https://localhost (note the s) and click Connect Cloud Relay.

The Rig Control Panel

Once connected, the Rig Control panel in OpenHamClock shows a live readout of your radio's state, updated from the SSE stream:

FrequencyCurrent VFO frequency in large, readable digits.
ModeCW, USB, LSB, FT8, RTTY, AM, FM โ€” derived from the radio.
VFOVFO A or VFO B.
PTTTransmitting / receiving indicator โ€” updates in real time if PTT is enabled in Rig Bridge.

Additional Plugins

Rig Bridge does more than just radio control. The following plugins are enabled from the Plugins tab in the setup UI:

PluginWhat it doesDefault port
WSJT-X Relay Receives FT8/FT4/JT65 UDP packets from WSJT-X and forwards decoded spots to OpenHamClock UDP 2237
JTDX Same as WSJT-X Relay but for JTDX UDP 2238
MSHV MSK144, Q65, and other MSHV modes UDP 2239
JS8Call JS8 keyboard messaging UDP 2242
APRS TNC Receives APRS packets from a local Direwolf TNC (KISS TCP or serial) and pushes them to OpenHamClock TCP 8001
Rotator Controls an antenna rotator via Hamlib's rotctld daemon TCP 4533
Cloud Relay Bridges local rig control to a cloud-hosted OpenHamClock instance HTTPS outbound
Winlink Winlink RMS gateway discovery and Pat client integration HTTP
MeshCom LoRa mesh network messages via MeshCom UDP broadcast UDP 1799
๐Ÿ’ก
WSJT-X and Rig Bridge on the same machine

If WSJT-X and Rig Bridge run on the same PC, enable the WSJT-X Relay plugin in Rig Bridge. In WSJT-X: File โ†’ Settings โ†’ Reporting, tick UDP Server, set hostname 127.0.0.1, port 2237. Rig Bridge passes the decoded spots through to OpenHamClock automatically โ€” no separate configuration in OpenHamClock's .env is needed.