ESC is the abbreviation of Electric Speed Controller, that is, electronic speed controller, or ESC for short. The author is Benjamin Vedder, so it is called VESC. You may have heard of it, which is Benjamin ESC. This project is mainly divided into several parts, VESC firmware, bill of materials, VESC hardware, and VESC tool software. It is a very complete software and hardware project, and the supporting software is also excellent. Overall characteristics of the project: -Hardware and software are open source, CPU resources are sufficient, and secondary development is very flexible; -Based on STM32F4 microcontroller; -DRV8302 MOSFET driver/buck converter/shunt amplifier; -IRFS7530 MOEFET (other FETs are also applicable ); -The integrated voltage regulator on DRV8302 provides a 5V 1A power output for external circuits. - Voltage: 8V ~ 60V; - Current: 240A peak current or about 50A continuously, depending on the temperature and air circulation around the PCB; - From firmware FW 2.3 onwards, automatic detection of all motor parameters is implemented with and without sensors Sensor FOC; - ChibiOS/RT based firmware; - PCB size: 40mm x 60mm; - Current and voltage measurement for all phases; - Support for DC motors; - Support for sensor or sensorless; - GUI with extensive configuration parameters - Auto Adapting the PWM frequency to get the best possible ADC measurements; - RPM based phase advance (or timing/field weakening); - Good cranking torque in sensorless mode (obviously also in sensored mode); - Duty cycle control, speed control or current control. -Rich motor control interfaces: PPM signal (RC servo), analog, UART, I2C, USB or CAN bus; -Optional PPM signal output. For example, useful when controlling a remote control car from a Raspberry Pi or Android device. - Adjustable Protection - When current limit is reached, a soft backoff strategy is used while the motor continues to run. If the current gets too high, the motor will shut down completely; - The RPM limit also has a soft backoff strategy; - The commutation works perfectly even if the motor speed changes quickly. This is because the magnetic flux is integrated after the zero crossing, rather than adding a delay based on the previous velocity. - Commutation and direction are tracked when the motor rotates when the controller is off. The duty cycle to obtain the same speed was also calculated. This is to get a smooth start when the motor is already spinning.