Skip to main content

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-buffer using bytes or K/M/G suffixes.
  • Set ECUCONNECT_DEBUG_IO=1 to print raw TX/RX frame traces while debugging transport issues.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ecuconnect_tool-0.9.6.tar.gz (93.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ecuconnect_tool-0.9.6-cp314-cp314-macosx_26_0_arm64.whl (193.4 kB view details)

Uploaded CPython 3.14macOS 26.0+ ARM64

File details

Details for the file ecuconnect_tool-0.9.6.tar.gz.

File metadata

  • Download URL: ecuconnect_tool-0.9.6.tar.gz
  • Upload date:
  • Size: 93.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for ecuconnect_tool-0.9.6.tar.gz
Algorithm Hash digest
SHA256 32f730343d26bf02ca8695dca3fc867c928f79ba51288dd89ba529cd11c2deac
MD5 0721763ade8f12bbfd14c5874a43347a
BLAKE2b-256 df5572dc38c339072547c988fd7463318cb5e2d06ee0ed321006971fc832c56a

See more details on using hashes here.

File details

Details for the file ecuconnect_tool-0.9.6-cp314-cp314-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for ecuconnect_tool-0.9.6-cp314-cp314-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 6f5649fb66b68e5b831aee750b9bd2259cd8aab8036d82f0178149723298cc22
MD5 97a7ac9eb4d843da0b32f53044ca0602
BLAKE2b-256 373ffac8bbbb8b516a111da2c9ad8a2814e9e2421221da0e4e7f80d8223e6ebd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page