Skip to content

A Python framework for Controller Area Network applications

License

Notifications You must be signed in to change notification settings

MultiCoreNop/CANard

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CANard

CANard is a library for dealing with Controller Area Network (CAN) data from Python.

Using a CANtact

The CANtact tool is directly supported by CANard. Using it requires pySerial, which can be installed with pip:

pip install pyserial

Example

This examples goes on bus and prints received messages:

from canard import can
from canard.hw import cantact

dev = cantact.CantactDev("/dev/cu.usbmodem14511")

dev.start()
while True:
      print(dev.recv())

You will need to set the serial port (/dev/cu.usbmodem14511 in this example) correctly.

Using Peak CAN Tools

Peak CAN tools (also known as GridConnect) are support through SocketCAN. This functionality is only available on Linux

For kernels 3.6 and newer, skip to step 5.

  1. Download the Peak Linux driver.

  2. Install dependancies:

    sudo apt-get install libpopt-dev
    
  3. Build the driver:

    cd peak-linux-driver-x.xx
    make
    sudo make install
    
  4. Enable the driver:

    sudo modprobe pcan
    
  5. Connect a Peak CAN tool, ensure it appears in /proc/pcan. Note the network device name (ie, can0)

  6. Bring the corresponding network up:

    sudo ifconfig can0 up
    

Example

The device can now be accessed as a SocketCanDev. This examples goes on bus and prints received messages:

from canard import can
from canard.hw import socketcan

dev = socketcan.SocketCanDev("can0")

dev.start()
while True:
    print(dev.recv())

About

A Python framework for Controller Area Network applications

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%