The old 12xx PIDs (1209/1228/120B/...) were wrong addresses -- that's why they returned 'no response' on the truck, NOT a bus/gateway problem. The real Ford-enhanced DIDs are in the 09xx/14xx/16xx families. Confirmed by the truck's own brute-scan: 1446=ICP, 1445=EBP, 1440=MAP, 1442=BARO, 1310=EOT, 11B3=gear, 11B4=TSS all decode to sane on-vehicle values. - Rewrite FORD_60_PIDS with corrected addresses + [VERIFIED]/[DOC]/[TENTATIVE] tags - FICM voltages -> 09D0/09CF/09CE/09CD (09D0 Main = the ~48V no-start metric) - ICP=1446 *0.57, IPR=1434, ICP_V=16AD; EOT scaling fixed to /100-40 - watch --ford now streams 09D0/09CF/1446/1434 (FICM main V + ICP during crank) - Add diagnostics/2026-06-29-no-start/pid-research.md (full workflow findings) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016yT89n4zR4qbrySoSiEyZs
14 KiB
Ford 6.0 Mode-22 PID research — workflow findings (2026-06-29)
Source: multi-agent deep web hunt (ford-60-pid-hunt workflow).
Search done: 107 raw candidates from 8 finders; Dedup: 30 unique PIDs; verifying top 28; Verify done: 15/28 corroborated.
Raw candidates: 107 | unique PIDs: 30 | verified: 28 | corroborated: 15.
Cross-verified across the canonical Torque "Ford 6.0L Diesel Extended PIDs" lineage, ScanGauge XGauge DB, diesel forums, and — critically — the truck's own brute-scan, which independently confirms every PID in the 0x1000-0x14FF window.
Ford 6.0L Power Stroke (2003-2007) — Enhanced PID Synthesis
Verdict-driven reconciliation of the tentative table against multi-source evidence plus the truck's own brute-scan. The headline: every PID the truck answered comes from one canonical community lineage (the "Ford 6.0L Diesel Extended PIDs" Torque list), and the empirical scan independently validates the ones that fall in the 0x1000–0x14FF window. The tentative table's 12xx numbers are simply wrong addresses, not a bus problem.
1. VERIFIED PID TABLE (safe for FORD_60_PIDS)
Request form is Mode 22: 22 XX XX → response 62 XX XX <data>. A = first data byte, B = second. Header where known is physical PCM addressing 7E0 (Torque "AUTO" works; ScanGauge encodes TXD 07E0…).
| PID | Name | Units | Formula | Header | Sources | Empirically confirmed on this truck |
|---|---|---|---|---|---|---|
| 1446 | ICP — Injection Control Pressure (actual, HPOP) | psi | (A*256+B)*0.57 |
7E0 | 2+ indep. lineages + scan | Yes — 00 16=22 → 12.5 psi (sane KOEO) |
| 1445 | EBP — Exhaust Back Pressure | psi abs (subtract BARO for gauge) | (A*256+B)*0.03625; gauge = … - [1442] |
7E0 | 3 indep. + scan | Yes — 01 8F=399 → 14.46 psia (atm) |
| 1440 | MAP — Manifold Absolute Pressure | psi abs | (A*256+B)*0.03625 |
7E0 (C410F1 functional) | 5 indep. + scan | Yes — 01 89=393 → 14.25 psia (atm) |
| 1442 | BARO — Barometric Pressure | psi abs | (A*256+B)*0.03625 |
7E0 | 3 indep. + scan | Yes — 01 88=392 → 14.21 psia |
| (1440−1442) | MGP / Boost | psi gauge | [1440 psi] - [1442 psi] |
— | 4 indep. + scan | Yes — ≈0 psi boost at KOEO |
| 11B3 | Current Gear (5R110W TorqShift) | gear int | A/2 |
7E0 (or TCM) | 3 indep. + scan | Yes — 02 → gear 1 |
| 11B4 | TSS/ISS — Turbine/Input Shaft Speed | RPM | (A*256+B)/4 |
7E0 | 2 indep. + scan | Yes — 00 00 → 0 RPM (stopped). Scaling single-lineage but standard Ford RPM /4 |
| 09D0 | FICM Main Power (FMP) — the ~48 V injector rail; cranking V is the no-start metric | volts | (A*256+B)/256 (i.e. *0.00390625; 0x3000→48 V) |
7E0 | 3 indep. (incl. ScanGauge) | Not tested — below the 0x1000–0x14FF scan window |
| 09CF | FICM Logic Power (FLP, ~12 V) | volts | (A*256+B)/256 |
7E0 | 3 indep. (ScanGauge XGauge) | Not tested (below window) |
| 09CE | FICM Vehicle Power (FVP, ~12–14 V batt) | volts | (A*256+B)/256 |
7E0 | 2 indep. | Not tested (below window) |
| 09CD | FICM Sync (cam/crank sync status) | boolean | bit 1 of A (1=sync, 0=no); plain A = combined status byte |
7E0 | 4 indep. (ScanGauge) | Not tested (below window) |
| 096D | VGT Duty Cycle | % | (A*256+B)*100/32767 |
7E0 | 2 indep. (ScanGauge MTH 0064 7FFF 0000) |
Not tested |
| 099F | Fan Speed Sensor | RPM | (A*256+B)/4 (display ceiling 1000 is too low; real ~3500) |
7E0 | 2 indep. (ScanGauge) | Not tested |
Mode 01 (generic SAE J1979 — NOT Mode 22) — these answer on any OBD-II tool and are the reliable engine basics on a 6.0. Request 01 XX → 41 XX:
| PID | Name | Formula | Units |
|---|---|---|---|
| 010C | Engine RPM | (A*256+B)/4 |
rpm |
| 0105 | ECT — Coolant Temp | A-40 |
°C |
| 010F | IAT — Intake Air Temp | A-40 |
°C |
Corroborated 5 indep. sources (CSS Electronics J1979, x-engineer, Wikipedia, etc.). Do not put these in the Mode-22 table — they are Mode 01.
Note on the FICM/VGT/Fan/ICP-V rows: documentarily corroborated but never queried on this truck because 09xx is below and 16xx is above the brute-scan window. They are safe to add but flag as re-probe to confirm on-vehicle.
2. TENTATIVE / SINGLE-SOURCE (needs a meter or FORScan check)
| PID | Name | Formula | Why tentative |
|---|---|---|---|
| 1310 | EOT — Engine Oil Temp | °C = (A*256+B)/100 - 40; °F = *9/5+32 |
Number corroborated + truck-hit (1C 92=7314 → 33 °C / 92 °F, sane), but the canonical Torque list's +40 offset is a propagated transcription error. Use −40 (standard SAE/Ford encoding; physics confirms). The "changing between reads" is oil-temp drift, not a counter. |
| 16AD | ICP sensor voltage | (A*256+B)*0.000072 V |
Single canonical lineage; never tested (outside 0x10–0x14FF window). Scaling physically plausible for a 0–5 V sensor. Tentative table's 1430 for ICP_V is wrong. |
| 1434 | IPR — Injection Pressure Regulator duty | (A*13.53)/35 (= A*0.38657) canonical; variant A*100/256 (A*0.39063) ~1% higher |
Single Torque-list lineage; scaling conflict (the two forms are NOT exactly equal). Diagnostically negligible (<1% in the 8–60% operating band). Replaces tentative 120B. Not in the truck's no-response set; adjacent 14xx all answered. |
| 1172 | Battery Voltage (VPWR/B+) | A/16 (0.0625 V/bit) |
Single Torque-list lineage; signal exists in Ford IDS list but no OEM hex/scaling. Plausible. Not truck-tested. |
| 1672 | Fuel Pump Duty (HFCM lift pump) | A*100/128 (A*0.78125) |
Single lineage on the number; scaling uncontested + behavior well-known (sits 100%, drops on high EOT). Not truck-tested. |
| 09CC | Injection Timing BTDC | (A*256+B)*10/64 (*0.15625) — use this |
10× scaling conflict: ScanGauge XGauge (000A0040…) gives *10/64; Torque list adds a stray /10. Torque thread itself flagged this PID as "needs work." Trust ScanGauge form. |
| 16C1 | Fuel Level | (A*256+B)*100/328 vs *1/328 |
Number corroborated (Torque + ScanGauge) but scaling genuinely conflicting and uncalibrated — users report ~17,000% or ~2× high. Needs per-truck full/empty calibration. |
| 1411 | MFDES — Mass Fuel Desired | (no trustworthy formula) | Single-source Torque CSV; published GPH formula is dimensionally broken and mislabeled. Real parameter is mg/stroke mass (~10 idle / 20 cruise / 40 WOT). Treat raw u16 as an internal count; do not ship the GPH equation. Was NOT in the scan responders. |
3. BUS REALITY — the most important answer
Direct answer: on this truck, Mode 22 enhanced PIDs ARE reachable over the generic ELM327, and your "no response" results are wrong PID numbers — not an SCP-vs-CAN gateway wall.
The empirical proof is in your own scan. The truck returned live, physically-sensible Mode-22 data for 1446 (ICP), 1445 (EBP), 1440 (MAP), 1442 (BARO), 1310 (EOT), 11B3 (gear), 11B4 (TSS) — all members of the same canonical Ford-6.0 enhanced list. A bus that wasn't passing Mode 22 could not have produced 1446 → 12.5 psi or 1442 → 14.21 psia. So the request path works.
Therefore the dead PIDs — 1209, 121A, 120B, 1228, 1229, 122A, 1430, 121C — failed because those addresses are not the OBD Mode-22 DIDs for these parameters. The real ones live in the 09xx / 14xx / 16xx families: ICP=1446, EBP=1445, IPR=1434, ICP-V=16AD, FICM Main/Logic/Vehicle=09D0/09CF/09CE, FICM Sync=09CD, EOT=1310. The 12xx values look like Ford SCP/IDS-internal identifiers that simply aren't part of the generic enhanced request table.
The protocol caveat, stated honestly (a real disagreement in the evidence): Several sources correctly note that a 2003–2007 6.0L Super Duty/Excursion's legislated generic OBD-II bus is SAE J1850 PWM (Ford SCP, DLC pins 2 & 10) — Ford did not move Super Duty to ISO 15765 CAN until MY2008 (6.4L). Pure CAN-only ELM327 clones can't speak J1850 PWM and will NACK everything. This does not contradict your results — it just means your adapter negotiated J1850 PWM (auto-detect) and the 7E0/C410F1 headers in the ScanGauge/Torque definitions are protocol-agnostic notation, not proof of a CAN bus. Either way: the enhanced PIDs answered, so the practical bus question is settled — they're reachable with your generic adapter via Mode 22. If you ever swap to a cheap CAN-only dongle and everything goes dead, that's the J1850 issue, not the PID numbers.
Bottom line: ICP / IPR / FICM are reachable by your ELM327 via Mode 22 at the corrected addresses. FORScan is not the only path for the actual-value parameters (ICP, EBP, IPR, FICM rails). FORScan/IDS remains the only reliable path for the commanded/derived parameters — desired ICP (ICP_DES) and FICM Sync as a labeled gauge — which are not published as 22 XX XX DIDs anywhere (see §4).
4. SCAN-HIT MAPPING
| Scan hit | Raw | Best hypothesis | Reasoning / confidence |
|---|---|---|---|
1310 → 1C 92 |
7314 | EOT — Engine Oil Temp | Corroborated number. 7314/100 − 40 = 33.1 °C / 91.7 °F — sane warming oil. "Changes between reads" = temperature drift, not a counter. High confidence. |
1440 → 01 89 |
393 | MAP | 393*0.03625 = 14.25 psia = atmospheric KOEO. High. |
1442 → 01 88 |
392 | BARO | 392*0.03625 = 14.21 psia. High. |
1445 → 01 8F |
399 | EBP | 399*0.03625 = 14.46 psia = atmospheric (≈0 gauge) at rest. High. |
1446 → 00 16 |
22 | ICP (actual) | 22*0.57 = 12.5 psi KOEO residual. High. (2003 trucks baseline ~0 psi; 2004+ ~50 psi.) |
1447 → 00 34 |
52 | No reference found — undocumented | One address above real ICP (1446); classic brute-scan adjacency artifact. Zero sources name it. The tentative *0.03625 was a back-fit guess with no support. Reachable (answered) but meaning unknown. |
1448 → 00 11 |
17 | No reference found — undocumented | Same as 1447; no source in 4 independent compilations names 1448. |
11B3 → 02 |
2 | Current Gear | 2/2 = gear 1 (idle/standstill in Drive). Validates the whole scan method. High. |
11B4 → 00 00 |
0 | TSS/ISS — Turbine/Input Shaft Speed | 0/4 = 0 RPM, engine stopped. Sits immediately after gear in the 5R110 trans block (11B3 gear → 11B4 input speed → 11B5 output speed). Identity solid (2 lists); /4 scaling moderate. |
11BA → FF 5C |
65372 / −164 | No reference found — undocumented | In the 11Bx PCM/transmission-status block (neighbor 11B3 is gear), so likely a trans/status value, but unconfirmed. Not trans-fluid-temp (TFT=1674/1E1C). FF5C matches no clean temp/pressure scale. Do not assign meaning without truck validation. |
5. NEXT ACTIONS for the tool
Replace these tentative-table entries (wrong numbers) outright:
1209 ICP→1446,(A*256+B)*0.57psi121C EBP→1445,(A*256+B)*0.03625psi abs (subtract 1442 for gauge)120B IPR→1434,(A*13.53)/35%1430 ICP_V→16AD,(A*256+B)*0.000072V1228 FICM_MPWR→09D0,(A*256+B)/256V122A FICM_LPWR→09CF,(A*256+B)/256V1229 FICM_SYNC→09CD, bit 1 ofA(boolean)- Add
09CEFICM Vehicle Power,(A*256+B)/256V 121A ICP_DES→ remove / mark FORScan-only (no Mode-22 DID exists)
Add as new verified entries: 1440 MAP, 1442 BARO, MGP=1440−1442, 11B3 gear, 11B4 TSS, 096D VGT, 099F fan, plus Mode-01 010C/0105/010F for RPM/ECT/IAT.
Fix scaling already in evidence:
- EOT
1310: use/100 − 40(drop the canonical+40). - Injection timing
09CC: use*10/64(drop the stray/10).
Re-probe on the truck (highest value — these were never queried; they're outside the 0x1000–0x14FF window):
22 09 D0,22 09 CF,22 09 CE,22 09 CD— the FICM trio + sync; 09D0 cranking voltage is your no-start metric (<45 V = failing FICM).22 16 AD(ICP voltage),22 14 34(IPR),22 11 72(battery),22 16 72(fuel pump),22 09 6D(VGT),22 09 9F(fan).- Widen the brute scan to 0x0900–0x09FF and 0x1600–0x16FF.
- Sanity-check IPR against KOEO ~14–15%, cranking ~30–40%, warm idle ~25–30%; FICM Main ~45–48.5 V running.
Calibration / do-not-trust:
16C1fuel level: ship as raw, require per-truck full/empty calibration (both published divisors misread).1411MFDES: do not ship the GPH formula; expose raw u16 only (real units mg/stroke).
Is FORScan still the only reliable path? No — for the actual-value parameters (ICP, EBP, IPR, MAP/MGP, FICM rail voltages, EOT) your ELM327 + Mode 22 at the corrected addresses is sufficient. FORScan/IDS remains the only source for desired ICP (ICP_DES) and a labeled FICM Sync Yes/No gauge — those are IDS-computed/SCP-side parameters with no published generic Mode-22 DID, which is exactly why 121A/1229 returned no response.
Confidence caveat to keep in the tool's comments: the documentary corroboration, however broad in count, is largely one community lineage (the JESTERxHEAD Torque list) plus ScanGauge's independent XGauge DB. The genuinely independent confirmation is the truck's own scan for the 0x1000–0x14FF members. Treat 16AD/1434/1172/1672 as community-sourced-but-unverified until you read them back on the vehicle.