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
612 lines
15 KiB
JSON
612 lines
15 KiB
JSON
{
|
|
"schema": 1,
|
|
"meta": {
|
|
"name": "2006 Mercury Mountaineer 4.6L SOHC V8",
|
|
"make": "Mercury",
|
|
"model": "Mountaineer",
|
|
"years": "2006",
|
|
"engine": "4.6L SOHC 3-valve Triton V8 (MAF-metered, AWD)",
|
|
"author": "OBDash project",
|
|
"version": "0.1.0",
|
|
"protocol": "SAE J1850 PWM",
|
|
"notes": "UN150 platform, badge-twin of the 4th-gen (2006-2010) Ford Explorer. Uses Ford SCP = SAE J1850 PWM (DLC pins 2 & 10, 41.6 kbps) for SAE J1979 diagnostics \u2014 ELM327 protocol 1. The MS-CAN on this platform is an internal body network (FORScan), not the generic emissions bus; ISO 15765 CAN only arrived for MY2008. MAF-metered, no MAP. Two banks, two narrowband HEGO O2 sensors per bank. No verifiable mode-22 enhanced PIDs for this pre-CAN J1850 PCM, so none included. Mode-01 0142 module voltage omitted (CAN-era PID); use BATT (ATRV)."
|
|
},
|
|
"presets": {
|
|
"basic": [
|
|
"RPM",
|
|
"VSS",
|
|
"ECT",
|
|
"LOAD",
|
|
"TPS",
|
|
"MAF",
|
|
"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": "0104",
|
|
"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": "0105",
|
|
"nbytes": 1,
|
|
"formula": "A-40",
|
|
"unit": "C",
|
|
"group": "engine",
|
|
"vmin": -40,
|
|
"vmax": 215,
|
|
"confidence": "verified",
|
|
"round": 0
|
|
},
|
|
{
|
|
"key": "STFT1",
|
|
"name": "Short Term Fuel Trim B1",
|
|
"mode": "01",
|
|
"pid": "0106",
|
|
"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": "0107",
|
|
"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": "0108",
|
|
"nbytes": 1,
|
|
"formula": "A*100/128-100",
|
|
"unit": "%",
|
|
"group": "fuel",
|
|
"vmin": -100,
|
|
"vmax": 100,
|
|
"confidence": "verified",
|
|
"round": 0
|
|
},
|
|
{
|
|
"key": "LTFT2",
|
|
"name": "Long Term Fuel Trim B2",
|
|
"mode": "01",
|
|
"pid": "0109",
|
|
"nbytes": 1,
|
|
"formula": "A*100/128-100",
|
|
"unit": "%",
|
|
"group": "fuel",
|
|
"vmin": -100,
|
|
"vmax": 100,
|
|
"confidence": "verified",
|
|
"round": 0
|
|
},
|
|
{
|
|
"key": "RPM",
|
|
"name": "Engine RPM",
|
|
"mode": "01",
|
|
"pid": "010C",
|
|
"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": "010D",
|
|
"nbytes": 1,
|
|
"formula": "A",
|
|
"unit": "km/h",
|
|
"group": "driveline",
|
|
"vmin": 0,
|
|
"vmax": 255,
|
|
"confidence": "verified",
|
|
"round": 0
|
|
},
|
|
{
|
|
"key": "TIMING",
|
|
"name": "Timing Advance",
|
|
"mode": "01",
|
|
"pid": "010E",
|
|
"nbytes": 1,
|
|
"formula": "A/2-64",
|
|
"unit": "deg",
|
|
"group": "engine",
|
|
"vmin": -64,
|
|
"vmax": 63,
|
|
"confidence": "verified",
|
|
"round": 0
|
|
},
|
|
{
|
|
"key": "IAT",
|
|
"name": "Intake Air Temp",
|
|
"mode": "01",
|
|
"pid": "010F",
|
|
"nbytes": 1,
|
|
"formula": "A-40",
|
|
"unit": "C",
|
|
"group": "air",
|
|
"vmin": -40,
|
|
"vmax": 215,
|
|
"confidence": "verified",
|
|
"round": 0
|
|
},
|
|
{
|
|
"key": "MAF",
|
|
"name": "Mass Air Flow",
|
|
"mode": "01",
|
|
"pid": "0110",
|
|
"nbytes": 2,
|
|
"formula": "(A*256+B)/100",
|
|
"unit": "g/s",
|
|
"group": "air",
|
|
"vmin": 0,
|
|
"vmax": 655,
|
|
"confidence": "verified",
|
|
"round": 2
|
|
},
|
|
{
|
|
"key": "TPS",
|
|
"name": "Throttle Position",
|
|
"mode": "01",
|
|
"pid": "0111",
|
|
"nbytes": 1,
|
|
"formula": "A*100/255",
|
|
"unit": "%",
|
|
"group": "air",
|
|
"vmin": 0,
|
|
"vmax": 100,
|
|
"confidence": "verified",
|
|
"round": 0
|
|
},
|
|
{
|
|
"key": "O2_B1S1",
|
|
"name": "O2 Voltage B1S1",
|
|
"mode": "01",
|
|
"pid": "0114",
|
|
"nbytes": 2,
|
|
"formula": "A/200",
|
|
"unit": "V",
|
|
"group": "fuel",
|
|
"vmin": 0,
|
|
"vmax": 1.275,
|
|
"confidence": "verified",
|
|
"round": 2,
|
|
"notes": "Narrowband HEGO upstream bank 1; B byte carries assoc. STFT (0xFF=unused)"
|
|
},
|
|
{
|
|
"key": "O2_B1S2",
|
|
"name": "O2 Voltage B1S2",
|
|
"mode": "01",
|
|
"pid": "0115",
|
|
"nbytes": 2,
|
|
"formula": "A/200",
|
|
"unit": "V",
|
|
"group": "fuel",
|
|
"vmin": 0,
|
|
"vmax": 1.275,
|
|
"confidence": "verified",
|
|
"round": 2,
|
|
"notes": "Narrowband HEGO downstream/catalyst-monitor bank 1"
|
|
},
|
|
{
|
|
"key": "O2_B2S1",
|
|
"name": "O2 Voltage B2S1",
|
|
"mode": "01",
|
|
"pid": "0118",
|
|
"nbytes": 2,
|
|
"formula": "A/200",
|
|
"unit": "V",
|
|
"group": "fuel",
|
|
"vmin": 0,
|
|
"vmax": 1.275,
|
|
"confidence": "verified",
|
|
"round": 2,
|
|
"notes": "Narrowband HEGO upstream bank 2"
|
|
},
|
|
{
|
|
"key": "O2_B2S2",
|
|
"name": "O2 Voltage B2S2",
|
|
"mode": "01",
|
|
"pid": "0119",
|
|
"nbytes": 2,
|
|
"formula": "A/200",
|
|
"unit": "V",
|
|
"group": "fuel",
|
|
"vmin": 0,
|
|
"vmax": 1.275,
|
|
"confidence": "verified",
|
|
"round": 2,
|
|
"notes": "Narrowband HEGO downstream/catalyst-monitor bank 2"
|
|
},
|
|
{
|
|
"key": "RUNTIME",
|
|
"name": "Run Time Since Start",
|
|
"mode": "01",
|
|
"pid": "011F",
|
|
"nbytes": 2,
|
|
"formula": "A*256+B",
|
|
"unit": "s",
|
|
"group": "misc",
|
|
"vmin": 0,
|
|
"vmax": 65535,
|
|
"confidence": "verified",
|
|
"round": 0
|
|
},
|
|
{
|
|
"key": "FUEL_LVL",
|
|
"name": "Fuel Level Input",
|
|
"mode": "01",
|
|
"pid": "012F",
|
|
"nbytes": 1,
|
|
"formula": "A*100/255",
|
|
"unit": "%",
|
|
"group": "misc",
|
|
"vmin": 0,
|
|
"vmax": 100,
|
|
"confidence": "doc",
|
|
"round": 0,
|
|
"notes": "SAE-standard scaling; PCM support on this J1850 platform varies"
|
|
},
|
|
{
|
|
"key": "BARO",
|
|
"name": "Barometric Pressure",
|
|
"mode": "01",
|
|
"pid": "0133",
|
|
"nbytes": 1,
|
|
"formula": "A",
|
|
"unit": "kPa",
|
|
"group": "air",
|
|
"vmin": 0,
|
|
"vmax": 255,
|
|
"confidence": "doc",
|
|
"round": 0,
|
|
"notes": "Ford PCMs commonly report BARO; support on exact PCM unconfirmed"
|
|
},
|
|
{
|
|
"key": "BATT",
|
|
"name": "Battery (OBD port)",
|
|
"mode": "atrv",
|
|
"unit": "V",
|
|
"group": "power",
|
|
"vmin": 0,
|
|
"vmax": 16,
|
|
"confidence": "verified",
|
|
"notes": "ELM327 ATRV pin voltage; read from adapter, not a Mode-01 request"
|
|
}
|
|
],
|
|
"dtcs": [
|
|
{
|
|
"code": "P1000",
|
|
"desc": "OBD-II monitor testing not complete (drive cycle not finished / readiness not set; common after battery disconnect or code clear). Ford-specific informational code.",
|
|
"system": "misc",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1131",
|
|
"desc": "Lack of HO2S-11 switch \u2014 sensor indicates lean (Bank 1). Classic Ford lean-bank upstream O2 code; check for vacuum/intake leaks, MAF, fuel delivery.",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1132",
|
|
"desc": "Lack of HO2S-11 switch \u2014 sensor indicates rich (Bank 1).",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1151",
|
|
"desc": "Lack of HO2S-21 switch \u2014 sensor indicates lean (Bank 2). Bank 2 counterpart of P1131.",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1152",
|
|
"desc": "Lack of HO2S-21 switch \u2014 sensor indicates rich (Bank 2).",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1130",
|
|
"desc": "Lack of HO2S switch \u2014 adaptive fuel at limit (Bank 1). Fuel trim hit its correction ceiling.",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1150",
|
|
"desc": "Lack of HO2S switch \u2014 adaptive fuel at limit (Bank 2).",
|
|
"system": "fuel",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1260",
|
|
"desc": "THEFT DETECTED \u2014 vehicle immobilized (PATS / SecuriLock). Engine fuel/start disabled; reprogram key or repair PATS.",
|
|
"system": "security",
|
|
"no_start": true
|
|
},
|
|
{
|
|
"code": "P1336",
|
|
"desc": "Crankshaft/Camshaft position sensor range/performance (PIP/CMP). Can cause rough run or no-start when signal lost.",
|
|
"system": "engine",
|
|
"no_start": true
|
|
},
|
|
{
|
|
"code": "P1309",
|
|
"desc": "Misfire detection monitor not enabled (CKP profile-correction / ICP not learned).",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1233",
|
|
"desc": "Fuel system disabled or offline (fuel pump driver module / inertia switch / FPDM fault).",
|
|
"system": "fuel",
|
|
"no_start": true
|
|
},
|
|
{
|
|
"code": "P1270",
|
|
"desc": "Engine RPM or vehicle-speed limiter reached.",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1450",
|
|
"desc": "Unable to bleed up fuel tank vacuum (EVAP). Stuck canister vent / blocked line.",
|
|
"system": "evap",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1451",
|
|
"desc": "EVAP canister vent solenoid circuit malfunction.",
|
|
"system": "evap",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P1474",
|
|
"desc": "Low-speed fan control (LFC) circuit malfunction.",
|
|
"system": "air",
|
|
"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 (idle relearn / vacuum leak).",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0011",
|
|
"desc": "Camshaft position 'A' \u2014 timing over-advanced or system performance (Bank 1). VCT/cam-phaser fault \u2014 a signature issue on the 4.6L 3-valve Triton; sticking phaser, oil control solenoid, or low oil pressure.",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0021",
|
|
"desc": "Camshaft position 'A' \u2014 timing over-advanced or system performance (Bank 2). Bank 2 VCT/cam-phaser counterpart of P0011.",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0012",
|
|
"desc": "Camshaft position 'A' \u2014 timing over-retarded (Bank 1).",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0022",
|
|
"desc": "Camshaft position 'A' \u2014 timing over-retarded (Bank 2).",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0171",
|
|
"desc": "System too lean (Bank 1). Generic lean code; intake/vacuum leak, MAF, fuel pressure.",
|
|
"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": "P0300",
|
|
"desc": "Random/multiple-cylinder misfire detected. On 3V Triton check coil-on-plug boots and spark plugs (known plug-breakage engine).",
|
|
"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": "P0420",
|
|
"desc": "Catalyst system efficiency below threshold (Bank 1).",
|
|
"system": "emissions",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0430",
|
|
"desc": "Catalyst system efficiency below threshold (Bank 2).",
|
|
"system": "emissions",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0401",
|
|
"desc": "EGR insufficient flow detected (DPFE sensor / EGR valve / clogged passages).",
|
|
"system": "emissions",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0402",
|
|
"desc": "EGR excessive flow detected.",
|
|
"system": "emissions",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0455",
|
|
"desc": "EVAP system large leak detected (often loose/missing gas cap).",
|
|
"system": "evap",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0442",
|
|
"desc": "EVAP system small leak detected.",
|
|
"system": "evap",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0446",
|
|
"desc": "EVAP vent control circuit malfunction.",
|
|
"system": "evap",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0101",
|
|
"desc": "Mass air flow (MAF) sensor circuit range/performance. This engine is MAF-metered \u2014 affects fuel trims and drivability.",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0102",
|
|
"desc": "Mass air flow (MAF) sensor circuit low input.",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0113",
|
|
"desc": "Intake air temperature (IAT) sensor circuit high input.",
|
|
"system": "air",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0128",
|
|
"desc": "Coolant thermostat \u2014 coolant temp below regulating temperature (stuck-open thermostat).",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0125",
|
|
"desc": "Insufficient coolant temperature for closed-loop fuel control.",
|
|
"system": "engine",
|
|
"no_start": false
|
|
},
|
|
{
|
|
"code": "P0340",
|
|
"desc": "Camshaft position (CMP) sensor circuit malfunction. Loss can cause extended crank / no-start.",
|
|
"system": "engine",
|
|
"no_start": true
|
|
},
|
|
{
|
|
"code": "P0335",
|
|
"desc": "Crankshaft position (CKP) sensor circuit malfunction. No CKP signal = no spark/fuel = no-start.",
|
|
"system": "engine",
|
|
"no_start": true
|
|
}
|
|
]
|
|
} |