Converting a Sequence in SEQ to a basic program for the Atom

Ok, for the Scorpion project, zenta was nice enough to send me the files for a ripple sequence in SEQ. Now if I was to want to load this onto the AtomPro and ABB so that the right analog stick was assigned to the sequences for walking forward, walking backwards and turning in place, how would I do that?

Looking at the hexapod basic program, I can kind of figure out where the PS2 inputs are assigned but I don’t see anything int he program that looks like the SEQ sequences. In fact, I don’t see anything that even makes the tripod gait. :slight_smile:

So if I wanted to basically “swap” the tripod gait out of the Basic program and insert the ripple gait from SEQ, how would I do that?

EDIT: Ok so I found the Export to basic thing in the projects on SEQ. Very cool. Now am I to assume then that i can assign sequences to buttons in the SEQ program then export it to basic, then load it onto the ABB and use the ps2 to control the Sequences?

Also, when exporting, I choose Atom Pro24/28, cause I have an Atom Pro 28.
Then I have to choose pin 15 or pin 8 as communication pin. Now my comm wire is on pin 11 on my ABB because my ps2 hookups are on pins 12 to 15. Do I simply move my tx wire from pin 11 to pin 8?

And will my ps2 still work on the pins it is on with the pull up resistor soldered in place and everything?

If you are using the version of the code that I earlier modified to run on the Atom Pro, to completely replace the Tripod gait would require a substantial portion of the code to be modified. The walking gate is not a fixed sequence like SEQ, but is instead calculated on the fly. This is the majority of the code. Somewhere from about the label NoSound to about the label All1500.

However if you wish to try out his sequences, you could probably have SEQ generate Atom Pro cod and maybe try it by replacing the code for Attack or some other canned moves. This would be some of the code after the label NoPresets.

If you like how the gait works you could then replace a lot of the gait code with similar SEG generated code and key it off the joystick or the like.

Kurt

P.S. - I think Jim mentioned that there may be a new powerpod program coming out soon that may generate different gaits…

Evo, the Export function of SEQ does not export anything beyond the data for the steps, and the code to step through them. This is an Atom only method, no SSC-32 involved.

The updates have been coming so fast that I do not have the latest SEQ version installed. :unamused: But you can export directly to the SSC-32’s EEProm for this as well. Then you can select the speed and direction that the stored sequences are playing.

But the only program currently creating Atom code for the PS2 is PowerPod. Laurent is working on it now to support the Pro processor, different gaits, and the Phoenix geometry.

Sounds cool.

So are you saying I can export the ripple gait to basic from the SEQ, then upload it into the EEPROM on the ssc-32 and control it with the ps2? How do you upload a basic file to the EEPROM on the ssc-32? Or how do you upload anything to the ssc-32?

Sounds great!

If I am reading it right, with the Atmega168 version, with an external EPROM and GP sequencer firmware version installed on it. You can have SEG download the sequences into the EEPROM. (Manual for the GP sequencer can be downloaded from the SEQ product page)

You could then change the HEX code to call out to the general sequencer with the “PL” command to choose which sequence to use. You could then use the PS2 joystick location to maybe control the speed given to the sequencer.

Sounds like fun. I would help, but don’t have inline hex. Not sure how well the CHR-3 would do with your gait… If I were to use this approach, I would be tempted to change most of the rest of the HEX code, such as Attack or the like to be SEG sequences as well.

Good Luck

Um, no… You export the ripple gait directly to the SSC-32’s EEPROM, and tell it the speed and direction to play the sequence from a microcontrller. It’s all done by SEQ. The SSC-32’s GP sequencer firmware must be used for this.

Ok I sort of understand what you’re saying but I have no idea how to do any of that. I’m in over my head now. :0

As far as getting the ripple gait into the EEPROM, get the latest version of SEQ and read the manaul for it. Then ask Laurent for help with anything that doesn’t sink in. :wink: This will enable you to control the beast from LynxTerm. Then you just need to write the PS2 control code for the microcontroller you are using. This is probably the tough part.

Ok so lets say I want to just use the program I already was using. Now how to I “save” my offsets and min/max angles and travel to the SSC-32?
When I set it up in SEQ and save the cfg file, is SEQ saving my min/max and offsets to the ssc-32? or do i have to use powerpod to input my offsets.

When I power up the ssc-32, it doesn’t seem to have any offsets that it corrects to.

My guess is that the the SSC32 does not know anything about the min/max angles. That is something that is probably something more to use internally to SEQ. Looking at the manual and registers document. It looks like with the new firmware you can store the servos offsets into the new processors memory on the SSC32. I am not sure if SEQ will do this automatically. I know there were times it would tell me that there were no settings for this… But I don’t see anywhere directly to access the setting of the offsets into the SSC32. It is probably there but I am not easily finding it. I do know that with LynxTerm, there is a registers button, that you can load and store new values for the offsets.

Kurt

As far as I understand (and someone will correct me if I’m wrong), SEQ needs to know the min/max angles simply so you can’t command a servo to a position that is out of range. However, once the program is built, all the commanded servo positions are used, so there is no need to export the min/max info.

With the new SSC-32, firmware, and v1.08 of LynxTerm, you can define and store servo offsets. If you do it this way, instead of defining offsets in SEQ, all of your servos’ mid-positions will be 1500.

As of right now, LynxTerm is the only way to deal with the SSC-32’s registers - just click on the “Reg.” button at the bottom of the main LynxTerm screen to access the Registers page.

I know there’s not a lot of information available at the moment. We are currently working on a tutorial, but in the meantime, if you have any questions you can ask James (Fish), since he knows more about this than I do. :laughing:

We have a tutorial for using LynxTerm to handle a BRAT’s offsets with SSC-32 registers, and SEQ to handle min/max and walking:
lynxmotion.com/images/html/build128.htm

Even though the BRAT may not be your application, the principles still apply.

Let me know if there are any questions on the tutorial!

That, Beth, is exactly what I was looking for.