# VESC Firmware ## Docs - [ADC application](https://mintlify.wiki/vedderb/bldc/applications/adc.md): Use analog voltage inputs to control the motor with a physical throttle or brake lever. - [Custom application](https://mintlify.wiki/vedderb/bldc/applications/custom.md): Implement your own motor control logic directly in firmware using the custom application template. - [Nunchuk application](https://mintlify.wiki/vedderb/bldc/applications/nunchuk.md): Use a Wii Nunchuk controller over I2C to control the motor with the joystick and buttons. - [Applications overview](https://mintlify.wiki/vedderb/bldc/applications/overview.md): How VESC applications map input signals to motor control commands. - [PAS application](https://mintlify.wiki/vedderb/bldc/applications/pas.md): Configure pedal assist for e-bikes using a cadence or torque sensor. - [PPM application](https://mintlify.wiki/vedderb/bldc/applications/ppm.md): Configure the PPM application to read RC-receiver pulse-width signals and drive the motor. - [UART application](https://mintlify.wiki/vedderb/bldc/applications/uart.md): Control the VESC over serial UART using the VESC communication protocol. - [Build firmware](https://mintlify.wiki/vedderb/bldc/building/build-firmware.md): Compile VESC firmware for your target hardware board. - [Flashing](https://mintlify.wiki/vedderb/bldc/building/flashing.md): Upload compiled firmware to your VESC using a SWD debugger or VESC Tool over USB. - [IDE setup](https://mintlify.wiki/vedderb/bldc/building/ide-setup.md): Install Qt Creator and open the VESC firmware project for development. - [Prerequisites](https://mintlify.wiki/vedderb/bldc/building/prerequisites.md): Install the tools and dependencies required to build VESC firmware. - [CAN bus](https://mintlify.wiki/vedderb/bldc/communication/can-bus.md): CAN bus communication in VESC firmware, including frame format, command IDs, and motor control commands. - [UART protocol](https://mintlify.wiki/vedderb/bldc/communication/uart-protocol.md): VESC serial packet protocol over UART: frame structure, CRC, and COMM_PACKET_ID command reference for external microcontrollers. - [USB](https://mintlify.wiki/vedderb/bldc/communication/usb.md): USB CDC serial communication in VESC firmware and how VESC Tool connects over USB. - [Encoders overview](https://mintlify.wiki/vedderb/bldc/encoders/overview.md): How position sensors integrate with FOC motor control in VESC firmware. - [Supported encoders](https://mintlify.wiki/vedderb/bldc/encoders/supported-encoders.md): Reference for all encoder types supported by the VESC firmware, including interface details and diagnostic fields. - [BMS integration](https://mintlify.wiki/vedderb/bldc/hardware/bms.md): How VESC firmware integrates with a Battery Management System (BMS) over CAN bus, including data types, configuration, and current limiting. - [Custom hardware configuration](https://mintlify.wiki/vedderb/bldc/hardware/custom-hardware.md): How to create a custom hardware configuration file for a VESC-compatible board and register it with the build system. - [Hardware configuration overview](https://mintlify.wiki/vedderb/bldc/hardware/overview.md): How VESC firmware selects and loads hardware configuration files, and which boards are supported by manufacturer. - [IMU overview](https://mintlify.wiki/vedderb/bldc/imu/overview.md): Inertial measurement unit support in VESC firmware, including supported chips, AHRS filter options, and configuration parameters. - [Introduction](https://mintlify.wiki/vedderb/bldc/introduction.md): An open source DC/BLDC/FOC motor controller firmware for electric vehicles, robotics, and beyond. - [Examples](https://mintlify.wiki/vedderb/bldc/lispbm/examples.md): Practical LispBM script examples for motor control, sensor reading, CAN communication, and GPIO on VESC. - [LispBM scripting](https://mintlify.wiki/vedderb/bldc/lispbm/introduction.md): Run sandboxed Lisp programs directly on the VESC to implement custom motor control logic, automation, and more. - [Language reference](https://mintlify.wiki/vedderb/bldc/lispbm/language-reference.md): Core LispBM syntax, data types, control flow, and function definitions for VESC scripting. - [VESC extensions](https://mintlify.wiki/vedderb/bldc/lispbm/vesc-extensions.md): Complete reference for VESC-specific LispBM extensions: motor control, configuration, CAN bus, IMU, GPIO, and more. - [BLDC motor control](https://mintlify.wiki/vedderb/bldc/motor-control/bldc.md): PWM modes, commutation modes, sensorless parameters, and the mcpwm API for BLDC motor control in VESC firmware. - [Motor configuration reference](https://mintlify.wiki/vedderb/bldc/motor-control/configuration.md): Default values and descriptions for all motor configuration limits in VESC firmware — current, voltage, temperature, speed, and more. - [Field Oriented Control (FOC)](https://mintlify.wiki/vedderb/bldc/motor-control/foc.md): FOC sensor modes, HFI, observer types, field weakening, and key configuration parameters for VESC firmware. - [Motor control overview](https://mintlify.wiki/vedderb/bldc/motor-control/overview.md): Motor types, control modes, states, and the mc_interface API for VESC firmware. - [Quickstart](https://mintlify.wiki/vedderb/bldc/quickstart.md): Clone, build, and flash VESC firmware to your controller in a few steps. - [Changelog](https://mintlify.wiki/vedderb/bldc/reference/changelog.md): Release history for VESC firmware from version 6.02 through 7.00. - [Configuration parameters](https://mintlify.wiki/vedderb/bldc/reference/configuration-parameters.md): Reference for all key mc_configuration parameters with their default values from mcconf_default.h. - [Fault codes](https://mintlify.wiki/vedderb/bldc/reference/faults.md): Reference for all mc_fault_code values, what triggers each fault, and how to resolve them. - [Supported hardware](https://mintlify.wiki/vedderb/bldc/supported-hardware.md): All hardware targets supported by VESC firmware, grouped by manufacturer. ## OpenAPI Specs - [openapi](https://mintlify.wiki/vedderb/bldc/api-reference/openapi.json)