WaveLogGate - CAT and WSJT-X Bridge for WaveLog
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.
TL;DR:
- 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:
Alternatives
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):
Features
Core Functionality
- 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
Advanced Features
- 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
Prerequisites
- 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
Installation
Download Pre-built Binaries
- Download the latest release from the WaveLogGate GitHub repository
- Run the installer for your platform:
- Windows: Run the
.exe installer
- macOS: Copy the
.app file to Applications folder
- Linux: Install the
.deb package or extract the AppImage
Apple Silicon Mac Users
Due to macOS security restrictions for unsigned apps:
# After copying to Applications folder
xattr -d com.apple.quarantine /Applications/WaveLogGate.app
Configuration
Basic Setup
- 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)
- 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
Radio Configuration Options
FLRig Setup
- Host: Usually
127.0.0.1 if running locally
- Port: Default
12345
- Mode Control: Enable to let WaveLogGate set radio modes automatically
Hamlib Setup
- Host: Usually
127.0.0.1 if 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
Profile Management
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
Software Integration
WSJT-X Setup
- 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
FLDigi Setup
Configure FLDigi to send ADIF logs via UDP to port 2333.
Hamlib Setup
Quickstart - e.g. - for Icom IC-7300
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 306 -r /dev/ttyUSB0 -s 38400 -T localhost -t 4532
# Windows example (replace COM3 with your actual port)
rigctld.exe -m 306 -r COM3 -s 38400 -T localhost -t 4532
Parameters explained:
-m 306: Model number for - e.g. - Icom IC-7300 (use rigctl -l to 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)
Common Hamlib Model Numbers
- Icom IC-7300:
306
- Icom IC-705:
439
- Icom IC-7610:
378
- Yaesu FT-891:
161
- Yaesu FT-991A:
146
Troubleshooting Hamlib
# List all supported radios
rigctl -l
# Test connection (run after rigctld is running)
rigctl -m 306 -r /dev/ttyUSB0 get_freq
Important: rigctld must remain running in the background for WaveLogGate to control your radio.
WaveLog Integration
- 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
API and Integration
HTTP API
Endpoint: http://localhost:54321/{frequency}/{mode}
Example:
# Set radio to 7.155 MHz LSB
curl http://localhost:54321/7155000/LSB
WebSocket Server
Port: 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}`);
}
};
Advanced Settings
Access advanced settings by pressing Ctrl+Shift+D in the configuration window:
- Force Hamlib: Override FLRig and use Hamlib instead
- Disable Power Transfer: Stop sending power readings to WaveLog
- Debug Options: Additional logging and troubleshooting options
Note: Advanced settings are in beta - restart the application after changes to ensure they're applied correctly.
Special: Tiling Window Managers like i3 or Hyprland
With tiling window managers the window will be at it's fixed size which is usually okay for the normal user. In tiling WM this doesn't work properly. To fix that you can allow the window to resize by setting a env variable. This will only affect a handful of users and they will know how to handle it.
export WLGATE_RESIZABLE=true
./path_to_your_bin
Development
Prerequisites
- Node.js (v14+) or Bun
- Git
Setup Development Environment
# 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
Development Notes
- Configuration stored in application data directory
- Debug console available in development mode
- Single instance enforcement (only one can run at a time)
Network Ports
- 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)
Troubleshooting
Common Issues
Port Conflicts
- Ensure ports 2333, 54321, and 54322 are not blocked
- Stop other applications using these ports
- Application shows clear error messages for port conflicts
Radio Connection Issues
- Verify FLRig/Hamlib is running and accessible
- Check host/port configuration matches your radio control software
- Test connectivity using the "Test" button in WaveLogGate
WaveLog Connection Issues
- 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
Linux Specific Issues
macOS Apple Silicon Issues
If the app won't start on Apple Silicon Mac:
xattr -d com.apple.quarantine /Applications/WaveLogGate.app
Debug Information
- 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
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Submit pull requests to the
dev branch only
- Follow the existing code style
- Test changes across platforms if possible
Notable Contributors
Version History
- 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
License
This project is licensed under the terms specified in the LICENSE file.
Support
- Issues: Report via GitHub Issues
- Documentation: See additional README files in the repository for specific features
- WaveLog: WaveLog Website for logging system support