Files
obdash/handoff.md
T
justin 899a82e596 handoff: catch up to verified PID set + --crank/--dash modes
Replaces the "PIDs are TENTATIVE" framing with pointers to the verified
Ford 6.0 PID table and pid-research.md.  Updates the "resume" section
to make --crank the top action at the truck, with --pid probes for the
09xx FICM family that was outside the original brute-scan window.
Open-follow-ups condensed to the live items from pid-research §5.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-30 11:40:57 -04:00

110 lines
6.4 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).
- 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 stands: high-pressure oil (ICP) bleeds off during cranking;
HPOP outruns the leak once running. The toolchain can now confirm this
directly from the OBD port. Top actions, in order:
1. **`python obd_reader.py --crank`** during a short crank. A healthy 6.0
builds ~500+ psi ICP in 12 seconds. If ours stalls below 500 psi or
builds very slowly, that confirms the bleed-off and is the smoking gun.
2. **Probe the FICM PIDs that were outside the scan window** to validate
the documented `09xx` family on this truck:
- `python obd_reader.py --pid 09D0` (FICM Main, expect ~48V)
- `--pid 09CF` (Logic, ~12V), `--pid 09CE` (Vehicle V), `--pid 09CD` (Sync)
3. **Visual under the valve covers + STC fitting** — the likely physical
source of the leak. STC fitting is the #1 6.0 culprit for this pattern.
4. **Widen the brute scan** to round out the verified set —
`python obd_reader.py --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.