{"id":21773,"library":"pyocd-pemicro","title":"PyOCD PEMicro Debug Probe Plugin","description":"A PyOCD debug probe plugin for PEMicro debug probes (e.g., Cyclone, Multilink). Currently at v1.1.5, released with pypemicro v0.1.10 compatibility. Low release cadence, mostly maintenance.","status":"active","version":"1.1.5","language":"python","source_language":"en","source_url":"https://github.com/pyocd/pyocd-pemicro","tags":["pyocd","pemicro","debug-probe","embedded","plugin"],"install":[{"cmd":"pip install pyocd-pemicro","lang":"bash","label":"pip install"}],"dependencies":[{"reason":"Underlying library to communicate with PEMicro probes","package":"pypemicro","optional":false},{"reason":"Debug probe framework (optional at runtime but needed for probe listing)","package":"pyocd","optional":true}],"imports":[{"note":"Direct import not recommended; use pyocd's probe discovery","wrong":null,"symbol":"PemicroProbe","correct":"from pyocd.probe.pemicro import PemicroProbe"}],"quickstart":{"code":"import os\nfrom pyocd.core.helpers import ConnectHelper\n# Ensure PEMicro library is available (install pypemicro)\n# List available probes\nprobes = ConnectHelper.get_all_connected_probes(blocking=False)\nfor probe in probes:\n    print(probe.product_name)\n# Connect to the first available PEMicro probe\nif probes:\n    session = ConnectHelper.session_with_chip(probe=probes[0], target='target_name')\n    session.open()\n    # ... debugging commands ...\n    session.close()","lang":"python","description":"Minimal example to discover and connect to a PEMicro probe via PyOCD."},"warnings":[{"fix":"Install pyocd explicitly if needed: pip install pyocd","message":"pyocd-pemicro v1.0.4 added a dependency on pyocd, but v1.0.5 removed it to avoid circular dependency. If you upgrade from <1.0.5 to >=1.0.5, you may need to install pyocd separately.","severity":"breaking","affected_versions":"from 1.0.4 to 1.0.5"},{"fix":"Upgrade pyocd-pemicro to >=1.1.3, which requires pypemicro >=0.1.9","message":"pypemicro v0.1.8 introduced an AttributeError in __del__(), causing v1.1.2 to revert to v0.1.7. Use pypemicro >=0.1.9 or >=0.1.10 with pyocd-pemicro >=1.1.3.","severity":"deprecated","affected_versions":"pyocd-pemicro <1.1.3 with pypemicro 0.1.8"},{"fix":"Check that your system architecture is supported by the PEMicro backend. On M1, use Rosetta or a x86_64 Python environment.","message":"PEMicro library is not available on all architectures (e.g., Apple M1). pyocd-pemicro catches missing library exceptions and returns no probes silently.","severity":"gotcha","affected_versions":"all versions"},{"fix":"Install both in the same environment; verify with: python -c \"import pyocd.probe.pemicro\"","message":"pyocd-pemicro is a plugin and must be installed in the same environment as pyocd. If installed separately, pyocd may not detect it automatically.","severity":"gotcha","affected_versions":"all versions"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Upgrade pyocd-pemicro to >=1.1.3 and pypemicro to >=0.1.9","cause":"pypemicro v0.1.8 broke internal attribute naming, affecting __del__().","error":"AttributeError: 'PyPemicro' object has no attribute '_device'"},{"fix":"Run: pip install pyocd-pemicro","cause":"pyocd-pemicro not installed or not in the same Python environment.","error":"ModuleNotFoundError: No module named 'pyocd.probe.pemicro'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}