Hello all,
V3 of the hexapod software is currently on github and also in our shared file folder
http://tinyurl.com/VORPALFILES (the shared folder always has the most recent stable release, the github might have experimental stuff at the top delta, so you're better off using the shared folder).
New features include:
1) The gamepad now supports double-click on mode buttons, which allows you to access a second level of built-in motions. In other words, single clicking a mode button (the buttons in the 4x4 matrix on the left) still brings up the current 60 leg motions, but double-clicking brings up an additional 60, for a total of 120 built in leg motions. (A long click on a mode button still allows you to access your own custom leg motions programmable using Scratch). There are some really cool new modes, such as "quadruped gait" where the robot walks on only 4 legs, "belly crawl", "dog beg", and numerous new dances like "Cossack", "Random twitch", and "Star pattern". There is also a walking mode that allows a sidestep (strafe) type motion.
NOTE: If you upgrade to this new version, make sure you upgrade both the gamepad and the robot at the same time. You can't upgrade one without the other, stuff won't work.
2) There is a new safety mode that makes sure all six legs are on the floor before switching to a new mode. This prevents servo stress that can occur when switching from a mode where partial legs are on the floor to another mode with a different set of partial legs on the floor. For example switching from F1 (Ninja fight mode) directly to D4 (Mr Hands Mode) would previously cause the robot to try to lift itself up with only a subset of legs. This would cause a struggling/stressful load on the motors and might contribute to shorter servo life. Now the robot will place all six legs on the floor for one-tenth of a second before swapping to the new mode, meaning it never tries to lift up on fewer than six legs.
3) The code now has a #define, HEXSIZE, that allows it to better support megapod and gigapod sized robots. By default this is set to 0, for hexapod. 1 will slightly alter timing of some leg motions to be better for megapod (the megapod still works acceptably well using the default of 0). 2 will support gigapod. Gigapod really requires 2, the leg timings are quite different for gigapod due to the much larger servos. We are starting to release gigapod kits to a small number of customers and will open it up to everyone soon (waiting on parts).
4) There is a new "smooth move" mode that makes motions like the F3 and F4 lean and tilt modes smoother looking. (I am interpolating intermediate positions while waiting for new radio packets.)
There were also many small improvements, fixes, and refactoring to save codespace so everything still fits on a nano.
At this point the code is getting pretty sophisticated with 120 built in motions, scratch support, an error detecting radio protocol, and built in safety features to avoid leg collisions or situations where the legs would be stressed.
Regarding scratch, we are working on a solution to the scratch issue (chrome will drop support of scratch 2 apps on december 31 of this year). This is a complex issue because MIT has provided a dearth of information on scratch 3 and does not appear to be allowing independent third party extensions like they did in scratchx (scratch 2). They seem to only be interested in large corporations like lego having access to their extension system. (Which is odd since they are so active in the open software movement). It is possible that we will be forced to dump scratch in favor of another similar system like blockly, and there are several such systems so we need to do a careful analysis of which will work best for our users. We are working to have some solution one way or another by end of the year.
-Steve P.