z-offset increasing 3mm on every subsequent calibration
-
@vj said in z-offset increasing 3mm on every subsequent calibration:
But... how do unsynced z-axis steppers affect the z-offset of the probe and the hotend?
If the lead screws are not both at exactly the same starting positions after homing the Z axis, the bed will be tilted either to the left or right. Imagine the pyramid formed by the bed at the two lead screws and the point at the front left of the bed where you do a single probe to home the Z axis.
Your homing point is going to vary in height considerably with even a tiny difference in the position of the lead screws. Once homed, they should keep their positions until you either power off the printer, or the steppers time out and the idle current which holds the steppers at their current position is turned off. Then, you'll be forced to home the Z axis again and it won't home to exactly the same height as it did the previous time. Homing the Z axis sets the firmware's idea of where Z=0 is. If that isn't perfectly repeatable and perfectly accurate, everything you subsequently do on the Z axis is going to be inaccurate.
I'd also say that you shouldn't be probing the front left of the bed to establish your Z=0 point. The middle of the bed is a much better place.
My V-Core uses a hotend piezo probe rather than a BLTouch. It's a great probe on a core-xy machine and there are no offsets to make its readings less accurate. Anyway, when I home my machine, the procedure goes like this:
Home X and Y axes against the limit switches, establishing X0 and Y0.
Then, to do the initial Z homing, I first probe the bed at the centre point between the two lead screws. On my machine, this point is at X145 Y233.
Then, I probe at X0 Y233 followed by X290 Y233. The Duet firmware is then asked to correct for any tilt between these two probes and adjusts the lead screws appropriately.
Finally, I go back to X145 Y233 and probe the bed again to set Z=0. This is done because the lead screw tilt correction may have changed where the initial Z=0 was.This way of doing things requires independently driven lead screw steppers.
If you're prepared to give up the E1 output for a Z stepper, you could do this as well. If you still want to keep E1 free and don't want to get a Duex expansion board to get some more stepper drivers, you have to find some other way of synchronising the lead screws. Dual Z homing switches at Z minimum is normally the way you would do this.
-
Just for a laugh, I turned my printer on, homed all axes and put a spirit level on the bed. It tells me that my bed is leaning backwards towards the rear of the machine and that it is higher on the left hand side than the right.
Here's my current levelling mesh:
The thing is, the spirit level is telling me how my bed is in relation to the earth and not in relation to my X and Y axes. I live on the second floor of a '40's apartment block. I very much doubt if the house is perfectly level. Neither is my kitchen floor or the table which the printer sits on.
"Level" in printer terms refers to relationships between the printer's axes, not the planet!
-
Interesting!
Ok, so we have 2 separate issues: first is the offset of the bltouch with the hotend (which for some odd reason is increasing every time I re-run it, until cut the power, but I do run this one in the center of the bed, every time on the same location). I think it may be related to the bug (the thread I linked to) that was in earlier firmwares and possibly due to an incorrect selection in the reprap web configurator (where it was set to firmware 1.6 rather than the 2.03). I cannot test this now with the new setting, as my printer is printing.
Second issue is the error in the mesh grid. If you compare your mesh grid to mine (in the zip file), mine shows :
min error -3.076 max error -0.011 mean -1.625 deviation 0.790
Good point on the level, but if the bed would move unequally left/right with a difference of 3mm, the level should show some variation (3mm difference on 30cm is for sure visible) and printing would be for sure impossible. It would make more sense if it would be 0.3mm, but that is not what it outputs. So this mesh probing is doing something wrong as these readings don't match at all with reality. This is the output from another run today (so values may differ from the ones in the zip file):
Third aspect is the z-motors not being synced. I agree it is an issue which I will have to solve (probably will move one to E1 to allow for autoleveling, as that is the easiest), but does this alone explain the issues above?
-
Trying another print, and again the same issue: the z-offset is wrong (print head is too high). This time the configurator was set to the correct firmware. Unplugging the printer does not fix it, neither does running the calibration again (modifying config.g but putting the same old value) and rebooting.
-
There's something very wrong with that levelling map!
If you are running 2.03 and you created a config file for 1.6, it would have commands which are incorrect and probably wouldn't work at all.
Specifying the wrong version of firmware in the configurator can't change the firmware on your machine and bring back a bug which has been fixed in your firmware, it would only make a file which won't be understood properly.
Thinking back to my fun installing the BLTouch on my Anycubic, it was absolutely essential that the distance between the base of the BLTouch and the bottom of the nozzle was exactly 8mm. As per this diagram:
I remember that I found an alignment tool on Thingiverse which made getting this right quite easy. Instead of using the springs that they provide, I used M2 washers to get the distances right and then lock them in once they were correct. Until I got that right, I had no end of troubles.
-
Sorry about the multiple edits to my previous post. The fingers can't quite keep up with the brain!
Verify that you have the distances set as in the diagram. Then set your trigger height by following the procedure in the Duet Wiki
-
I have the BLTouch smart, which is less critical to the z-offset installation (according to the diagram here https://www.antclabs.com/bltouch-2 , between 2.3 and 4.3, so I'm nicely within range with my 3.84).
(see below)I will start rewiring everything, maybe there is some bad cable somewhere as now I cannot seem to get the correct z-trigger height. I know from my successful prints that it should be 3.84, and I have not changed anything to the hardware, but it keeps the head higher when it thinks Z=0. Previously, when I changed from 3.84 to a higher value, it cause a headcrash, which I want to avoid.
So I'll rewire everything and make order in the cabling: best is to first rule out some bad wire or something that may cause issues. Don't get me wrong, I will change the Z-motors as a next step, but as you see, there is something very wrong with the mesh map and the z-trigger height. So, starting to rewire everything, but I will only be able to get back to this in 2 weeks. Thanks for the help, for sure I will keep you posted.EDIT: I may have a BLTouch Smart v2.0, which has the range at 3mm+/- 0.3, but I'm out of range (my 3.84 is when it is deployed, but when it is not I for sure have less than 2.7mm). That my indeed explain the inconsistent readouts! Ok, so going to rewire and reattach the bltouch: If I put it at 3mm, I should be fine regardless of whether I have a v2 or a v3 (but I'm 99% sure I have a v2). THANKS!!!! Not sure if this is the cause, but it seems possible.
-
@vj said in z-offset increasing 3mm on every subsequent calibration:
EDIT: I may have a BLTouch Smart v2.0, which has the range at 3mm+/- 0.3, but I'm out of range (my 3.84 is when it is deployed, but when it is not I for sure have less than 2.7mm). That my indeed explain the inconsistent readouts! Ok, so going to rewire and reattach the bltouch: If I put it at 3mm, I should be fine regardless of whether I have a v2 or a v3 (but I'm 99% sure I have a v2). THANKS!!!! Not sure if this is the cause, but it seems possible.
Your words are very familiar to me. This is exactly the pain I went through with the BLTouch. There's a set of slightly different instructions and no simple way to tell exactly which version you have in your hand. Incredibly frustrating!
Once you get it set up properly, it's very repeatable and reliable though. Not as repeatable or accurate as my Precision Piezo, but that wouldn't have been a good option for a cartesian printer.
I just checked my other printer and the Z trigger height (or offset) for my BLTouch is 1.3mm. 3.84 doesn't sound right to me. Like I said, make sure that the base of the sensor (not the pin) is 8mm from the bottom of the nozzle.
Good luck and we'll hear from you in a couple of weeks!
-
Ok, finally getting back to this...
I've got it ... I think... If you do a mesh compensation, and afterwards determine the Z-offset with the mesh compensation in effect, it will affect the determination of the Z-offset... As I was doing the homing in the front left corner, but the Z-offset calibration in the center, it added the mesh offset calibration which I did before the print (but which was not used in the print) when the z-offset is calculated again afterwards. As I was using the mesh calculation to check how level everything is, it enabled it, giving me an increase equal to the amount it is compensating with the mesh (and that was a magnitude off due to other wrong settings)... Does this make sense?
I currently started repeating Z-offset calibration without mesh compensation in between, and it seems correct...
-
-
Thanks!
Perhaps a note on https://duet3d.dozuki.com/Wiki/Test_and_calibrate_the_Z_probe should be added that mesh calibration should be off, or that at least you should test at a point where the calibration has 0 effect...? -
@VJ Done.
-
-
Hi,
Perhaps the firmware could handle this automatically by ignoring any active mesh calibration when setting Z=0 using a Z probe?
Frederick
-
I'm not sure that that is so straightforward... Also, it is nice that the firmware just does what the command tells it to do, without performing additional steps behind the user's back. Sure you have to know more what you do, but at least it allows you to do what you want.
-
@VJ said in z-offset increasing 3mm on every subsequent calibration:
I'm not sure that that is so straightforward... Also, it is nice that the firmware just does what the command tells it to do, without performing additional steps behind the user's back. Sure you have to know more what you do, but at least it allows you to do what you want.
But when would you ever want to set Z=0 with mesh compensation active since it doesn't accomplish anything useful?
As it is you need to remember/know to use G92 S2 before G30 for it to work right.
And as we see that need can cause problems.
Frederick
-
Or you can just include a M561 in your homez.g and homeall.g files before your G30 ever gets called. This wipes out anything a G29 may have set.
Personally, I like the fact the machine doesn't make assumptions in the firmware. Assuming to ignore the G29 could be bad for certain applications but good for others. Making the user use the available Gcode commands to wipe or remember settings is a positive and makes RepRapFirmware very flexible for multiple platforms outside 3D printers.
-
Can you provide an example of when executing a G30 when mesh compensation is active makes sense?
As pointed out the result is not meaningful.
Frederick
-
A laser engraver would be one example where you might use G29 to measure your bed surface, and then perform a G30 to re-zero your Z axis against an object your going to engrave to set the proper z height for the correct focus length. You want the laser to move in a consistent plane, but will want a different Z position for laser focus against an object.
The same can be said for a 3D engraver or a small milling machines.