WSJT-X and WaveLogGate on Raspberry Pi


A professional guide for installing WSJT-X and WaveLogGate (for logging) clean from the source.


Before you dive into this blog post, I recommend reading the following blog post first: https://dl1gkk.com/raspberry-pi-ham-radio-best-practice-2026


Introduction

Running a Raspberry Pi with the 32-bit version of Debian Bookworm is a strategic choice for many ham radio operators, especially when using Wine and Vara. To ensure maximum stability and compatibility with existing tools like Pat and Fldigi, building WSJT-X from source is the preferred method. This guide ensures that all dependencies are met without breaking your current setup.

Step 1: Prepare the Workbench (Dependencies)

First, we need to install the necessary compilers and libraries. Open your terminal and run:

sudo apt update
sudo apt install -y build-essential cmake git gfortran qtmultimedia5-dev \
libqt5serialport5-dev libfftw3-dev qttools5-dev-tools qtbase5-dev \
libusb-1.0-0-dev librtlsdr-dev libasound2-dev libreadline-dev \
libsqlite3-dev libboost-log-dev libboost-all-dev qttools5-dev \
libqt5multimedia5-plugins libqt5websockets5-dev qtconnectivity5-dev \
libqt5serialport5-dev

Step 2: The Hamlib Decision

Hamlib is the backbone of your rig control. Depending on your current system state, choose one of the following paths:

Option A: Hamlib is already installed (e.g., from a Pat/Vara setup)
If rigctl --version returns a version number, only install the development headers to keep your current version intact:
sudo apt install -y libhamlib-dev
Option B: Hamlib is NOT installed yet
If you are starting on a fresh system, install the full package:
sudo apt install -y libhamlib-utils libhamlib-dev

Step 3: Cloning and Configuring

Now we fetch the source code and prepare the build environment. We will skip the generation of manual pages and documentation to keep the installation lightweight.

cd ~
git clone https://github.com/WSJTX/wsjtx.git
cd wsjtx
mkdir build
cd build

# Configure the build
cmake -DWSJT_GENERATE_DOCS=OFF -DWSJT_SKIP_MANPAGES=ON ..

Step 4: Compiling with Care

On a 32-bit system, it is safer to use only 2 cores for compilation to avoid memory issues and system stress.

# Compile using 2 cores
make -j2

# Final Installation
sudo make install
sudo ldconfig

Step 5: Permissions and Audio Fix

To access the Digirig sound card and USB ports, your user must be part of the audio and dialout groups. Also, the Qt multimedia plugin is essential for the sound card dropdowns to populate.

sudo usermod -a -G audio $USER
sudo usermod -a -G dialout $USER

# Crucial: Reboot your Pi now
sudo reboot

Step 6: Final Configuration in WSJT-X

  • Radio: Select “FLRIG Flrig” as your Rig. This allows FLRIG to act as the coordinator between WSJT-X and other apps (like Pat), preventing port conflicts.
  • Audio: Select your USB Audio Device (ALSA) for Input and Output.
  • Reporting: Set the UDP Server to 127.0.0.1 and Port 2237. Enable “Accept UDP requests” for future logging integration.


Automated Cloud Logging: Building WaveLogGate 2.0 on Raspberry Pi

A step-by-step guide to building the latest WaveLogGate from source on a 32-bit Debian Bookworm system, including a permanent build environment for easy future updates.


Introduction

WaveLogGate is the essential bridge between your local shack and the cloud-based WaveLog platform (used by the DARC in Germany). Since official ARM binaries are currently unavailable for version 2.0, we will build it ourselves. This method ensures perfect optimization for the Raspberry Pi and keeps you independent of external release cycles.

Step 1: Install Modern Go (1.23.1)

The standard Go version in the Debian repositories is often outdated. We need at least Go 1.23 to compile modern Wails applications. We will install it manually to /usr/local/go.

# Remove old Go version if present
sudo apt remove -y golang-go
sudo apt autoremove -y

# Download and install Go 1.23.1 for ARMv7
cd ~
wget https://go.dev/dl/go1.23.1.linux-armv6l.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.23.1.linux-armv6l.tar.gz

# Permanently update your system PATH
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
echo 'export PATH=$PATH:$(/usr/local/go/bin/go env GOPATH)/bin' >> ~/.bashrc
source ~/.bashrc

Verify the installation by typing go version in your terminal.

Step 2: Setup the Build Environment

We need Node.js for the web-based frontend and GTK libraries for the graphical interface. We also install the Wails CLI, which manages the build process.

sudo apt update
sudo apt install -y nodejs npm libgtk-3-dev libwebkit2gtk-4.0-dev

# Install the Wails CLI tool
go install github.com/wailsapp/wails/v2/cmd/wails@latest

Step 3: Fetch Source and Apply Patch

We clone the official repository. To ensure compatibility with the standard Raspberry Pi OS setup, we switch the frontend package manager from “Bun” to the reliable “NPM”.

cd ~
git clone https://github.com/wavelog/WaveLogGate.git
cd WaveLogGate

# Patch the config: change "bun" to "npm"
sed -i 's/bun/npm/g' wails.json

Step 4: Compiling the Application

Now we let the Raspberry Pi do the heavy lifting. Wails will handle all dependencies and compile the final binary.

# Start the build process
wails build

Once finished, your compiled binary is located in build/bin/WavelogGate.

Step 5: Installation and Desktop Shortcut

To make the application easily accessible, we move it to a central bin folder and create a desktop launcher.

# Create a bin folder and copy the binary
mkdir -p ~/bin
cp build/bin/WavelogGate ~/bin/
chmod +x ~/bin/WavelogGate

# Create the Desktop Shortcut
nano ~/Desktop/WaveLogGate.desktop

Paste the following into the editor:

[Desktop Entry]
Name=WaveLogGate
Comment=Cloud Logging Gateway
Exec=/home/pi/bin/WavelogGate
Icon=transmission-hookup
Terminal=false
Type=Application
Categories=Network;HamRadio;

Save (Ctrl+O) and Exit (Ctrl+X), then make it executable: chmod +x ~/Desktop/WaveLogGate.desktop.

Pro Tip: Easy Future Updates

Because we kept the build tools installed, updating WaveLogGate to a newer version in the future is a 60-second task. Simply run:

cd ~/WaveLogGate
git pull
wails build
cp build/bin/WavelogGate ~/bin/

Final Note: Don’t forget to configure your API Key, WaveLog URL, and Station ID in the app settings. Set the UDP Port to 2237 to sync perfectly with WSJT-X. 73!

Disclaimer: This setup was developed in collaboration with Gemini AI. While we’ve worked hard to make this guide as “bulletproof” as possible, tech is always evolving—errors may occur, or specific functions might need a bit of extra tweaking.

The solution? Don’t hesitate to ask Gemini yourself if you get stuck. Good luck with your build!