Open Source RoboticsRobots, software & learning

VESC firmware

Software

Motor-controller firmware with board-specific DC, BLDC and field-oriented-control implementations. [1] [3]

Installation & first result →Official websiteGetting started

For
Robotics developers evaluating the selected source workflow [1] [3]
Source rights
Some licenses are unresolved. Review licenses
Unknowns
compute requirements not fully established. Review gaps

Source researched · Not tested by us
Sources checked · Research details

Licenses & related hardware
License
GPL-3.0-or-later · license not fully assessed for documentation · Details by part

Requirements · Research details and dates

On this page

Overview

VESC firmware supplies DC/BLDC and field-oriented motor-control implementations. This entry covers firmware source, not manufacturing designs or validated support for every board sold under the VESC name. The README's broad support statement is followed by a target list; select the actual hardware target and configuration rather than assuming universal compatibility. [1]

For the documented Linux/macOS build route, install git, wget and make; Linux additionally lists libgl-dev and libxcb-xinerama0. Windows instead uses Chocolatey with make and Git available on PATH. These are upstream host prerequisites, not a tested environment. [1]

The documented make route installs the ARM SDK with make arm_sdk_install, lists targets with make and builds one named target, such as make 100_250. That target is an example for the corresponding board, not a default suitable for arbitrary hardware. Review conf_general.h and the selected hardware definitions before upload. The separate Nix route requires enabled flakes, builds packaged firmware and explicitly does not support the make flash helpers. No toolchain or build was executed here. [1]

The inspected FOC implementation contains actual speed, position, current and release-mode methods. Its position-control comment requires encoder support; setting a target or changing internal state does not establish physical angle accuracy or a correctly calibrated motor. Match encoder configuration, current/voltage limits and motor identification to the exact controller. No complete control-path or protection audit is claimed. [3]

The README distinguishes SWD/ST-Link flashing, with a separate bootloader dependency, from uploading a built binary through VESC Tool. Those are different provisioning routes and require a matched board/firmware image. For USB uploads, the README says to keep power and USB connected and wait ten seconds after the completed upload before disconnecting. It says recovery from a bricked controller requires an SWD debugger. These are documented precautions, not recovery behavior reproduced here. This review did not flash a controller or validate update/recovery behavior. [1]

The README declares GPLv3 and the sampled firmware source grants version 3 or later. External dependencies and hardware designs retain separate terms. Begin with the target and configuration, inspect the selected implementation, then resolve bootloader/tooling and calibration before any powered work. No compile, firmware upload, motor identification, current measurement or performance test was performed. [1] [3]

Is this for you?

Known limitations
  • This entry covers firmware source, not an open manufacturing release for every VESC board.
  • Target-specific limits, encoder support and calibration must match the hardware; README broad support language is not universal compatibility.
  • No build, flash, motor calibration or powered performance test.

Editorial assessment of bounded source evidence; no runtime, fit, manufacturing or compatibility proof.

[1] [3] · Editorial assessment

What you need

Operating system
  • Ubuntu/Linux and macOS host build instructions
  • Windows host build instructions using Chocolatey and Git on PATH

Upstream source/declaration only; no installation, compilation, simulation or device test.

[1]

Languages / runtimes
  • C firmware

Upstream source/declaration only; no installation, compilation, simulation or device test.

[3]

Dependencies
  • Git, make, downloaded ARM SDK and exact supported VESC target
  • Separate compatible controller board, motor, power configuration and bootloader/tooling

[1] [3]

Installation & first result

Open the upstream getting-started guide [1] [3]

  • Inspect the pinned implementation and select the exact configuration described in the article.
  • Follow the chosen upstream environment/build route, resolving the listed dependencies before runtime or hardware integration.

Editorial assessment of bounded source evidence; no runtime, fit, manufacturing or compatibility proof.

[1] [3] · Editorial assessment

Installation

Install the documented host prerequisites, use make arm_sdk_install, then select the exact board target from make. The Nix alternative requires enabled flakes and does not support the make flash helpers. Bootloader/SWD and VESC Tool USB upload are separate provisioning routes.

Upstream source/declaration only; no installation, compilation, simulation or device test.

[1]

What we checked

Pinned source and selected artifact structure review only; no dependency installation, upstream build, native CAD/kernel/fit/strength validation, fabrication, wiring, calibration, simulation, powered operation or performance testing. Original archives stay private.

Not yet established

  • Requirements: host computer
  • Version-specific hardware compatibility (ecosystem tags alone do not establish it)

Updates

Upstream last updated
Not established
Latest release
Not established
Profile updated
Nov 1, 2026
Sources last checked
Nov 1, 2026
Next review
Dec 1, 2026
Reviewed revision
3e3792b

Source files and licenses

Distinct inspectable robotics software/data workflow with specific contribution and bounded next source-investigation step; not performance or physical-build certification.

LayerAvailability / license
softwareavailable · GPL-3.0-or-later
Selected project implementation; external dependencies, hardware, weights/data and asset rights remain separate. [3] [1]
documentationavailable · License not fully assessed
README setup text inspected; its softwareGPLv3 declaration does not independently settle a separate blanketdocumentation grant. [1] [1]

Outside the selected contribution; no separate released layer claimed.

References

Each source links to the exact revision we read. “Used for” shows where this page relies on it.

Correction guidance · Discussion is not enabled · Profile format 0.7.0-draft.5

Change history