Skip to content

Add native tinySA wide sweeps - #9

Draft
AlCalzone wants to merge 24 commits into
musithang:mainfrom
AlCalzone:alcalzone-tinysa-wide-sweep
Draft

Add native tinySA wide sweeps#9
AlCalzone wants to merge 24 commits into
musithang:mainfrom
AlCalzone:alcalzone-tinysa-wide-sweep

Conversation

@AlCalzone

@AlCalzone AlCalzone commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Depends on #8. This stack builds tinySA support on the calibrated power-trace foundation. This branch will be rebased onto main after #8 lands.

The spectrum backend measured only the current tuned span. The sweep views could not use the analyzer's native band scans.

This PR connects native band-scan requests to the existing sweep task and views. It preserves measured frequencies and isolates sweep traces from normal acquisition. #10 adds the reusable UI boundary for device settings.

AlCalzone and others added 23 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
AlCalzone force-pushed the alcalzone-tinysa-wide-sweep branch from dd65165 to 68662ee Compare September 8, 2026 09:22
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