Beta Phoenix 2.1 code

As most of you probably already know, Xan has been readying a new version of the Phoenix code that has some new features, with some help from Zenta and a little from me. After playing around with it for quite awhile, we think it is good enough to allow others to try it out. :smiley:

Warning: This version uses binary commands to communicate with the SSC-32. This implies that you will need to update your SSC-32 to a version that supports binary commands, such as: lynxmotion.com/images/files/ ā€¦ GP_A1A.abl Also by default we communicate with an SSC-32 at 115200, which requires a recent copy of Basic Micro IDE. Also you will need to set the appropriate baud rate jumpers on the SSC-32.

Some other features of V2.1 include:

New Gait Triple Tripod (Zenta) DONE, and it ROCKS!

More accurate PWM constant - If I remember correctly this has to do with how the conversion is done from angle to PWMā€¦

Something about SSC/BAP sync timing. - Updated code to make the timings of the different sequences more accurate.

Configure leg lengths for each leg DONE - You now have the ability to have legs with different lengths of segmentsā€¦

Optional 3DOF/4DOF using optional compiling - This part is still being tested. The code has the ability to be configured for 3DOF or 4DOF and may also allow you to mix and match. That is for example: you will be able to have a T-Hex with maybe the front legs be 4DOF and the rest be 3DOF. Again this part is still being tested. I should have some parts soon to convert my CHR-3 to a CHR-4ā€¦

LiPo Safety, useful for all LiPo owners - You can enable or disable and configure for what voltages will shut down the hexā€¦

Movable Center Point of Rotation DONE

Change SSC/BAP/ARC specific functions to a separate driver file DONE - We have tried to minimize how many #ifdefs are in the main part of the code. To help with this, we moved all of the SSC-32 specific code into a separate file. We also have an ARC32 specific version that replaces those functions.

Update GP player for speed control (Zenta) - This is a lot of fun. Once you start up a sequence, if for example with the PS2 version, you move the right stick up and down while the sequence is playing you can control the speed and direction of the sequence. I believe by default we allow you to go up to double speed, but there are limits to this. That is the SSC-32 will only allow a step to speed up to the point that does not try to move the servo to the new location faster than some pre-defined max speed.

There are probably many other enhancements that I forgot to mention here.

Currently I have configurations built for a 3 DOF T-Hex running on a Bap28 with SSC-32 and a PS2 controller. I also have a similar configuration with the Serial control (works with the Powerpod serial test program). I also have a configuration for a Phoenix running with an Arc32 with PS2 control. Soon I will also upload some DIY XBee remote control versions, but these use my changes to the XBEE code.

Over the next week or so, I also hope to build a CHR-3 version as well, but currently my CHR-3 is being used to test the Arduino versions.

I hope you enjoy

Kurt
Phoenix Beta 2_1 T-Hex SSC-32 Serial.zip (21.1 KB)
Phoenix Beta 2_1 T-Hex SSC-32 PS2.zip (21.2 KB)
Phoenix Beta 2_1 Phoenix Arc32 Ps2.zip (31.2 KB)

Here is a version for the Phoenix that runs with Arc32 with the DIY XBee remote control. Note: this XBee version is using an updated version of the DIY transmitter code that has when only a few things change in the packet, it sends a different packet with delta informationā€¦ The code is also setup to work with the old transmitter and the new transmitter code can work with the old clientsā€¦ Also have updated Arduino DIY remote code updated for this as wellā€¦ These updated programs will be updated in their threadsā€¦

The same control file also works with T-Hex running on Bap28 with SSC-32 as well. I have not generated the zip file for it yet as I reconfigured my T-Hex to use PS2 on the standard pins, so I need to reconfigure back to build this configurationā€¦
Phoenix Beta 2_1 Phoenix Arc32 DIY Xbee with delts msgs.zip (44.9 KB)

OK, I believe that the 4 DOF code is working reasonably now. Likewise the mix of 3 and 4 DOF is functional as well. More details of what I tested is in the thread: viewtopic.php?f=8&t=7687. I decided to split off the stuff about my THR-4 hex robot to a different thread.

As part of making the T-Hex 4DOF legs work with the new code base, I needed to add the concept of a ServoHornOffset for some of the servos. This was originally done by Zenta as part of the T-Hex4 code base. The offsets were converted to a per leg values as to again allow mixed types of legs. These changes required changes to the configuration files (ā€¦cfg.bas ). I rebuilt all of the zip files with the updated files. Hopefully I did not miss anything. I did not retest all of the configurations.

Kurt
Phoenix Beta 2_1 THR-4 SSC-32 PS2.zip (21.6 KB)
Phoenix Beta 2_1 T-Hex SSC-32 Serial.zip (21.4 KB)
Phoenix Beta 2_1 T-Hex SSC-32 PS2.zip (21.5 KB)
Phoenix Beta 2_1 Phoenix Arc32 Ps2.zip (32 KB)
Phoenix Beta 2_1 Phoenix Arc32 DIY Xbee with delts msgs.zip (45.7 KB)

Nice job Kurt!

Alan KM6VV

Thanks Alan,

Been having some funā€¦

