2fe3f1100e
- FICM measured >48V on M during cranking AND key-ON. Healthy. Removed as a suspect. - Truck starts cleanly on starting fluid (ether) every time, then idles and runs normally until shut off -- then needs ether again, even when warm. This is a textbook signature for high-pressure oil (ICP) bleed during cranking that the HPOP can outrun at running RPM. - Updated working hypothesis to focus on STC fitting / oil rail O-rings / HPOP / IPR. Compression, FICM, CMP/CKP, fuel supply all confirmed good by virtue of the engine running cleanly once started. - Reordered open items to put visual inspection of valve covers + STC fitting first. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
90 lines
5.4 KiB
Markdown
90 lines
5.4 KiB
Markdown
# 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 / doesn't
|
|
- DOES: read stored/pending/permanent codes, decode them (6.0 codes flagged as
|
|
no-start suspects), clear codes (`--clear`), show battery voltage + key live PIDs.
|
|
- EXPERIMENTAL (`--ford`): tries a small table of community-sourced Ford 6.0
|
|
Mode-22 PIDs (ICP, IPR%, FICM main/sync/logic V, EBP, EOT). **PID numbers and
|
|
scaling are TENTATIVE** — raw bytes are always printed; cross-check against a
|
|
meter or FORScan before trusting a value.
|
|
- `--pid XXXX`: one-shot probe of any 16-bit Mode-22 PID; prints raw bytes plus
|
|
a few common decodings so you can eyeball the right scaling.
|
|
- DOESN'T (yet): a verified Ford-enhanced PID set the way FORScan has. We're
|
|
building toward that — see follow-ups below.
|
|
|
|
## 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. Next: visual under valve covers + STC
|
|
fitting inspection.
|
|
- Pushed to `git.jpaul.io/justin/ford-obd`, branch `main`. Files: `obd_reader.py`,
|
|
`RUN_OBD.bat`, `README.md`, `README.txt`, `handoff.md`, `diagnostics/`.
|
|
|
|
## 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 from the desktop (after the 2026-06-29 session)
|
|
Read [diagnostics/2026-06-29-no-start/README.md](diagnostics/2026-06-29-no-start/README.md)
|
|
first — that's the full state. Top open items, in order:
|
|
1. **Visual under valve covers + STC fitting** — looking for the high-pressure
|
|
oil bleed source. That's where the diagnosis lands.
|
|
2. Re-probe the clean scan hits (`1310`, `1440-1451`, `11Bx`) with `--pid XXXX`
|
|
for uncontaminated data; map them to known engine conditions to identify
|
|
ICP / IPR.
|
|
3. FORScan via the CyanLabs mirror once available — ICP and IPR live data
|
|
would confirm a high-pressure leak in seconds.
|
|
|
|
## Open follow-ups (when off the truck)
|
|
- FORScan from the CyanLabs mirror once forscan.org is back — useful as the
|
|
ground truth for verifying our Mode-22 PID table.
|
|
- **Verify** every entry in `FORD_60_PIDS` (obd_reader.py) against either a
|
|
meter reading or FORScan, one at a time. As each is confirmed, drop the
|
|
"TENTATIVE" warning for that row.
|
|
- **Option 3**: brute-force scan of the Mode-22 PID space (e.g. `0x1000`-
|
|
`0x14FF`) and log which PIDs return data, so we can fingerprint what this
|
|
PCM exposes without external references. Hook it in as `--scan`.
|
|
- Add `--watch` mode that streams ATRV + PID 0142 (and the FICM PIDs once
|
|
verified) at ~5 Hz so we can watch the voltage sag during cranking.
|