registry: add remaining documented Ford 6.0 PIDs (20 -> 27)
The initial registry was a curated core; add the rest of the PIDs the
ford-60-pid-hunt workflow surfaced, with honest confidence tags:
- doc: VGT duty (096D), Fan speed (099F)
- tentative: Injection timing (09CC, *10/64 not /10), PCM battery (1172),
fuel-pump duty (1672), fuel level (16C1, uncalibrated),
mass-fuel-desired (1411, raw only -- no verified GPH formula)
Add VGT to the driving preset. Tests still pass.
Tier reminder: 'verified' = multi-source/standard or truck-confirmed; the
on-truck-confirmed subset remains ICP/EBP/MAP/BARO/EOT/gear/TSS + FICM_M.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016yT89n4zR4qbrySoSiEyZs
This commit is contained in:
+23
-1
@@ -89,6 +89,28 @@ def _build():
|
||||
lambda b: round(b[0] * 100 / 255), "%", "engine", 0, 100, "verified"))
|
||||
a(Pid("VPCM", "Module Voltage", "01", "42", 2,
|
||||
lambda b: round(_u16(b) / 1000.0, 2), "V", "power", 0, 16, "verified"))
|
||||
# ---- More documented PIDs from the workflow (not yet truck-verified) ----
|
||||
a(Pid("VGT", "VGT Duty Cycle", "22", "096D", 2,
|
||||
lambda b: round(_u16(b) * 100 / 32767, 1), "%", "air", 0, 100,
|
||||
"doc", notes="turbo vane duty"))
|
||||
a(Pid("FAN", "Fan Speed", "22", "099F", 2,
|
||||
lambda b: round(_u16(b) / 4), "rpm", "engine", 0, 4000,
|
||||
"doc", notes="real ceiling ~3500"))
|
||||
a(Pid("INJ_TIMING", "Injection Timing", "22", "09CC", 2,
|
||||
lambda b: round(_u16(b) * 10 / 64, 1), "degBTDC", "fuel", -10, 30,
|
||||
"tentative", notes="scaling disputed; using *10/64 (ScanGauge), not /10"))
|
||||
a(Pid("VBAT", "Battery (PCM)", "22", "1172", 1,
|
||||
lambda b: round(b[0] / 16, 1), "V", "power", 0, 16,
|
||||
"tentative", notes="PCM-reported B+; distinct from ATRV port voltage"))
|
||||
a(Pid("FUEL_PUMP", "Fuel Pump Duty (HFCM)", "22", "1672", 1,
|
||||
lambda b: round(b[0] * 100 / 128, 1), "%", "fuel", 0, 100,
|
||||
"tentative", notes="sits ~100%, drops on high EOT"))
|
||||
a(Pid("FUEL_LVL", "Fuel Level", "22", "16C1", 2,
|
||||
lambda b: round(_u16(b) * 100 / 328, 1), "%", "misc", 0, 100,
|
||||
"tentative", notes="UNCALIBRATED -- needs per-truck full/empty cal"))
|
||||
a(Pid("MFDES", "Mass Fuel Desired", "22", "1411", 2,
|
||||
lambda b: _u16(b), "raw", "fuel", 0, 65535,
|
||||
"tentative", notes="~mg/stroke internal count; no verified GPH formula"))
|
||||
# ---- Pseudo / derived ----
|
||||
a(Pid("BATT", "Battery (OBD port)", "atrv", "", 0,
|
||||
None, "V", "power", 0, 16, "verified"))
|
||||
@@ -101,7 +123,7 @@ def _build():
|
||||
# Subscription presets per perspective (key -> default poll Hz set by scheduler)
|
||||
PRESETS = {
|
||||
"crank": ["ICP", "FICM_M", "BATT", "RPM"],
|
||||
"driving": ["BOOST", "EOT", "ECT", "EBP", "LOAD", "RPM", "IPR", "FICM_M", "BATT"],
|
||||
"driving": ["BOOST", "VGT", "EOT", "ECT", "EBP", "LOAD", "RPM", "IPR", "BATT"],
|
||||
"vitals": ["ICP", "FICM_M", "FICM_L", "IPR", "BATT", "RPM", "ECT", "EOT",
|
||||
"IAT", "VPCM"],
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user