Skip to content

Band traffic and band opening monitor mode #3114

Description

@mike6000

Request preparation

  • I used an AI assistant to help structure this request
  • I checked for existing issues covering the same feature

What would you like?

Let me look at a couple of existing issues first to make sure I reference the right internals for the panadapter and spectrum side.Good context gathered. Key classes I can reference: PanadapterModel (per-pan state, owns centerMhz), PanadapterStream (VITA-49 routing), SpectrumWidget (GPU waterfall renderer), and RadioModel (central state). Here is the feature request, raw and ready to copy:


[Feature] Band traffic and band opening monitor mode


What

Add a Band Monitor mode that sequentially tunes a dedicated panadapter through a configurable list of amateur bands, dwells on each band for a configurable period, captures the FFT/waterfall data, and displays the result as a stack of per-band waterfall strips in a standalone floating window. The window gives the operator a at-a-glance view of activity across the entire HF spectrum even though the FlexRadio cannot capture the full HF range simultaneously.


Why

FlexRadio transceivers have a finite instantaneous bandwidth — even the widest pan on a FLEX-8600 cannot cover all amateur HF bands at once. During periods of variable propagation — a contest weekend, a greyline window, a sporadic-E opening on 10m — an operator at a remote or unattended station has no practical way to know which bands are open or active without manually stepping through them one by one.

Band Monitor solves this by automating that stepping and retaining the evidence. Each band's dwell produces a waterfall strip showing what was present during that minute. A band with an opening shows a noisy, signal-rich strip; a dead band shows a flat noise floor. The operator can scan the Band Monitor window at a glance and immediately see where activity is happening, then click to jump the main radio to that band.

Use cases:

  • Monitoring for DX openings on 10m/12m/15m during a contest without sitting at the radio
  • Watching multiple bands during a greyline window to catch the moment a path opens
  • Logging which bands were active during an unattended remote session for later review
  • Contest band change decisions — seeing at a glance whether 15m has dried up before committing to a move

How Other Software Does It

DX4WIN / DX Atlas propagation overlay
These tools predict band openings but show no actual RF evidence. Band Monitor complements them with measured data.

SDR# Scanner plugin
SDR# has a basic frequency scanner that steps through a list of frequencies and logs signal strength. It does not produce waterfalls per band and is not aware of ham band plans.

HDSDR / SDRangel
Both support panoramic display across a wide IF bandwidth but are limited to the hardware's instantaneous bandwidth — the same fundamental constraint the FlexRadio has. Neither implements a sequential dwell-and-capture approach.

Reverse Beacon Network (RBN)
RBN aggregates spot data from skimmers worldwide and gives a good picture of band activity, but requires an internet connection and only reflects CW/digital activity visible to skimmer stations. Band Monitor is fully local and captures the actual RF environment at the operator's antenna.


Suggested Behavior

Band list and configuration

A configurable ordered list of bands to scan, defaulting to all standard HF amateur bands (however any other HF band should be configurable):

160m  1.900 MHz  centre  200 kHz span
 80m  3.700 MHz  centre  400 kHz span
 60m  5.350 MHz  centre  100 kHz span
 40m  7.150 MHz  centre  400 kHz span
 30m 10.125 MHz  centre  100 kHz span
 20m 14.175 MHz  centre  400 kHz span
 17m 18.118 MHz  centre  100 kHz span
 15m 21.200 MHz  centre  400 kHz span
 12m 24.940 MHz  centre  100 kHz span
 10m 28.400 MHz  centre  600 kHz span
  6m 50.200 MHz  centre  600 kHz span  (hardware permitting)

Each entry is independently toggleable (checkbox) and editable (centre frequency, span). The full list and enabled state persist via AppSettings under BandMonitor/BandList.

Dwell time

Configurable per-scan dwell (default 60 s, range 5–300 s). During the dwell, the scanner holds the panadapter on the band and accumulates FFT frames. At dwell end it moves to the next enabled band. One full cycle = sum of all enabled dwell periods.

