ServoMaster: Observations on Parallax Servo Controllers
There are two controllers: serial and USB. Like Pololu, Parallax USB controller is basically a Parallax serial with Serial/USB bridge on top of it. Unlike Pololu, Parallax USB uses a well supported FTDI FT232BM chip, well supported by Linux community.
Both of them share the same protocol, so the driver doesn't have to be changed.
|Individual Servo min/max preset|
|Hardware controlled constant velocity transition, per servo|
- Status feedback - this is the only controller that supports it (to the best of my knowledge);
- Moreover, real time status feedback for hardware supported transition - if you command the servo to start the transition, and then keep reading its position, the controller will report the real time position information back to you - this is really cool;
- Precise. The position unit is 2µs, which should be enough for most applications;
- Fast. The baud rate may go as high as 38.4K.
- Stackable. You can connect two controllers to control up to 32 servos.
You have to be careful with the baud rate - selection once the controller is configured to work at 38.4KBaud, there's no going back until after hardware reset. This may require jumping through extra hoops to ensure the mission-critical application is able to properly reinitialize the controller driver on a subsequent startup without someone actually pressing the reset button on the controller - that would be pretty inconvenient.
WarningCareful with your servos
Controller has a strong timing bias towards the high end. Timing range is 500μs to 2500μs, which makes the servos that I have (admittedly, there are no two identical ones) undershoot a good 30° turning clockwise, and overshoots turning counterclockwise.
One Parallax servo went growling at 1878μs, and Futabas I have have done the same at 2315μs, 2185μs, 2352μs, 2222μs, 2260μs, 2212μs, 2132μs, 2335μs, 1190μs, 2337μs (92.6%, 87.4%, 94.1%, 88.8%, 90.4%, 88.4%, 85.3%, 93.4%, 79.6%, 95.1%, respectively). None of the servos growled at the low end.
As expected, USB disconnect is not possible to handle gracefully. If the process is still holding the handle, the reconnected USB device allocates the next available serial port name. It is, I guess, possible to pig the port once in a short while and fail once the port is gone, but reliable reconnect in case when more than one USB to serial adapter is present is out of question - unless there's a way to lock a device to a port, which I a) doubt b) have to read up on.
More Good Things To Come
I thought that the Parallax driver was more or less finished, turns out, far from that. The current plan is to implement advanced controller features during next several days - keep watching the downloads area and the news channel.
To be continued
More to come after the device actually gets tested - which is, hopefully, pretty soon.