Files
obdash/profiles/ford-mustang-gt-4.6-1996.json
T
justin 03223dfd6c Rename project to OBDash + per-metric colored multi-axis
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
2026-06-30 15:25:26 -04:00

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
}
]
}