github Chanchaldhiman/CANviz v0.3.1

15 hours ago

CANviz v0.3.1 - CANopen CiA 301 + CiA 402

pip install --upgrade canviz


What's in this release

CANopen decoder

If you work with servo drives, robot arms, industrial automation, or any CiA 301 network - this release is for you.

CANviz now decodes CANopen traffic passively with zero configuration. Connect at your network bitrate, enable the decoder, and every frame is immediately labelled by type and node - no EDS file required to get started.

Auto-detection - CANviz watches for 11-bit CAN IDs in the CANopen COB-ID range and shows an amber indicator on the CANopen tab as soon as it sees activity.

Nodes table - every node on the bus is tracked automatically from Heartbeat frames (0x701–0x77F). NMT state (Operational / Pre-Operational / Stopped), heartbeat interval, and total frame count are shown live per node. No polling, no SDO reads - purely passive.

CiA 402 drive state - if a node is a servo drive, CANviz decodes its Statusword from TPDO1 and shows the named drive state inline under each node: Operation Enabled, Ready to Switch On, Fault, Quick Stop Active and so on. No EDS required for this - the standard CiA 402 default TPDO1 mapping is used. Load an EDS to remove the (default) annotation.

CiA 402 Drive Control - quick Controlword buttons directly in the panel. Enable, Switch On, Shutdown, Quick Stop, Disable, and Fault Reset. Select the target node, hover the button to see exactly what Controlword value it sends, click to send. A one-time safety notice appears on first use and is stored in the browser - not shown again until you reset it.

EMCY decode - Emergency frames (0x081–0x0FF) are decoded to error code, error class name, error register flags, and manufacturer data. The EMCY Events section appears only when faults are present and auto-clears when the network is clean.

SDO log - every SDO request/response pair observed on the bus is captured, paired, and displayed with the object name looked up from a built-in 180-entry CiA 301 + CiA 402 dictionary. Auto-populated from traffic - no manual reads needed.

SDO Read / Write - send expedited SDO reads and writes to any live node directly from the panel. The object name is looked up automatically as you type the index. Writes send immediately on click.

Object dictionary browser - search the 180 built-in standard objects by name or index (velocity, 6064, 0x6041). Click Read next to any result to auto-fill the SDO Read form.

NMT commands - Operational, Pre-Operational, Stop, Reset Node, Reset Comm. Select a specific node or broadcast to all. A confirm strip appears before sending.

Read All Node Objects - one click sends 15 standard SDO read requests (device name, vendor ID, product code, Statusword, actual position, actual velocity, profile velocity, heartbeat time and more) to every discovered node. Responses appear in the SDO log automatically.

EDS / DCF file support - upload your device EDS file to decode TPDO/RPDO payloads into named signals. Once loaded, signals like Statusword, Position Actual Value, and Velocity Actual Value appear in the Plot tab signal selector alongside DBC signals. PDO mapping is parsed directly from the EDS defaults - no live SDO read of the device required.

Right panel layout - CANopen and J1939 decoders now live in a dedicated full-height right panel that sits alongside the message table. Drag the left edge to resize it. The bottom panel is now cleaner with four tool tabs: Send Frame, Record, Replay, Plot.

See the [CANopen Guide](https://github.com/Chanchaldhiman/CANviz/blob/main/docs/canopen.md) for full documentation, EDS requirements, drive control safety notes, SDO encoding reference, and REST API reference.


What's next

v0.4.x - CAN FD explicit UI support (>8 byte payloads, FDF/BRS/ESI flags per frame), OBD-II over raw CAN without ELM327.

Full roadmap: UDS diagnostic panel, reverse engineering toolkit, plugin API.


Contributors

Thanks for the continued feedback and hardware testing since the J1939 release. The CANopen and robotics community has been asking for this - hope it earns its place in your debugging workflow.

If CANviz saves you time, a ⭐ on GitHub and a share with your team goes a long way.

Full Changelog: v0.3.0...v0.3.1

Don't miss a new CANviz release

NewReleases is sending notifications on new releases.