Hey folks, I'm currently trying to achieve very repeatable homing, i.e. after two homing moves, the toolhead should be at the exact same position with a deviation of less than 0.05mm. A bit of background: we are using a toolchanger to print electronic circuits, integrated into the normal plastic printing process. Part of this process is automatic pick&place of SMD-components from a tray that is mounted to the printers frame. To do so, we need very good calibration of all tool positions (nozzles) and of the toolhead against the frame. We use a camera, also mounted to the frame, to calibrate tool offsets. The normal sensorless homing with stall detection seems to be pretty imprecise. I see deviations up to 0.5mm between two homing moves. For reference: the Prusa I3 also uses sensorless homing with no visible deviations at all. I am not entirely certain about the reason, best guesses are: - the coupled XY axis of the CoreXY kinematic cause the stall detection to be unreliable, as two motors are involved at the same time - when the toolhad smashes into the frame, the other axis "jumps" slightly to the side I then utilized Greg's design for the Omron mechanical switches to integrate simple mechanical endstops: https://www.thingiverse.com/thing:3843642/files That improved the situation, but I still see deviations up to 0.1mm, which is to high for our application. Does anyone have a better approach? I considered multiple homing moves to sample and average the position. However, as far as I know, RRF has no support for multiple measurements (which would also be of interest to measure tool positions, e.g. z-offset of a nozzle).
Do you home at a faster speed first and then a slower speed when the tool head is only a few mm away from the endstop (similar to what the Z axis does with e3d's homing macro) ? Also, are you using the version of Greg's design that has the matching width for the aluminum extrusion gap on your printer ? There are 10mm and 8mm versions. At first I used a version of his design (10mm) that did not properly fit my tool changer (which needed the 8mm version). The proper version fits very securely into the extrusion channel; the wrong size does not fit well and can move.
Stall homing is accurate to at best 1 full motor step. Where repeatability of the homing position is important, endstop switches are better. The latest internal build of RRF adds G1 H4 moves, which move until the endstop is triggered but don't adjust anything. In conjunction with variables, this would allow averaging to be done.
I wonder if anyone has done a study of what the std. dev. is for the activation of that particular switch ? If not, the latest internal build and using G1 H4 multiple times sounds like an experiment to do
No, they are planned for 3.3. However it's possible to simulate a small number variables by using various tricks. For example, you can save them in workplace coordinate sets that you are not using, or in the offsets of dummy tools.
Yes and yes. I do a slow second homing step, and that actually helps. I reduced the speed again, to only 200mm/min and it improved the situation to a precision significantly better than 0.1mm. I also needed the 8mm version.
@dc42: The new G1 H4 move sounds promising, that is pretty much what I was looking for. I'm going to take at closer look at this. @Greg: thx, didn't see it, answers some of my questions.
I think @dc42 will know the answer to this, but I suspect part of the issue is how quickly the mechanical buckle in the switch flips as pressure is applied and the reaction time between the switch flipping and the firmware noticing where the stepper is when the switch changing state is detected (you wouldn't know I'm a native English speaker ). If the mechanical buckle flexion is not 100% elastic, it should also vary slowly over time as it fatigues. The the actual switching position probably also varies based on ambient temperature. The difference probably isn't much, but if you are measuring changes in microns, it might be noticeable over time and variations in ambient temperature. My guess is that an optical switch that is sufficiently shielded from light and dust is going to be the most consistent over time. The BLtouch uses hall effect switching but it also depends on consistent friction between the body and the probe pin and skin oil on the probe pin is enough to effect its' consistency. FWIW, I took an inkjet printer apart and it looked like they used an optical sensor and a clear linear strip with markings on it to detect carriage position. I wonder why 3d printers don't do the same. In the volume those parts must be made for inkjet printers, I think the biggest technical issue would be the firmware (think about the precision needed to spray picoliter droplets at around 50 drops per linear mm or finer while traveling rapidly either forwards or backwards!)