Testing for a valid max-velocity for a given acceleration is not enought. We also need to test for the ability to do jerk-velocity jumps.
I would recommend the following: homing to a corner. doing quasi-half-circles (small line segments, with the abs(delta velocity)==vxyjerk) from the corner until you hit the axis which has the center on it again. Then back.
Also, I would opt for a binary search. And, acceleration should be set.
However, I am curently more on the idea of EvdZ. He proposed to do this on the host side. The firmware should sent back the location where the end-stop is triggered. Then the host-software could take over that and do choices for further analysis.
How I was thinking the calibration:
It could be a certain routine that you can implement. Something that when a certain M-code is inserted, the machine tries to forfill its routine and spits out the maximum values.
For testing, I would recommend using the increasing speed, until you start missing steps, after which you gradually speed down until you find the limit. For the limit I would recommend using a nominal value and its limits. Is the nominal value different than normal, or does it peak out its limit, then its a missed step. What also could be possible (and I think you can do it too) is using the endstops as an electrical switch using 2 pieces of foil/wire. As soon as they touch, they conduct electricity, and even though the switch hasnt been fully pressed the wires will still be connected.
Link to post
Share on other sites