Simulated RX and TX paths via mcltspice, generated 4 SVG waveform
plots (2000 data points each), and staged all 8 netlists plus the
muki01 schematic as downloadable site assets.
Presentation: Starlight Tabs for RX/TX waveform pairs, inline
schematic image, dark mode CSS filter for white-background SVGs,
and netlist inventory with download links.
European Fords (Fiesta, Focus, Mondeo, Ka, Transit, etc.) use K-line,
not J1850 like US Fords. Added model-level detail for Honda, Toyota,
Nissan, Mazda, Subaru, Mitsubishi, Hyundai, Kia, Suzuki, and Chrysler.
Added muki01/OBD2_K-line_Reader reference.
Split the monolithic IbusEsp32 class into composable layers:
- KLineTransport: UART, GPIO ISR, ring buffers, idle detection
- IbusHandler: BMW I/K-Bus FSM, source filtering, packet callback
- IbusEsp32: thin facade preserving the original API
Library renamed from IbusEsp32 to AutoWire. Existing sniffer
sketch (main.cpp) requires zero changes. All 3 ESP32 environments
build cleanly (esp32dev, esp32-c3, esp32-s3).
R2 sweep (47-470 ohm) and CTR grade sweep at ISO 9141 minimum
bus impedance. R2<=100 ohm works; BMW's R2=220 does not.
Confirms transistor design is better fit for OBD-II K-line.
At 3.3V VCC the original R2=470 only drives 4.66mA through the
PC817 LED, giving marginal bus pull-down on loaded buses (V_LOW=2.5V
at 1k pull-up). Three parameter sweeps (R2, bus impedance, CTR grade)
identified R2=220 as the fix: LED current doubles to 9.71mA, bus LOW
drops to 0.27V even at 1k pull-up. Validated against PC817A typical
CTR with worst-case bus loading.
Both signal paths validated with LTspice using built-in PC817
subcircuit model (Igain=1m). RX gives clean 0-3.13V at 3.3V VCC
with 5.8us rise time. TX confirms signal inversion and 0.17V bus
LOW with 4.66mA LED drive. 3.3V design works but is marginal vs
the original 5V Arduino circuit at worst-case CTR.