

The VESC 6.7 Pro is a high-performance electronic speed controller (ESC) developed by VESC. It is designed to provide precise and efficient control of electric motors in a wide range of applications, including electric vehicles, robotics, drones, and industrial automation. With advanced motor control algorithms, customizable settings, and support for various motor types (e.g., BLDC, FOC, and DC motors), the VESC 6.7 Pro is a versatile and reliable solution for demanding projects.








| Parameter | Specification |
|---|---|
| Input Voltage Range | 8V to 60V (up to 14S LiPo) |
| Continuous Current | 80A |
| Peak Current | 120A |
| Supported Motor Types | BLDC, FOC, DC |
| Communication Interfaces | CAN, UART, SPI, I2C, USB |
| PWM Input Frequency | 1 kHz to 20 kHz |
| Dimensions | 75mm x 45mm x 20mm |
| Weight | 120g |
| Operating Temperature Range | -40°C to 85°C |
The VESC 6.7 Pro features multiple connectors for power, motor, and communication. Below is the pin configuration:
| Pin Name | Description |
|---|---|
| VIN+ | Positive input voltage (battery positive) |
| VIN- | Negative input voltage (battery ground) |
| MOTOR A | Motor phase A connection |
| MOTOR B | Motor phase B connection |
| MOTOR C | Motor phase C connection |
| Pin Name | Description |
|---|---|
| UART RX | UART receive pin for communication |
| UART TX | UART transmit pin for communication |
| CAN H | CAN bus high signal |
| CAN L | CAN bus low signal |
| PPM | PWM/PPM input for throttle control |
| 5V OUT | 5V output for external devices |
| GND | Ground connection for external devices |
The VESC 6.7 Pro can be controlled via UART using an Arduino UNO. Below is an example code snippet to send a throttle command:
#include <SoftwareSerial.h>
// Define RX and TX pins for UART communication
SoftwareSerial VESCSerial(10, 11); // RX = pin 10, TX = pin 11
void setup() {
// Initialize serial communication
Serial.begin(9600); // For debugging
VESCSerial.begin(115200); // VESC default baud rate
Serial.println("VESC 6.7 Pro UART Control Example");
}
void loop() {
// Example: Send a throttle command to the VESC
// The throttle value ranges from -1.0 (full reverse) to 1.0 (full forward)
float throttle = 0.5; // 50% forward throttle
sendThrottleCommand(throttle);
delay(100); // Wait for 100ms before sending the next command
}
void sendThrottleCommand(float throttle) {
// Convert throttle value to a byte array (example protocol)
byte command[4];
int throttleInt = (int)(throttle * 1000); // Scale to integer
command[0] = (throttleInt >> 8) & 0xFF; // High byte
command[1] = throttleInt & 0xFF; // Low byte
command[2] = 0x00; // Reserved
command[3] = 0xFF; // End byte
// Send the command to the VESC
VESCSerial.write(command, 4);
// Debug output
Serial.print("Throttle Command Sent: ");
Serial.println(throttle);
}
Motor Not Spinning:
Overheating:
Communication Failure:
Unexpected Shutdown:
Q: Can the VESC 6.7 Pro handle regenerative braking?
Q: What is the maximum motor RPM supported?
Q: Is the VESC 6.7 Pro waterproof?
Q: Can I use the VESC 6.7 Pro with a brushed DC motor?