Skip to content

About

Flex-style SDR console for Ten-Tec Orion 565/566 and Omni VII — SDRplay panadapter, drag-to-filter tuning, CW skimmer, DX/POTA/RBN spots on the spectrum, rigctld server for WSJT-X/fldigi/cqrlog. Linux, alpha.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Orion Control

(An independent project, not affiliated with or endorsed by Ten-Tec — Ten-Tec model numbers: Orion = 565, Orion II = 566, Omni VII = 588.)

A Flex/SmartSDR-style console for the Ten-Tec Orion (565/566): full computer control, a live wideband panadapter/waterfall fed by an SDRplay RSP, drag-the-filter-edges tuning, a draggable notch, CW decode and a multi-channel CW skimmer, DX-cluster/RBN/POTA spots painted on the spectrum, whole-band overview landings on the band buttons, an SWR sweep plotted right on the pan, a real-VOACAP propagation overlay on the world-map backdrop (the genuine engine is bundled in the AppImage — no setup), WinKeyer keying, rotor control, and rigctld emulation so WSJT-X, fldigi, cqrlog and GridTracker keep working unchanged — one serial port, no flrig.

Status: ALPHA, Orion-only. Daily-driven at one station for months; you are among the first others to run it. Expect rough edges, report everything. The Omni VII personality exists in the code but is currently untested — stay on the Orion for now.

Install on Linux (easiest — one line)

New to Linux? This script does everything for you: installs the libraries, sets up the SDRplay API and serial-port access, downloads the latest console, and adds it to your applications menu.

