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

To install it:

pip install pycangui

To run it:

pycangui

To update it:

pip install --upgrade pycangui

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

On Linux, Qt needs a system library to draw the window, and Debian, Ubuntu, Linux Mint and the like often leave it out:

sudo apt install libxcb-cursor0

To include everything optional up front -- currently that is only 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 timebase, CAN FD included, with recording to six log formats and replay of a log onto a bus. Filtering is at two levels: an acceptance filter on a channel, which drops frames before they arrive, and a filter on the trace, which hides them and discards nothing.
  • Transmit raw frames, DBC messages edited by signal, or a CANopen RPDO.
  • Signals and Plot from DBC decode, CANopen TPDOs or XCP and CCP polling, with export to CSV and import of MDF and MF4 measurement files.
  • CANopen: node list, object dictionary, PDO configuration, EMCY, LSS, SYNC, DCF save, apply and compare.
  • 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.
  • 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. Two come with pycangui: CANopen firmware download (CiA 302-3) 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 for each device or project you work on, 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 port 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.3.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.3.0
File Size Uploaded
pycangui-0.3.0.tar.gz 1.1 MB Details

Built distribution (wheel)

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

Total release size: 2.0 MB

Release files / pycangui-0.3.0.tar.gz

Download URL pycangui-0.3.0.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
6717434a24395540075e2195b35dc1ebe7521e3a652009d433897ae8964d3834
BLAKE2b-256 checksum
How to use checksums
c03be3d9c60479af2b637efbe48a3159f77bdef63683d237ed259362c9054fbf
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 11, 2026.

Transparency log

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

Download URL pycangui-0.3.0-py3-none-any.whl
Size 896.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
41ed2be132636b9791173ff904f1abcc2184478398304a8671faa49a0156164b
BLAKE2b-256 checksum
How to use checksums
b5e9641a477b22f69e3c817cda1b24eae851998ec75673b295ebfffb6622ffa7
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 11, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

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