Table of Contents
CANService
Introduction
The CANService is a small application which acts like a bridge between UDP/TCP and CAN.
Protocols and Ports
Märklin CS2 CAN
It provides the same UDP ports as the Märklin CS2/CS3, 15730/15731, and TCP default port 15731 for communicating with a PC.
RCAN
ASCII
Recommended for RCAN + CBUS.
The TCP port 5550 is for use with RCAN and CBUS. The linefeed option is required.
Binary
Does not support CBUS and has no framing.
The TCP port 15731 can be used in combination with the binary option.
BiDiB-USB
2.1.656+
The TCP port 15731 can also be for used for BiDiB, if the command line option -usb
is set.
The default USB device is /dev/ttyUSB0
.
Rocrail must be set to BiDiB type TCP with port 15731. The hostname is the IP or name of the RPi.
An unused Raspberry Pi 1, 2 or 3 can be used as USB-TCP bridge.
Command line options:
- -usb
- -usbdev <serial device name>
- -info
- -byte
Restrictions
The TCP/IP can only handle one client.
If there is need for multiple connections, this can be extended.
Requirements
- Debian based Linux platform like Raspberry Pi + Raspbian.
- Hardware CAN interface: Pi01CAN.
Install
The CANService application is installed in the /opt/rocrail directory, and is included in all provided rocrail*.deb packages.
SocketCAN Setup
See: Raspberry Pi Setup
CAN bit rate
Set the CAN bit rate according to the target CAN:
CAN | Bit rate |
---|---|
RCAN | 125000 |
MBUS (CS2, CS3, GleisBox) | 250000 |
CANService Setup/Startup
There are no settings to configure, just run it in user context.
To run it automatically after every boot, it can be setup like the Rocrail Server.
Start script
#/bin/bash cd /home/pi /opt/rocrail/canservice.sh <options>
Make the script executable:
chmod +x /home/pi/canservice.sh
Add it to the crontab with the command crontab -e
:
@reboot /home/pi/canservice.sh