How does a servo work (PWM or PPM)?

Mem and I may have to agree to disagree on the PPM vs PWM debate. I'm pretty sure the PPM references he supplies are talking about the radio side of things, which is not quite the same as the servo side.
I see the servo signal and "duty cycle modulation" as two different sub-cases of PWM, with PPM definitely involving a fixed-width pulse.

  1. A DC motor
  2. Some gears
  3. A potmeter
  4. A motor controler (also reffered to as a speed controller?)

The motor controller receives a signal (in our case from the Arduino) which tells the servo to move to a specific position. It then reads the current position from the potmeter and determines how much and in which direction the DC motor should be moved and sends an appropiate signal to the DC motor.

That sounds pretty close to me. A "speed controller" in the usual sense is a different beast. While some servos may vary the speed of the motor based on the amount of "error" from the desired position, most just generate a (nearly digital) "direction" signal (sign bit of the error, sort of.) that makes the power transistors in the H bridge have an easier job. (hmm. The newer "digital" servos may do a better job here, perhaps even generating PWM to the motor terminals to vary speed. But using transistors in linear analog mode to control motor speed is HARD.)

There was an old linear IC that used to be used in the guts of many servos, and the datasheet had a really good explanation of how the error signal was generated and used to control a motor. But I don't remember the part number, can't find it even in my historical databooks, and web searches are hopeless polluted by explanations of how to generate/use the PWM/PPM signal we've been talking about.