r/CarHacking • u/AKJ7 • 1h ago
Original Project CANExplorer has come a long way since 1.0 — reverse engineering, DoIP, EtherCAT, MQTT, OBD/J2534 adapters and more (free, open-source, cross-platform)
Last week I released v1.0 of CANExplorer, an open-source desktop tool for CAN / CAN FD / LIN buses, Linux, Windows, macOS, any python-can adapter, and a built-in virtual bus so you can try everything with zero hardware.
It's now at v1.3.0 and a lot has landed since 1.0. Here are the changes I think matter most, grouped by what they're for.
🔍 Reverse engineering an unknown bus:
This is the big one. Point it at a bus with no DBC and it does the statistics for you:
Bit/byte activity per ID, with a "notch" that hides everything that's changed so far, press the brake or hit a button and the reacting bits light up.
Automatic field detection: checksums (CRC-8 variants, AUTOSAR E2E, XOR, sums), alive counters, multiplexers, physical values, states and flags.
Reference signals: rank fields by correlation against a known DBC signal, a CSV/GPS log, or live OBD-II values, with factor/offset/lag of the best match.
Related signals: groups fields that carry the same quantity re-broadcast across messages.
Promote to DBC in one click, turn every found field into a signal in the database editor, ready to save.
🩺 Diagnostics & protocols
DoIP (Diagnostics over IP, ISO 13400-2): discovery, routing activation (optional TLS), diagnostics and flashing over Ethernet.
UDS discovery scanner (services / DIDs / subfunctions / routines) plus a UDS fuzzer that flags anomalies and detects ECU hangs via a TesterPresent liveness check.
GMLAN (GMW3110) diagnostics for GM/Opel, including single-wire CAN (SWCAN, 33.3 kbit/s).
XCP/CCP measurement & calibration, by address or by name from an A2L file.
ODX/PDX descriptions alongside CANdelaStudio CDD for named/decoded DIDs.
Bus gateway tool: forward frames between two connections with filtering, ID rewriting and rate limiting.
Every one of these ships a simulated ECU/entity, so you can learn the workflow without a vehicle.
🔌 More adapters & integrations
J2534 pass-thru devices (Mongoose, CarDAQ, OpenPort 2.0…), with a 32-bit bridge for 32-bit drivers.
ELM327 / OBDLink over USB, Bluetooth or WiFi, for diagnostics.
GVRET devices (ESP32RET, Macchina M2, CANDue) over serial or WiFi.
MQTT: publish decoded signals/frames to a broker (works from the app or can-server).
EtherCAT (CoE) master and a Physical I/O tool for USB I/O adapters.
Linux snap package: sudo snap install canexplorer.
🛠️ Databases & UI
Multiplexer editing in the database editor.
Full French, Chinese and Japanese translations (plus German), covering every view.
New logo that follows the theme accent, and the startup update check now runs every launch.
Everything still does the day-one stuff too: live trace with a filter mini-language (100-1FF !123 ext rx fd), signal plots with cursors, recording/replay in ASC/BLF/CSV/TRC/MF4/SQLite, replay onto a real bus, comparing two recordings, J1939 + CANopen tools, ECU flashing, Python ECU simulation, and scriptable test automation with HTML/JUnit reports for CI.
Try it with no hardware: connect to a VirtualBus, load the example DBC and run the example engine simulation.
Repo + downloads: https://github.com/AKJ7/CANExplorer
Docs: https://akj7.github.io/CANExplorer/
Full changelog: https://github.com/AKJ7/CANExplorer/blob/develop/CHANGELOG.md
Happy to answer questions, and issues/PRs are welcome.

