Skip to content

Add tinySA device controls - #11

Draft
AlCalzone wants to merge 34 commits into
musithang:mainfrom
AlCalzone:alcalzone-cautious-train
Draft

Add tinySA device controls#11
AlCalzone wants to merge 34 commits into
musithang:mainfrom
AlCalzone:alcalzone-cautious-train

Conversation

@AlCalzone

@AlCalzone AlCalzone commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Depends on #10. This stack builds tinySA support on calibrated power traces. This branch will be rebased onto main after #10 lands.

The backend still used fixed automatic settings. Operators could not choose scan density, bandwidth, input path, attenuation, LNA, spur removal, or external gain from sdrtop.

This PR maps each model's supported settings to the serial worker and stores them in the [tinysa] config block. LOW, HIGH, and Ultra preferences remain independent. Safe transitions and recovery keep accepted settings aligned with the hardware.

AlCalzone and others added 24 commits September 8, 2026 11:15
Use N intervals across an N-bin IQ FFT span. Share bin windows and frequency conversion across spectrum rendering, waterfall columns, and peak-jump tuning.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Use containing FFT intervals for cursor and marker lookup. Extend the final rendered interval and derive waterfall columns from each drawn row. Use captured-frame coordinates for lab peaks and recall.

Address the approved geometry review of musithang#12.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep existing IQ profiles at -120 to 0 dBFS with a 500 ms trace-age limit.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Address musithang#13 review with shared range-safe zoom, explicit display validation, capability-based initialization, and budget-aware FFT pacing.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Extract backend-neutral control and math helpers for the tinySA prerequisites. Preserve finite IQ averaging, peak decay, noise-floor calculation, and RX session behavior.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Address musithang#14 review with documented availability and parameter contracts, buffer preconditions, and boundary regressions.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Adapt display tests to the geometry window API while keeping each preparation layer independently testable.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Add backend-neutral calibrated trace acquisition, measured-point publication, power RX control, and capability-aware layout fallback. Preserve IQ behavior through the shared prerequisite contracts.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Add hardware-tested tinySA discovery and calibrated spectrum acquisition on the generic power-trace path.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Publish a uniform grid for float-rounded firmware points and preserve the effective center after edge-clamped scans.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Accept the firmware's bounded float grid variation using measured endpoints. Clamp duplicate-producing spans and retain edge-shifted centers for later tuning changes.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Wait for the counted scan frame to close after the firmware acknowledges abort. Stop the worker if the serial stream cannot be synchronized.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Enable the Ultra input with its automatic threshold and submit each range as one scan. This keeps path selection and calibration in the verified firmware.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep Basic devices on one explicit LOW or HIGH connector and expose the choice through device selection. Normalize firmware frequency positions onto an endpoint-preserving display grid owned by the backend.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Treat the selector input as an explicit override so a bare serial path does not replace a persisted HIGH choice. Report invalid selectors and align the Basic model limit with the supported firmware.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Drive the existing sweep views from direct analyzer traces while preserving sweep state and IQ behavior.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep dwell changes in the accumulator and clear held data when a new sweep session starts.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Retry direct-mode shutdown and tuner restoration before starting a new sweep session.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Report the selected scan window and keep only the retry state needed during sweep exit.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Use the selected input range and expose only compatible sweep layouts.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Limit the direct-power layout adjustment to power-trace devices.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep raw firmware positions for wide sweeps while normalizing live spectrum axes.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep PR7 rejection reporting and layout fallbacks while routing native sweep traces.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
AlCalzone and others added 10 commits September 8, 2026 11:23
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Expose model-aware analyzer settings in the Options pane and preserve them in the user configuration.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@AlCalzone
AlCalzone force-pushed the alcalzone-cautious-train branch from e6d4b04 to a25f9eb Compare September 8, 2026 09:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant