MCPcopy Index your code
hub / github.com/cedricp/ddt4all

github.com/cedricp/ddt4all @v3.1.2 sqlite

repository ↗ · DeepWiki ↗ · release v3.1.2 ↗
783 symbols 2,403 edges 117 files 93 documented · 12%
README

DDT4All

DDT4ALL APP Donate Discord Python Package License

DDT4All is a comprehensive tool to create your own ECU parameters screens and connect to a CAN network with various OBD-II interfaces including ELM327, Vlinker FS, VGate, ObdLink SX, and ELS27 adapters.

Current Version: v3.1.1 (Aureate Leviathan) - Production-ready with enhanced device support, STN/STPX protocols, and comprehensive translation system.

🚀 Recent Major Improvements

Enhanced Device Compatibility & Connection Stability

  • Multi-Device Support: Full compatibility with Vlinker FS, VGate, ELM327, ObdLink SX/EX, ELS27 adapters
  • Device-Specific Optimization: Automatic speed selection and optimal settings for each adapter type
  • Connection Types: USB, Bluetooth, and WiFi connections with automatic detection
  • Smart Reconnection: Automatic reconnection with device-specific handling and retry logic
  • Cross-Platform: Optimized for Windows, Linux, and macOS with platform-specific configurations
  • USB CAN Support: Added support for specialized USB CAN adapters with fallback handling

🌟 Enhanced Device Manager with STN/STPX Support (v3.1.1)

  • Intelligent Device Detection: Automatic adapter identification via ATI command
  • Enhanced DeviceManager: Centralized configuration with STN/STPX support
  • VGate STN Protocol: Full STN implementation with automatic pin swapping
  • STPX Mode: Enhanced long command support with comprehensive error handling
  • OBDLink Enhanced Features: CAN Address Filtering (CAF) and STN optimizations
  • DerleK USB 3 Support: Complete pin swapping and configuration management
  • ELS27 Integration: Specific CAN pin configuration (12-13) support
  • Auto-Configuration: Device-specific settings automatically applied
  • Fallback Support: Graceful degradation for unsupported devices
  • Performance Optimization: Enhanced communication speeds up to 1,000,000 bps
  • Fully Translated Interface in 14 languages with 100% translation coverage
  • Supported Languages: English, Français (fr), Czech(cs_CZ), Deutsch (de), Español (es), Italiano (it), Русский (ru), Polski (pl), Nederlands (nl), Português (pt), Magyar (hu), Română (ro), Српски (sr), Türkçe (tr), Українська (uk_UA)
  • Real-time Language Switching with proper encoding support
  • HTML-Aware Translations preserving markup while translating content

Performance & Reliability Improvements

  • Enhanced Device Detection: Optimized port scanning with intelligent device identification
  • Thread-Safe Operations: QThread-based operations with proper synchronization for connection stability
  • Enhanced Error Handling: Comprehensive error recovery and user-friendly messages
  • Memory Optimization: Improved resource management and cleanup

🔧 New Device & Speed Management

  • VGate iCar Pro Support: Full support for VGate adapters with high-speed communication
  • Intelligent Speed Selection: Device-specific speed options automatically loaded
  • Optimal Settings Engine: Automatic timeout and flow control configuration per device
  • Enhanced Vlinker Support: Improved speed options (No, 57600, 115200) for better performance

Android porting:

Notes:

This application is work in progress, so be very careful when using expert mode. Using the application in non expert mode should not be harmful for your vehicle (leave the expert mode button released).

Important :

Do not use this software if you don't have a strong knowledge of how a CAN network (or ECU) works, you can really do bad things with it, especially if you're working on a vehicle

The author declines all responsibility about a bad use of this tool. You are the only responsible

This tool is mainly aimed for CAN ISO_TP network study

Cloning Source Code

Dependencies :

python_3.13.x

Modern Python Packaging (Recommended)

DDT4All now uses modern Python packaging with pyproject.toml for streamlined installation:

# Clone the repository
git clone https://github.com/cedricp/ddt4all.git
cd ddt4all

# Install in development mode (recommended for developers)
pip install -e .

# Install with optional dependencies
pip install -e ".[dev]"          # Development tools
pip install -e ".[can]"          # CAN bus support
pip install -e ".[network]"      # Network protocols
pip install -e ".[bluetooth]"   # Bluetooth support (Linux/Windows)

# Install all optional dependencies
pip install -e ".[dev,can,network,bluetooth]"

# Run this
python -m ddt4all

Core Requirements (Essential):

  • Python 3.8+ - Python 3.10+ recommended
  • PyQt5 - GUI framework (>=5.15.0,<5.16.0)
  • pyserial - Serial communication (==3.5)
  • pyusb - USB device support (==1.2.1)
  • crcmod - Checksum functions (==1.7)

