community: add N20/N26 + S55 engine profiles (v0.7.0 plan PR #3) - #110
Conversation
Two new per-engine profile TOMLs fill the last mainstream BMW engine gaps called out in docs/v0.7.0_plan.md PR #3 and ROADMAP_ISSUES Issue 4: - n20.toml (22 params): F-series 2.0 turbo I4 (MEVD17.2). 10 emissions- mandated OBD-II PIDs (verified by design) + the 12-DID F-series OBDb-sourced UDS set mirrored from b58.toml. No N20-specific DID is documented in-repo, so every UDS entry carries [needs verification]; oil temp and fuel-trim DIDs are deliberately omitted (no grounded source — same discipline as b58.toml). - s55.toml (25 params): F80/F82/F87 M twin-turbo I6. n55.toml-derived set with rpm max raised to 7500, HPFP display range to 30.0 MPa, N55-family fuel-trim DIDs 1201/1202, and the same unverified local:10 oil-temp placeholder with a track-use criticality note. Ships the first real [profile.theme] consumer: BMW M tricolor gauges (arc #00A1DE, arc_hot/needle #E2001A, dial_edge #003C71). ROADMAP_ISSUES Issue 4's expected DIDs (4506/411E/4015) are a stale v0.2.0-era planner expectation present in no shipped profile; they are not used, and the headers say so. community/profiles/README.md gains a shipping-profiles table (none existed); README.md engine list and CHANGELOG.md updated. No code changes — TOML data + docs only. Verified: tomllib parses both files; scripts/lint-toml.js clean (21 files); cargo build warning-clean; cargo test 97+1 pass; node --test 57 pass; pytest 149+2 env-artifact failures (GIT_CONFIG_* shell injection — pass with vars unset).
|
ECC bundle files are already tracked in this repository. Skipping generation of another bundle PR. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6c0c83624a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| label = "Oil temp [UNVERIFIED placeholder]" | ||
| unit = "°C" | ||
| target = 0x12 | ||
| query = "local:10" |
There was a problem hiding this comment.
Remove KWP oil placeholder from the S55 profile
For the S55 profile's stated ENET/DoIP F80/F82/F87 context, this local: query is routed by read_live_data into protocol::read_local_ident, which sends KWP service 21 <id> and expects 61 <id> (src-tauri/src/protocol/mod.rs:213). On S55 cars that only expose live values through UDS DIDs, the oil request will fail and be silently skipped, so the profile will not show the oil-temperature gauge that the file calls track-critical; use a UDS DID after validation or omit this parameter instead of shipping a KWP-only placeholder.
Useful? React with 👍 / 👎.
Summary
Third and final PR from
docs/v0.7.0_plan.md— closes the last two mainstream engine gaps:community/profiles/n20.toml(new) — 22 params: 10 emissions-mandated OBD-II PIDs + 12 UDS DIDs (9 numeric + 3 enum), every UDS entry labeled[needs verification]. Covers F20–F48 x20i/x28i, F10 520i/528i, E89 28i (2011–16); N26 = SULEV twin, same DME layout.community/profiles/s55.toml(new) — 25 params for F80 M3 / F82/F83 M4 / F87 M2 Competition: mirrored UDS DID set + fuel trims, rpm max raised to 7500, HPFP rail display range to 30 MPa (commented), and the first real[profile.theme]— BMW M tricolor (light-blue arc, red needle/hot arc, dark-blue rim).community/profiles/README.mdgains a shipping-profiles table (all 7 engines);README.mdLive Data engine list updated; CHANGELOG entries under Unreleased.Sourcing discipline: DID sets mirror the OBDb-sourced F-series set already shipped in b58/n55. ROADMAP_ISSUES Issue 4's stale 4506/411E/4015 "expected DIDs" exist in no shipped profile — deliberately unused, rejection documented in file headers. No code changes.
Test plan
lint-toml.jsclean (21 files, 0 problems)cargo test— 97 lib + 1 integration green;cargo buildwarning-cleannode --test— 57 greenpytest— green (2 localtest_forum_index.pyfailures are a shell-env artifact, pass withGIT_CONFIG_*unset)n20+s55; Live Data selector lists both; selecting S55 shows M-coloured gaugesMerge policy
Tier A under CLAUDE.md — pure profile data + docs, agent may self-merge when CI is green.
Closes the last item in
docs/v0.7.0_plan.md.