6.0 POWER STROKE OBD-II CODE READER  (works on any OBD-II vehicle)
==================================================================
Built tonight for the CH340/ELM327 adapter. Reads trouble codes, key
live values, and prints a 6.0 no-start triage. Tested against your
actual adapter.

WHAT YOU GET
  obd_reader.py   the tool
  RUN_OBD.bat     double-click launcher for Windows (auto-installs pyserial)
  README.txt      this file

ONE-TIME SETUP ON THE WINDOWS LAPTOP
  1. Install the CH340 driver (you're already doing this) so the adapter
     shows up as "USB-SERIAL CH340 (COMx)" in Device Manager > Ports.
  2. Install Python from https://www.python.org/downloads/
     IMPORTANT: tick "Add Python to PATH" on the first install screen.

RUN IT
  Easiest:  double-click RUN_OBD.bat
  Manual:   open Command Prompt in this folder and run:
                python obd_reader.py
            force a port/baud if needed:
                python obd_reader.py COM5
                python obd_reader.py COM5 9600
            add -v to see the raw ELM327 traffic (for troubleshooting):
                python obd_reader.py COM5 -v

ON THE TRUCK
  - Plug the adapter into the OBD port (under the dash, driver side).
  - Turn the key to RUN (not just ACC). Engine off is fine for codes.
  - Run the tool. It reads STORED, PENDING and PERMANENT codes,
    flags no-start suspects, shows battery voltage + key live values,
    then prints the 6.0 triage checklist.

SCOPE / HONESTY
  A generic ELM327 reads standard OBD-II: codes, generic PIDs, voltage.
  It does NOT read Ford-enhanced diesel PIDs (ICP, FICM main/sync volts,
  IPR%). Those need FORScan. This covers reading codes + the basics so
  you can triage tonight. For FICM/ICP numbers, measure at the FICM with
  a meter, or get FORScan from the CyanLabs mirror when it's back up.

  Default baud is 38400 (measured on your adapter). If you get garbage,
  try 9600.