As I mentioned in my TH4-R thread, I might make up a T-HEX 4DOF config file/project so someone could try it out on a configuration actually sold :smiley:ā€¦

While doing it, I found the 3DOF T-Hex configuration file, had a couple of minor problems, in the initial positions. Most of the legs were changed from 105->102 or 75->72, except for one legā€¦ So I fixed it. I did it by setting the actual desired offsets and then setup Sin/Cos of 45degrees and did a multiply. So it makes it easy to change 1 value and have it update all of the legsā€¦

Kurt
Phoenix Beta 2_1 T-Hex SSC-32 PS2.zip (21.6 KB)
Phoenix Beta 2_1 T-Hex SSC-32 Serial.zip (21.5 KB)
Phoenix Beta 2_1 4DOF T-Hex SSC-32 PS2.zip (21.5 KB)

Iā€™d offer, but my hex is not exactly ā€œfactoryā€ either!

One of these days Iā€™ll buy a ā€œstandard chassisā€ so that Iā€™ll have something to compare toā€¦

Thanks for the updates!

Alan KM6VV

I was asked about DIY XBee version of T-Hex. I see I have not uploaded this. Warning I have not tested this version in awhile as I removed the XBee from my T-Hex such that the PS2 could have a standard configuration.
Phoenix Beta 2_1 T-Hex SSC-32 DIY XBee.zip (33.6 KB)

Thanks :slight_smile:

THANK YOU!!!
:slight_smile:

Great work!
Looking at code . . and was trying to get this version but I think I may need help.

Phoenix SSC-32 ps2
and eventually
Phoenix SSC-32 xbee

If you can, and when you can get to it, could you add the ā€œPhoenix SSC-32 ps2ā€ to the beta so I can speed up looking at it?
Thanks.

I thought the 2.1 phoenix code was released? Need to see what the state of this is???

Kurt

:blush: Really? Well I am clueless sorry about that. I had a few threads I was following and should have looked around more.

Could you point me to it, haveing problems finding it.
Thanks

Hi,
I hope this is the right thread to ask.
Totally new to all this and have just ordered an ARC32 board. Would I be correct in assuming I wonā€™t need the SCC 32 board as well?
Many thanks for help provided and my appology if Iā€™m in the wrong thread.
Manfred

No problem. Yes we have versions that can run on the Arc32 without an SSC-32. Also have versions that you can use it with an SSC-32, but I mostly just use the Arc32 by itself.

Kurt

Does anyone have to hand the serial control characters?

I am looking at using the Pheonix with Xans/Sentas code as a chassis, with another controller for the ā€˜mindā€™.

Ultimately I would want to be to Roll the body, Rotate L/R, and then walk forward backward/strafe L/R with simple commands.

Once I have this working (going to have a very powerful PIC32 ā€˜brainā€™ at 80MHz) I will have it doing some other tricxk stuff like chasing a light around, mapping a room out, and some over advanced stuff, all very exciting! Just waiting to finish building ym pheonix and Iā€™ll be on the way.!

In fact after looking at the bas files, I can easily interpret what I need to send over to emulate the DualShock controller, and in deed what to set the chesum ( (0) to enbale it to pass throughā€¦ phew :slight_smile:

Matt

If youā€™re going to use a PIC32, you might as well use a BotBoarduino, and C code along with the SSC-32.

The PS2 is fine, but with a project of this magnitude, why not use the DIY remote, or use R/C spread spectrum to control/communicate with your 'bot?

Alan KM6VV

Hi

I have a MSR-H01 with a ARC32 and Lynxmotion PS2 wireless controller. I am using the Beta Phoenix 2.1 code. I acquired the parts over 6 months and finally assembled it and for the most part it is working.

The first question I had is in the config file there is a section [LEG DIMENSIONS], do these need to be modified? I tried a test to modify some of the dimensions to match the leg and it did not work, the legs went to up their stopping point.

The second question, is there a simple way to add a pan and tilt function? The MSR-H01 has the parts but my programming is still limited, so if anyone any code samples would be great. If not maybe the could be a additional option for the next version of the code, I would really like to get this part working.

Sorry if this is not posted in the correct location.
Thanks.

yes and yes.

you will also need to configure the initpos & min max values.
i also used the MSR-H01 Hexapod, but using ABB2 with ATOM 28 Pro, SSC32
hexapodrobot.com/forum/viewt ā€¦ f=25&t=367

http://i531.photobucket.com/albums/dd355/innerbreed/100_1510.jpg

Hi Innerbreed
I looked at your code and I donā€™t think my definition of simple code is the same as yours :slight_smile:
I tried to use the differences between your code and the original 1.3 code to just pull out the pan and tilt function.
Then inserted the changes into the phoenix 2.1 arc32 code, I did not break the code, it just doesnā€™t work for the pan and tilt.
I think there are two problems, one is how to switch the controls to pan and tilt only, the second is Serout SSC_OUT commands I am not sure how to use it with the arc32. I attached a text file to try to show the changes I made by indicating what was added to which file but it may or may not be helpful.

Also I think I am am biting off more that I can chew. Is there a version of phoenix code that is closer to the your version that also works with the arc32. I think if they were not so different I might have a better chance of modifying it.

Thanks
difference.txt (5.48 KB)