Skip to content

[EPIC] Configurable circuit gates and automated pit-lane sessions #105

Closed
5 of 5 issues completed
Closed

Description

@PurpleSentinel

Objective

Deliver accurate, offline lap and session control using four directed GPS gate lines per circuit layout: start, finish, pit entry, and pit exit.

Accepted product decisions

  • Exact events use finite directed line-segment intersection, never a radius or timing box.
  • Consecutive accepted GNSS fixes form the vehicle movement segment.
  • Crossing time is interpolated from receiver measurement timestamps using the intersection fraction.
  • A surrounding corridor is used only for rearm/hysteresis; direction, speed, GNSS quality, sequence monotonicity, and minimum lap time also protect against duplicates.
  • The selected start or finish gate is the repeating lap boundary: first valid crossing starts Lap 1, next crossing of the same gate completes it.
  • Device settings independently select START or FINISH, pit-exit auto-start, and pit-entry auto-stop.
  • Manual start and guarded manual stop always remain available.
  • Each circuit layout has its own versioned JSON definition; start and finish may share coordinates.
  • On-device geometry capture uses validated stationary GNSS fixes for left/right endpoints; prebuilt JSON deployment remains supported.
  • The initial UK pack covers major permanent paved car circuits and standard layouts across all four UK nations, excluding karting, hill climbs, and temporary venues.
  • Publicly researched coordinates remain provisional until independently or physically validated.

Existing prerequisite work

Exit gate

Synthetic and recorded traces generate exactly one correctly timed event per valid configured gate crossing at supported sample rates and vehicle speeds. Settings control lap boundary and independent pit automation, four-gate JSON can be safely captured or deployed, manual controls remain available, and every UK definition is provenance-marked and validation-gated.

Activity

  1. added
    epicParent issue grouping a major delivery outcome
    priority:highRequired for the current milestone or a correctness/reliability risk
    area:timingLap geometry, timing, and event state
    area:session-uiSession workflow and driver-facing UI
    area:tracksTrack definitions, loading, selection, and tooling
    on Aug 14, 2026
  2. PurpleSentinel commented on Aug 14, 2026

    @PurpleSentinel
    ContributorAuthor

    Progress: #107 completed and merged via #111 (c07e65d). Track schema v2 now requires directed start, finish, pit-entry, and pit-exit gates, projects all endpoints, validates safety bounds and line length, and explicitly rejects v1. Local and remote host, simulator, and ESP-IDF firmware gates passed. Next dependency-ready delivery issue: #106.

  3. PurpleSentinel commented on Aug 14, 2026

    @PurpleSentinel
    ContributorAuthor

    Progress: timing prerequisite #20 completed and merged via #112 (ecdbbe3). The shared WGS84 circuit-local projection now handles both hemispheres and antimeridian geometry, enforces bounded inputs, projects all four track gates, and is compiled identically for host, simulator, and ESP32-S3. Local and remote host, 60-test simulator, and firmware gates passed. #106 remains dependent on #21–#25; next bounded prerequisite is #21.

  4. PurpleSentinel commented on Aug 14, 2026

    @PurpleSentinel
    ContributorAuthor

    Timing dependency progress: #21 is complete via PR #113, following projection issue #20.

    The circuit-gate work now has a deterministic, tested intersection contract that suppresses duplicate candidates at exactly-on-line fixes. Integration issue #106 remains dependent on #22–#25 before the four configured gates can safely drive lap and pit-session events.

  5. PurpleSentinel commented on Aug 14, 2026

    @PurpleSentinel
    ContributorAuthor

    Dependency progress: #22 is complete via PR #114.

    Directed candidates now apply signed side transitions, interpolated speed, circular heading tolerance, configurable GNSS fix/accuracy thresholds, and stable replayable decision reasons. Timing prerequisites #20–#22 are closed; #23 is next.

  6. PurpleSentinel commented on Aug 14, 2026

    @PurpleSentinel
    ContributorAuthor

    #23 is complete via PR #115. Receiver-time rollover normalization, ordering checks, gap/staleness rejection, and latency-independent crossing-time interpolation are now merged. #24 is next.

  7. PurpleSentinel commented on Aug 14, 2026

    @PurpleSentinel
    ContributorAuthor

    #24 is complete via PR #116. The deterministic lap lifecycle, startup arming, corridor rearm, minimum-time guard, and lap/suspect bookkeeping are merged. #25 host/embedded parity is next.

  8. PurpleSentinel commented on Aug 14, 2026

    @PurpleSentinel
    ContributorAuthor

    #25 is complete via PR #117. All timing prerequisites #20–#25 are now merged; track semantic validation #34 is next before gate integration #106.

  9. PurpleSentinel commented on Aug 14, 2026

    @PurpleSentinel
    ContributorAuthor

    Progress update: timing prerequisites #20-#25 are complete. Track schema/semantic validation #34 merged in PR #118, and safe stationary capture plus host workbench #37 merged in PR #119. Starting native child #106 next; #108, #110, and #109 remain queued sequentially.

  10. PurpleSentinel commented on Aug 14, 2026

    @PurpleSentinel
    ContributorAuthor

    Completed. All five native subissues are closed:

    The prerequisite chain is also complete: #20–#25, #34, and #37.

    Final delivery evidence:

    • the latest make check host suite passed
    • the simulator suite passed all 69 tests
    • the ESP-IDF 6.0.2 ESP32-S3 build passed; the image is 0x28140 bytes with 84% of the smallest app partition free
    • PR Add provenance-gated UK circuit track pack #123 passed the required host, simulator, and firmware CI jobs before squash merge
    • the UK manifest covers 35 layouts at 18 venues across England, Scotland, Wales, and Northern Ireland; it produces 24 provisional definitions and records 11 explicit geometry blockers

    Safety gate retained: publicly researched geometry is machine-marked provisional, cannot be selected for live lap timing, and remains timer-only until complete device capture or independent/physical validation promotes it. Manual session controls remain available alongside configurable pit automation.

    The epic exit criteria are satisfied and the native child tree is complete.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:session-uiSession workflow and driver-facing UIarea:timingLap geometry, timing, and event statearea:tracksTrack definitions, loading, selection, and toolingepicParent issue grouping a major delivery outcomepriority:highRequired for the current milestone or a correctness/reliability risk

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions