Skip to content

fix(studio): Digital IO 1 can't be the trigger input — only Digital IO 2 reaches EINT (#168) - #234

Merged
2 commits merged into
mainfrom
fix/168-dio1-no-trigger
Sep 29, 2026
Merged

2 commits merged into
mainfrom
fix/168-dio1-no-trigger

Conversation

@mbreiser

Copy link
Copy Markdown
Contributor

Summary

Closes #168. Only the Digital IO 2 (5V) BNC is wired to the panels' trigger input (the EINT net, via U3 and the J30 shunt). Digital IO 1 has no route. The Studio still let you pick in_trigger for Digital IO 1, which gave a trigger that silently does nothing.

  • Rig files: parseRigIo turns in_trigger on dio port 1 into off and warns: "dio port 1 cannot be in_trigger: only "Digital IO 2 (5V)" reaches the panels' trigger input (EINT); treated as off". The warning appears in the Console log at connect. No shipped rig file declares it, but hand-edited rig files could.
  • Controller ▾ → Rig I/O menu: the Digital IO 1 in_trigger option stays disabled on every firmware, and its tooltip gives the reason. Capability gating no longer enables it.
  • Apply path: never sends SET_DIO_ROLE in_trigger to channel 1, whatever set the menu.

The controller-side refusal is reiserlab/LED-Display_G6_Firmware_Arena#45.

Tier

next candidate (candidate 2, with #219 and #233)

Release notes

Studio

  • Digital IO 1 can no longer be set as the trigger input. Only Digital IO 2 is wired to the panels' trigger. A rig file that declares it on Digital IO 1 gets a warning at connect instead of a trigger that silently does nothing.

Test plan

  • pixi run test green (new N12io-c2 checks: parser, disabled option, no gating, apply guard)
  • All 8 inline Studio scripts parse (node --check)
  • Bench, from the /next/ candidate: Controller ▾ → Rig I/O shows Digital IO 1 in_trigger greyed out with the reason; Digital IO 2 in_trigger still enables on io_ext firmware

🤖 Generated with Claude Code

…O 2 reaches EINT (#168)

Only the "Digital IO 2 (5V)" BNC is wired to the panels' EINT net (U3 + J30
shunt); Digital IO 1 has no route, so `in_trigger` there gave a silently
dead trigger.

- parseRigIo: `in_trigger` on dio port 1 degrades to off with a warning
  naming Digital IO 2 (shown in the Console log at connect).
- Studio Rig I/O menu: the Digital IO 1 `in_trigger` option stays disabled
  on every firmware, with the reason as its tooltip; capability gating no
  longer enables it.
- Rig-io apply path: never sends SET_DIO_ROLE in_trigger to channel 1.
- Tests: N12io-c2 (parser + static Studio checks).

The controller-side refusal is reiserlab/LED-Display_G6_Firmware_Arena#45.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ng it

It can never be valid (no EINT route on that BNC), so a permanently
disabled option was clutter. The reason moves into the Digital IO 1
label/select tooltips; the parser warning and the apply guard stay.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mbreiser added a commit that referenced this pull request Sep 29, 2026
mbreiser added a commit that referenced this pull request Sep 29, 2026
Candidate for Production. PRs: #219, #233, #234.

Release-Manifest: releases/2026-09-29.json
mbreiser added a commit that referenced this pull request Sep 29, 2026
mbreiser added a commit that referenced this pull request Sep 29, 2026
Candidate for Production. PRs: #233, #234.

Release-Manifest: releases/2026-09-29.json
@mbreiser mbreiser closed this pull request by merging all changes into main in 995ab34 Sep 29, 2026
@mbreiser
mbreiser deleted the fix/168-dio1-no-trigger branch September 29, 2026 20:57
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.

Arena Studio session roles: remove 'in_trigger' from the DIO 1 selector (only DIO 2 routes to EINT)

1 participant