{"id":24486,"library":"pyxcp","title":"pyxcp - Universal Calibration Protocol for Python","description":"Python implementation of the XCP (Universal Measurement and Calibration Protocol) for ECU access via CAN, Ethernet, USB, etc. Current version 0.29.7, regular releases with critical bugfixes. Requires Python >=3.10.","status":"active","version":"0.29.7","language":"python","source_language":"en","source_url":"https://github.com/christoph2/pyxcp","tags":["XCP","ECU","calibration","automotive","CAN","Ethernet","USB"],"install":[{"cmd":"pip install pyxcp","lang":"bash","label":"PyPI"}],"dependencies":[{"reason":"Raw Ethernet XCP transport (install as pyxcp[ethernet])","package":"pylibpcap (optional)","optional":true},{"reason":"CAN transport (install as pyxcp[can])","package":"python-can (optional)","optional":true},{"reason":"USB transport (install as pyxcp[usb])","package":"cffi (optional)","optional":true}],"imports":[{"note":"Master is directly exposed at package level","wrong":"from pyxcp.master import Master","symbol":"Master","correct":"from pyxcp import Master"},{"note":"Old internal module path removed in v0.27","wrong":"from pyxcp.slave import SlaveProperties","symbol":"SlaveProperties","correct":"from pyxcp import SlaveProperties"},{"note":"types is a submodule; wildcard import not supported","wrong":"from pyxcp.types import *","symbol":"types module","correct":"from pyxcp import types"}],"quickstart":{"code":"from pyxcp import Master, SlaveProperties\nimport pyxcp.transport.can as can\n\nmaster = Master(can.CanCCPSlave(channel='can0', baudrate=500000))\nprops = master.getSlaveProperties()\nprint(f\"Slave ID: {props.slaveId}, Protocol: {props.protocolVersion}\")\nmaster.disconnect()","lang":"python","description":"Connect to an XCP slave over CAN and read slave properties."},"warnings":[{"fix":"Upgrade to pyxcp >=0.28.0","message":"DAQ InterleavedMode calculation bug: setting interleavedMode=True could cause ERR_OUT_OF_RANGE. Fixed in v0.28.0.","severity":"breaking","affected_versions":"<0.28.0"},{"fix":"Upgrade to pyxcp >=0.27.1","message":"CAN-FD padding corruption: variable-length CAN FD frames could have corrupted padding bytes. Fixed in v0.27.1.","severity":"breaking","affected_versions":"<0.27.1"},{"fix":"Use 'from pyxcp import SlaveProperties'","message":"Import path changed: SlaveProperties no longer available from pyxcp.slave. Import from pyxcp directly.","severity":"gotcha","affected_versions":">=0.27.0"}],"env_vars":null,"search_vec":"'0.29.7':27 '3.10':35 'access':19 'automot':39 'bugfix':32 'calibr':3,15,38 'critic':31 'current':25 'ecu':18,37 'etc':24 'ethernet':22,41 'implement':8 'measur':13 'protocol':4,16 'python':6,7,34 'pyxcp':1 'regular':28 'releas':29 'requir':33 'univers':2,12 'usb':23,42 'version':26 'via':20 'xcp':11,36","created_at":"2026-05-01T08:13:20.154055+00:00","updated_at":"2026-05-01T08:13:20.154055+00:00","problems":[{"fix":"Upgrade to pyxcp >=0.28.0 or disable interleavedMode","cause":"Sequence counter byte not included in overhead calculation (fixed in v0.28.0)","error":"ERR_OUT_OF_RANGE when configuring DAQ with interleavedMode=True"},{"fix":"pip install --upgrade pyxcp","cause":"Older pyxcp version or wrong installation (Master is only available from pyxcp package top-level)","error":"ImportError: cannot import name 'Master' from 'pyxcp'"},{"fix":"Use CanCcpslaveInterface instead (case-sensitive)","cause":"Class renamed in v0.27.0; old name still works but triggers deprecation warning","error":"pyxcp.transport.can.CanCCPSlave is deprecated: use CanCcpslaveInterface instead"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"0.29.10","cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/christoph2/pyxcp","docs":null,"changelog":null,"pypi":"https://pypi.org/project/pyxcp/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["communication","http-networking"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-29","last_verified":"2026-06-29","next_check":"2026-07-29","install_tag":null}}