I have many years experience in all sorts of electronics but just now am interested in controlling servos. Seems there are analog, which I understand (repeating 50 hz pulse with width from 1 ms or so to 2.5 ms moves the servo arm from 0 to 180).
Then I stumbled across the concept of digital servos, which makes far more sense in a digital world and allows for far more features of motion control (movement rate, continuous rotation, feedback from the device, etc.)
I have done a fair search but don't really see a consensus on a protocol for digital servo control. I2C would be nice, for example. I see that there is an "openservo" organization for "digital-izing" an analog servo, but it seems you still have a native analog servo with its inherent limitations (could be wrong here . . . I didn't really spend tons of time on the web site).
I did come across some references to the Controller Area Network, but nothing so specific to say that there is a standard protocol.
I even came across these parts, which might make a good starting point for a digital servo
but can't even find specifics on how to talk to this servo.
Questions . . .
Is there a common electrical +/- software protocol for 'digital servos'?
Can you recommend a general purpose metal gear, high torque servo that has a well known electrical (serial, I2C, CAN, etc) plus known commands with documentation?
By the way, let me be clear that I'm not talking about sending a digital signal by some means to a shield or interface board that then sends the analog pulse width control to the analog servo. There are several videos and blogs that are calling this a digital servo. I'm looking for a servo that can go on directly on a digital bus with other servos on the same bus, for example.
In my experience, digital servos just update to the inner motor faster and are extremely accurate. They make allot more heat and are alot more expensive. these have been running my robotic arm:here
The one problem is that for some reason they have erratic movement some times.
Thanks, regor2 and zoomkat. I'm sort of coming to the conclusion that there is just no standard or at least I cannot find any product with good documentation of such. Even on the links for both Dynamixel and the Hitec web sites don't have any info on electrical or communication specs for any of their digital parts, either in the FAQ or the specific product specs. I imagine the folks that use these are not exploring novel uses for them but just plugging them into the company's controller. Perhaps they want to keep the protocol secret . I may just start with analog ones for now or pseudo digital like openservo.
My understanding is that both digital and analogue servos are controlled with the same pulse-width signal and they just have different internal electronics.
Maybe so. I'm not much of a servo expert. Just getting into them. Would not, however, seem to be a logical way to build a servo in the digital world. Maybe I can get hold of someone at Hitec on Monday and I'll let you know what they have to say. Thanks. Also I'll read a bit on openservo.
I just spoke with Mike at Hitech tech support for their servos. Their use of the term digital servo is somewhat of a misnomer. They do not offer any servos that are controlled with a digital communication protocol but they offer servos with some digital stuff in them. Their 'digital' servos take the standard analog pulse, that is sent at 50hz and then store it digitally then send it internally to the motor at 300hz. So basically, it is like an internal refresh of the analog signal at 6x the standard rate. I'm not sure what this accomplishes, but perhaps it allows quicker movement to the endpoint. It certainly does not allow higher temporal resolution of movement instructions since it goes by standard RC analog servo protocol. Or at least that is my understanding after our conversation.
He mentioned that he thinks Futaba has a line of digitally controlled servos.
Yes, that's what I'm referring to. The Dynamixel uses a digital control protocol with addressable servos through either TTL or RS485. This page shows the control registers.
There are a few videos on Youtube of the supermodified servo; with the magnetic encoder chip in the servo it has some pretty amazing accuracy. It's too bad nobody is manufacturing it.
Thanks. That is some great information. That link documents the S-bus servos reverse engineered to work with Arduino. Once again, some very expensive servos - 10-20x analog price.
Hi, you can also check at http://www.01mechatronics.com/support/downloads to check supermodified's dlls, protocol they have implemented and their datasheet. I show that this controller is back on the grid! Also if I understood well their so-called MCU is a mini arduino (based on ATMEGA 328p with a 20MHz crystal). How they managed to fit all in so small form I wonder.