Endstop repeatability and how to test it…..
-
Russ began a thread about z probes and testing them https://www.duet3d.com/forum/thread.php?pid=12839#p12839 which has lead me to think about endstops in a lot more detail. I'd like to spawn a discussion about how would we test them "semi-scientifically".
-I would like to test microswiches versus optical versus piezo (and hall effect but I don't have any myself).
-I would like to devise a method using our 3D printers. Sure I could build a very expensive and precise rig using electrical contact stops at one end and the endstop to be tested on the other end, but that wouldn't be in the spirit of what Russ did above, which got people engaged and data coming in from many sources, since we all have printers (and almost certainly all ) with endstopsThe main issue as I see it with testing endstops using your printer is having a reliable reference point. Your print bed via your z-probe isnt good enough as thats subject to potentially too much error, and we want to measure the endstop not the probe, or the stiffness of your printer.
The method I think would work but is clunky would be to clamp something to an axis (to a rod or rail) a fixed distance from the endstop. Home the axis to the endstop, then move under power gently to the fixed point, record the distance travelled, then repeat 30 times.
Russ suggested that we could home the axis, move the endstop to the nozzle and probe the bed with it - which works if your endstop is a microswitch but not so easy to do with a piezo/optical/hall effect device.
Is there a better way? I would be surprised if we are the first group in 3D printing to discuss how to test endstop repeatability, so I am interested in knowing if anyone knows of a standardised method for doing so?
As an aside - DC has looked into deltas with no endstops, I believe it would work just having hard stops at the top of the towers, reducing the motor current to the absolute minimum required to generate movement and just crashing the carriages into the hard stops, then calling it homed. After that you can apply m666 endstop corrections to those points. How accurate it would be I don't know, whether motor skipping at the point at which it hits the stop would result in poor repeatability I'd have to try it to find out.
-
Generally, to test something you check it against a known reference standard. So my approach would be to use a high precision switch, something like this http://uk.misumi-ec.com/vona2/detail/110300155070/ which is high precision switch with repeatability of 0.0005mm as a reference (I use a lesser version which only has repeatability of 0.003mm). Then devise your test methodology and/or mechanical system and revise it as necessary until you get close to the repeatability of this switch. Once that is done, you then test the reference, then candidate A, then the reference again to make sure nothing has changed, then candidate B etc.
The switch I linked to will set you back 80 plus Euros but these things are used in high speed packaging machines and the like where they undergo many millions of cycles and where (in the case of pharmaceuticals and so forth), repeatability is of paramount importance which I why I reckon it would be a good bet as a reference against which other switches could be tested.
Just my twopence worth…......
IanEdit. I thought Tom's video was interesting in that he also looked at environmental variables such as heat. So I think the test methodology should also look at the effect of heat, humidity, ambient light levels (in the case of optical switches) on the various candidates ( as well as the reference).
-
As an aside - DC has looked into deltas with no endstops, I believe it would work just having hard stops at the top of the towers, reducing the motor current to the absolute minimum required to generate movement and just crashing the carriages into the hard stops, then calling it homed. After that you can apply m666 endstop corrections to those points. How accurate it would be I don't know, whether motor skipping at the point at which it hits the stop would result in poor repeatability I'd have to try it to find out.
You would have a homing position uncertainty of +/- 2 full steps for each motor. A belt driven delta normally has between 5 and 12.5 full steps per mm, so that corresponds to an error of between +/-200um and +/- 40um. One 3-point auto calibration cycle using the Z probe would be sufficient to eliminate this uncertainty. The bed has to be clear for this, so you wouldn't be able to home the printer with a print on the bed.
It should also be possible to use the stall detect feature of the TMC2660 drivers to avoid the motor pushing the carriages against the stops for long.
-
David,
You would know best,I think it would be very easy to set up with some M commands to have the end stops to act as the Z probe.
so you can home the delta,
the test each end stop one at a time,the G code would:
1. select the end stop in test to act as the Z probe ( so we can still use the G30 P command,)
2. configure to run the motor reverse for the end stop being tested.
3. run the selected G30 P# S-1x number of times then report back the mean and deviation ( this would only activate the one motor for that end stop)
4. run G code to select the next end stop / motor to be tested and run step 3 again
5. do the next end stop Ect.
6 configure back the to standard settings in the config.gI would think that with your understanding of how each M command configures things we should be able to do this in this manner described above.
that was just a description and I'm sure it will be more complicated than that but that's the basic idea…
Thanks
~Russ