
RoboCAN Networking
18
CANBus Networking Manual
V2.0 July 8, 2019
Network Operation
RoboCAN requires only that a controller has a unique node number (other than 0)
assigned and that the RoboCAN mode is selected and enabled. All nodes must be
configured to operate at the same bit rate. Each enabled node will emit a special
heartbeat at a set and unchangeable rate of 128ms so that each node can create and
maintain a map of all nodes alive in the network.
RoboCAN via Serial & USB
Important notice: On many controller models, CAN and USB cannot be operated at the
same time. Please see product datasheet to verify if this is the case on the model used.
In case USB is not available, this section only applies to RS232 connections.
RoboCAN commands and queries can be sent from a USB or serial port using a modi-
fied syntax of the normal serial protocol: By simply adding the @ character followed by
the node as a 2 digit hex address, a command or query is sent to the desired node. This
scheme works with every Command (! Character), Query (?), Configuration setting (^),
Configuration read (~), and most Maintenance commands (%)
Runtime Commands
Below is a Command example:
!G 1 500
This is the normal command for giving a 50% power level command to motor 1 of the
controller that is attached to the computer.
@04!G 1 500
This will send the same 50% command to motor 1 of the controller at node address 4.
The reply to a local command is normally a + or - sign when a command is acknowledged
or rejected in normal serial mode.
When a command is sent to a remote node, the reply is also a + or – sign. However, in
addition, the reply can be a * sign to indicate that the destination node does not exist or is
not alive. Note that the + sign only indicates that the command syntax is valid and that the
destination node is alive.
Broadcast Command
Node address 00 is used to broadcast a command simultaneously to all the nodes in the
network. For example
@00!G 1 500
Will apply 50% power to all motor 1 at all nodes, including the local node