Question re: SSC32 requirements for GP Sequencer

Like cpfogarty, I started my interest in robotics through Halloween and animatronics. I ran a large local Haunted House for years, with live actors and some low tech animation. I had started to design a Christmas walk-through attraction using puppets and prop animation, but then decided animatronics would be great!

Then, I found LynxMotion. After reading the forums for a while now (and chirping in, now and then), I would like to run my plans by the group.

Assume I have my base, with servos, SES, power (VS and VL separate :smiley: ), etc… I plan on running animatronic Penguins tethered to PC(s) with a control program written in Python, Perl, Java, whatever. I will get an SSC32, necessary cables the Sequencer software and LynxTerm. I will download and install the GP Firmware on the SSC32.

My first question: Is there a general purpose EEPROM already on the SSC32 or is that another requirement?
Second question: Is my understanding correct that I can play two sequences at once, given that there is no conflict with the servos in use between each sequence? Are there any other restrictions on which servos can be used between two sequences or within one sequence? (*OK, that is a double question :wink: *)

One comment… Is it possible or desirable to be able to include sequences within sequences? For example, I have one sequence for the penguin to flap its flippers, and a second sequence to wiggle left and right. A third sequence will sing and look left and right. Then, define a sequence that references these sequences (like function calls) to make the penguin sing and dance… (*OK, that is another question disguised as a comment :laughing: *)

This forum is great and I have already learned quite a bit about my new hobby…

  • dj

The SSC-32 does not come with the chip. You will need to buy this separately.

The GP manual says a Microchip 24LC256-I/P which has 32768 bytes of storage was used for testing. So I would go with that chip. You can find these at Digi-Key or Jameco.com.

As controlling the characters at the same time, if the total number of servos is within 32, you can develop moves to run all 32 servos at the same time. Basically the group of bots would be treated as one. I don’t know how to separate the moves to have different delays though.

What! :open_mouth: The SSC-32 includes the EEProm. Has since V2 was released. Same low price…

@djsfantasi

You are correct in you can’t have the same servos used in the two players. As far as the SSC-32 is concerned there is no built in way to have a sequence call other sequences.

Well heck… I thought it was an option item. Sorry for the error. As for the sequences, you can have several sequences in a project file each sequence has its own set of steps and they can be called on from within a program however each sequence needs to complete before a new one can be sent. My biped had 10 sequences each with 4 to 8 steps in each sequence. When I want it to walk, I call the Walk sequence which can move any number of servos, when I want it to bend over and pick up an object, another set of servos are moved with a number of steps. You will need to control your props as a single unit and assign the steps to move the servos like stop animation so it looks like each prop is moving separately.

We actually just updated the SSC-32 product image to include the chip, but it’s been included since V2. :smiley: Sorry for the confusion.

You can create a longer sequence that includes the movements and just reference those to the player when starting. For example, my bot falls over, I want to have it get up, but first I want all the servos returned to their home positions first. Instead of re-creating a separate home sequence, I just reference the relevant steps from my get-up sequence. Hope that makes sense. I do this with the Visual Sequencer but it should work with the GP player as well.

Thanks all for your responses. I think my confusion may have stemmed from earlier posts before the EEPROM was included.

Manny - I am not clear by what you mean by “reference the relevant steps”. Can you just execute a specific range of steps within a sequence, do you read and the execute specific steps from a sequence, do you manually code and use the same step parameters elsewhere in your program or is there another method?

  • dj

My mistake! I thought there might be a way to play just a certain range of steps in a sequence, but it appears you can only specify a start postition, not the ending postition as well. I wonder if there might be an undocumented command to do this?

from: lynxmotion.com/images/html/build137.htm

[code]Start a player

The following command starts a player playing a specified sequence, with several parameters.

(The notation indicates a number that is one of the parameters to the command. The notation “[xxx]” indicates an optional part of the command.)

PL

SQ [SM ] [IX ] [PA ] [ONCE]

* PL <p> Specifies player p, either 0 or 1
* SQ <s> Specifies sequence number s, from 0 to 127
* SM <m> Specifies speed multiplier m, from -200 to 200
* IX <i> Specifies starting index i (a.k.a. step number), from 0 to 255
* PA <a> Specifies pause between steps, a, in milliseconds from 0 to 65535
* ONCE Specifies that the sequence is played only one time

The SM value is a percentage of the speed based on the move times in the programmed sequence. The larger the number the faster the sequence plays, up to 2 times the speed of the programmed sequence (for a speed multiplier of 200%). If the SM value is negative, the sequence is played in reverse. The SM value does NOT affect the maximum speeds for the servos. If SM is not specified, it defaults to 100%.

The IX value specifies which step should be first when the sequence is started. The player will attempt to move the servos gradually to the starting position. If IX is not specified, it defaults to 0.

The PA value specifies the length of a pause that is inserted between steps in the sequence. The value is in milliseconds. If PA is not specified, it defaults to 0.

The ONCE option specifies that the sequence is played only one time, and then the player stops. The servos will start and end at the position specified by the IX parameter (or 0 if IX is not specified). If ONCE is not specified, the sequence will repeat continuously until the player is stopped by a user command.[/code]

I don’t think you can stop a sequence once started. The SSC-has to finish the command sent. The closest thing would be to create several sequences with only one or two steps that could be called but this can get complicated. Its best to develop complete sequences and call them as needed.

The section in the manual following Start a player is labeled…

Stop a player

The following command stops a player immediately.

PL

So to recap, you can select the speed in which a player is started (transition into the sequence), the speed a sequence is played, the direction it is played, and you can stop it at any time. You can even query the status of the players, which could be used to determine when to stop a player.

The GP sequencer players are pretty powerful.

So you can stop the sequence at any time, but it is my understanding that you can’t pick back up where you left off. Is this correct of am I wrong again? :laughing: I wasn’t sure if you could stop a sequence once sent to the ssc-32.

Hi Mike,

Just a guess, but if you can start a sequence at any step and you can query where it is and you can stop it, you could probably code it up such that while looking at different inputs, decide to pause the sequence, so you do a query and then you do a stop. From the query information you can then know where to start up again. I personally have not tried it. Obviously you won’t be able to get the partial pauses back (ie if you are half way in a pause between steps), but probably pretty close.

Kurt

That’s a cool feature if it can be done. This would be great for responding to sensor input.