Files
obdash/handoff.md
T
justin 6eb449f354 diagnostics: confirm ICP bleed-off via --crank (peak 376 psi)
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>
2026-06-30 13:03:45 -04:00

123 lines
7.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
1. CH340 ELM327 adapter → OBD port (under dash, driver side).
2. Key to **RUN** (not ACC). Engine off is fine for reading codes.
3. On the Windows laptop, in the repo folder: **double-click `RUN_OBD.bat`**
(or `python obd_reader.py`). If no port found: `python obd_reader.py COM5`.
4. Read the codes + the no-start triage it prints. Write the codes down.
5. To erase codes after reading: `python obd_reader.py COM5 --clear` (it asks you to type `CLEAR`).
## 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. `--clear` erases (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
(`09D0` Main, `09CF` Logic, `09CE` Vehicle V) and `09CD` Sync. Full PID
research + sources in
[diagnostics/2026-06-29-no-start/pid-research.md](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.csv` to 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.**
1. **Batteries** — both. Weak battery → FICM won't boost → no injector fire. Load test;
~12.5V+ at rest, watch it while cranking.
2. **FICM voltage** while cranking (~48V). #1 6.0 cold no-start cause. <45V is suspect.
3. **ICP** (injection control pressure) ~500 psi to fire. Leaks: STC fitting, oil rail
O-rings, high-pressure oil hoses, IPR/HPOP.
4. **Fuel** — HFCM lift pump priming, fuel filters, water-in-fuel.
5. **CMP/CKP sensors** — failed cam sensor = crank, no-start (codes P0340/P0341, P0335/P0336).
6. **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/P1316` or `P02xx`/`P026x` injector 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
`43` header (was producing phantom codes) — fixed + regression-tested.
- **2026-06-29 in-cab session:** added `--watch`, `--ford`, `--pid`, and `--scan`
modes. Captured cranking voltages + ran a Mode-22 brute scan (46 PIDs hit).
Full session writeup + raw data in [diagnostics/2026-06-29-no-start/](diagnostics/2026-06-29-no-start/README.md).
**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](diagnostics/2026-06-29-no-start/pid-research.md).
Added `--dash` (real-time gauges) and `--crank` (no-start monitor).
- **2026-06-30 ICP crank test:** ran `--crank` on 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](diagnostics/2026-06-29-no-start/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`, branch `main`.
## 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:
1. **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.
2. **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.
3. **Pull valve covers** and inspect high-pressure oil rail O-rings on
each head. Bigger job but common 6.0 leak path.
4. (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.txt`
and `--scan 1600-16FF --scan-log scan-16xx.txt`.
## Open follow-ups
Detailed action list lives in
[pid-research.md §5](diagnostics/2026-06-29-no-start/pid-research.md). 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 ~1415 %,
cranking ~3040 %, warm idle ~2530 %.
- Calibrate `16C1` fuel-level scaling per-truck (published divisors misread).
- FORScan via CyanLabs mirror — only path to `ICP_DES` and a labeled FICM
Sync gauge.