Document cross-platform support (Windows/macOS/Linux)

The stack is portable by construction: PySide6/pyqtgraph/numpy/pyserial all
ship wheels for all three OSes (incl. Apple Silicon); obdcore has no
OS-specific code; the terminal dashboard's only platform code is guarded
(os.name=='nt' vs termios for POSIX = macOS+Linux).

- ARCHITECTURE.md: Cross-platform section -- portability rules (list_ports
  only, pathlib, no shelling out, platformdirs for config), the three per-OS
  seams (CH340 driver, PyInstaller per-OS packaging, Gatekeeper/SmartScreen).
- README: Setup now covers Windows (CH341SER), macOS (CH34xVCPDriver), Linux
  (in-kernel ch341 + dialout group) instead of Windows-only.

No code changes; obdcore tests still pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016yT89n4zR4qbrySoSiEyZs
This commit is contained in:
2026-06-30 14:06:49 -04:00
parent 6bee9c0d7f
commit 01de18a568
2 changed files with 56 additions and 5 deletions
+15 -4
View File
@@ -16,11 +16,22 @@ reading/clearing codes and the basics, not Ford-enhanced diesel PIDs (see Scope
- Key **live values** (coolant, IAT, MAP, module voltage, RPM, load, throttle) + battery voltage
- 6.0 Power Stroke **no-start triage** checklist (FICM, ICP, cam/crank, batteries, fuel)
## Setup (Windows)
## Setup
1. Install the CH340 driver (WCH `CH341SER`) so the adapter appears as
`USB-SERIAL CH340 (COMx)` in Device Manager → Ports.
2. Install Python from <https://www.python.org/downloads/> — tick **Add Python to PATH**.
Runs on **Windows, macOS, and Linux** (Python + pyserial). The only per-OS
difference is the CH340 USB driver:
- **Windows** — install WCH `CH341SER`; adapter shows as `USB-SERIAL CH340 (COMx)`
in Device Manager → Ports. Install Python from <https://www.python.org/downloads/>
(tick **Add Python to PATH**), or just double-click `RUN_OBD.bat`.
- **macOS** — install WCH `CH34xVCPDriver` (Mac App Store or wch.cn). Port appears
as `/dev/cu.wchusbserial*`. `pip install pyserial`.
- **Linux** — `ch341` driver is built into the kernel (no install). Port is
`/dev/ttyUSB0`; add yourself to the `dialout` group for access
(`sudo usermod -aG dialout $USER`, then re-login). `pip install pyserial`.
The tool auto-detects the port on all three; pass it explicitly if needed
(`COM5`, `/dev/cu.usbserial-1420`, `/dev/ttyUSB0`).
## Usage