Direct on-truck measurement with the verified 1446 ICP PID: peak cranking ICP 376 psi vs the ~500 psi firing threshold. FICM Main min 48.0 V (healthy), battery min 10.3 V (adequate). Diagnosis empirically confirmed: high-pressure oil bleeds off during cranking. 376 psi is "almost there" not zero, which fits a partial leak (IPR seat / oil rail O-rings / partial STC crack) rather than a fully blown STC fitting. - Capture the --crank output in crank-test-2026-06-30.txt - Add EMPIRICAL CONFIRMATION section to diagnostics README - Update handoff "resume at the truck" to lead with physical inspection (IPR -> STC -> oil rail O-rings), since the OBD-side diagnosis is done Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
7.1 KiB
Handoff — ford-obd / 6.0 Power Stroke no-start
Pick-up notes for diagnosing the truck in the cab. Repo: git.jpaul.io/justin/ford-obd (private).
TL;DR — what to do at the truck
- CH340 ELM327 adapter → OBD port (under dash, driver side).
- Key to RUN (not ACC). Engine off is fine for reading codes.
- On the Windows laptop, in the repo folder: double-click
RUN_OBD.bat(orpython obd_reader.py). If no port found:python obd_reader.py COM5. - Read the codes + the no-start triage it prints. Write the codes down.
- To erase codes after reading:
python obd_reader.py COM5 --clear(it asks you to typeCLEAR).
Hardware confirmed
- Adapter chip: QinHeng CH340 (
USB 1a86:7523), ELM327 v1.5 clone. - Working baud: 38400 (default in the tool). If you get garbage, try
9600. - It's an
AT@2 = ?clone (no stored serial) — normal, works fine for generic OBD-II.
What the tool does
- DTCs: stored / pending / permanent (modes 03/07/0A), with 6.0-relevant
codes flagged as no-start suspects.
--clearerases (mode 04). - Generic live PIDs: RPM, ECT, IAT, MAP, engine load, module voltage, ATRV.
--ford: Mode-22 read of the VERIFIED Ford 6.0 PID set — ICP, EBP, MAP, BARO, MGP (boost), EOT, gear, TSS, plus the documented FICM trio (09D0Main,09CFLogic,09CEVehicle V) and09CDSync. Full PID research + sources in diagnostics/2026-06-29-no-start/pid-research.md.--crank: dedicated cranking monitor — large ICP readout + trace of ICP, FICM Main, battery, RPM. This is the no-start mode.--dash: real-time gauge dashboard. Presets:--dash crank(cranking),--dash full(everything). Add--dash-log run.csvto capture a CSV trace.--pid XXXX: one-shot probe of any 16-bit Mode-22 PID; prints raw bytes plus a few candidate decodings.--scan AAAA-BBBB(with optional--scan-log PATH): brute-force a PID range. Use for hunting new PIDs.
What still needs FORScan: desired ICP (ICP_DES) and a labeled FICM-Sync
yes/no gauge — neither has a published Mode-22 DID. Everything else for
no-start diagnosis is reachable through this tool now.
6.0 no-start priority checklist (from the triage)
The 6.0 needs, to fire: good batteries → FICM ~48V → ICP ~500 psi → fuel → cam/crank signal.
- Batteries — both. Weak battery → FICM won't boost → no injector fire. Load test; ~12.5V+ at rest, watch it while cranking.
- FICM voltage while cranking (~48V). #1 6.0 cold no-start cause. <45V is suspect.
- ICP (injection control pressure) ~500 psi to fire. Leaks: STC fitting, oil rail O-rings, high-pressure oil hoses, IPR/HPOP.
- Fuel — HFCM lift pump priming, fuel filters, water-in-fuel.
- CMP/CKP sensors — failed cam sensor = crank, no-start (codes P0340/P0341, P0335/P0336).
- Glow plugs/relay if cold (won't stop start, but hard start).
Code-driven branches the tool will hint at
P0335/P0336/P0340/P0341/P0344→ cam/crank sensor path.P0611/P1316orP02xx/P026xinjector codes → FICM / injector path.P0087/P0148/P0191→ fuel pressure (low-side + high-side oil).U0100/U0073/P0606→ module comms / PCM.
Status of this session's work
- Tool built + tested against the real adapter (init, all 3 DTC modes, live PIDs, clear flow).
- DTC parser unit-tested incl. a fixed bug: legacy ISO/PWM multi-frame responses repeat the
43header (was producing phantom codes) — fixed + regression-tested. - 2026-06-29 in-cab session: added
--watch,--ford,--pid, and--scanmodes. Captured cranking voltages + ran a Mode-22 brute scan (46 PIDs hit). Full session writeup + raw data in diagnostics/2026-06-29-no-start/. Headline: FICM measured >48V (healthy). Truck starts on ether every time and runs/idles fine until shut off — then needs ether again. That signature ⇒ high-pressure oil (ICP) bleed-off during cranking — STC fitting / oil rail O-rings / HPOP-related. Compression, FICM, CMP/CKP, fuel supply all confirmed good. - 2026-06-30 desktop session: multi-agent PID research workflow corrected
the Mode-22 table — the original 12xx guesses were wrong addresses, not a
bus problem. Verified PID set now in
obd_reader.py; reasoning + sources in pid-research.md. Added--dash(real-time gauges) and--crank(no-start monitor). - 2026-06-30 ICP crank test: ran
--crankon the truck — peak ICP 376 psi, below the 500 psi firing threshold. Direct empirical confirmation of the high-pressure oil bleed hypothesis. FICM min 48.0 V (healthy), battery min 10.3 V (adequate). Output captured in crank-test-2026-06-30.txt. Next: physical inspection (IPR valve first, then STC fitting, then oil rail O-rings). - Pushed to
git.jpaul.io/justin/ford-obd, branchmain.
To resume with Claude from the cab
Mention: "6.0 Power Stroke no-start, using the ford-obd tool (git.jpaul.io/justin/ford-obd)". Then paste the tool's full output (codes + live values). Useful to also say: cranks vs. no-crank, hot vs. cold, what changed before it died, and FICM/ICP readings if you metered them.
To resume at the truck (2026-06-30 state)
The diagnosis is now empirically confirmed — --crank measured peak
ICP 376 psi (need ~500 psi to fire). High-pressure oil bleeds off during
cranking; HPOP outruns the leak once running. The 376 psi reading suggests
a partial leak rather than a fully blown STC fitting. Physical
inspection, cheap-and-easy first:
- Pull the IPR valve (~15 min, ~$0). Bolted into the back of the HPOP, top-rear of engine under the turbo. Inspect screen for debris, pintle/seat for wear, O-rings for cuts. A leaky IPR seat causes exactly this "partial pressure" symptom.
- STC fitting visual — between the heads under the turbo. Look for wet/oily film at the fitting joint. Ford TSB; classic 6.0 wear item.
- Pull valve covers and inspect high-pressure oil rail O-rings on each head. Bigger job but common 6.0 leak path.
- (Once a repair is attempted, re-run
--crank— peak ICP should jump to 500+ if the fix worked.)
OBD-side follow-ups (lower priority now that we have the answer):
- Probe the FICM 09xx family:
--pid 09D0(Main, ~48V),--pid 09CF(Logic, ~12V),--pid 09CE(Vehicle V),--pid 09CD(Sync). - Widen brute scan:
--scan 0900-09FF --scan-log scan-09xx.txtand--scan 1600-16FF --scan-log scan-16xx.txt.
Open follow-ups
Detailed action list lives in pid-research.md §5. Highlights:
- Validate the documented-but-untested PIDs (
09D0/09CF/09CE/09CD,16AD,1434,1172,1672,096D,099F) by reading them on-vehicle. - Sanity-check IPR (
1434) against expected ranges: KOEO ~14–15 %, cranking ~30–40 %, warm idle ~25–30 %. - Calibrate
16C1fuel-level scaling per-truck (published divisors misread). - FORScan via CyanLabs mirror — only path to
ICP_DESand a labeled FICM Sync gauge.