pycangui
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.
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)
| File | Size | Uploaded | |
|---|---|---|---|
| pycangui-0.3.0.tar.gz | 1.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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