Asked — Edited

Ez B Control Of Pwm Motors

I have a box of VEX motors, both 2-wire dc motors and 3-wire PWM motors, which contain an internal motor controller. When I connect a 3-wire PWM motor to EZ B and try to control with PWM, nothing happens. Yet, when I connect it to a servo slider, I can control it. I am sourcing power from an external source, rather than from the EZ B port. Any thoughts?

Thanks again,



Upgrade to ARC Pro

Join the ARC Pro community and gain access to a wealth of resources and support, ensuring your robot's success.


The 3-wire VEX motors are continuous rotation servos, not motors.


Perfect, there you go:)

So use the modified servo controls. Documentation prevails:D


Hello & thanks again,

I believe that the VEX "servo' contains: a conventional dc motor, a gear box, a controller, which converts pulse width to drive levels and an H-bridge. The older ones do not contain any feedback mechanisms such as a potentiometer or opticcal shaft encoder. I believe that their transfer function is as follows:

1.5 mS PW = stopped 1.5 mS to 2 mS is increasing forward power 1.5 mS to 1 mS is increasing reverse power

I also thought that conventional servos had the following transfer function:

1.5 mS PW = 90 degrees 1.5 mS to 2 mS is increasing towards 180 degrees 1.5 mS to 1 mS is increasing towards 0 degrees.

DC motors, which are controlled by varying duty cycle, on the other hand simply use an integrator as the controller, which in turn drives the H bridge.

So, I am still a bit puzzled by my results. I guess that its time to connect up the oscilloscope. I should have done that in the first place. We're having fun and both the kids and I are learning.

Thanks again,



Hi DJ,

I really appreciate your patience in dealing with the slow student in the class. I think that I am getting tripped up in the terminology. Here is my current understanding.

The PWM port on EZ B ramps the duty cycle from 0% to 100%. So, devices such as LED's and conventional dc motors, which are controlled via average power input will respond as expected. For example a 50% duty will integrate up to .5 Vmax and .25 Pmax.

"Servos" on the other hand respond to pulse width. There controller operates on a discontinuous function. There is a dead band at 1.5 mS. Pulse widths above 1.5 mS will ramp forward in position or rotational speed. Pulse widths below 1.5 mS will ramp backwards in either position or rotational speed.

Given these definitions, unlike the VEX definitions, my 3-wire VEX devices need to be treated as "servos". I should also be able to low-pass filter the EZ B PWM output and drive my 2-wire VEX devices. The good news to glean from all of this is that we have switched over from VEX to EZ-Robot.

Thanks again & great videos,

Brian & Team


I like your explanation better than mine. You're hired!