motors with accurate position and speed control

dear forum,

after doing my first steps with arduino and dc motors - thanks to daniels help - i noticed that its quite difficult to position a dc motor accurately.

what i’d need for my project is a motor which can turn in both directions continuously with varying speeds and accurate control over the positioning (like turn 3 degrees forward within 1 second, then 20 deg back in 3 seconds, another 190 deg forward in 20 sec etc) - does such a thing even exist? i was talking to a friend who borrowed me a modded hitec hs-300 servo motor, and while it delivers continuous rotation and accurate enough positioning, the speed control is quite limited. are there motors which do that type of thing?

best regards,


what you are describing is almost exactly an RC servo motor. Without being modified for continuous rotation, they do almost exactly what you describe. Try that. The $20 RC servos should be accurate to about 10 degrees.

If you want more accuracy, you have a couple of choices. For a lot more money ($40-100), you can move up to a stepper motor.
But if you want true accuracy, you’ll have to go with something that has some kind of feedback system (usually an encoder) that feeds back what the servo or stepper is doing to the Arduino. The cheap RC systems have this built in, but their plastic construction makes them less than optimal in terms of accuracy.


a modded hitec hs-300 servo motor, and while it delivers continuous rotation and accurate enough positioning, the speed control is quite limited.


Sadly i dont have any more suggestions than Daniel - a stepper or a rotary encoder seem to be your best bets.

Perhaps you can tell us a little more about the application, and we could suggest a better system (for eg. putting a rotary encoder on the object the motor is turning instead of on the motor driveshaft)

Also, could you please give me some more information as to how the servo was hacked…the more detailed the better!


thanks for your replies,

it might sound a bit weird, but i want to modify a turntable with the motor i’m looking for. i want it to either continuously rotate smoothly in both directions in a wide range of speeds (like from 1rpm to 44rpm) or move back and forth in smaller distances at varying speeds (a bit like scratching), where both things are controlable from a timeline code / interface i’m currently coding.

i’m not really sure what type of modification my friend did to the hs-300, so i cant give you any more details. but it would be no problem to get a new hs-300 or similar if you have specific hints how i should modifiy it to suit my needs…

i’ve been to an rc-car shop today, and they told me about the motors they use to drive rc-car wheels. they look interesting, since they seem to provide smooth, controlable motion in both directions with quick turnaround speeds. really interesting, but also really expensive…

thanks again,

You will need a really nice servo for that-- something with good torque, capable of good speed and acceleration , and a precise encoder with a very good motor driver…

Something like this.

The video is of a similar project called “DJ I Robot” by Chris Csikszentmihályi and his research group, aka the MIT Media Lab’s Computing Culture group. Check out the pictures, and the videos of it in action, as his group has done essentially the same thing. There’s another video of it posted on the YouTubeCorporation site, and there is also a link below to the artist’s site.

They use a custom-designed PID (proportional-integral-derivative) motor controller. This is sort of the rolls royce of motor controller designs and performance, especially considering who has designed it.

They have photos, block diagrams, etc online at this address. Considering the design costs, time and complexity, you might be better off financially to modify a commercially available unit. There must be something around that already does this. Failing that, just plop down a stack of cash (500 each?) for some nice commercially designed and matched motors/drivers/encoders. Then you only task is writing some code to link the drivers to your software. Contrary to popular belief, good motor driver design is really complex, especially in a case like this… which makes 500 for something that works perfectly kind of a bargain.

really impressive stuff!

luckily i never intended to imitate a real dj booth. just a device thats able to playback records in an unusual way. the sounds i can get from it are more important then the imitation of a normal record spinning, beat matching and crowd pleasing dj - which is easier and more fun for me to do manually =) we are working on a turntable improv set for 4 1210-mk2 and one or two modified tts. which leaves plenty of room for non rocket science approaches like mine =)

so, i think i will try a servo mod like this one here: Variable Speed Control Modification to the Futaba S3003 RC Servo and see where it leads me.

if you have any recommendations for other types of servos and drivers, i’d be really glad (i think the guys at the rc shop want to rip me off =)

this is another great mod instruction for the same futaba s3003 servo for pwm speed control in both directions: Servo modification for PWM control

some notes on the s3003 servo modification i linked in a previous post (Variable Speed Control Modification to the Futaba S3003 RC Servo):

the tutorial is a little out of date because futaba changed the circuit board a bit. most importantly they changed the big 0.47uF capacitor to a SMD type cap (a black IC with the letters “CS”), but its possible to remove it with a bit of patience. another minor change is that they removed the two screws that go through the top case and into the drive motor. you can just carefully pull the circuit board out of the case. after applying the modifications the motor offers decent control over the rotation speed in both directions. they are available in most RC hobby stores for about 10-12 euros.

i also found a servo that offers continuous rotation and speed control built in, the HiTEC HSR-1422CR (~? 16). unfortunately they are not as broadly available like the s3003, so i couldn’t try this one.