finds.dev← search

// the find

cedricp/ddt4all

★ 1,732 · Python · GPL-3.0 · updated Jun 2026

OBD tool

A Python/PyQt5 desktop tool for reading ECU parameters, clearing DTCs, sniffing CAN frames, and running vehicle-specific procedures via ELM327-class OBD-II adapters. In practice it's mostly a Renault/Dacia tool — all 13 bundled plugins target Megane, Clio, Laguna, and Zoe — but the core protocol layer works generically over CAN ISO-TP and KWP2000. Active development with DoIP added recently, which suggests the author is tracking modern vehicle protocols.

1. The plugin system is genuinely useful: procedures like airbag reset and EPS calibration normally require dealer tools, and having them as scriptable Python is the whole reason this project exists. 2. DoIP (Diagnostics over IP) support in `core/doip/` puts it ahead of most hobbyist OBD tools, which only do serial ELM327. Newer vehicles require DoIP and most open-source alternatives don't have it. 3. Modern packaging via `pyproject.toml` with optional dependency groups (`[can]`, `[bluetooth]`, `[network]`) — you can install only what you need, and `pip install -e .` works. 4. The threading model is correct: CAN sniffing runs in a `QThread` with a `threading.Lock()` in the ELM class, so the UI doesn't freeze during live data monitoring.

1. The ECU database (the files that describe what parameters exist on each ECU) is not included in the repo. This is the most important thing to know before installing and it's buried in a commented-out README section — you won't find out until the app launches and nothing works. 2. Hard-pinned ancient dependencies: `pyserial==3.5`, `pyusb==1.2.1`, `crcmod==1.7` will conflict with almost anything else in your Python environment; `PyQt5>=5.15.0,<5.16.0` locks you to a toolkit that PyQt6 replaced years ago with no migration path offered. 3. The communication code that actually matters — `elm.py`, `device_manager.py` — has no tests. The test suite covers CLI argument parsing and XML parsing but not the state machine that talks to your car, so regressions in adapter support go undetected until a user reports them. 4. The README is long enough to be a red flag: four separate installation sections, a 13-column adapter table, and a shell alias tutorial obscure the actually critical information (get the database, check your permissions, don't use expert mode on a car you can't recover).

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →