# VESC ESCs (DroneCAN)

The VESC project (opens new window) is a fully open source hardware and software design for advanced FOC motor controllers. While it can be controlled using traditional PWM input, it also supports being connected over CAN bus using DroneCAN.

# Where to Buy

Vesc Project > Hardware (opens new window)

# Hardware Setup

# Wiring

ESCs are connected to the CAN bus using the VESC CAN connector. Note that this is not the Pixhawk standard 4 pin JST GH connector. For more information, refer to the CAN Wiring instructions. ESC order does not matter.

# Firmware Setup

The preferred tool for motor enumeration is the VESC tool (opens new window). In addition to the normal motor configuration that you will have to setup in the VESC tool, you will also need to properly setup the app configuration. The recommended app setup is as follows:

Parameter Option
App to use No App
VESC ID 1,2,...
Can Status Message Mode CAN_STATUS_1_2_3_4_5
CAN Baud Rate CAN_BAUD_500K
CAN Mode UAVCAN
UAVCAN ESC Index 0,1,...

VESC ID should have the same motor numbering as in PX4 convention, starting at 1 for top-right motor, 2 for bottom-left motor etc. However the UAVCAN ESC Index starts from 0, and as such it is always one index lower than the VESC ID. For example, in a quadcopter the bottom left motor will have VESC ID = 2 and UAVCAN ESC Index = 1.

Finally the CAN Baud Rate must match the value set in UAVCAN_BITRATE.

# Flight Controller Setup

# Enable DroneCAN

Connect the ESCs to the Pixhawk CAN bus. Power up the entire vehicle using a battery or power supply (not just the flight controller over USB) and enable the DroneCAN driver by setting the parameter UAVCAN_ENABLE to 3 to enable both dynamic node ID allocation and DroneCAN ESC output.

# PX4 Configuration

Assign motors to outputs using the Acutator configuration screen.

# Further Information