AppSettings::setValue("BandMonitor/DwellSeconds", 60)

Panadapter assignment

Band Monitor operates on a dedicated panadapter that it creates and owns for the duration of the session. It does not disturb the operator's existing pans or slices. At session start it issues a pan create command; at session end it issues pan remove. If the radio is at its pan limit (e.g. FLEX-6400 with one pan already open), Band Monitor warns the operator and offers to use the existing pan in a non-destructive time-share mode (pausing the scan when the operator manually tunes, resuming after a configurable idle timeout).

The scanner tunes the pan by updating PanadapterModel::centerMhz and sets the span via the existing pan set command path. No new protocol commands are required.

Waterfall capture

During each dwell, FFT frames arriving from PanadapterStream are accumulated into a per-band frame buffer. At dwell end, the frames are composited into a single waterfall strip image — a fixed-height bitmap (suggested: 80 px tall) showing frequency on the X axis and time within the dwell on the Y axis. The colour mapping reuses the existing waterfall palette and reference level settings from SpectrumWidget.

Frame buffers are kept in memory for the most recent N complete cycles (default 3, configurable). Older cycles are discarded unless the operator has enabled strip logging (see below).

Band Monitor window

A floating, resizable window (frameless chrome matching other AetherSDR pop-outs) containing a vertical stack of band strips. Each strip shows:

┌─────────────────────────────────────────────────────────────────┐
│ 20m  14.175  [════════════════════════════════════════════] 23:14│
│ 15m  21.200  [░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 23:15│
│ 10m  28.400  [▓▓░░▓▓▓▓░░░░▓▓▓▓▓▓▓░░▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░] 23:16│
│ 12m  24.940  [░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 23:13│
└─────────────────────────────────────────────────────────────────┘
  • Band label and centre frequency on the left
  • Waterfall strip filling the remaining width
  • Timestamp of last completed dwell on the right
  • A thin animated progress bar under the currently-active band showing dwell progress
  • Bands sorted in the configured order; disabled bands hidden

Click to tune: clicking anywhere on a strip tunes the operator's active slice to that band's centre frequency and switches the main panadapter to the same span — the same behaviour as clicking a DX spot in SpotHub.

Cycle time indicator: a small readout at the top of the window shows the total cycle time and time until the next full refresh, e.g. Cycle: 11 min — next: 4 min 20 s.

Strip logging (optional)

When enabled, completed strips are written to disk as PNG files in a configurable directory, named bandmonitor_<band>_<ISO8601timestamp>.png. This allows post-session review of band conditions. Disabled by default.

AppSettings::setValue("BandMonitor/LogStrips", false)
AppSettings::setValue("BandMonitor/LogDirectory", "")

Controls

A small toolbar at the top of the Band Monitor window:

[▶ Start] [■ Stop]  Dwell: [60 s ▾]  [⚙ Configure bands]  [💾 Log strips: off]

Start/stop persists across restarts if the window is open when AetherSDR closes (AppSettings::setValue("BandMonitor/AutoStart", false)).

Interaction with existing code

  • Tuning via PanadapterModel::centerMhz and existing pan set commands — no new protocol
  • Waterfall data from PanadapterStream VITA-49 frames, same path as SpectrumWidget
  • Colour palette reused from existing waterfall renderer
  • Click-to-tune reuses the same slice-tune path as SpotHub spot clicks
  • Window chrome and resize behaviour matches existing floating pop-out windows

No new VITA-49 streams, subscriptions, or SmartSDR protocol commands are required.


Labels: feature GUI panadapter priority: medium

Metadata

Metadata

Assignees

No one assigned

    Labels

    GUIUser interfaceNew FeatureNew feature requestenhancementImprovement to existing featuremaintainer-reviewRequires maintainer review before any action is takenmulti-panMulti-panadapter layout and slicingpriority: mediumMedium priorityspectrumPanadapter and waterfall

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions