Configuring the VESC's ADC input for a thumb or trigger throttle

For a VESC controller to respond to a thumb throttle or trigger, you need to enable the ADC application, choose a control mode, and then teach the controller the voltage range provided by your throttle. When done correctly, this configuration provides precise and safe control; when done poorly, it can result in a machine that starts on its own or doesn't respond. Here's the procedure, with the exact names of the settings in VESC Tool.

The essentials

  • An analog throttle is connected to the ADC1 input, and an analog brake is connected to the ADC2 input.
  • In App Settings, under General, set APP to Use to ADC, and then configure the ADC page.
  • The calibration is performed with the motor turned off: set the Control Type to Off, read the voltages, apply them, and then select the correct mode.
  • `ADC1 Absolute Minimum Voltage` and `ADC1 Absolute Maximum Voltage` will stop the motor if a wire is cut or short-circuited: do not ignore these settings.
  • Safe Start prevents the motor from starting if the throttle is not at zero position at the beginning.

The wiring: three wires per control

A thumb throttle or Hall-effect trigger has three wires: power, ground, and a signal. The signal is a voltage that increases as it is pressed. On the communication connector of a VESC, you will find a low-voltage power supply, ground, and the ADC1 and ADC2 inputs; the exact labeling depends on the manufacturer of the board, and their documentation is the definitive source.

Before connecting, there's one thing to check: in the VESC Tool, ensure that the start and end voltage values do not exceed 3.3V, and the absolute threshold remains below 3.6V. This input operates at a low voltage. A Hall effect throttle powered by 5V may output a higher voltage. Use a multimeter to verify the output voltage of your throttle, and consult the controller's documentation to understand how the input is adapted or protected.

If you're looking for a trigger, our 370X trigger can be used as either an accelerator or an electric brake. It's designed as a plug-and-play solution for the SmartDisplay, and when used with a VESC, it connects and is calibrated like any other trigger, after verifying its pinout.

Enable the ADC application

The simplest method is to use the Setup Input assistant in VESC Tool, which guides you through the steps. Manually, this is done in the App Settings:

  1. **General:** Use the **APP** on the **ADC** (or **ADC and UART** if a Bluetooth module or display also uses the serial port).
  2. ADC, General tab: Set Control Type to Off for calibration.
  3. Write the application configuration to the controller.

Calibrate the voltages

The VESC Tool documentation describes this procedure, which should be followed exactly:

  1. With the Control Type set to Off, the motor cannot turn, no matter what you do.
  2. Enable real-time data transmission from the application in the toolbar: the "Mapping" tab displays the read voltage and the decoded value.
  3. Repeatedly depress the accelerator pedal from the resting position to the full throttle position: the VESC Tool will record the minimum and maximum values.
  4. Apply the result. The `ADC1 Start Voltage` and `ADC1 End Voltage` fields will be populated.
  5. Do the same for the brake on ADC2 (ADC2 Start Voltage, ADC2 End Voltage).
  6. Finally, select the correct Control Type and enter the configuration.

If the throttle provides a voltage that decreases when you press it, check the Invert ADC1 Voltage box instead of reversing the wires. The same applies to the brake, using the Invert ADC2 Voltage option.

Safety settings

  • ADC1 Absolute Minimum Voltage and ADC1 Absolute Maximum Voltage: Outside of this range, the reading is considered invalid, and the motor is stopped. A cut or short-circuited signal wire connected to the power supply will fall outside the normal range. When properly configured just below the idle point and just above the full throttle point, these thresholds will cause a throttle failure to result in a shutdown, rather than full acceleration.
  • Safe Start: With Regular, the motor can only start if the throttle has remained at zero for a sufficient amount of time after power-on, after a configuration write, and after a fault. No Fault allows restarting as soon as a fault is cleared. Disabled disables the protection: avoid using this setting on a vehicle.
  • Input Deadband: A small dead zone around the neutral position, so that a throttle that doesn't return perfectly to zero doesn't cause the machine to move forward.
  • Use Filter : A filter that eliminates electrical noise, at the cost of a slight delay.

Choose the Control Type

The list is extensive; on scooters, three modes are most commonly found:

Control Type:BehaviorTypical usage
CurrentThrottle only, current (torque) controlNo adjustable electric brake
Current No Reverse Brake ADC2Throttle connected to ADC1, electric brake connected to ADC2, no reverse gearThe classic setup: throttle and brake levers
Current No Reverse Brake CenterA single, central control: pushing it accelerates, pulling it brakesSingle spring-centered control

The current modes are those recommended for a vehicle: the trigger controls a force, which is intuitive. Duty Cycle and PID Speed modes also exist; they are explained in our guide on VESC control modes. With a brake on ADC2, the Brake Priority option (available in the button input field in recent versions) completely cuts off acceleration as soon as the brake is engaged; without it, the two commands are added together.

The feeling: inclines and curves

Once the control is reliable, we adjust the feel: Positive Ramping Time and Negative Ramping Time smooth out the acceleration and deceleration, and Throttle Expo makes the throttle more responsive at the beginning of its travel. All of this is detailed in our throttle and brake adjustment guide.

Workshop tip

Always perform the initial test with the scooter raised, your hand on the kill switch, and test for malfunctions: disconnect the throttle signal wire while the wheel is rotating slowly. The motor should stop. If it accelerates, your absolute limits are incorrectly configured. If the throttle stops responding altogether, our guide Troubleshooting a Non-Responsive Throttle can help you identify the cause, and our workshop can repair the wiring (https://rage-mechanics.com/en/our-products/1529-labor-30-minutes.html).

Frequently Asked Questions

The motor isn't turning, even though the throttle voltage is changing. Why is this happening?

Please ensure that the "Control Type" is not set to "Off," that the application settings have been saved correctly, and that "Safe Start" is not being triggered because the throttle was not at zero when the system was powered on.

My throttle is producing a voltage that decreases when I press it; is this a serious issue?

No. Check the "Invert ADC1 Voltage" box and recalibrate. Do not cross the wires to compensate.

Should the ADC (Analog-to-Digital Converter) be configured on both controllers of a dual-motor system?

No. The throttle is connected to the main controller, with Multiple VESCs Over CAN enabled: it transmits the command to the other controller via the CAN bus.

Can a simple on/off brake contact be used?

The ADC2 input expects a variable voltage to control the braking. An on/off contact does not allow for graduated braking; some setups use it as a kill switch, with the "Kill Switch Mode" setting on the "App Settings" -> "General" page.

The machine is moving forward on its own when idling; what should I do?

In the "Mapping" tab, adjust the "Idle Voltage" setting. Slightly increase the "ADC1 Start Voltage" or "Input Deadband," and then verify that the throttle returns fully to its resting position.