CAN Bus

CAN Bus or CAN (Controller Area Network) is a communication protocol that allows multiple electronic devices to communicate with each other over a shared two-wire connection.

Within the VESC ecosystem, CAN Bus is commonly used to connect motor controllers, BMS systems, displays, sensors, IO modules, and other accessories. Rather than requiring a separate communication connection between every device, all devices can share the same CAN Bus network.

This simplifies wiring while allowing devices to exchange data in real time.

CAN Bus devices are connected in parallel, with all CAN H connections linked together and all CAN L connections linked together. This allows every device on the network to transmit and receive messages over the same communication bus.

CAN Bus can be used for:

  • Multiple VESC controllers
  • VESC BMS communication
  • Displays and dashboards
  • GPS modules
  • External sensors
  • IO and expansion modules
  • Custom applications and automation

One of the most common uses of CAN Bus is connecting multiple VESC controllers together. In a dual or multi-motor system, one controller can receive commands from the user and distribute them to the other controllers over the CAN Bus network, ensuring all motors operate together.

⚠️ CAN Bus must be wired as a shared parallel network. CAN H should connect to CAN H on all devices, and CAN L should connect to CAN L on all devices. Wiring devices in series or crossing the CAN H and CAN L connections will prevent communication.

⚠️ CAN Bus is a communication network, not a power connection. While CAN devices often share the same battery system, CAN H and CAN L only carry communication data and are not intended to transfer significant power between devices.

⚠️ All devices connected to the same CAN Bus network must have a unique CAN ID. If two devices share the same CAN ID, communication conflicts can occur.

One of the strengths of CAN Bus is its reliability. The protocol was originally developed for the automotive industry and includes error detection, message prioritisation, and noise immunity features that allow it to operate reliably in electrically noisy environments.

Example

A VESC BMS, VESC controller, and VESC Dash display can all be connected to the same CAN Bus network. The BMS can transmit battery information, the controller can transmit motor data, and the display can show information from both devices over a single communication network.

In simple terms: CAN Bus is a two-wire communication network that allows multiple VESC devices to exchange information and work together.