Repository navigation
Develop - #8
Merged
Merged
Develop#8
Conversation
Pre-spec draft for a new in-flight app (AG-FlmOt.lua) that alarms when turbine RPM telemetry shows a flameout. Covers per-model enable and RPM sensor assignment, arming only at idle RPM or above (so start-up and ECU auto-restart never arm or clear the alarm), and the approved alarm sound: "Flameout!" x3 in the Speed Gauge Piper Amy voice, urgent delivery, every 5 s with a missile-lock tone in between. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UXZ3gE435jMKRzKW9FRfiy
Spec and quality checklist for AG-FlmOt.lua, built from the draft in docs/drafts/flameout-alarm.md. Decisions made while specifying: - A Cut switch is required to enable monitoring, and Cut is the only way to silence the alarm (no separate acknowledge). - Idle RPM is typed in from the ECU setup; "learn idle" is dropped. A separate arming threshold (90% of idle) handles the start overshoot and its slow decay back to idle. - Double-size telemetry window with a segmented sweep RPM bar, idle marker and large RPM number in Speed Gauge's colors; straight bar at single size and as the fallback. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Clarify session 2026-10-04: - Telemetry lost during the flameout alarm keeps the alarm going, with a "no telemetry" note and no callout (FR-020a). - Telemetry-loss delay is a setting, default 2 s (FR-008, FR-020). - Plain RPM by default, with a manual sensor scale of x1/x10/x100/x1000 (FR-006a, FR-010). Adds an original SVG mockup of the double-size sweep bar (armed and flameout) and the single-size bar, with its generator script. The third-party dash screenshot that inspired it stays local in docs/vendor/. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- research.md R1: how JetCat, Xicoy, KingTech, Swiwin, JetCentral and Enjet ECUs deliver RPM to a Jeti transmitter. Where RPM arrives as a normal telemetry sensor it is plain RPM, so the default x1 scale fits; JetCentral, Enjet and Swiwin direct are unconfirmed. - The "telemetry lost" callout is now also spoken once between alarm cycles when telemetry is lost during the flameout alarm (FR-020a). - Idle and max RPM are entered to the nearest 100 RPM, shown in thousands with one decimal, since form.addIntbox stops at 32767 (FR-006). - Setup's "no sensors" message mentions the up-to-a-minute delay some adapters need (FR-004); the README lists support per ECU brand (FR-035). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- plan.md: technical context, constitution check (pass), layout and build order. One app file, no lib modules. - research.md R2-R13: 5-second cycle WAVs played with AUDIO_IMMEDIATE, stopPlayback on relight/Cut, telemetry-lost cycle variant, sound generator without ffmpeg, fallback beeps, vibration, 100 ms state machine, sensor reading, settings entry, sweep drawing cost, emulator and SIM testing, test alarm switch. - data-model.md, contracts (settings form, telemetry window, audio) and quickstart.md. - Spec: test alarm switch (FR-030a, User Story 8); FR-028 corrected to Speed Gauge's current rule (voice files committed, CC BY-SA 4.0). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…into feature/003-flameout-alarm
- specs/003-flameout-alarm/tasks.md: 55 tasks by user story. - tools/voice/make_flameout.py generates the alarm sounds (research R5): urgent "Flameout!" x3 with pitch, EQ and compression in Python (no ffmpeg), the lock tone, two exactly-5-second cycle files and three calm phrases. Reuses make_voice.py's helpers without changing it. - src/Apps/AG-FlmOt/: the generated sounds, CC BY-SA 4.0 (FR-028), approved by ear. - src/Apps/AG-FlmOt.lua 0.1.0 frame: settings with load-time validation, derived values, session state, audio file checks, the 100 ms loop with row 0 (off), Cut check and sensor read, named empty functions for each user story, the core settings rows and a text-only window. - tools/emulator/sensors.json: Turbine / RPM sensor on P8 (R12). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-T019) Arms after RPM holds the arming threshold for the arming time; RPM below the flameout threshold for the detection delay starts the alarm: cycle.wav with AUDIO_IMMEDIATE and three short pulses on both sticks, repeated every 5 s, also through telemetry loss. Fallback: two bursts of beeps per cycle when the cycle files are missing. FLAMEOUT shown large in the text window. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
JETI Studio's io.open only opens 'Apps/...' without the leading slash; the transmitter opens '/Apps/...'. The start-up file check now tries both, so the emulator no longer falls back to beeps. Recorded in docs/jeti-api-notes.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…023) Cut disarms silently from any state and stops an alarm at once; the sensor is read before the Cut check so the window follows the spool-down. Optional 'Flameout alarm armed' callout (queued). SIM debug mode (off) plays scripted RPM profiles chosen in the form: normal flight with start overshoot, failed start, flameout, auto-restart, dropouts. T020 confirmed in the emulator. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The alarm stops and the app returns to ARMED once RPM holds the arming threshold for the arming time; RPM in the startup range (auto-restart cranking) breaks the timer without starting a new event. Optional 'Engine relit' callout (queued). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Main now publishes apps through Apps.json; add the description page, icon and Apps.json entry to the Polish phase. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sensor scale, live RPM (also while monitoring is off), no-telemetry and unit hints, max RPM with auto value, arming/flameout percentages with their RPM and refusal when flameout >= arming, the three timers, armed/relit checkboxes, voice-files hint, credits footer. Raising idle to or above max resets max to auto. Removing a requirement turns monitoring off. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…(US5, T034) No valid data clears the arming, detection and relight timers, so a loss never causes a flameout or a relight. After the telemetry-loss delay: 'Engine telemetry lost' once while armed; during an alarm the next cycle plays cycletl.wav once and the window shows NO TELEMETRY under FLAMEOUT. Detection restarts from zero when data returns. Verified Cut also cancels a pending fallback beep burst. T031 confirmed in the emulator. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… (T033, T039) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Double size: 12-segment sweep from design/rpm-window-mockup.svg, lit in cyan up to RPM, dim outlined segments beyond, yellow idle marker, state label, large RPM number; FLAMEOUT as a red banner, with a NO TELEMETRY note when data is lost. Single size: straight bar, idle marker, state and number; FLAMEOUT fills the window red. Geometry computed once in init; opaque fills and thin outlines only. Text-only layout on transmitters other than the DS-24 II. DEBUG_CPU readout (off). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bold at normal size where it clears the rising sweep (ARMED, DISARMED, OFF, TEST); NO TELEMETRY and NO SENSOR stay small. User feedback from the emulator. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…(T024, T035) First run on the DS-24 II with the SIM build: armed at 60,000 and at idle, flameout banner, disarmed by Cut. Layout matches the mockup; the bold DISARMED label clears the sweep. Kept in docs/apps/img/ for the description page (T056). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An optional switch plays the real alarm (same cycle files, rhythm, vibration and fallback beeps) while on, and shows TEST. Starts only on the switch's off-to-on change and only while OFF or DISARMED, works with monitoring off, and stops when the switch goes off or the app arms. Sound and vibration confirmed on the transmitter with the SIM build. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
README: apps table row and a Flameout Alarm section (advisory note, ECU support per brand, setup and threshold guidance per FR-035, test switch, sound license). CREDITS: the alarm sounds (Piper, Amy CC BY-SA 4.0) and the ECU telemetry app studied for facts. CLAUDE.md apps table. Release audit: no forbidden APIs, SIM and DEBUG_CPU off, 87/200 main-chunk locals. US8 test switch confirmed on the transmitter (T049). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs/apps/flameout-alarm.md and .html with the transmitter screenshots; make_icon.py --app flameout draws the icon (segmented sweep, idle marker, AG monogram) without changing Speed Gauge's. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Double-size window with DEBUG_CPU on the DS-24 II: 5% armed, 6% with the FLAMEOUT banner. Both window sizes confirmed by screenshot. Recorded in docs/jeti-api-notes.md and research R11. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
README lists it as released. Verified: check.py and LuaLS clean, SIM and DEBUG_CPU off, version 0.1.0. Tested in the emulator and on the DS-24 II (SIM profiles, test switch, sound, vibration, both window sizes, CPU 5-6%). Open after release: T054 bench test with a real ECU, T055 findings, T058 Apps.json (needs the tag). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Feature/003 flameout alarm
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.
No description provided.