SSC NG (NextGen)

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

I request a nice sneak peek of the new SSC-32NG Prototype Board.

Jim, remove he 5.0 megapixle camera off the try pod and mount a 10 megapixle camera!

:wink:

Hi Mike,

I’d like to suggest a “HALT immediately” command for the SSC32. This command would stop all servos where they are (could be a group or single servo as well).

The user could then query to find out where the servos are.

If a user’s sensor detects a contact with an object. they’d be able to immediately stop the move of a leg or arm joint.

Alan KM6VV

The new M168 firmware has a STOP command that stops an individual servo in place, e.g. “STOP 0” will stop servo 0. I was not able to extend this to “all servos in a group move” because the SSC-32 doesn’t keep track of which servos are moving as part of which group move. There wasn’t enough RAM to track this.

The hexapod sequencer and the general purpose sequencer both have commands to halt a sequence in place.

That’ll do it!

Alan KM6VV