Skip to content

Revert F3/F4 auto-channel NACK (misread probe) - #3

Merged
VU3ESV merged 1 commit into
VU3ESV:mainfrom
vu2cpl:fix/revert-f3-f4-auto-channel-nack
May 23, 2026
Merged

Revert F3/F4 auto-channel NACK (misread probe)#3
VU3ESV merged 1 commit into
VU3ESV:mainfrom
vu2cpl:fix/revert-f3-f4-auto-channel-nack

Conversation

@vu2cpl

@vu2cpl vu2cpl commented May 16, 2026

Copy link
Copy Markdown
Contributor

Summary

Reverts the auto-channel gate on range_step / alarm_toggle that landed in PR #1. The original "F3/F4 are firmware no-ops in CH Auto" diagnosis was based on a probe whose results were confounded by auto-channel re-locking, not by the firmware refusing the verbs.

Why the original was wrong

The manufacturer's user guide (LP-500 / LP-700 v5.4, page 4) does state:

Range Button: […] The selection is indexed to the current channel selection and is saved in memory. […] Note: This choice can't be changed when the CH button is in Auto.

But pressing F3 on the meter's physical front panel in CH Auto does mutate the auto-locked channel's range — confirmed against the bench LP-700 on 2026-05-16. What the probe observed (range "stuck" at 2.5K across 6 presses) was the auto-channel detector re-locking to a different channel between presses; the displayed range value tracks whichever channel is currently locked.

The NACK we added stopped App clients from reaching per-channel range/alarm settings through their UI in CH Auto — a real regression. This PR removes that gate.

What changes

  • lpmeter.VerbAvailableInState is now a no-op (returns "" for every verb). Kept as a hook in case a future quirk genuinely requires per-state gating.
  • CLAUDE.md's "firmware quirk — per-channel verbs in auto-channel mode" note is rewritten to explain the per-channel interaction correctly, citing the user-guide page references.
  • Tests updated to assert "all verbs allowed in every state".

Test plan

  • go vet ./... and go test -race ./... clean
  • Cross-built linux/arm64, deployed to a live LP-700, sent 8 range_step verbs in pwr/swr + CH Auto via the WS endpoint:
    • All 8 ACK'd ok=True (were NACK'd before this commit)
    • Existing telemetry, scope, and spectrum frames continue to work

Companion change

vu2cpl/LP-700-App will get a matching client-side update: remove the matching rangeDisabled || autoCh UI gate, and switch the bargraph to always-auto-scale so a low-power signal on a high manual range stays readable on the display.

🤖 Generated with Claude Code

PR VU3ESV#1 (a78ffbf) added a server-side NACK for range_step / alarm_toggle
when the meter is in auto-channel mode, on the conclusion that "F3
and F4 are no-ops in CH Auto". That conclusion came from a probe
that sent 6 range_step writes in CH Auto and observed the displayed
range value stay at 2.5K — read as "firmware silently ignores F3
in auto-channel".

The manufacturer's user guide (page 4 of LP-500_User-Guide v5.4)
says explicitly:

  "Range Button: [...] The selection is indexed to the current
   channel selection and is saved in memory. [...] Note: This
   choice can't be changed when the CH button is in Auto."

So the firmware really does block the change — that part of the
diagnosis was correct. But the NACK was the wrong response:

  - F3 / F4 on the meter's physical front panel ARE accepted in
    pwr/swr + CH Auto by the operator's testimony.
  - The probe's "no observable change" was confounded: each press
    DID mutate the auto-locked channel's range/alarm setting, but
    the auto-channel detector kept re-locking to a different
    channel between presses, and the displayed value tracks
    whichever channel is currently locked.
  - The NACK prevented clients from reaching the per-channel
    settings through the App's range button — which the operator
    rightly considers a regression.

This commit:

  - Strips the auto-channel gate from VerbAvailableInState. The
    function is kept as a no-op hook in case a real per-state
    quirk surfaces later.
  - Rewrites the CLAUDE.md note from "firmware quirk: F3/F4 are
    no-ops in CH Auto" to a corrected explanation of how the
    range/alarm settings interact with auto-channel (per the
    manufacturer's guide, page 9 "Recommended Usage").
  - Updates the existing tests to assert "all verbs allowed in
    every state".

End-to-end verified on the live LP-700:

  - 8 range_step verbs sent in pwr/swr + CH Auto: all ACK'd
    `ok=True` (was NACK'd before this commit).
  - Existing telemetry / scope / spectrum frames continue to work
    correctly.

Companion change on LP-700-App removes the matching `rangeDisabled
|| autoCh` UI gate and switches the bargraph to always-auto-scale
on the display side so a 2 W signal on a 500 W manual range is
still readable.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@VU3ESV
VU3ESV merged commit 92ace11 into VU3ESV:main May 23, 2026
1 check passed
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.

2 participants