User Tools

Site Tools


cbus:socketcan-en

SocketCAN

Introduction

The Pi01CAN MCP251x Interface board needs a Raspberry Pi 2/3/4 with PiOS 32bit or 64bit.1)
SocketCAN is only available if the Rocrail server runs on the same Raspberry Pi with the PiCAN on it.
The communication with RCAN2) is direct and binary; No bidirectional conversion needed between the MERG Gridconnect ASCII framing.
The 12VDC power supply for the connected CANGC* units can be provided wit a GCA-08. See Cable connections for more information.


Documentation

Pi01CAN Interface

pi01can.jpg
The I2C parts can be left out If the RocNet connection is not needed. (Just write a remark in case its ordered at GCA.)

Raspi Setup

config.txt

Modify the following file as super user, sudo, with a text editor of your choice.
/boot/config.txt

Remove the comment '#' from this line:
before modify

#dtparam=spi=on

after modify

dtparam=spi=on

Add the following lines to the end of this file:

dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25
dtoverlay=spi-bcm2835-overlay

Reboot

sudo shutdown -r now

interfaces

Modify the following file as super user, sudo, with a text editor of your choice.
/etc/network/interfaces

Add the following lines to the end of this file: (The comment line '#' is optional.)

# CAN Interface
auto can0
iface can0 inet manual
        pre-up /sbin/ip link set $IFACE type can bitrate 125000 restart-ms 100
        up /sbin/ifconfig $IFACE up
        down /sbin/ifconfig $IFACE down

If the Pi-CAN should be used with MBUS, the bitrate must be set to 250000.

Check

pi@keltenbahn:~ $ dmesg | egrep -i "can|spi" 
[    3.998382] CAN device driver interface
[    4.051102] mcp251x spi0.0 can0: MCP2515 successfully initialized.


Rocrail Setup


  • Select type SocketCAN
  • Set Hostname(device name) to can0 (If not set: can0 will be used.)

Check the device name

Check the device name by using the command ifconfig on the Raspberry Pi:

pi@keltenbahn:~ $ ifconfig
can0: flags=193<UP,RUNNING,NOARP>  mtu 16
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 10  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


CANService

As alternative to running Rocrail on the Raspberry Pi, it is also possible to use the CANService.
It behaves like a GC1e.

cbus/socketcan-en.txt · Last modified: 2020/07/15 22:05 by rjversluis