-
-
Notifications
You must be signed in to change notification settings - Fork 108
SpotHub
SpotHub is AetherSDR's unified spot management system. Access it from Settings → SpotHub...
SpotHub aggregates spots from four independent sources, displays them on the panadapter as color-coded callsign labels, and provides a sortable spot list with band filtering. All spot sources run on a dedicated worker thread with batched 1/second forwarding to the radio.
SpotHub has six tabs: Cluster, RBN, WSJT-X, POTA, Spot List, and Display.
Connects to standard DX cluster nodes via telnet (DX Spider, AR-Cluster, CC Cluster).
-
Server / Port / Callsign — configure your cluster node (default:
dxc.nc7j.com:7300) - Auto-Connect — automatically connect when radio connects
-
Console — live telnet output with command input (type
sh/dx 20,set/filter, etc.) - Spot Color — configurable color picker (default: tan)
-
Log File —
~/.config/AetherSDR/dxcluster.log, replayed on dialog open
DX cluster spots appear on the panadapter at their spotted frequency with the configured color.
Connects to the Reverse Beacon Network for automated CW/RTTY/FT8 skimmer spots.
-
Server / Port — default:
telnet.reversebeacon.net:7000 - Callsign — falls back to cluster callsign if empty
- Rate Limit — configurable max spots/sec to radio (default: 10) to prevent flooding during contests
- Auto-Connect — automatically connect when radio connects
- Console — live RBN output with command input
- Spot Color — configurable (default: blue)
-
Log File —
~/.config/AetherSDR/rbn.log
RBN uses the same telnet protocol as DX clusters. The rate limiter uses a token-bucket system — excess spots are queued and sent in the next batch cycle.
Listens for WSJT-X decode messages via UDP multicast to spot stations you can hear in digital modes.
-
Address / Port — default:
224.0.0.1:2237(multicast). Set to0.0.0.0for unicast - Auto-Start — automatically start listening when radio connects
-
Spot Filters — checkboxes to control which decodes are sent to the radio:
- CQ — spot stations calling CQ (mutually exclusive with CQ POTA)
- CQ POTA — spot stations calling CQ POTA (mutually exclusive with CQ)
- Calling Me — spot stations calling your callsign directly
- If nothing is checked, all decodes are forwarded
-
Per-filter Color Pickers — each filter category has its own color:
- CQ: green (default)
- CQ POTA: cyan (default)
- Calling Me: red (default)
- Default (unmatched): white
-
SNR-based Alpha — spot label opacity scales with signal strength:
- -24 dB → faint (alpha 64)
- 0 dB → mostly solid (alpha 192)
- +10 dB → full opacity (alpha 255)
- Spot Lifetime Slider — 30-300 seconds (default: 120s), separate from DXC/RBN lifetime
- Console — shows decoded callsigns with frequency, SNR, and full decoded message
-
Log File —
~/.config/AetherSDR/wsjtx.log
WSJT-X broadcasts decode messages as binary UDP packets (Qt QDataStream format). AetherSDR listens for Type 2 (Decode) messages, extracts the callsign from the decoded text, computes the actual frequency (dial frequency from Status messages + audio offset from the decode), and forwards matching spots to the radio.
The decoded message text (e.g., CQ KK7GWY DN18) appears in the Comment column of the Spot List.
- In WSJT-X: File → Settings → Reporting — ensure UDP Server is enabled (default port 2237)
- In AetherSDR: Settings → SpotHub → WSJT-X tab — click Start (or enable Auto-Start)
- Spots from decoded stations appear on the panadapter
See also: WSJT-X Integration for audio and CAT setup.
Polls the POTA API for active park activations.
- Poll Interval — 15-300 seconds (default: 30s)
- Auto-Start — automatically start polling when radio connects
- Console — shows activations with callsign, frequency, park reference, park name, and mode
- Spot Color — configurable (default: yellow)
-
Spot Lifetime — uses the POTA API's
expirefield (time remaining on the activation) -
Log File —
~/.config/AetherSDR/pota.log
POTA spots show the park reference and name in the Comment column (e.g., US-4567 Yellowstone National Park SSB). The API is polled at https://api.pota.app/spot/activator — no authentication required. Only new spots are forwarded (tracked by spotId).
A sortable table showing all spots from all sources in one view.
| Column | Description |
|---|---|
| Time | UTC time of spot |
| Freq (kHz) | Spotted frequency |
| DX Call | Callsign of spotted station |
| Comment | Mode, park reference, decoded message, etc. |
| Spotter | Who spotted the station |
| Band | Auto-detected band (160m-6m) |
| Source | Which source provided the spot (Cluster, RBN, WSJT-X, POTA) |
- Band Filter Checkboxes — 160m through 6m, all checked by default, persisted across sessions
- Sortable — click any column header to sort
- Double-click to Tune — tunes the active slice to the spot's frequency
- Smart Auto-scroll — scrolls to show newest spots, pauses when you scroll up to read, resumes when you scroll back to the bottom
- Clear button to reset the list
Controls how spots appear on the panadapter.
- Spots: Enabled/Disabled — toggle spot rendering
- Levels — max vertical stacking depth for labels (1-10)
- Position — vertical starting position (% from top of spectrum)
- Font Size — spot label font size (8-32px)
- Spot Lifetime — how long DXC/RBN spots remain on the panadapter (1-1440 minutes)
- Override Colors — force all spots to one color (overrides per-source colors)
- Override Background — control label background color and opacity
- Background Opacity — 0-100%
- Total Spots — current count of spots on the radio
- Clear All Spots — removes all spots from radio and resets dedup timers
When too many spots overlap in the same area of the panadapter (exceeding the configured Levels), they collapse into amber +N badges. Clicking a badge opens a popup menu listing all collapsed callsigns with their frequencies — click any entry to tune.
Spots are deduplicated across all sources by callsign + frequency. If the same callsign appears on the same frequency (within 1 kHz) and hasn't expired, the duplicate is dropped. If the callsign moves to a different frequency, the old entry is replaced. The dedup timer uses source-appropriate lifetimes (WSJT-X uses its own shorter timer, POTA uses the API's expire field, DXC/RBN use the Display tab lifetime).
The mouse cursor changes to a pointing hand when hovering over spot labels or density badges on the panadapter, indicating they are clickable for tuning.
All spot source clients (DX Cluster, RBN, WSJT-X, POTA) run on a dedicated worker thread. Network I/O, protocol parsing, and log file writing all happen off the main GUI thread. Spots are batched and forwarded to the radio once per second, reducing both main-thread CPU usage and radio command flooding.
All SpotHub settings are persisted in ~/.config/AetherSDR/AetherSDR.settings:
| Key | Default | Description |
|---|---|---|
DxClusterHost |
dxc.nc7j.com |
Cluster server |
DxClusterPort |
7300 |
Cluster port |
DxClusterCallsign |
(empty) | Login callsign |
DxClusterAutoConnect |
False |
Auto-connect on radio connect |
DxClusterSpotColor |
#D2B48C |
DXC spot color (tan) |
RbnHost |
telnet.reversebeacon.net |
RBN server |
RbnPort |
7000 |
RBN port |
RbnCallsign |
(empty) | RBN callsign (falls back to DXC) |
RbnAutoConnect |
False |
Auto-connect on radio connect |
RbnRateLimit |
10 |
Max spots/sec to radio |
RbnSpotColor |
#4488FF |
RBN spot color (blue) |
WsjtxAddress |
224.0.0.1 |
WSJT-X multicast address |
WsjtxPort |
2237 |
WSJT-X UDP port |
WsjtxAutoStart |
False |
Auto-start on radio connect |
WsjtxSpotLifetime |
120 |
WSJT-X spot lifetime (seconds) |
WsjtxFilterCQ |
True |
Filter: CQ calls |
WsjtxFilterPOTA |
True |
Filter: CQ POTA calls |
WsjtxFilterCallingMe |
True |
Filter: directed to my call |
WsjtxColorCQ |
#00FF00 |
CQ spot color (green) |
WsjtxColorPOTA |
#00FFFF |
CQ POTA spot color (cyan) |
WsjtxColorCallingMe |
#FF0000 |
Calling Me spot color (red) |
WsjtxColorDefault |
#FFFFFF |
Default WSJT-X spot color |
PotaPollInterval |
30 |
POTA poll interval (seconds) |
PotaAutoStart |
False |
Auto-start on radio connect |
PotaSpotColor |
#FFFF00 |
POTA spot color (yellow) |
DxClusterSpotLifetime |
30 |
DXC/RBN spot lifetime (minutes) |
IsSpotsEnabled |
True |
Show spots on panadapter |
SpotsMaxLevel |
3 |
Max label stacking depth |
SpotFontSize |
16 |
Label font size (px) |
SpotBandFilter_* |
True |
Per-band filter state |
- Panadapter Controls
- VFO Widget
- RX Controls
- TX Controls
- Aetherial Audio
- Multi-Slice Operation
- Diversity and ESC
- TNF (Tracking Notch Filters)
- Memory Channels
- Profile Management
- Slice Colors
- XVTR (Transverters)
- CWX Panel
- CW Decoder
- DVK Panel
- RTTY Operation
- RADE Digital Voice
- DAX Virtual Audio
- DAX IQ Streaming
- WSJT-X Integration
- CAT Control
- TCI Server