VESC integration with PPM


I am using a VESC and integrating with a LED dimmer remote control. The output of the LED controller is connected to the Servo (Pin of the PPM on VESC) . I have a small resistor connected to the output to load the controller. if there is no load the motor does not work. The trouble I am having is when i have connected and configured the tool to work with the remote, I am having an issue where the speed of the motor when set to a particular speed fluctuates a lot( for example: for one set speed, it varies from 9000-1000-erpm) this makes the ride really jerky. I tried to connect a load resistor to the output and a capacitor in parallel to smoothen out teh signal. but as soon as i connect the capacitor it stops the motor and there is no variation in the PPM section. Can someone please help Thanks in advance.


Here is the wiring diagram

for reference


Seems like you are confusing PPM with PWM. PPM is a specific time pulse train that is used to control servos. As PWM is a pulse width of any frequency with a varible duty cycle to get variable brightness. I think what you need is a servo tester. Search over at hobby king, i can’t post a link for some reason.

Hi BTC, thanks for the reply. I have tried using a potentiometer instead of the servo regulator ( HobbyKing™ Servo Tester) and connected that with the VESC ADC and tested that. It worked great. I was trying to use the remote and see if I could regulate the speed of the motor using it and ran into that issue.

If you have the VESC working with the potentiometer on the ADC you might be able to smooth out the duty cycle of a PWM signal. Without knowning the imput impedance of the input, the capacitor might just be charging up or discharing, 2 resistors are needed. I think it woud be good to put a scope on the input to see what is going on. Also the LED controller might be an open collector transistor output. That means it will be switching the current to ground. This is the way most of them work.

Hi BTC, that makes sense. I am new to VESC, can you please elaborate or refer me to post where i can find more detail on how to use ADC to feed that input to PWM signal and change the speed of the motor?

Thanks a ton for the info!

Here is some info on pwm to a “smooth” output

Something to consider is the outputs of the microcontroller switch both positive and negative. I’m thinking you will need a pullup resister. I can draw up something for you tomorrow.


Try this circuit, it assumes: That the LED controller switches at a 100hz or higher and its output is open collector.

the diagram is ganky, resistors are both 1k and the cap is 1uf

Sorry after looking this over again I was this was wrong:Output at full LED brightness setting will be ~0 and the off setting will be ~2.5 I hope the VESC can be set up for that voltage range

correction:Output at full LED brightness setting will be ~2.5 and the off setting will be ~5 I hope the VESC can be set up for that voltage range

good luck, you should post a picture of this LED lighting controller that you are trying to interface to VESC

1 Like

Thanks BTC. I will try that out and post the results. Here is an image of the LED controller.IMG_6857_1

Did I mention the output of the LED controller is the negative terminal, the positive terminal should be connected to the positive input internally. Get out your multimeter and measure the resistance between the 2 positive terminals it should be close to zero.

Yes i have been using the negative terminal as the output. The resistance between the 2 +ve terminals is 0.

The “PPM” on VESCs is actually PWM, it’s just mislabeled. It’s not PPM. The only thing that matters is the pulse length; position doesn’t affect the reading.

Sorry I have to ask, but what LED controller is it, and why do you want to use it to control the speed? Is it speed you want to control, or instead control current, like if a rider is on top?

I hate when “how do I do this” is answered with “why do you want to” and try to avoid that, but in this case I’m genuinely confused.

I am trying to use a remote to change the speed of the motor. I have tried the vesc wand but that would be very expensive for my application and seems to be an overkill. so i went with a LED dimmer remote control which will control the output voltage and I in turn can feed that into vesc.

Is a human going to be riding this motor, or will it be used for something else?

Yes, a human would be riding on the motor but at a very low speed.

Normally with a passenger, you don’t want to control “speed”, you want to control “current” or power like a car/motorcycle. Unless this was like a miniature locomotive or something…

Controlling the speed directly will make it extremely jerky and unpleasant.

Maybe that’s the problem instead?

I am trying use that to control speed on an exercise equipment. Do you suggest any other method of controlling the current instead on the vesc?

PPM is PWM, but it does have specific timing, this is what I know about PPM timing from the RC world, which has grown into multirotor aircraft now. As you said pulse width 1-2ms matters more now and the 20ms period isn’t as important. I’m not sure if VESC in PPM mode validates the signal by looking for the 20ms window


The PWM I’ve observed on these devices have variable periods.