diff --git a/AGENTS.md b/AGENTS.md index 2e80ec7a53..b57360833e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -249,7 +249,7 @@ Full dependency list is in `README.md`. Adding a test: declare it in ### Version and release files -Current version: **26.10.1**. +Current version: **26.10.2**. Versioning scheme is **CalVer** (`YY.M.patch[.hotfix]`) starting from v26.5.1, the 1.0-equivalent. Hotfix sub-patches use a 4th component (e.g. 26.5.2.1). Earlier tags used semver through v0.9.8. diff --git a/CHANGELOG.md b/CHANGELOG.md index f62659fc6c..0f1035c0c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,124 @@ Format follows [Keep a Changelog](https://keepachangelog.com/). ## [Unreleased] +## [v26.10.2] — 2026-10-11 + +### A unified title bar, a user guide at docs.aethersdr.com and remote operation over CGNAT · the canon windows, DVK import and FFT Smooth and De-comb · RTL-SDR multi-receiver delivery, and the Hermes-Lite 2 and ANAN-G2 remember where you left them · first green sanitizer runs and signed Windows builds + +106 merged changes from 15 human contributors, AetherClaude and no dependency updates within that total. The operator-facing half gives the main window one 52 px title bar with radio tabs on all three platforms, and starts moving the app onto the AetherSDR style guide: About, AetherRX, AetherTX, AetherModem, AetherMap, AetherGPS, Connect to Radio, AGC-T Calibration and the panadapter now wear the canon. The user guide moves out of the GitHub wiki to docs.aethersdr.com, with a signed PDF manual and a browser-side Log Analyzer, and the app links to it. A Tailscale node inside a FLEX-8000 or Aurora radio carries remote AetherSDR over CGNAT. The Digital Voice Keyer imports any WAV, the panadapter gains FFT Smooth and FFT De-comb, TCI announces tune edges and receivers, and Copy Assist can transcribe before noise reduction. RTL-SDR gains WFM stereo, live PPM, and per-receiver squelch, meters and audio exports, and every official package now carries it. The Hermes-Lite 2 and ANAN-G2 remember their settings across a restart, the HL2's receive audio drops 12 dB to unity, and four IC-7300MK2 control defects are fixed and certified. Underneath, both weekly sanitizer lanes achieved their first clean runs this cycle, but `ctr2_hid_thread_port_test` remains failing under TSan (#6350). Windows builds are Authenticode-signed, and every release keeps its debug symbols. + +### The title bar and the visual canon + +- **One 52 px title bar on every platform (#6198).** RFC #4764. The bar holds the application menu, the brand mark, one tab per known radio, the audio cluster, the applet dock/float controls and the window controls. On Windows and Linux the menus live behind a ☰ button at the left, with every shortcut and Alt+letter mnemonic still working; macOS keeps its system menu bar and native traffic lights. Each radio tab names the radio and states its connection in words. The standalone heartbeat lamp is gone: the tab's dot pulses per heartbeat, and on an unexpected loss it turns red and the tab reads **link lost** until a deliberate disconnect or new session clears it. The **+** popover searches discovered radios and offers Disconnect, Rename, Radio setup, Remove from or Add to tabs, Connect manually and Rescan. Windows draws its own caption buttons on Qt 6.12's expanded client area; Linux is frameless with a 6 px resize band. **View → Frameless Window** remains the escape hatch everywhere. Radio-tab state labels read in sentence case (#6281). +- On Windows with Frameless Window on, menus no longer flash open and closed and double-click to tune works again (#6328), Windows 10 no longer paints a light strip along the frame edges and Windows 11's border follows the theme (#6269), and the main window keeps its size and position across Frameless toggles, Minimal Mode and restarts instead of drifting a few pixels each time (#6310). +- **The AetherSDR style guide is the visual canon (#6227, #6240).** RFC #6226. `docs/style/aethersdr-style-guide.md` records the canon's colors, building blocks and migration order, and a `color.canon.*` token group joins both bundled themes. The About window is its first surface: no title bar, rounded corners, the canon ground, the logo in a spark ring, build details in a selectable card, and a **Contributor Logbook ↗** button in place of the contributor list and Community Credits. Animations hold still when the OS asks for reduced motion. +- **Tool windows move to the canon (#6334, #6339, #6340, #6341, #6364, #6372, #6345).** AetherRX, AetherTX, AetherModem, the PSK Reporter map (now **AetherMap**, Tools → AetherMap…), the GPS window (now **AetherGPS**, Tools → AetherGPS…), Connect to Radio, AGC-T Calibration and the AetherRX/AetherTX Settings dialogs become canon windows: no title bar, a corner close button, drag anywhere empty to move, resize from any edge, Esc or Ctrl+W to close. The workspace windows keep their own taskbar entries and no longer follow View → Frameless Window; saved positions carry over. Check boxes and radio buttons in every canon window draw clear checked and selected states. Closing AetherMap by any path, Esc included, now stops its clients and cancels an armed WSPR beacon, and closing AGC-T Calibration during an Auto Sweep restores the AGC-T the sweep started from. +- **The panadapter is the first canon surface in the main window (#6386).** A transparent 22 px header with the grip, the slice title and round pop-out, maximize and close buttons lies over the spectrum, which now runs to the top of the pan. The empty middle of the header belongs to the spectrum, so clicking, dragging and the wheel there behave as anywhere else on it. The overlay menu, dBm arrows and marker labels move below the header; slice flags ride over it. +- **The DVK panel follows the canon (#6251).** A title-bar-style header with a status line, slot rows as cards, key-cap F-keys, and controls enabled only when they can act. On-air uses the MOX colors and refusals say "failed". +- Lists, tree views and menus that rely on the app stylesheet draw a selected item in the palette highlight rather than dark text on the accent, which was unreadable on a dark custom accent; the Theme Editor's token list is readable under a light OS palette (#6312, #6322). +- A popped-out panadapter's window title is plain text and follows slice changes, and a pan with no slice is headed `Pan ` both docked and floating (#6302, #6323). +- **Status-bar indicators work from the keyboard (#6267).** The ten click-handled indicators (band stack, +PAN, TNF, CWX, ASR, DVK, FDX, TUN, AMP and TX) take Tab focus, run on Return or Enter, and read as buttons with their on/off state to screen readers. Space stays PTT. + +### Documentation and support + +- **docs.aethersdr.com (#6286, #6298).** The user guide moves from the GitHub wiki into the repo as a Docusaurus site with **Stable** (this release) and **Next** (main) versions, offline search, a Pandoc/Typst **PDF manual** attached to each release with a detached signature, generated reference pages checked against the source, and a **Log Analyzer** that reads a log or support bundle in the browser — nothing is uploaded — and links each finding to its fix. 119 screenshots from a live FLEX-8600 and the demo illustrate 63 pages, with IPs, MACs, serials and locations redacted. +- **The app links to the docs (#6294).** The Help menu gains AetherSDR Documentation, Printable Manual (PDF) and Log Analyzer; each bundled help page links its docs page; Help → Support & Diagnostics gains Troubleshooting Guide and Log Analyzer buttons; and help-window links take a readable color in the dark theme. In-app help, README, CONTRIBUTING and several UI strings were brought in line with current behavior (#6250). +- **Failures the Log Analyzer could not see are logged (#6308, #6293).** VITA-49 sequence errors per stream (rate-limited), BNR pack install and transfer failures, the Qt platform plugin in use and any fallback, and Hermes-Lite 2 discovery bind failures, unsendable probes and silent sweeps. A `-platform` argument now counts as the operator's choice in AetherSDR's own Wayland and GPU logic. +- **Every release keeps its debug symbols (#6220).** Linux, macOS and Windows builds attach a `-symbols.tar.xz` archive per platform, verified against what ships, and `docs/debugging-crashes.md` tells operators what to send after a crash. Help → File an Issue and the bug template link it. + +### Remote operation and networking + +- **Remote AetherSDR over CGNAT through the radio itself (#6273, #6318, #6325).** RFC #6271. `flex-tailnet-shim` is a Tailscale node that runs inside a FLEX-8000 or Aurora radio as a Docker waveform container and relays the SmartSDR control connection and VITA-49 to tailnet clients, closing the radio connection the moment a client goes away. **Waveforms → Install… → Remote Access (Tailscale)** downloads the pinned, SHA-256-checked image, and **Configure…** opens the Remote Access window: status, tailnet address, auth key, machine name, an allowlist of who may connect, and 4O3A station devices shared as subnet routes. Network Diagnostics gains a Remote Link view with the tunnel path, radio-side RTT, throughput and where packet loss happens. Version 0.4.1 checks station-device flows against the allowlist, relays only the radio's own datagrams, ends connections a saved access list refuses on a definite refusal only, and never leaves Remote Access waiting on a stuck boot. +- **Network MTU is capped at 1200 over Tailscale (#6319).** When the radio or this computer's end of the connection has a tailnet address, AetherSDR caps `network_mtu` at 1200 so VITA-49 fits the tunnel; SmartLink is excluded and the saved value is never rewritten. An out-of-range or damaged saved MTU is sent as the 1450 default instead of 0. **On upgrading:** a higher Network MTU set by hand is lowered over Tailscale, with no opt-out. +- **Windows firewall rules ship with the app (#6289).** The installer removes AetherSDR's stale inbound rules, including a dismissed prompt's block rule, and adds inbound allows: UDP on every profile, TCP on domain and private networks only. The Store package declares the same rules. A new **Network Diagnostics → Windows Firewall** page reports the verdict per network profile, the rules behind it and any third-party firewall, with **Fix…** and **Check again**. On every platform, a failed external request (update check, QRZ, maps, radar, propagation) is logged with its service, host, error and TLS details on a new `aether.network` category. + +### Panadapter and waterfall + +- **FFT Smooth and FFT De-comb (#6371).** Two sliders under Display → PANADAPTER, both off by default, shape only the spectrum trace; the waterfall, noise-floor readout, FFT Floor Auto and Auto SQL keep the raw bins. FFT Smooth (0–16 px) averages neighboring points in linear power. FFT De-comb (0–600 Hz) replaces a voice's harmonic comb with its cepstral envelope, keeping the signal's outline and peak level and leaving the noise floor as drawn. Both run in the client, so every radio family behaves the same. +- **Flex FFT range (#6241, #6242).** Headroom recovery expands only the clipped end of the range, within FlexLib's −180/+20 dBm endpoints, and rewrites the radio's range only while FFT Floor Auto is on and the pan is this session's. Range replies converge the pan model. Releasing the right dBm scale no longer makes the noise floor pop: frames already in flight are reprojected onto the new scale (worst rendered departure 1.53 dB over 20 releases, from about 27 dB). The clipping reports in #6238 stay open; complete band/Go To/preamp trace-bounce removal is not claimed. +- On the Hermes-Lite 2, FFT FPS and the dBm range survive a restart, stored per pan in the radio's display document; the ANAN-G2 keeps its dBm range the same way (#6140, #6129). + +### Digital Voice Keyer, CW, spots and speech-to-text + +- **DVK Import WAV works (#6247, #6262, #6264).** Import follows the SmartSDR API's two-step upload and converts any PCM or float WAV (1–8 channels, 8–384 kHz) to the radio's 24 kHz mono, so clips no longer play at half speed; clips over 10 s are refused. Slot names keep their spaces and their equals signs, a radio refusal shows a readable message, and a SmartSDR+ refusal disables DVK until a later licensed status re-enables it without a reconnect. One operation runs at a time from the moment it is sent, Import re-checks that when it starts, and STOP and Escape reach a start still awaiting its reply. The slot menu's Delete item, which hid a slot until the radio restarted, is removed. Screen readers hear one announcement per change. +- **Copy Assist can transcribe before noise reduction (#6216).** RFC #4861. *Transcribe from unprocessed audio* (off by default) feeds the recognizer the receive audio before client NR and RX effects while you keep hearing the processed audio. On an off-air 40 m SSB recording, word error rate fell from 35.2% after NNR to 22.7% unprocessed. +- **GoCluster spots parse cleanly (#6311).** The fixed GoCluster tail (path, grid, confidence tag, time) is split from the comment once the banner names a GoCluster node; padded comments collapse on every server; a leading ` dB` fills the spot's SNR; and a **Hide Unverified** toggle on SpotHub's Cluster and RBN tabs drops calls GoCluster tags `?`. SpotHub's Clear no longer leaves NUL bytes in the log. +- **Live CW contacts are opt-in (#6268).** The QRZ contact card no longer appears inside the CW decoder. **View → Show live CW contacts** (off by default) opens contacts in a separate window with a full-width close button, and closing it turns the feature off until you turn it back on. +- DeepFist, on builds with `ENABLE_DEEPFIST_EXPERIMENT`, gates far less weak off-air CW (activity threshold 3) and colors each letter by the model's confidence in the decoder's four bands (#5953, #6103). + +### Transmit, TCI and controllers + +- **TCI announces tune edges (#6200, #6206).** Every TUNE start and stop, from the TX applet, a TCI client or the radio, is broadcast as `tune:,true|false;` after the carrier's `trx:` edge, so tuner and antenna-switch controllers such as HB9DUT's ICOM AH-4 interface follow it. A `tune:` SET always gets an answer, a TCI-started tune stops when its client disconnects, and the init burst carries the tune state. A TUNE stopped from outside the applet no longer leaves every later TUNE refused. +- TCI sends `rx_enable` when a receiver opens and, after a 500 ms settle that ignores band-change recreates, when it closes (#6365). +- MIDI and keyboard Mode Up / Down step only through the modes the radio reports and gain FDVU and FDVL (#6038). A **RADE Modem** MIDI and Ulanzi Dial target toggles RADE on the active slice (#6031). +- On Windows, Ulanzi Dial detection scans only the dial's VID/PID, ending RC-28 tuning lag of up to 5 s while it scanned every HID device (#6256). +- **CTR2 USB link extensions and the AetherKnob (#6338).** RFC #6332. A device on the CTR2 Proxy's USB relay can negotiate per-device extensions; a stock CTR2 stays on plain link v0, unchanged. The first two send a 32-bar spectrum of the audio being heard and the relay's UDP port, which fixed meters that never moved through the relay on a FLEX-8600. Both were verified with an AetherKnob on a FLEX-8600. +- **Elecraft KPA1500 applet (#5905).** A direct-TCP amplifier panel under Setup → Peripherals: forward and reflected power, SWR, PA temperature, band and faults, operate/standby on the amplifier's readback, the internal ATU and antenna select. It does not key the amplifier, and it has not yet been run against a physical KPA1500. +- The PGXL panel's key reads **MEffA**, as the rail button does (#5984). The ALC bars on the Phone and CW applets fill from the left to their value's tick (#6236). +- Over the automation bridge, the VOX button can be switched off with TX permission granted (#6375). + +### Audio and system + +- **Streaming survives a minimized or covered window (#6195).** RFC #6192. The audio, DAX, TCI, radio I/O, RADE and DSP-build threads run at Qt 6.12's high quality-of-service, macOS App Nap and Windows power throttling are turned off for the process, and idle system sleep is blocked while a radio is connected. **On upgrading:** *Prevent system sleep while connected* is now on by default on every OS (a profile that turned it off stays off); it never stops the display blanking or the screen locking, and on Linux it no longer inhibits the screen locker. +- **A missing audio device no longer erases your choice (#6378).** When a saved input or output device is absent, AetherSDR falls back to the system default for the session without rewriting the saved device, and returns to it when it reappears. +- The title-bar speaker mutes a radio's line out only where the radio has one, and refuses aloud where there is neither line out nor PC Audio; Radio Setup's Line Out and Headphone rows are dimmed with their reason on radios without them (#6260, #6353). +- **Output volume follows the path you hear (#6129).** With PC Audio off, the master slider, volume hotkeys, FlexControl, MIDI and TCI `volume` all drive the radio's line-out level and no longer rewrite the PC level. On a Flex the `step_up`/`step_down` shortcuts set the slice step as the STEP buttons do. +- The NNR filter takes the FFTW planner lock, ending a crash when NNR was rebuilt during NR2 wisdom generation, and quitting during a long wisdom plan waits it out instead of aborting (#6306). + +### Hermes-Lite 2 + +- **The HL2 remembers where you left it (#6259).** TUNE power per band, FFT AVG, receivers B–D, each receiver's NB/NB2, APF, squelch, RIT/XIT, audio gain and pan and pan center, manual notches, and the automatic RF gain law and floor are restored on connect. Receivers come back through the normal add path, so the current span's receiver ceiling still decides how many reopen. +- **Receive audio leaves WDSP at unity (#6254).** **On upgrading:** HL2 receive audio is 12.04 dB quieter at every AF slider position, on the speaker, the HL2's codec, TCI and the decoders; a steady tone previously left the chain about 10 dB above full scale. If you pulled the AF slider down to about 25 to stop strong stations distorting, put it back up. +- **CW is sent at the TUNE carrier level (#5975).** **On upgrading:** at a fixed RF Power setting, host CW is 6.02 dB stronger than before, matching TUNE; the drive register remains the power control. +- **The TX ALC ramps inside each block (#6245).** While reducing, the ALC gain follows a smooth path to its new value instead of a 21.3 ms staircase, cutting energy away from the audio from −36.7 to −57.8 dBc at 21.4 dB of reduction without letting a sample exceed the target. The level, target and release are unchanged. +- Discovery and manual-IP connection probe every active local IPv4 interface, so an HL2 on a second Ethernet adapter of a multi-homed host is found (#6009). +- The forward-power peak hold skips the non-measurement words the radio sends for about 2 ms after the T/R switch-over (#6230). A band-stack recall into DIGU or DIGL keeps AGC off (#6150). +- Radio Setup's six TX timing fields are dimmed with their reason on a radio that cannot take them (#6166). +- Tests pin the TXA transmit passband and key-up onset (#6347) and take the ADC-pairing age gate off the wall clock (#6164). + +### ANAN-G2 + +- **The G2 remembers where you left it (#6129).** Frequency and mode (14.175 MHz USB on a first connect), tuning step, the radio's own output level (including 0) and the dBm range are restored per radio. The HL2 and legacy RTL now also remember the tuning step. +- **AGC-T covers −20 to 120 dB and drives the AGC-off gain (#6282).** The range matches deskHPSDR and Thetis, the knob shows what the DSP is running, it starts at 79.4 dB, and a reconnect keeps the operator's value. **On upgrading:** a saved AGC-T value now maps to a different gain, so weak signals that needed AGC-T near the top no longer do. The AGC-T calibrator's AGC-off sweep now climbs from 0 on every radio. +- The status bar's `Network:` field shows the G2's link (bytes, DDC packets and loss), and the PA temperature row, which nothing can feed on this radio, is withdrawn (#6137). The supply voltage is shown in the status bar and Meter applet, read from the input that carries it (13.68 V against a 13.65 V meter) (#6211). +- **A second noise blanker (#5966).** On the ANAN and Hermes-Lite 2, the NB button cycles Off → NB → NB2, where NB2 is WDSP's interpolating impulse blanker, with a fill selector while it runs. Flex and Icom keep the radio's own blanker. + +### Icom + +- On the IC-7300MK2 and IC-705, COMP is the radio's 0–10 and a setting no longer snaps back to DX+ on its own confirmation read; a numeric readout also appears on the IC-9700's 0–100 (#6174). The IC-705 is assumed to match the MK2 and still needs a live check. +- Squelch set on at threshold 0 reads back as on, so it can no longer stick off (#6175). After a preamp or ATT write the other stage is read back at once, so the radio's interlock shows immediately instead of at the next 3 s poll (#6183). +- **The IC-7300MK2's SQL line is drawn where the radio gates (#6184).** A measured scale, −194.8 + 1.49 × level dBm, replaces Flex's, within 0.9 dB RMS with the preamp on. **On upgrading:** Auto SQL is not offered on the MK2, so a slice in Auto drops to Manual. The IC-705 and IC-9700 keep the Flex scale until measured. +- `radiocert meters` gains control-domain, front-end-interlock and squelch-scale stages that catch these four classes of defect on any radio that publishes the controls, and a new RX-only persist runner checks them across a restart (#6205). + +### RTL-SDR + +- **Multi-receiver delivery and RTL in every official package (#6083).** RFC #5468. Each receiver has its own manual or Auto squelch, a relative receive meter, APRS on the selected receiver, stable TCI receiver mapping and native receive DAX feeds on Linux and macOS. The normal launch still opens one receiver; two, four or eight are an explicit evaluation, not a production claim. The official AppImage, macOS DMG and Windows packages now require and bundle the RTL backend with a pinned libusb. +- **WFM stereo (#5973).** A broadcast-FM recipe decodes stereo at 192 kHz with switchable 75/50 µs deemphasis and a pilot indicator, behind a native WFM applet, with settings kept per device. +- **Live PPM adjustment (#6082).** PPM edits apply after a 200 ms debounce or on Apply, with hardware readback kept separate from the requested value. +- The RTL tests follow the qualified-WFM gate and build without the RTL backend (#6263). + +### DSP and stability + +- WDSP patch 16 takes the DSP lock when the TX bandpass changes, so a TX filter change while transmitting with COMP on can no longer run blocks with the post-compressor bandpass bypassed; patch 17 closes three races in the panadapter analyzer, including a torn spectrum frame (#6173). +- Tearing down a TX channel waits for WDSP's PureSignal correction thread instead of freeing memory it may still use (WDSP patch 22) (#6261). + +### Project and packaging + +- **Windows releases are Authenticode-signed (#6307).** The setup exe, its uninstaller and every exe and DLL in the setup, portable ZIP and MSIX carry a timestamped Azure Artifact Signing signature, so security suites can build reputation for one publisher instead of flagging each update. Signing runs in a job of its own, with OIDC credentials limited to release tags. +- Installed Linux source builds keep the pinned Qt's runtime path (#6194). qtkeychain's libsecret check looks for the backend itself, fixing Ubuntu builds (#6275). +- Sanitizers: both weekly lanes ran green for the first time, with zero reports — every ASan, UBSan and TSan finding on the full tree was fixed (#6173), a leak now fails its test (#6176), timeouts scale under instrumentation (#6208), long suites run as focused cases (#6196), and tests reach WDSP only through `WdspChannel`, enforced by Static checks (#6309). +- CI and build: shared test sources compile once and RelWithDebInfo defaults to `-g1` (#6217); CodeQL builds the production targets with a coverage check (#6182); a manual Docs run on `main` deploys the site (#6291); the CTR2 proxy test no longer races the kernel for a port (#6296); and the title-bar test skips Alt+F where Qt has no mnemonics (#6359). +- Warnings: `Q_OS_MAC` becomes `Q_OS_MACOS` (#6355), GCC 14 deprecation and `nodiscard` warnings are cleared (#6366, #6369), and setup-script outputs are ignored by git (#6361, #6363). +- `AGENTS.md` carries the user-docs workflow (#6304), and `/pr-review` and `/pr-land` build only the targets a review runs (#6215). + +### Contributors + +Thanks to **@ten9876** (44 commits — maintainer; the canon windows, style guide and panadapter header, docs.aethersdr.com and its in-app links, the in-radio tailnet shim and Tailscale MTU cap, Windows firewall rules and Authenticode signing, DVK import, FFT Smooth and De-comb, GoCluster spots, the CTR2 link extensions, keyboard status indicators, the NNR crash fix and the sanitizer lanes), **@on8st** (13 commits — HL2 unity receive audio, the in-block ALC ramp, forward-power and discovery logging, FFT FPS and dBm persistence, bookmark AGC, dimmed TX timing and headphone rows, the ALC bar, the saved audio device and the VOX bridge fix), **@jensenpat** (10 commits — the unified title bar, stream-thread QoS and sleep control, the IC-7300MK2 COMP, squelch, interlock and SQL-line fixes and their radiocert stages, Flex FFT range repairs and opt-in CW contacts), **@w5jwp** (6 commits — Qt 6.12 and GCC 14 warning cleanup, setup-script ignores and the title-bar test on macOS), **@chibondking** (5 commits — Windows frameless menus, frame edge and geometry, pan window titles and readable tree views), **@jcmerg** (5 commits — TCI tune broadcasts, the tune latch, HL2 state memory, line-out gating and the PureSignal teardown), **@tropo1234** (5 commits — ANAN-G2 memory, AGC-T range, link telemetry, supply voltage and NB2), **@skerker** (4 commits — DeepFist gating and confidence colors, MIDI FDVU/FDVL and the RADE toggle), **@Ozy311** (3 commits — RTL-SDR WFM stereo, live PPM and multi-receiver delivery with RTL packaging), **@rfoust** (3 commits — Linux install RPATH, narrowed CodeQL builds and sanitizer test bounds), **@dacacioa** (2 commits — HL2 CW carrier level and multi-interface discovery), **@G6PWY-Chris** (1 commit — the PGXL MEffA key), **@K5PTB** (1 commit — Copy Assist before noise reduction), **@nigelfenton** (1 commit — the Ulanzi Dial VID/PID scan on Windows), **@nreed97** (1 commit — TCI `rx_enable`), **@aethersdr-agent** (2 commits — AetherClaude orchestrator; the KPA1500 applet and radio-tab sentence case). Counts cover primary commit authors; co-author credit remains in the commit history. + +Welcome to first-time contributor **@dacacioa**! + +73, Jeremy KK7GWY & Claude (AI dev partner) + ## [v26.10.1] — 2026-10-04 ### Controls on every radio either work or say why not, a CTR2 relay and authenticated 4O3A accessories · the Hermes-Lite 2 gains squelch, APF, RIT/XIT and a real FFT AVG · Qt 6.12 everywhere and receive control behind the backend seam diff --git a/CMakeLists.txt b/CMakeLists.txt index 4829a48fc4..1b04f309ba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,7 +7,7 @@ if(POLICY CMP0156) cmake_policy(SET CMP0156 NEW) endif() -project(AetherSDR VERSION 26.10.1 LANGUAGES C CXX) +project(AetherSDR VERSION 26.10.2 LANGUAGES C CXX) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) diff --git a/README.md b/README.md index 838d067e0c..c8cc97366a 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ AetherSDR brings full FlexRadio operation to Linux, macOS, and Windows — each a native build, no Wine or virtual machines. A native aarch64 build also runs on Raspberry Pi and other embedded ARM devices. Built from the ground up with Qt6 and C++20, it speaks the SmartSDR protocol natively and aims to replicate the full SmartSDR experience. -**Current version: 26.10.1** — CalVer (`YY.M.patch[.hotfix]`). | [Download](https://github.com/aethersdr/AetherSDR/releases/latest) | [Discussions](https://github.com/aethersdr/AetherSDR/discussions) | [What's New](https://github.com/aethersdr/AetherSDR/releases) +**Current version: 26.10.2** — CalVer (`YY.M.patch[.hotfix]`). | [Download](https://github.com/aethersdr/AetherSDR/releases/latest) | [Discussions](https://github.com/aethersdr/AetherSDR/discussions) | [What's New](https://github.com/aethersdr/AetherSDR/releases) > **Native builds for Linux, macOS, and Windows** — Linux AppImage (x86-64 + aarch64), macOS DMG (Apple Silicon + Intel), Windows installer and portable ZIP. Every platform is built, tested in CI, and released together. @@ -22,7 +22,7 @@ AetherSDR brings full FlexRadio operation to Linux, macOS, and Windows — each ## Highlights -- **GPU-accelerated spectrum & waterfall** — QRhi rendering (OpenGL/Metal/D3D11) with a per-pixel FFT trace at up to **60 fps**, an optional **3D stacked-trace** mode, ~71% less CPU than the paint path, GPU-composited slice flags and multi-GPU adapter selection +- **GPU-accelerated spectrum & waterfall** — QRhi rendering (OpenGL/Metal/D3D11) with a per-pixel FFT trace at up to **60 fps**, optional FFT Smooth and De-comb trace shaping, an optional **3D stacked-trace** mode, ~71% less CPU than the paint path, GPU-composited slice flags and multi-GPU adapter selection - **Multi-slice & multi-panadapter** — colour-coded VFO overlays, independent TX assignment, diversity/ESC beamforming, and up to 8 detachable pans with native VITA-49 waterfall tiles and per-flag S-meter / **SmartMTR** views - **KiwiSDR and Web-888 public-receiver browser** — find and connect to public receivers worldwide through an API-policy-aware directory, with diversity receive and receive-only TX inhibit - **AetherTX and AetherRX** — the transmit and receive chains, one window each. AetherTX is the channel strip (gate, EQ, compressor, de-esser, tube, AetherVoice exciter, reverb, brickwall limiter) with a preset library and scope; AetherRX puts noise reduction, gate, EQ, compressor, tube, AetherVoice and the output meter on tabs down its left edge @@ -32,12 +32,13 @@ AetherSDR brings full FlexRadio operation to Linux, macOS, and Windows — each - **AetherSweep** — in-panadapter SWR analyzer with log scale, threshold-band shading and interpolated bandwidth at SWR ≤ 1.5 / 2.0 - **SpotHub** — DX Cluster, RBN, WSJT-X, POTA, FreeDV Reporter, N1MM+/DXLog contest bandmap, the EiBi shortwave schedule and the KiwiSDR DX Community database, with auto-mode switch and per-feed colouring - **CW operator suite** — real-time Morse decoder, MIDI/keyboard straight-key and iambic paddles with full QSK, optional Quindar tones -- **Copy Assist (speech-to-text)** — on-device transcription of received voice via whisper.cpp, docked under the waterfall with confidence colour-coding. CPU or GPU (Vulkan/Metal, auto-detected), download-on-demand models, optional remote OpenAI-compatible endpoint. Not in the Intel macOS build — see [`docs/asr-copy-assist.md`](docs/asr-copy-assist.md) +- **Copy Assist (speech-to-text)** — on-device transcription of received voice via whisper.cpp, docked under the waterfall with confidence colour-coding, optionally from the audio before noise reduction. CPU or GPU (Vulkan/Metal, auto-detected), download-on-demand models, optional remote OpenAI-compatible endpoint. Not in the Intel macOS build — see [`docs/asr-copy-assist.md`](docs/asr-copy-assist.md) - **FreeDV RADE** — AI digital-voice codec with a client-side neural encoder/decoder -- **PSK Reporter map overlays** — optional global precipitation (LibreWXR, with NOAA, ECCC and EUMETNET OPERA regional radar backups and a per-provider legend), NOAA/NWS weather radar with observation playback ([`docs`](docs/psk-reporter-weather-radar.md)) and a NASA/GSFC VIIRS night-lights layer that fades through civil twilight ([`docs`](docs/psk-reporter-city-lights.md)), on both the 2D map and 3D globe -- **SmartLink remote + TCI v2.0 server** — Auth0/TLS WAN operation, and CAT + audio + IQ + CW + spots over a single TCI WebSocket +- **AetherMap (PSK Reporter) overlays** — optional global precipitation (LibreWXR, with NOAA, ECCC and EUMETNET OPERA regional radar backups and a per-provider legend), NOAA/NWS weather radar with observation playback ([`docs`](docs/psk-reporter-weather-radar.md)) and a NASA/GSFC VIIRS night-lights layer that fades through civil twilight ([`docs`](docs/psk-reporter-city-lights.md)), on both the 2D map and 3D globe +- **SmartLink remote, remote over CGNAT, and a TCI v2.0 server** — Auth0/TLS WAN operation; an in-radio Tailscale node that carries AetherSDR to a FLEX-8000 or Aurora radio behind CGNAT; and CAT + audio + IQ + CW + spots + tune and receiver events over a single TCI WebSocket - **Broad hardware control** — rigctld and virtual-serial CAT, MIDI mapping, the FlexControl knob, serial PTT/CW keying, Multi-Flex operation alongside SmartSDR/Maestro, and a relay that puts a CTR2-Max controller on the radio over Wi-Fi (USB pending CTR2 firmware) - **Workspace canvas** — place pans and applets freely as resizable, layered items with edge and grid snapping, across several windows if you want them. Named workspaces recall which applets are open as well as where they sit, and bind to radio profiles. Off by default; the Classic shell is unchanged until you enable it +- **A user guide at [docs.aethersdr.com](https://docs.aethersdr.com)** — Stable and Next versions, a printable PDF manual signed with each release, and a Log Analyzer that reads a log or support bundle in your browser without uploading it - **Built-in demo mode** — a synthetic backend generating its own RX audio and matching panadapter, with a fault-injection harness, so you can explore the full UI with no radio attached (it cannot transmit) --- @@ -78,8 +79,9 @@ Supported external devices include the 4O3A/FlexRadio PGXL (Power Genius XL) power amplifier and TGXL (Tuner Genius XL) antenna tuner, and — outside the radio seam entirely — ACOM S-series and SPE Expert (1.3K-FA / 1.5K-FA / 2K-FA) amplifiers over serial or ser2net TCP, and VK3AMP (600 W / 1000 W / 2000 W) -amplifiers over TCP control with UDP telemetry. Direct TGXL, PGXL and Antenna -Genius connections authenticate with the device's access code. +amplifiers over TCP control with UDP telemetry, and the Elecraft KPA1500 over +TCP (not yet validated on hardware). Direct TGXL, PGXL and Antenna Genius +connections authenticate with the device's access code. Active test target is FLEX-8600 firmware 4.2.18 (SmartSDR protocol v1.4.0.0); earlier 4.x firmware works; v3.x is unsupported. @@ -96,7 +98,9 @@ FlexRadio remains the supported target: outside CW, a declared board variant (bare HL2, AK4951 companion or SquareSDR 2), receive squelch, the CW audio peaking filter, RIT and XIT per receiver, backend-side FFT averaging, the CL1 external 10 MHz reference and - per-radio state restore (including AGC mode and threshold). + per-radio state restore (AGC mode and threshold, TUNE power per band, FFT + averaging, FPS and dBm range, receivers B–D with their own setpoints, and + manual notches). - **Networked Icom** — **early**. CI-V over the RS-BA1 UDP transport, brought up on the IC-705 (receive, scope, transmit, FT8) and completed against a live IC-7300MK2 (controls, meters, ATU, WSPR, PC Audio routing and the CW decoder). @@ -113,11 +117,16 @@ FlexRadio remains the supported target: by WDSP's display analyzer at one point per screen pixel, and the S-meter, noise blanker and RF-gain attenuator work. The receiver's AF gain, mute and balance apply, and receive audio also plays through the radio's own speaker. - Transmit is a future phase. -- **RTL-SDR** — **experimental, receive-only**. Discovers supported USB dongles - through `librtlsdr` and provides one panadapter and one host-demodulated slice, - publishing only the receive state the dongle confirmed, with capture browsing - and a 65,536-point zoom FFT. + AGC-T spans −20 to 120 dB, NB2 interpolates over impulses, the status bar + shows the supply voltage and link, and frequency, mode, step, output level + and dBm range are remembered per radio. Transmit is a future phase. +- **RTL-SDR** — **experimental, receive-only**, bundled in every official + package. Discovers supported USB dongles through `librtlsdr` and provides one + panadapter and, at a normal launch, one host-demodulated slice, publishing + only the receive state the dongle confirmed, with capture browsing, a + 65,536-point zoom FFT, WFM stereo, live PPM adjustment, per-receiver squelch + and relative meters, and receive DAX/TCI feeds. Two, four or eight receivers + are an explicit evaluation, not yet a production claim. No radio at all? **Demo mode** runs the full UI against a synthetic backend that generates its own audio and spectrum. @@ -256,8 +265,10 @@ Currently in flight: - **Workspace canvas** — an experimental alternative shell; remaining work is live cross-window drag and field time against the Classic shell. - **CTR2 controller relay** — Wi-Fi mode works with today's CTR2 firmware; - USB mode's host side is complete, has carried the radio's status stream to - development firmware, and waits on a CTR2 USB firmware release. + USB mode's host side is complete, with per-device link extensions proven on + an AetherKnob, and the CTR2 itself waits on a USB firmware release. +- **The visual canon** — the AetherSDR style guide (RFC #6226) is applied one + surface at a time; ten have moved, and a single base-token flip comes last. - **AppSettings nested-JSON refactor** — storage is on SQLite with per-radio versioned feature documents; the legacy flat keys still need migrating. - **Flathub submission** — the AppStream metainfo and manpage are in; the diff --git a/ROADMAP.md b/ROADMAP.md index 154134073a..d7b75b0d22 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -7,7 +7,7 @@ as direction changes. For *what shipped*, see [`CHANGELOG.md`](CHANGELOG.md). -## Current cycle: post-v26.10.1 +## Current cycle: post-v26.10.2 ### In flight @@ -41,7 +41,10 @@ For *what shipped*, see [`CHANGELOG.md`](CHANGELOG.md). mute and balance, NB, NR, ANF, manual notch, APF, squelch, RX antenna and slice lock travel as typed backend requests, receive contracts are seeded across the families, and with the GUI callers rerouted the raw Flex command - count above the seam fell from 413 to 369. Remaining: + count above the seam fell from 413 to 369. v26.10.2 kept the new per-radio + differences in declared capability records rather than family checks — a + line-out control record, client-persisted FFT FPS and dBm range — and carried + WDSP's second noise blanker as a typed blanker kind on the receive route. Remaining: per-client propagation, transmit for SmartLink and the other families, transmit audio transport, and a replacement thin UI client — UI code still consumes models directly, and that remains correct until that client exists. @@ -70,7 +73,11 @@ For *what shipped*, see [`CHANGELOG.md`](CHANGELOG.md). keyed, kept an RF power change made during TUNE, stopped VOX, the monitor, the speech processor, CW speed and break-in raising a false drop notice, and corrected the IC-9700, IC-7610 and IC-785x to advertise the one panadapter - the backend implements. Remaining: transmit confirmation on additional Icom + the backend implements. v26.10.2 fixed four IC-7300MK2 control defects that + each had a passing backend test — COMP read back on the radio's 0–10, + squelch on at threshold 0, the preamp/ATT interlock shown at once, and the SQL + line drawn on a measured scale — and gave `radiocert` stages that catch each + class on any radio publishing the control. Remaining: transmit confirmation on additional Icom models, the per-model SET-menu item numbers the MOD Input check needs, audio gain/mute/pan, an automation verb making the modulation sources assertable without parsing Radio Health text, and the once-a-second @@ -91,7 +98,10 @@ For *what shipped*, see [`CHANGELOG.md`](CHANGELOG.md). point per screen pixel; published the S-meter; ran WDSP's noise blanker from the NB button; and drove the ADC step attenuator from RF Gain. v26.10.1 applied the receiver's AF gain, mute and balance and sent receive audio to - the G2's own speaker and headphone jack. The codec is + the G2's own speaker and headphone jack. v26.10.2 restored frequency, mode, + tuning step, output level and dBm range per radio, widened AGC-T to + −20…120 dB with a working AGC-off gain, published link telemetry and the + supply voltage, and added WDSP's second noise blanker. The codec is multi-DDC capable but `AnanBackend` still drives one; remaining is the `AnanRxDsp` fan-out, then transmit. - **RTL-SDR — experimental, receive-only** — `librtlsdr` discovery with one @@ -107,9 +117,12 @@ For *what shipped*, see [`CHANGELOG.md`](CHANGELOG.md). PCM. v26.10.1 landed M1: receive changes publish only after the dongle's readback and DSP adoption, capture browsing parks receivers outside the usable capture and resumes them, zoom uses a continuous 65,536-point FFT, and - FM/FM-N gain symmetric filters and squelch. Production still admits one - receiver. Remaining: WFM stereo, optional digital decoding, live PPM - interaction and multi-receiver delivery. + FM/FM-N gain symmetric filters and squelch. v26.10.2 added WFM stereo, live + PPM adjustment and multi-receiver delivery — per-receiver squelch, relative + meters, APRS on the selected receiver and receive DAX/TCI feeds — and every + official package now bundles the backend. The normal launch still opens one + receiver. Remaining: production multi-receiver capacity qualification and + optional digital FM reception (RFC #6079). - **Workspace canvas — experimental** — [RFC #4887](https://github.com/aethersdr/AetherSDR/issues/4887) landed complete in v26.8.3, all seven phases: pans and applets as freely placed, resizable, layered items on a canvas that can span several top-level windows, with named workspaces, @@ -156,7 +169,12 @@ For *what shipped*, see [`CHANGELOG.md`](CHANGELOG.md). receiver, FFT AVG computed backend-side, Black Level and NB Blank on its absolute-dB rows, client-side spots, the CL1 external 10 MHz reference, and automatic RF gain armable across the native −12…+48 dB range on the - bandscope law. Every control it cannot serve now refuses aloud. + bandscope law. Every control it cannot serve now refuses aloud. v26.10.2 made + the client its memory — TUNE power per band, FFT AVG, receivers B–D with each + receiver's setpoints, manual notches, FFT FPS and the dBm range survive a + restart — brought receive audio out of WDSP at unity (12 dB quieter), sent CW + at the TUNE carrier level, ramped the TX ALC gain inside each block and + discovered the radio on every local interface. **The experimental → supported call itself is still open**; what remains before making it is the rest of panadapter/waterfall parity with the Flex path, arming automatic RF gain by default, and field time on the TXA chain @@ -170,8 +188,20 @@ For *what shipped*, see [`CHANGELOG.md`](CHANGELOG.md). to, as an independent client outside AetherSDR's transmit paths. Wi-Fi mode works with today's CTR2 firmware. USB mode's host side is complete in link format v0, with AetherSDR starting the handshake, and the firmware author's - development firmware has received the radio's status stream over it. It - waits on a CTR2 USB firmware release. + development firmware has received the radio's status stream over it. + v26.10.2 added per-device link extensions ([RFC #6332](https://github.com/aethersdr/AetherSDR/issues/6332), approved): a device + on the USB relay can negotiate an audio-spectrum feed and the relay's UDP + port, verified end to end with an AetherKnob on a FLEX-8600, while a stock + CTR2 stays on plain link v0. The CTR2 itself still waits on a USB firmware + release. +- **AetherSDR style guide — the visual canon** ([RFC #6226](https://github.com/aethersdr/AetherSDR/issues/6226), approved; + tracking [#6239](https://github.com/aethersdr/AetherSDR/issues/6239)) — the canon is written down in + `docs/style/aethersdr-style-guide.md` with its own `color.canon.*` tokens, + and v26.10.2 moved the first surfaces onto it: the About window, AetherRX, + AetherTX, AetherModem, AetherMap, AetherGPS, Connect to Radio, AGC-T + Calibration, the DVK panel and the panadapter header, through `CanonWindow` + and the new in-window `CanonSurface` classes. Remaining: the other surfaces, + one PR at a time, then a single flip of the base tokens to canon values. - **AppSettings nested-JSON refactor** — ~460 flat call sites today; the new pattern is one nested-JSON value per feature (Principle V). The storage layer moved to SQLite and the scoped feature-document store, @@ -184,6 +214,9 @@ For *what shipped*, see [`CHANGELOG.md`](CHANGELOG.md). ### Queued (next cycle) +- **Unified client-side voice keyer** ([RFC #4214](https://github.com/aethersdr/AetherSDR/issues/4214), approved) — local + per-client recordings, quick-access CQ/Call, external and controller control, + and radio/local routing. Approved, not yet started. - **KiwiSDR follow-ups** — WebSDR / OpenWebRX support on top of the shipped public-receiver browser (per-receiver passwords, idle-release, and waterfall polish landed in v26.7.2; warm audio through TX and the @@ -267,19 +300,17 @@ implementation**. An approved RFC moves up into the cycle above. Full list: - [#5348](https://github.com/aethersdr/AetherSDR/issues/5348) — Radio-native VFO flag layout — carry a second receiver where a second panadapter cannot go - [#5223](https://github.com/aethersdr/AetherSDR/issues/5223) — Decouple panadapter zoom from the radio's sample rate - [#4925](https://github.com/aethersdr/AetherSDR/issues/4925) — Retain Band, Segment, or custom panadapter span across tuning and restart -- [#4764](https://github.com/aethersdr/AetherSDR/issues/4764) — Frameless window retrofit: one 52 px unified title bar with radio tabs, on all three platforms **Audio, DSP and transmit** - [#5704](https://github.com/aethersdr/AetherSDR/issues/5704) — Operator control of AGC position relative to noise reduction - [#5682](https://github.com/aethersdr/AetherSDR/issues/5682) — Isolate TCI RX/TX audio from UI scheduling across Flex, HL2 and Icom - [#5448](https://github.com/aethersdr/AetherSDR/issues/5448) — Audio preset workflow: quick selection, profile associations, and starting presets -- [#4861](https://github.com/aethersdr/AetherSDR/issues/4861) — Raw (pre-noise-reduction) audio for Copy Assist ASR - [#4836](https://github.com/aethersdr/AetherSDR/issues/4836) — TX dynamics: CFC and leveler, with multiband limiter follow-ups - [#4769](https://github.com/aethersdr/AetherSDR/issues/4769) — TX Linearity Analyzer — numeric IMD/shoulder/ACPR measurement from the radio's own transmission - [#4334](https://github.com/aethersdr/AetherSDR/issues/4334) — On-device text-to-speech (TTS) for the voice keyer — type a message, send it on-air -- [#4214](https://github.com/aethersdr/AetherSDR/issues/4214) — Unified client-side voice keyer: local per-client recordings, quick-access CQ/Call, external/controller control, radio/local routing - [#5047](https://github.com/aethersdr/AetherSDR/issues/5047) — Add a slice-aware SELCAL32 decoder for aviation monitoring +- [#6346](https://github.com/aethersdr/AetherSDR/issues/6346) — AetherN³R (Aetherial Neural Net Noise Reduction): weak-SSB neural NR trained on HF receiver noise **Radios, protocol and devices** @@ -294,6 +325,7 @@ implementation**. An approved RFC moves up into the cycle above. Full list: - [#5972](https://github.com/aethersdr/AetherSDR/issues/5972) — Native Xiegu G90 backend — CI-V control and external stereo raw-IQ input - [#6106](https://github.com/aethersdr/AetherSDR/issues/6106) — Backend-owned hardware profiles for openHPSDR Protocol 2 radios - [#6079](https://github.com/aethersdr/AetherSDR/issues/6079) — Optional Digital FM reception and program metadata +- [#6209](https://github.com/aethersdr/AetherSDR/issues/6209) — ANAN-G2 front-end options: a Radio Setup page and the anan/frontend.set extension verb **Interface and workflow** @@ -306,18 +338,46 @@ implementation**. An approved RFC moves up into the cycle above. Full list: - [#3689](https://github.com/aethersdr/AetherSDR/issues/3689) — Net Reminder Scheduler — post-merge follow-ups (#3684) - [#3184](https://github.com/aethersdr/AetherSDR/issues/3184) — meta(theme): theming system status + polish roadmap — where to help land this - [#1494](https://github.com/aethersdr/AetherSDR/issues/1494) — CW and RTTY tuning indicators: pitch centering and tone alignment +- [#6212](https://github.com/aethersdr/AetherSDR/issues/6212) — Status bar: caption the supply voltage when it is the only PA reading **Project infrastructure** - [#4496](https://github.com/aethersdr/AetherSDR/issues/4496) — In-repo multilingual user documentation generator — bridge-driven, 5 languages - [#4031](https://github.com/aethersdr/AetherSDR/issues/4031) — chore(warnings): eliminate all compiler warnings — GCC -Wall/-Wextra/-Wpedantic + MSVC /W3, 4 phases - [#2884](https://github.com/aethersdr/AetherSDR/issues/2884) — feat(smartlink): migrate Auth0 from ROPG to Authorization Code + PKCE on dedicated client +- [#6232](https://github.com/aethersdr/AetherSDR/issues/6232) — Official Windows ARM64 build and release support ### Recently shipped Highlights from the current cycle (v26.10.x). Earlier releases and the complete list are in [`CHANGELOG.md`](CHANGELOG.md): +- **One 52 px title bar with radio tabs** — the menu, brand, a tab per radio + with its link state, the audio cluster and the window controls in one bar on + every platform. RFC #4764 (v26.10.2). +- **docs.aethersdr.com** — the user guide as docs-as-code with Stable and Next + versions, a signed PDF manual, real-radio screenshots and a browser-side Log + Analyzer, linked from the Help menu (v26.10.2). +- **Remote operation over CGNAT** — a Tailscale node inside a FLEX-8000 or + Aurora radio relays AetherSDR to tailnet clients, installed and configured + from the Waveforms window, with the MTU capped to fit the tunnel. RFC #6271 + (v26.10.2). +- **The canon windows** — About, AetherRX, AetherTX, AetherModem, AetherMap, + AetherGPS, Connect to Radio, AGC-T Calibration and the panadapter header on + the AetherSDR style guide. RFC #6226 (v26.10.2). +- **DVK Import WAV** — any WAV converted to the radio's 24 kHz mono through the + documented two-step upload, with slot names that keep their spaces (v26.10.2). +- **FFT Smooth and FFT De-comb** — client-side trace shaping across frequency + on every radio family, off by default (v26.10.2). +- **RTL-SDR WFM stereo and multi-receiver delivery** — stereo broadcast FM, + live PPM, per-receiver squelch, meters and audio feeds, and RTL in every + official package. RFC #5468 (v26.10.2). +- **The Hermes-Lite 2 and ANAN-G2 remember where you left them** — receivers, + setpoints, TUNE power, FFT settings, frequency, mode and step restored per + radio (v26.10.2). +- **Signed Windows builds and shipped firewall rules** — Authenticode on every + exe and DLL, inbound allow rules in the installer and a Windows Firewall page + in Network Diagnostics (v26.10.2). - **Every control works or says why not** — on a radio with no Flex command plane, each control either reaches the radio through a path it already has, is dimmed with its reason, or refuses aloud, and controls that work stop diff --git a/docs/user/src/components/LogAnalyzer/rules.json b/docs/user/src/components/LogAnalyzer/rules.json index 146eb8cac3..e56295dd76 100644 --- a/docs/user/src/components/LogAnalyzer/rules.json +++ b/docs/user/src/components/LogAnalyzer/rules.json @@ -267,7 +267,7 @@ "match": { "substring": "PanadapterStream: VITA-49 sequence errors on" }, - "docs": "/next/low-bandwidth-connections#audio-drops-out-or-the-waterfall-has-gaps", + "docs": "/low-bandwidth-connections#audio-drops-out-or-the-waterfall-has-gaps", "source": [ { "file": "src/core/backends/flex/VitaSequenceLossReport.h", @@ -587,7 +587,7 @@ "match": { "substring": "Platform: Qt fell back from" }, - "docs": "/next/gpu-rendering#aethersdr-runs-on-xwayland-in-a-wayland-session", + "docs": "/gpu-rendering#aethersdr-runs-on-xwayland-in-a-wayland-session", "source": [ { "file": "src/QtPlatformChoice.cpp", @@ -817,7 +817,7 @@ "match": { "regex": "NvidiaAfxPack: install failed: checksum mismatch for " }, - "docs": "/next/bnr-gpu-noise-removal#the-download-fails-with-checksum-mismatch", + "docs": "/bnr-gpu-noise-removal#the-download-fails-with-checksum-mismatch", "source": [ { "file": "src/core/NvidiaAfxPack.cpp", @@ -839,7 +839,7 @@ "match": { "regex": "NvidiaAfxPack: install failed: (wheel extract failed: |extract failed: |wheel \\S+ contained no DLLs|assembled pack missing |could not install into |install verification failed)" }, - "docs": "/next/bnr-gpu-noise-removal#the-download-finishes-but-bnr-is-not-installed", + "docs": "/bnr-gpu-noise-removal#the-download-finishes-but-bnr-is-not-installed", "source": [ { "file": "src/core/NvidiaAfxPack.cpp", diff --git a/docs/user/stable-version.json b/docs/user/stable-version.json index 6e6c9b0cae..7849fc8bec 100644 --- a/docs/user/stable-version.json +++ b/docs/user/stable-version.json @@ -1,3 +1,3 @@ { - "label": "26.10.1" + "label": "26.10.2" } diff --git a/docs/user/versioned_docs/version-stable/aetherclock-and-gps.md b/docs/user/versioned_docs/version-stable/aetherclock-and-gps.md index 23bf8e7a79..156657b96e 100644 --- a/docs/user/versioned_docs/version-stable/aetherclock-and-gps.md +++ b/docs/user/versioned_docs/version-stable/aetherclock-and-gps.md @@ -4,12 +4,12 @@ slug: "/aetherclock-and-gps" description: "Two tools help you know where you are and what time it is." --- -Two tools help you know where you are and what time it is. **AetherClock** decodes the WWV/WWVH and WWVB time signals off the air and shows how far your computer's clock is from them. The **GPS & Station Location** window shows what a GPS-equipped radio knows: position, satellites, frequency reference and time. +Two tools help you know where you are and what time it is. **AetherClock** decodes the WWV/WWVH and WWVB time signals off the air and shows how far your computer's clock is from them. **AetherGPS** shows what a GPS-equipped radio knows: position, satellites, frequency reference and time. ## Requirements - **AetherClock** needs a receiver tuned to WWV, WWVH or WWVB. On a FlexRadio it listens through a DAX channel; on radios without DAX (Hermes-Lite 2 and others) it uses the slice's own audio. -- **GPS & Station Location** needs a radio that reports GPS hardware, for example a FlexRadio fitted with the GPSDO option, or an IC-705. A radio without GPS shows no GPS window, indicators or controls. +- **AetherGPS** needs a radio that reports GPS hardware, for example a FlexRadio fitted with the GPSDO option, or an IC-705. A radio without GPS shows no GPS window, indicators or controls. ## Setup @@ -17,6 +17,10 @@ Two tools help you know where you are and what time it is. **AetherClock** decod AetherClock is an applet (applet-tray button **CLK**, title **AetherClock**, Station category). It is off by default. +AetherClock applet. An empty display reads no signal, above a status row with placeholder time fields. Below are Enable, Settings (expanded) and a DAX 1 selector, then the settings drawer with Station: WWV 10 MHz, a Tune slice → WWV 10 MHz button, the note dial 9.999 MHz USB, 1 kHz below carrier, and a Debug expander. + +*The AetherClock applet with its settings drawer open, before it is enabled.* + 1. Open the applet and its settings drawer. 2. Pick a **Station:** preset: **WWV 2.5 / 5 / 10 / 15 / 20 MHz** or **WWVB 60 kHz**. 3. Press **Tune slice → *preset*** to put the bound slice on the right frequency (USB, 1 kHz below the carrier). This works while the decoder is stopped. @@ -40,9 +44,11 @@ On a FlexRadio with a DAX channel assigned, AetherClock decodes that slice alone A debug log in the settings drawer shows the decoder's internal steps, useful when reporting a problem. -## Using the GPS dashboard +## Using AetherGPS + +Open it from **Tools → AetherGPS…**, or click the GPS indicator in the status bar. -Open it from **Tools → GPS Dashboard…**, or click the GPS indicator in the status bar. +The window has no title bar. Drag any empty part of it to move it, and drag an edge or corner to resize it. Close it with the round **✕** in the top-right corner, **Esc** or **Ctrl+W** (**⌘W** on macOS). It's a window of its own, with its own taskbar entry, so you can minimize it from the taskbar or park it on another monitor. **View → Frameless Window** does not apply to it. ### Header cards @@ -70,7 +76,7 @@ On radios that support it, this group shows and changes clock settings stored in ### Where your position is used -The GPS page in **Radio Setup** holds the radio's GPS settings. Your position also feeds the [PSK Reporter Map](./psk-reporter-map.md) home location, the APRS beacon in [AetherModem Packet Radio](./aethermodem-packet-radio.md) and the distance and bearing on [Callsign Lookup](./callsign-lookup.md) cards. +The GPS page in **Radio Setup** holds the radio's GPS settings. Your position also feeds the [AetherMap](./psk-reporter-map.md) home location, the APRS beacon in [AetherModem Packet Radio](./aethermodem-packet-radio.md) and the distance and bearing on [Callsign Lookup](./callsign-lookup.md) cards. ## Troubleshooting @@ -102,6 +108,6 @@ The connected radio does not report GPS hardware. The GPS window only appears fo - [Radio Setup](./radio-setup.md) - [DAX Virtual Audio](./dax-virtual-audio.md) -- [PSK Reporter Map](./psk-reporter-map.md) +- [AetherMap](./psk-reporter-map.md) - [AetherModem Packet Radio](./aethermodem-packet-radio.md) - [Callsign Lookup](./callsign-lookup.md) diff --git a/docs/user/versioned_docs/version-stable/aetherial-audio.md b/docs/user/versioned_docs/version-stable/aetherial-audio.md index 3a41da103f..b6c6c19aa3 100644 --- a/docs/user/versioned_docs/version-stable/aetherial-audio.md +++ b/docs/user/versioned_docs/version-stable/aetherial-audio.md @@ -30,7 +30,7 @@ compact view of both chains (see [Using the docked applet](#using-the-docked-app > - **BYPASS** is remembered across restarts. > - The compressor's **Drive** and **Phase** are saved in AetherTX profiles. -![AetherTX window. The left column lists the transmit chain stages Gate, EQ, De-esser, Compressor, Tube, Exciter, Reverb and Final Output, with Gate selected, and MIC and TX indicators, REC, PLAY and BYPASS at the bottom. The right side shows the gate's level graph with View and Mode buttons, and six knobs below it: Thresh, Return, Hold, Release, Floor and Ratio.](/img/screens/aethertx.png) +AetherTX window. The left column lists the transmit chain stages Gate (selected), EQ, De-esser, Compressor, Tube, Exciter, Reverb and Final Output, with MIC and TX indicators, REC, PLAY, a settings gear and BYPASS at the bottom. The right side shows the gate's level graph with View (Level, Curve), Mode (Gate, Expander), RN2 and Peek controls, and six knobs: Thresh, Return, Hold, Release, Floor and Ratio. *The AetherTX window: the transmit processing chain on the left, the selected stage's controls on the right.* @@ -70,6 +70,15 @@ AetherTX and AetherRX share one layout: - Knobs accept typed values as well as dragging. - The foot of the tab column holds the live controls: a **REC / PLAY** pair, **BYPASS**, and a **Settings** gear for the profile library. +- **The window itself.** Neither window has a title bar. Drag any empty + part of it to move it, and drag an edge or corner to resize it. Close it + with the round **✕** in the top-right corner, **Esc**, or **Ctrl+W** + (**⌘W** on macOS). Each is a window of its own, with its own taskbar entry, + so you can minimise it from the taskbar or park it on another monitor. + **View → Frameless Window** does not apply to them. Pressing **Return** in + a knob's value field only commits the value. +- Both windows open at the same size every time. Where you leave them is + remembered. Right-clicking a DSP button elsewhere in the app (for example on the VFO flag) still opens a quick parameter popup without opening either window. @@ -194,6 +203,10 @@ The **Settings** gear at the foot of each window opens its profile library every stage's settings, which stages are on, and their order. An AetherRX profile also records the active noise-reduction method. +AetherRX Profiles dialog. It explains that a profile is the receive chain, every stage's settings, which are on, their order and the noise reduction method, and that loading one leaves the transmit side alone. An empty profile list sits above Save..., Load, Delete, Import... and Export... buttons, with the note No profiles yet, Save... stores the chain you have set up now, and a Close button. + +*The AetherRX Profiles dialog, opened from the gear button at the foot of the stage column.* + | Button | Action | |---|---| | **Save…** | Store the chain as it is now under a name (asks before replacing an existing name) | @@ -212,6 +225,10 @@ them with **Settings → Settings Browser...** (see [Settings and Backups](./set The **Aetherial Audio** applet in the applet panel (button **TXDSP**) is the compact companion to the two windows: +Aetherial Audio applet. The top row has TX (selected), RX, a record button, a play button and BYPASS. Below, the transmit chain is drawn as connected boxes: an unlabelled green input stage, GATE, EQ, DESS, COMP, TUBE, EVO, VERB and TX, with the hint Click to bypass, Double click to edit, Drag to reorder. Under the strip is the Aetherial TX Gate tile with its transfer curve and knobs for Thresh, Ratio, Return, Release and Floor. + +*The docked Aetherial Audio applet (button VUDU) on the TX side: the chain strip, with the first stage tile below it.* + - **TX / RX** selects which chain is shown, and **BYPASS** bypasses that chain. - The chain strip shows each stage as a box. Single-click a box to switch the stage on or off, double-click it to open that stage's editor, and drag it to @@ -268,6 +285,10 @@ handles on the response curve, or select a band and type values. Toolbar controls: +AetherTX window with EQ selected in the stage column. Ref:, Smoothing, Peak Hold and Reset controls run along the top, above a row of filter-shape buttons. The main area plots the live microphone spectrum with ten band handles on a flat line, over a frequency scale from 20 Hz to 20 kHz with the E-SSB, SSB and AM / FM ranges marked, and the band frequencies and gains listed beneath. An output level meter runs along the bottom. + +*AetherTX with the EQ stage selected.* + - **Ref:** overlays an amber reference target curve: Off, AT&T 1959, Heil DX, Astatic D-104, Shure 444 or Heil HC-5. It is a visual guide only; it does not change the audio. @@ -312,6 +333,10 @@ low a threshold leaves the de-esser working all the time and dulls the voice. Levels the signal: brings quiet syllables up and holds loud ones back. +AetherTX window with Compressor selected in the stage column. A Limiter button and a Ceiling slider sit at the top. The compressor's transfer curve fills the centre, between an input meter with a threshold marker on the left and gain-reduction and output meters on the right. Six knobs along the bottom read Ratio, Attack, Release, Knee, Drive and Phase. + +*AetherTX with the Compressor stage selected.* + - **Threshold:** the vertical fader on the left, which doubles as the input meter, so you can set the threshold against your own voice peaks. - **Makeup:** drag the handle on the **Out** meter (−12 to +24 dB). It can diff --git a/docs/user/versioned_docs/version-stable/aethermodem-packet-radio.md b/docs/user/versioned_docs/version-stable/aethermodem-packet-radio.md index 8305fec119..16fbe51026 100644 --- a/docs/user/versioned_docs/version-stable/aethermodem-packet-radio.md +++ b/docs/user/versioned_docs/version-stable/aethermodem-packet-radio.md @@ -3,12 +3,12 @@ title: "AetherModem Packet Radio" slug: "/aethermodem-packet-radio" description: "AetherModem is AetherSDR's built-in AX.25 packet modem." status: "Supported" -applies_to: ["FlexRadio", "Hermes-Lite 2 (experimental)", "Networked Icom (early; IC-7300MK2 supported)"] +applies_to: ["FlexRadio", "Hermes-Lite 2 (experimental)", "Networked Icom (early; IC-7300MK2 supported)", "RTL-SDR (experimental, receive-only)"] --- :::info[Status] -**Status:** Supported · **Applies to:** FlexRadio, Hermes-Lite 2 (experimental), Networked Icom (early; IC-7300MK2 supported) +**Status:** Supported · **Applies to:** FlexRadio, Hermes-Lite 2 (experimental), Networked Icom (early; IC-7300MK2 supported), RTL-SDR (experimental, receive-only) ::: @@ -24,8 +24,14 @@ Open it from **Tools → AetherModem…** The window has six tabs: **APRS**, **Digipeater**, **KISS TNC**, **Terminal**, **Mailbox** and **D-STAR** (the D-STAR tab is covered on [D-STAR (ThumbDV)](./d-star-thumbdv.md) and is hidden on radios without waveform support). A slim status bar along the bottom shows the modem state, the receive gain and a packet-activity strip. +The window has no title bar. Drag any empty part of it to move it, and drag an edge or corner to resize it. Close it with the round **✕** in the top-right corner, **Esc** or **Ctrl+W** (**⌘W** on macOS). It's a window of its own, with its own taskbar entry, so you can minimise it from the taskbar or park it on another monitor. **View → Frameless Window** does not apply to it. Closing only hides it: the KISS TNC, the mailbox and the APRS modem keep running, and reopening brings back the same window. + All AetherModem transmissions share one queue and key the radio one at a time, so the APRS client, digipeater, KISS clients, terminal and mailbox never talk over each other. +AetherModem window with tabs APRS (selected), Digipeater, KISS TNC, Terminal, Mailbox and D-STAR. Rows of settings cover the baud rate (300 or 1200), Enable Modem and Autostart at launch, then My Callsign (placeholder N0CALL-9), Symbol Home, Path WIDE1-1,WIDE2-1 and a Beacon every 30 min, the Position line (blacked out) with manual grid, latitude and longitude fields, a message composer with Send APRS Msg, and an empty table of heard stations with columns Time, Station, Symbol, Age, Pkts, Grid, Dist, CRS/SPD and Status / Comment. The status bar reads Modem Standby and No audio yet. + +*AetherModem on the APRS tab. The station's GPS position is blacked out.* + ### Modem and profiles The modem controls are on the **APRS** tab: @@ -42,6 +48,12 @@ Packet length, retry timing and preamble are derived from the baud rate, not fix **Tips for receive level:** avoid clipping (peaks around −10 dBFS are fine) and don't chase every missed decode with AF gain once the tones are clearly visible. +### RTL-SDR receive-only packets + +On [RTL-SDR](./rtl-sdr.md), the modem decodes the selected slice's audio. For VHF APRS, choose **FM** or **FM-N**, select **1200 baud** and enable **Enable Modem**. The status reports **RX: selected slice**. Speaker mute and volume do not affect this source, but receiver squelch does. Slice selection changes the modem's receive source; there is no fixed-source selector. + +Parking, removing or reconfiguring that receiver clears stale decoder input. Decoded packets can populate the APRS table and reach receive consumers such as KISS and MQTT. RTL remains receive-only: beacons, acknowledgements, digipeating and packet transmit are unavailable. APRS-IS gateway operation is not provided. + ## Using AetherModem ### APRS diff --git a/docs/user/versioned_docs/version-stable/aethersweep.md b/docs/user/versioned_docs/version-stable/aethersweep.md index 306b5b51fc..cf1c27efaa 100644 --- a/docs/user/versioned_docs/version-stable/aethersweep.md +++ b/docs/user/versioned_docs/version-stable/aethersweep.md @@ -27,6 +27,10 @@ bandwidth marked. ### Running a sweep +The ANT panel open beside the overlay menu, with the ANT button lit. It shows RX ANT: ANT1, an RF Gain slider at 8 dB, a WNB button with its level at 90, then the AetherSweep buttons Start Sweep, Clear Sweep and Save CSV in amber, and a Limit range option with From and To frequency fields. + +*The ANT panel: receive antenna, RF gain and wideband noise blanker, with the AetherSweep controls below.* + 1. Make the slice on the band you want to sweep the **TX slice**, with its panadapter visible. 2. Open the panadapter overlay's **ANT** panel. diff --git a/docs/user/versioned_docs/version-stable/audio-settings.md b/docs/user/versioned_docs/version-stable/audio-settings.md index 6eff8fad38..66752a3e00 100644 --- a/docs/user/versioned_docs/version-stable/audio-settings.md +++ b/docs/user/versioned_docs/version-stable/audio-settings.md @@ -10,6 +10,10 @@ Audio settings control the radio's own audio outputs, the computer's speaker and Audio settings live on the **Audio** page of Radio Setup: +Radio Setup on the Audio page. Radio Audio Outputs has Line Out at 53 and Headphone at 100, each with a Mute button. Audio Compression (SmartLink / tailnet) has Auto, Uncompressed (selected) and Opus. Below are checkboxes to smooth packet loss and prevent system sleep, then PC Audio Devices with Input and Output both set to Built-in Audio Analog Stereo, a prompt-on-device-change checkbox, Audio Boost disabled and an audio buffer of 100 ms. The Recording group at the bottom has Record Mode Radio Side and Client Side (selected), a Save to path (blacked out) and Auto-record on TX. + +*Radio Setup, Audio page: the radio's audio outputs, audio compression, the PC audio devices and recording.* + - **Windows and Linux:** **Settings → Radio Setup... → RECEIVE & TRANSMIT → Audio** - **macOS:** **AetherSDR → Preferences...**, then **Audio** @@ -21,11 +25,13 @@ See [Radio Setup](./radio-setup.md). Choose the computer's microphone (**Input**) and speaker (**Output**) devices. The selection is saved and restored at startup, and you can switch devices while connected. +If the saved device is not connected, AetherSDR uses the system default device and keeps your saved choice. It switches back to the saved device when that device connects, without asking. + AetherSDR handles sample-rate conversion itself. The microphone is captured at whatever rate the device offers, processed at 48 kHz, and converted once to the radio's transport rate. The PC microphone is used for transmit when the radio's mic source is **PC** (see [Choosing the mic source](#choosing-the-mic-source)). ### When a device is plugged in or removed -When the operating system adds or removes an audio device, an **Audio Device Detected** dialog offers to switch PC audio to the new device or keep the current one, with a **Don't ask me again** option. It does not appear while your selected device is still available. Turn it on or off with **Prompt on Audio Device Changes** (on by default). +When the operating system adds or removes an audio device, an **Audio Device Detected** dialog offers to switch PC audio to the new device or keep the current one, with a **Don't ask me again** option. It does not appear while your selected device is still available. In the dialog, leaving a direction on **System default** while its saved device is not connected uses the default for now and keeps the saved choice. Turn it on or off with **Prompt on Audio Device Changes** (on by default). ### Audio Boost @@ -47,6 +53,10 @@ When the operating system adds or removes an audio device, an **Audio Device Det The **Recording** group controls QSO recording from the record and play buttons on the VFO flag and in AetherRX/AetherTX. +Recording group. Record Mode has Radio Side and Client Side buttons, with Client Side selected. The Save to field is blacked out, beside a browse button. Below are an Auto-record on TX checkbox and an Idle timeout of 120 sec. + +*The Recording group on the Audio page. The save path is blacked out.* + - Client-side recordings include the CW you send, so a QSO that switches between voice and CW stays in one file. - Each recording is a 24 kHz or 48 kHz WAV, depending on the source, and never overwrites an existing file. - Client-side recording needs PC Audio. With PC Audio off, AetherSDR refuses with "PC Audio Required for Client-Side Recording" rather than writing an empty file. @@ -95,7 +105,9 @@ Over SmartLink the radio's audio can be Opus-compressed to save bandwidth. ### Prevent system sleep -**Prevent system sleep while connected** (off by default) stops the computer idling into sleep while a radio is connected, so long sessions keep their network and audio streams alive. +**Prevent system sleep while connected** (on by default) stops the computer idling into sleep while a radio is connected, so long sessions keep their network and audio streams alive. It never stops the screen blanking or locking, and closing the lid still sleeps the computer. If you turned it off before, it stays off. + +On Linux, GNOME and KDE block only automatic sleep, so choosing **Sleep** from the menu still works. Other desktops, such as Hyprland or Sway, use systemd-logind instead: there, choosing **Sleep** while connected asks for an administrator password, or untick this setting first. ### Recording settings @@ -118,7 +130,6 @@ Over SmartLink the radio's audio can be Opus-compressed to save bandwidth. ## Known issues -- A saved PC audio device that is missing when AetherSDR starts, such as Bluetooth headphones that connect later, is forgotten at the next device change, so you have to select it again ([#6040](https://github.com/aethersdr/AetherSDR/issues/6040)). - On remote links that deliver packets out of order, received audio has short dropouts because late packets are treated as lost ([#6051](https://github.com/aethersdr/AetherSDR/issues/6051)). - Client-side recordings can sound noisier than the audio you hear when client-side noise reduction is on ([#6246](https://github.com/aethersdr/AetherSDR/issues/6246)). diff --git a/docs/user/versioned_docs/version-stable/automation-bridge-and-mcp.md b/docs/user/versioned_docs/version-stable/automation-bridge-and-mcp.md index 1ce220d79c..282b8c40b3 100644 --- a/docs/user/versioned_docs/version-stable/automation-bridge-and-mcp.md +++ b/docs/user/versioned_docs/version-stable/automation-bridge-and-mcp.md @@ -27,6 +27,10 @@ Each request is one line (a bare command or a JSON object) and each reply is one Open **Settings → Radio Setup... → Network** and find the **Advanced** group: +Advanced group of the Network page. Enforce Private IP Connections and Agent Automation (MCP) both read Enabled. The Access Token field is blacked out, beside Copy and Rotate buttons. Below are the Allow TX via MCP checkbox (Enable transmit control), the Observe only checkbox (Read-only, block all driving), Network MTU at 1450 bytes and a VITA-49 RX buffer slider at 4 MB, granted 8 MB. + +*The Advanced group on the Network page, with the agent automation (MCP) switch. The access token is blacked out.* + | Control | What it does | |---------|--------------| | **Agent Automation (MCP):** Enabled / Disabled | Starts or stops the bridge. Off by default. Enabling it with no token creates one. The setting is saved, so the bridge comes back at the next launch. | @@ -42,7 +46,7 @@ Every verb except `ping` is refused without the matching token. The token is kep To give it to an MCP client, set `AETHER_MCP_TOKEN` **only in the environment of the shell that launches your assistant**, using a method that does not record it in shell history. The MCP server inherits it from there. -> **Keep the token out of shared configs.** Do not put the literal token in a shell profile, in `.mcp.json`, or in any other MCP config file: that puts a live credential on disk and risks it landing in a commit or a backup. The token field's tooltip in Radio Setup suggests pasting it into the MCP config; follow this page and the docs instead. +> **Keep the token out of shared configs.** Do not put the literal token in a shell profile, in `.mcp.json`, or in any other MCP config file: that puts a live credential on disk and risks it landing in a commit or a backup. The token field's tooltip in Radio Setup gives the same advice and links this page, as do the tooltips on the other bridge controls. Headless or CI runs can pass `AETHER_MCP_TOKEN` to AetherSDR directly; it overrides the keychain. diff --git a/docs/user/versioned_docs/version-stable/before-you-transmit.md b/docs/user/versioned_docs/version-stable/before-you-transmit.md index b1a21b0290..91ae537883 100644 --- a/docs/user/versioned_docs/version-stable/before-you-transmit.md +++ b/docs/user/versioned_docs/version-stable/before-you-transmit.md @@ -28,7 +28,7 @@ The checks are written so you can do them without putting a signal on the air. W - [ ] **Your callsign is set** in **Settings → Radio Setup... → Radio → Callsign:** (on macOS, **AetherSDR → Preferences... → Radio**). AetherSDR uses it for PSK Reporter, WSPR and spotting; on a FlexRadio it is also stored on the radio. See [Radio Setup](./radio-setup.md). - [ ] **Your callsign and grid are set wherever a feature transmits them.** AetherSDR has no single station grid; each feature that sends one has its own fields: - [RADE Digital Voice](./rade-digital-voice.md) end-of-over frames and FreeDV Reporter: **SpotHub → FreeDV**, **Callsign** (or **Use radio**) and **Grid Square** (or **Use GPS**). See [SpotHub](./spothub.md). - - The WSPR beacon in **Tools → PSK Reporter...**: **TX call:** and **Grid:**. See [PSK Reporter Map](./psk-reporter-map.md). + - The WSPR beacon in **Tools → AetherMap...**: **TX call:** and **Grid:**. See [AetherMap](./psk-reporter-map.md). - APRS in [AetherModem Packet Radio](./aethermodem-packet-radio.md): **MY CALLSIGN**, and **GRID** when the radio has no GPS fix. - D-STAR: **MYCALL**, which defaults to the radio's callsign. See [D-STAR (ThumbDV)](./d-star-thumbdv.md). - Digital-mode programs such as WSJT-X use the callsign and grid in their own settings. diff --git a/docs/user/versioned_docs/version-stable/bnr-gpu-noise-removal.md b/docs/user/versioned_docs/version-stable/bnr-gpu-noise-removal.md index a997ec797c..def1ed40aa 100644 --- a/docs/user/versioned_docs/version-stable/bnr-gpu-noise-removal.md +++ b/docs/user/versioned_docs/version-stable/bnr-gpu-noise-removal.md @@ -31,6 +31,10 @@ If no runtime pack has been published for your GPU's architecture, BNR disables ## Setup +AetherRX window with the BNR tab open. The NVIDIA AFX panel describes GPU-accelerated AI noise removal, shows Status Not installed, an Intensity slider at 100 and a Download (~1 GB) button, with an empty Installed Components list below and the status line No method running. + +*AetherRX with BNR selected on a computer without the NVIDIA AFX runtime installed.* + 1. Open **Settings → AetherRX...** (or click the **AetherRX** button on the VFO flag's DSP tab) and go to the **AetherNR** tab. 2. Select **BNR** in the method row. The BNR page shows the **NVIDIA AFX** panel. 3. Click **Download (~1 GB)**. AetherSDR detects your GPU's architecture and fetches the matching pack, verifying every file by SHA-256. The **Installed components** list shows progress, then the installed versions. @@ -91,10 +95,25 @@ You are on macOS, or using a build compiled without BNR (`-DENABLE_NVIDIA_AFX=OF ### The download fails -The connection dropped, or there isn't enough free disk space for the pack. +The connection dropped or stalled for 30 seconds, or there isn't enough free disk space for the pack. The log shows `NvidiaAfxPack: install failed:` with the reason. 1. Check your internet connection. 2. Make sure about 1 GB of disk space is free. +3. Click the **Download** button again. Components that finished downloading are kept, so the download resumes. + +### The download fails with "checksum mismatch" + +A downloaded file is not the one this version of AetherSDR expects: it was altered on the way, or the server holds a different file. Downloading it again fetches the same file. + +1. Try again from a different network; a proxy or security software can alter downloads. +2. If it still fails, file a bug report with your log. + +### The download finishes but BNR is not installed + +AetherSDR could not unpack the files, or the unpacked pack is incomplete. The log shows `NvidiaAfxPack: install failed:` followed by `extract failed`, `assembled pack missing`, `could not install into` or `install verification failed`. + +1. On Linux, install `unzip` and `zstd`: AetherSDR unpacks the pack with `unzip` and `tar --zstd`. +2. Make sure about 1 GB of disk space is free. 3. Click the **Download** button again. ### BNR turns off when you change mode diff --git a/docs/user/versioned_docs/version-stable/building-from-source.md b/docs/user/versioned_docs/version-stable/building-from-source.md index c273a98b39..61c3aa3d1f 100644 --- a/docs/user/versioned_docs/version-stable/building-from-source.md +++ b/docs/user/versioned_docs/version-stable/building-from-source.md @@ -92,6 +92,7 @@ Start with [AGENTS.md](https://github.com/aethersdr/AetherSDR/blob/main/AGENTS.m | `CMAKE_BUILD_TYPE` | — | `RelWithDebInfo` for normal use, `Debug` for development | | `AETHER_GPU_SPECTRUM` | ON | QRhi GPU spectrum and waterfall. Needs Qt's private GUI headers; without them the CPU renderer is built. | | `ENABLE_RTL` | ON | Experimental receive-only RTL-SDR backend, when `librtlsdr` and single-precision FFTW are found | +| `REQUIRE_RTL` | OFF | Fail configure if the RTL backend cannot be built. Official release packages set this and `ENABLE_RTL` to ON. | | `ENABLE_ASR` | ON | Copy Assist on-device speech-to-text | | `ENABLE_NVIDIA_AFX` | ON | BNR NVIDIA GPU noise removal (x86-64 Linux and Windows) | | `AETHER_FETCH_QT` | OFF | Run the Qt setup script during configure if the pinned Qt is missing | diff --git a/docs/user/versioned_docs/version-stable/callsign-lookup.md b/docs/user/versioned_docs/version-stable/callsign-lookup.md index f7cb2ffbfd..8a08fbe36a 100644 --- a/docs/user/versioned_docs/version-stable/callsign-lookup.md +++ b/docs/user/versioned_docs/version-stable/callsign-lookup.md @@ -19,6 +19,10 @@ Open **Radio Setup → QRZ & Callsigns** (in the **ONLINE & APPEARANCE** group). ### QRZ.com Account +QRZ & Callsigns page. The QRZ.com Account group explains what an account adds, with Enable QRZ callsign lookups ticked, empty Username (callsign) and Password fields and a Test Login button. The Lookup Cache group explains that looked-up callsigns are cached for 7 days and shows 0 cached callsign(s) with a Clear Cache button. + +*Radio Setup, QRZ & Callsigns page, with no account entered.* + - **Enable QRZ callsign lookups** - **Username (callsign):** and **Password:** - **Test Login** checks the credentials and reports "Login OK" or why it failed. @@ -41,6 +45,10 @@ The status line says where the answer came from: "Fetched from QRZ.com", or "Fro If QRZ.com is not configured or doesn't answer, the card shows **prefix** data instead (country, continent and CQ zone) and says so. +Callsign Lookup window with N0CALL in the search field beside Lookup and Refresh buttons. The result card shows a placeholder silhouette, N0CALL marked prefix, United States, and NA, CQ 5 with a distance and bearing. A note below reads QRZ.com unavailable, showing country-level prefix data (cty.dat); full details will replace this if QRZ answers. + +*The Callsign Lookup window without a QRZ account: the card shows country-level prefix data.* + ### Contact card in the CW decoder When the [CW Decoder](./cw-decoder.md) copies `DE `, a compact contact card for that station appears beside the decoded text. It shows the name, location, grid and distance; click the callsign to open its QRZ.com page, and **✕** hides the card. diff --git a/docs/user/versioned_docs/version-stable/cat-control.md b/docs/user/versioned_docs/version-stable/cat-control.md index 8eec53e8df..01653c000f 100644 --- a/docs/user/versioned_docs/version-stable/cat-control.md +++ b/docs/user/versioned_docs/version-stable/cat-control.md @@ -8,7 +8,7 @@ AetherSDR has a built-in CAT server, so logging and digital-mode programs can re CAT works with WSJT-X, JTDX, fldigi, JS8Call, Winlink/VARA, N1MM+, DXLog and most other Hamlib- or Kenwood-aware programs. For audio, pair it with [DAX Virtual Audio](./dax-virtual-audio.md), or use the [TCI Server](./tci-server.md), which carries CAT and audio over one connection. -![CAT Control applet in its own window. A Disabled button at the top with the hint Enable before configuring ports. Below is a table of CAT channels with the columns Enabled, Port, Dialect, VFO A, VFO B, PTY and Clients: the first row is port 4532 using the Rigctld dialect, the second is port 5001 using the Flex dialect, and the remaining rows are unassigned Flex channels.](/img/screens/cat-applet.png) +CAT Control applet in its own window. A Disabled button at the top with the hint Enable before configuring ports. Below is a table of CAT channels with the columns Enabled, Port, Dialect, VFO A, VFO B, PTY and Clients: the first row is port 4532 using the Rigctld dialect, the second is port 5001 using the Flex dialect with VFO B set to B, and the remaining six rows are unassigned Flex channels. *The CAT Control applet popped out of the applet panel, showing the full channel table.* diff --git a/docs/user/versioned_docs/version-stable/copy-assist.md b/docs/user/versioned_docs/version-stable/copy-assist.md index 68b8cbd7e7..bac785d3bd 100644 --- a/docs/user/versioned_docs/version-stable/copy-assist.md +++ b/docs/user/versioned_docs/version-stable/copy-assist.md @@ -69,6 +69,10 @@ Choose **Remote server…** in the model picker and enter the endpoint URL (for ### Opening Copy Assist +The bottom of the panadapter with the Copy Assist panel open below the waterfall. Its control row has a Disabled button, a settings gear, Buffer 20 s, Sens 80% and Silence 300 ms sliders, and A-, A+, a line-break button, Context and Clear. The transcript area is empty, with Disabled and Queue: 0.0 s at the bottom. + +*The Copy Assist panel under the waterfall, before it is enabled.* + - Click the **ASR** toggle in the status bar (between **CWX** and **DVK**), or - **Tools → Copy Assist**. diff --git a/docs/user/versioned_docs/version-stable/ctr2-proxy.md b/docs/user/versioned_docs/version-stable/ctr2-proxy.md index 30180cb7f0..4cd9f0ee6d 100644 --- a/docs/user/versioned_docs/version-stable/ctr2-proxy.md +++ b/docs/user/versioned_docs/version-stable/ctr2-proxy.md @@ -41,6 +41,10 @@ press **Start**. The **Mode** selector offers **Wi-Fi (TCP)** and **USB**. +CTR2 Proxy applet. Mode is set to USB with a Rescan button, the USB selector reads Select CTR2 USB device, and the Radio row (blacked out here) sits beside a dimmed Start button. An amber hint reads Select the CTR2 USB device, followed by State: Stopped and traffic counters of 0 B to the radio and to the CTR2. + +*The CTR2 Proxy applet before a CTR2 is selected. The radio's address is blacked out.* + > **Check the mode every time.** On builds with USB support, USB is the > default and the choice is not saved. USB mode waits on a CTR2 USB firmware > release, so with current CTR2 firmware pick **Wi-Fi (TCP)** at every launch. @@ -71,6 +75,16 @@ needs CTR2 firmware with USB mode, which has not been released yet. (`/etc/udev/rules.d/70-aethersdr-ctr2.rules`) through `pkexec`, asking for your administrator password once. The rule only opens CTR2 controllers to whoever is logged in at the computer. +- **AetherKnob** (an AetherSDR controller on the Elecrow CrowPanel 2.1" + rotary display) uses USB mode the same way. It appears in the list as + **AetherKnob**. While it is relaying, AetherSDR also sends it a 32-bar + spectrum for its centre display. While receiving it shows the audio you + are hearing (after the radio's DSP, AetherSDR's noise reduction and the + RX chain up to the EQ) across the active slice's filter width, for + example 20–600 Hz for a 600 Hz CW filter. While transmitting it shows your + transmit audio across the TX filter width. Either way it reaches at most + 12 kHz, and the bars are spaced logarithmically in frequency, as on an + audio analyser, so the low end gets more detail. A CTR2 never receives this. ## Reference diff --git a/docs/user/versioned_docs/version-stable/cw-decoder.md b/docs/user/versioned_docs/version-stable/cw-decoder.md index 933ac8ce2a..14e5c4f50e 100644 --- a/docs/user/versioned_docs/version-stable/cw-decoder.md +++ b/docs/user/versioned_docs/version-stable/cw-decoder.md @@ -25,6 +25,10 @@ The decoder works on every radio family that has a CW mode: FlexRadio, the [Herm Decoding is controlled in **Settings → Radio Setup... → Phone & CW**, next to **Decode:** +Phone & CW page headed FLEX-8600. Microphone has Mic Bias Voltage (BIAS), Mic +20 dB Boost and Level Meter During Receive (Enabled). CW has Iambic Enabled with modes A and B (B selected), Swap Dot/Dash, Sideband CWU (selected) or CWL, CWX Sync, and Decode RX (selected) or TX. Digital has RTTY Mark Default 2125 and RTTY Decode Enabled. + +*Radio Setup, Phone & CW page on a FLEX-8600: microphone, CW and digital settings.* + | Toggle | Default | What it decodes | |---|---|---| | **RX** | On | The received CW on the selected slice | @@ -38,6 +42,10 @@ When the selected slice is in **CW** or **CWL**, the decode panel appears below Drag the grip on the panel's edge to resize it; the height is remembered. Right-click the text for font size and Clear. +The bottom of the panadapter in CW mode. The lower part of the waterfall shows CW signals as dotted vertical lines. Below it, the decoder pane's control row reads CW, (selected slice), the detected tone and speed, a Sens slider with two lock buttons, Pitch 500 to 700 Hz and WPM 15 to 40 range sliders, and CPY ALL, CPY VIS, A-, A+, CLR and close buttons, above the decoded-text line. + +*The CW decoder pane under the waterfall, with its sensitivity, pitch and speed controls.* + ### How it works The decoder processes the received audio on a separate worker thread. It detects the dominant tone frequency, then uses a Goertzel filter and timing analysis to decode Morse characters. diff --git a/docs/user/versioned_docs/version-stable/cwx-panel.md b/docs/user/versioned_docs/version-stable/cwx-panel.md index 6b307db93e..555dd2e591 100644 --- a/docs/user/versioned_docs/version-stable/cwx-panel.md +++ b/docs/user/versioned_docs/version-stable/cwx-panel.md @@ -28,6 +28,10 @@ Click the **CWX** indicator in the status bar at the bottom of the screen (or us The CWX panel and the [DVK Panel](./dvk-panel.md) share the same space — opening one closes the other. +CWX panel along the left edge of the window: a large empty message area, a Type CW message... field, and Send, Live and Setup buttons with a Speed box at 30. + +*The CWX panel, opened from CWX in the status bar with the TX slice in CW.* + ### Sending text The panel has three views, chosen with the buttons at its top: **Send**, **Live** and **Setup** (see [Views](#views)). In **Send**, type text and send it; sent text appears as history bubbles above the entry line. In **Live**, characters are keyed as you type them. diff --git a/docs/user/versioned_docs/version-stable/dax-iq-streaming.md b/docs/user/versioned_docs/version-stable/dax-iq-streaming.md index b558a23872..471b80ef7c 100644 --- a/docs/user/versioned_docs/version-stable/dax-iq-streaming.md +++ b/docs/user/versioned_docs/version-stable/dax-iq-streaming.md @@ -61,6 +61,10 @@ WFM needs a radio with DAX IQ; on other radios it is refused with a notice. The applet has one row per channel, **IQ 1** to **IQ 4**: +DAX IQ applet. Four rows, IQ 1 to IQ 4, each with a sample-rate selector set to 48k, an empty level bar and an Off button. + +*The DAX IQ applet: four IQ channels, each with a sample rate and an on/off button.* + | Control | What it does | |---|---| | Rate | 24k, 48k, 96k or 192k | diff --git a/docs/user/versioned_docs/version-stable/dax-virtual-audio.md b/docs/user/versioned_docs/version-stable/dax-virtual-audio.md index 912b4ec4c9..85c5fbe6e9 100644 --- a/docs/user/versioned_docs/version-stable/dax-virtual-audio.md +++ b/docs/user/versioned_docs/version-stable/dax-virtual-audio.md @@ -3,19 +3,19 @@ title: "DAX Virtual Audio" slug: "/dax-virtual-audio" description: "DAX (Digital Audio eXchange) creates virtual audio devices on your computer that digital-mode programs (WSJT-X, fldigi, JS8Call, VARA and others) use as their sound card." status: "Supported" -applies_to: ["FlexRadio"] +applies_to: ["FlexRadio", "RTL-SDR (experimental, receive-only)"] platforms: ["Linux", "macOS"] --- :::info[Status] -**Status:** Supported · **Applies to:** FlexRadio · **Platforms:** Linux, macOS +**Status:** Supported · **Applies to:** FlexRadio, RTL-SDR (experimental, receive-only) · **Platforms:** Linux, macOS ::: DAX (Digital Audio eXchange) creates virtual audio devices on your computer that digital-mode programs (WSJT-X, fldigi, JS8Call, VARA and others) use as their sound card. Receive audio flows from a slice to the program, and the program's transmit audio flows back to the radio, all through AetherSDR with no cables. -DAX is a **FlexRadio** feature. On other radio families the DAX applet, menu entry and overlay button are hidden; use the [TCI Server](./tci-server.md) for audio there. +FlexRadio provides receive and transmit DAX. RTL-SDR provides experimental **receive-only** DAX on Linux and macOS; see [RTL-SDR receive audio](#rtl-sdr-receive-audio). On radios without an audio-export route, use the [TCI Server](./tci-server.md). ## Requirements @@ -34,7 +34,7 @@ DAX is a **FlexRadio** feature. On other radio families the DAX applet, menu ent ### Assigning a slice to a DAX channel -The radio sends a slice's audio to the DAX channel set on that slice. Choose it on the slice's **VFO widget → DAX tab** (**DAX Ch**). The channel list follows the radio's capacity, and a slice on a channel the radio cannot back shows **Off**. +On FlexRadio, the radio sends a slice's audio to the DAX channel set on that slice. Choose it on the slice's **VFO widget → DAX tab** (**DAX Ch**). The channel list follows the radio's capacity, and a slice on a channel the radio cannot back shows **Off**. The panadapter overlay's **DAX** flyout is for IQ instead: it holds **IQ Ch** and the **WFM** button (see [DAX IQ Streaming](./dax-iq-streaming.md)). @@ -49,12 +49,22 @@ Stale devices left by a crash are cleaned up the next time DAX starts. ## Using DAX +### RTL-SDR receive audio + +Turn on **DAX Audio** and select the matching **AetherSDR DAX n** input in your program. Native receive export requires a build with WebSockets support. Input 1 follows TCI receiver 0, input 2 follows receiver 1, and so on; the applet displays the assigned slice. These assignments do not use the FlexRadio **DAX Ch** selector, and neither a running TCI listener nor a connected TCI client is required. + +Speaker gain and mute do not alter exported audio. Receiver squelch still applies, and the DAX row has its own gain. Linux exports mono at 48 kHz; macOS exports stereo at 24 kHz through the installed DAX driver. Use stereo TCI when stereo WFM is required on Linux. RTL creates no TX endpoint and the TX control is unavailable. + +The normal RTL limit remains one receiver. Additional inputs are for the process-only [multi-receiver evaluation](./rtl-sdr.md#multi-receiver-evaluation). An older four-input macOS driver must be updated separately before evaluating all eight inputs; building AetherSDR does not update an installed driver. + ### Transmit audio -When a digital program transmits in a digital mode (DIGU, DIGL), its audio from **AetherSDR TX** goes to the radio. Voice modes use your microphone. You don't switch anything by hand. +On FlexRadio, when a digital program transmits in a digital mode (DIGU, DIGL), its audio from **AetherSDR TX** goes to the radio. Voice modes use your microphone. You don't switch anything by hand. ### Wiring WSJT-X (Linux and macOS) +This transmit-capable setup applies to FlexRadio. + 1. Put the slice in **DIGU** and set its DAX channel to **1**. 2. Turn DAX on, and turn on a **Rigctld** CAT port (see [CAT Control](./cat-control.md)). 3. In WSJT-X, **File → Settings → Audio**: Input **AetherSDR DAX 1**, Output **AetherSDR TX**. @@ -82,7 +92,7 @@ Give each program its own DAX channel and its own CAT port (with a different **V ### Devices -AetherSDR offers **up to eight RX channels plus one TX channel**. The number of RX channels follows the connected radio's slice capacity (for example 8 on a FLEX-6700, 4 on a FLEX-6600 or 8600, 2 on a FLEX-6300 or 6400). Rows and devices above that number are not shown. +For FlexRadio, AetherSDR offers **up to eight RX channels plus one TX channel**. The number of RX channels follows the connected radio's slice capacity (for example 8 on a FLEX-6700, 4 on a FLEX-6600 or 8600, 2 on a FLEX-6300 or 6400). Rows and devices above that number are not shown. | Device | Direction | Purpose | |---|---|---| @@ -93,6 +103,10 @@ AetherSDR offers **up to eight RX channels plus one TX channel**. The number of Each RX row shows **DAX n:**, the slice currently assigned to that channel (or "—"), and a combined **level meter and gain slider**. The **TX:** row shows which slice holds transmit and the gain applied to audio coming from your program. Gains are saved per channel. +DAX Audio applet. Level bars for DAX 1, assigned to Slice A, DAX 2 to DAX 4, unassigned, and TX, assigned to Slice A, above a DAX row with a Disabled button. + +*The DAX Audio applet on Linux: one level bar per DAX channel and the button that starts DAX.* + ## Known issues - On macOS, a digital-mode program's transmit audio can reach the **AetherSDR TX** meter while the radio sends no RF ([#4554](https://github.com/aethersdr/AetherSDR/issues/4554)). @@ -105,7 +119,7 @@ Each RX row shows **DAX n:**, the slice currently assigned to that channel (or " The slice has no DAX channel, or the program is reading a different device. -1. On the slice's **VFO widget → DAX tab**, set a **DAX Ch**. +1. On FlexRadio, set a **DAX Ch** on the slice's **VFO widget → DAX tab**. On RTL-SDR, check the automatic slice assignment shown in the DAX applet. 2. In the program, choose the matching **AetherSDR DAX n** input. 3. On Linux, `pactl list source-outputs` shows which device each program is reading. diff --git a/docs/user/versioned_docs/version-stable/demo-mode.md b/docs/user/versioned_docs/version-stable/demo-mode.md index c408de07f2..77b84b0cb1 100644 --- a/docs/user/versioned_docs/version-stable/demo-mode.md +++ b/docs/user/versioned_docs/version-stable/demo-mode.md @@ -6,7 +6,7 @@ description: "Demo mode runs the full AetherSDR interface against a built-in sim Demo mode runs the full AetherSDR interface against a built-in simulator, so you can explore the app with no radio attached. It generates its own receive audio and a matching panadapter. **It cannot transmit.** -![Demo Noise applet. Preset buttons birdie-hell, cw-in-noise, night-40m, noisy-qth, quiet-20m and storm sit above a list of noise sources, each with a toggle and level slider: CW tone, Voice (speech), White / AWGN, Pink / hiss, QRN crackle, Power-line, Static crash, Birdie carrier, SMPS hash and Woodpecker. A Fault Injection row below has High SWR, Drop Slice, Stall Scope, Disconnect, Malformed and Clear buttons.](/img/screens/demo-noise-applet.png) +Demo Noise applet. Preset buttons birdie-hell, cw-in-noise, night-40m, noisy-qth, quiet-20m and storm sit above a list of noise sources, each with a toggle, a level slider and, for some, a second value: CW tone, Voice (speech), White / AWGN, Pink / hiss (lit), QRN crackle, Power-line, Static crash, Birdie carrier (lit), SMPS hash and Woodpecker. A Fault Injection row below has High SWR, Drop Slice, Stall Scope, Disconnect, Malformed and Clear buttons. *The Demo Noise applet, shown only while connected to the demo simulator.* diff --git a/docs/user/versioned_docs/version-stable/diversity-and-esc.md b/docs/user/versioned_docs/version-stable/diversity-and-esc.md index 683dd92e0f..b431ed40fc 100644 --- a/docs/user/versioned_docs/version-stable/diversity-and-esc.md +++ b/docs/user/versioned_docs/version-stable/diversity-and-esc.md @@ -50,6 +50,10 @@ The child slice appears in AetherSDR with its own VFO overlay (showing a differe When DIV is active on a slice, the **ESC panel** appears below the DIV button in the VFO audio tab. ESC is only shown on the **parent** slice — the child slice shows DIV but not ESC controls. +Two VFO flags. Slice A has its audio tab open, with DIV and ESC lit green, a phase slider at 0° with a +180 button, a gain slider at 1.00, a polar display of the ESC phase and gain, and an ESC level meter. To its right, the diversity child slice D on ANT2 shows the same frequency, 14.250.000. + +*Diversity on a FLEX-8600: the DIV button adds a child slice on the second antenna, and ESC opens the beam-steering controls.* + #### ESC Toggle Click **ESC** to enable Enhanced Signal Clarity beamforming. Without ESC enabled, diversity simply combines both antennas with default settings. With ESC, you can steer the combination. diff --git a/docs/user/versioned_docs/version-stable/docs-style-guide.md b/docs/user/versioned_docs/version-stable/docs-style-guide.md index ec149f996c..4adc186298 100644 --- a/docs/user/versioned_docs/version-stable/docs-style-guide.md +++ b/docs/user/versioned_docs/version-stable/docs-style-guide.md @@ -94,7 +94,7 @@ The PC Audio path is off, or the wrong output device is selected. ## Writing Rules - **Describe current behaviour.** No "previously", no "as of v26.x", no history. A one-time behaviour change that existing users will notice goes in a callout that starts `> **Upgrading from an older version:**`. -- **Use exact UI names in bold**, with menu paths written as **Tools → PSK Reporter...** and settings as **Settings → Radio Setup... → Peripherals**. Check them against `src/gui/MainWindow_Menus.cpp`. +- **Use exact UI names in bold**, with menu paths written as **Tools → AetherMap...** and settings as **Settings → Radio Setup... → Peripherals**. Check them against `src/gui/MainWindow_Menus.cpp`. - **Links between pages** are relative file links with the page title as the text: `[CAT Control](./cat-control.md)`, or `[pinning](./smartlink-setup.md#certificate-pinning)` for a heading. The site build fails on a link to a page or heading that does not exist. Link source docs with full GitHub URLs, such as `https://github.com/aethersdr/AetherSDR/blob/main/docs/HERMES.md`. - **Placeholders** go in code: `` `` ``. A bare `` in prose is read as an HTML tag and disappears. - **Spelling and voice:** British spelling (colour, behaviour), second person, short sentences. diff --git a/docs/user/versioned_docs/version-stable/dsp-noise-mitigation.md b/docs/user/versioned_docs/version-stable/dsp-noise-mitigation.md index fda1c7e6eb..b7b9b28095 100644 --- a/docs/user/versioned_docs/version-stable/dsp-noise-mitigation.md +++ b/docs/user/versioned_docs/version-stable/dsp-noise-mitigation.md @@ -16,7 +16,7 @@ AetherSDR gives you two layers of noise mitigation. The **radio-side** filters r The in-app guide **Help → Understanding Noise Cancellation...** covers the same ground for newcomers. -![AetherRX window. The left column lists the receive chain stages AetherNR, Gate, EQ, Compressor, Tube, Exciter and Final Output, each with an enable box, with AetherNR selected, and REC, PLAY and BYPASS controls at the bottom. The right side shows the noise-reduction method tabs NR2, NR4, MNR, DFNR, RN2, BNR and NNR, gain method and noise estimation options, post-processing toggles and mask sliders, and a status line reading No method running.](/img/screens/aetherrx.png) +AetherRX window. The left column lists the receive chain stages AetherNR (selected), Gate, EQ, Compressor, Tube, Exciter and Final Output, each with an enable box, with REC, PLAY, a settings gear and BYPASS at the bottom. The right side shows the noise-reduction method tabs NR2, NR4, MNR, DFNR, RN2, BNR and NNR, the NR2 gain method and noise estimation options, post-processing toggles, mask sliders, and a status line reading METHOD No method running. *The AetherRX window: the receive processing chain on the left, the selected stage's settings on the right.* diff --git a/docs/user/versioned_docs/version-stable/dvk-panel.md b/docs/user/versioned_docs/version-stable/dvk-panel.md index acfe37cd40..62e5a2c625 100644 --- a/docs/user/versioned_docs/version-stable/dvk-panel.md +++ b/docs/user/versioned_docs/version-stable/dvk-panel.md @@ -28,6 +28,10 @@ Click the **DVK** indicator in the status bar at the bottom of the screen. The p The DVK panel and the [CWX Panel](./cwx-panel.md) share the same space — opening one closes the other. +Digital Voice Keyer panel along the left edge of the window, status Idle. Twelve slots, F1 Recording 1 to F12 Recording 12, each read Empty. REC, STOP, PLAY and PREV buttons run along the bottom. + +*The DVK panel, opened from DVK in the status bar.* + ### Recording 1. Click a slot to select it (blue highlight). diff --git a/docs/user/versioned_docs/version-stable/firmware-update.md b/docs/user/versioned_docs/version-stable/firmware-update.md index 1a8b7ebd31..1d18f80d54 100644 --- a/docs/user/versioned_docs/version-stable/firmware-update.md +++ b/docs/user/versioned_docs/version-stable/firmware-update.md @@ -25,6 +25,10 @@ AetherSDR can upload new firmware to a FlexRadio on Linux, macOS and Windows, us Open **Settings → Radio Setup...** (on macOS: **AetherSDR → Preferences...**), choose the **Radio** page, and find the **Firmware Update** group. It shows the radio's current **FW Version** and three buttons: **Check for Update**, **Select Installer...** and **Upload Firmware**. +Firmware Update group showing FW Version: 4.2.20.41343 with a copy button, and three buttons: Check for Update, Select Installer... and a dimmed Upload Firmware. + +*The Firmware Update group on the Radio page.* + ## Updating the Firmware ### Check for updates diff --git a/docs/user/versioned_docs/version-stable/first-connection.md b/docs/user/versioned_docs/version-stable/first-connection.md index a67d20da3a..0b8b62e1ae 100644 --- a/docs/user/versioned_docs/version-stable/first-connection.md +++ b/docs/user/versioned_docs/version-stable/first-connection.md @@ -14,9 +14,9 @@ applies_to: ["FlexRadio"] This page walks through connecting to a FlexRadio for the first time. AetherSDR also connects to other radio families, and has a demo mode that needs no radio at all; see [Supported Radios](./supported-radios.md) and [Demo Mode](./demo-mode.md). -![AetherSDR main window in the default dark theme. The title bar shows a tab for the demo radio labelled Simulator (not on the air). The panadapter shows a green spectrum trace around 14.100 MHz with the slice A VFO flag at 14.100.000 USB, and the waterfall below it scrolls in blue. The right-hand applet panel shows the S-Meter, RX Controls, Demo Noise and TX Controls applets.](/img/screens/main-window.png) +AetherSDR main window in the default dark theme. The title bar has three radio tabs, Hermes-Lite 2 available, FLX8600 connected with callsign KK7GWY, and the Simulator, then PC Audio and two volume sliders. The panadapter spans 14.150 to 14.350 MHz with several SSB signals in the trace, the slice A VFO flag at 14.250.000 and band-plan bars marking Phone Extra and Phone General; the waterfall below shows the SSB signals as speckled vertical columns. The applet panel on the right shows the S-Meter, RX Controls, TX Controls, Phone and Phone/CW applets. The status bar along the bottom shows the radio model and firmware, the nickname FLX8600, GPS lock, CPU and memory, PA temperature and voltage, network quality, and the UTC clock. -*The AetherSDR main window connected to the demo simulator: title bar along the top, panadapter and waterfall on the left, applet panel on the right, status bar along the bottom.* +*The AetherSDR main window connected to a FLEX-8600 on 20 m: title bar along the top, panadapter and waterfall on the left, applet panel on the right, status bar along the bottom.* ## Requirements @@ -26,9 +26,11 @@ This page walks through connecting to a FlexRadio for the first time. AetherSDR ## Setup -![Connect to Radio window. Three cards across the top read On This Network, Remote with SmartLink and Connect by IP, with On This Network selected. The Available radios list has one highlighted entry: AetherSDR Demo, Simulator (not on the air), DEMO, ready on your local network at 127.0.0.1. Below are a Connect Selected Radio button and checkboxes for the adaptive frame-rate throttle, connecting to the last radio on start-up, waking an Icom on connect and showing the AetherSDR demo simulator, with a Disconnect button at the bottom.](/img/screens/connect-dialog.png) +Connect to Radio window. Three cards across the top read On This Network (selected), Remote with SmartLink and Connect by IP. The Available radios list holds three entries: Hermes-Lite 2, ready on your local network, highlighted, with its address blacked out; FLEX-8600 FLX8600 KK7GWY, shared radio on your network via multiFLEX at AetherSDR, USA; and AetherSDR Demo, Simulator (not on the air), DEMO, ready on your local network at 127.0.0.1. A Connect Selected Radio button and checkboxes for the adaptive frame-rate throttle, connecting to the last radio on start-up, waking an Icom on connect and showing the demo simulator follow, with Connected and a Disconnect button at the bottom. -*The Connect to Radio window with the AetherSDR demo simulator listed under On This Network.* +*The Connect to Radio window, On This Network: every radio discovery found on the LAN. The addresses are blacked out.* + +The window has no title bar. It opens above the status bar; drag any empty part of it to move it, and drag an edge or corner to resize it. Close it with the round **✕** in the top-right corner, **Esc** or **Ctrl+W** (**⌘W** on macOS). **View → Frameless Window** does not apply to it, and pressing **Return** in a field (an IP address, a SmartLink password) does only what that field does. 1. **Launch AetherSDR.** The **Connect to Radio** window opens. You can reopen it at any time with **File → Connect to Radio...**, or from the **+** button beside the title bar's radio tabs. 2. Choose **On This Network** ("Recommended for new users when the radio and computer are on the same LAN"). diff --git a/docs/user/versioned_docs/version-stable/flexcontrol-tuning-knob.md b/docs/user/versioned_docs/version-stable/flexcontrol-tuning-knob.md index a922b857fe..0a16c16339 100644 --- a/docs/user/versioned_docs/version-stable/flexcontrol-tuning-knob.md +++ b/docs/user/versioned_docs/version-stable/flexcontrol-tuning-knob.md @@ -45,6 +45,10 @@ Actions whose name starts with **Wheel** do not fire once: they change what the **Settings → AetherControl...** opens **AetherControl**, a "Virtual Tuning Controller" window laid out like the FlexControl. It shares its button assignments with the physical knob and mirrors it when one is connected. +AetherControl window headed Virtual Tuning Controller, with Detect, Settings… and Compact buttons. MODE, ON/OFF and TOGGLE indicators sit above three buttons Aux1, Aux2 and Aux3, with their Single Tap actions Step Up, MOX and Toggle Mute and Double Tap actions Step Down, Toggle Tune and Toggle Lock. A large tuning knob fills the bottom. + +*AetherControl, the on-screen FlexControl knob.* + - **Wheel:** double-click the knob to capture the mouse for circular tuning; double-click again to release (Esc also releases). A single fast mouse jump moves the wheel by at most 15°, and the wheel only coasts after a real flick. - **Aux1–Aux3** and **PUSH**, each with a **Single Tap** and **Double Tap** action, from the action list below. - **Wheel Tightness** (Tight ↔ Loose, default 45) and **Mouse Sensitivity** (Less ↔ More, default 50). diff --git a/docs/user/versioned_docs/version-stable/generated/log-categories.md b/docs/user/versioned_docs/version-stable/generated/log-categories.md index 845f14a476..a6f615f54d 100644 --- a/docs/user/versioned_docs/version-stable/generated/log-categories.md +++ b/docs/user/versioned_docs/version-stable/generated/log-categories.md @@ -50,6 +50,7 @@ These are the logging categories listed in **Help → Support & Diagnostics...** | ANAN Protocol 2 | `aether.anan.p2` | ANAN/Saturn Protocol 2 wire session: DDC sequence gaps, speaker-audio FIFO level and underflow reports, unexpected sender ports | | KiwiSDR Audio/DSP | `aether.kiwisdr.audio` | Verbose KiwiSDR receive audio: frame decode, resampler, jitter/FIFO under/overrun, mixing (high-rate; off by default) | | Automation Bridge | `aether.automation` | Agent-drivable test bridge (#3646): QLocalServer verbs, widget snapshots, captures (AETHER\_AUTOMATION only) | +| External Services | `aether.network` | Failed requests to external services (update check, QRZ, maps, propagation, radar), once per service, host, error and HTTP status, with TLS errors and the TLS backend in use; URLs are logged as scheme://host only | | QRZ Lookup | `aether.qrz` | QRZ.com callsign lookups: session, cache, CW callsign spotting, photos | | AetherClock | `aether.clock` | WWV/WWVB time-signal decoder: state transitions, per-second alignment, frame decodes, voter verdicts | | Hermes-Lite 2 | `aether.hl2` | HL2 backend: band changes, J16 companion-filter selection, LNA gain, and radio health telemetry | @@ -60,4 +61,5 @@ These are the logging categories listed in **Help → Support & Diagnostics...** | Icom Scope | `aether.icom.pan` | Icom spectrum scope: sweep frames, division reassembly, bounds | | Icom Link | `aether.icom.link` | Icom backend link state: connect/disconnect, model resolution, capability publication | | Icom Credentials | `aether.icom.cred` | Icom credential storage and retrieval (no secret values are logged) | +| BNR (NVIDIA AFX) | `aether.nvafx` | BNR GPU noise removal: runtime pack download and install failures, network transfer errors, filter load errors | | System Info | `aether.sysinfo` | Startup hardware/capability inventory: OS, CPU model + SIMD features, RAM, and the speech-engine ISA baseline check (#4986). A few lines once per launch | diff --git a/docs/user/versioned_docs/version-stable/gpu-rendering.md b/docs/user/versioned_docs/version-stable/gpu-rendering.md index 3aa31d3bb4..ed00b82e1a 100644 --- a/docs/user/versioned_docs/version-stable/gpu-rendering.md +++ b/docs/user/versioned_docs/version-stable/gpu-rendering.md @@ -117,6 +117,13 @@ The graphics adapter AetherSDR found is a software rasteriser (llvmpipe, WARP, S 1. If your computer has more than one adapter, open **Display** and pick the real GPU under **SYSTEM → GPU:**. 2. Restart AetherSDR; the choice takes effect on the next launch. +### AetherSDR runs on XWayland in a Wayland session + +Qt could not load its Wayland platform plugin, so it fell back to the next plugin in `QT_QPA_PLATFORM`, usually `xcb` (XWayland). The log shows `Platform: Qt fell back from "wayland" to "xcb"`; the line before it names the plugin in use. + +1. If you built AetherSDR yourself, install your distribution's Qt 6 Wayland package. The AppImage includes the plugin. +2. Start AetherSDR from a terminal: Qt prints why the plugin did not load there, not in AetherSDR's log. + ## See also - [Panadapter Controls](./panadapter-controls.md) diff --git a/docs/user/versioned_docs/version-stable/green-heron-everyware.md b/docs/user/versioned_docs/version-stable/green-heron-everyware.md index cd0a9085e4..e0aaad3214 100644 --- a/docs/user/versioned_docs/version-stable/green-heron-everyware.md +++ b/docs/user/versioned_docs/version-stable/green-heron-everyware.md @@ -24,6 +24,10 @@ the same set of antenna ports. The GHE applet is in the **Antennas & Switching** category. It is configured in the applet itself, not in [Peripherals](./peripherals.md). +Green Heron applet. An IP field showing the placeholder 192.0.2.10, an empty Port field, an empty Switch field with a Connect button, and the status Not connected. + +*The Green Heron applet before a server is configured.* + | Field | Meaning | |---|---| | **IP** | Address of the Everyware server | diff --git a/docs/user/versioned_docs/version-stable/index.md b/docs/user/versioned_docs/version-stable/index.md index 5cee3be1a4..42c5c27131 100644 --- a/docs/user/versioned_docs/version-stable/index.md +++ b/docs/user/versioned_docs/version-stable/index.md @@ -90,10 +90,10 @@ Prefer paper? Download the [printable manual](pathname:///AetherSDR-Manual.pdf) ## Spotting & Tools - [SpotHub](./spothub.md) — DX Cluster, RBN, WSJT-X, POTA, FreeDV Reporter, N1MM, EiBi, SpotCollector, Smart Spot Filtering -- [PSK Reporter Map](./psk-reporter-map.md) — Who hears you: 2D map or 3D globe, weather radar, night lights +- [AetherMap](./psk-reporter-map.md) — Who hears you: 2D map or 3D globe, weather radar, night lights - [AetherSweep](./aethersweep.md) — In-panadapter SWR analyzer with CSV export - [Net Scheduler](./net-scheduler.md) — Recurring net reminders with one-click Tune Now -- [AetherClock and GPS](./aetherclock-and-gps.md) — WWV/WWVB time-signal decoder and the GPS & Station Location dashboard +- [AetherClock and GPS](./aetherclock-and-gps.md) — WWV/WWVB time-signal decoder and the AetherGPS dashboard - [Callsign Lookup](./callsign-lookup.md) — QRZ.com lookups, cache and CW-decoder contact cards ## Station Accessories diff --git a/docs/user/versioned_docs/version-stable/installation.md b/docs/user/versioned_docs/version-stable/installation.md index 6e3ae747b0..69208bbf80 100644 --- a/docs/user/versioned_docs/version-stable/installation.md +++ b/docs/user/versioned_docs/version-stable/installation.md @@ -72,7 +72,7 @@ Choose either: Both carry the Microsoft Visual C++ runtime with the application. **No Visual C++ Redistributable install is needed**, and repairing or removing the system redistributable does not affect AetherSDR. -The Windows builds are GPG-signed but not Authenticode-signed, so Windows SmartScreen may warn the first time you run them. Verifying the signature (below) confirms the download is genuine. +The Windows builds are Authenticode-signed: the setup, `AetherSDR.exe` and the other AetherSDR files by Jeremy Fielder, and bundled components such as Qt and the Microsoft Visual C++ runtime by their own makers. The downloads are also GPG-signed. SmartScreen may still warn about a new release until it has built download reputation; verifying the signature (below) confirms the download is genuine. Your settings live in `%LOCALAPPDATA%\AetherSDR\` whichever package you use. See [Settings and Backups](./settings-and-backups.md). @@ -138,9 +138,9 @@ The PipeWire library is installed but PipeWire's client configuration is not. Ae ### Windows SmartScreen warns the first time you run AetherSDR -The Windows builds are GPG-signed but not Authenticode-signed. +The Windows builds are Authenticode-signed (publisher: Jeremy Fielder), but SmartScreen can still warn about a new release until it has built download reputation. -1. Verify the download's signature as described in [Verifying downloads](#verifying-downloads) and [docs/VERIFYING-RELEASES.md](https://github.com/aethersdr/AetherSDR/blob/main/docs/VERIFYING-RELEASES.md). +1. Check the publisher: right-click the setup `.exe` or `AetherSDR.exe`, choose **Properties → Digital Signatures**, and confirm the signer is Jeremy Fielder. You can also verify the download's signature as described in [Verifying downloads](#verifying-downloads) and [docs/VERIFYING-RELEASES.md](https://github.com/aethersdr/AetherSDR/blob/main/docs/VERIFYING-RELEASES.md). 2. If the signature is good, the download is genuine and you can let it run. ## See also diff --git a/docs/user/versioned_docs/version-stable/keyboard-shortcuts.md b/docs/user/versioned_docs/version-stable/keyboard-shortcuts.md index d305828690..a150231a14 100644 --- a/docs/user/versioned_docs/version-stable/keyboard-shortcuts.md +++ b/docs/user/versioned_docs/version-stable/keyboard-shortcuts.md @@ -9,7 +9,7 @@ AetherSDR has two kinds of keyboard shortcut: - **Operating shortcuts** drive the radio: tuning, MOX, push-to-talk, AF gain, band and mode changes and so on. They are **off by default**. - **Application shortcuts** belong to menus and windows (Minimal Mode, UI scale, Full Screen). They always work. -![Keyboard shortcuts editor. A full keyboard map fills the top half, with bound keys coloured by category, for example T for MOX toggle and Space for PTT in red, G for go to frequency in blue, and the arrow keys for tuning and AF gain. A colour legend lists the categories. Below are Key and Action fields with Clear and Reset to Default buttons, a filter box and category selector, and a table of actions with their category, current key and default key, starting with Tune Up (1 step) on Right.](/img/screens/keyboard-shortcuts.png) +Keyboard shortcuts editor. A full keyboard map fills the top half, with bound keys coloured by category, for example T for MOX and Space for PTT in red, G for go to frequency, and the arrow keys for tuning. A colour legend lists the categories. Below are Key and Action fields with Clear and Reset to Default buttons, a filter box and category selector, and a table of actions with their category, current key and default key, starting with Tune Up (1 step) on Right, and Import…, Export…, Reset All to Defaults and Close buttons. *The keyboard shortcuts editor. Bound keys are coloured by category on the keyboard map; the table below lists every action.* @@ -46,6 +46,10 @@ The editor works one key at a time, so it is easiest for single-key bindings. Cl **Minimal Mode** (Ctrl+Shift+M, or **View → Minimal Mode**) shrinks the main window to a narrow strip holding the applet panel. The panadapters are hidden and their rendering paused (floating panadapters stay open), the status bar and menus are hidden, and the title bar keeps only the active radio tab and status badges. Press Ctrl+Shift+M again, or the title bar's maximize button, to return. Minimal Mode is also a bindable action for controllers. The Mini-Pan applet (see [Panadapter Controls](./panadapter-controls.md)) is useful here because it shows a narrow spectrum without a full panadapter. +AetherSDR in Minimal Mode, a narrow window holding a compact radio tab and the applet column: the button bar, S-Meter, RX Controls, TX Controls, Phone and Phone/CW. + +*Minimal Mode: the window shrinks to the applet column.* + > **Upgrading from an older version:** Minimal Mode was Ctrl+M on Windows. It is now Ctrl+Shift+M everywhere, so Cmd+M is free for Minimize on macOS. ## Reference diff --git a/docs/user/versioned_docs/version-stable/kiwisdr-and-web-888.md b/docs/user/versioned_docs/version-stable/kiwisdr-and-web-888.md index abee75042f..48de828034 100644 --- a/docs/user/versioned_docs/version-stable/kiwisdr-and-web-888.md +++ b/docs/user/versioned_docs/version-stable/kiwisdr-and-web-888.md @@ -23,6 +23,10 @@ Open **Tools → Configure KiwiSDR...**. It opens **Settings → Radio Setup... Each receiver has: +KiwiSDR RX Antennas group. A note says passwords are kept only for the current session. Configured Receivers reads No KiwiSDR receivers configured. Under Add Receiver, the Name field holds Example Kiwi, the Server field kiwi.example.org:8073, the Password field is empty and Type is KiwiSDR, with an Auto-connect checkbox and Browse public… and Add receiver buttons. Import… and Export… buttons sit at the bottom right. + +*The KiwiSDR RX Antennas group on the Antennas page, with a receiver typed in but not yet added.* + | Field | Use | |-------|-----| | **Name** | Required display name. It is how the receiver appears in antenna menus. | diff --git a/docs/user/versioned_docs/version-stable/low-bandwidth-connections.md b/docs/user/versioned_docs/version-stable/low-bandwidth-connections.md index 31ecf4b2fd..ba5956ae11 100644 --- a/docs/user/versioned_docs/version-stable/low-bandwidth-connections.md +++ b/docs/user/versioned_docs/version-stable/low-bandwidth-connections.md @@ -74,6 +74,15 @@ VITA-49 FFT and waterfall packets are about 1436 bytes at an MTU of 1500. Tunnel AetherSDR sends `client set enforce_network_mtu=1 network_mtu=` to the radio on each connect. It applies to this client's session only and does not permanently change the radio or affect other clients. +**Over Tailscale, AetherSDR sends at most 1200 bytes**, whatever the setting says. A tailnet carries 1280-byte packets, so larger VITA-49 packets can't cross it. AetherSDR does this automatically when either end of the connection has a Tailscale address: + +- the radio is at a tailnet address (see [Tailscale Remote Access](./tailscale-remote-access.md)), or +- your computer runs Tailscale and reaches the radio's LAN address through a Tailscale subnet router. + +A smaller setting is kept. The setting itself doesn't change, so a LAN connection still uses the full value. + +If Tailscale runs only on routers at each end (site to site), or you reach the radio through a proxy, neither end has a Tailscale address and AetherSDR can't tell. Set **Network MTU** to 1200 yourself. + ### VITA-49 RX buffer **Location:** **Settings → Radio Setup... → Network → Advanced → VITA-49 RX buffer** @@ -125,7 +134,7 @@ You can reduce traffic further from the panadapter's **Display** panel (right-cl | OpenVPN (UDP) | 1400 bytes | | Cisco SD-WAN | 1400–1450 bytes | | ZeroTier | ~1400 bytes | -| Tailscale | 1280–1420 bytes | +| Tailscale | 1280 bytes (AetherSDR caps the MTU at 1200 automatically) | ### Recommended MTU settings @@ -133,6 +142,8 @@ You can reduce traffic further from the panadapter's **Display** panel (right-cl |------------|-------------| | Home LAN | 1500 (or leave at 1450) | | VPN / SD-WAN | 1450 (default) | +| Tailscale on this computer or the radio | Any; AetherSDR sends at most 1200 | +| Tailscale on routers only (site to site) | 1200 | | Satellite / high-overhead tunnels | 1300–1400 | ## Known issues @@ -147,7 +158,7 @@ You can reduce traffic further from the panadapter's **Display** panel (right-cl Spectrum and waterfall packets are larger than the tunnel's MTU, so they are dropped while the smaller audio packets get through. 1. Open **Settings → Radio Setup... → Network → Advanced**. -2. Lower **Network MTU** to suit your tunnel (see [Recommended MTU settings](#recommended-mtu-settings)). +2. Lower **Network MTU** to suit your tunnel (see [Recommended MTU settings](#recommended-mtu-settings)). This is automatic when this computer or the radio has a Tailscale address. 3. Reconnect; AetherSDR sends the MTU to the radio on each connect. ### The VITA-49 RX buffer says it was capped @@ -165,6 +176,15 @@ Network jitter or lost packets are reaching the audio buffer. 2. Leave **Smooth packet loss** on. 3. Use Opus compression and low bandwidth mode. +### Audio drops out or the waterfall has gaps + +Packets from the radio are lost, or arrive out of order, on the way to the computer. Wi-Fi, a busy switch or a VPN are the usual causes. The log then shows `PanadapterStream: VITA-49 sequence errors on stream`, at most once every 10 seconds for each stream. + +1. Open **Tools → Network Diagnostics...** to see which streams lose packets. +2. Connect the computer to the network by cable instead of Wi-Fi. +3. If the VITA-49 RX buffer says it was capped, raise `net.core.rmem_max` (see [The VITA-49 RX buffer says it was capped](#the-vita-49-rx-buffer-says-it-was-capped)). +4. On a remote link, use Opus compression and low bandwidth mode. + ### Low bandwidth mode has no effect It takes effect only when you connect, and never on a FlexRadio found **On This Network**. diff --git a/docs/user/versioned_docs/version-stable/manual-connection.md b/docs/user/versioned_docs/version-stable/manual-connection.md index 2a95995c2c..74a1142ef1 100644 --- a/docs/user/versioned_docs/version-stable/manual-connection.md +++ b/docs/user/versioned_docs/version-stable/manual-connection.md @@ -15,6 +15,10 @@ Use **Connect by IP** for: ## Setup +Connect to Radio window with the Connect by IP card selected. The Radio IP address group has Radio type: FlexRadio, Radio IP: 192.0.2.25, Network Diagnostics and Connect by IP buttons, and an Advanced: choose the VPN source path expander. Below are Connection options for slower links with a Use low bandwidth mode checkbox, and the shared checkboxes for the adaptive frame-rate throttle, connecting to the last radio, waking an Icom and showing the demo simulator. + +*The Connect by IP card, with a documentation address typed in.* + 1. Open the **Connect to Radio** window: **File → Connect to Radio...**, or the **+** button beside the title bar's radio tabs → **Connect manually…**. 2. Choose the **Connect by IP** card ("Best for VPN or routed station access when you already know the radio IP"). diff --git a/docs/user/versioned_docs/version-stable/memory-channels.md b/docs/user/versioned_docs/version-stable/memory-channels.md index 32bc5ec4d0..f6a2c5149d 100644 --- a/docs/user/versioned_docs/version-stable/memory-channels.md +++ b/docs/user/versioned_docs/version-stable/memory-channels.md @@ -14,9 +14,9 @@ Open it from **Tools → Memory...** For quick recall while operating, the panadapter's overlay **Memory** button opens a browse panel (see [Memory browse panel](#memory-browse-panel)). -![Memory Channels window with a search box and a Group filter set to All Memories. The table has columns Group, Owner, Frequency, Name, Mode, Step, Offset Dir, Repeater Offset and Tone Mode and holds three memories owned by DEMO: 14.074000 USB (selected), 14.200000 USB and 14.030000 CW. A tip line explains how to tune and edit, and the buttons along the bottom are Add, Tune, Select All, Import, Export and Remove, with 1 of 3 selected.](/img/screens/memory-dialog.png) +Memory Channels window with a search box and a Profile filter set to All Memories. The table has columns Group, Owner, Frequency, Name, Mode, Step, Offset Dir, Repeater Offset and Tone Mode and lists five memories owned by KK7GWY, two FM repeater channels on 146 MHz with CTCSS, and 20 m and AM broadcast entries in DIGU, RTTY and AM. A tip line explains how to tune and edit, and the buttons along the bottom are Add, Tune, Select All, Import…, Export… and Remove, with 1 of 5 selected. -*The Memory Channels window with three memories added from the demo slice.* +*The Memory Channels window, listing the memories stored in the radio.* ## Using memory channels @@ -60,6 +60,10 @@ button always stores the **active** slice. When SpotHub's **Memories** toggle is on, every memory also appears as a marker on the panadapter at its frequency. See [SpotHub](./spothub.md). +Memory panel beside the overlay menu, with the Memory button lit. An Add Memory button sits above a Frequency and Name list: 0.670000 AM News, 14.085000 RTTY 20m, 14.236000 FreeDV 20m, 146.780000 and 146.960000, two repeater memories named by their callsign and club. + +*The Memory panel, opened from the Memory button on the overlay menu.* + ### Memory profiles On a FlexRadio, memories are grouped by global profile. Use the **Profile** diff --git a/docs/user/versioned_docs/version-stable/menu-reference.md b/docs/user/versioned_docs/version-stable/menu-reference.md index fa830c9e4b..0d79c1dca0 100644 --- a/docs/user/versioned_docs/version-stable/menu-reference.md +++ b/docs/user/versioned_docs/version-stable/menu-reference.md @@ -11,9 +11,9 @@ The top-level menus are **File · Settings · Profiles · Tools · View · Windo - **Windows and Linux:** the menus sit behind the **☰** button at the far left of the title bar. Alt+letter mnemonics (Alt+F, Alt+S, …) still open each menu under the button, and every menu shortcut keeps working. - **macOS:** the menus are in the system menu bar at the top of the screen. **Radio Setup…** appears as **AetherSDR → Preferences…**. -![The AetherSDR title bar. From left: the menu button, the AetherSDR logo, a radio tab for the demo reading Simulator (not on the air), AetherSDR Demo, connected, DEMO, and a plus button to add a radio. On the right: a PC Audio button, a speaker icon and volume slider at 100, a headphone icon and slider at 50, three panel layout buttons, and minimise, maximise and close buttons.](/img/screens/title-bar.png) +The AetherSDR title bar. From left: the menu button, the AetherSDR logo, three radio tabs reading Hermes-Lite 2 available, FLX8600 FLEX-8600 connected KK7GWY (highlighted, with a green dot) and Simulator (not on the air) AetherSDR Demo available DEMO, and a plus button. On the right: a green PC Audio button, a speaker icon and slider at 100, a headphone icon and slider at 100, three panel layout buttons, and minimise, maximise and close buttons. -*The title bar: the menu button, radio tabs, PC Audio and volume controls, panel layout buttons and window controls.* +*The title bar: the menu button, one tab per radio, PC Audio and volume controls, panel layout buttons and window controls.* ## File @@ -61,6 +61,10 @@ See [Profile Management](./profile-management.md). ## Tools +Tools menu: Add Panadapter..., AetherTX..., CW Keyer, Copy Assist, AetherModem..., Configure KiwiSDR...; Start SWR Scan..., Pre-tune ATU Bands..., Clear ATU Memories..., Calibrate AGC-T...; Callsign Lookup... (Ctrl+Shift+L), AetherMap..., FreeDV Reporter...; Net Scheduler..., Memory..., Waveforms..., Wideband Bandscope...; Radio Health..., AetherGPS..., Network Diagnostics... and Runtime Monitor.... + +*The Tools menu, connected to a FLEX-8600.* + | Item | What it does | |------|-------------| | **Add Panadapter...** | Opens the layout picker and adds a pan if the radio has capacity. | @@ -74,14 +78,14 @@ See [Profile Management](./profile-management.md). | **Clear ATU Memories...** | Clears the radio's ATU memories after confirmation. | | **Calibrate AGC-T...** | Noise-floor AGC-T calibration for the active slice. It listens only; it does not transmit. The same calibration is on the AGC-T slider's right-click menu. | | **Callsign Lookup...** | QRZ lookup (Ctrl+Shift+L). See [Callsign Lookup](./callsign-lookup.md). | -| **PSK Reporter...** | See [PSK Reporter Map](./psk-reporter-map.md). | +| **AetherMap...** | See [AetherMap](./psk-reporter-map.md). | | **FreeDV Reporter...** | FreeDV Reporter station list. | | **Net Scheduler...** | See [Net Scheduler](./net-scheduler.md). | | **Memory...** | See [Memory Channels](./memory-channels.md). | | **Waveforms...** | Install and manage radio waveforms (radios with installable waveforms only). | | **Wideband Bandscope...** | The radio's converter view before tuning; dimmed on radios without one. See [Hermes-Lite 2](./hermes-lite-2.md). | | **Radio Health...** | Reachability, other clients holding the radio, PA temperature — works even with no session. | -| **GPS Dashboard...** | See [AetherClock and GPS](./aetherclock-and-gps.md). | +| **AetherGPS...** | See [AetherClock and GPS](./aetherclock-and-gps.md). | | **Network Diagnostics...** | Link quality, trends and logs. See [Troubleshooting](./troubleshooting.md). | | **Runtime Monitor...** | CPU, memory, threads and logs for the app itself. See [Runtime Monitor](./runtime-monitor.md). | @@ -123,10 +127,17 @@ The Minimize and Full Screen keys can be rebound in **Settings → Configure Sho ## Help +Help menu: Getting Started..., AetherSDR Help..., What's New...; Understanding Noise Cancellation..., Configuring AetherSDR Controls..., Configuring Data Modes...; AetherSDR Website, Donate to AetherSDR, Submit your Idea... (with a light-bulb icon), File an Issue..., Contributing to AetherSDR...; Support & Diagnostics..., Slice Troubleshooting..., Check for Updates...; and About AetherSDR. + +*The Help menu.* + | Item | What it does | |------|-------------| -| **Getting Started...**, **AetherSDR Help...**, **What's New...** | Built-in guides, each in its own window. | -| **Understanding Noise Cancellation...**, **Configuring AetherSDR Controls...**, **Configuring Data Modes...** | Topic guides. | +| **AetherSDR Documentation** | Opens this documentation site in your browser. | +| **Printable Manual (PDF)** | Opens the [printable manual](pathname:///AetherSDR-Manual.pdf), all of these pages in one PDF. | +| **Log Analyzer** | Opens the [Log Analyzer](/log-analyzer), which checks a log or support bundle for known problems in your browser. | +| **Getting Started...**, **AetherSDR Help...**, **What's New...** | Built-in guides, each in its own window. They work offline, and each guide links its page on this site. | +| **Understanding Noise Cancellation...**, **Configuring AetherSDR Controls...**, **Configuring Data Modes...** | Topic guides, also offline. | | **AetherSDR Website**, **Donate to AetherSDR** | Open the web pages. | | **Submit your Idea... 💡** | The AI-assisted feature-request helper. | | **File an Issue...** | Opens a GitHub issue pre-filled with a redacted log tail. | @@ -157,6 +168,10 @@ The main window has one 52 px title bar. From left to right: ### Radio tabs +Discovered radios popup with a Search name, address, or status field. Three rows, each with an Actions button: FLX8600, connected; Hermes-Lite 2, available; and Simulator (not on the air), 127.0.0.1, available, with the first two addresses blacked out. Connect manually... and Rescan radios sit at the bottom. + +*The radio list, opened from the plus button beside the radio tabs. Addresses are blacked out.* + - Line one is the radio's name; line two is its state in words (for example "link lost"), so colour is never the only signal. - The dot on the active tab is the **radio-link indicator**. It pulses once per discovery heartbeat, turns amber while discovering and red after three missed heartbeats (blinking, or solid if **View → Blink Status Indicator** is off). The alarm stays on the radio that dropped until you disconnect on purpose, start a new session or remove the tab. A deliberate disconnect never raises it. Right-click the tabs to toggle blinking. - When the tabs no longer fit, scroll them with the mouse wheel or drag them sideways. @@ -177,6 +192,8 @@ The speaker icon and master slider show the path you are actually hearing: With PC Audio off, a Line Out change made by another client (or in Radio Setup) shows up here too. See [Audio Settings](./audio-settings.md). +On a radio with no Line Out AetherSDR can control (Hermes-Lite 2, Icom, RTL-SDR), the speaker mutes only this computer's output; with PC Audio off too, the click is refused with a notice. + ### Per platform | Platform | Window frame and controls | @@ -193,6 +210,10 @@ In **Minimal Mode** the bar shrinks to the active radio tab and status badges; t **Help → About AetherSDR** opens a rounded, borderless window showing: +About AetherSDR window. Below the AetherSDR logo it shows the version v26.10.1 and commit, the tagline Cross-platform SmartSDR-compatible client for FlexRadio transceivers, and a box listing Built with Qt 6.12.0 and C++20, the compile date and the GPU QRhi (OpenGL) renderer. A Contributor Logbook button, the copyright and GPLv3 licence, the GitHub link, trademark notices and an OK button follow. + +*The About AetherSDR window: version, build and renderer details.* + - the version and commit; - a **build details** card (Qt version, compile date, and the spectrum renderer in use). The text is selectable, so you can paste it into a bug report; - a **Contributor Logbook ↗** button that opens [contributors.aethersdr.com](https://contributors.aethersdr.com/#all-time). diff --git a/docs/user/versioned_docs/version-stable/meters.md b/docs/user/versioned_docs/version-stable/meters.md index 5fa7c08694..46cde37b73 100644 --- a/docs/user/versioned_docs/version-stable/meters.md +++ b/docs/user/versioned_docs/version-stable/meters.md @@ -24,6 +24,10 @@ An analog needle meter in the applet panel. While receiving it shows the selecte Right-click the meter for its options: +S-Meter context menu with sections Face theme (Aether default ticked, Classic warm, Dark-room uplight, Graphite dark), TX Select (Power ticked, SWR, Level, Compression), RX Select (S-Meter ticked, S-Meter Peak), Peak Hold (Enabled), Decay speed (Fast, Medium ticked, Slow) and Reset Peak Hold. + +*The S-Meter applet's right-click menu.* + | Section | Choices | |---------|---------| | **Face theme** | Aether default (default), Classic warm, Dark-room uplight, Graphite dark | @@ -37,6 +41,10 @@ Right-click the meter for its options: Every VFO flag has a meter strip under the frequency. **Click the strip** to open a selector with two views: +VFO flag showing the SmartMTR bar meter under the frequency, with a scale from 1 to 9 and +20, +40 and +60, and a red bar for the current signal level. + +*The VFO flag with SmartMTR selected: a bar meter with an S-unit and dB-over-S9 scale.* + - **S-Meter** — the classic bar with S1–S9 and +20/+40/+60 markings. - **SmartMTR** — a bar with analog-style needle ballistics and these extra options: @@ -54,6 +62,10 @@ The choice applies to every flag and is remembered. See [VFO Widget](./vfo-widge A classic cross-needle wattmeter: separate **forward** and **reflected** needles, with printed SWR curves (1.1, 1.2, 1.3, 1.4, 1.5, 1.7, 2, 2.5, 3, 4, 8, ∞). Read SWR where the needles cross. The applet is off by default; open it from the **PWR** button. +Power & SWR applet: an analogue cross-needle meter face in amber, with a FORWARD power scale on the left, a REFLECTED power scale on the right and curved SWR lines where the needles cross, labelled SWR at the bottom. Both needles rest at zero. + +*The Power & SWR cross-needle meter.* + - **Range** is automatic: ×1 (20 W forward / 4 W reflected full scale) up to 20 W, ×10 up to 200 W, and ×100 above 200 W or whenever an amplifier is active. The face shows "RANGE 20 W ×1 / 200 W ×10 / 2 kW ×100". - Pop it out from its title bar to get a floating meter window; the window can be shrunk down to a compact size. @@ -70,10 +82,18 @@ The geometry behind the curves is documented in [docs/cross-needle-meter-math.md Gauges for the radio's hardware: **PA Temp**, **Supply Voltage** and **Main Fan**, each with its live value printed on the gauge. The **°C / °F** button in the "Radio Hardware" header switches the temperature unit and is remembered. On radios that report PA current, that gauge reads **PA Current** instead and the °C/°F button is hidden. The supply-voltage row is hidden on radios that do not report it. +Radio Vitals applet headed Radio Hardware, with a °C unit button. Three bar gauges read the PA temperature, about 20°C on a 0 to 120 scale, the supply voltage, about 13.7 V on a 10.5 to 15 scale, and the fan speed, about 1100 rpm on a 0 to 3k scale. + +*The Radio Vitals applet on a FLEX-8600: PA temperature, supply voltage and fan speed.* + ### Antenna Health (HLTH) A scrolling trend of **SWR**, **RL** (return loss, computed from SWR) and **PWR** (smoothed forward power) while you transmit, with incident markers. +Antenna Health applet. A green OK badge, SRC TUN and a score of 100 sit at the top. Below, a chart has three flat trend lanes labelled SWR, RL and PWR, and a footer reads SWR 1.00, RL 45dB, PWR 1.00 W and VAR 0.00. + +*The Antenna Health applet on receive: the trend lines fill in when you transmit.* + - A **0–100 health score** combines SWR, return loss, variance and power sag. - The state reads **IDLE**, **RF IDLE**, **OK**, **WATCH** or **GROUND?**. **VAR** is the recent SWR spread; a wide spread can point to grounding or counterpoise problems. - **SRC** shows where the reading comes from: **AMP** (Power Genius XL), **TUN** (Tuner Genius XL) or **RAD** (the radio), whichever is freshest. diff --git a/docs/user/versioned_docs/version-stable/midi-controller-mapping.md b/docs/user/versioned_docs/version-stable/midi-controller-mapping.md index ed689e7af1..164d6d8e33 100644 --- a/docs/user/versioned_docs/version-stable/midi-controller-mapping.md +++ b/docs/user/versioned_docs/version-stable/midi-controller-mapping.md @@ -25,6 +25,10 @@ AetherSDR supports class-compliant USB MIDI controllers for hands-on control of **MIDI Device** +MIDI Controller Mapping window. The MIDI Device group has a Port selector, Refresh and Connect buttons, a Disconnected status and Auto-connect on startup ticked. The Parameter Bindings table, with columns Parameter, MIDI Source, Channel, Invert and Relative, is empty. Below are a category filter, a parameter selector set to [RX] AF Gain with Learn and Manual… buttons, and Clear All, Profile, Save, Load, Import… and Export… controls, with Close at the bottom. + +*The MIDI Controller Mapping window, before any control is bound.* + - **Port** with **Refresh** and **Connect / Disconnect** - **Auto-connect on startup** — reconnect to the last device at launch - Activity line — the last message received (channel, type, number, value) diff --git a/docs/user/versioned_docs/version-stable/mqtt-station-automation.md b/docs/user/versioned_docs/version-stable/mqtt-station-automation.md index 21fdd98a97..85703deef2 100644 --- a/docs/user/versioned_docs/version-stable/mqtt-station-automation.md +++ b/docs/user/versioned_docs/version-stable/mqtt-station-automation.md @@ -107,6 +107,10 @@ For any MQTT-connected antenna switch (Node-RED, ESP32, Raspberry Pi, …): **Broker** +MQTT Settings window with tabs Broker, Subscriptions and Publish Buttons, on Broker. Host is localhost, Port 1883, User and Password are empty, TLS has a Use TLS option and CA cert is optional, blank = system CA bundle with a Browse… button. OK, Cancel and Apply buttons sit at the bottom. + +*The MQTT Settings window with the default broker fields.* + | Field | Notes | |-------|-------| | **Host** / **Port** | Broker address; port defaults to 1883 | diff --git a/docs/user/versioned_docs/version-stable/multi-flex.md b/docs/user/versioned_docs/version-stable/multi-flex.md index f2f3b5cb1f..08fead21b6 100644 --- a/docs/user/versioned_docs/version-stable/multi-flex.md +++ b/docs/user/versioned_docs/version-stable/multi-flex.md @@ -42,6 +42,10 @@ AetherSDR handles this automatically: **Settings → multiFLEX...** opens the **multiFLEX Dashboard**, a live list of every connected station: +multiFLEX Dashboard window headed multiFLEX Stations with a green Enabled indicator. A table with columns Local PTT, Station, TX Ant and TX Freq (MHz) lists one row: a tick, AetherSDR, ANT1 and 14.250. A Close button sits at the bottom right. + +*The multiFLEX Dashboard: every station sharing the radio.* + | Column | Meaning | |--------|---------| | **LOCAL PTT** | A check mark shows which station holds PTT authority | diff --git a/docs/user/versioned_docs/version-stable/multi-slice-operation.md b/docs/user/versioned_docs/version-stable/multi-slice-operation.md index f2358278cf..77341c228c 100644 --- a/docs/user/versioned_docs/version-stable/multi-slice-operation.md +++ b/docs/user/versioned_docs/version-stable/multi-slice-operation.md @@ -19,6 +19,10 @@ See [Supported Radios](./supported-radios.md). ### Adding a slice +Panadapter with two VFO flags. Slice B in magenta sits on an SSB signal near 14.2185 MHz, and slice A in cyan at 14.250.000 carries the TX badge. Each has its own passband marker in the spectrum. + +*Two slices on one panadapter, each with its own coloured VFO flag.* + - Click **+RX** in the panadapter's overlay menu - Or right-click an empty part of the panadapter → **Add Slice at X MHz** - Clicking an empty panadapter also creates a new slice there instead of diff --git a/docs/user/versioned_docs/version-stable/net-scheduler.md b/docs/user/versioned_docs/version-stable/net-scheduler.md index 1a72c258a8..76abcfc33d 100644 --- a/docs/user/versioned_docs/version-stable/net-scheduler.md +++ b/docs/user/versioned_docs/version-stable/net-scheduler.md @@ -20,6 +20,10 @@ Open it from **Tools → Net Scheduler...** Click **Add…** and fill in (a new net starts as Weekly on today's weekday): +Add Net dialog. Name: Tuesday 20 m Net. Repeats Weekly every 1 week(s), On with day buttons M, T, W, T, F, S, S. At 8:00 PM, Etc/UTC. Remind me 10 minutes before. Frequency 14.250000 MHz, USB, with a Capture current VFO button. Filter 100 Hz to 2800 Hz, an empty Notes field, the next occurrence in blue, and OK and Cancel buttons. + +*Adding a net: name, repeat pattern, time, reminder and frequency.* + - **Name** - **Repeats:** **Once (no repeat)**, **Daily**, **Weekly** or **Monthly**, with **every N** days, weeks or months (1–52). @@ -67,6 +71,10 @@ When an imported net matches one you already have, choose: The window lists your nets with these columns: +Net Scheduler window. A table with columns On, Name, Repeats, Next, Frequency and Mode lists two nets: Tuesday 20 m Net, weekly, 14.2500 MHz USB, and Sunday 20 m Net, weekly, 14.3000 MHz USB, the second selected. Add…, Edit…, Remove, Disable, Tune Now, Import… and Export… buttons run along the bottom. + +*The Net Scheduler with two weekly nets added.* + | Column | Meaning | |---|---| | **On** | Whether reminders are enabled for this net | diff --git a/docs/user/versioned_docs/version-stable/networked-icom.md b/docs/user/versioned_docs/version-stable/networked-icom.md index e786988c61..d6cc7c63d1 100644 --- a/docs/user/versioned_docs/version-stable/networked-icom.md +++ b/docs/user/versioned_docs/version-stable/networked-icom.md @@ -47,6 +47,10 @@ Enable network (remote) control and create a network user name and password. Aet Networked Icoms are not discovered automatically. Open **File → Connect to Radio...**, choose **Connect by IP** and set **Radio type:** to **Icom (network)**. The form gains these rows: +Radio IP address group with Radio type: Icom (network), Radio IP: 192.0.2.30, empty Icom user and Icom password fields, Icom ports: Standard (50001–50003), Icom CI-V: Auto-detect (recommended), Network Diagnostics and Connect by IP buttons, and an Advanced: choose the VPN source path expander. + +*Connect by IP with Radio type set to Icom (network): the Icom user, password, ports and CI-V rows appear.* + | Row | What to enter | |-----|---------------| | **Radio IP:** | The radio's IP address or host name. | diff --git a/docs/user/versioned_docs/version-stable/nr2-noise-reduction.md b/docs/user/versioned_docs/version-stable/nr2-noise-reduction.md index c21f9e44fc..5cc8dca61e 100644 --- a/docs/user/versioned_docs/version-stable/nr2-noise-reduction.md +++ b/docs/user/versioned_docs/version-stable/nr2-noise-reduction.md @@ -46,6 +46,10 @@ NR2 is less effective against impulse noise (clicks, pops, lightning crashes); u The first time you enable NR2, AetherSDR optimizes the FFT plans it uses (FFTW "wisdom"). An **AetherSDR — FFTW Wisdom** window appears while this runs: +AetherSDR FFTW Wisdom window. It reads Computing COMPLEX FORWARD FFT size 2048... and This window will automatically close when wisdom generation is complete, above a progress bar at 38%, Working..., an elapsed time of 0:09 and a Cancel button. + +*The FFTW Wisdom window, shown the first time NR2 starts on a computer.* + - It shows progress, a **Working** activity indicator and an **Elapsed** time counter. Planning can take several minutes on some systems; if the progress pauses, the window says it is still working. - The window is modeless — keep operating while it runs. On macOS it stays visible when AetherSDR is not the frontmost app. - Clicking NR2 again while it runs brings the same window forward instead of starting a second run. diff --git a/docs/user/versioned_docs/version-stable/panadapter-controls.md b/docs/user/versioned_docs/version-stable/panadapter-controls.md index df2d1ce344..5baf217683 100644 --- a/docs/user/versioned_docs/version-stable/panadapter-controls.md +++ b/docs/user/versioned_docs/version-stable/panadapter-controls.md @@ -6,9 +6,9 @@ description: "The panadapter is the main display: the FFT spectrum on top and th The panadapter is the main display: the FFT spectrum on top and the scrolling waterfall below. AetherSDR can show up to 8 panadapters (as many as the connected radio allows), stacked in the main window or popped out into their own windows. -![Panadapter centred near 14.100 MHz. A green spectrum trace with a dBm scale on the right, a frequency scale from 14.096 to 14.103 MHz, band-plan segments along the bottom of the spectrum, and a blue waterfall below with a time scale in seconds. The slice A VFO flag reads 14.100.000 USB and the overlay buttons on the left read +RX, Band, ANT, Display and Memory.](/img/screens/panadapter.png) +Panadapter covering 14.150 to 14.350 MHz. A blue spectrum trace with a dBm scale on the right shows SSB signals across the phone band, and band-plan segments run along the bottom of the spectrum. The slice A VFO flag reads 14.250.000 with its passband marked by the cyan line. The overlay buttons on the left read back arrow, +RX, +TNF, Band, ANT, Display, Memory and DAX, and the waterfall below shows the voice signals as speckled vertical columns against a dark blue background, with a time scale in seconds on the right and the zoom buttons S, B, minus and plus at the bottom left. -*A panadapter with its waterfall, the slice A VFO flag and the overlay menu down the left edge.* +*A panadapter on 20 m with its waterfall, the slice A VFO flag and the overlay menu down the left edge.* ## Using the panadapter @@ -30,10 +30,23 @@ The panadapter is the main display: the FFT spectrum on top and the scrolling wa - If the wheel tunes the wrong way for your mouse or trackball, turn on **Radio Setup → Appearance & Behavior → Reverse mouse-wheel tuning direction**. - Dragging any slider shows its value in a small popup. +### The header + +A thin header runs across the top of each panadapter, drawn over the spectrum so the trace and grid show through it. + +- **At the left:** the **⋮⋮** grip and the pan's name (its slice, or the pan's ID when it has no slice). On a popped-out pan, drag the grip or the name to move the window. Clicking them never tunes. +- **At the right:** **⬈ Pop out** (**↩ Dock** on a popped-out pan), **□ Maximize** and **✕ Close**, which closes that pan. They show when more than one pan is open, and always on a popped-out pan. +- **In between,** the header is part of the spectrum: click, double-click to tune, drag and scroll there as anywhere else. +- The overlay menu (←, +RX, Band…) and the dBm scale's ▲▼ arrows start just below the header. The VFO flags and the readouts at the top right (WNB, RF gain, propagation) sit at the very top, over it. + ### Right-click menu Right-click the spectrum or waterfall: +Panadapter context menu: Add Spot at 14.288000 MHz..., Add TNF at 14.288000 MHz, Add Slice at 14.288000 MHz, Move capture away from DC, Center Lock Slice A, Waterfall Time Markers (submenu), Show Tune Guides, Extended Frequency Line, Extended Passband, Extended TNF and Pop out. + +*The panadapter's right-click menu. The frequency in the first items is the point you clicked.* + | Item | What it does | |------|-------------| | **Add Slice at X MHz** | Opens a new slice at the clicked frequency. | @@ -82,6 +95,10 @@ Drag the divider between the spectrum and the waterfall to resize them. The spli **Display → 3D VIEW → Spectrum: 3D Stacked Trace** turns the spectrum into a perspective surface built from recent traces receding into the distance. Ridge height is measured from the noise floor and coloured from floor to peak, and single-frame impulse bursts are rejected. The waterfall, scales and every overlay (spots, memories, markers, band plan) still draw as normal, and the dBm scale stays on the right as a full-height axis. It works on KiwiSDR sources too, and uses the GPU where available (see [GPU Rendering](./gpu-rendering.md)). +Panadapter in 3D Stacked Trace mode. Above the frequency scale from 14.150 to 14.350 MHz, successive spectrum traces are stacked into a blue landscape that recedes towards the top, with SSB signals standing out as green ridges running back in time. The slice A VFO flag sits at 14.250.000. + +*The panadapter with Spectrum set to 3D Stacked Trace: recent sweeps are drawn as a receding landscape.* + ### Band plan overlay The strip along the bottom of the spectrum shows band segments, coloured by use. In the ARRL (US) plan, for example: blue for CW, red for data, orange for phone/SSB, cyan for beacons, purple for satellite, green for weak-signal SSB, and yellow for mixed or experimental segments. Dots mark spot frequencies (FT8, WSPR, QRP calling and so on); hover for a tooltip. @@ -98,16 +115,24 @@ The ARRL and RAC plans mark licence classes by brightness. The ARRL plan's 60 m When a slice is outside the visible span, an indicator at the edge shows its letter, TX status, a chevron and its frequency. **Click** it once to make that slice active and bring it into view. Right-click it for the slice menu. +The top right corner of the panadapter. Under the +8 dB gain label, an indicator reads TX A > and 14.400, showing that slice A is off to the right of the visible span. + +*When the slice is outside the visible span, an arrow at the edge of the spectrum points to it.* + ### Mini-Pan **Mini-Pan** is a narrow, K4-style spectrum of the active slice in an applet (button **MINI**, off by default). It shows a ±5 kHz window by default, or ±10 kHz; right-click it to choose. The window is centred on the slice's passband (on SSB that is offset from the carrier); a hairline and readout mark the carrier. It re-uses the main panadapter's data, so it uses no extra radio panadapter or slice, and its detail follows the main pan's zoom. It is an applet rather than a menu item so it is available in Minimal Mode; float it from its title bar to keep it on top of a logging program. +Mini-Pan applet. A small spectrum display spans -5.0 kHz to +5.0 kHz around the slice frequency 14.250000, with the receive passband shaded in teal and a spectrum trace along the bottom. + +*The Mini-Pan applet: a small spectrum view of the slice's passband.* + ### Multiple and detached panadapters - **Tools → Add Panadapter...** or the **+PAN** icon in the status bar opens a layout picker and adds a pan if the radio has room. -- **Right-click → ↗ Pop out** moves a pan into its own window; **↩ Dock** puts it back. +- **Right-click → ↗ Pop out**, or the header's **⬈** button, moves a pan into its own window; **↩ Dock** puts it back. - Pan layouts, including floating pans, are restored when you reconnect. - With the [Workspace Canvas](./workspace-canvas.md) on, **Import pop-outs onto canvas** places floating pans on the canvas. @@ -121,6 +146,10 @@ The status bar at the bottom of the window starts with the band-stack indicator **View → FPS Meters** (Ctrl+F) adds spectrum and waterfall frame-rate readouts to each pan. +The status bar. From left: the add-panadapter icon, the indicators TNF, CWX, ASR, DVK and FDX, the radio model FLEX-8600 with firmware 4.2.20.41343, the nickname FLX8600 in a box, the GPS satellite count with Fine Lock, CPU and memory use, the PA temperature and supply voltage, Network: [Excellent], a TUN STANDBY indicator, a TX indicator and the date and UTC time. + +*The status bar on a FlexRadio: feature indicators, radio and firmware, nickname, GPS, CPU, PA telemetry, network quality, TUN and TX indicators and the UTC clock.* + ## Using the applet panel The applet panel holds the radio controls (S-Meter, RX, TX, Phone, P/CW, EQ and many more). @@ -136,6 +165,14 @@ Use the icons at the right of the title bar: The top row of the panel holds **five favourite buttons** (by default VU, PWR, RX, TX and P/CW) and a **▼/▲** drawer button that shows the rest. Right-click the bar (or the drawer button) and choose **Customize Button Bar** to pick your favourites and hide buttons you don't use; the first five active entries fill the bar and the rest go in the drawer. Hiding a button also closes its applet. Buttons for accessories you don't have (tuner, amplifier, Antenna Genius and so on) appear only when that hardware is present. +Customize Button Bar dialog. A note explains that the top five active buttons fill the row and the rest live in the drawer, while hidden buttons and their applets are disabled. The Active list holds VU, PWR, RX, TX and P/CW, a Favorites divider, then LOCK, PHN, EQ, WAV, VUDU, CAT, DAX, TCI, IQ, MTR, PROF, SS, MQTT and CTR2. The Hidden list is empty, with arrow buttons between the lists and OK and Cancel at the bottom. + +*Customize Button Bar: choose which applet buttons are favourites and which go in the drawer.* + +The top of the applet panel. The first row holds VU, PWR, RX, TX, P/CW and the drawer button, now an up arrow. The open drawer below lists LOCK, PHN, EQ, WAV, VUDU, CAT, DAX, TCI, IQ, MTR, PROF, MQTT, CTR2, CLK, MINI, KSDR, RADE, HLTH, GHE, AG and TUN, with VU, RX, TX, P/CW, PHN, EQ and WAV lit. + +*The applet button bar with its drawer open. Lit buttons are applets that are showing.* + ### Reordering applets Drag an applet by its title bar (⋮⋮ grip) to reorder it. The order is remembered. **View → Reset Applet Order** restores the default. @@ -143,6 +180,10 @@ Drag an applet by its title bar (⋮⋮ grip) to reorder it. The order is rememb ### Screen layout +The Band panel open beside the overlay menu, with the Band button lit. A grid of band buttons reads 160, 80, 60, 40, 30, 20 (outlined), 17, 15, 12, 10 and 6, then 2m, 70cm and 23cm in cyan, then WWV, GEN, 2200, 630 and XVTR. + +*The Band panel, opened from the Band button on the overlay menu. The current band, 20 m, is outlined.* + - **FFT spectrum** — real-time signal strength across the displayed span - **Frequency scale** — between spectrum and waterfall, in MHz - **Waterfall** — scrolling time-versus-frequency history @@ -155,7 +196,7 @@ Drag an applet by its title bar (⋮⋮ grip) to reorder it. The order is rememb Click **Display** in the overlay menu. The panel is divided into sections and scrolls when the window is short. Settings apply to the panadapter you opened it from. -![The Display panel open over the left edge of the panadapter. It lists spectrum settings (heat map, grid, weighted average, FFT averaging, FPS, line and fill colours, noise floor), waterfall settings (blanker, auto black, colour gain, rate), background image, grid spacing, scale text and colour scheme, the render mode and 3D settings, the renderer, and buttons to clone display settings to all panadapters or reset them.](/img/screens/display-panel.png) +The Display panel open beside the overlay menu, with the Display button lit. It has sections Panadapter (Heat Map and Grid on, Wt Avg off, FFT averaging, FPS, line and fill colours and floor), Waterfall (NB blanker, black level, gain and rate), Background (Choose, Clear, Off, opacity and colour), Appearance (grid, scale text and scheme), 3D View (Spectrum set to 2D Waterfall, 3D floor, gain and span), and System (GPU set to Auto (system default)), with Clone to all Pans and Reset to Defaults buttons at the bottom. *The Display panel, opened from the Display button on the panadapter overlay menu.* @@ -168,6 +209,8 @@ Click **Display** in the overlay menu. The panel is divided into sections and sc | **Wt Avg** | Off by default | Weighted averaging that favours recent frames. | | **FFT AVG** | 0–100 | Frame averaging. Higher is smoother but slower to react; 0 is unaveraged. | | **FFT FPS** | 5–60, default 25 | Spectrum frame rate. | +| **FFT Smooth** | Off–16 px, default Off | Smooths the trace across frequency by averaging each point with its neighbors this many pixels either side, in linear power, so a dB average doesn't drag the noise floor down; the smoothed floor reads its true average power, about 1–1.5 dB above the middle of the unsmoothed noise. FFT AVG smooths over time; this smooths across the band. Only the trace is affected, not the waterfall. | +| **De-comb Hz** | Off–600 Hz, default Off | Zoomed in on SSB, the trace and waterfall show each voice as a comb of its pitch harmonics, 100–250 Hz apart. De-comb draws a smooth curve over that comb (a cepstral envelope), keeping the signal's outline and peak level. The value is the widest harmonic spacing it removes: about 300 Hz covers most voices; raise it if a high voice still shows a comb. It rounds a signal's steep edges by about half this width, and carriers closer together than it blur into one. It works on signals more than about 8 dB above the noise; the noise floor itself is left as drawn, and the waterfall is not changed. At wide spans, where the comb isn't resolved, it does nothing. | | **FFT Line** | Off–5.0 px, default 1.0 px | Trace thickness, with its own colour button. | | **FFT Fill** | 0–100, default 70 | Fill opacity under the trace, with its own colour button. | | **FFT Floor** + **Auto** | 1–99, default 75 | With **Auto** on, the dBm scale follows the noise floor and keeps it at this height (% from top). Off by default. | diff --git a/docs/user/versioned_docs/version-stable/peripherals.md b/docs/user/versioned_docs/version-stable/peripherals.md index 0411d50d36..644cec87cc 100644 --- a/docs/user/versioned_docs/version-stable/peripherals.md +++ b/docs/user/versioned_docs/version-stable/peripherals.md @@ -29,6 +29,14 @@ The **Devices** list sits on the left and the selected device's settings on the right. Each row shows the device name, its address, and where its data is coming from: +Peripherals page. The Devices list is empty, with Add and a dimmed Remove button below it, a Reconnect automatically checkbox and a Connection Help button. The right side reads No peripherals added. Choose Add to configure a device. + +*Radio Setup, Peripherals page, before any device is added.* + +Peripherals Add menu: Tuner Genius XL, Power Genius XL, Antenna Genius, ShackSwitch, ACOM Amplifier, SPE Expert Amplifier, VK3AMP Amplifier, Elecraft KPA1500 and LP-100A Meter. + +*The Add menu on the Peripherals page: every device type AetherSDR can configure.* + | Word | Meaning | |---|---| | `● DIRECT` | Connected directly to the device | diff --git a/docs/user/versioned_docs/version-stable/profile-management.md b/docs/user/versioned_docs/version-stable/profile-management.md index 6967b01ffc..bb6da12baa 100644 --- a/docs/user/versioned_docs/version-stable/profile-management.md +++ b/docs/user/versioned_docs/version-stable/profile-management.md @@ -49,6 +49,10 @@ Mic input settings: source, gain, bias, boost and compander level. Useful when y On each profile tab: +Profile Manager window with tabs Global, Transmit, Microphone and Auto-Save, on Global. A New Profile Name field sits above Load, Save and Delete buttons, and a list of the radio's global profiles: 20m CW, 20m Phone, 40m Phone, 80m Phone, BCSO, macOS_default_Profile, NIRG, SO2RDefault and VHF. A Close button sits at the bottom. + +*The Profile Manager, listing the global profiles stored in the radio.* + - **New Profile Name**: type a name for a new profile - **Load** (or double-click): apply the selected profile - **Save** (Global tab): save the current state to the selected profile, or to a new one using the name field @@ -69,6 +73,10 @@ The **PROF** applet ("Profile Switcher", in the Station group of the applet butt **Profiles → Import/Export Profiles...** moves profile libraries between radios, and between SmartSDR for Windows and AetherSDR, using SmartSDR-compatible `.ssdr_cfg` backup packages. **Both directions are carried out by the radio**; AetherSDR transfers the package but never edits its contents. +Import/Export Profiles window on the Export tab. A note explains that export is radio-driven. Radio Database Categories has Select All and checkboxes for Global Profiles, TX Profiles and MIC Profiles (ticked), and Memories, Preferences, TNF, XVTR and USB Cables. The Destination field is blacked out beside Browse…, with an Export button below, a status line, a 0% progress bar and Cancel and Close buttons. + +*The Import/Export Profiles window, on the Export tab. The destination path is blacked out.* + ### Export 1. On the **Export** tab, tick the **Radio Database Categories** to include: Global Profiles, TX Profiles and MIC Profiles (ticked by default), Memories, Preferences, TNF, XVTR and USB Cables. **Select All** ticks everything. diff --git a/docs/user/versioned_docs/version-stable/psk-reporter-map.md b/docs/user/versioned_docs/version-stable/psk-reporter-map.md index 2608568143..61c026a562 100644 --- a/docs/user/versioned_docs/version-stable/psk-reporter-map.md +++ b/docs/user/versioned_docs/version-stable/psk-reporter-map.md @@ -1,14 +1,16 @@ --- -title: "PSK Reporter Map" +title: "AetherMap" slug: "/psk-reporter-map" -description: "The PSK Reporter map shows who is hearing your signal, and who you are hearing, using live reports from PSK Reporter." +description: "AetherMap, the PSK Reporter map, shows who is hearing your signal, and who you are hearing, using live reports from PSK Reporter." --- -The PSK Reporter map shows who is hearing your signal, and who you are hearing, using live reports from [PSK Reporter](https://pskreporter.info/). Reports are drawn on an OpenStreetMap world map or a 3D globe, coloured by mode, with optional great-circle paths, a day/night terminator, NASA night lights and weather radar. The same window also has a one-shot **WSPR beacon**. +AetherMap, the PSK Reporter map, shows who is hearing your signal, and who you are hearing, using live reports from [PSK Reporter](https://pskreporter.info/). Reports are drawn on an OpenStreetMap world map or a 3D globe, coloured by mode, with optional great-circle paths, a day/night terminator, NASA night lights and weather radar. The same window also has a one-shot **WSPR beacon**. ## Setup -Open the map from **Tools → PSK Reporter…** Type your callsign in **Call:** to see who is hearing you and who you are hearing. +Open the map from **Tools → AetherMap…** Type your callsign in **Call:** to see who is hearing you and who you are hearing. + +The window has no title bar. Drag any empty part of it to move it, and drag an edge or corner to resize it. Close it with the round **✕** in the top-right corner, **Esc** or **Ctrl+W** (**⌘W** on macOS). It's a window of its own, with its own taskbar entry, so you can minimise it from the taskbar or park it on another monitor. **View → Frameless Window** does not apply to it. However you close it, the map stops fetching reports and weather radar, and a WSPR beacon that is armed or transmitting is cancelled. ## Using the map @@ -16,6 +18,10 @@ Open the map from **Tools → PSK Reporter…** Type your callsign in **Call:** The **Reports** group at the top of the left sidebar chooses what is shown: +AetherMap sidebar. WSPR beacon: TX call KK7GWY, Grid (blacked out), Band 20m, Reported 30 dBm, Offset 1500.0 Hz, Level -20 dBFS, a Transmit once button and an Idle status. Reports: Call KK7GWY, Band All, Mode All, Lookback 1 hour, All Callsigns unticked and Active monitors ticked. Band conditions: 80-40m Good, 30-20m Good, 17-15m Fair, 12-10m Poor. Map: Globe, Paths, Day/night (ticked), Dark map and a Map brightness slider at 100%, then City lights. + +*AetherMap's sidebar: WSPR beacon, report filters, band conditions and map options. The grid square is blacked out.* + | Control | What it does | |---|---| | **Call:** | A callsign whose sent and received reports you want to see (normally your own) | diff --git a/docs/user/versioned_docs/version-stable/rade-digital-voice.md b/docs/user/versioned_docs/version-stable/rade-digital-voice.md index 8da13be6f6..106404fa1c 100644 --- a/docs/user/versioned_docs/version-stable/rade-digital-voice.md +++ b/docs/user/versioned_docs/version-stable/rade-digital-voice.md @@ -46,6 +46,10 @@ You can also start RADE from **Tools → FreeDV Reporter...**: double-clicking a While RADE is active, the VFO flag shows: +VFO flag in RADE mode. A RADE label with a hollow sync dot sits left of the frequency 14.250.000, with --- below it in place of the SNR, a 1.5K filter width, and the mode tab reading DIGU. + +*A slice in RADE, before any RADE signal is decoded: the sync dot is hollow and the SNR reads ---.* + - a **RADE** badge with a sync LED next to the frequency — **green ●** when the modem is synchronised, grey ○ when it is not; - a **RADE info row** below the frequency with the far-end **callsign** (when received), the decoded **SNR** and the **frequency offset**. diff --git a/docs/user/versioned_docs/version-stable/radio-setup.md b/docs/user/versioned_docs/version-stable/radio-setup.md index f7666c94b0..6c958b9cc4 100644 --- a/docs/user/versioned_docs/version-stable/radio-setup.md +++ b/docs/user/versioned_docs/version-stable/radio-setup.md @@ -8,9 +8,9 @@ Radio Setup holds the radio's configuration and most of AetherSDR's own preferen Which pages appear depends on the connected radio: pages for hardware the radio does not have are hidden. -![Radio Setup window. A search settings box spans the top. The left tree lists the sections RADIO (Radio, Network), RECEIVE & TRANSMIT (Audio, Transmit, Phone & CW, Receive) and CONTROLLERS & HARDWARE (Antennas, Transverters, USB Cables, Peripherals), with Radio selected. The Radio page on the right shows Radio Information (serial DEMO-0001, hardware version, options, a Reboot Radio button, region and Remote On) and Radio Identification (model AetherSDR Demo, callsign DEMO, nickname and station name).](/img/screens/radio-setup.png) +Radio Setup window. A Search settings box spans the top. The left tree lists RADIO (Radio, Network, GPS), RECEIVE & TRANSMIT (Audio, Transmit, Phone & CW, Receive, Filters) and CONTROLLERS & HARDWARE (Antennas, Transverters), with Radio selected. The Radio page shows Radio Information (serial blacked out, HW version v4.2.20.41343, options GPS, a Reboot Radio button, region USA, Remote On disabled, FlexControl and multiFLEX enabled), Radio Identification (model FLEX-8600, callsign KK7GWY, nickname FLX8600, station name blacked out), License Info (SmartSDR+ Early Access subscription, its expiration date, radio ID blacked out, licensed version v4) and Firmware Update (FW version 4.2.20.41343, with Check for Update, Select Installer and a dimmed Upload Firmware button). -*Radio Setup, open on the Radio page. The settings tree on the left groups the pages; the search box at the top finds any setting.* +*Radio Setup, open on the Radio page. The settings tree on the left groups the pages; the search box at the top finds any setting. The serial number, radio ID and station name are blacked out here.* ## Setup @@ -29,6 +29,10 @@ Several menu items open Radio Setup straight at the right page: Radio Setup is a searchable browser: a categorised tree of pages on the left and the selected page on the right. +Radio Setup with latency typed in the search box. The left tree now shows only RECEIVE & TRANSMIT with the Audio page under it, while the right side still shows the Radio page, with the serial number, radio ID and station name blacked out. + +*Typing in the search box filters the page list: here, latency matches the Audio page.* + - **Search settings** (Ctrl+F, ⌘F on macOS) filters the tree as you type. It matches page names and also common symptom words. Try *latency*, *ptt*, *calibration* or *certificate*. Press Enter to jump to the first match. - Pages for hardware the connected radio does not have are hidden. Individual controls a radio cannot use stay visible but dimmed, with the reason in the tooltip. @@ -40,7 +44,7 @@ Radio Setup is a searchable browser: a categorised tree of pages on the left and |------|----------------| | **Radio** | Radio information (serial, hardware version, region, options), identification (model, nickname, callsign), license info and [Firmware Update](./firmware-update.md) | | **Network** | The radio's IP address, mask, MAC and gateway; DHCP/static IP configuration; **Advanced**: Enforce Private IP Connections, **Agent Automation (MCP)** (see [Automation Bridge and MCP](./automation-bridge-and-mcp.md)), Network MTU and the VITA-49 RX buffer (see [Low Bandwidth Connections](./low-bandwidth-connections.md)) | -| **GPS** | Whether a GPS is installed, position, grid, altitude, satellites and lock status. The full dashboard is **Tools → GPS Dashboard...**. See [AetherClock and GPS](./aetherclock-and-gps.md). Hidden on radios without GPS hardware. | +| **GPS** | Whether a GPS is installed, position, grid, altitude, satellites and lock status. The full dashboard is **Tools → AetherGPS...**. See [AetherClock and GPS](./aetherclock-and-gps.md). Hidden on radios without GPS hardware. | | **Calibration** | Host-side frequency calibration in ppb, for radios that cannot calibrate themselves ([Hermes-Lite 2](./hermes-lite-2.md)). Hidden on FlexRadio, which calibrates on the Receive page. | | **RTL Receiver** | ppm correction, IQ DC suppression and serial for an [RTL-SDR](./rtl-sdr.md) dongle. Only when one is connected. | | **HL2 Hardware** | Board variant, dither, companion filter board, CL1 external 10 MHz reference and tuner for the [Hermes-Lite 2](./hermes-lite-2.md). Only when an HL2 is connected. | diff --git a/docs/user/versioned_docs/version-stable/rtl-sdr.md b/docs/user/versioned_docs/version-stable/rtl-sdr.md index 2609883642..7ac1521de4 100644 --- a/docs/user/versioned_docs/version-stable/rtl-sdr.md +++ b/docs/user/versioned_docs/version-stable/rtl-sdr.md @@ -14,17 +14,9 @@ applies_to: ["RTL-SDR"] AetherSDR can use an RTL-SDR USB dongle as a receiver. Support is **experimental and receive-only**: one slice on one panadapter, demodulated on this computer. FlexRadio remains the supported target (see [Supported Radios](./supported-radios.md)). -## Where to go next - -- [Panadapter Controls](./panadapter-controls.md): FFT AVG, Black Level and NB Blank on the dongle's panadapter. -- [RX Controls](./rx-controls.md): modes, filters and squelch. -- [DSP Noise Mitigation](./dsp-noise-mitigation.md): client-side noise reduction. -- [Memory Channels](./memory-channels.md): stored on this computer. -- [Building from Source](./building-from-source.md): building with the RTL-SDR backend. - ## Requirements -The RTL-SDR backend is built only when the `librtlsdr` library is available, so whether your copy of AetherSDR has it depends on the package. If **Connect by IP → Radio type:** has no **RTL-SDR (USB)** entry, and no dongle ever appears in the radio list, your build does not include it. The Windows installer is built without it ([#5800](https://github.com/aethersdr/AetherSDR/issues/5800)). +Official AppImage, macOS DMG and Windows release packages require the RTL-SDR backend and bundle its RTL-SDR, USB and FFTW libraries. A developer build can omit it. If **Connect by IP → Radio type:** has no **RTL-SDR (USB)** entry, and no dongle ever appears in the radio list, your build does not include it. Packaging does not install a USB driver or Linux device-access rules. Building from source: the `ENABLE_RTL` option is on by default and takes effect when both `librtlsdr` and single-precision FFTW (`fftw3f`) are found. See [Building from Source](./building-from-source.md). @@ -41,12 +33,32 @@ Building from source: the `ENABLE_RTL` option is on by default and takes effect - **Sample rates** up to 3.0 MS/s; 2.4 MS/s is the default. - **Browsing the capture:** pan around the captured bandwidth and your slice keeps its frequency and settings. A slice that falls outside the usable capture is parked (silent) and resumes when it fits again. - **Zoom** uses a continuous 65,536-point FFT, which gives 36.6 Hz bins at 2.4 MS/s. -- **FM and FM-N** have symmetric filters, 48 kHz audio and their own squelch. Squelch exists only in FM and FM-N; its level is a signal-level gate in dBFS per bin, not calibrated dBm. +- **FM and FM-N** have symmetric filters, 48 kHz audio and their own squelch. Squelch exists only in FM and FM-N; its manual threshold is a signal-level gate in dBFS per 2048-point detector bin, not calibrated dBm. **AUTO** follows a nearby noise estimate inside each receiver, independently of display zoom and FFT averaging. Its margin is 5–20 dB (default 10 dB). The SQL threshold line is not drawn against the differently scaled display FFT. - **Confirmed settings:** a change is shown only after the dongle confirms it, so a refused setting never becomes a saved one. - Manual **Black Level**, waterfall **NB Blank** and **FFT AVG** work on the panadapter. See [Panadapter Controls](./panadapter-controls.md). - **Tools → Radio Health...** shows the dongle's status. -Only one receiver is available, even though the capture is wide. +Normal launches admit **one receiver**, even though the capture is wide. + +### Broadcast FM + +Select **WFM** to use the **Broadcast FM** applet. It shows the selected slice letter and confirmed frequency. **Mono / Auto Stereo**, **De-emphasis** (50 or 75 µs) and **Bandwidth** belong to that receiver. **Auto Stereo** falls back to mono without a detected stereo pilot. The observed pilot status is separate from your selected audio mode; parking clears observations while retaining the controls. + +### Receive meters + +The RTL receive meter reports relative RF peak-bin level in **dBFS**, not calibrated antenna dBm or audio level. **Settings → Radio Setup... → RTL Receiver → Enable receive meters** turns these updates on or off. Turning them off clears the readout; reception, squelch and audio continue. + +### Sending receive audio to another program + +Use the [TCI Server](./tci-server.md) on Linux, macOS or Windows. On Linux and macOS, [DAX Virtual Audio](./dax-virtual-audio.md) can also export receive audio when the build includes WebSockets support. DAX input 1 follows TCI receiver 0, and the applet shows its slice assignment. Linux DAX is mono; macOS DAX and stereo TCI retain left and right WFM audio. Speaker volume and mute do not change either export; receiver squelch still applies. + +[AetherModem](./aethermodem-packet-radio.md) can decode packets from the selected RTL slice. For VHF APRS, choose **FM** or **FM-N** and **1200 baud**. The modem follows slice selection; it has no fixed-source selector or APRS-IS gateway. + +### Multi-receiver evaluation + +The process-only evaluation setting admits 2, 4 or 8 receivers on Linux x86-64, Windows x64 and macOS arm64. It requires both `AETHER_AUTOMATION=1` and `AETHER_RTL_EVALUATION_RECEIVERS=2`, `4` or `8` at launch; it is not saved and cannot resize a running session. Use an isolated settings profile for evaluation. It does **not** change the one-receiver production limit or qualify a platform for sustained multi-receiver use. + +FM, FM-N and analog WFM can share the capture in this evaluation. Each receiver retains its frequency, filter, squelch and audio controls when parked. Selecting another slice does not retune the capture or change its audio settings. AM, SAM, USB, LSB, CW and CW-R remain singleton configurations, even if another configured receiver is parked. See the [evaluation procedure](https://github.com/aethersdr/AetherSDR/blob/main/docs/rtl-multirx-analog.md) for the validation boundaries. ## Reference @@ -58,6 +70,7 @@ Only one receiver is available, even though the capture is wide. |---------|-----| | **Frequency correction:** | Your dongle's crystal error in ppm (−1000 to +1000). Click **Apply frequency correction** to send it. | | **Suppress IQ DC** | Removes the spike at the centre of the capture. Off by default. | +| **Enable receive meters** | Enables relative RF meter updates. On by default. | | **Device serial** | The serial number the dongle reports. | The page shows the values the dongle actually applied and whether they were saved. Corrections are saved per dongle serial number. A dongle that reports no serial keeps its corrections for the current session only. @@ -71,8 +84,8 @@ Frequency, mode, passband, sample rate and RF gain are saved per dongle, keyed b ### Not available on an RTL-SDR - Transmit. -- DAX, SmartLink or Multi-Flex. -- More than one slice or panadapter. +- DAX transmit, DAX IQ, SmartLink or Multi-Flex. +- More than one receiver in a normal launch, or more than one panadapter. ## Known issues @@ -111,6 +124,10 @@ The dongle's crystal is off. ## See also +- [RX Controls](./rx-controls.md) +- [DAX Virtual Audio](./dax-virtual-audio.md) +- [TCI Server](./tci-server.md) +- [AetherModem Packet Radio](./aethermodem-packet-radio.md) - [Supported Radios](./supported-radios.md) - [Building from Source](./building-from-source.md) - [Panadapter Controls](./panadapter-controls.md) diff --git a/docs/user/versioned_docs/version-stable/rtty-operation.md b/docs/user/versioned_docs/version-stable/rtty-operation.md index b6d1913b88..c9be88a207 100644 --- a/docs/user/versioned_docs/version-stable/rtty-operation.md +++ b/docs/user/versioned_docs/version-stable/rtty-operation.md @@ -40,6 +40,10 @@ When you switch to RTTY mode, AetherSDR displays two dashed vertical lines on th When you tune to an RTTY signal, position the two dashed lines so that the Mark line sits on the higher-frequency tone and the Space line sits on the lower-frequency tone. When both tones fall on their respective lines, the signal is properly tuned and can be decoded. +Panadapter zoomed to a few kilohertz in RTTY mode. A shaded passband holds a dashed red line marked S and a dashed green line marked M, 170 Hz apart, beside the VFO flag reading 14.083.500 in RTTY mode. + +*RTTY mode on a narrow span: the red S (space) and green M (mark) lines sit inside the passband.* + ``` Panadapter view (RTTY mode): @@ -64,6 +68,10 @@ When the selected slice is in **RTTY**, a decoder pane opens below the waterfall The stats bar updates about twice a second with the mark and space levels, the SNR and **LOCKED** / **UNLOCK**. Mark, Shift, Baud, REV and Sens are remembered. +The bottom of a zoomed panadapter in RTTY mode. Under the waterfall, the decoder pane's control row reads RTTY, (selected slice), Mark: Auto, Shift: 170, Baud: 45.45, a REV button, a Sens slider, a green tuning bar with a lock status, and CPY ALL, CLR and close buttons, above an empty text area. + +*The RTTY decoder pane under the waterfall.* + #### Which audio is decoded Like the [CW Decoder](./cw-decoder.md), the RTTY decoder follows the **selected slice**. On a FlexRadio, assign a **DAX RX channel** to that slice and the decoder reads it alone, regardless of speaker gain, mute or other slices. Without one it uses the shared receive audio and shows **RX: shared audio**. diff --git a/docs/user/versioned_docs/version-stable/runtime-monitor.md b/docs/user/versioned_docs/version-stable/runtime-monitor.md index bef3aa63bb..fcb7330d81 100644 --- a/docs/user/versioned_docs/version-stable/runtime-monitor.md +++ b/docs/user/versioned_docs/version-stable/runtime-monitor.md @@ -18,6 +18,10 @@ A **Timeframe** selector in the window header (1 minute, 5 minutes (default), 15 Four cards across the top, each with a chart below: +Runtime Monitor window on the Overview tab, with a 5 minutes timeframe. Four summary cards show CPU Total, Max Thread, Memory and GUI Tick Lag. Below are line charts of CPU (process and busiest thread), Memory (resident and peak), Top threads and GUI tick lag, each over the last 5 minutes. + +*The Runtime Monitor's Overview tab after a few minutes of running.* + | Card | Meaning | |------|---------| | **CPU Total** | AetherSDR's share of the whole machine | @@ -35,6 +39,10 @@ A live table of every AetherSDR thread with **Thread**, **TID**, **State**, **CP Windows does not report per-thread state, so the State column shows a dash there. +Runtime Monitor window on the Threads tab. A summary line gives the thread count and the busiest thread. The table lists threads with columns Thread, TID, State, CPU %, Peak 60 s, Total CPU (s) and a sparkline, led by AetherSDR, SystemInfoCollector, AudioEngine, PanadapterStream and several data-loop threads. + +*The Runtime Monitor's Threads tab: every thread with its CPU use.* + ### Memory Resident, peak resident, private memory and virtual address space, with a chart of resident, private and peak memory over the timeframe. Virtual address space is reserved space, not memory in use, so a large figure there is normal. Click a legend entry to show one series alone. @@ -67,6 +75,10 @@ Radio Health is a different thing from the **HLTH** (Antenna Health) applet, whi Pages are grouped in a tree on the left: +Network Diagnostics window. A sidebar lists Status (Overview, Connection Details), Trends (Latency & Jitter, Stream Rates, Packet Loss, Audio Health) and Support (Application Logs, TCI Clients). The Overview page shows cards for Status Excellent, Latency in ms, Packet Loss 0.00% and Audio Buffer, above charts of Latency and Jitter, Recent Packet Loss, Total Stream Rates and RX Audio Timing over the last minute. + +*Network Diagnostics, Overview page, on a local-network connection.* + | Group | Pages | |-------|-------| | **STATUS** | **Overview** (status, latency, packet loss and audio-buffer cards with summary charts), **Connection Details** | diff --git a/docs/user/versioned_docs/version-stable/rx-controls.md b/docs/user/versioned_docs/version-stable/rx-controls.md index 9a32e16426..a3aa90f421 100644 --- a/docs/user/versioned_docs/version-stable/rx-controls.md +++ b/docs/user/versioned_docs/version-stable/rx-controls.md @@ -14,7 +14,7 @@ Most of this page describes a FlexRadio. On other radio families, controls the radio cannot honour are dimmed with the reason in their tooltip, or refuse with a notice; see [Using the controls on other radios](#using-the-controls-on-other-radios) below. -![RX Controls applet. It shows the slice letter A with a lock button, RX antenna ANT1 and TX antenna ANT1, filter width 2.8K, a TX button, the mode selector set to USB and the frequency 14.100.000. Below are the tuning step selector set to 100, filter preset buttons from 1.8K to 3.3K with 2.7K selected, a filter passband graphic from 100 to 2900 Hz, and sliders for AF gain, pan, squelch and AGC with AGC set to Med, plus RIT and XIT offsets.](/img/screens/rx-applet.png) +RX Controls applet. The top row shows the slice buttons A (lit), B, C and D, a lock button, RX antenna ANT1, TX antenna ANT1 and filter width 2.7K. Below are a red TX badge, the mode selector set to USB and the frequency 14.250.000, then the tuning step selector at 500 and the AF gain and pan sliders, filter preset buttons 1.8K, 2.1K, 2.4K, 2.7K (lit), 2.9K and 3.3K beside the SQL and AGC (Med) controls, a passband graphic reading 100, 2.7K and 2800, and RIT and XIT offsets of +0 Hz. *The RX Controls applet for the active slice.* @@ -102,18 +102,24 @@ The **SQL** button cycles through three states: own scale. On radios where Auto SQL is not available, a slice set to AUTO drops to manual at its manual level. -> **Upgrading from an older version:** AetherSDR no longer saves the squelch -> level between sessions. On connect, each slice uses the level the radio -> reports. +On RTL-SDR FM/FM-N, **AUTO** uses each receiver's own detector noise estimate, independently of panadapter zoom, FFT averaging or whether the applet is visible. Manual SQL uses dBFS per 2048-point detector bin; its threshold line is suppressed because the display FFT has a different scale. Manual and Auto settings are saved per RTL receiver, and Auto does not overwrite the manual threshold. WFM does not expose this FM/FM-N squelch control. + +> **Upgrading from an older version:** FlexRadio squelch levels come from the radio at connection. For RTL-SDR, explicitly choose **AUTO** after upgrading to enable the receiver-owned Auto policy; an older display-Auto preference does not enable it. ### AGC +AGC-T Calibration window. The heading reads AGC: MED, finding the knee (agc_threshold) just above the noise floor, with a warning that a signal is in the passband and you should tune to a clear spot. An empty plot with an AGC-T axis from 0 to 100 and a dashed marker fills the centre, above Auto Sweep and Apply buttons and a hint: tune to a clear spot, then Auto Sweep, or move the AGC-T slider and watch where the noise bends. + +*The AGC-T Calibration window.* + - **Mode** — Off, Slow, Med, Fast - **AGC-T slider** — the AGC threshold **AGC-T calibration:** right-click the AGC-T slider, or use **Tools → Calibrate AGC-T...**, to calibrate the threshold against the measured noise floor on the active slice. It does not transmit. +Close the window with the corner ✕, Esc or Ctrl+W; closing it during +an Auto Sweep stops the sweep and puts back the AGC-T it started from. On the Hermes-Lite 2, AGC runs on the computer: with AGC **Off**, the AGC-T slider sets a fixed gain (4–64 dB, default 10 dB) remembered per receiver, and diff --git a/docs/user/versioned_docs/version-stable/settings-and-backups.md b/docs/user/versioned_docs/version-stable/settings-and-backups.md index 61759b0c1a..8fef1429a9 100644 --- a/docs/user/versioned_docs/version-stable/settings-and-backups.md +++ b/docs/user/versioned_docs/version-stable/settings-and-backups.md @@ -74,6 +74,10 @@ Radio-specific state for radios that do not remember it themselves (for example **Settings → Settings Browser...** lets you look through and edit the whole store from inside the app. +Settings Browser window. An amber warning reads Advanced, edits apply immediately and bypass each feature's own validation. The left list holds App Settings (selected) and Station: AetherSDR. The right side has a filter box containing Spot and a Key and Value table with IsSpotsEnabled True, PassiveSpotsMode False, SpotFontSize 16 and SpotsMaxLevel 3. Add Key…, Delete, Refresh, Export Sanitized… and Close buttons run along the bottom. + +*The Settings Browser, filtered to keys that contain Spot.* + - The left tree lists the scopes: **App Settings**, the **Station** section, and under **Radios** each radio's stored feature documents. - **Filter keys and values...** narrows the table as you type (case-insensitive). - **Add Key...**, **Delete**, **Refresh** and **Export Sanitized...** sit below the table. diff --git a/docs/user/versioned_docs/version-stable/slice-colors.md b/docs/user/versioned_docs/version-stable/slice-colors.md index a957485eed..2e3e29115f 100644 --- a/docs/user/versioned_docs/version-stable/slice-colors.md +++ b/docs/user/versioned_docs/version-stable/slice-colors.md @@ -10,6 +10,10 @@ Each slice (A–H) has its own colour, used for its frequency marker, filter pas Open **Settings → Radio Setup... → Appearance & Behavior** and find the **Slice Colors** group: +Appearance & Behavior page. Slice Letter Display offers Global slot index (selected) or Radio-assigned letter with global subscript. Slice Colors offers Use Aether defaults or Custom colors (selected), with eight colour buttons A to H in cyan, magenta, green, yellow, orange, teal, pink and purple and a Reset All to Defaults button. Further down, Single-click delay is 400 ms with a Reset button, and Mouse wheel has a Reverse mouse-wheel tuning direction checkbox. + +*Radio Setup, Appearance & Behavior page with Custom colors chosen, so each slice letter's colour can be changed.* + 1. Choose **Custom colors** (instead of **Use Aether defaults**). 2. Click a slice button (**A**–**H**) to open a colour picker, and choose a colour. 3. The change applies immediately everywhere that slice is drawn. diff --git a/docs/user/versioned_docs/version-stable/smartlink-setup.md b/docs/user/versioned_docs/version-stable/smartlink-setup.md index 21382b9db0..5a26327043 100644 --- a/docs/user/versioned_docs/version-stable/smartlink-setup.md +++ b/docs/user/versioned_docs/version-stable/smartlink-setup.md @@ -36,6 +36,10 @@ At the station, using SmartSDR for Windows: ## Connecting with SmartLink +Connect to Radio window with the Remote with SmartLink card selected. The SmartLink account group has empty Email and Password fields and a Sign In button, with the note Sign in to see radios at remote stations. The Remote radios group reads Remote radios appear here after SmartLink sign-in. Connection options for slower links with Use low bandwidth mode sits below. + +*The Remote with SmartLink card, before signing in.* + 1. Open the connect panel (**File → Connect to Radio...**, or the **+** on the title bar's radio tabs). 2. Choose **Remote with SmartLink**. 3. In **SmartLink account**, enter your FlexRadio account email and password and click **Sign In**. diff --git a/docs/user/versioned_docs/version-stable/split-operation.md b/docs/user/versioned_docs/version-stable/split-operation.md index c7bf4dac04..9c489952a3 100644 --- a/docs/user/versioned_docs/version-stable/split-operation.md +++ b/docs/user/versioned_docs/version-stable/split-operation.md @@ -21,6 +21,10 @@ panadapter. ### Starting and ending a split +Two VFO flags on one panadapter. Slice A at 14.250.000 has a red SPLIT badge and a dimmed TX badge. Slice B at 14.255.000, 5 kHz up, has a SWAP badge, the red TX badge and a magenta B, with its own magenta marker line in the spectrum. + +*A split pair: the receive slice's SPLIT badge turns red and the new transmit slice shows SWAP and TX.* + 1. On the slice you are listening with, click **SPLIT** on its VFO flag. 2. AetherSDR makes that slice the **receive** slice and creates a **transmit** slice on the same panadapter, **1 kHz up in CW** and **5 kHz up** in other @@ -43,6 +47,10 @@ partner (see [Diversity and ESC](./diversity-and-esc.md)). **Right-click either badge** (SPLIT or SWAP) for the controls that go with split operation. +SPLIT badge context menu: Split Up 1 kHz, Split Up 5 kHz, Split Up 10 kHz, Split QSY Option (submenu), Monitor TX (submenu), Nothing remembered yet and Forget remembered audio. + +*Right-clicking the SPLIT badge: preset offsets and the split options.* + #### Split Up 1 / 5 / 10 kHz Moves the transmit slice that far above the receive slice. The receive diff --git a/docs/user/versioned_docs/version-stable/spothub.md b/docs/user/versioned_docs/version-stable/spothub.md index a91ecd8150..aafa428f90 100644 --- a/docs/user/versioned_docs/version-stable/spothub.md +++ b/docs/user/versioned_docs/version-stable/spothub.md @@ -16,7 +16,7 @@ SpotHub is AetherSDR's spot manager. It gathers spots from DX clusters, the Reve All spot sources run on a worker thread, and spots are forwarded to the radio in batches once a second. -![SpotHub window with tabs Cluster, RBN, WSJT-X, SpotCollector, POTA, EiBi, N1MM, FreeDV and Spot List, with Cluster selected. The Connection group has Server, Port and Callsign fields, Auto-Connect and Startup Commands buttons, a Disconnected status and a Connect button. Below is an empty Cluster Console with a spot colour swatch, and a command field with Send and Clear buttons.](/img/screens/spothub.png) +SpotHub window with tabs Cluster, RBN, WSJT-X, SpotCollector, POTA, EiBi, N1MM, FreeDV and Spot List, with Cluster selected. The Connection group has Server dxc.nc7j.com, Port 7300, an empty Callsign field, Auto-Connect: OFF, Startup Commands… and Hide Unverified: OFF buttons, a Disconnected status and a Connect button. Below is an empty Cluster Console with a spot colour swatch, and a command field with Send and Clear buttons. *SpotHub, open on the Cluster tab. Each tab is one spot source.* @@ -32,14 +32,17 @@ Every source tab has an **Auto-Start** (or **Auto-Connect**) toggle that starts ### Cluster (DX Cluster) -Connects to a DX cluster node over telnet (DX Spider, AR-Cluster, CC Cluster). +Connects to a DX cluster node over telnet (DX Spider, AR-Cluster, CC Cluster, GoCluster). - **Server / Port / Callsign** — default `dxc.nc7j.com:7300` - **Auto-Connect** — connect when the radio connects - **Startup Commands…** — cluster commands sent automatically after every login, one per line (for example `SET/NAME`, `SET/QTH`, `ACCEPT/SPOT`) +- **Hide Unverified** — on a GoCluster node, hides spots whose callsign GoCluster tags `?` (little supporting evidence, often a busted call). It applies to spots that arrive after you switch it on, without reconnecting; spots already listed stay until they expire. Other servers send no confidence tag, so it has no effect on them - **Cluster Console** — live output with a command line (`sh/dx 20`, `set/filter`, `bye` …) - **Spot Color** — default tan +On a GoCluster node, AetherSDR recognises the server from its login banner and removes the grid, confidence and path symbols from the end of each spot, so the comment reads `FT8 -12 dB` rather than `FT8 -12 dB > FN31 V`. The console still shows the full line. A node whose operator has removed "GoCluster" from the banner keeps those symbols in the comment. + ### RBN (Reverse Beacon Network) Skimmer spots from the Reverse Beacon Network, over the same telnet protocol. @@ -47,7 +50,7 @@ Skimmer spots from the Reverse Beacon Network, over the same telnet protocol. - **Server / Port** — default `telnet.reversebeacon.net:7000` - **Callsign** — falls back to the cluster callsign when empty - **Rate Limit** — maximum spots per second sent to the radio (default 10), so contests don't flood the display. Extra spots are queued for the next batch. -- **Startup Commands…**, **Auto-Connect**, **RBN Console** and **Spot Color** (default blue) as on the Cluster tab +- **Startup Commands…**, **Auto-Connect**, **Hide Unverified**, **RBN Console** and **Spot Color** (default blue) as on the Cluster tab ### WSJT-X (decode spotter) @@ -146,6 +149,10 @@ A sortable table of every spot from every source. Controls how spots look on the panadapter. A row of toggle buttons sits at the top: +SpotHub window on the Display tab. Toggle buttons across the top read Spots, Passive, Memories, Kiwi DX, Auto, Signals, QRM and Clear All. Sliders set Levels, Position, Font Size and Spot Lifetime, followed by Override Colors, Override Background, Background Opacity, Spot Lines and a Total Spots count. DXCC Coloring and Signal History groups sit side by side at the bottom. + +*SpotHub's Display tab: how spots are drawn on the panadapter.* + ``` [Spots] [Passive] [Memories] [Kiwi DX] [Auto] [Signals] [QRM] [Clear All] ``` @@ -221,6 +228,10 @@ When more spots overlap than **Levels** allows, they collapse into an amber **+N ### Adding a spot by hand +Add Spot dialog: Frequency (MHz) 14.288000 MHz, an empty Callsign (required) field, an empty Optional comment field, Lifetime 30 minutes, a Forward to DX Cluster checkbox, unticked, and OK and Cancel buttons. + +*The Add Spot dialog, opened from the panadapter's right-click menu.* + 1. Right-click an empty part of the panadapter and choose **Add Spot at X.XXX MHz…** 2. Fill in **Frequency (MHz)** (pre-filled and snapped to the tuning step), **Callsign** (required), **Comment** (optional) and **Lifetime** (5 minutes to 2 hours). 3. Tick **Forward to DX Cluster** to send it to the connected cluster as a standard `DX` command. AetherSDR confirms when it forwards. @@ -263,6 +274,7 @@ Some useful setting keys, for the **Settings Browser** (**Settings → Settings | `SmartSpotFilterMatchHz` | `1000` | Smart Spot Filtering match window (Hz) | | `ManualSpotLifetime` | `1800` | Default lifetime of hand-added spots (s) | | `SpotForwardToCluster` | `False` | Forward hand-added spots to the cluster | +| `GoCluster` | `{}` | GoCluster options: `{"hideUnverified": {"cluster": false, "rbn": false}}` is **Hide Unverified** on the Cluster / RBN tab | ## Known issues @@ -310,7 +322,7 @@ The list is sorted by a column other than **Time**, which stops auto-scroll. - [Panadapter Controls](./panadapter-controls.md) - [WSJT-X Integration](./wsjt-x-integration.md) -- [PSK Reporter Map](./psk-reporter-map.md) +- [AetherMap](./psk-reporter-map.md) - [Callsign Lookup](./callsign-lookup.md) - [TCI Server](./tci-server.md) - [RADE Digital Voice](./rade-digital-voice.md) diff --git a/docs/user/versioned_docs/version-stable/support-and-logging.md b/docs/user/versioned_docs/version-stable/support-and-logging.md index 1e9b915c33..55deec0d48 100644 --- a/docs/user/versioned_docs/version-stable/support-and-logging.md +++ b/docs/user/versioned_docs/version-stable/support-and-logging.md @@ -12,13 +12,17 @@ When something isn't working, AetherSDR has several built-in tools for capturing - **Help → Slice Troubleshooting...**: a guided check for slice problems - **Tools → Runtime Monitor...**, **Tools → Network Diagnostics...** and **Tools → Radio Health...**: see [Runtime Monitor](./runtime-monitor.md) -Before you file a report, drop your log or support bundle on the [Log Analyzer](/log-analyzer). It checks for known problems and links the fix for each one it finds. It runs in your browser; the file is never uploaded. +Before you file a report, drop your log or support bundle on the [Log Analyzer](/log-analyzer). It checks for known problems and links the fix for each one it finds. It runs in your browser; the file is never uploaded. **Help → Log Analyzer** and the **Log Analyzer** button in **Help → Support & Diagnostics...** open it. -The Help menu also has **Getting Started...**, **AetherSDR Help...**, **What's New...**, three how-to guides (**Understanding Noise Cancellation...**, **Configuring AetherSDR Controls...**, **Configuring Data Modes...**), **AetherSDR Website**, **Donate to AetherSDR**, **Contributing to AetherSDR...**, **Check for Updates...** and **About AetherSDR**. On Windows and Linux the menus are behind the **☰** button at the left of the title bar; on macOS they are in the system menu bar. +The Help menu starts with **AetherSDR Documentation** (this site), **Printable Manual (PDF)** and **Log Analyzer**, which open in your browser. It also has **Getting Started...**, **AetherSDR Help...**, **What's New...**, three how-to guides (**Understanding Noise Cancellation...**, **Configuring AetherSDR Controls...**, **Configuring Data Modes...**), **AetherSDR Website**, **Donate to AetherSDR**, **Contributing to AetherSDR...**, **Check for Updates...** and **About AetherSDR**. On Windows and Linux the menus are behind the **☰** button at the left of the title bar; on macOS they are in the system menu bar. ## Using Support & Diagnostics -**Help → Support & Diagnostics...** has two parts. +**Help → Support & Diagnostics...** has two parts, followed by two buttons that open these docs in your browser: **Troubleshooting Guide** opens [Troubleshooting](./troubleshooting.md) and **Log Analyzer** opens the [Log Analyzer](/log-analyzer). + +Support & Diagnostics window. Diagnostic Logging lists modules in three columns with checkboxes, Discovery, Connection / Commands, Protocol / Status, Audio Summary, KiwiSDR and System Info ticked. Below are the log file path (blacked out) and size, a log tail, Refresh, Clear Log and Open Log Folder buttons, and four numbered steps for reporting an issue. + +*Support & Diagnostics: per-module diagnostic logging and the log file. The log path is blacked out.* ### Diagnostic Logging diff --git a/docs/user/versioned_docs/version-stable/tailscale-remote-access.md b/docs/user/versioned_docs/version-stable/tailscale-remote-access.md index 22dfa88542..c61b396065 100644 --- a/docs/user/versioned_docs/version-stable/tailscale-remote-access.md +++ b/docs/user/versioned_docs/version-stable/tailscale-remote-access.md @@ -112,6 +112,10 @@ accept shared routes automatically. Do this **at the station**, with AetherSDR connected to the radio over its local network. +Waveforms window. A Connected Radio card reads FLEX-8600 FLX8600 with its serial blacked out, beside WFP Support Supported, WFP Power ON, WFP Ready READY and WFP IP (blacked out). Radio Waveform Processor explains legacy and Docker waveform packages. Installed Waveforms has an Install... button and one entry, flex-tailnet-shim 0.4.0, with Docker, Configure..., Restart and Remove buttons. + +*The Waveforms window, listing the waveforms installed on the radio. The serial number and the waveform processor's address are blacked out.* + 1. Open **File → Waveforms…**. 2. Click **Install…** and choose **Remote Access (Tailscale)**. 3. AetherSDR downloads the container image (about 8 MB) and checks its @@ -134,6 +138,10 @@ container (see [RADE Digital Voice](./rade-digital-voice.md)). ## Part 4 — Join the radio to your tailnet +Remote Access window. The status line reads On your tailnet, container 0.4.0, 0 remote session(s), above an explanation of remote access over Tailscale. The Tailnet group shows the tailnet name and address (both blacked out) with a Copy button, Remote sessions 0 and Container version 0.4.0. Join your tailnet has an Auth key field (placeholder tskey-auth-...), Machine name flx8600, a Who may connect field (placeholder you@example.com, tag:operators), a note on single-use keys, and Save Access List and Change Key buttons. Station devices lists the devices found on the radio's network (blacked out) with a Share the devices found here over the tailnet checkbox, an Other devices field and Save Sharing. An amber note about the admin token and Refresh, Sign Out of Tailnet and Done buttons close the window. + +*The Remote Access window for the flex-tailnet-shim container. Tailnet names, addresses and station device addresses are blacked out.* + ### Create an auth key An **auth key** lets a device join your tailnet without anyone signing in @@ -203,16 +211,19 @@ their applets work remotely too. 1. In **Remote Access**, the **Station devices** card lists what it found. **Share the devices found here over the tailnet** is on by default. -2. To share other devices on the station network (for example an amplifier +2. Turning sharing off for a device, or removing it, ends any remote + connection to it at once. +3. To share other devices on the station network (for example an amplifier with a web page), list their LAN addresses in **OTHER DEVICES**, separated by commas, then click **Save Sharing**. -3. **Approve the routes once** in the admin console: **Machines →** the +4. **Approve the routes once** in the admin console: **Machines →** the radio **→ Subnets → Edit → Edit route settings**, tick the routes and **Save**. The window shows **Offered, not yet confirmed** until a remote connection actually travels through a route; after that it shows **Confirmed in use over the tailnet**. -4. Remotely, set each device's applet to its **LAN address** (for example - `192.168.1.40`), exactly as at home. See [Amplifiers](./amplifiers.md) and +5. Remotely, set each device's applet to its **LAN address** (for example + `192.168.1.40`), exactly as at home. **WHO MAY CONNECT** applies to the + devices as well as the radio (container 0.4.1 and later). See [Amplifiers](./amplifiers.md) and [TGXL Tuner Control](./tgxl-tuner-control.md). Remember `--accept-routes` on Linux computers (Part 2). @@ -238,7 +249,9 @@ session, and the radio sees an ordinary client. always wins. See [Audio Settings](./audio-settings.md). - **MTU.** The container sets the radio's network MTU to 1200 bytes for its sessions, so VITA-49 packets fit inside the WireGuard tunnel without - fragmenting. + fragmenting. AetherSDR asks for the same 1200 itself whenever this + computer or the radio has a Tailscale address, including a subnet router + in front of a radio that can't run the container. - **Measured on a relayed path** (both ends forced through a DERP relay): connection in under a second, a median round trip of 67 ms, and about 3.5 Mbit/s uncompressed or 1.9 Mbit/s with Opus. A direct path is faster. @@ -304,7 +317,21 @@ container. the tailnet (family, club members), list the people or tags who may operate. - The container checks every connection with Tailscale's identity service - (`WhoIs`) against that list before passing it to the radio. + (`WhoIs`) against that list before passing it to the radio or to a shared + station device. A file transfer's side channel is open only to the + computer that asked for the transfer. +- **Save Access List** takes effect at once. Anyone no longer on the list + is disconnected from the radio, which ends anything they were + transmitting, and their file transfers and station-device connections + are closed. (Container 0.4.1 and later.) +- Shared devices never reach the radio itself. A route wide enough to + include the radio's own address doesn't make the radio's ports reachable + through it. +- A discovered device is shared at the address its announcement came from, + not an address the announcement names. Discovery trusts the station LAN, + as the radio itself does: a computer there can still announce fake + devices, up to 16. If a real device is missing, list it under **OTHER + DEVICES**. - On the tailnet the container exposes only the radio's own ports, its forwarded side channels, shared station devices, and the diagnostics report. Its setup interface listens only on the radio's local network. diff --git a/docs/user/versioned_docs/version-stable/tci-server.md b/docs/user/versioned_docs/version-stable/tci-server.md index e376d51f76..b4d39de5a6 100644 --- a/docs/user/versioned_docs/version-stable/tci-server.md +++ b/docs/user/versioned_docs/version-stable/tci-server.md @@ -19,7 +19,7 @@ TCI was created by Expert Electronics for ExpertSDR3 and is now widely supported | Spots | Separate DX cluster connection | Same WebSocket | | CW keying | Serial DTR/RTS or rigctld | Same WebSocket | -![TCI Server applet. RX1 and TX level bars sit above the port field set to 50001, marked stopped, and a Disabled button that starts the server.](/img/screens/tci-applet.png) +TCI Server applet. Level bars for RX1, assigned to Slice A, RX2 to RX4, unassigned, and TX, assigned to Slice A, sit above the port field set to 50001, marked stopped, and a Disabled button that starts the server. *The TCI Server applet in the applet panel.* @@ -127,6 +127,7 @@ TCI audio is sent and received as binary frames on the same WebSocket. - **Audio doesn't flow until the client asks for it** with `audio_start:;`. - **PC Audio does not need to be on.** On a FlexRadio, TCI receive audio comes from DAX channels that the TCI server claims for itself; your speaker volume and mute don't affect it. On other radios it comes straight from the slice. +- RTL-SDR receive audio follows the stable receiver map and remains independent of speaker gain and mute; receiver squelch still applies. Normal launches offer one RTL receiver. Extra receivers belong to the [process-only evaluation](./rtl-sdr.md#multi-receiver-evaluation), not a higher production limit. RTL has no transmit or IQ export. - If a client reconnects more than 10 seconds later, its receive audio is re-bound to the right DAX channels automatically. - TX audio from a client is resampled from the rate the client declares, so 8, 12 and 24 kHz programs are not mis-pitched. @@ -188,6 +189,7 @@ Notes: - `volume` is in dB, as the spec defines it; the older percent form is still accepted. `mic_level` is a global 0–100 %. - The server also broadcasts which slice has focus in the GUI, plus DSP, squelch, RIT/XIT and TX power when they change. +- Opening a slice announces its receiver with `rx_enable:,true;`. Closing a slice announces `rx_enable:,false;` after approximately 500 ms. A band-change recreation that returns the same slice within that window keeps its receiver and sends neither notification; surviving receivers keep their numbers. `trx_count` is not re-sent. - Malformed arguments (for example to `volume:` or `modulation:`) are rejected, never applied to slice 0. - A `vfo:` confirmation reports the frequency the radio actually reached. - **Panadapter spectrum forwarding:** subscribed clients receive the panadapter's FFT rows. diff --git a/docs/user/versioned_docs/version-stable/tgxl-tuner-control.md b/docs/user/versioned_docs/version-stable/tgxl-tuner-control.md index def683fac5..d093c3390a 100644 --- a/docs/user/versioned_docs/version-stable/tgxl-tuner-control.md +++ b/docs/user/versioned_docs/version-stable/tgxl-tuner-control.md @@ -47,6 +47,10 @@ doing nothing silently. Docked in the applet panel, the TUN applet (title "TGXL") shows: +TGXL applet. PWR and SWR bar meters at the top, then C1, L and C2 bars reading 8, 16 and 24 beside TUNE and STANDBY buttons, and a green DIRECT status at the bottom right. + +*The TGXL applet with a Tuner Genius XL connected.* + - **Fwd Power** gauge. It scales for barefoot, Aurora or PGXL power levels, and uses the tuner's own peak reading, so voice peaks read correctly. - **SWR** gauge (1.0–3.0). diff --git a/docs/user/versioned_docs/version-stable/themes-and-theme-editor.md b/docs/user/versioned_docs/version-stable/themes-and-theme-editor.md index 16c373113b..1c5ff1e6e1 100644 --- a/docs/user/versioned_docs/version-stable/themes-and-theme-editor.md +++ b/docs/user/versioned_docs/version-stable/themes-and-theme-editor.md @@ -10,6 +10,10 @@ Every colour, font and size in AetherSDR comes from the active **theme**. You ca **View → Theme** lists every installed theme, with a check mark on the active one: +AetherSDR main window in the Default Light theme: a light title bar and status bar, with the panadapter, waterfall and applets. + +*The main window in the Default Light theme.* + - **Default Dark**: the standard look, and the default. - **Default Light**: a light theme for bright rooms. - Any themes you have created or imported. @@ -22,6 +26,10 @@ The change applies immediately across the whole application. Edits are saved as you make them. +Theme Editor window for Profile: Default Dark. A colour picker with Flat color and Gradient types, a hue strip, RGB and hex fields and recent colours fills the top, beside a gradient stops preview. Font controls sit below, then a Scope selector with Inspect and Reset to default, a token filter, and a list of colour tokens with their values, such as color.accent #00b4d8. Theme actions, Save As… and Close buttons run along the bottom. + +*The Theme Editor, editing the built-in Default Dark theme.* + ### Built-in themes are protected Default Dark and Default Light can't be changed, renamed or deleted. When you edit a built-in theme, the editor asks you to **Save As** a copy (suggested name "My <theme name>") and your changes go there. Deleting the theme you are using switches back to Default Dark. diff --git a/docs/user/versioned_docs/version-stable/tnf-tracking-notch-filters.md b/docs/user/versioned_docs/version-stable/tnf-tracking-notch-filters.md index 342f66e351..38c7354b8c 100644 --- a/docs/user/versioned_docs/version-stable/tnf-tracking-notch-filters.md +++ b/docs/user/versioned_docs/version-stable/tnf-tracking-notch-filters.md @@ -20,6 +20,10 @@ same interferer. ### Creating a TNF +Right-hand part of the panadapter, 14.260 to 14.350 MHz, with two tracking notch filters drawn as hatched amber vertical lines with triangle handles at the top, near 14.2765 and 14.3035 MHz, among SSB signals. + +*Two tracking notch filters on the panadapter, each drawn as a hatched amber line.* + - Right-click on the spectrum or waterfall → **Add TNF at XX.XXX MHz** - Or click **+TNF** in the panadapter's overlay menu (creates a TNF at the current frequency) diff --git a/docs/user/versioned_docs/version-stable/troubleshooting.md b/docs/user/versioned_docs/version-stable/troubleshooting.md index 945d260e90..0d8355940e 100644 --- a/docs/user/versioned_docs/version-stable/troubleshooting.md +++ b/docs/user/versioned_docs/version-stable/troubleshooting.md @@ -232,7 +232,7 @@ These pages have their own Troubleshooting section: - [Panadapter Controls](./panadapter-controls.md) - [Peripherals](./peripherals.md) - [Profile Management](./profile-management.md) -- [PSK Reporter Map](./psk-reporter-map.md) +- [AetherMap](./psk-reporter-map.md) - [RADE Digital Voice](./rade-digital-voice.md) - [Radio Setup](./radio-setup.md) - [RTL-SDR](./rtl-sdr.md) diff --git a/docs/user/versioned_docs/version-stable/tx-controls.md b/docs/user/versioned_docs/version-stable/tx-controls.md index 0aece8ff49..162636c7a1 100644 --- a/docs/user/versioned_docs/version-stable/tx-controls.md +++ b/docs/user/versioned_docs/version-stable/tx-controls.md @@ -9,7 +9,7 @@ applets, with the client-side voice chain in **Tools → AetherTX...** (see [Aetherial Audio](./aetherial-audio.md)). Receive-only radios (ANAN-G2 and RTL-SDR) do not transmit. Before you key up for the first time, read [Before You Transmit](./before-you-transmit.md). -![TX Controls applet. An RF power meter scaled 0 to 120 and an SWR meter scaled 1 to 3 sit above the RF Power slider at 100 and the Tune Power slider at 10. Below are a TX profile selector, Success, Byp and Mem ATU indicators, and the TUNE, MOX, ATU and MEM buttons.](/img/screens/tx-applet.png) +TX Controls applet. An RF power meter scaled 0 to 120 and an SWR meter scaled 1 to 3 sit above the RF Power slider at 100 and the Tune Power slider at 15. Below are a TX profile selector reading Default, Success, Byp and Mem ATU indicators, the TUNE, MOX, ATU and MEM buttons, and an APD button with Active, Cal and Avail indicators. *The TX Controls applet.* @@ -83,6 +83,10 @@ confirmation. ## Using the P/CW applet (Phone/CW) +Phone/CW applet. Three bar meters read Level (-40 to +10 dB), Compression (-25 to 0 dB) and ALC. Below are a mic profile selector reading Default, a mic source selector set to PC with its level slider at 100 and a +ACC button, a PROC button with a NOR / DX / DX+ processor slider, a DAX button, and a MON button with its monitor level slider at 13. + +*The P/CW (Phone/CW) applet: microphone level, compression and ALC meters with the microphone source and processor controls.* + - **Mic level gauge** (−40 to +10 dB) with peak hold - **Compression gauge** - **ALC gauge** — reads the software ALC meter; it appears in both the Phone @@ -101,6 +105,10 @@ applet switches to keyer controls, including the APF toggle and level. ## Using the Phone applet +Phone applet. Sliders for AM Carrier at 34, VOX level at 0 beside a VOX button, Delay at 5, and DEXP at 50 beside a DEXP button, then TX Low Cut 50 and High Cut 4000 with arrow buttons to step them. + +*The Phone applet: AM carrier, VOX, downward expander and transmit filter.* + - **AM Carrier slider** (0–100) - **VOX** toggle + level + delay - **DEXP** — downward expansion (noise gate on the radio's mic path) @@ -117,6 +125,10 @@ CW is excluded, and the card is not available on the Hermes-Lite 2. ## Using the EQ applet +Equalizer applet. ON and reset buttons sit at the top left and RX and TX buttons at the top right, with TX selected. Eight vertical sliders for 63, 125, 250, 500, 1k, 2k, 4k and 8k Hz sit at 0 on a scale from -10 to +10. + +*The Equalizer applet, here showing the transmit equaliser.* + - 8-band graphic equalizer (63 Hz – 8 kHz) - ±10 dB vertical sliders per band - Independent **RX** and **TX** views; the view you chose is remembered @@ -228,5 +240,5 @@ ATU busy, or a band the radio does not allow. - [Amplifiers](./amplifiers.md) and [TGXL Tuner Control](./tgxl-tuner-control.md) — external amplifier and tuner applets. - [Split Operation](./split-operation.md) — transmitting on a second slice. -- [PSK Reporter Map](./psk-reporter-map.md) — includes a one-shot **WSPR beacon** that transmits a +- [AetherMap](./psk-reporter-map.md) — includes a one-shot **WSPR beacon** that transmits a single WSPR frame. diff --git a/docs/user/versioned_docs/version-stable/ulanzi-dial.md b/docs/user/versioned_docs/version-stable/ulanzi-dial.md index c1e56df2b2..324b6a83cd 100644 --- a/docs/user/versioned_docs/version-stable/ulanzi-dial.md +++ b/docs/user/versioned_docs/version-stable/ulanzi-dial.md @@ -38,6 +38,10 @@ Windows cannot take exclusive control of the dial, so each key press also still Open **Settings → Ulanzi Dial Mapping...** ("Ulanzi Dial — Control Mapping"). The dialog shows a picture of the dial with a drop-down "pill" on each physical control, plus: +Ulanzi Dial Control Mapping window. A picture of the dial sits in the centre with a label beside each of its controls: three top buttons (unassigned, RIT/XIT toggle, unassigned), two side buttons on each side (unassigned and Next Slice), the Tuning knob set to Frequency Tune Slice and its Single tap set to Audio Mute Toggle. The status at the bottom left reads Disconnected, beside Last event, Reset to Defaults and Close. + +*The Ulanzi Dial mapping window with no dial connected.* + - a status line (**Connected — …**, **Disconnected**, or **Turned off in Radio Setup → Serial & Controllers**); - a **Last event** readout that names the last key or rotation the dial sent and the action it ran; - **Reset to Defaults**. diff --git a/docs/user/versioned_docs/version-stable/usb-cable-management.md b/docs/user/versioned_docs/version-stable/usb-cable-management.md index c9c73ba12b..6a6bb48c38 100644 --- a/docs/user/versioned_docs/version-stable/usb-cable-management.md +++ b/docs/user/versioned_docs/version-stable/usb-cable-management.md @@ -23,6 +23,10 @@ Open the **USB Cables** page: The **Cables** list on the left shows every cable the radio reports, with its type in brackets (for example `[BCD]`) and "(unplugged)" when it is not plugged in: +USB Cables page. An empty Cables list on the left; the right side reads No USB cables detected. Plug a USB-serial adapter into the radio's rear USB port. + +*Radio Setup, USB Cables page, on a radio with no USB cable plugged in.* + | Colour | Meaning | |-------|---------| | **Green** | Enabled and plugged in | diff --git a/docs/user/versioned_docs/version-stable/usb-control-surfaces.md b/docs/user/versioned_docs/version-stable/usb-control-surfaces.md index 9794242180..e6f5359310 100644 --- a/docs/user/versioned_docs/version-stable/usb-control-surfaces.md +++ b/docs/user/versioned_docs/version-stable/usb-control-surfaces.md @@ -32,6 +32,10 @@ Other Stream Deck models and other control-surface software can drive AetherSDR The **USB Control Surfaces** group at the top of **Serial & Controllers** has the switches: +Serial & Controllers page. USB Control Surfaces has Use a Ulanzi Dial when detected and Enable HID encoders / StreamDeck+ (RC-28, PowerMate, ShuttleXpress). Port Configuration shows a port, 9600 baud, 8 data bits, no parity and 1 stop bit with a Refresh button. Pin Assignment maps DTR, RTS, CTS, DSR and DCD to a function (all None) and a polarity (Active High), with Paddle Swap below. Open and Close buttons sit above an Auto-open serial port on startup checkbox. FlexControl Tuning Knob shows Status Not detected with Detect and Close buttons and tap and double-tap actions for buttons 1 to 3 and the knob button, plus Auto-detect on startup and Invert tuning direction. + +*Radio Setup, Serial & Controllers page: USB control surfaces, the serial port and the FlexControl knob.* + | Setting | Default | Notes | |---------|---------|-------| | **Use a Ulanzi Dial when detected** | On | See [Ulanzi Dial](./ulanzi-dial.md). | diff --git a/docs/user/versioned_docs/version-stable/vfo-widget.md b/docs/user/versioned_docs/version-stable/vfo-widget.md index cbdaa87a19..6d55706144 100644 --- a/docs/user/versioned_docs/version-stable/vfo-widget.md +++ b/docs/user/versioned_docs/version-stable/vfo-widget.md @@ -6,9 +6,9 @@ description: "Every slice has a VFO widget (the \"flag\") floating on the spectr Every slice has a VFO widget (the "flag") floating on the spectrum next to its frequency marker. It shows the frequency and a signal meter, and its tabs give quick access to the slice's audio, DSP, mode, RIT/XIT and DAX settings. -![VFO flag for slice A on the panadapter. The top row shows the RX antenna ANT1, the TX antenna ANT1, the filter width 2.8K, SPLIT, TX and the slice letter A. The large frequency readout reads 14.100.000, above a signal meter. The bottom row has audio, DSP, USB and X/RIT tabs. A column of small close, lock, record and play buttons sits to the left of the flag.](/img/screens/vfo-flag.png) +VFO flag for slice A. The top row shows the RX antenna ANT1, the TX antenna ANT1, the filter width 2.7K, SPLIT, a red TX badge and the slice letter A. The large frequency readout reads 14.250.000, above a signal meter with a dBm reading. The bottom row has the speaker, DSP, USB, X/RIT and DAX tabs. A column of small close, lock, record and play buttons sits to the left of the flag. -*The VFO flag for slice A, with its close, lock and record buttons on the left edge.* +*The VFO flag for slice A, with its close, lock, record and play buttons on the left edge.* ## Using the VFO flag @@ -23,6 +23,10 @@ Every slice has a VFO widget (the "flag") floating on the spectrum next to its f Below the frequency is the signal meter. **Click it** to choose between the classic **S-Meter** bar and **SmartMTR**, which adds min/max extremes markers, numeric values and a transmit meter (Mic Level, SWR, Power or Compression). The choice applies to every flag. Full details are on [Meters](./meters.md). +VFO flag with the meter selector open below the tab row: S-Meter (selected) and SmartMTR buttons, a Show extremes checkbox, Extremes speed Medium, Show values None, TX meter None and a Show meter type checkbox. + +*Clicking the meter under the frequency opens the meter selector on the flag.* + ### Slice buttons Beside the flag: @@ -59,6 +63,10 @@ Click a label along the bottom of the flag to open its tab. Controls the slice's #### 🔊 Audio +VFO flag with the speaker tab open below the frequency. It holds an AF slider at 50, a SQL slider at 20, an AGC mode selector set to Med with its threshold slider at 65, and a DIV button next to a left-right pan slider. + +*The VFO flag with the audio tab open.* + - **AF** slider with mute - **Pan** (left/right) with a centre marker - **SQL** — squelch on/off and level @@ -74,10 +82,18 @@ The **DSP** tab label is colour-coded: green when any radio DSP or client noise On FM, NFM, DFM and DSTR the tab becomes **OPT** (repeater offset and direction, simplex and reverse; CTCSS tones on FM, NFM and DFM only). +VFO flag with the DSP tab open below the frequency. A grid of toggle buttons reads NR, NB, ANF, NRL, NRS, RNN, NRF, ANFL, ANFT, and two launcher buttons, AetherRX and AetherTX. + +*The VFO flag with the DSP tab open on a FlexRadio: the radio's noise filters plus the AetherRX and AetherTX launchers.* + #### Mode tab Labelled with the current mode (for example **USB**): +VFO flag with the USB tab open below the frequency. It shows a mode drop-down set to USB, quick mode buttons USB (lit), CW and AM, filter presets 1.8K, 2.1K, 2.4K, 2.7K (lit), 2.9K, 3.3K, 4K and 6K, a Marker: 3px button, a lit Filter Edge button and an Adaptive RX filter checkbox, unticked. + +*The VFO flag with the mode tab (USB) open: mode selector, mode buttons, filter presets and the Adaptive RX filter switch.* + - mode selector and quick mode buttons; - per-mode filter preset grid; - **Marker:** button that cycles this slice's frequency marker Off → 1 px → 3 px, and a filter-edge toggle. These override the defaults set in **View → VFO Marker Size** (Off / 1 px / 3 px, default 3 px) and **View → VFO Filter Edge** (Show / Hide, default Show). Changing a View default updates every flag without overwriting a per-slice choice. diff --git a/docs/user/versioned_docs/version-stable/windows.md b/docs/user/versioned_docs/version-stable/windows.md index a5972f4743..4c80fd643b 100644 --- a/docs/user/versioned_docs/version-stable/windows.md +++ b/docs/user/versioned_docs/version-stable/windows.md @@ -23,7 +23,7 @@ AetherSDR runs natively on 64-bit Windows, as an installer or as a portable ZIP. 1. Download the installer or the portable ZIP from [GitHub Releases](https://github.com/aethersdr/AetherSDR/releases/latest). 2. Run the installer, or extract the ZIP and run `AetherSDR.exe`. -3. The Windows builds are GPG-signed but not Authenticode-signed, so **Windows SmartScreen** may warn the first time you run them. Verifying the signature confirms the download is genuine; see [Installation](./installation.md) and [docs/VERIFYING-RELEASES.md](https://github.com/aethersdr/AetherSDR/blob/main/docs/VERIFYING-RELEASES.md). +3. The Windows builds are Authenticode-signed (publisher: Jeremy Fielder) and GPG-signed. **Windows SmartScreen** may still warn about a new release until it has built download reputation. Verifying the signature confirms the download is genuine; see [Installation](./installation.md) and [docs/VERIFYING-RELEASES.md](https://github.com/aethersdr/AetherSDR/blob/main/docs/VERIFYING-RELEASES.md). 4. The **Connect to Radio** window opens. Continue with [First Connection](./first-connection.md), or try [Your First Session](./your-first-session.md) with no radio. Both packages keep your settings in the same place, `%LOCALAPPDATA%\AetherSDR\`, so you can switch between them. @@ -89,9 +89,9 @@ Set these in **System Properties → Environment Variables**, or in a Command Pr ### Windows SmartScreen warns about AetherSDR -The Windows builds are GPG-signed but not Authenticode-signed, so SmartScreen does not recognise the publisher. +The Windows builds are Authenticode-signed (publisher: Jeremy Fielder), but SmartScreen can still warn about a new release until it has built download reputation. -1. Verify the download's GPG signature, following [docs/VERIFYING-RELEASES.md](https://github.com/aethersdr/AetherSDR/blob/main/docs/VERIFYING-RELEASES.md). +1. Check the publisher: right-click the setup `.exe` or `AetherSDR.exe`, choose **Properties → Digital Signatures**, and confirm the signer is Jeremy Fielder. You can also verify the download's GPG signature, following [docs/VERIFYING-RELEASES.md](https://github.com/aethersdr/AetherSDR/blob/main/docs/VERIFYING-RELEASES.md). 2. If the signature is good, run AetherSDR anyway from the SmartScreen prompt. ### WSJT-X or another digital-mode program gets no audio diff --git a/docs/user/versioned_docs/version-stable/wsjt-x-integration.md b/docs/user/versioned_docs/version-stable/wsjt-x-integration.md index 258e0a0790..1d49b19706 100644 --- a/docs/user/versioned_docs/version-stable/wsjt-x-integration.md +++ b/docs/user/versioned_docs/version-stable/wsjt-x-integration.md @@ -129,5 +129,5 @@ WSJT-X sends to the wrong device, or the TX slice is not in a digital mode. - [DAX Virtual Audio](./dax-virtual-audio.md) - [TCI Server](./tci-server.md) - [SpotHub](./spothub.md) -- [PSK Reporter Map](./psk-reporter-map.md) +- [AetherMap](./psk-reporter-map.md) - [WSJT-X home page](https://wsjt.sourceforge.io/wsjtx.html) diff --git a/docs/user/versioned_docs/version-stable/xvtr-transverters.md b/docs/user/versioned_docs/version-stable/xvtr-transverters.md index ac9e6ddb0e..732e0d35de 100644 --- a/docs/user/versioned_docs/version-stable/xvtr-transverters.md +++ b/docs/user/versioned_docs/version-stable/xvtr-transverters.md @@ -19,6 +19,10 @@ the FlexRadio's XVTR configuration and its XVTA / XVTB antenna ports. ### Configuring a transverter +Transverters page headed FLEX-8600, with tabs 2m, 70cm, 23cm and a plus tab. The 2m tab shows Name 2m, RF Freq 144.000 MHz, IF Freq 28.000 MHz, LO Freq 116.000 MHz, LO Error 0.000000, RX Gain 0.0 dB, RX Only Disabled, Max Power 10.0 dBm, a green Valid status and a red Remove button. + +*Radio Setup, Transverters page, showing a transverter already set up on the radio.* + 1. Open **Settings → Radio Setup... → Transverters** (or click **XVTR** in the panadapter's Band panel, which jumps there). 2. Click **Create New Transverter**. diff --git a/docs/user/versioned_docs/version-stable/your-first-session.md b/docs/user/versioned_docs/version-stable/your-first-session.md index b3ba6c3c1a..c1535a1069 100644 --- a/docs/user/versioned_docs/version-stable/your-first-session.md +++ b/docs/user/versioned_docs/version-stable/your-first-session.md @@ -21,6 +21,10 @@ The demo is a simulator that generates its own receive audio and spectrum. **It ## Step 2: Connect to the demo +AetherSDR main window connected to the demo. The title bar has a tab reading Simulator (not on the air). The panadapter shows a narrow spectrum around 14.100 MHz with the slice A VFO flag reading 14.100.000 USB and a speckled blue waterfall below. The applet panel on the right shows the S-Meter, RX Controls, Demo Noise and TX Controls applets; in Demo Noise, Pink / hiss and Birdie carrier are lit. + +*The main window just after connecting to the demo: panadapter and waterfall on the left, applets on the right.* + 1. In the Connect to Radio window, choose **On This Network**. 2. Under **Available radios**, find **AetherSDR Demo**, labelled **"Simulator (not on the air)"**. It always sorts below any real radios. 3. Select it and click **Connect Selected Radio**. @@ -40,6 +44,10 @@ The demo panadapter is a narrow 8 kHz window that follows your frequency. A real ## Step 3: Tune +The top of the RX Controls applet: slice A, a lock button, ANT1 and ANT1, filter width 2.8K, a TX badge, USB, and the frequency 14.100000 highlighted for editing in a blue box. + +*Double-click the frequency in RX Controls to type a new one.* + 1. Point at the spectrum and turn the mouse wheel one notch. **You should see** the frequency change by **100 Hz**, the slice's step size. @@ -52,6 +60,10 @@ You can also double-click anywhere on the spectrum or waterfall to tune there. S ## Step 4: Change the mode +Demo panadapter in LSB around 14.100 MHz. The slice A VFO flag reads 14.100.000 with LSB on its mode tab, and the shaded passband lies just below the VFO line. + +*In LSB the passband (shaded) moves below the VFO line.* + 1. On the VFO, open the mode list (it shows **USB**) and choose **LSB**. **You should see** the mode read **LSB**, and the shaded passband on the panadapter move from above the frequency line to below it. @@ -76,6 +88,14 @@ See [RX Controls](./rx-controls.md) for the presets in each mode. The demo has a single slice, so the **+RX** button does not add a second one here. On a real radio it does; see [Multi-Slice Operation](./multi-slice-operation.md). The demo can show up to four panadapters, so add one instead. +Panadapter Layout window headed Choose panadapter layout. A grid of layout thumbnails, each labelled with its arrangement and pan count: A / B (2 pans), A | B (2 pans), A|B / C (3 pans), A / B|C (3 pans), A / B / C (3 pans), A|B / C|D (4 pans), A/B/C/D (4 pans) and Single (1 pan), highlighted. Layouts for five to eight pans are dimmed. A Cancel button sits at the bottom. + +*The Panadapter Layout window. The demo can show up to four panadapters, so larger layouts are dimmed.* + +Two demo panadapters stacked one above the other, both tuned around 14.100 MHz with a green spectrum trace. The top one carries the slice A VFO flag at 14.100.000 and a speckled blue waterfall; the new panadapter below has its own overlay menu and spectrum. + +*Two panadapters stacked after choosing A / B (2 pans).* + 1. Choose **Tools → Add Panadapter...**. **You should see** the **Panadapter Layout** window with **Choose panadapter layout:** and a set of layout buttons. @@ -90,6 +110,14 @@ The demo has a single slice, so the **+RX** button does not add a second one her Make some noise, add a voice to listen to, then let AetherSDR's noise reduction work on it. +Demo Noise applet with Voice (speech), Pink / hiss, Power-line and SMPS hash lit, after the noisy-qth preset and the Voice toggle. + +*Demo Noise after choosing noisy-qth and turning on Voice (speech).* + +AetherRX window. AetherNR is selected in the stage column and its enable box is green. The NNR method tab is highlighted, showing Neural NR with a description, a Strength slider at 38, Model Standard or Premium, and Advanced sliders for Alpha, Knee, Tau, Max gain, Attack and Release. The status line reads METHOD NNR, Standard, floor 38, with an NR GAIN trace. + +*AetherRX with NNR running: the NNR tab is lit and the AetherNR stage is ticked.* + 1. In the **Demo Noise** applet, click the **noisy-qth** preset. **You should see** **Pink / hiss**, **Power-line** and **SMPS hash** light up, and **you should hear** a buzz and a rough hash on top of the hiss. @@ -124,6 +152,14 @@ See [Panadapter Controls](./panadapter-controls.md) and [Themes and Theme Editor ## Step 9: Save and recall a memory +Save Memory dialog: Name My first memory, Current Frequency: 14.100000 MHz, USB, Filter 100 to 2900 Hz, and Cancel and Save buttons. + +*The Save Memory dialog, opened with Add Memory on the Memory panel.* + +The left end of the status bar reading Saved "My first memory" to memories. + +*After Save, the status bar confirms the memory.* + 1. In the same button column, click **Memory**, then **Add Memory**. **You should see** a **Save Memory** window showing the current frequency, mode and filter. @@ -141,6 +177,10 @@ The demo keeps its memories on this computer. A FlexRadio keeps them on the radi ## Step 10: Disconnect +File menu: Connect to Radio..., Disconnect and Quit. + +*The File menu.* + 1. Choose **File → Disconnect**. **You should see** the demo session close. Open the **File** menu again and **Disconnect** is greyed out, because nothing is connected. diff --git a/packaging/linux/io.github.aethersdr.aethersdr.metainfo.xml b/packaging/linux/io.github.aethersdr.aethersdr.metainfo.xml index c0942c436a..47036d5c3f 100644 --- a/packaging/linux/io.github.aethersdr.aethersdr.metainfo.xml +++ b/packaging/linux/io.github.aethersdr.aethersdr.metainfo.xml @@ -68,6 +68,7 @@ +