Python ECUconnect CLI and CANyonero protocol bindings
Project description
ecuconnect-tool (Python)
Python CLI for ECUconnect using libCANyonero bindings. The default transport is WiFi/TCP at 192.168.42.42:129 (override with --endpoint for mocks or other adapters).
Install
From PyPI (TCP transport only):
pipx install ecuconnect-tool
With BLE/L2CAP support on Linux (needs system python3-dbus and python3-gi):
sudo apt install python3-dbus python3-gi
pipx install --system-site-packages ecuconnect-tool
From the repo (editable, for development):
python3 -m pip install -e ./python/ecuconnect_tool
Quick start
ecuconnect-tool info
ecuconnect-tool login
ecuconnect-tool ping 512 --count 10
ecuconnect-tool benchmark --count 32
ecuconnect-tool term 500000 --proto raw
ecuconnect-tool --url ecuconnect-l2cap://FFF1:129 term 500000 --proto raw
ecuconnect-tool monitor --bitrate 500000
ecuconnect-tool send "02 3E 80" --tx-id 0x123 --rx-id 0x321
ecuconnect-tool test --can-interface can0 --busload 1 --duration 5
BLE/L2CAP
Use the ECUconnect L2CAP endpoint format (works on both macOS and Linux):
ecuconnect-tool --url ecuconnect-l2cap://FFF1:129 info
macOS
Install CoreBluetooth bindings:
python3 -m pip install pyobjc-framework-CoreBluetooth
Optionally target a specific peripheral UUID:
ecuconnect-tool --url ecuconnect-l2cap://FFF1:129/12345678-1234-1234-1234-123456789abc info
Linux
See install section above for dependencies. Discovery uses the BlueZ D-Bus API; the L2CAP connection uses the kernel socket API directly.
Optionally filter by BD_ADDR:
ecuconnect-tool --url ecuconnect-l2cap://FFF1:129/DC:DA:0C:3A:E3:06 info
Dev flow (no install)
This builds the native extension in-place and runs the CLI from the repo:
python3 -m pip install --user pybind11 typer rich python-can
python3 ./python/ecuconnect_tool/scripts/run_dev.py test --can-interface can0 --busload 20 --duration 5
Auto ramp mode (start at 1 pps, step 1 pps until max busload):
ecuconnect-tool test --can-interface can0 --busload auto --auto-max-busload 1
Preflight info + ping happens before the load test by default. Disable with --preflight false.
Use --preflight-only to stop after the connectivity checks (no CAN open).
Use --traffic none to open the CAN channel + set arbitration, then exit without data transfer.
Use --traffic rx for CAN->ECU only, --traffic tx for ECU->CAN only.
Notes
ecuconnect-l2cap://is supported on macOS (CoreBluetooth) and Linux (BlueZ + kernel L2CAP).- Windows currently supports TCP endpoints only.
- Socket buffers default to
4M; override with--rx-buffer/--tx-bufferusing bytes orK/M/Gsuffixes. - Set
ECUCONNECT_DEBUG_IO=1to print raw TX/RX frame traces while debugging transport issues.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ecuconnect_tool-0.9.7.tar.gz.
File metadata
- Download URL: ecuconnect_tool-0.9.7.tar.gz
- Upload date:
- Size: 94.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a32b015dbaa682d9f9ad8e3fe646e08623ba48801ef81c04345ec163a848e660
|
|
| MD5 |
7466996f4f516ed99f138911f54515d7
|
|
| BLAKE2b-256 |
d2f6273d2b530e285f5e4134b632593aa6039fe2d6c0d8e175e5caf1a06553e0
|
File details
Details for the file ecuconnect_tool-0.9.7-cp314-cp314-macosx_26_0_arm64.whl.
File metadata
- Download URL: ecuconnect_tool-0.9.7-cp314-cp314-macosx_26_0_arm64.whl
- Upload date:
- Size: 194.0 kB
- Tags: CPython 3.14, macOS 26.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c59a67ded8fa924e534273c1b87d8b505655d88e475426c92b884c2ba1eafb06
|
|
| MD5 |
b8795319894b197a89ab605eeb6816ed
|
|
| BLAKE2b-256 |
b3dde1f34bac0bec3585ffd56c81d40ec3dcf8f599aa8d85f5fb13eb6f1c8b69
|