Files
obdash/diagnostics/2026-06-29-no-start/README.md
T
justin e15e22a825 Add --watch/--ford/--pid/--scan modes + 2026-06-29 session diagnostics
obd_reader.py:
- Mode 22 plumbing: ELM.mode22() sends a 16-bit PID request, parses both
  positive (62 ..) and negative (7F 22 NRC) responses.
- --ford runs a small TENTATIVE table of community-sourced Ford 6.0 PIDs
  (ICP/IPR/FICM/EBP/EOT). All printed with raw bytes for verification.
- --pid XXXX probes a single PID and prints multiple candidate decodings
  (u8, u16, mV, temp, duty) so we can eyeball the right scaling.
- --watch [N] streams ATRV + module voltage (PID 0142) for N seconds.
  Designed for capturing voltage sag during cranking.
- --scan AAAA-BBBB brute-force scans Mode-22 PIDs with --scan-log PATH
  for output. Uses fast ELM timing (ATAT2, ATST19) for ~3.5 PIDs/sec.

diagnostics/2026-06-29-no-start/:
- Captured cranking voltage trace, full Mode-22 scan (1000-14FF -> 46
  hits), and a session writeup. Working hypothesis: not batteries, not
  fuel -- ICP / FICM / CMP. FICM meter test still owed.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-29 21:49:18 -04:00

116 lines
4.9 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.
# 2026-06-29 — 6.0 Power Stroke no-start session
In-cab diagnostic session using the `ford-obd` tool on the truck.
Charger on "12V Hi" was attached for most of the session.
## Symptoms
- Cranks **fast** (starter spins the engine normally)
- **Zero combustion event** — no sputter, no cough, no kickback
- HFCM lift pump heard priming on key-RUN and shutting off normally
- Battery at OBD port: 11.2 12.7V key-RUN (varied with charger state)
## Codes pulled (multiple reads, slight variation between reads)
| Mode | Code | Description |
|---|---|---|
| Stored (03) | `C0300` | (chassis — not engine, not in our DB) |
| Pending (07) | `C0700` / `C0701` | (chassis — alternated between reads) |
| Pending (07) | `P0113` | IAT circuit HIGH — sensor wiring, not a no-start |
| Permanent (0A) | `C3F0A` | (chassis — not engine) |
No engine P-codes, no FICM codes, no injector codes, no CMP/CKP codes.
## What we ruled out
- **Batteries as primary cause** — cranks fast and voltage held adequately
(see `watch-cranking.log`). Bus sagged to 10.811.2V during ~11s crank,
borderline-low but not catastrophic. Healthy starter spin means batteries
have current to give.
- **Fuel supply** — HFCM lift pump audibly primes and shuts off correctly
on key-RUN.
- **Compression / mechanical** — fast even cranking, would feel different
with a low-compression cylinder.
## Working hypothesis (in order of suspicion)
1. **ICP / high-pressure oil leak** — STC fitting is the classic 6.0 culprit
for "cranks great, won't fire, no codes". Need ≥500 psi ICP to fire even
one injector.
2. **FICM weakness** — should boost to ~48V. Sometimes doesn't throw a code
even when failing. **Not yet measured** — see open items.
3. **CMP sensor** — would usually throw P0340/P0341 but not always.
## What we did with the tool this session
- Pulled DTCs across all 3 modes (multiple times).
- Captured cranking voltage with `--watch 30` (see `watch-cranking.log`):
- Pre-crank: bus 11.7→12.1V, VPCM 12.39→12.71V
- Cranking (~11s): bus 10.811.2V, VPCM 11.3211.70V
- Recovery: bus 11.812.2V, VPCM stopped responding (`?`) — possible
PCM brief recovery state after the dip.
- Ran first attempt at Mode-22 probes (`--ford`) with community-sourced
PIDs (ICP=1209, FICM=1228/1229/122A, IPR=120B, etc.). **All returned
"no response."** Either the PCM uses different PID numbers, or these
values live on Ford's SCP bus and aren't gatewayed to OBD-CAN.
- Brute-force scanned PIDs `0x1000-0x14FF` (1280 PIDs, ~6 min, 46 hits).
See `mode22-scan-hits.txt`. Data is noisy because **multiple modules on
the bus answer the same query** — positive responses from PCM mixed
with negative-response bytes (`7F 22 12`, `7F 22 31`) from other modules.
## Interesting PIDs from the scan to verify next session
Cleanest-looking PCM-side responses worth re-probing individually
(with normal timing, `python obd_reader.py --pid XXXX`):
```
1310 2 1C 92 (was 1C 69 earlier — value changes; maybe a counter?)
1440 2 01 89 = 393
1442 2 01 88 = 392 ← three closely-spaced ~390 values
1445 2 01 8F = 399 suggests a related sensor cluster
1446 2 00 16 = 22
1447 2 00 34 = 52
1448 2 00 11 = 17
11B3 1 02
11B4 2 00 00
11BA 2 FF 5C
```
Likely scaling guesses:
- raw / 100 → fits if these are voltage-tenths or pressure-tenths
- raw / 1000 → if mV (0.393V plausible for sensor outputs)
- raw - some offset → temperature
To know what each one *is*, compare against a known measurement:
- Run `--pid 1440` with engine off, write down value.
- Get engine running (eventually), write down value.
- Change condition, watch which PIDs move.
## Open items / what's next
1. **FICM meter test was started but no readings reported back yet.**
Measure M / S / L on the FICM body, key-ON and during a (short) crank:
- M (Main) target ~48V cranking, <45V suspect, <40V dead
- S (Sync) target ~48V cranking
- L (Logic) target ~12V (mirrors battery)
2. **Visual under-engine check** for STC-fitting oil leak (wet/oily mess
at the rear of the engine, around the turbo / bell housing).
3. **Verify scan-hit PIDs.** Re-probe the clean ones above with
`--pid XXXX` to get uncontaminated readings, log them against known
conditions.
4. **Try addressing other modules with `ATSH`** — particularly the FICM
on its CAN address if it has one (uncertain on 6.0 — likely on SCP).
5. Try **FORScan** when forscan.org / CyanLabs mirror is back, on the
same CH340 adapter, to capture FORScan's actual PID requests for
ICP/FICM/IPR. That gives us the ground truth.
## Tool state at end of session
`obd_reader.py` now has:
- `--ford` — try the (tentative) Ford 6.0 Mode-22 PID table
- `--pid XXXX` — one-shot probe of any 16-bit Mode-22 PID
- `--watch [N]` — stream ATRV + VPCM for N seconds (default 20)
- `--scan AAAA-BBBB` + `--scan-log PATH` — brute-force scan a PID range
All work on the CH340 ELM327 v1.5 clone at 38400 baud, HS-CAN switch.