Skip to content

Releases: cdub89/SmartStreamer4

SmartStreamer4 v0.1.20b

11 Jun 22:32

Choose a tag to compare

SmartStreamer4 v0.1.20b

New

  • Digital Mode (#28). SmartStreamer4 now sets up and launches WSJT-X, JTDX-Improved, and WSJT-Z (FT8/FT4) against your FlexRadio, one instance per slice, several slices at once.
    • A new Launch tab is the app's home: connect to the radio, then start CW Mode (the CW Skimmer experience, unchanged) or Digital Mode.
    • The streamer provisions each instance automatically: DAX RX audio device, SmartSDR CAT TCP port, unique UDP reporting port, and your call/grid are written into a per-slice profile. Your engine settings (window layout, band, FT8/FT4 choice) are preserved across launches.
    • Per-slice Start/Stop on the Digital tab. Stop closes the engine gracefully so it saves its settings. A soft notice warns when a slice is not USB/DIGU (still launchable).
    • Live-validated with two concurrent WSJT-X instances on SmartSDR 4.2.20 / DAXv2, including CAT, audio, and UDP port isolation per slice.
  • Setup Guide rewrite (#47). The in-app guide (Help tab, Setup Guide) now covers both modes: the Launch workflow, step-by-step SmartSDR CAT TCP port creation, DAX channel assignment, digital troubleshooting, new screenshots throughout, and quick links on page 1 to jump to the Initial, CW, or Digital setup sections.
  • Connect diagnostics (#42). The Logs tab gains [FLEX] lines covering the connect path, GUI clients, pan/slice/IQ lifecycle, and disconnect cause, to make field reports actionable.

Fixes

  • Radio and station disconnect detection (#45). Disconnects are detected more reliably, and a disconnect now stops all running apps (CW Skimmer and digital engines) and returns cleanly to mode selection.
  • Foreign band change on a shared DAX-IQ channel (#43). LO sync is now gated by the source station, so another station's band change no longer disturbs your running skimmer.
  • Trailing space in station name (#30, #44). Station names are trimmed at runtime, so a Maestro station named with a trailing space no longer shows an empty Operating tab or a missing DAX stream.

Install

Download the zip, extract, run SmartStreamer4.exe. Digital Mode additionally needs WSJT-X, JTDX, or WSJT-Z installed plus a one-time SmartSDR CAT port setup; see the Setup Guide on the Help tab.

SmartStreamer4 v0.1.19b

18 May 20:28

Choose a tag to compare

SmartStreamer4 v0.1.19b

Fixes

  • Multi-station launch (#40). CW Skimmer no longer launches with the wrong station's panadapter or slice frequency when two stations share a DAX-IQ channel.
  • Multi-station UI attribution (#39). Panadapter center frequency and slice now display under the correct station.
  • Audio device renumbering (#38). A warning fires when SmartSDR or DAX updates shift MME device indices, with one-click jump to the Set Up Wizard.
  • #30 — Maestro-C absent from Network Discover on SmartSDR 4.2. SmartSDR and DAX work normally. Repro logs welcome.

New

  • DAX station-mismatch dialog (#39). When the same DAX-IQ channel is assigned on multiple stations, clicking Start opens a confirmation reminding you to verify DAX-the-app's selected station.
  • Connect-time diagnostics. Logs tab shows the list of connected GUI clients on connect, and the CW Skimmer launch line shows the effective audio device indices and mode.
  • Setup Wizard link styling (#37). Bold orange on the Config tab.
  • %APPDATA% folder rename (#34). %APPDATA%\SDRIQStreamer\ is renamed to %APPDATA%\SmartStreamer4\ on first launch. Automatic, no operator action.

Install

Download the signed zip, extract, run SDRIQStreamer.exe.

SmartStreamer4 v0.1.18b

11 May 04:32

Choose a tag to compare

SmartStreamer4 v0.1.18b

What's new for operators

CW Skimmer sync stays in sync across band changes

Skimmer sync no longer drifts when you switch bands or change panadapter
centers. Field-validated on both SmartSDR 4.1.5 and 4.2.x. (PR #33)

DAX.exe startup check

The app now detects when DAX.exe is not running at startup and shows a
Retry / Ignore dialog before attempting to connect to the radio. Runs
independently of radio connection state, so it fires whether or not a
radio is selected. (#29, PR #31)

Setup wizard Step 3: real MME and WDM endpoint names

The Reset / Setup Wizard's Step 3 (Settings, Audio Tab: Capture Device
Numbers) now has separate labels for each MME and WDM input box,
showing the friendly name as it appears in CW Skimmer's Audio tab
dropdown:

  • MME column: ch N - DAX IQ N (FlexRadio DAX) (matches MME dropdown
    on SmartSDR 4.2.x; on 4.1.5 the dropdown shows
    DAX IQ RX N (FlexRadio Systems DAX IQ) instead and you map by row
    order)
  • WDM column: ch N - DAX IQ N (matches WDM dropdown)

The wizard also opens centered on the screen regardless of where the
main window is positioned. (#26)

About / version display now shows a real build date

Earlier shipped builds displayed -- for the build date because of a
single-file-app limitation. Now reads the actual exe build date so the
About panel shows the correct value.

Behind the scenes

  • Two-phase release pipeline (publish-release.ps1 and
    publish-release.ps1 -Publish) with tag-driven version
    source-of-truth, embedded ProductVersion verification gate, and
    idempotent SHA256SUMS updates. gh release create --latest is
    hard-coded.
  • New vMAJOR.MINOR.PATCHbN patch-on-beta convention documented
    (e.g. v0.1.17b1).
  • CONTRIBUTING.md created and revised based on dogfooding from #29.
  • README build/test commands corrected to match the project layout.

Compatibility

Works with SmartSDR servers 4.1.5 and 4.2.x. FlexLib 4.2.18 client. No
new runtime requirements.

Install

Download SmartStreamer4-v0.1.18b-win-x64.zip, extract to your install
location, and run SmartStreamer4.exe. The in-app update check will
pull future releases.

SmartStreamer4 v0.1.17b

02 May 05:46

Choose a tag to compare

SmartStreamer4 v0.1.17b

Fix

  • CW Skimmer telnet spam. v0.1.16b's CwSkimmerSyncTracker re-emitted the last-sent SKIMMER/LO_FREQ and SKIMMER/QSY every 5 seconds indefinitely, even on a stable channel where nothing had changed. The 5-second heartbeat re-send has been removed; the tracker now sends only when desired LO or VFO actually differs from what was last sent. Stable channel = zero telnet traffic.
  • All event-driven sync (slice tune, band change, RIT, click-tune, initial seed at telnet connect) is unchanged.

Validation

  • Live-tested on hardware with SmartSDR 4.2.x. Telnet log goes silent on idle channels; sync still flows correctly on every state change.
  • SmartSDR 4.1.5 validation will run during soak.

Asset

  • SmartStreamer4-v0.1.17b-win-x64.zip — self-contained single-file Windows x64 build.
  • SHA256 in artifacts/release/SHA256SUMS.txt.

SmartStreamer4 v0.1.16b

02 May 04:56

Choose a tag to compare

SmartStreamer4 v0.1.16b

Beta release focused on a clean rewrite of the CW Skimmer sync path. Resolves the symptom where CW Skimmer needed a manual "jiggle" of the panadapter or VFO before it would start tracking after startup or band change (issues #21, #23).

What changed

Sync architecture redesign. The previous mix of debounce queues, stability resends, and telnet-layer duplicate suppression had a timing collision that silently dropped the band-change resend. Replaced with a single per-channel CwSkimmerSyncTracker that owns "desired vs last-sent" state and emits only on real changes plus a 5-second heartbeat. The heartbeat naturally covers skimmer's startup IQ-pipeline race without any nudge logic.

Result on bench testing (4.2.x, two slices / two panadapters): tracking is reliable on startup and across band changes within the ±24 kHz IQ window, no manual intervention needed.

What stayed the same

  • RIT tracking (effective RX freq feeds into the new tracker exactly as before)
  • Auto-step click snap and inbound echo suppression
  • Click-to-tune from skimmer back to slice
  • Spot publishing to the Flex spot system
  • All UI and INI workflows

Known limitation (unchanged from prior betas)

When a slice moves more than ~24 kHz from the panadapter LO, CW Skimmer can't see signals at the new frequency until the panadapter recenters — this is the IQ window edge at 48 kHz sample rate. The SmartSDR client recenters on its own cadence; this app does not actively move the panadapter.

What to look for in soak

  • Cold start with skimmer running on configured channels — does it track immediately?
  • Band change while skimmer is running — does it follow within the ±24 kHz window?
  • Click-tune from skimmer — does the slice tune correctly without echo loops?
  • RIT — does skimmer's VFO follow the effective RX (slice + RIT)?

If anything regresses, please file an issue and we'll roll a quick v0.1.17b.

Files

  • SmartStreamer4-v0.1.16b-win-x64.zip — self-contained single-file Windows x64 build

SmartStreamer4 v0.1.15b

30 Apr 20:53

Choose a tag to compare

Beta 15 — incremental UI and documentation improvements.

What's new

  • Operating and Config tabs now have a vertical scroll bar so the app can run in a smaller window footprint (closes part of #22).
  • README and Setup Wizard refine the "Reset Channel INI" guidance with explicit criteria for when to use the Reset button (master INI driver/device changes, schema-change releases, post-upgrade hangs). Logs are called out as separate and not affected by Reset.
  • Repository renamed to SmartStreamer4. In-app URLs (Get Support button, auto-update endpoint, wizard issue links) point at the new name. Existing v0.1.14b installations continue to find this release via GitHub's permanent rename redirect (closes #24).

Notes

  • No functional changes to audio enumeration, FlexLib integration, or CW Skimmer launch behavior since v0.1.14b.

Verify

SHA256 of SmartStreamer4-v0.1.15b-win-x64.zip:

de9d2baae9151219d7ba25095d28c33d40621f5ae9733661fb63e588cc199908

SmartStreamer4 v0.1.14b

30 Apr 15:07

Choose a tag to compare

SmartStreamer4 v0.1.14b

Highlights

  • Fixes multi-channel CW Skimmer launch failures on machines where CW Skimmer's WDM device dropdown ordering does not match WinMM enumeration. Channels 2-4 now launch reliably from a single calibrated baseline.
  • Pivots channel INI generation to MME-only auto-derivation: each channel's MmeSignalDev is resolved at launch by looking up DAX IQ {N} (DAX v2) or DAX IQ RX {N} (DAX v1) in the live WinMM enumeration. No anchor, no delta math, no per-channel manual calibration required.
  • Generated channel INIs always emit UseWdm=0 regardless of the master INI setting. CW Skimmer's WDM enumeration uses an opaque kernel-streaming order that cannot be replicated programmatically — see issue #19 for the full analysis.
  • Adds DirectSound capture / output enumeration to the device diagnostic dump (artifacts/cwskimmer/ini/device-diagnostic.txt) for future debugging.
  • Updates README, Setup Wizard, and Reset Channel INIs dialog to specify MME as the only reliably supported soundcard driver. WDM is documented as experimental and explicitly noted as requiring manual per-channel calibration in CW Skimmer.

Included Assets

  • SmartStreamer4-v0.1.14b-win-x64.zip
  • SHA256SUMS.txt

Operator Notes

  • Master INI calibration must use MME. Run CW Skimmer manually, set Soundcard Driver = MME, Signal I/O Device = DAX IQ 1 (FlexRadio DAX), and Audio I/O Device to any local audio output. Exit CW Skimmer to save. Channels 2-4 are auto-derived at launch — no further per-channel setup needed.
  • Existing channel INIs from v0.1.13b or earlier still carry UseWdm=1. After upgrading, click Reset Channel INIs in the streamer to re-seed channel INIs from the (MME-calibrated) master. Otherwise the old WDM values will persist.
  • WDM mode is experimental: only the manually-calibrated baseline channel will work; channels 2-4 require launching each channel manually once in CW Skimmer with the correct device picked by hand and then exiting to save the per-channel INI.
  • Field-validated on Windows 11 with FLEX-6400M, SmartSDR 4.2.x, DAX 4.x. Channels 1 and 2 launched cleanly with auto-derived MME indices.

SmartStreamer4 v0.1.13b

30 Apr 02:52

Choose a tag to compare

v0.1.13b — MME/WDM Driver Stability

Fixes

  • DAX-IQ stream removal debounce — SmartSDR 4.2.x transiently removes and re-adds the DAX-IQ stream during pan moves and QSY. A 1.5 s grace period now prevents CW Skimmer from being stopped on these transient events.
  • DAX-IQ IsActive=false no longer stops skimmerIsActive=false means CW Skimmer (via WDM or MME) is the active audio consumer, which is the expected state while skimming. The erroneous stop on this flag has been removed entirely.
  • UseWdm setting now honoured — The WDM vs. MME driver choice from the master CW Skimmer INI was previously ignored (hardcoded to WDM). The setting is now read from the master INI and written correctly to each channel INI.

Recommendation

MME is recommended for SmartSDR 4.2.x. Testing shows MME produces a more stable waterfall and better decode rates than WDM on at least some machines. WDM also works but your results may vary.

To switch driver: change the Audio tab in CW Skimmer standalone, save/exit, then use Reset Channel INIs in the streamer so the new setting is picked up on next launch.

Checksums

5b1ded11fffb8ba761c33b1e6c73d5eac4d25181381445251487d7101b9aca44  SmartStreamer4-v0.1.13b-win-x64.exe

SmartStreamer4 v0.1.12b

29 Apr 23:43

Choose a tag to compare

SmartStreamer4 v0.1.12b

Highlights

  • Upgrades FlexLib integration from v4.1.5.39794 to v4.2.18.41174 (SmartSDR 4.x / firmware ≥ 3.3.32.8203 required).
  • Updates CW Skimmer Audio tab guidance with confirmed device settings for both WDM and MME driver modes under SmartSDR 4.2.x.
  • Adds WDM and MME reference screenshots to the in-app Setup Wizard.
  • Documents the 4.1.5 → 4.2.18 FlexLib API surface changes in Flexlib4-2-Migration-Guide.md and README §11.

Included Assets

  • SmartStreamer4-v0.1.12b-win-x64.zip
  • SHA256SUMS.txt

Operator Notes

  • Requires radio firmware ≥ 3.3.32.8203. Update firmware before connecting with this build.
  • CW Skimmer Audio tab: set Signal I/O Device to DAX IQ 1 (WDM) or DAX IQ 1 (FlexRadio DAX) (MME). Audio I/O Device is for local monitoring only — any local audio output is correct.
  • No application source changes were required for the FlexLib upgrade; the breaking API changes in 4.2.x (HAAPI.AmplifierFault rename, HAAPI.AmpIsSelected removal) are not used by this app.

v0.1.11b

28 Apr 03:50

Choose a tag to compare

SmartStreamer4 v0.1.11b

Highlights

  • Stabilizes CW Skimmer channel configuration with a calibration-first workflow based on a manually validated IQ1/Audio1 baseline.
  • Preserves operator audio endpoint corrections by writing channel INI audio settings only on first channel file creation.
  • Adds a Config-tab reset action for channel INI files, including a safety block when CW Skimmer is running.
  • Rebrands the application and metadata to SmartStreamer4 with publisher metadata set to ARS WX7V.

Included Assets

  • SmartStreamer4-v0.1.11b-win-x64.zip
  • SHA256SUMS.txt

Operator Notes

  • After resetting channel config files, run CW Skimmer manually and verify Audio tab selections are calibrated to DAX IQ RX 1 and DAX Audio RX 1 before restarting normal automation.