It is unclear to me from the documentation for the Serial Servo Commands what the allowable range is for the “Set Speed” command. The “Set Target” command is described as taking 14 bits, and the “Set Acceleration” states clearly that “the acceleration limit is a value from 0 to 255”. But I don’t see any mention of the allowable range for “speed”.
What is the highest speed limit that I can set via the “Set Speed” serial command?
Technically, the maximum speed value accepted is 3968, but please note that the speed is in units of (0.25 μs)/(10 ms), so at some point, there will be a practical limit where your servo essentially behaves the same as if the speed limit was disabled (i.e. set to 0).
For example, the maximum value of 3968 corresponds to a speed of 99.2 μs/ms, which means if you send a Set Target command to adjust the target from, say, 1000 μs to 2000 μs, it will take around 10 ms to make that adjustment. With the default pulse rate of 50 Hz (once every 20ms), you won’t notice a difference compared to when the speed limiting is disabled.
Generally, if you are looking for a practical speed limit for your application, I recommend doing some empirical testing to find that value for your setup.
Thank you for this thorough reply. I understand that the maximum speed value is likely not a very useful quantity, but I’m providing a user interface to allow arbitrary (from my perspective) settings. It will be up to the user to know whether they’re using sensible values.