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 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 (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)
Troubleshooting Hamlib
# List all supported radios
rigctl -l
# Test connection (run after rigctld is running)
rigctl -m 3073 -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}`);
}
};
Environment Variables
WaveLogGate supports two environment variables to control specific behaviors:
WLGATE_RESIZABLE
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
./waveloggate
Windows Usage:
set WLGATE_RESIZABLE=true
WavelogGate.exe
WLGATE_SLEEP
Purpose: 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
./waveloggate
Windows Usage:
set WLGATE_SLEEP=true
WavelogGate.exe
Note: Both environment variables are optional and only need to be set when the specific functionality is required.
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