/P - Radios
Handheld radios currently in use.
| Radio | Photo | Bands | Analog | DMR | C4FM |
|---|---|---|---|---|---|
| Yaesu FTX-4 |
|
2m/70cm | ✓ | − | − |
| Yaesu FT-5D |
|
2m/70cm | ✓ | − | ✓ |
| Quansheng K5 |
|
2m/70cm | ✓ | − | − |
| Baofeng UV-5R Mini |
|
2m/70cm | ✓ | − | − |
| Baofeng DM-32 |
|
2m/70cm | ✓ | ✓ | − |
| Anytone D890 |
|
2m/70cm | ✓ | ✓ | − |
Development Roadmap
Two software projects, staged in this order.
UberSDR multi-band
Extend UberSDR from a single-instance HF deployment to one deployment serving all bands through a single web interface, backed by all three radiod instances.
- The coverage map is always derived at runtime from the available radiod instances β never hardcoded.
- One linear frequency-to-pixel mapping across the whole range, with uncovered regions rendered explicitly as labelled dead zones.
- A tuning action that creates a new stream must stop the original stream.
- The existing max-sessions cap applies to the total across all instances, not per instance.
- Runs as an isolated parallel deployment during development. Production UberSDR is untouched.
SoapySDR bridge β libSoapyKa9q
Expose the whole front-end pool to external SDR applications as one virtual radio over SoapyRemote. UberSDR is not in this path.
- One virtual device; frequency routing between instances is internal.
- Zero configuration β instances found via mDNS, coverage learned from status beacons.
- Sample rate is client-owned; no resampling to fake width.
- A cross-instance retune that can't sustain the current rate tears the stream down and rebuilds it rather than clamping silently.
- Tuner gain stages are visible but not settable β shared front-end properties.
- Channel ownership tagging, compatible with ubersdr-multi.
Known gaps
| 1 | Mast heights and positions; lightning protection and grounding arrangement |
| 2 | MX-S3 insertion loss, isolation and power handling β from datasheet or measurement |
| 3 | Y-splitter loss into the two V/UHF receivers β measure, or accept the nominal ~3.5 dB |
| 4 | HF PA β model and rating, once chosen |
/QTH - Hotspots
| Hotspot | Type | Frequency | Platform | Notes |
|---|---|---|---|---|
| RF.Guru Analog SVX Hotspot | Analog (SVXLink) | 439.675 simplex | RF.Guru transceiver, 500 mW | Primary analog hotspot |
| WPSD Digital Hotspot | Digital (WPSD) | TX 439.775 Β· RX 433.775 | Raspberry Pi 3 | Primary digital hotspot |
/M - Hotspot Box
This boxed dual hotspot is a portable setup meant for use in the car. It provides SVXlink analog access to the Belgian SVXlink network (portal.be.svx.link), and an MMDVM digital hotspot running WPSD hotspot software.
Both hotspots try WiβFi in this order: the QTH network, the carβs WiβFi hotspot, then the iPhone personal hotspot. A small companion server on one of the hotspots exposes a simplified status page for both, so you can glance at state from a phone while driving.
| Field | Detail |
|---|---|
| Enclosure | Mini waterproof suitcase |
| Power | 12 V β 5 V microUSB buck converter |
| Network | Wi-Fi, tried in order: QTH network, car hotspot, iPhone personal hotspot |
| Monitoring | Companion server on one hotspot serves a simplified combined status page, readable at a glance from a phone |
ON8ST/P - Antennas/Cables
Content coming soon...
ON8ST/P - Radios
Content coming soon...
ON8ST/P - RF switching and filtering
Content coming soon...
SDR receive module
This module β RX-888 with dual MX-S3 TX protection β is no longer a separate portable build. Itβs permanently installed at the fixed station.
See for the as-built detail, or to use the live receivers.
ON8ST/P - Mast
Content coming soon...
ON8ST/P - Console
Content coming soon...
ON8ST/P - HTs
Content coming soon...
/M - Mobile Radios
| Equipment | Type | Bands | Photo |
|---|---|---|---|
| Yaesu FTM-500 | Mobile Transceiver | 2m / 70cm |
|
/M - Mobile Antennas
| Equipment | Type | Bands | Photo |
|---|---|---|---|
| Diamond MR77 | Mobile Antenna | 2m / 70cm |
|
| Diamond NR-770H | Mobile Antenna | 2m / 70cm |
|
SDR Station Overview
Station architecture and the SDR chain, as built.
Design intent
The station targets a stable, always-ready operating environment: HF and V/UHF rigs work independently on their own antennas with no manual reconfiguration, and a permanent SDR receive path stays up for both domains so spectrum visibility is continuous regardless of which radio is active. No cable swaps, no RF repatching β the shack stays usable after long breaks.
The switching and control layer makes antenna and mode changes quick and low-risk, and blocks classic failure modes such as keying into the wrong path. The goal is a structured, foolproof station that supports experimentation without infrastructure busywork.
SDR Module
The most fully specified part of the station. One bare-metal server hosts three independent front ends, each with its own receiver daemon, feeding several network-distributed consumers.
Host
| Hardware | Ryzen 7 mini server |
| OS | Linux, bare metal β no hypervisor |
| Containerisation | Docker, all components on one shared bridge network |
| Reverse proxy | Caddy, on the Mac mini edge server |
| Config management | Git, for rollback |
RX-888 MkII
| ADC | LTC2208, 16-bit at 130 MSPS |
| Host interface | USB 3.0, ~3 Gbps |
| Spectrum at once | ~64 MHz |
| Nominal coverage | ~10 kHz to 1.8 GHz, depending on band and tuner path |
| HF attenuator | Tunable, 0 to β31.5 dB |
| Tuner | R828D (detected, not driven β see note below) |
In this station the RX-888 is HF-only, by design. The R828D VHF/UHF tuner is detected but not driven by the open firmware, and ka9q-radio does not support that path. Run here at 64 Ms/s, the Nyquist limit is 32 MHz β the whole HF allocation in one capture, with 6 m outside the window.
Receiver daemons
| Instance | Front end | Coverage |
|---|---|---|
| HF | RX-888 mk2 | 0β32 MHz |
| VHF | RTL-SDR Blog V4 | 2 m |
| UHF | Airspy R2 | 70 cm |
Coverage totals about 43 MHz across a 450 MHz span β under a tenth of it. Instances advertise via mDNS/Avahi and publish periodic status beacons; channels are created and destroyed dynamically, so consumers tune without configuration changes.
Software
Multiple web front ends run against the same three radiod instances, and they are not redundant β they answer different questions.
UberSDR β public web receiver
| Address | ubersdr.on8st.be |
| Role | Public web SDR β the published face of the station |
| Front end today | RX-888 / HF only |
| Context shown | QTH map, local & UTC time, weather, solar indices |
omnisdr β multi-band panadapter
| Address | omnisdr.on8st.be |
| Role | Whole-spectrum panadapter and band-activity monitor |
| Layout | One panel per band, each with its own scale; spectrum plus waterfall |
| Cross-receiver | Reads across all three radiod instances |
ka9q-web β one instance per band
Three further instances run alongside the two above, all on the same host: a lightweight UI bound to each radiod instance directly β a conventional waterfall-and-audio receiver with nothing in between.
| Address | Front end | Band |
|---|---|---|
| sdr-hf.on8st.be | RX-888 | 0β32 MHz |
| sdr-vhf.on8st.be | RTL-SDR | 144β146 MHz |
| sdr-uhf.on8st.be | Airspy R2 | ~431β440 MHz |
ubersdr-multi-dev β experimental
An experimental UberSDR build, running on the same host, extending it to non-contiguous spectrum β HF plus the 2 m and 70 cm bands behind a single interface. It runs alongside production and is under active development. Its target is the seam the three ka9q-web instances expose: one URL, all bands, gaps rendered honestly rather than papered over.
Server
Load Average (1m, 5m, 15m) [β]
Network bandwidth (Mbps, per 10s) [β]
Memory % [β]
Disk % [β]
Page views (HTTP)/h [β]
API calls/h [β]
Latest KPI entries
Active external API clients (last 24h) [β]
| IP address | GeoIP location | Active since | Last API call |
|---|---|---|---|
| β | |||
Database Management
Manage
| Resource | Country | Last Import | # Imported Records | Actions |
|---|
View
| Callsign β | Frequency β | Location β | Mode β | Country β | Resource β | Latitude β | Longitude β |
|---|
| Source | Count | Coords % | Update |
|---|---|---|---|
|
SDR Book
(receiverbook.de)
|
- | - |
|
|
WebSDR.org
|
- | - |
|
Database Summary
Background Polling Status
Update Log
Actions
Logs
Tracks which pages are opened by each user. Multiple views of the same page in one session are counted.
| IP / Location | User | Page | Delta t |
|---|
Users and Roles Management
Active Users
Users who have been active on this server (most recent first).
| Username | Name | Location | Last Active | Total Views |
|---|---|---|---|---|
| Loading⦠| ||||
Roles
| Name | Description | Permissions | Actions |
|---|
Users
| Username | Role | Created | Actions |
|---|