J2534 Arduino Review

void setup() { Serial.begin(115200); CAN0.begin(MCP_ANY, CAN_500KBPS, MCP_8MHZ); CAN0.setMode(MCP_NORMAL); }

When Alex connects this Arduino to the OBD-II port of a car and sends a "Read VIN" request from a genuine J2534 tool on the laptop, the Arduino prints: j2534 arduino

void loop() { unsigned long canId; unsigned char len; unsigned char buf[8]; void setup() { Serial

But you can use an Arduino to —the very protocols J2534 wraps in software. A car speaks 12V logic (high voltage)

The question is inevitable: Can the little Arduino talk to the mighty J2534? The first problem our engineer, Alex, discovers is voltage. A car speaks 12V logic (high voltage). The Arduino speaks 5V logic. Connecting them directly would release the magic blue smoke from the Arduino. So, Alex adds a logic level shifter —a tiny circuit that converts 12V down to 5V.