[size=150]PoMoCo 0.9 to 1.0 Changes:[/size]
1.) All moves now run out of the Moves folder.
Each move is a separate file that automatically imports all the necessary libraries. On startup, PoMoCo automatically recognizes the files in the move folders, and creates buttons for each of them. The moves are dynamically loaded when its button is pressed, meaning you don’t even need to restart PoMoCo when you modify the move!
In Short, the process for creating a move is now:
1.) Create a .py File in [PoMoCo main folder]/Moves/
2.) Write moves as detailed in the documentation
3.) Open PoMoCo
4.) Click the button matching the file name to run the move
5.) Update the move in the text editor, click the button again, and the updated move runs without restarted the program
2.) Frame rate fix
Changed from 50 FPS to 10FPS. This was causing a lot of slowdowns and hangups on OSX. This change has been confirmed on multiple OSX machines to solve hangups.
3.) Changing file locations
All support files that aren’t PoMoCo.py are now moved to [PoMoCo Main Folder]/PoMoCo/ to clean up the look of the software
4.) Baud Rate Change
Slowed down the Baud rate on the serial connection from 115200 to 9600 to correspond with the 1.7 Firmware Update
5.) Move Rate Change
Changed the number of servo updates per move per second from 40 to 5. This dramatically decreases the time it takes per move, especially with moves like walking
6.) Move Cleanup
We had a lot of moves in there we wrote either for trade shows or videos, or were still unfinished (like walking lean back). We fixed each move up, and they’re now all ready to go. We even added a couple (like Get Up).
[size=150]Servotor32 Fimware 1.5 to 1.7 changes[/size]
We shipped some board with an in-between 1.6 version. They are mostly the same, except for the change from 115200 to 9600 baud.
1.) Dramatically Reduced Shaking
A huge cause of shaking was conflicting interrupts. the delay() function in arduino, the ADC converter and the timer used for tone() all run interrupts in the background with the Arduino software by default. These interrupts messed with the tight timing necessary to keep all of the servos running stably. The servos still exhibit some jitter, especially the hip servos as they have a very heavy and long moment arm on them, but this is now entirely caused by the servos themselves, and now has nothing to do with the controller.
2.) Baud Rate Change
Slowed down the Baud rate on the serial connection changed from 115200 to 9600. At 115200, the controller was having to respond unreasonably fast. While the chip has a hardware serial buffer, it doesn’t have a hardware USB serial buffer. The rate of commands would cause some to be missed, caught half way, etc. The USB hardware interrupt was also over-riding the interrupt that sends the timing signals to the servos, causing really bad jittering while moving. At 9600 Baud, you still get 810 servo commands a second, or 25 per servo per second at full utilization, and the controller gets a while to breathe.
3.) Centering Fix
We accidentally had servos 0-3 set to +90 degrees instead of 0 degrees on bootup in Firmware 1.5. This has now been fixed.