SSC-32 Servo Updates Within A Frame?

I have what’s probably a dumb question, but what the hell, here goes:
I was talking (read: emailing) to Mike Jessat about the SSC-II, today, and he mentioned that it did not support true multitasking.
He said that the controller did not update it’s two servos within the same frame, which is why he was going to chose a different controller to use for his biped design.
Multiple frames would mean more time, which I cannot afford.
So, I ask:
Does the SSC-32 share this same problem, or does it update all 32 servos within the same frame?
::crosses fingers::

Nick I’ll hazard a guess here.

What this person might have been telling you is that the servos pulses don’t all start simultaneously. With 8 servos, the easiest way to write a controller is to pulse them out one at a time. This can work with 8 because if you add up the longest possible pulse widths for 8 servos, it’s still within your 20ms refresh frame. When you have more, they have to start overlapping because if the controller tries to send the pulses one at a time, it won’t get back around the the first one again within the 20ms.

I took a quick look at the SSC32 code and it seems that it sends the pulses in 4 waves (4 banks) starting each of the pulses in a single bank simultaneously.

All this probably doesn’t matter all that much to you though. The worst case scenario (not counting interrupts delaying the loop and hitting the “still time” clause in the code) is that you’d have updates that you’d expect to happen simultaneously instead happen ~15ms apart.

I doubt that it would make a whole lot of difference.

All that being said, I’ve argued the opposite recently in terms of capturing data from the servos Mike and Colin are working on, suggesting that the data captures should be synchronized. However, that’s only in relation to being able to effectively use the captured data. If you’re not capturing this data and only sending positions one way to the servos, I can’t imagine 15ms really making that much of a difference.

If you need 2 servos to receive their updates at preceisly the same time, put them in the same bank.

Thanks, Andy, you anticipated my unasked question with the “servo bank” tip.
:smiley: