Revert F3/F4 auto-channel NACK (misread probe) - #3
Merged
Conversation
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>
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Reverts the auto-channel gate on
range_step/alarm_togglethat 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:
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.VerbAvailableInStateis 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.Test plan
go vet ./...andgo test -race ./...cleanlinux/arm64, deployed to a live LP-700, sent 8range_stepverbs in pwr/swr + CH Auto via the WS endpoint:ok=True(were NACK'd before this commit)Companion change
vu2cpl/LP-700-Appwill get a matching client-side update: remove the matchingrangeDisabled || autoChUI 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