Unreliable Z height calibration on V-Core 3 w/BLtouch & Mini 5+
-
Yes, I did the calibration at the same bed temperature I always use but the variation is not always the same, sometimes is a bit challenging to me getting the right calibration spot again.
What would be the best method/ procedure to minimise this issue?
Thanks again!
-
Thank you @fcwilt
This is the result:
G32 bed probe heights: -0.079 -0.077 -0.077 -0.078 -0.078 -0.076 -0.078 -0.078 -0.078 -0.077, mean -0.078, deviation from mean 0.001
-
@juliann the probe looks to have minimal variation, well under what should need babystepping to compensate for.
what is your start gcode doing? maybe you are homing the printer after probing and the endstops are less repeatable
-
-
@juliann so no G28 is inserted by the slicer?
Also can you post an image of the height map you are using?
Is there a variation between different runs of the same print? -
You are correct, there is no G28 inserted in the slicer.
Yes, the variations are present between different runs of the same print.
-
@juliann said in Unreliable Z height calibration on V-Core 3 w/BLtouch & Mini 5+:
Thank you @fcwilt
This is the result:
G32 bed probe heights: -0.079 -0.077 -0.077 -0.078 -0.078 -0.076 -0.078 -0.078 -0.078 -0.077, mean -0.078, deviation from mean 0.001
I'm a bit late to the party so if I repeat what you have already been told I apologize.
When you use a single G30 at a fixed XY location you are setting the Z=0 Datum.
For the fixed XY location I suggest using the center of the bed.
It is important to do this when creating your height map and when loading your height map.
Now setting the Z=0 Datum can be done as part of homing Z or homing ALL as long as it occurs before creating the height map or before loading the height map.
If you change Z probe settings in either M558 or G31 it would be best to create a new height map.
If you change the XY point you use when setting the Z=0 Datum you should also create a new height map.
Frederick
-
@juliann ok so quite a lot of variation across the bed is shown by the height map.
Try adding a single G30 at the bed centre into your start gcode before you load the height map and see if it if makes it more consistent (it might not be exactly right and still need baby stepping. its more about seeing if the amount of baby stepping needed changes.
-
-
-
After following your instructions I think I got an improvement because now there is not a baby stepping variation anymore between different runs of the same print.
But... always there is a but... if I turn off and on the printer and then try to print anything, all the calibration is gone, so I need to recalibrate the baby steps again to get those nice first layers that I used to have.Thanks again!
Julián. -
@juliann said in Unreliable Z height calibration on V-Core 3 w/BLtouch & Mini 5+:
After following your instructions I think I got an improvement because now there is not a baby stepping variation anymore between different runs of the same print.
But... always there is a but... if I turn off and on the printer and then try to print anything, all the calibration is gone, so I need to recalibrate the baby steps again to get those nice first layers that I used to have.Thanks again!
Julián.If you find you need to adjust baby-stepping once at power on and then it works fine you should be able change the Z Trigger Height parameter in G31 by the same amount.
If you are baby-stepping closer (a negative value) add the absolute of that value to the Z Trigger height parameter.
If you are baby-stepping away (a positive value) subtract that value from the Z Trigger height parameter.
Recall that increasing the Z Trigger Height parameter will result in the nozzle ending up closer to the bed.
In any case when you change G31 you need to be sure it is executed to have the changes take effect.
Frederick
-
Sorry for the delay, I did a lot of tests! After applying all the tweaks you gave me the Z height improved a lot, I have a new printer!
There is just one specific and persistent issue which is only present after powering on the printer.
Its behaviour is the following:
- The printer is already calibrated and all previous prints were perfectly fine.
- Power off and power on the printer
- I try to print anything and the first layer is much more closer to the bed that usual.
- Cancel that print (Emergency stop on DWC) and clean the bed
- so I print again the same file without touching any setting and now the first layer is perfect again.... (and of course I can continue printing without issues)
What I am missing?
Thanks a lot for all the help!
Julián. -
Hi,
Well clearly something is being done under those circumstances that is not being done on power up and thus some setting is not getting set correctly.
Do you have any of the following files in your Sys folder:
- cancel.g
- pause.g
- stop.g
If you do please post them here using the </> tag.
Frederick
-
Thank you very much Frederick!
No, I don't have any of these files in my system folder.
Julián.
-
@juliann said in Unreliable Z height calibration on V-Core 3 w/BLtouch & Mini 5+:
Thank you very much Frederick!
No, I don't have any of these files in my system folder.
Julián.
Hmm...
I don't know all the "side effects" of hitting "Emergency Stop".
It's possible that, in the code executed at the start of a print, the order of execution is incorrect.
Here is a very simple, artificial example of what I am getting at using just two commands:
M703 T0
The command M703 will fail if a tool is not selected but the tool is not selected by the T0 command until after the M703 command has already failed.
If I execute that same pair of commands a second time the M703 will work since the tool is now selected.
So if you could post the first 20 lines or so of a file that doesn't print after power on but prints the second time perhaps we can see something.
Frederick
-
Hi Frederick,
This is a fragment of the file I am printing today, of course the behaviour is still the same, after cancelling the first try now it is printing perfectly.
About M703 and T0, I executed them but I didn't get any event or error.
Thanks again!
Julián.; ; external perimeters extrusion width = 0.45mm ; perimeters extrusion width = 0.45mm ; infill extrusion width = 0.42mm ; solid infill extrusion width = 0.42mm ; top infill extrusion width = 0.40mm ; first layer extrusion width = 0.42mm M140 S80 ; set bed temperature G10 P0 R265 ; sets the standby temperature G10 P0 S267 ; set temperature ;TYPE:Custom G28 ; home all axes G1 Z5 F5000 ; lift nozzle M107 G21 ; set units to millimeters G90 ; use absolute coordinates M82 ; use absolute distances for extrusion G92 E0 ; Filament gcode G1 X250 Y250 G30 M290 R0 S-0.12 G29 S1 G10 P0 S267 ; set temperature M116 ; wait for temperature to be reached M190 S80 ; set bed temperature and wait for it to be reached M107 ;LAYER_CHANGE ;Z:0.25 ;HEIGHT:0.25 ; 0.2mm layer, 8 bands 5mm each, total height 40mm ; G1 Z0.25 F18000 G1 E-0.3 F3600 G1 X225.081 Y213.029 F18000 G1 E0 F3000 ;TYPE:Skirt ;WIDTH:0.42 G1 F600 G1 X226.211 Y211.864 E0.05129 G1 X226.84 Y211.385 E0.07628 G1 X227.733 Y210.982 E0.10725 G1 X228.699 Y210.814 E0.13823 G1 X271.124 Y210.809 E1.47905 G1 X271.771 Y210.864 E1.49958 G1 X272.401 Y211.025 E1.52011
-
I didn't mean for you to do anything with the T0 and M703 commands, it was just to illustrate that the order of code can lead to things failing the first time but working after that.
Thanks for the code you posted.
Since that code executed G28 could you post your homeall.g file.
Where did the setup code (the code before the layer change comment) come from? It's a bit unusual.
That code also includes a M290 to set baby-stepping. What is that there?
Thanks.
Frederick
-
Oh I got it, sorry, I am still in the beginner area of 3d printing
Superslicer Filament start and end gcodes:
G1 X250 Y250 G30 M290 R0 S-0.12 G29 S1
Superslicer end gcode
; Filament-specific end gcode ;END gcode for filament
Superslicer Printer Custom gcodes:
Start gcode
G28 ; home all axes G1 Z5 F5000 ; lift nozzle
End gcode
M104 S0 ; turn off temperature M140 S0 ; turn off bed G28 X0 ; home X axis M84 ; disable motors M999
As I can't find all other commands on the settings pages of the SuperSlicer 2.3.57, honestly I am not sure if they were generated by the slicer itself.
homeall.g
; BLTouch ;M280 P0 S160 ; Precautionary alarm release M280 P0 S160 ; Ensure the pin is raised G91 ; relative positioning G1 H2 Z10 F6000 ; lift Z relative to current position ;G91 ; relative positioning ;G1 H2 Z5 F6000 ; lift Z relative to current position G1 H1 X-505 Y505 F3600 ; move quickly to X and U axis endstops and stop there (first pass) G1 H1 X-505 F1800 ; move quickly to X and U axis endstops and stop there (first pass) G1 H1 Y505 F1800 ; move quickly to X and U axis endstops and stop there (first pass) ;G1 H2 X5 Y-5 F6000 ; go back a few mm G1 H1 X-505 Y505 F360 ; move slowly to X and U axis endstops once more (second pass) G1 H1 X-505 F360 ; move slowly to X and U axis endstops once more (second pass) G1 H1 Y505 F360 ; move slowly to X and U axis endstops once more (second pass) G90 ; absolute positioning G1 X250 Y250 F10000 ; go to first probe point G30 ; home Z by probing the bed G91 ; relative positioning G1 Z10 F1800 ; lift Z relative to current position G90 ; absolute positioning G1 X0 Y35 F10000 ;G29 S1
Thank you very much!
Julián. -
Thanks.
Now I am even more confused.
Where did that code come from? Did you create it yourself?
You mentioned different sections of SuperSlicer code. Did you decide what code went into what section?
The code in the Filament Start and Start sections doesn't seem right.
This is what I think your homeall.g file should look like but it's hard to be sure as what you posted was a mixture of approaches to homing.
M402 ; Ensure pin is raised - when you use M402 the firmware knows the pin should be raised G91 ; relative positioning G1 H2 Z10 F6000 ; lift Z relative to current position G1 H1 X-505 F1800 ; move to X endstop (fast) G1 X5 ; backup a bit G1 H1 X-10 F360 ; move to X endstop (slow) G1 H1 Y505 F1800 ; move to Y endstop (fast) G1 Y-5 ; backup a bit G1 H1 Y10 F360 ; move to Y endstop (slow) G90 ; absolute positioning G1 X250 Y250 F10000 ; move probe to XY position for probing G30 ; home Z by probing the bed G1 Z10 F1800 ; move Z to "done homing" position G1 X0 Y35 F10000 ; move X and Y to "done homing" positions