bash <(curl -fsSL https://raw.githubusercontent.com/n8mus/Orion-Control/master/install.sh)

Log out and back in once after the first run (for serial access), then launch Orion Control from your menu. Re-run any time to update.

What the script needs and does, so nothing surprises you:

  • A 64-bit Linux with glibc 2.38 or newer: Ubuntu 24.04+, Linux Mint 22+, Debian 13+, Fedora 39+, openSUSE Tumbleweed, Arch. Older releases must build from source.
  • The AppImage bundles Qt, rnnoise, FFTW and the VOACAP engine. Nothing else to hunt for.
  • The SDRplay API (proprietary, from SDRplay) is installed last and is optional: its installer asks you to accept a license, so it only runs when you are at a terminal. Skip it with --no-sdrplay; without it the console runs radio-only with a dark panadapter, and re-running the script later adds it.
  • No step other than "download the release" is fatal. A failing optional step prints what to do and the script continues.

Manual alternative: download the .AppImage from Releases, chmod +x it, run it. Install the SDRplay API from sdrplay.com/api yourself if you want the panadapter.

Install on Windows

The console is a native Windows app from the same code (MSVC build, docs/windows-build.md).

  1. Install the SDRplay API first — download the Windows API/HW driver from sdrplay.com/api and run its installer. It's proprietary, so it is never bundled here; the console finds your install by itself. Skip this step and the console runs radio-only with a dark panadapter.
  2. Download the latest tentec-console-…-win64.zip from Releases, unzip it anywhere, and run tentec-console.exe. The same Station setup dialog opens on first run; settings live per-user in the registry.

The Windows zip is built by the same release workflow as the AppImage (GitHub's Windows runner, MSVC + Qt 6.8; since v0.1.8) and attached to the tag's release beside it. packaging/make-windows-release.ps1 still builds the identical zip by hand on a Windows box. The Linux build is the daily driver; the Windows build gets less testing, and WDSP receive audio, FreeDV RADE and Copy Assist are not in it yet.

What you need

Hardware

  • Ten-Tec Orion 565 or Orion II 566 (developed against V3 firmware) with a serial CAT connection — native RS-232 or a quality USB-serial adapter (a cheap one cost this station weeks of RFI hunting; FTDI on a direct motherboard port, or a real COM port, strongly advised).
  • SDRplay RSP (developed on an RSP2; nearby models likely work) fed from the Orion's spare RX antenna jack or an antenna tap. ⚠️ The SDR feed MUST be TX-protected. If your tap does not isolate the SDR when you transmit, 100 W will destroy it. Know your isolation before you key up.
  • A monitor at least 1920 px wide (the layout needs ~1630 px plus window borders).
  • Optional, each unlocking a feature: WinKeyer USB (CW keying, memories, type-ahead), a USB audio codec / SignaLink carrying the radio's RX audio (CW decode through the radio's own filters + the pitch meter), a rotctld-compatible rotor, and cqrlog (one-click QSO logging via the console's UDP bridge).

Software (Linux; developed on Arch)

  • For the AppImage: nothing beyond glibc 2.38+ and FUSE 2 (the installer handles it). For a source build see Build from source.
  • The SDRplay API v3.x service from sdrplay.com/downloads — proprietary, installed by you, never bundled here. The sdrplay_apiService must be running (their installer sets that up).
  • Optional: hamlib (rotctld for the rotor); PipeWire/PulseAudio utilities (pactl, pw-record — present on any modern desktop) for the audio features.
  • The VOACAP propagation overlay: bundled in the AppImage (VOACAP's core is public-domain US-government code, so unlike the SDRplay API it ships inside). Building from source instead? Build voacapl (./configure --prefix=$HOME/.local && make && make install && makeitshfbc) — or skip it and the overlay simply stays off with a hint.

Build from source

The installer can put the whole toolchain in place for you:

bash install.sh --build-deps

Or by hand. Hard requirements are Qt 6 (Core, Gui, Widgets, Network, SerialPort, Sql, WebSockets), CMake 3.16+, a C++20 compiler and rnnoise. Everything else is optional and auto-detected: FFTW3 turns on the WDSP receive-audio chain (and with it FreeDV RADE, which needs autotools to build Opus), Qt ShaderTools + private headers turn on the GPU panadapter, whisper.cpp turns on Copy Assist, and the SDRplay API turns on the panadapter itself.

distro packages
Ubuntu 24.04+ / Debian 13+ / Mint 22+ git cmake g++ make pkg-config qt6-base-dev qt6-serialport-dev qt6-websockets-dev libqt6sql6-sqlite libgl1-mesa-dev libfftw3-dev autoconf automake libtool curl patch plus optional qt6-shadertools-dev qt6-base-private-dev. rnnoise is not packaged there: git clone https://gitlab.xiph.org/xiph/rnnoise && cd rnnoise && ./autogen.sh && ./configure && make && sudo make install && sudo ldconfig
Arch git cmake gcc make pkgconf qt6-base qt6-serialport qt6-websockets qt6-shadertools rnnoise fftw autoconf automake libtool curl patch
Fedora 39+ git cmake gcc-c++ make pkgconf qt6-qtbase-devel qt6-qtserialport-devel qt6-qtwebsockets-devel qt6-qtshadertools-devel qt6-qtbase-private-devel rnnoise-devel fftw-devel autoconf automake libtool curl patch

Then:

git clone https://github.com/n8mus/Orion-Control.git
cd Orion-Control
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
./build/tentec-console

Add -DBUILD_SDRPLAY=ON to the configure line once the SDRplay API is installed (headers in /usr/local/include, library in /usr/local/lib, where SDRplay's installer puts them). Without it the build is radio-only. -DBUILD_RADE=OFF skips the FreeDV RADE fetch (no network or autotools needed), -DBUILD_GPU_PAN=OFF forces the CPU panadapter. Use Release or RelWithDebInfo: a Debug build cannot keep up with the 1 MHz IQ stream.

Troubleshooting an install

  • "GLIBC_2.38 not found" when the AppImage starts: the distro is too old for the prebuilt binary. Build from source as above.
  • AppImage says it cannot mount / FUSE error: install libfuse2 (Ubuntu 24.04: libfuse2t64), or run it as ./tentec-console.AppImage --appimage-extract-and-run. The installer writes the launcher that way by itself when FUSE 2 is missing.
  • SDRplay installer stalls or fails: it is interactive and needs a real terminal. Run bash install.sh again from a terminal window, or download the Linux API from sdrplay.com/api and run it yourself. Then systemctl status sdrplay should show the service running. The console works without it, radio-only.
  • "No AppImage found" from the installer: GitHub's API rate limit was hit (it falls back to the releases web page by itself); failing that, download the AppImage from the Releases page by hand.
  • Serial port "permission denied": you have not logged out and back in since the installer added you to dialout (or uucp).

First run

The Station setup dialog opens by itself: your callsign and grid, the radio model and CAT serial port, WinKeyer port, radio-audio capture device, DX-cluster login, rotor. The Test buttons probe the real hardware — the radio test shows the Orion's firmware string, the keyer test runs the WinKeyer handshake. It lives in SDR ▾ → Station setup… afterwards. Radio model/port changes take effect on the next launch.

Every port field lists the serial devices this machine actually has, so you pick rather than type, and each is offered under a stable name where one exists: the kernel's /dev/serial/by-id/… for USB adapters, plus any symlink your own udev rules put in /dev. Prefer those — plain /dev/ttyUSB0 and /dev/ttyS4 names get reassigned when you add or move hardware, which silently points a setting at the wrong device (adding one PCIe serial card here renumbered four ports and aimed a rotor daemon at a transceiver). Native PCIe/COM ports get no stable name from the kernel, so a udev rule is the only way to pin one; write it and the console will offer it. Nothing is preconfigured — an empty field means that feature is off. The rotor is the exception: the console never opens that port itself, it talks to rotctld (default 127.0.0.1:4533), so the rotor's device is configured in rotctld, not here.

Then:

  • rigctld emulation is on TCP 4532. Point WSJT-X / cqrlog / GridTracker there (any rigctld-compatible client works). Stop any real rigctld or flrig instance first — one master per radio.
  • The panadapter's gain is managed by Auto LNA (SDR ▾ menu). A loud evening band stepping the attenuation up is normal operation, not a fault.
  • Click to tune (CW zap snaps to the carrier), wheel to step, drag a passband edge to cut the filter, drag the passband body to slide PBT, right-click to park VFO B, Z zero-beats, X flips CW sideband.

Reporting problems

Run from a terminal and include everything it printed. If it crashed, coredumpctl list should show it — coredumpctl info output is gold. Say what band, what mode, what you clicked, and whether the radio, the SDR, or both were connected. Screenshots welcome.

Known alpha limitations

  • US band plan assumptions (60 m channels, CW skimmer windows, band-plan shading).
  • Orion-only until an Omni VII CAT path is re-established and tested.
  • The native Windows build is new (v0.1.7-alpha): Linux has months of daily driving behind it, Windows days — expect the rougher edges there.
  • One console instance at a time (exclusive serial + single-tuner SDR).

License

GPL-3.0 for the combined work: the CW decode engine is a port of fldigi's (© W1HKJ & contributors, GPL-3), which lifts the rest of this GPL-2.0-or-later codebase to GPL-3 in combination. You received this software with its complete source; if you pass binaries along, the source goes with them. Which files sit under which license, and why the base is GPLv2-or-later, is in NOTICE. The SDRplay API is proprietary and is not part of this distribution — every user installs it themselves from SDRplay.

73 — and all signals depart at exactly Warp 1.

About

Flex-style SDR console for Ten-Tec Orion 565/566 and Omni VII — SDRplay panadapter, drag-to-filter tuning, CW skimmer, DX/POTA/RBN spots on the spectrum, rigctld server for WSJT-X/fldigi/cqrlog. Linux, alpha.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages