Repository navigation
Release: Throttle Setup Wizard 0.1.0 - #17
Merged
Merged
Conversation
Pre-spec notes for a one-time setup wizard that guides the native Throttle Cut / Throttle Idle / endpoint / failsafe setup for turbines and verifies the throttle output. Includes the manual procedure, success criteria, edge cases, open research items, and API findings (Lua can't write model settings; it can read servo outputs and open menus via system.openExternal). Run /speckit-specify from this file. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KfkMcX3ESwF8EsaLrEGRxz
Add a constraint that the app installs on its own (its script and asset folder only), with any shared lib modules listed in the plan and bundled in install instructions, plus SC-009 to test it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KfkMcX3ESwF8EsaLrEGRxz
Bring the turbine draft branch up to date (Speed Gauge 0.3.0, Flameout Alarm 0.1.0, current constitution and lib modules) before specifying. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KfkMcX3ESwF8EsaLrEGRxz
/speckit-specify from docs/drafts/turbine-throttle-setup.md. A one-time setup wizard: guided native setup (endpoints, Throttle Cut/Idle on one safety switch, failsafe) with "Open menu" jumps, then a four-state verify of the throttle output and a failsafe hand-test confirmation. The app never writes settings or drives outputs (constitution I) and installs standalone. Quality checklist passes; five research items remain for clarify/plan. Adds the app to the CLAUDE.md apps table. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KfkMcX3ESwF8EsaLrEGRxz
His DS-24 II uses SF, the short silver two-position toggle next to SE, as the throttle safety switch (not the red top-edge switch). Recorded as an example configuration in the reference setup, with a resized photo in specs/002-turbine-throttle-setup/assets/. Which SF position is OFF is still to be confirmed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KfkMcX3ESwF8EsaLrEGRxz
Clarifications (2026-10-10): clean-run rule for completion, uneven endpoints allowed, idle position limits 10-30% with a warning under 15%, setup changes clear a saved result, default targets 1000/1200/1900 us. FR-018 amended to standing reminders (trims and flight mode are not readable from Lua). Plan, research (R1-R13), data model, contracts (settings math, screens, verify), quickstart and 37 tasks. Settings formulas confirmed against servo monitor readings on two of Aaron's turbine models. Analysis fixes: backwards switch caught by the output check, OFF position on the summary, engine warning on Setup inputs. Ignore model files copied from the transmitter (they hold TX/RX IDs). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
New app src/Apps/AG-TrbSt.lua, enough for the calibration run (T008): settings load/clamp/validate (14 keys), settings math and target validation per contracts/settings-math.md, form skeleton with a minimal Home, and the Setup inputs screen with live switch, stick and output (us) readouts, Learn, target and tolerance fields, and temporary Servo/Other buttons that open the menus. types/jeti.lua: openExternal comment now documents the ":menu" names. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
App (menu name now "Throttle Setup Wizard"):
- Switch screens with form.reinit(1) only; screen comes from `cur`.
- Live switch/stick rows show the raw percent; "Signal now" explains
itself; clearer Learn and output hints.
- Learn refuses a stick not assigned as proportional (P).
- Lua errors while building a screen or updating labels are shown on
the form and printed, instead of closing the form.
Findings recorded (jeti-api-notes, research): key codes are bit flags;
F5/ESC close a form unless preventDefault; addInputbox(item, true) only
allows proportional; getInputs("O<n>") read 1000-2000 us on the
transmitter; exact Throttle Cut / Throttle Idle labels on 6.x.
docs/apps/throttle-setup-wizard.md: step-by-step pilot guide (travel,
Throttle Cut and Idle on one switch with the tick/cross check, failsafe,
expected readings, Teach RC), with Aaron's Other Model Options
screenshot. Recommends the JETI 2-position locking switch.
Spec: follow-up idea to read (never write) the model file and show
current vs needed values.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Cropped from Aaron's photo (specs/002-turbine-throttle-setup/assets/safety-switch-sf.jpg) to show SF next to SE. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pilots often say 'cut off' for the running position, so OFF was ambiguous. App labels, Learn hint, spec, contracts, quickstart, tasks and the pilot guide now say CUT. Failsafe 'Off (no pulse)' is unchanged. The internal key offSg keeps its name. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The description page now leads with why one CUT/RUN safety switch beats the trim method (Xicoy's warning about digital trims), then the nine things the app adds even when the setup is done by hand, a short how-to, and the manual setup. Spec overview and the README task (T033) carry the same points. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…idle rule Test model, travel +/-100%, cut -100%, idle 20%: CUT 1000/1000, RUN 1100/2000 us as predicted. getInputs(O<n>) is the final output after Throttle Cut. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From Aaron's Servo Setup screenshot: guide step 1, verify messages, settings-math display rule, quickstart, T012 and the pilot guide say Max negative / Max positive (and leave the limits at -125/125%). Also records that openExternal(':servoSetup') returns to the app's screen on Esc.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…25%) Per Aaron: no custom targets. The pilot picks the ECU type (Xicoy or other), which sets the Throttle-Cut value and the targets verify expects (1000 or 1100 / 1200 / 1900 us). The ECU must always be re-learned afterwards; the app never suggests skipping Teach RC (new SC-010). Spec, data model, settings-math, screens, quickstart, plan, research and tasks (T003/T004/T006 redone) updated; the app's Setup inputs screen now has an ECU choice instead of target fields. Pilot guide updated, with Aaron's Throttle Cut screenshots for -100% and -125%. Also records Servo Setup wording and openExternal behavior. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
App hints, screens contract, FR-003 and the pilot guide say Other has been tested with KingTech and Swiwin and should work with most other ECUs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Test model at -80/80, Throttle-Cut -125%, idle 20% read exactly the Xicoy targets in the app. Manual failsafe test confirmed as the check. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pilot guide, app step 4 text and research now explain why failsafe matters and give the path Model > Device Explorer > receiver > Failsafe: enabled, throttle output Off (no pulse), save to the receiver. Hold must never be used for a turbine throttle. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
openExternal(':otherProps') returns to the app on Esc like Servo Setup; +/-125% travel reads correctly (no clipping). Failsafe app text shortened to 32 chars.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Device Explorer > receiver > Configuration > Fail-Safe: Fail-Safe Enabled, delay 1.5s, throttle OutPin mode Out OFF. Guide adds the receiver Configuration and Fail-Safe screenshots and warns against Hold and against Fail-Safe mode at 0% (mid-throttle). FR-010, app step 4 text and research updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Aaron chose JETI's own Sounds on event over the app playing callouts, so the app stays removable. Spec (US4, FR-026..029, SC-011), research R14/R15, plan, data model, screens contract (Voice callouts screen) and tasks T038-T044. New tools/voice/make_turbine.py generates TurbOff.wav / TurbOn.wav in the Amy voice (T038). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…r transmitters New Voice callouts screen: shows whether TurbOff.wav / TurbOn.wav are in /Audio, copies missing ones from /Apps/AG-TrbSt in 2 KB chunks across loop() calls (never overwrites, verifies sizes, removes a bad copy), opens Sounds on event, credits the Amy voice. Debug prints from calibration removed. FR-025/R13 revised per Aaron: no device block; features the firmware lacks are hidden, so older DC/DS transmitters should work. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Captures how Speed Gauge, Flameout Alarm and Throttle Setup Wizard voice files are made: Piper Amy via tools/voice helpers, file format, self-checks, CC BY-SA credits, playFile vs Sounds on event, and testing on the transmitter (the emulator plays no Lua audio). CLAUDE.md points to it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…de step (T039, T043) Generated with tools/voice/make_turbine.py (0.75 s and 0.70 s, self-check passed). Files are CC BY-SA 4.0, credited in src/Apps/AG-TrbSt/CREDITS.txt, CREDITS.md and the pilot guide; tools/voice/README.md documents the script. Pilot guide adds optional step 7: copy, then Sounds on event (CUT -> TurbOff, RUN -> TurbOn). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Aaron compared speeds 1.5, 1.3, 1.15 and 1.0 and chose 1.15. The committed TurbOff.wav / TurbOn.wav are the exact files he approved (0.92 s / 0.87 s); make_turbine.py defaults to 1.15; README, research R14 and the jeti-voice skill updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
On Aaron's card pilots' callouts live in /Audio/en and /Audio holds only JETI's system sounds, and the first copy left no file. The copy now goes to /Audio/<getLocale()> and a failure names its step (read, create, write, size a/b). Spec, screens contract, research R15, pilot guide and api-notes updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…vents Copy to /Audio/en verified (files picked in Sounds on event). Instructions in the app, screens contract and pilot guide now say to add two events, CUT -> TurbOff.wav and RUN -> TurbOn.wav; the app can't add them itself (no Lua API, constitution I). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ding From Aaron's Sounds on Event screenshot: press + twice, one line per switch position; Switch (move SF to CUT / RUN) and File (TURBOFF.WAV / TURBON.WAV, shown in capitals). App hints, screens contract and pilot guide updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…T044 done Aaron's voice test passed on the transmitter (copy to /Audio/en, two Sounds on Event lines, callouts play without the app). Four new screenshots added to the pilot guide; T033 adds them to the README, T035 retakes Home and Setup inputs once the remaining screens exist. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…and link The guide linked images by their main-branch URL, which doesn't exist until release, so none showed. Relative img/ links now work in previews, on the branch and after release. README gets an 'In development' row, screenshots and a link to the guide. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Home with status and links (disabled until setup is complete); five guide steps with the recommended values and Open buttons (F5 Next uses preventDefault); resume to the saved screen; verify with output check, the four states, steadiness and 10-sample averaging, diagnosis table, Retry/Restart and the clean-run rule; failsafe confirmation; summary with ECU, measured values, date and 'always re-learn the ECU'. FR-005a confirm-and-clear on Setup inputs. Copy hidden on firmware without io.remove/dir (T031). Calibration buttons removed (T013). LuaLS and check.py clean; 97 top-level locals. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Per Aaron: the question being asked is now separate from the live switch and stick positions, and switch instructions say what each position means ('Safety switch to RUN (not cut: engine may run)', 'Safety switch to CUT (cut: engine off)'). Contract verify.md updated.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nshots From Aaron's screenshots: the firmware draws disabled links like active ones, so Guided setup, Verify and Summary are hidden until usable; Summary no longer repeats the verified date. Ten new screenshots (home, five guide steps, verify ready/check/passed, summary) added to the guide's new Screens section; README shows a guide step, verify passed and the summary. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Aaron wants F2 Servo / F4 Other on Setup inputs every time, not only during calibration. Screens contract and T013 updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The reason was below the results table, off-screen. It now replaces 'Failed: reason below' in the Do rows (and stays under the results). Aaron's transmitter tests passed: guide, verify incl. the Xicoy -125% pass and the deliberate cut fail, idle-offset fault and retry rule, failsafe and summary, change-after-saving prompt, resume. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Full read of AG-TrbSt.lua: loadSettings resets a saved value of the wrong type instead of erroring; one Learn message shortened to 32 chars; header cites R1..R15 and notes the voice files' CC BY-SA licence. Scans: LuaLS clean, 103/200 top-level locals, no forbidden APIs, only error-path prints, no strings over 32 chars, form calls guarded by formOpen. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
JETI Studio description page (docs/apps/throttle-setup-wizard.html), icon (make_icon.py --app throttle), Apps.json entry in make_apps_json.py (tag AG-TrbSt-v0.1.0, DC/DS-24II; older DC/DS untested), full README section, README and CLAUDE.md rows marked released. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…setup Throttle Setup Wizard 0.1.0 (spec 002)
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.
Release of Throttle Setup Wizard 0.1.0 (AG-TrbSt, spec 002), merged into
develop in #16.
recommended values (Max -80/80, Throttle-Idle 20%, Throttle-Cut -100%,
-125% for Xicoy) and Open buttons for each menu
After merge: tag AG-TrbSt-v0.1.0 on main, then publish Apps.json.
🤖 Generated with Claude Code