A VESC application is the firmware layer that receives input signals — from an RC receiver, an analog throttle, a serial controller, or a sensor — and translates them into motor control commands. Only one application runs at a time. You select which one to activate in VESC Tool under App Settings → General → App to use.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.
Available application types
Theapp_use enum in datatypes.h defines every application the firmware recognises:
| Value | Description |
|---|---|
APP_NONE | No application. Motor sits idle. |
APP_PPM | RC-style pulse-width signal (servo/RC receiver). |
APP_ADC | Analog voltage throttle or brake. |
APP_UART | External controller over serial UART. |
APP_PPM_UART | PPM input with UART active simultaneously. |
APP_ADC_UART | ADC input with UART active simultaneously. |
APP_NUNCHUK | Wii Nunchuk over I2C. |
APP_NRF | Nordic nRF wireless receiver. |
APP_CUSTOM | User-defined custom application. |
APP_PAS | Pedal Assist System for e-bikes. |
APP_ADC_PAS | ADC throttle combined with PAS sensor. |
The firmware default is
APP_UART so the UART port remains available for firmware updates. Change this after your hardware is configured.Selecting an application in VESC Tool
Open App Settings
Connect to your VESC in VESC Tool, then navigate to App Settings in the left sidebar.
Choose the application
Under the General tab, find the App to use dropdown and select the application that matches your input hardware.
Configure app-specific parameters
Each application has its own configuration tab (PPM, ADC, UART, Nunchuk, PAS). Fill in the values for your hardware.
Application pages
PPM
RC receiver pulse-width input for ESC-style throttle control.
ADC
Analog voltage throttle and brake via the ADC inputs.
UART
Serial communication with external controllers using the VESC protocol.
Nunchuk
Wii Nunchuk joystick and button control over I2C.
PAS
Pedal assist for e-bikes based on cadence or torque sensing.
Custom
Write your own application logic directly in firmware C code.
Runtime API
Applications are managed throughapp.h. The key functions are:
app_disable_output suppresses motor output for the specified number of milliseconds without stopping the application thread — useful during fault recovery or startup sequencing.