rusefi_documentation/rusEFI-calibration-via-CAN.md

2.1 KiB

rusEFI Calibration Via CAN

TL,DR

With all the electromagnetic interference around the gasoline engine due to sparking CAN physical layer provides the level of reliability above RS232 and USB physical layers.

ISO 15765-2, or ISO-TP (Transport Layer), helps us exchange up to 4096 packets into which we wrap TS protocol. See also wikipedia

https://github.com/rusefi/rusefi/tree/master/java_console/io/src/main/java/com/rusefi/io/can folder has java implementation of ISO-TP packet encoding/decoding.

There is no standard way of communicating with CAN bus on Windows. At the moment rusEFI is focusing on PCAN by Peak System and ELM327 options of the Windows side of CAN.

PCAN

Between three major professional CAN frontend vendors we like PCAN by https://www.peak-system.com/ due to the combination of the following

  1. documented Windows DLL drivers with official java wrappers called PCAN-Basic API

  2. https://github.com/moonglow/pcan_cantact open source firmware for cheeeeeeap third party devices

rusEFI bridge between PCAN and ISO-TP is located at https://github.com/rusefi/rusefi/tree/master/java_console/io/src/main/java/com/rusefi/io/stream

ELM327

With more than a dozen magic commands it's possible to switch ELM327 device into binary transition with serial communication between calibration software and ELM327 acting as a bridge. At the moment we have a very odd bug making the overall solution not working as of Jan 2022.

See https://canhacker.com/ch-obd-m02/ for great pinout image. Yes both GND are needed for reliable ELM327 operation.

IsoTp ISO 15765-2 in rusEFI - Forum