Skip to main content

pycangui icon: a CAN bus with four node taps and a terminating resistor at each end

pycangui

CI release PyPI python platform license

A graphical CAN bus tool: live trace and plots, transmit, CANopen, UDS, J1939, XCP and CCP, and Python scripting, on any adapter supported by python-can -- PEAK, Vector, Kvaser, IXXAT, SocketCAN and low-cost SLCAN adapters among them.

pycangui on its demo device: the CAN Trace, CAN Transmit and Event Log above, and engine and vehicle speed plotted in Signals and Plot below

Install and run

pip install pycangui
pycangui

Python 3.12 or newer, on Windows, Linux or macOS. python -m pycangui starts it too.

To include everything optional up front -- today that is the reader for MDF and MF4 measurement files -- install all. Without it, pycangui offers to install the reader the first time a measurement file is opened.

pip install "pycangui[all]"

What it does

  • Adapters: every interface python-can supports -- PEAK PCAN, Vector, Kvaser, IXXAT, ETAS, Intrepid neoVI, NI-CAN and NI-XNET, SYS TEC, Neousys, CANalyst-II, CANtact, candleLight and other gs_usb devices, SLCAN (CANable, Lawicel), 8devices USB2CAN, Seeed Studio, Robotell, isCAN and serial adapters; SocketCAN and socketcand on Linux; UDP multicast between computers; and a virtual bus that needs no hardware at all.
  • Live trace of every connected channel on one clock, CAN FD included, with filtering that hides rather than discards, recording to six log formats, and replay of a log onto a bus.
  • Transmit raw frames, DBC messages edited by signal, or a CANopen RPDO.
  • CANopen: node list, object dictionary, PDO configuration, EMCY, LSS, SYNC, DCF save and apply.
  • Custom panes: the CANopen objects a job needs, laid out as a form with labels and units. Built from the object dictionary with no code, and polled into Signals and Plot.
  • UDS over ISO-TP: sessions, security access, DIDs, DTCs, routines, and firmware transfer in either direction.
  • J1939: nodes from address claims, DM1 faults with lamp status and the failure mode in words, multi-packet messages (TP.BAM and TP.CM), requesting and sending PGNs, and SPNs decoded from a J1939 DBC.
  • XCP and CCP on CAN: connect, seed and key, and reading and writing A2L measurements and characteristics by polling.
  • ASCII Log: reads any CAN identifier as text, for devices that print a console into the data bytes.
  • Signals and Plot from DBC decode, CANopen TPDOs or XCP and CCP polling, and out to CSV.
  • Python hooks with hot reload, replaceable components (your own CAN interface, ISO-TP transport, or XCP or CCP engine), a live console and Run script.
  • Plugins that add a pane of their own, installed from a zip. Three come with pycangui: CANopen firmware download (CiA 302-3), DCF compare, and CiA 402 motor control.
  • Simulated nodes: devices written as Python files, on a virtual bus or standing on a real adapter, and gateways between channels.
  • Workspaces: one per product, holding its hooks, EDS files, databases, channels and layout, and exported as one zip.

The manual covers each of these, and is also under Help > Documentation in the application.

Adapters

Any adapter python-can supports, as listed above. Install the adapter maker's driver and python-can finds it at run time.

No hardware is needed to try it: the virtual interface's Demo device channel has a simulated device on it that answers CANopen, UDS, J1939, XCP and CCP.

More

Safety notice and licence

pycangui talks to real equipment. It is intended only for people trained and experienced in working with CAN networks and the equipment connected to them.

Joining a bus at the wrong bitrate makes a controller signal an error on every frame it sees, which can impact the nodes that are already on the bus. Transmitting, replaying a log, writing parameters, enabling a drive and downloading firmware all change what equipment does, and not all of them can be undone.

Know what is on the bus before you join it, and what a device will do before you write to it. Like any software, pycangui can have faults, so do not rely on it to keep anything off the bus. Where a mistake could hurt someone or damage equipment, keep a way to stop that equipment within reach.

The hook and simulated-node templates copied into a workspace are under MIT-0, so what you write in them carries no conditions. pycangui itself is provided under the Apache License 2.0, without warranty of any kind.

Metadata

Release files for pycangui 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pycangui 0.2.0
File Size Uploaded
pycangui-0.2.0.tar.gz 1.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for pycangui 0.2.0
File Interpreter ABI Platform
pycangui-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.9 MB

Release files / pycangui-0.2.0.tar.gz

Download URL pycangui-0.2.0.tar.gz
Size 1.0 MB
Tags Source
SHA-256 checksum
How to use checksums
9ae96b136320b7bdc28f9d2b822f0ac6eb61a25554d6c2fa2c5a32ec921a66e7
BLAKE2b-256 checksum
How to use checksums
3f89da64dd05e9420f5c9ffe50bf7c612c587264d5ed09cb87ea0f2d5b2a5ee2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / pycangui-0.2.0-py3-none-any.whl

Download URL pycangui-0.2.0-py3-none-any.whl
Size 846.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
56e5851ab15472c599d25667a4e0ee0bc670686686c6abeeb000aefe0c3be029
BLAKE2b-256 checksum
How to use checksums
8f89a3e096c8b35e17f7d10768544eb55bb574c0bb2d7e2cf7c2e70df6c0ec16
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.0

2 release files

This release

0.2.0 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page