Enhanced Features (Optional but Recommended):

  • PyQtWebEngine - Enhanced documentation viewing
  • pywin32 - Windows serial support (Windows only, >=227)
  • python-can - Advanced CAN bus support (>=4.0.0)
  • obd - OBD-II protocol support (>=0.7.1)

Development Tools:

Legacy Installation (Alternative):

# Manual dependency installation
pip install "PyQt5>=5.15.0,<5.16.0" "PyQtWebEngine>=5.15.0,<5.16.0" pyserial==3.5 pyusb==1.2.1 crcmod==1.7

# Windows-specific dependencies
pip install pywin32>=227

Important Notes:

  • Modern Packaging: Uses pyproject.toml for dependency management and build configuration
  • Python Compatibility: 3.8+ supported (32-bit and 64-bit), tested on 3.8.6, 3.10.12, 3.13.x
  • WebEngine Compatibility: Optional PyQtWebEngine support with graceful fallback
  • Virtual Environment: Recommended setup guide
  • Development Mode: Use pip install -e . for development to enable editable installs

🔌 Supported Diagnostic Adapters

  • Vlinker FS - USB/Bluetooth (Recommended for best performance and stability)
  • VGate iCar Pro - USB/Bluetooth/WiFi (High-speed adapter with communication up to 1,000,000 bps)
  • ELM327 - USB/Bluetooth/WiFi (Original with PIC18F25K80, some Chinese clones supported)
  • ObdLink SX - USB (High-speed professional adapter with RTS/CTS flow control)
  • ObdLink EX - USB (Professional adapter, tested and confirmed working)
  • ELS27 - USB (Alternative ELM327-compatible adapter)
  • ELS27 V5 - USB (Enhanced ELS27 with CAN on pins 12-13, improved compatibility)
  • USB CAN Adapters - USB (Specialized CAN adapters with automatic fallback handling)

Connection Methods:

  • USB Serial: Serial-over-USB connection with automatic driver detection (most adapters)
  • USB Direct: Native USB communication for specialized CAN adapters
  • Bluetooth: Wireless connection with pairing support
  • WiFi: TCP/IP connection (format: 192.168.0.10:35000)

Latest Improvements:

  • Enhanced USB Support: Added dedicated handling for USB ELM327 adapters (STD_USB)
  • USB CAN Adapters: New support for specialized USB CAN interfaces with intelligent fallback
  • Device Normalization: Improved adapter type mapping for better device recognition
  • Connection Reliability: Enhanced error handling and timeout management per device type

Note: Most adapters (ELM327, Vlinker, VGate, ObdLink, ELS27) use serial-over-USB communication through standard COM ports. USB CAN adapters now have dedicated support with automatic fallback to ensure compatibility.

📋 Supported Device Configuration:

Device Speed Options Default Timeout Flow Control Best For Notes
Vlinker FS No, 57600, 115200 38400 3s None Enhanced Most stable, best compatibility
VGate iCar Pro No, 115200, 230400, 500000, 1000000 115200 2s None Enhanced High-speed adapter, very high speeds
ELM327 Original Standard speeds 38400 5s None General use Verify PIC18F25K80 chip
ELM327 Clone Standard speeds 9600-38400 5s None Budget option Test different baud rates
ELM327 USB Standard speeds 38400 5s None USB Direct Dedicated USB ELM327 support
ObdLink SX No, 500000, 1000000, 2000000 115200 2s RTS/CTS Professional Highest speeds, premium adapter
ObdLink EX No, 500000, 1000000, 2000000 115200 2s RTS/CTS Professional Confirmed working, professional grade
ELS27 Standard speeds 38400 4s None Alternative Good ELM327 alternative
ELS27 V5 Standard speeds 38400 4s None Enhanced CAN pins 12-13, PyRen/Renolink compatible
DERLEK USB-DIAG2 Standard speeds 38400 4s None Professional Auto pin swapping, STN/STPX support
DERLEK USB-DIAG3 Standard speeds 38400 4s None Professional Auto pin swapping, STN/STPX support
USB CAN Varies 38400 5s None Specialized Intelligent fallback, auto-detection

⚙️ Connection Optimization Tips:

  • USB: Most stable, recommended for diagnostic work
  • Bluetooth: Good for mobile use, may have occasional dropouts
  • WiFi: Convenient but requires stable network (format: 192.168.0.10:35000)
  • Speed Selection: Each adapter now has device-specific speed options for optimal performance
  • Troubleshooting: Use built-in connection test for automatic optimization

