A curious/sad finding; with 1/32 microstepping (DRV8825) I am limited to 250mm/s on X/Y for moves in just 1 axis, and ~125mm/s for diagonal moves!
After some analysis I think this is due to the arduino/RAMPS slow CPU + Marlin max step frequency, but I am not certain.
I was getting really nasty “stutters” when moving at high speed and I thought it was a mechanical problem.
So I made a lot of changes in the linear movement setup, including new bearings, different types of bearings (ball bearings, bushings etc) but the symptoms remained the exact same.
Tweaking the stepper voltage did nothing except increase the temperature.
To track down the problem I made a test gcode file that exercised the X axis a lot by just moving back and forth quickly, this would repro the problem fairly often, but it was also fairy random.
I was able to study the problem up close, and was able to touch the components/bend them etc to see if that would affect it, nothing mechanical I did really affected it though.
Then I started messing with Marlin config parameters (the LCD really helped here) and I noticed that just scrolling in the menus tended to provoke the problem, which made me suspect the board was getting overloaded.
Messing with jerk and acceleration made no difference, but lowering max speed did!
I then stumbled upon this link: http://softsolder.com/2013/05/08/m2-vs-marlin-speed-calculations/
Marlin’s step frequency is 40 kHz and my step/mm on the X/Y is 160, which gives a maximum movement speed of 250mm/s.
After checking I found that is the exact value the max X/Y speed was set to…
By lowering X/Y max speed to just 240 mm/s the problem no longer appears… but I can’t be sure that my hypothesis is correct.
I modified the step frequency in Marlin, lowering to 30000 seemed to introduce a stutter every time the X direction reversed. Increasing the frequency to 50000 did not seem to do anything, which I guess may indicate that the arduino is indeed getting overloaded.
Am I correct in my analysis?