I’m having some y-axis slips and I want to stress test it to find out what speeds / accels / jerks start to cause trouble. I’m thinking something like this:
Home the axis
Run out on the axis at speed S with pattern P.
Run back to position near zero.
Slowly go to zero, measuring the endstop along the way.
Report accuracy results to console (PC).
Repeat with different speeds and patterns.
This seems like something someone would have already written long ago, but I can’t find it if they did. Am I missing it or do I need to write it myself?
I’ve thought about this and the way I see it is there are two extreme cases; one is very short moves where the machine doesn’t have enough time to get up to full speed, the other is a long travel move in which full speed is achieved… I wrote a small gcode program to travel back and forth continually and used M220 Sxxx and (I can’t remember the other code, it was for changing max feed rate limit) to adjust speeds and find a max I was happy with… I tried once with tiny moves, once with long moves…
Its better, but I’m sure I could’ve been more scientific if I could b f’d
Your steppers will be most strained when the axis goes into resonance - that can be anywhere from 1 to 50Hz, depending on how heavy and rigid the axis is. I’ve found that I had to reduce acceleration on y by about 80 to keep it from skipping in small infill areas, even though the higher acceleration settings would run perfectly fine the rest of the time.
@Phil_Hord I once did some test patterns with an accelerometer attached to the printer to try and find the best speeds where there was the smallest amount of ‘jitter’ along the movement. I have no idea where that code is… but I may resurrect it now that my i3 is almost ready for tuning.
@Thomas_Sanladerer Is there a way to determine the resonant frequency of a particular machine ? I’ve seen the option in Slic3r to deal with it but not how to set.
@William_Frick that option in Slic3r doesn’t work all that well, it seems to have a hard time deciding which parts of the print correspond to which frequency.
A way to determine the critical frequency is to print a test part and lower the acceleration values until it prints fine. I’ll whip one up and upload it later today.
@Thomas_Sanladerer I understand the test part and what it is meant for, but resonance is a combination of acceleration and speed, if you print at speed x and have y accelation you/ might find you can double y if you halve x… Do you know of a way to find a good value for both acceleration AND speed?
In an extreme case, if I print this at 1mm/s there may be no resonance even with high acceleration or acceleration off.
I’ve been trying to think of a method that would find this, perhaps edit marlin to scale the acceleration / speed combination to avoid resonance… But first I need a method to test it correctly.
@Jarred_Baines i see what you mean. But - if you start out with your regular X and Y acceleration values, the resonance overload will be much greater than the limiting factor of the other axis’ acceleration values. And if you really want to stress-test only one axis, rotate the infill pattern to either 90° or 0° (of course, rotate the part accordingly).
And yes, you should use your regular speeds here. At 1mm/s you’re not going to see resonance.
It seems unreasonable to for the slicer to avoid resonant frequencies. the slicer doesn’t know how my printer accelerates or how it joins consecutive movements. I think it can only calculate the expected frequency of each axis at cruising speed and try to avoid some of those. Neat idea, but maybe it should be in the firmware.
@Phil_Hord That’s 100% correct… if we were talking speed ONLY then the slicer would have a good idea, but because it doesn’t know the acceleration it can’t actually calculate the ‘frequency’ properly…
If you didn’t have acceleration though, it’d be a simple matter of tuning the frequency to the resonant frequency of your machine - well “simple” in the fact that there’s “one single value” that should work - not a range of values depending on acceleration, speed, stroke length etc.
For now it’s a bit of a ‘useless’ feature… but if it gets developed, or improved so that we can also enter our machines acceleration / jerk etc to get an ACCURATE calculation it will be very useful!
Probably even more useful would be to have the feature integrated into firmware so that no matter what slicer you use, the machine with not go into resonance…