Skip to content

fix(volume): handle TCI VOLUME dB wire scale (AetherSDR #3502)#1

Merged
nigelfenton merged 1 commit into
mainfrom
fix/tci-volume-db-3502
Jun 14, 2026
Merged

fix(volume): handle TCI VOLUME dB wire scale (AetherSDR #3502)#1
nigelfenton merged 1 commit into
mainfrom
fix/tci-volume-db-3502

Conversation

@nigelfenton

Copy link
Copy Markdown
Owner

Follow-up to the hardware re-verification flagged in aethersdr/AetherSDR#3502, which moved TCI VOLUME to dB (-60..0) on the wire.

This plugin models volume as 0-100 percent, so two things broke:

  1. Read / dial seed: AE now echoes volume in dB (negative). The parser stored that value as if it were percent, corrupting the local mirror and breaking the dial's first-step tracking against the dB seed.
  2. volume:0 flip: stepping AF gain to the bottom sent volume:0, which AE now reads as 0 dB = FULL volume (was 0% mute) — turning the dial all the way down jumped to maximum.

Fix (app.js)

  • Read: an echoed value <= 0 is treated as dB and converted via dbToPercent(); >= 1 stays legacy percent. Works against both old (percent-echo) and new (dB-echo) AetherSDR.
  • Write: emit -60 dB for the silence floor instead of 0; values 1-100 still go as legacy percent (accepted by AE's compat shim).

Internal model stays percent — conversion happens only at the wire. RF drive and mic_level are untouched (not affected by #3502).

AetherSDR PR #3502 moved the TCI VOLUME command to dB (-60..0) on the wire.
Two breaks for this plugin, which models volume as 0-100 percent:

1. Read: AE now echoes volume in dB (negative). The parser stored that dB
   value as if it were percent, corrupting the local mirror and breaking the
   dial's first-step tracking (exactly the concern raised in #3502).
2. Write: stepping AF gain to the bottom sent `volume:0`, which AE now reads
   as 0 dB = FULL volume (was 0% mute) - turning the dial down jumped to max.

Fix (internal model stays percent; convert only at the wire):
- Read: an echoed value <=0 is dB -> dbToPercent(); >=1 stays legacy percent.
  Handles both old (percent-echo) and new (dB-echo) AetherSDR.
- Write: emit -60 dB for the silence floor instead of 0; 1-100 still go as
  legacy percent, which AE's compat shim accepts.

Follow-up to the hardware re-verification flagged in aethersdr/AetherSDR#3502.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@nigelfenton nigelfenton merged commit 333daed into main Jun 14, 2026
@nigelfenton nigelfenton deleted the fix/tci-volume-db-3502 branch June 14, 2026 04:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant