VESC - Controller configuration

This process isn't very hard but it can look a bit daunting at first. Our step by step guide will help you understand each part.

We will cover a one-VESC setup only here. On a dual VESC setup, you'll have to do the same process on both VESC but one will be master, and the other will be slave.



On the dash screen, click on the Input Setup Wizard.



Click Next. If the program asks you if you want to load the default configuration, click "Yes" if you've never configured your VESC.



Choose the proper configuration for your board. Here, we're choosing a single VESC setup. Click Next.



Most controllers are PPM controllers. The others choices are pretty specific so if you're not sure, choose PPM. Click Next.



Now, the interesting part. For this screen, you want to make sure your controller is turned on and connected to its receiver.

That screen allows you to set 3 important values: the pulselength start, center and end. Those 3 values defines the maximum brake input, maximum acceleration input and the neutral position.

The input deadband allows you to set a range where the VESC won't do anything unless the value goes over it. The default is 15%. This makes sure your board won't accelerate by itself or break when the controller position is in neutral. I have set mine to 2% because my controller already has a deadband, and this parameter ads up 15% to it. The result was that I could move my controller trigger up and down quite a lot before anything happened.

The bottom part of the window contains 3 elements: the first row is the min, max and center pulselength detected by the VESC Tool, then the current signal as seen by the VESC tool and finally, the signal seen and interpreted by the VESC itself.

Your job here is to set the values so that the VESC knows where is the braking position at its maximum on your controller, the acceleration position at its maximum and the neutral position. This is necessary because each controller is a bit different and values are never quite the same.

You can set those values automatically or manually.

1. Automatically

In the bottom part of the window, click the Refresh button (just below the Apply button).

Move your controller to its top braking position, then to its top accelerating position.

Click Apply.

Make some tests: put your controller to maximum braking and maximum acceleration and make sure the VESC always apply 100% braking or acceleration (use the "From VESC" gauge).

Once you're done, click Next.

2. Manually

Let's set the neutral position. Look at the "VESC Tool" gauge, the value is changing a lot but the value should stay close to a certain range. Pick a number enter it in the pulselength center field. Check the "From VESC" gauge to be sure that the percentage is as close to 0% as possible.

Mine was changing between 1,4890 and 1,4940. I chose 1,4910 ms.

Now put your controller in its maximum braking position. You should see something like this :



The goal is to make the VESC apply 100% power on the braking when your controller is in its maximum braking position.

As the value is always changing a bit, you have to make sure 100% stays at 100%. To do that, enter a pulselength start a tiny bit above the real start value.

My real start value is around 1,0990ms but changing. I've set the pulselength start to 1,1030ms. So when my controller is at maximum braking, even if the value changes, the VESC will always apply 100%.

Now put your controller in its maximum acceleration position. You should see something like this :

As before, the end value will change a lot. We need to make sure the VESC will always apply 100%. To do that, you have to set the end value a tiny bit lower than the real value.

My real end value is 1,9560ms, I set the pulselength end to 1,4910ms. That way, the VESC always apply 100% acceleration when my controller is at full acceleration position.

Once you're done, click Next.


Those are some options for your controller. I recommend the control type to be Current No Reverse With Brake. That's the most common type used by esk8ers. It allows you to accelerate and brake.

The other values should be correct, the VESC Tool applies good values by default.

Click Write Configuration To Vesc when you're done. Click Next.


Voilà ! Your controller configuration is done. Wasn't that hard, was it ?