This is the official public Wabash Scanner SDRTrunk distribution and a GitHub-recognized fork of DSheirer/sdrtrunk. It is not an official upstream SDRTrunk release; upstream credit belongs to the SDRTrunk project and its contributors.
Current release: v2026.07.04.1-wabash.
When release assets are attached, binary downloads are
published for macOS, Windows, and Linux. macOS builds are ad-hoc signed but not notarized. Windows builds are unsigned.
This repository provides the public build used by Wabash Scanner: a JavaFX-focused operations interface plus local scanner, tuner, audio, streaming, and long-running runtime improvements. It also includes an isolated UI smoke profile that avoids production configuration, broadcasters, and physical tuner discovery during testing. The branch preserves upstream history, but the Wabash changes are a distribution-oriented body of work, not a clean upstream patch series.
This fork is an operator-focused distribution for the Wabash Scanner stack, not a polished upstream-ready patch series.
- A redesigned desktop shell with live tuner status, spectrum and waterfall displays, active traffic, stream status, status tiles, audio controls, and event/message inspection in one window.
- Light, dark, and system-following themes, configurable panel visibility, persistent panel layouts, and a one-click layout reset.
- Low-CPU visual mode and adjustable waterfall contrast for long-running scanner installations.
- Direct tools for diagnostics, thread dumps, screenshots, recordings, application logs, channel event logs, and the message recording viewer.
- Faster access to playlist, channel, alias, RadioReference, icon, and analog-channel editing from the main menus.
- Bounded automatic restart and rediscovery for failed USB tuners, including backoff and an unrecoverable state when repeated restart attempts are exhausted.
- SDRplay discovery supervision that prevents overlapping native discovery attempts and quarantines repeatedly stale discovery sessions until a manual retry or restart.
- Conservative RTL R8x startup calibration plus live, applied, and saved PPM diagnostics in the tuner table.
- Recovery-aware channel placement that clears stale tuner affinity when hardware disappears or returns.
- Per-output playback controls with persistent volume settings, mute controls, channel levels, and talkgroup status.
- Built-in test tone, output recovery, and force-unmute actions for diagnosing local audio failures.
- Bounded broadcaster queues that discard stale recordings and prevent unlimited queue growth.
- Broadcastify Calls backpressure with pending and in-flight limits, stale-call rejection, retry backoff, and rate-limited skew diagnostics based on call start, capture completion, and upload-attempt timing.
- Java 25 Gradle builds and native
jpackageapplication images. - Automated tagged releases for macOS Apple Silicon, macOS Intel, Windows x86_64, and Linux x86_64.
- Native platform archives attached directly to GitHub Releases.
Download the archive for your system from the latest release:
- Apple Silicon Mac:
macos-arm64-unsigned.zip - Intel Mac:
macos-x64-unsigned.zip - 64-bit Windows:
windows-x64-unsigned.zip - 64-bit Linux:
linux-x64.tar.gz
Verify the archive against its adjacent .sha256 file on the release page before opening it.
The macOS application is ad-hoc signed but not notarized. Gatekeeper may block a normal first launch. First,
Control-click or right-click sdr-trunk.app, select Open, and confirm the warning. If macOS still blocks this
specific app after its checksum has been verified, remove quarantine from the unpacked app only:
xattr -dr com.apple.quarantine "/path/to/sdr-trunk.app"Do not run quarantine-removal commands against unknown downloads or broad directories.
The Windows build is unsigned. SmartScreen may warn; select More info, then Run anyway if you have verified the checksum and intend to trust this build. The package has no Windows Defender or SmartScreen approval.
Extract the archive and run the bundled launcher:
tar -xzf sdrtrunk-wabash-*-linux-x64.tar.gz
chmod +x sdr-trunk/bin/sdr-trunk
./sdr-trunk/bin/sdr-trunkDepending on the SDR device and distribution, hardware access may also require vendor udev rules or membership in an appropriate device-access group.
You can complete first-run setup without Broadcastify, OpenMHz, or Rdio credentials. Configure streaming services deliberately and never reuse another operator's production configuration. For UI-only testing, see Isolated UI Smoke Test.
This repository is derived from the upstream SDRTrunk project.
Private local runtime configurations, credentials, tuner layouts, and operational logs are intentionally not included.
Source builds require JDK 25. Use the included Gradle wrapper; do not rely on a system Gradle install:
./gradlew testThe build and runtime use preview/incubator JVM flags, including --enable-preview and jdk.incubator.vector.
See the upstream SDRTrunk project for general application documentation and usage guidance.
Report Wabash-specific UI, binaries, packaging, or runtime problems in this repository's issue tracker. Check general SDRTrunk bugs against upstream SDRTrunk first. Do not ask upstream maintainers to support Wabash-specific binaries, packaging, or operational changes.
Use the guarded smoke launcher to test the JavaFX interface without reading the normal SDRTrunk profile or touching physical tuners:
tools/run-isolated-smoke.shThe launcher creates a fresh temporary profile, strips inherited credentials from the child environment, and runs with
-Dsdrtrunk.profile.dir=<temporary-directory> and -Dsdrtrunk.profile.uiOnly=true. The profile override forces Java
Preferences, settings, playlists, tuner configuration, logs, recordings, and streaming state below the specified
directory. Normal launches are unchanged when sdrtrunk.profile.dir is absent.