Skip to main content

An NCurses-based TUI application for tracking activity over the CAN bus and decoding messages with provided EDS/OD files.

Project description

CANOpen Monitor

license CodeQL pypi read the docs unit tests deployment bugs feature requests

An NCurses-based TUI application for tracking activity over the CAN bus and decoding messages with provided EDS/OD files.

Quick Start


$ pip install canopen-monitor


Run the monitor, binding to can0

$ canopen-monitor -i can0

Use this for an extensive help menu

$ canopen-monitor --help


The default configurations provided by CANOpen Monitor can be found in canopen_monitor/assets. These are the default assets provided. At runtime these configs are copied to ~/.config/canopen-monitor where they can be modified and the changes will persist.

EDS files are loaded from ~/.cache/canopen-monitor

Development and Contribution


Check out our Read The Docs pages for more info on the application sub-components and methods.


  • Linux 4.11 or greater (any distribution)

  • Python 3.8.5 or higher (pyenv is recommended for managing different python versions, see pyenv homepage for information)

Install Locally

Setup a virtual CAN signal generator

$ sudo apt-get install can-utils

Start a virtual CAN

$ sudo ip link add dev vcan0 type vcan

$ sudo ip link set up vcan0

Clone the repo

$ git clone

$ cd CANopen-monitor

$ pip install -e .[dev]

(Note: the -e flag creates a symbolic-link to your local development version. Set it once, and forget it)

Generate random messages with socketcan-dev

$ chmod 700 socketcan-dev

$ ./ --random-id --random-message -r

Start the monitor

$ canopen-monitor

Create documentation locally

$ make -C docs clean html

(Note: documentation is configured to auto-build with ReadTheDocs on every push to master)

Message Types + COB ID Ranges:

Wikipedia Table
Abridged Table:
Name COB ID Range
SYNC 080
EMCY 080 + NodeID
TPDO1 180 + NodeID
RPDO1 200 + NodeID
TPDO2 280 + NodeID
RPDO2 300 + NodeID
TPDO3 380 + NodeID
RPDO3 400 + NodeID
TPDO4 480 + NodeID
RPDO4 500 + NodeID
TSDO 580 + NodeID
RSDO 600 + NodeID
NMT (Heartbeat) 700 + NodeID

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

canopen-monitor-4.1.0.tar.gz (72.5 kB view hashes)

Uploaded source

Built Distribution

canopen_monitor-4.1.0-py3-none-any.whl (84.0 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page