Build a Smart Servo [step 0]: Basic Ideas

Basic idea

The basic idea is to build a smart servo like Dynamixel, which is expensive and has more features than regular RC servos of course.
First of all let’s compare the regular RC servos and smart servos like Dynamixel.

Serial bus control: All the servo can be chained together and only need two pins: TX and RX to control it, (SCL, SDA if using I2c)

Position feedback

Speed control

PID parameter setting

Torque sensing

Regular servo:

PWM position control, which means that you usually need N pins on your controller to control N servo motors without extra equipments (You can use multiplexer or something like an Adafruit 16-Channel 12-bit PWM/Servo Driver to control more servos with less pin)

Usually without torque sensing, position feedback, speed control, Daisy chain

‘Fake’ speed control and position feedback can be achieved by using special library on your Arduino (VarSpeedServo, or this), or by using a dedicated servo controller like Pololu Maestro or ssc32.

Conclusion: Although ‘fake’ speed control and position feedback can achieved some how using regular servos, they are not precise. And you cannot adjust the PID parameters or daisy chain the servo. On the other hand, Dynamixel servos are expensive: a 15kgcm torque servo costs $50, a 35kgcm torque servo costs $200. The goal here is to build a 35kgcm torque servo within $40.