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
602 lines
14 KiB
JSON
602 lines
14 KiB
JSON
{
|
|
"schema": 1,
|
|
"meta": {
|
|
"name": "1996 Ford Mustang SVT Cobra 4.6L DOHC",
|
|
"make": "Ford",
|
|
"model": "Mustang SVT Cobra",
|
|
"years": "1996",
|
|
"engine": "4.6L DOHC 32-valve modular V8 (naturally aspirated, EEC-V, MAF-metered)",
|
|
"author": "OBDash project",
|
|
"version": "0.1.0",
|
|
"protocol": "SAE J1850 PWM",
|
|
"notes": "First OBD-II model year on early EEC-V; Ford SCP J1850 PWM at 41.6 kbps. MAF-based airflow (no MAP/speed-density). V8 with two banks: dual-bank fuel trims and pre/post-cat narrowband HO2S included. CAN-era PIDs (0142 module voltage, 0146 ambient, 0133 baro, 012F fuel level) not supported and omitted. No verifiable manufacturer-enhanced (mode 22) PIDs for this EEC-V SCP vehicle; generic ELM327 adapters widely reported to fail enhanced sessions on Ford SCP PWM. All reliable data is in the standard SAE J1979 mode-01 set. Validated: all formulas safe-evaluator-clean; fuel-trim vmax normalized to +-100."
|
|
},
|
|
"presets": {
|
|
"basic": [
|
|
"RPM",
|
|
"VSS",
|
|
"ECT",
|
|
"IAT",
|
|
"MAF",
|
|
"TPS",
|
|
"LOAD",
|
|
"TIMING",
|
|
"BATT"
|
|
],
|
|
"fuel": [
|
|
"FUEL_STATUS",
|
|
"STFT1",
|
|
"LTFT1",
|
|
"STFT2",
|
|
"LTFT2",
|
|
"O2_B1S1",
|
|
"O2_B1S2",
|
|
"O2_B2S1",
|
|
"O2_B2S2"
|
|
]
|
|
},
|
|
"pids": [
|
|
{
|
|
"key": "FUEL_STATUS",
|
|
"name": "Fuel System Status",
|
|
"mode": "01",
|
|
"pid": "03",
|
|
"nbytes": 2,
|
|
"formula": "A",
|
|
"unit": "",
|
|
"group": "fuel",
|
|
"vmin": 0,
|
|
"vmax": 255,
|
|
"confidence": "verified",
|
|
"notes": "Bitmask: 1=open loop(cold),2=closed loop. Bank1 in A, bank2 in B."
|
|
},
|
|
{
|
|
"key": "LOAD",
|
|
"name": "Calculated Engine Load",
|
|
"mode": "01",
|
|
"pid": "04",
|
|
"nbytes": 1,
|
|
"formula": "A*100/255",
|
|
"unit": "%",
|
|
"group": "engine",
|
|
"vmin": 0,
|
|
"vmax": 100,
|
|
"confidence": "verified",
|
|
"round": 0
|
|
},
|
|
{
|
|
"key": "ECT",
|
|
"name": "Engine Coolant Temp",
|
|
"mode": "01",
|
|
"pid": "05",
|
|
"nbytes": 1,
|
|
"formula": "A-40",
|
|
"unit": "C",
|
|
"group": "engine",
|
|
"vmin": -40,
|
|
"vmax": 150,
|
|
"confidence": "verified",
|
|
"round": 0
|
|
},
|
|
{
|
|
"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": 100,
|
|
"confidence": "verified",
|
|
"round": 0
|
|
},
|
|
{
|
|
"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": 100,
|
|
"confidence": "verified",
|
|
"round": 0
|
|
},
|
|
{
|
|
"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": 100,
|
|
"confidence": "verified",
|
|
"round": 0,
|
|
"notes": "V8 second bank"
|
|
},
|
|
{
|
|
"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": 100,
|
|
"confidence": "verified",
|
|
"round": 0,
|
|
"notes": "V8 second bank"
|
|
},
|
|
{
|
|
"key": "RPM",
|
|
"name": "Engine RPM",
|
|
"mode": "01",
|
|
"pid": "0C",
|
|
"nbytes": 2,
|
|
"formula": "(A*256+B)/4",
|
|
"unit": "rpm",
|
|
"group": "engine",
|
|
"vmin": 0,
|
|
"vmax": 8000,
|
|
"confidence": "verified",
|
|
"round": 0
|
|
},
|
|
{
|
|
"key": "VSS",
|
|
"name": "Vehicle Speed",
|
|
"mode": "01",
|
|
"pid": "0D",
|
|
"nbytes": 1,
|
|
"formula": "A",
|
|
"unit": "km/h",
|
|
"group": "driveline",
|
|
"vmin": 0,
|
|
"vmax": 255,
|
|
"confidence": "verified",
|
|
"round": 0
|
|
},
|
|
{
|
|
"key": "TIMING",
|
|
"name": "Ignition Timing Advance",
|
|
"mode": "01",
|
|
"pid": "0E",
|
|
"nbytes": 1,
|
|
"formula": "A/2-64",
|
|
"unit": "deg",
|
|
"group": "engine",
|
|
"vmin": -64,
|
|
"vmax": 64,
|
|
"confidence": "verified",
|
|
"round": 0
|
|
},
|
|
{
|
|
"key": "IAT",
|
|
"name": "Intake Air Temp",
|
|
"mode": "01",
|
|
"pid": "0F",
|
|
"nbytes": 1,
|
|
"formula": "A-40",
|
|
"unit": "C",
|
|
"group": "air",
|
|
"vmin": -40,
|
|
"vmax": 150,
|
|
"confidence": "verified",
|
|
"round": 0
|
|
},
|
|
{
|
|
"key": "MAF",
|
|
"name": "MAF Air Flow Rate",
|
|
"mode": "01",
|
|
"pid": "10",
|
|
"nbytes": 2,
|
|
"formula": "(A*256+B)/100",
|
|
"unit": "g/s",
|
|
"group": "air",
|
|
"vmin": 0,
|
|
"vmax": 300,
|
|
"confidence": "verified",
|
|
"round": 2,
|
|
"notes": "Cobra is MAF-metered; no MAP/speed-density"
|
|
},
|
|
{
|
|
"key": "TPS",
|
|
"name": "Throttle Position",
|
|
"mode": "01",
|
|
"pid": "11",
|
|
"nbytes": 1,
|
|
"formula": "A*100/255",
|
|
"unit": "%",
|
|
"group": "air",
|
|
"vmin": 0,
|
|
"vmax": 100,
|
|
"confidence": "verified",
|
|
"round": 0
|
|
},
|
|
{
|
|
"key": "O2_B1S1",
|
|
"name": "O2 Voltage B1S1 (upstream)",
|
|
"mode": "01",
|
|
"pid": "14",
|
|
"nbytes": 2,
|
|
"formula": "A/200",
|
|
"unit": "V",
|
|
"group": "fuel",
|
|
"vmin": 0,
|
|
"vmax": 1.275,
|
|
"confidence": "verified",
|
|
"round": 2,
|
|
"notes": "Narrowband HO2S; B = STFT (B*100/128-100)"
|
|
},
|
|
{
|
|
"key": "O2_B1S2",
|
|
"name": "O2 Voltage B1S2 (downstream)",
|
|
"mode": "01",
|
|
"pid": "15",
|
|
"nbytes": 2,
|
|
"formula": "A/200",
|
|
"unit": "V",
|
|
"group": "fuel",
|
|
"vmin": 0,
|
|
"vmax": 1.275,
|
|
"confidence": "verified",
|
|
"round": 2,
|
|
"notes": "Post-cat monitor sensor"
|
|
},
|
|
{
|
|
"key": "O2_B2S1",
|
|
"name": "O2 Voltage B2S1 (upstream)",
|
|
"mode": "01",
|
|
"pid": "18",
|
|
"nbytes": 2,
|
|
"formula": "A/200",
|
|
"unit": "V",
|
|
"group": "fuel",
|
|
"vmin": 0,
|
|
"vmax": 1.275,
|
|
"confidence": "verified",
|
|
"round": 2,
|
|
"notes": "V8 second bank upstream"
|
|
},
|
|
{
|
|
"key": "O2_B2S2",
|
|
"name": "O2 Voltage B2S2 (downstream)",
|
|
"mode": "01",
|
|
"pid": "19",
|
|
"nbytes": 2,
|
|
"formula": "A/200",
|
|
"unit": "V",
|
|
"group": "fuel",
|
|
"vmin": 0,
|
|
"vmax": 1.275,
|
|
"confidence": "verified",
|
|
"round": 2,
|
|
"notes": "V8 second bank post-cat"
|
|
},
|
|
{
|
|
"key": "OBD_STD",
|
|
"name": "OBD Standard Conformance",
|
|
"mode": "01",
|
|
"pid": "1C",
|
|
"nbytes": 1,
|
|
"formula": "A",
|
|
"unit": "",
|
|
"group": "misc",
|
|
"vmin": 0,
|
|
"vmax": 255,
|
|
"confidence": "verified",
|
|
"notes": "Reports OBD-II (US) conformance code"
|
|
},
|
|
{
|
|
"key": "RUNTIME",
|
|
"name": "Run Time Since Engine Start",
|
|
"mode": "01",
|
|
"pid": "1F",
|
|
"nbytes": 2,
|
|
"formula": "A*256+B",
|
|
"unit": "s",
|
|
"group": "engine",
|
|
"vmin": 0,
|
|
"vmax": 65535,
|
|
"confidence": "verified",
|
|
"round": 0
|
|
},
|
|
{
|
|
"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 (drive cycle not finished / battery recently disconnected)",
|
|
"system": "misc",
|
|
"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": "P1120",
|
|
"desc": "Throttle Position Sensor (TPS) out of range low",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1121",
|
|
"desc": "Throttle Position Sensor (TPS) inconsistent with MAF sensor",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1124",
|
|
"desc": "Throttle Position Sensor (TPS) out of self-test range",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1131",
|
|
"desc": "HO2S-11 (bank 1 upstream) signal indicates lean / lacks switching",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1132",
|
|
"desc": "HO2S-11 (bank 1 upstream) signal indicates rich / lacks switching",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1150",
|
|
"desc": "HO2S-21 (bank 2 upstream) signal indicates lean / lacks switching",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1151",
|
|
"desc": "HO2S-21 (bank 2 upstream) signal indicates rich / lacks switching",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1233",
|
|
"desc": "Fuel pump driver module off-line (FPDM disabled or disconnected)",
|
|
"system": "fuel",
|
|
"no_start": true
|
|
},
|
|
{
|
|
"code": "P1235",
|
|
"desc": "Fuel pump control out of range",
|
|
"system": "fuel",
|
|
"no_start": true
|
|
},
|
|
{
|
|
"code": "P1237",
|
|
"desc": "Fuel pump secondary circuit fault",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1260",
|
|
"desc": "THEFT detected - vehicle immobilized (PATS passive anti-theft, invalid key)",
|
|
"system": "misc",
|
|
"no_start": true
|
|
},
|
|
{
|
|
"code": "P1270",
|
|
"desc": "Engine RPM or vehicle speed limiter reached",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1351",
|
|
"desc": "Ignition Diagnostic Monitor (IDM) circuit input fault",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1364",
|
|
"desc": "Ignition coil primary circuit fault",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1400",
|
|
"desc": "DPFE (Differential Pressure Feedback EGR) sensor circuit low voltage",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1401",
|
|
"desc": "DPFE (Differential Pressure Feedback EGR) sensor circuit high voltage",
|
|
"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": "P1409",
|
|
"desc": "EGR Vacuum Regulator (EVR) solenoid control circuit fault",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1443",
|
|
"desc": "EVAP purge control valve / system fault",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1451",
|
|
"desc": "EVAP canister vent solenoid circuit fault",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1500",
|
|
"desc": "Vehicle Speed Sensor (VSS) 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 (IAC) system at adaptive clip",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1516",
|
|
"desc": "Intake Manifold Runner Control (IMRC) input error bank 1",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1517",
|
|
"desc": "Intake Manifold Runner Control (IMRC) input error bank 2",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1518",
|
|
"desc": "Intake Manifold Runner Control (IMRC) stuck open",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1519",
|
|
"desc": "Intake Manifold Runner Control (IMRC) stuck closed",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1520",
|
|
"desc": "Intake Manifold Runner Control (IMRC) circuit fault",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0171",
|
|
"desc": "System too lean (bank 1)",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0174",
|
|
"desc": "System too lean (bank 2)",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0172",
|
|
"desc": "System too rich (bank 1)",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0175",
|
|
"desc": "System too rich (bank 2)",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0135",
|
|
"desc": "HO2S heater circuit malfunction (bank 1 sensor 1)",
|
|
"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": "P0305",
|
|
"desc": "Cylinder 5 misfire detected",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0308",
|
|
"desc": "Cylinder 8 misfire detected",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0420",
|
|
"desc": "Catalyst system efficiency below threshold (bank 1)",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0430",
|
|
"desc": "Catalyst system efficiency below threshold (bank 2)",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0340",
|
|
"desc": "Camshaft Position (CMP) sensor circuit malfunction",
|
|
"system": "engine",
|
|
"no_start": true
|
|
},
|
|
{
|
|
"code": "P0320",
|
|
"desc": "Ignition / Crankshaft Position (CKP) sensor circuit malfunction",
|
|
"system": "engine",
|
|
"no_start": true
|
|
}
|
|
]
|
|
} |