Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/vedderb/bldc/llms.txt

Use this file to discover all available pages before exploring further.

Quickstart

Build and flash your first VESC firmware in minutes.

Supported Hardware

See all supported VESC boards and hardware variants.

Motor Control

FOC, BLDC, and DC motor control modes explained.

LispBM Scripting

Write custom Lisp scripts that run directly on the VESC.

What is VESC Firmware?

VESC Firmware (vedderb/bldc) is the open source firmware powering the VESC motor controller family. Originally designed for electric skateboards, it now drives robots, e-bikes, electric vehicles, CNC systems, and countless other motor-driven applications. The firmware runs on STM32F4 microcontrollers and supports a wide range of motor types and control algorithms:
  • FOC (Field Oriented Control) — smooth, efficient sinusoidal control with sensorless, Hall sensor, and encoder feedback
  • BLDC — trapezoidal commutation for high-speed, lower-overhead control
  • DC motor — support for brushed DC motors

Key features

FOC Motor Control

Sensorless and sensored FOC with HFI startup assist, field weakening, and MTPA optimization.

CAN Bus Networking

Connect multiple VESC devices over CAN bus for coordinated multi-motor control.

LispBM Scripting

Run sandboxed Lisp programs on the VESC itself for custom control logic.

Multiple Encoders

ABI, AS504x, SinCos, BiSSC, PWM, MA782, and more encoder types supported.

IMU Support

Integrated IMU support for BMI160, ICM20948, LSM6DS3, and MPU9150.

Broad Hardware Support

Trampa, FlipSky, MakerX, Ubox, Luna, StormCore, and many more boards.

Input Applications

PPM, ADC, UART, Nunchuk, PAS, and custom application support.

USB & UART Comms

Full VESC protocol over USB and UART for integration with VESC Tool.

Open Source

GPLv3 licensed. Community-driven development with hundreds of contributors.

Getting started

1

Check your hardware

Identify your VESC board variant. Run make in the source directory to see all supported targets.
2

Install prerequisites

Install git, make, and optionally the ARM SDK by running make arm_sdk_install.
3

Build the firmware

Run make <target> — for example make 100_250 for the VESC 100/250.
4

Flash to your VESC

Upload via VESC Tool (USB) or flash directly using an SWD debugger with make <target>_flash.

Community