# 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
# Hardware Setup
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:
|App to use|
|Can Status Message Mode|
|CAN Baud Rate|
|UAVCAN ESC Index|
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.
UAVCAN ESC Index starts from
0, and as such it is always one index lower than the
For example, in a quadcopter the bottom left motor will have
VESC ID = 2 and
UAVCAN ESC Index = 1.
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
(Optional) Set UAVCAN_ESC_IDLT to 1 in order to ensure that the motors are always running at least at the idle throttle while the system is armed.
Some systems will not benefit from this behavior, e.g. glider drones).