|
1 | | -# CAT and WSJT-X Bridge for Wavelog |
| 1 | +# WaveLogGate - CAT and WSJT-X Bridge for WaveLog |
2 | 2 |
|
3 | | -## Prerequisites |
| 3 | +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. |
4 | 4 |
|
5 | | -* [FLRig](http://www.w1hkj.com/) properly SetUp to your TRX (if you want to use the CAT-Feature. It's optional!) |
6 | | -* WSJT-X (if you want to use the automatic logging from WSJT-X/Z/Y / FLDigi / Tool which produces UDP-Log-Packets) |
7 | | -* WaveLog-Account on any WaveLog instance |
8 | | -* HTTPS (SSL) has to be enabled for Wavelog to use WLGate |
| 5 | +# TL;DR: |
| 6 | +- For CAT you'll need [FLRig](https://www.w1hkj.org/files/flrig/) or [Hamlib](https://github.com/Hamlib/Hamlib/wiki/Download) installed and connected to your Transceiver. |
| 7 | +- For logging QSOs from WSJT-X, you need to configure the so called "Secondary UDP Server" like shown in the picture: |
| 8 | +<img width="788" height="312" alt="image" src="https://github.com/user-attachments/assets/a4d005d0-8546-4ae3-99e8-89a195df9e0e" /> |
9 | 9 |
|
10 | | -## WARNING // IMPORTANT! (When using AppleSilicon Mac) |
11 | 10 |
|
12 | | -If you use a newer mac (with M1,M2,M3, etc.) apple changed their policy for unsigned Apps. |
13 | | -There's a workaround available, but you need the Terminal aka Shell for that. |
14 | | -Instructions: |
| 11 | +## Features |
15 | 12 |
|
16 | | -1. Download Binary/DMG |
17 | | -2. Copy Binary/DMG to Application-Folder |
18 | | -3. Launch Terminal.app |
19 | | -4. Type in the following: |
20 | | - * `xattr -d com.apple.quarantine /Applications/WaveLogGate.app` |
21 | | - * Launch the Application (should launch now) |
| 13 | +### Core Functionality |
| 14 | +- **Automatic QSO Logging**: Real-time logging from WSJT-X, FLDigi, and any software sending ADIF via UDP |
| 15 | +- **CAT Radio Control**: Full radio control via FLRig or Hamlib integration |
| 16 | +- **Dual Profile Support**: Switch between two complete configuration profiles |
| 17 | +- **Real-time Radio Status**: Live frequency, mode, and power status updates to WaveLog |
| 18 | +- **Cross-platform**: Windows, macOS, and Linux support |
| 19 | + |
| 20 | +### Advanced Features |
| 21 | +- **WebSocket Server**: Real-time broadcasting of radio status changes to external clients |
| 22 | +- **HTTP API**: Simple frequency/mode control endpoint for external integrations |
| 23 | +- **Power Monitoring**: Automatic power level reporting (can be disabled if needed) |
| 24 | +- **Split Operation**: Support for split frequency operations |
| 25 | +- **ADIF Processing**: Robust ADIF and XML parsing with automatic band detection |
| 26 | +- **Modern UI**: Bootstrap 4-based interface with responsive design |
22 | 27 |
|
23 | | -## Setup |
| 28 | +## Prerequisites |
24 | 29 |
|
25 | | -1. Download Binary |
26 | | -2. Start Binary (for Windows: Start Binary and after that you have a NEW Binary. One can delete the old one) |
27 | | -3. Fill in informations: |
28 | | - * WAVELog-URL including index.php (if you setted it up with that) |
29 | | - * API-Key (from Wavelog / Right Menu / API-Keys) |
30 | | - * Station-ID (from Wavelog / Right Menu / See Stationlocations / small badge with station-ID) |
31 | | -4. If you're running FLRig on the same machine put 127.0.0.1 to FLRig-Host and 12345 to FLRig Port and enable it. |
32 | | -5. Click "Test" - Button becomes green if working, Red with detailled issue below, when faulty. |
33 | | -6. Click "Save" if everything is okay |
| 30 | +- **WaveLog Instance**: Any WaveLog installation with HTTPS (SSL) enabled |
| 31 | +- **WaveLog API Key**: Generated from WaveLog right menu → API-Keys |
| 32 | +- **WaveLog Station ID**: Found in WaveLog right menu → Station locations |
| 33 | +- **Radio Control Software** (optional): |
| 34 | + - FLRig for CAT control |
| 35 | + - Hamlib for CAT control |
| 36 | + - OR any software capable of sending ADIF via UDP |
| 37 | +- **WSJT-X** (optional): For automatic digital mode logging |
| 38 | + |
| 39 | +## Installation |
| 40 | + |
| 41 | +### Download Pre-built Binaries |
| 42 | +1. Download the latest release from the [WaveLogGate GitHub repository](https://github.com/wavelog/WaveLogGate/releases) |
| 43 | +2. Run the installer for your platform: |
| 44 | + - **Windows**: Run the `.exe` installer |
| 45 | + - **macOS**: Copy the `.app` file to Applications folder |
| 46 | + - **Linux**: Install the `.deb` package or extract the AppImage |
| 47 | + |
| 48 | +### Apple Silicon Mac Users |
| 49 | +Due to macOS security restrictions for unsigned apps: |
| 50 | + |
| 51 | +```bash |
| 52 | +# After copying to Applications folder |
| 53 | +xattr -d com.apple.quarantine /Applications/WaveLogGate.app |
| 54 | +``` |
| 55 | + |
| 56 | +## Configuration |
| 57 | + |
| 58 | +### Basic Setup |
| 59 | +1. **Launch WaveLogGate** |
| 60 | +2. **Enter WaveLog Details**: |
| 61 | + - **WaveLog URL**: Full URL including `/index.php` (e.g., `https://your-wavelog.com/index.php`) |
| 62 | + - **API Key**: From WaveLog right menu → API-Keys |
| 63 | + - **Station ID**: From WaveLog right menu → Station locations (click the small badge) |
| 64 | +3. **Configure Radio Control** (optional): |
| 65 | + - Select radio type: FLRig, Hamlib, or None |
| 66 | + - Enter host and port (default: 127.0.0.1 and appropriate port) |
| 67 | + - Enable/disable mode control and power monitoring |
| 68 | +4. **Test Configuration**: Click the "Test" button - it turns green if successful |
| 69 | +5. **Save Settings**: Click "Save" to persist your configuration |
| 70 | + |
| 71 | +### Radio Configuration Options |
| 72 | + |
| 73 | +#### FLRig Setup |
| 74 | +- **Host**: Usually `127.0.0.1` if running locally |
| 75 | +- **Port**: Default `12345` |
| 76 | +- **Mode Control**: Enable to let WaveLogGate set radio modes automatically |
| 77 | + |
| 78 | +#### Hamlib Setup |
| 79 | +- **Host**: Usually `127.0.0.1` if running locally |
| 80 | +- **Port**: Default `4532` |
| 81 | +- **Mode Control**: Enable to let WaveLogGate set radio modes automatically |
| 82 | +- **Ignore Power**: Check if your radio doesn't report power correctly |
| 83 | + |
| 84 | +### Profile Management |
| 85 | +WaveLogGate supports two complete configuration profiles: |
| 86 | +- Click the profile toggle button (1/2) to switch between profiles |
| 87 | +- Each profile maintains independent WaveLog and radio settings |
| 88 | +- Useful for multiple stations or operating locations |
| 89 | + |
| 90 | +## Software Integration |
| 91 | + |
| 92 | +### WSJT-X Setup |
| 93 | +1. Open WSJT-X Settings → Reporting |
| 94 | +2. **Enable "Secondary UDP Server"** |
| 95 | +3. Set UDP port to **2333** |
| 96 | +4. **Important**: Do NOT set the main "UDP Server" to port 2333 |
| 97 | + |
| 98 | +### FLDigi Setup |
| 99 | +Configure FLDigi to send ADIF logs via UDP to port 2333. |
| 100 | + |
| 101 | +### WaveLog Integration |
| 102 | +1. **For Live QSOs**: Open WaveLog Live Logging → Radio tab → Select "WLGate" |
| 103 | +2. **For Manual QSOs**: In Stations tab, select "WLGate" as radio |
| 104 | +3. **Bandmap Control**: Click spots in WaveLog bandmap to automatically QSY your radio |
| 105 | + |
| 106 | +## API and Integration |
| 107 | + |
| 108 | +### HTTP API |
| 109 | +**Endpoint**: `http://localhost:54321/{frequency}/{mode}` |
| 110 | + |
| 111 | +Example: |
| 112 | +```bash |
| 113 | +# Set radio to 7.155 MHz LSB |
| 114 | +curl http://localhost:54321/7155000/LSB |
| 115 | +``` |
| 116 | + |
| 117 | +### WebSocket Server |
| 118 | +**Port**: `54322` |
| 119 | +**Protocol**: WebSocket |
| 120 | + |
| 121 | +Real-time radio status updates: |
| 122 | +```javascript |
| 123 | +const ws = new WebSocket('ws://localhost:54322'); |
| 124 | +ws.onmessage = (event) => { |
| 125 | + const data = JSON.parse(event.data); |
| 126 | + if (data.type === 'radio_status') { |
| 127 | + console.log(`Frequency: ${data.frequency}, Mode: ${data.mode}`); |
| 128 | + } |
| 129 | +}; |
| 130 | +``` |
| 131 | + |
| 132 | +See [WEBSOCKET_README.md](WEBSOCKET_README.md) for detailed integration examples. |
| 133 | + |
| 134 | +## Advanced Settings |
| 135 | + |
| 136 | +Access advanced settings by pressing **Ctrl+Shift+D** in the configuration window: |
| 137 | + |
| 138 | +- **Force Hamlib**: Override FLRig and use Hamlib instead |
| 139 | +- **Disable Power Transfer**: Stop sending power readings to WaveLog |
| 140 | +- **Debug Options**: Additional logging and troubleshooting options |
| 141 | + |
| 142 | +**Note**: Advanced settings are in beta - restart the application after changes to ensure they're applied correctly. |
| 143 | + |
| 144 | +## Development |
| 145 | + |
| 146 | +### Prerequisites |
| 147 | +- Node.js (v14+) or Bun |
| 148 | +- Git |
| 149 | + |
| 150 | +### Setup Development Environment |
| 151 | +```bash |
| 152 | +# Clone repository |
| 153 | +git clone https://github.com/wavelog/WaveLogGate.git |
| 154 | +cd WaveLogGate |
| 155 | + |
| 156 | +# Install dependencies |
| 157 | +npm install |
| 158 | +# or with bun |
| 159 | +bun install |
| 160 | + |
| 161 | +# Start development mode |
| 162 | +npm start |
| 163 | +# or with bun |
| 164 | +bun start |
| 165 | + |
| 166 | +# Build application |
| 167 | +npm run make |
| 168 | +``` |
34 | 169 |
|
35 | | -## WSJT-X (and derivates) SetUp |
| 170 | +### Development Notes |
| 171 | +- Configuration stored in application data directory |
| 172 | +- Debug console available in development mode |
| 173 | +- Single instance enforcement (only one can run at a time) |
| 174 | + |
| 175 | +## Network Ports |
36 | 176 |
|
37 | | -Go To WSJT-X-Settings // Reporting |
38 | | -Enable "Secondary UDP Server" like shown in the picture. Do NOT set "UDP Server" (above) to the same Port! |
| 177 | +- **2333/UDP**: WSJT-X and ADIF log reception |
| 178 | +- **54321/HTTP**: Frequency/mode control API |
| 179 | +- **54322/WebSocket**: Real-time radio status broadcasting |
| 180 | +- **12345**: Default FLRig port (if used) |
| 181 | +- **4532**: Default Hamlib port (if used) |
39 | 182 |
|
40 | | - |
| 183 | +## Troubleshooting |
41 | 184 |
|
42 | | -## SetUp/Working with CAT in Wavelog |
| 185 | +### Common Issues |
| 186 | + |
| 187 | +#### Port Conflicts |
| 188 | +- Ensure ports 2333, 54321, and 54322 are not blocked |
| 189 | +- Stop other applications using these ports |
| 190 | +- Application shows clear error messages for port conflicts |
| 191 | + |
| 192 | +#### Radio Connection Issues |
| 193 | +- Verify FLRig/Hamlib is running and accessible |
| 194 | +- Check host/port configuration matches your radio control software |
| 195 | +- Test connectivity using the "Test" button in WaveLogGate |
| 196 | + |
| 197 | +#### WaveLog Connection Issues |
| 198 | +- Verify WaveLog URL is correct and accessible |
| 199 | +- Check API key is valid and not expired |
| 200 | +- Ensure Station ID exists in your WaveLog instance |
| 201 | +- HTTPS must be enabled on WaveLog |
| 202 | + |
| 203 | +#### Linux Specific Issues |
| 204 | +- Some distributions may need additional libraries: |
| 205 | + ```bash |
| 206 | + # For Raspberry Pi or some Linux distributions |
| 207 | + sudo apt-get install libasound2-dev |
| 208 | + ``` |
| 209 | + See [DB4SCW's guide](https://www.db4scw.de/getting-waveloggate-to-run-on-the-raspberry-pi/) for detailed Raspberry Pi setup. |
| 210 | + |
| 211 | +#### macOS Apple Silicon Issues |
| 212 | +If the app won't start on Apple Silicon Mac: |
| 213 | +```bash |
| 214 | +xattr -d com.apple.quarantine /Applications/WaveLogGate.app |
| 215 | +``` |
| 216 | + |
| 217 | +### Debug Information |
| 218 | +- Check the application log for detailed error messages |
| 219 | +- Use Ctrl+Shift+D to access advanced settings |
| 220 | +- In development mode, use the browser console for debugging |
43 | 221 |
|
44 | | -1. Open Live-Logging |
45 | | -2. Set Radio at Radio-Tab |
46 | | -3. Do QSO |
47 | | -4. Log |
| 222 | +## Contributing |
48 | 223 |
|
49 | | -Radio will be saved for next QSO |
| 224 | +Contributions are welcome! Please: |
50 | 225 |
|
51 | | -## Features |
| 226 | +1. Fork the repository |
| 227 | +2. Create a feature branch |
| 228 | +3. **Submit pull requests to the `dev` branch only** |
| 229 | +4. Follow the existing code style |
| 230 | +5. Test changes across platforms if possible |
52 | 231 |
|
53 | | -* When clicking on a spot in WaveLog-Bandmap your TRX with QSY to the Spot. |
54 | | -* If you log a (non WSJT-X) QSO first go to "Stations Tab" and chose "WLGate" as Radio. After that Band/Mode/QRG will be automatically taken from your Rig into the QSO-Fields |
55 | | -* When clicking the loupe at Live-QSO/Post-QSO Wavelog will automaticly lookup the Spot behind the QRG (if there's a spot) |
| 232 | +### Notable Contributors |
| 233 | +- [gotoradio](https://github.com/gotoradio) |
| 234 | +- [Northrup](https://github.com/northrup) |
| 235 | +- [Frédéric (ON4PFD)](https://github.com/fred-corp) |
56 | 236 |
|
57 | | -Enjoy |
| 237 | +## Version History |
58 | 238 |
|
59 | | -## Advanced Settings (Beta!) |
60 | | -* Press CTRL+SHIFT+D in config-Window. A second window appears. |
61 | | -* You can enable Hamlib instead of FLRig here. |
62 | | -* You can disable taking over the Power to Wavelog here. |
63 | | -* WARNING: This is in Beta-State. The main-config-window may(!) not show all changes. To make sure whats saved, pse restart the Application after changing the advanced-config |
| 239 | +- **v1.1.x**: Current stable version with full WebSocket support and dual profiles |
| 240 | +- **v1.0.x**: Basic FLRig and WSJT-X integration |
| 241 | +- Earlier versions: Limited feature set |
64 | 242 |
|
65 | | -## Contributing |
| 243 | +## License |
66 | 244 |
|
67 | | -Contribution is welcome. PRs will only be accepted against the Dev-Branch. |
| 245 | +This project is licensed under the terms specified in the [LICENSE](LICENSE) file. |
68 | 246 |
|
69 | | -## Contributions |
70 | | -Tnx for contributing: |
71 | | -[gotoradio](https://github.com/gotoradio) [Northrup](https://github.com/northrup) [Frédéric (ON4PFD)](https://github.com/fred-corp) |
| 247 | +## Support |
72 | 248 |
|
73 | | -## Troubleshooting |
74 | | -Since we are not able to test every Linux-Version out there, we're collecting some "workarounds" and tips if there are problems with the Linux-Version. |
75 | | -* Problem: libasound.so.2 cannot be found AND possible Problems for Raspberry: [Blogpost from DB4SCW (Thank u!)](https://www.db4scw.de/getting-waveloggate-to-run-on-the-raspberry-pi/) |
76 | | -## |
| 249 | +- **Issues**: Report via [GitHub Issues](https://github.com/wavelog/WaveLogGate/issues) |
| 250 | +- **Documentation**: See additional README files in the repository for specific features |
| 251 | +- **WaveLog**: [WaveLog Website](https://wavelog.org/) for logging system support |
0 commit comments