Skip to content

Spot Hub, FreeDV not sending spots to FreeDV reporter #2213

@W1IZZ

Description

@W1IZZ

Report preparation

  • I used the AI-assisted bug report tool (Help → Support → File an Issue)
  • I have attached a support bundle or log file

What happened?

Title: FreeDV Reporter: Outbound spots fail in RADE mode and Spotting service lacks Auto-Start persistence

What happened?

When operating in FreeDV mode (specifically reported as RADE on the FLEX-6600), AetherSDR fails to send outbound spots to the FreeDV Reporter service (qso.freedv.org). While the application successfully receives and displays spots from other users (verifying that the WebSocket connection and SpotHub integration are functional), the user's own presence is never reported.

Furthermore, the FreeDV spotting service does not respect the "Auto Start" configuration. Upon restarting the application, the spotting service remains inactive even if it was previously enabled, requiring a manual start each time.

Developer Notes

Based on the project architecture described in CLAUDE.md and the recent updates regarding the RADE modem integration (#2187), the following areas should be investigated:

Likely Involved Files:

  • src/spothub/FreeDvReporter.cpp / .h: This likely manages the QWebSocket connection to the reporter.
  • src/models/SliceModel.cpp: Handles mode transitions and status updates from the radio.
  • src/gui/DxClusterDialog.cpp: Manages the UI toggles for spotting and the Auto Start logic.
  • src/core/AppSettings.cpp: Handles the persistence of the spotting configuration.

Potential Root Causes:

  1. Mode String Mismatch: In FreeDvReporter.cpp, the logic that triggers an outbound spot may be performing a string comparison for mode "FREEDV". Since the FLEX-6600 with v4.2.18 firmware often reports this mode as "RADE", the condition to send a spot is likely never met.
  2. Initialization Sequence: The Auto Start bug suggests that DxClusterModel or FreeDvReporter is not being initialized/started during the MainWindow construction or the loadSettings() phase in AppSettings.
  3. Signal/Slot Disconnection: The "per-slice reporting toggle" mentioned in recent release notes might not be correctly hooked into the RADE engine's sync/SNR events for outbound reporting, or the toggle state itself isn't persisting.

Recommended Diagnostics:
Please enable the following logging categories in Help → Support to capture the failure:

  • Spothub: To see if FreeDvReporter attempts to format/send a JSON payload.
  • Network: To monitor the WebSocket handshake and any write errors to the reporter server.
  • Commands: To verify the exact mode string (e.g., slice set 0 mode=RADE) being received from the radio.
  • FreeDV: (If available) to trace the RADE modem state mirroring.

What did you expect?

  1. Outbound Spotting: When a slice is set to FreeDV (RADE) mode and spotting is enabled, the application should automatically send a spot to the FreeDV Reporter containing the callsign, frequency, and mode.
  2. Persistence: The FreeDV spotting service should automatically resume its "Enabled" state upon application startup if the user has configured it to do so.

Steps to reproduce

  1. Launch AetherSDR 0.9.3.
  2. Navigate to the DX Cluster / SpotHub settings and enable FreeDV Reporter spotting.
  3. Observe that the service must be started manually (Auto Start fails).
  4. Select RADE (FreeDV) mode on an active slice (FLEX-6600, fw 4.2.18).
  5. Ensure the "Report My Station" or equivalent toggle is active.
  6. Check qso.freedv.org or the local SpotHub list; observe that your own station does not appear, while other FreeDV spots continue to populate.

AetherSDR version

0.9.3

Radio model & firmware

Radio: FLEX-6600 - Firmware: 4.2.18.41174

Operating system

Linux

OS version and hardware

OS: Linux (Ubuntu/Fedora/AppImage) - AetherSDR Version: 0.9.3 - Qt Version: 6.7.3

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingclaude-activeAetherClaude is actively working on this issue

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions