Skip to main content

Introduction

VESC firmware is an open source motor controller firmware developed by Benjamin Vedder. It runs on a wide range of STM32-based hardware targets and supports DC, BLDC, and FOC (Field-Oriented Control) motor control modes. The project lives at github.com/vedderb/bldc and is licensed under the GNU General Public License v3.0.

What VESC solves

Controlling brushless motors well requires precise, real-time current and position sensing, configurable protection limits, and a reliable communication layer. VESC firmware provides all of this in a single, auditable codebase:
  • Field-Oriented Control (FOC) — smooth, efficient torque control with sensor or sensorless operation
  • BLDC mode — traditional six-step commutation for simpler setups
  • DC motor support — for brush motor applications
  • CAN bus networking — chain multiple controllers together with a single CAN cable
  • Extensive protection — over-current, over-voltage, over-temperature, and configurable hardware limits
  • Custom UI support — embed QML interfaces directly into VESC Tool via conf_general.h
  • Open hardware abstraction — a clean hwconf/ layer makes porting to new boards straightforward

Who it is for

Hobbyists

Build electric skateboards, scooters, and DIY e-bikes. Dozens of off-the-shelf boards are supported out of the box.

Engineers

Integrate VESC firmware into robotics, industrial actuators, and custom hardware using the documented hardware abstraction layer.

EV builders

High-voltage targets such as the Trampa 100/500 and Ubox 126V handle serious electric vehicle drivetrains.

Project structure

The repository is organized as follows:
The firmware version is defined in conf_general.h:
Every hardware target provides a hw_<target>.h header and a hw_<target>.c source file. The build system discovers all targets automatically by scanning hwconf/ for hw_*.h files.

Where to go next

Quickstart

Clone the repo, install the ARM toolchain, build your first firmware image, and flash it to your controller.

Supported hardware

Browse the full list of supported boards grouped by manufacturer.

Motor control

Learn about FOC, BLDC, and DC control modes and how to tune them.

Communication

CAN bus, UART, USB, and the VESC serial protocol.
The VESC community is active on the VESC Project forums and on Discord. Both are good places to ask hardware-specific questions.