VESC, an open-source brushless motor drive project.
Project link: https://github.com/vedderb

Project homepage
ESC
stands for Electric Speed Controller
, which is an electronic speed controller, abbreviated as ESC. The author is Benjamin Vedder, hence the name VESC, also known as Benjamin ESC.This project mainly consists of several parts: VESC firmware, bill of materials, VESC hardware, and VESC tool software. It's a very comprehensive open-source project with excellent supporting software.

The project is still very active. Just 5 hours before I wrote this article, the author merged a pull request.

PCB_Front
Overall Features of the Project:
-
Both hardware and software are open source, with abundant CPU resources for flexible secondary development;
-
Based on the STM32F4 microcontroller;
-
Features the DRV8302 MOSFET driver/buck converter/shunt amplifier;
-
Utilizes IRFS7530 MOEFET (other FETs are also applicable);
-
The integrated buck converter on the DRV8302 provides a
5V
,1A
power output for external circuits; -
Voltage: 8V to 60V;
-
Current: 240A peak current or approximately 50A continuous current, depending on the temperature and air circulation around the PCB;
-
Starting from firmware version
FW 2.3
, it has achieved automatic detection of all motor parameters for both sensor-based and sensorless FOC; -
Firmware based on ChibiOS/RT;
-
PCB dimensions: 40mm x 60mm;
-
Measures current and voltage for all phases;
-
Supports DC motors;
-
Supports both sensor-based and sensorless operation;
-
Offers a GUI with a wealth of configuration parameters;
-
Features adaptive PWM frequency for optimal ADC measurement;
-
Implements phase advance (or timing/field weakening) based on RPM;
-
Provides strong starting torque in sensorless mode (and of course in sensor-based mode as well);
-
Utilizes a soft back-off strategy when current limits are reached. If the current becomes too high, the motor will be fully shut down;
-
Implements a soft back-off strategy for RPM limits;
-
Enables perfect commutation even with rapid motor speed changes. This is because flux is integrated after zero crossing, rather than adding delays based on previous speeds;
-
Tracks commutation and direction when the motor is rotating while the controller is off. It also calculates the duty cycle required to achieve the same speed. This ensures a smooth start when the motor is already rotating.
Rich motor control interfaces: PPM signals (for RC servos), analog, UART, I2C, USB, or CAN bus;
-
Optional PPM signal output. For example, this is useful when controlling a remote-controlled car from a Raspberry Pi or Android device.
Adjustable protection:
-
Even when the motor speed changes rapidly, commutation can run perfectly. This is because flux is integrated after zero crossing, rather than adding delays based on previous speeds.
-
When the controller is off and the motor is rotating, it tracks commutation and direction. It also calculates the duty cycle required to achieve the same speed. This ensures a smooth start when the motor is already rotating.
VESC Firmware
Project link: https://github.com/vedderb/bldc
This is an open-source motor controller code for DC motors and DC brushless motor speed control. It supports square wave drive and FOC drive. Importantly, it supports sensorless FOC.

Firmware homepage
VESC Hardware
Project link: https://github.com/vedderb/bldc-hardware
This project is based on the STM32F4 chip. Below is the schematic diagram of a DC brushless motor controller. If interested, you can develop your own hardware based on this project.

Schematic diagram

PCB

3D rendering
Tool Software
Project link: https://github.com/vedderb/bldc-tool
This is a Qt-based GUI for DC motor controllers, used for configuring hardware parameters, controlling, and debugging the controller, as shown in the figure below:

Software
This is truly an amazing project. If you're interested in motor control, Enjoy!
For more details, visit: http://vedder.se/2015/01/vesc-open-source-esc/
2 Kommentare
TestUser
AAnngWkh vSuWJ XmI aONAQKo wML
John
dce kDMkHT VcrSkt IFHrF aQaK