03223dfd6c
Rename: the app is vehicle-agnostic, so 'ford-obd' was wrong. Rebranded all code/docs/profile authors to OBDash; Gitea repo renamed justin/ford-obd -> justin/obdash (remote + description updated). Ford the make and the ford-6.0-powerstroke profile are unchanged (that vehicle really is a Ford). Multi-axis upgrade (per request): - MultiAxisPlot now gives each METRIC its own Y axis, each axis colored to match its line; the primary metric owns the LEFT axis, others stack right. - Click a line to promote it to the left axis (sigClicked -> set_primary). - Cleaner teardown (no removeItem warnings); axis label no longer doubles the unit; Normalize round-trips. Validated headless: colored per-metric axes, promote-to-left, gauge view, normalize toggle, profile switch; obdcore + diagnostics tests pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016yT89n4zR4qbrySoSiEyZs
642 lines
14 KiB
JSON
642 lines
14 KiB
JSON
{
|
|
"schema": 1,
|
|
"meta": {
|
|
"name": "1996 Ford Mustang GT 4.6L SOHC 2-valve",
|
|
"make": "Ford",
|
|
"model": "Mustang GT",
|
|
"years": "1996",
|
|
"engine": "4.6L SOHC 2-valve modular V8 (EEC-V, MAF-metered)",
|
|
"author": "OBDash project",
|
|
"version": "0.1.0",
|
|
"protocol": "SAE J1850 PWM",
|
|
"notes": "EEC-V PCM on SAE J1850 PWM (41.6 kbaud, OBD-II pins 2 & 10). MAF-metered V8 with dual exhaust: four heated O2 sensors (B1S1/B1S2/B2S1/B2S2) and two fuel-trim banks. Bank 1 = passenger side (cyl #1). Standard SAE J1979 Mode-01 backbone; no verifiable mode-22 enhanced PIDs published for this early EEC-V generation."
|
|
},
|
|
"presets": {
|
|
"basic": [
|
|
"RPM",
|
|
"VSS",
|
|
"ECT",
|
|
"MAF",
|
|
"TPS",
|
|
"LOAD",
|
|
"TIMING",
|
|
"IAT",
|
|
"BATT"
|
|
],
|
|
"fuel": [
|
|
"STFT1",
|
|
"LTFT1",
|
|
"STFT2",
|
|
"LTFT2",
|
|
"O2_B1S1",
|
|
"O2_B1S2",
|
|
"O2_B2S1",
|
|
"O2_B2S2"
|
|
]
|
|
},
|
|
"pids": [
|
|
{
|
|
"key": "LOAD",
|
|
"name": "Calculated Engine Load",
|
|
"mode": "01",
|
|
"pid": "04",
|
|
"nbytes": 1,
|
|
"formula": "A*100/255",
|
|
"unit": "%",
|
|
"group": "engine",
|
|
"vmin": 0,
|
|
"vmax": 100,
|
|
"round": 0,
|
|
"confidence": "verified"
|
|
},
|
|
{
|
|
"key": "ECT",
|
|
"name": "Engine Coolant Temp",
|
|
"mode": "01",
|
|
"pid": "05",
|
|
"nbytes": 1,
|
|
"formula": "A-40",
|
|
"unit": "C",
|
|
"group": "engine",
|
|
"vmin": -40,
|
|
"vmax": 120,
|
|
"round": 0,
|
|
"confidence": "verified"
|
|
},
|
|
{
|
|
"key": "STFT1",
|
|
"name": "Short Term Fuel Trim B1",
|
|
"mode": "01",
|
|
"pid": "06",
|
|
"nbytes": 1,
|
|
"formula": "A*100/128-100",
|
|
"unit": "%",
|
|
"group": "fuel",
|
|
"vmin": -100,
|
|
"vmax": 99.2,
|
|
"round": 1,
|
|
"confidence": "verified",
|
|
"notes": "Bank 1 = passenger side (cyl #1)"
|
|
},
|
|
{
|
|
"key": "LTFT1",
|
|
"name": "Long Term Fuel Trim B1",
|
|
"mode": "01",
|
|
"pid": "07",
|
|
"nbytes": 1,
|
|
"formula": "A*100/128-100",
|
|
"unit": "%",
|
|
"group": "fuel",
|
|
"vmin": -100,
|
|
"vmax": 99.2,
|
|
"round": 1,
|
|
"confidence": "verified",
|
|
"notes": "Bank 1 = passenger side (cyl #1)"
|
|
},
|
|
{
|
|
"key": "STFT2",
|
|
"name": "Short Term Fuel Trim B2",
|
|
"mode": "01",
|
|
"pid": "08",
|
|
"nbytes": 1,
|
|
"formula": "A*100/128-100",
|
|
"unit": "%",
|
|
"group": "fuel",
|
|
"vmin": -100,
|
|
"vmax": 99.2,
|
|
"round": 1,
|
|
"confidence": "verified",
|
|
"notes": "Bank 2 = driver side"
|
|
},
|
|
{
|
|
"key": "LTFT2",
|
|
"name": "Long Term Fuel Trim B2",
|
|
"mode": "01",
|
|
"pid": "09",
|
|
"nbytes": 1,
|
|
"formula": "A*100/128-100",
|
|
"unit": "%",
|
|
"group": "fuel",
|
|
"vmin": -100,
|
|
"vmax": 99.2,
|
|
"round": 1,
|
|
"confidence": "verified",
|
|
"notes": "Bank 2 = driver side"
|
|
},
|
|
{
|
|
"key": "RPM",
|
|
"name": "Engine RPM",
|
|
"mode": "01",
|
|
"pid": "0C",
|
|
"nbytes": 2,
|
|
"formula": "(A*256+B)/4",
|
|
"unit": "rpm",
|
|
"group": "engine",
|
|
"vmin": 0,
|
|
"vmax": 7000,
|
|
"round": 0,
|
|
"confidence": "verified"
|
|
},
|
|
{
|
|
"key": "VSS",
|
|
"name": "Vehicle Speed",
|
|
"mode": "01",
|
|
"pid": "0D",
|
|
"nbytes": 1,
|
|
"formula": "A",
|
|
"unit": "km/h",
|
|
"group": "driveline",
|
|
"vmin": 0,
|
|
"vmax": 255,
|
|
"round": 0,
|
|
"confidence": "verified"
|
|
},
|
|
{
|
|
"key": "TIMING",
|
|
"name": "Timing Advance",
|
|
"mode": "01",
|
|
"pid": "0E",
|
|
"nbytes": 1,
|
|
"formula": "A/2-64",
|
|
"unit": "deg",
|
|
"group": "engine",
|
|
"vmin": -64,
|
|
"vmax": 63.5,
|
|
"round": 1,
|
|
"confidence": "verified"
|
|
},
|
|
{
|
|
"key": "IAT",
|
|
"name": "Intake Air Temp",
|
|
"mode": "01",
|
|
"pid": "0F",
|
|
"nbytes": 1,
|
|
"formula": "A-40",
|
|
"unit": "C",
|
|
"group": "air",
|
|
"vmin": -40,
|
|
"vmax": 120,
|
|
"round": 0,
|
|
"confidence": "verified",
|
|
"notes": "Ford ACT sensor"
|
|
},
|
|
{
|
|
"key": "MAF",
|
|
"name": "Mass Air Flow",
|
|
"mode": "01",
|
|
"pid": "10",
|
|
"nbytes": 2,
|
|
"formula": "(A*256+B)/100",
|
|
"unit": "g/s",
|
|
"group": "air",
|
|
"vmin": 0,
|
|
"vmax": 300,
|
|
"round": 2,
|
|
"confidence": "verified",
|
|
"notes": "4.6L is MAF-metered; MAP PID 010B not reported"
|
|
},
|
|
{
|
|
"key": "TPS",
|
|
"name": "Throttle Position",
|
|
"mode": "01",
|
|
"pid": "11",
|
|
"nbytes": 1,
|
|
"formula": "A*100/255",
|
|
"unit": "%",
|
|
"group": "air",
|
|
"vmin": 0,
|
|
"vmax": 100,
|
|
"round": 0,
|
|
"confidence": "verified"
|
|
},
|
|
{
|
|
"key": "O2_B1S1",
|
|
"name": "O2 Bank 1 Sensor 1",
|
|
"mode": "01",
|
|
"pid": "14",
|
|
"nbytes": 2,
|
|
"formula": "A/200",
|
|
"unit": "V",
|
|
"group": "fuel",
|
|
"vmin": 0,
|
|
"vmax": 1.275,
|
|
"round": 2,
|
|
"confidence": "verified",
|
|
"notes": "Pre-cat, bank 1; byte B is STFT trim"
|
|
},
|
|
{
|
|
"key": "O2_B1S2",
|
|
"name": "O2 Bank 1 Sensor 2",
|
|
"mode": "01",
|
|
"pid": "15",
|
|
"nbytes": 2,
|
|
"formula": "A/200",
|
|
"unit": "V",
|
|
"group": "fuel",
|
|
"vmin": 0,
|
|
"vmax": 1.275,
|
|
"round": 2,
|
|
"confidence": "verified",
|
|
"notes": "Post-cat, bank 1"
|
|
},
|
|
{
|
|
"key": "O2_B2S1",
|
|
"name": "O2 Bank 2 Sensor 1",
|
|
"mode": "01",
|
|
"pid": "18",
|
|
"nbytes": 2,
|
|
"formula": "A/200",
|
|
"unit": "V",
|
|
"group": "fuel",
|
|
"vmin": 0,
|
|
"vmax": 1.275,
|
|
"round": 2,
|
|
"confidence": "verified",
|
|
"notes": "Pre-cat, bank 2; byte B is STFT trim"
|
|
},
|
|
{
|
|
"key": "O2_B2S2",
|
|
"name": "O2 Bank 2 Sensor 2",
|
|
"mode": "01",
|
|
"pid": "19",
|
|
"nbytes": 2,
|
|
"formula": "A/200",
|
|
"unit": "V",
|
|
"group": "fuel",
|
|
"vmin": 0,
|
|
"vmax": 1.275,
|
|
"round": 2,
|
|
"confidence": "verified",
|
|
"notes": "Post-cat, bank 2 (dual exhaust)"
|
|
},
|
|
{
|
|
"key": "RUNTIME",
|
|
"name": "Run Time Since Start",
|
|
"mode": "01",
|
|
"pid": "1F",
|
|
"nbytes": 2,
|
|
"formula": "A*256+B",
|
|
"unit": "s",
|
|
"group": "misc",
|
|
"vmin": 0,
|
|
"vmax": 65535,
|
|
"round": 0,
|
|
"confidence": "verified"
|
|
},
|
|
{
|
|
"key": "BATT",
|
|
"name": "Battery (OBD port)",
|
|
"mode": "atrv",
|
|
"unit": "V",
|
|
"group": "power",
|
|
"vmin": 0,
|
|
"vmax": 16,
|
|
"confidence": "verified",
|
|
"notes": "ELM327 ATRV pin voltage"
|
|
}
|
|
],
|
|
"dtcs": [
|
|
{
|
|
"code": "P1000",
|
|
"desc": "OBD-II monitor testing not complete (readiness not set; common after battery/PCM reset)",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1100",
|
|
"desc": "Mass Air Flow (MAF) sensor circuit intermittent",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1101",
|
|
"desc": "Mass Air Flow (MAF) sensor out of self-test range",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1112",
|
|
"desc": "Intake Air Temperature (IAT) sensor circuit intermittent",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1116",
|
|
"desc": "Engine Coolant Temperature (ECT) sensor out of self-test range",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1120",
|
|
"desc": "Throttle Position (TP) sensor out of range low",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1124",
|
|
"desc": "Throttle Position (TP) sensor out of self-test range",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1127",
|
|
"desc": "Exhaust not warm enough; downstream HO2S not tested",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1128",
|
|
"desc": "Upstream HO2S sensors swapped (Bank 1/Bank 2 reversed)",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1130",
|
|
"desc": "Lack of HO2S switching / adaptive fuel at limit, Bank 1",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1131",
|
|
"desc": "HO2S indicates lean, Bank 1 Sensor 1",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1132",
|
|
"desc": "HO2S indicates rich, Bank 1 Sensor 1",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1137",
|
|
"desc": "HO2S indicates lean, Bank 1 Sensor 2 (downstream)",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1150",
|
|
"desc": "Lack of HO2S switching / adaptive fuel at limit, Bank 2",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1151",
|
|
"desc": "HO2S indicates lean, Bank 2 Sensor 1",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1152",
|
|
"desc": "HO2S indicates rich, Bank 2 Sensor 1",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1351",
|
|
"desc": "Ignition Diagnostic Monitor (IDM) circuit input fault",
|
|
"system": "engine",
|
|
"no_start": true
|
|
},
|
|
{
|
|
"code": "P1352",
|
|
"desc": "Ignition coil A primary circuit fault",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1400",
|
|
"desc": "DPFE (EGR pressure feedback) sensor circuit low",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1401",
|
|
"desc": "DPFE (EGR pressure feedback) sensor circuit high",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1405",
|
|
"desc": "DPFE sensor upstream hose off or plugged",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1406",
|
|
"desc": "DPFE sensor downstream hose off or plugged",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1408",
|
|
"desc": "EGR flow out of self-test range",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1409",
|
|
"desc": "EGR Vacuum Regulator (EVR) solenoid control circuit fault",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1443",
|
|
"desc": "EVAP control system / purge valve fault",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1450",
|
|
"desc": "Unable to bleed up fuel tank vacuum (EVAP)",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1455",
|
|
"desc": "EVAP system gross leak / no flow detected",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1460",
|
|
"desc": "Wide-open-throttle A/C relay cutoff circuit fault",
|
|
"system": "misc",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1474",
|
|
"desc": "Low fan control primary circuit fault",
|
|
"system": "misc",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1500",
|
|
"desc": "Vehicle Speed Sensor (VSS) circuit intermittent",
|
|
"system": "driveline",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1504",
|
|
"desc": "Idle Air Control (IAC) circuit malfunction",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1505",
|
|
"desc": "Idle Air Control system at adaptive clip",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1506",
|
|
"desc": "Idle Air Control overspeed error",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1507",
|
|
"desc": "Idle Air Control underspeed error",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1605",
|
|
"desc": "PCM Keep Alive Memory (KAM) test error",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1744",
|
|
"desc": "Torque Converter Clutch (TCC) system stuck (4R70W auto)",
|
|
"system": "driveline",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1747",
|
|
"desc": "Electronic Pressure Control (EPC) solenoid circuit fault (4R70W)",
|
|
"system": "driveline",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0102",
|
|
"desc": "Mass Air Flow (MAF) circuit low input",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0113",
|
|
"desc": "Intake Air Temperature (IAT) circuit high input",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0125",
|
|
"desc": "Insufficient coolant temp for closed-loop fuel control",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0171",
|
|
"desc": "System too lean, Bank 1",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0172",
|
|
"desc": "System too rich, Bank 1",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0174",
|
|
"desc": "System too lean, Bank 2",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0175",
|
|
"desc": "System too rich, Bank 2",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0300",
|
|
"desc": "Random/multiple cylinder misfire detected",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0301",
|
|
"desc": "Cylinder 1 misfire detected",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0302",
|
|
"desc": "Cylinder 2 misfire detected",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0303",
|
|
"desc": "Cylinder 3 misfire detected",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0304",
|
|
"desc": "Cylinder 4 misfire detected",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0305",
|
|
"desc": "Cylinder 5 misfire detected",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0306",
|
|
"desc": "Cylinder 6 misfire detected",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0307",
|
|
"desc": "Cylinder 7 misfire detected",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0308",
|
|
"desc": "Cylinder 8 misfire detected",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0401",
|
|
"desc": "EGR insufficient flow detected",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0402",
|
|
"desc": "EGR excessive flow detected",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0420",
|
|
"desc": "Catalyst system efficiency below threshold, Bank 1",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0430",
|
|
"desc": "Catalyst system efficiency below threshold, Bank 2",
|
|
"system": "engine",
|
|
"no_start": false
|
|
}
|
|
]
|
|
} |