🚀 New Speed Selection Feature:

DDT4All now automatically provides optimal speed options based on your selected adapter: - Automatic Detection: Device-specific speed ranges are automatically loaded - Performance Optimization: Each adapter gets speeds suited to its capabilities - Easy Selection: Simply choose your adapter type and select from available speeds

⚡ Technical Speed Implementation:

VGate iCar Pro (STN-based, high-speed capable): - Available: No, 115200, 230400, 500000, 1000000 bps - Default: 115200 bps (speedcombo index 2)

Vlinker FS (Moderate speeds, stable): - Available: No, 57600, 115200 bps
- Default: 38400 bps

ObdLink SX/EX (Professional, highest speeds): - Available: No, 500000, 1000000, 2000000 bps - Default: 115200 bps with RTS/CTS flow control

ELM327 variants (Standard compatibility): - Speed fallback: 38400, 115200, 230400, 57600, 9600, 500000, 1000000, 2000000 bps - Default: 38400 bps

🔍 Device Identification Guide:

  • Vlinker FS: Usually labeled "Vlinker FS" or "OBDII WiFi"
  • VGate iCar Pro: Labeled "VGate" or "iCar Pro", often with WiFi/Bluetooth indicators
  • ELM327 Original: Look for "PIC18F25K80" chip marking
  • ELM327 Clone: Various markings, test with 9600-38400 baud
  • ELM327 USB: Dedicated USB connector, may show as "STD_USB" in interface
  • ObdLink SX: Professional blue/black housing, "OBDLink SX" branding
  • ObdLink EX: Professional housing, "OBDLink EX" branding, similar to SX
  • ELS27: Similar to ELM327 but with "ELS27" marking
  • ELS27 V5: Enhanced ELS27 with "V5" marking, CAN pins 12-13, better driver compatibility
  • USB CAN: Specialized CAN adapters, various manufacturers, auto-detected as "USBCAN"

⚡ Quick Setup Guide:

  1. Connect Device: USB/Bluetooth/WiFi as appropriate
  2. Launch DDT4All: Application will auto-detect most devices
  3. Test Connection: Use built-in connection test feature
  4. Optimize Settings: Adjust baud rate if needed based on device type

✅ User-Tested Devices:

  • ObdLink EX: Confirmed working by community user with excellent results
  • Vlinker FS: Extensively tested, recommended for best compatibility
  • VGate iCar Pro: Enhanced adapter with excellent speed capabilities
  • ELM327 Original: Well-tested with PIC18F25K80 chip
  • ELS27 V5: Enhanced compatibility, works with PyRen and Renolink drivers

Note: If you have successfully tested other devices with DDT4All, please let us know so we can update this list!

Next, you need to get the source code.

git clone https://github.com/cedricp/ddt4all.git

Windows installer

Get the fully packaged installer here : Release area

🚀 Key Features

🔧 Diagnostic Functions

  • Read/Clear DTC: Comprehensive diagnostic troub

Core symbols most depended-on inside this repo

connect
called by 170
src/ddt4all/core/doip/doip_devices.py
cmd
called by 88
src/ddt4all/core/elm/elm.py
write
called by 69
src/ddt4all/core/elm/port.py
getChildNodesByName
called by 59
src/ddt4all/core/ecu/utils.py
close
called by 39
src/ddt4all/core/elm/port.py
clear
called by 38
src/ddt4all/ui/data_editor/button_data.py
setValue
called by 37
src/ddt4all/core/ecu/ecu_data.py
send_request
called by 36
src/ddt4all/core/ecu/ecu_request.py

Shape

Method 555
Function 159
Class 69

Languages

Python100%

Modules by API surface

src/ddt4all/ui/main_window/main_widget.py55 symbols
src/ddt4all/ui/parameters/param_widget.py53 symbols
src/ddt4all/core/elm/elm.py42 symbols
src/ddt4all/ui/main_window/main_window_options.py27 symbols
src/ddt4all/options.py22 symbols
src/ddt4all/plugins/zoe_waterpump_counter_reset.py20 symbols
src/ddt4all/ui/data_editor/param_editor.py19 symbols
src/ddt4all/plugins/card_programming.py18 symbols
src/ddt4all/ui/data_editor/data_editor.py17 symbols
src/ddt4all/core/usbdevice/usb_can.py17 symbols
src/ddt4all/core/ecu/ecu_scanner.py15 symbols
tests/integration/core/ecu/test_ecu_file.py14 symbols

Dependencies from manifests, versioned

crcmod1.7 · 1×
pyserial3.5 · 1×
pyusb1.2.1 · 1×

For agents

$ claude mcp add ddt4all \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact