There could actually be three different versions of a servo move command.
#0 D90 #1 D-90 - Move a servo an absolute number of degrees from center position. 0 degrees would be center (1500 mS).
#5 R30 #7 R-45 - Move relative to current position for those servos that support position feedback. Read the current servo position and move relative to that.
#2 P1400 #4 P1900 - Move to an absolute position just like is done with standard PWM based servos now. This works with Open Servos now too! You can control an Open Servo with standard PWM and read status info back from it using I2C.
We already know there is a direct mapping between the number of degrees a servo goes and the pulse sent to it to actually move it. 90 degrees is 1500 + 900 mS and -90 degrees is 1500 - 900 mS, or maybe I have that reversed. So, just multiply the degrees * 10 and add or subtract that to/from 1500 to get your pulse length to move the servo.
If you have a couple configuration bits stored for each servo that can be set by the user, it should not matter what position on the SSC-NG the servo is connected, and Open Servos servos just need a place to connect to the I2C bus if they are being completely controlled via I2C or status info is being read back via I2C. The Open Servo folks have had noise problems with the I2C bus and longer cable runs, so this would have to be addressed too. You could be looking at a whole lot of connectors if you want to fully implement three or more different types of servo control… You might be able to squeeze two sets of 32 connectors onto an SSC-NG if you leave off the user LEDs, switches, buzzer, etc, but leaving off the buzzer would not be good. Switches and LEDs can easily be added externally and connected to PWM servo/sensor headers.
You might just want to keep the SSC-NG to PWM based servo control, which the SSC-32 does very well. Provide a connection for I2C, both for servos as well as communication with the SSC-NG in place of standard serial commands if desired. You can still send standard PWM servo position commands and configuration info to an SSC-NG using I2C, but would not need to send as much data. It would not be difficult to implement the current SSC-32 command set as an I2C command set also, including configuration commands and such.
8-Dale