by JonHylands » Wed May 09, 2007 11:16 am
by JonHylands
Wed May 09, 2007 11:16 am
Actually, I was just playing with this concept last night. Here's how it breaks down:
The default servo response lag is 250, which corresponds to half a millisecond. For high speed, that's way too slow. I reset mine to 5, which corresponds to 10 us. (Parameter 5, Return Delay Time)
I can reliably do READ_COMMAND in one ms, which, for 18 servos, turns into 55 Hz if that was all you were doing. I'm running more like 25 devices, so my limit is 40 Hz. I plan to run at 33Hz for now, so I'm happy with that. If you're coding in C, and can approach the limit of the bus, you could do 100 Hz. Its not clear that you can get anywhere near that limit, however.
We're going to look at running 100 Hz later this summer, and it will involve adding more USB chips and splitting the bus.
To speed things up, make sure you're using SYNC_WRITE, which is enormously faster than WRITE_COMMAND.
- Jon
Actually, I was just playing with this concept last night. Here's how it breaks down:
The default servo response lag is 250, which corresponds to half a millisecond. For high speed, that's way too slow. I reset mine to 5, which corresponds to 10 us. (Parameter 5, Return Delay Time)
I can reliably do READ_COMMAND in one ms, which, for 18 servos, turns into 55 Hz if that was all you were doing. I'm running more like 25 devices, so my limit is 40 Hz. I plan to run at 33Hz for now, so I'm happy with that. If you're coding in C, and can approach the limit of the bus, you could do 100 Hz. Its not clear that you can get anywhere near that limit, however.
We're going to look at running 100 Hz later this summer, and it will involve adding more USB chips and splitting the bus.
To speed things up, make sure you're using SYNC_WRITE, which is enormously faster than WRITE_COMMAND.
- Jon