A modern Electron-based gateway application that connects WSJT-X, FLRig, Hamlib, and other amateur radio software to WaveLog for seamless logging and radio control.
- For CAT you'll need FLRig or Hamlib installed and connected to your Transceiver.
- For logging QSOs from WSJT-X, you need to configure the so called "Secondary UDP Server" like shown in the picture:
If you want to use a lean headless-Version for CAT or QSO-Transportation, which runs on 32bit-Systems as well, try our partner-projects (no suppert for it - experimentat):
- CAT: WaveLogGoat
- QSO-Transport: WaveLogStoat
- Automatic QSO Logging: Real-time logging from WSJT-X, FLDigi, and any software sending ADIF via UDP
- CAT Radio Control: Full radio control via FLRig or Hamlib integration
- Dual Profile Support: Switch between two complete configuration profiles
- Real-time Radio Status: Live frequency, mode, and power status updates to WaveLog
- Cross-platform: Windows, macOS, and Linux support
- WebSocket Server: Real-time broadcasting of radio status changes to external clients
- HTTP API: Simple frequency/mode control endpoint for external integrations
- Power Monitoring: Automatic power level reporting (can be disabled if needed)
- Split Operation: Support for split frequency operations
- ADIF Processing: Robust ADIF and XML parsing with automatic band detection
- Modern UI: Bootstrap 4-based interface with responsive design
- WaveLog Instance: Any WaveLog installation with HTTPS (SSL) enabled
- WaveLog API Key: Generated from WaveLog right menu → API-Keys
- WaveLog Station ID: Found in WaveLog right menu → Station locations
- Radio Control Software (optional):
- FLRig for CAT control
- Hamlib for CAT control
- OR any software capable of sending ADIF via UDP
- WSJT-X (optional): For automatic digital mode logging
- Download the latest release from the WaveLogGate GitHub repository
- Run the installer for your platform:
- Windows: Run the
.exeinstaller - macOS: Copy the
.appfile to Applications folder - Linux: Install the
.debpackage or extract the AppImage
- Windows: Run the
Due to macOS security restrictions for unsigned apps:
# After copying to Applications folder
xattr -d com.apple.quarantine /Applications/WaveLogGate.app- Launch WaveLogGate
- Enter WaveLog Details:
- WaveLog URL: Full URL including
/index.php(e.g.,https://your-wavelog.com/index.php) - API Key: From WaveLog right menu → API-Keys
- Station ID: From WaveLog right menu → Station locations (click the small badge)
- WaveLog URL: Full URL including
- Configure Radio Control (optional):
- Select radio type: FLRig, Hamlib, or None
- Enter host and port (default: 127.0.0.1 and appropriate port)
- Enable/disable mode control and power monitoring
- Test Configuration: Click the "Test" button - it turns green if successful
- Save Settings: Click "Save" to persist your configuration
- Host: Usually
127.0.0.1if running locally - Port: Default
12345 - Mode Control: Enable to let WaveLogGate set radio modes automatically
- Host: Usually
127.0.0.1if running locally - Port: Default
4532 - Mode Control: Enable to let WaveLogGate set radio modes automatically
- Ignore Power: Check if your radio doesn't report power correctly
WaveLogGate supports two complete configuration profiles:
- Click the profile toggle button (1/2) to switch between profiles
- Each profile maintains independent WaveLog and radio settings
- Useful for multiple stations or operating locations
- Open WSJT-X Settings → Reporting
- Enable "Secondary UDP Server"
- Set UDP port to 2333
- Important: Do NOT set the main "UDP Server" to port 2333
Configure FLDigi to send ADIF logs via UDP to port 2333.
In general have a look at the pages/wiki for hamlib / rigctld
As an example for Icom transceivers like the IC-7300, you can use rigctld (Hamlib daemon) to provide CAT control:
-
Install Hamlib (if not already installed):
# Ubuntu/Debian sudo apt-get install hamlib-utils # macOS brew install hamlib # Windows # Download from https://github.com/Hamlib/Hamlib/releases
-
Start rigctld for IC-7300:
# Basic configuration for IC-7300 on USB serial port rigctld -m 3073 -r /dev/ttyUSB0 -s 38400 -T localhost -t 4532 # Windows example (replace COM3 with your actual port) rigctld.exe -m 3073 -r COM3 -s 38400 -T localhost -t 4532
Parameters explained:
-m 3073: Model number for - e.g. - Icom IC-7300 (userigctl -lto see all models)-r /dev/ttyUSB0: Serial port device (adjust for your setup / on Windows its COMx)-s 38400: Serial baud rate (IC-7300 default is 38400)-T localhost: TCP host for rigctld daemon-t 4532: TCP port for rigctld daemon (default WaveLogGate Hamlib port)
-
Configure WaveLogGate:
- Radio type: Hamlib
- Host:
127.0.0.1 - Port:
4532(must match rigctld port)
# List all supported radios
rigctl -l
# Test connection (run after rigctld is running)
rigctl -m 3073 -r /dev/ttyUSB0 get_freqImportant: rigctld must remain running in the background for WaveLogGate to control your radio.
- For Live QSOs: Open WaveLog Live Logging → Radio tab → Select "WLGate"
- For Manual QSOs: In Stations tab, select "WLGate" as radio
- Bandmap Control: Click spots in WaveLog bandmap to automatically QSY your radio
Endpoint: http://localhost:54321/{frequency}/{mode}
Example:
# Set radio to 7.155 MHz LSB
curl http://localhost:54321/7155000/LSBPort: 54322
Protocol: WebSocket
Real-time radio status updates:
const ws = new WebSocket('ws://localhost:54322');
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
if (data.type === 'radio_status') {
console.log(`Frequency: ${data.frequency}, Mode: ${data.mode}`);
}
};WaveLogGate supports two environment variables to control specific behaviors:
Purpose: Makes the application window resizable instead of fixed size
Use Case: Useful for tiling window managers (i3, Hyprland, etc.) or when you need to resize the window manually
Linux/macOS Usage:
export WLGATE_RESIZABLE=true
./waveloggateWindows Usage:
set WLGATE_RESIZABLE=true
WavelogGate.exePurpose: Enables sleeping/snooze functionality for the application
Use Case: When set, allows WaveLogGate to enter sleep mode during inactivity, reducing system resource usage. DANGER Use with care. It may happen that CAT stops working with this setting.
Linux/macOS Usage:
export WLGATE_SLEEP=true
./waveloggateWindows Usage:
set WLGATE_SLEEP=true
WavelogGate.exeNote: Both environment variables are optional and only need to be set when the specific functionality is required.
- Node.js (v14+) or Bun
- Git
# Clone repository
git clone https://github.com/wavelog/WaveLogGate.git
cd WaveLogGate
# Install dependencies
npm install
# or with bun
bun install
# Start development mode
npm start
# or with bun
bun start
# Build application
npm run make- Configuration stored in application data directory
- Debug console available in development mode
- Single instance enforcement (only one can run at a time)
- 2333/UDP: WSJT-X and ADIF log reception
- 54321/HTTP: Frequency/mode control API
- 54322/WebSocket: Real-time radio status broadcasting
- 12345: Default FLRig port (if used)
- 4532: Default Hamlib port (if used)
- Ensure ports 2333, 54321, and 54322 are not blocked
- Stop other applications using these ports
- Application shows clear error messages for port conflicts
- Verify FLRig/Hamlib is running and accessible
- Check host/port configuration matches your radio control software
- Test connectivity using the "Test" button in WaveLogGate
- Verify WaveLog URL is correct and accessible
- Check API key is valid and not expired
- Ensure Station ID exists in your WaveLog instance
- HTTPS must be enabled on WaveLog
- Some distributions may need additional libraries:
See DB4SCW's guide for detailed Raspberry Pi setup.
# For Raspberry Pi or some Linux distributions sudo apt-get install libasound2-dev
If the app won't start on Apple Silicon Mac:
xattr -d com.apple.quarantine /Applications/WaveLogGate.app- Check the application log for detailed error messages
- Use Ctrl+Shift+D to access advanced settings
- In development mode, use the browser console for debugging
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Submit pull requests to the
devbranch only - Follow the existing code style
- Test changes across platforms if possible
- v1.1.x: Current stable version with full WebSocket support and dual profiles
- v1.0.x: Basic FLRig and WSJT-X integration
- Earlier versions: Limited feature set
This project is licensed under the terms specified in the LICENSE file.
- Issues: Report via GitHub Issues
- Documentation: See additional README files in the repository for specific features
- WaveLog: WaveLog Website for logging system support