I did a bunch of offline coding and simplifying on the robotic arm project in the past couple weeks. I normally do a download after every change, but this time I decided to be brave.
Basically what I was working on was to eliminate the shaking that it does when it's moving, it was shaking because it's commanded to hundreds of different intermediate points (XYZ coordinates between two XYZ coordinates that are entered into the program) that are sometimes only .1mm apart (depending on resolution setting) and because of the non-kinematic movements it doesn't always move the same amount of steps between each point. Sometimes the steppers are moving 5 steps sometimes only one step. so I made some adjustments to where, after the speed of each stepper is synchronized to finish simultaneously, I calculate how long it will take to arrive at that point, then take the speed that I want it to move (in mm/s) divide some stuff to get a speed adjustment factor, multiply the speed of the steppers by the adjustment factor... and viola! No more shaking! (tested it today!)
Also! The program used to calculate the stepper synchronization speed on the fly, which could of possibly caused some of the shaking. I moved the math part of the calculation out the picture when it's moving, and now all the intermediate points and speeds and math are calculated and saved to an array BEFORE the robot even leaves the previous XYZ coordinate.
Now I just have to patch a couple "NEW" bugs and the program is ready for Thingiverse and YouTube!