Need to lower the nozzle
-
Hi,
You use the </> tag.
Frederick
; 0:/macros/Save-Z ; This macro adds the current babystep offset to the Z trigger height and saves it to config-overide.g ; ! M501 needs to be in config.g to automatically be recalled on reset. If using multiple filament settings, ; and this is for a specific filament type, recommend placing this yielded information in the filament's config.g. if move.axes[2].babystep !=0 ; If no babysteps are currently adjusted - exit routine echo {"OLD: " ^ sensors.probes[0].triggerHeight ^ " NEW: " ^ sensors.probes[0].triggerHeight + (move.axes[2].babystep * -1)} G31 Z{sensors.probes[0].triggerHeight - move.axes[2].babystep} echo {"Place either M501 -or- G31 Z" ^ sensors.probes[0].triggerHeight^ " in your config.g"} M500 P10:31 ; save settings to config-overide.g - G31 P31 saves trigger height, ; trigger value, and X and Y offsets for each possible Z probe type ; P10 parameter saves the G10 tool offsets. M290 R0 S0 ; clear babystepping else echo "Baby stepping is not currently employed, exiting."
-
; 0:/macros/Save-Z ; This macro adds the current babystep offset to the Z trigger height and saves it to config-overide.g ; ! M501 needs to be in config.g to automatically be recalled on reset. If using multiple filament settings, ; and this is for a specific filament type, recommend placing this yielded information in the filament's config.g. if move.axes[2].babystep !=0 ; If no babysteps are currently adjusted - exit routine echo {"OLD: " ^ sensors.probes[0].triggerHeight ^ " NEW: " ^ sensors.probes[0].triggerHeight + (move.axes[2].babystep * -1)} G31 Z{sensors.probes[0].triggerHeight - move.axes[2].babystep} echo {"Place either M501 -or- G31 Z" ^ sensors.probes[0].triggerHeight^ " in your config.g"} M500 P10:31 ; save settings to config-overide.g - G31 P31 saves trigger height, ; trigger value, and X and Y offsets for each possible Z probe type ; P10 parameter saves the G10 tool offsets. M290 R0 S0 ; clear babystepping else echo "Baby stepping is not currently employed, exiting."
-
-
One last comment .... the previous huge error in the Z offset was probably caused by the interaction of the macro with internal Z values of the Duet. See the post from yufanyufan here https://forum.duet3d.com/topic/16328/baby-stepping-can-it-or-can-it-not-be-permanent/55
One needs to be careful about using this macro as there is some strange interaction happening that I don't quite follow yet.
I recommend rebooting the Duet after running the macro so that everything is in sync. If you don't reboot but then home z, weird stuff happens. -
@jens55, So one run of the macro is ok, but multiple runs are not ok?
Did you happen to home between runs?
I never ran it multiple times. Good call on M290 R0 S0 .
-
With the updated macro, multiple runs seem to be ok but there is still an issue as reported in this thread :
https://forum.duet3d.com/topic/16328/baby-stepping-can-it-or-can-it-not-be-permanent/55?_=1596951896532
I now believe that an incorrect Z offset value is stored if the macro is run while the printer is doing a regular print job.
I have run out of time for the day and tomorrow to go any further on the diagnosis. -
The M290 R0 Z0 is courtesy of owenD and wasn't my call.
-
@jens55 Ok, so the only change was the M290 R0 Z0?
-
No, I also changed line 9 as it resulted in an incorrect echo output for setting the Z offset in config.g.
-
@jens55 Ah yes, since it got changed in the line above....
Good catch! -
Exactly ... and thank you
-
@jens55, Maybe until it is sorted - the macro should just state what to change in the config.g to be safe:
; 0:/macros/Save-Z ; This macro adds the current babystep offset to the Z trigger height and saves it to config-overide.g ; ! M501 needs to be in config.g to automatically be recalled on reset. If using multiple filament settings, ; and this is for a specific filament type, recommend placing this yielded information in the filament's config.g. if move.axes[2].babystep !=0 ; If no babysteps are currently adjusted - exit routine echo {"OLD: " ^ sensors.probes[0].triggerHeight ^ " NEW: " ^ sensors.probes[0].triggerHeight + (move.axes[2].babystep * -1)} ;G31 Z{sensors.probes[0].triggerHeight - move.axes[2].babystep} echo {"Place either M501 -or- G31 Z" ^ sensors.probes[0].triggerHeight^ " in your config.g"} ;M500 P10:31 ; save settings to config-overide.g - G31 P31 saves trigger height, ; trigger value, and X and Y offsets for each possible Z probe type ; P10 parameter saves the G10 tool offsets. ;M290 R0 S0 ; clear babystepping else echo "Baby stepping is not currently employed, exiting."
This way it just tells the person what it should be changed to, without inadvertently going to China - but I'm in Japan so maybe it would work for me
Sorry about that btw - never thought of running it twice. -
Hopefully it will be sorted out quickly but I did indicate that the Duet should be reset after saving Z offset and saving should not happen while the printer is busy printing until things are sorted.
I love the concept of saving the corrected offset value though!
The rest is up to the user. Instead of 'buyer beware' it's 'user beware' -
@Kolbi said in Need to lower the nozzle:
without inadvertently going to China - but I'm in Japan so maybe it would work for me
No, you guys are hanging upside down on the world so your nozzle would end up going to North America (Hopefully missing the USA)
.... end just like that I managed to politicize the thread
-
@jens55 I do miss the USA - born there but I've been overseas for ~18 years, someday I'll go back
-
@jens55, @Baenwort, @Elvis0z, @fcwilt - I believe this is the best solution until multiple tests can be done and confirmed. This macro just lets the user know what changes to make - still pertinent as it avoids the whole adding or subtracting confusion.
; 0:/macros/Save-Z ; This macro subtracts the current babystep offset to the Z trigger height and lets the user ; know what to change the G31 command in 0:/sys/config.g to. If you are using multiple filament settings, ; and this is for a specific filament type, recommend placing this yielded information in the filament's config.g. if move.axes[2].babystep !=0 ; If no babysteps are currently adjusted - exit routine echo {"OLD: " ^ sensors.probes[0].triggerHeight ^ " NEW: " ^ sensors.probes[0].triggerHeight - move.axes[2].babystep} echo {"Edit the G31 command in your config.g to the new Z offset as: G31 Z" ^ sensors.probes[0].triggerHeight - move.axes[2].babystep} echo "After editing config.g, remember to reset machine to load new settings." else echo "Baby stepping is not currently employed, exiting."
-
Ok, that went off track faster than I thought .... I was implying that your nozzle hopefully would not end up in the USA as it is an unbelievable nasty mess at the moment !
-
@jens55 Ha - that is true, and I take no offense to such stuff
-
@jens55 Some more thoughts about this baby step macro, multiple run case
@dc42, can you give any advice on this please?-When insitu babystepping - if you issue 'M290 R0 S0', does your in the moment babystep go away? It seems that M290 R0 S0 should only be done once user is done with the print? Else will it jack it up?
-It also seems that the script should only be allowed to run once, until a fresh home of Z? Does homing Z reset babystep, or would script need to issue G31 to set new probe offset, then M290 R0 S0, and then home Z?
I'm printing now so I can't test any of this out...
Cheers,
Kolbi -
@jens55 I just tried the following code; I cycled babystep up and executed, I cycled babystep down and executed, and cycled babystep down again and executed - seemed to all work fine for me. Let me know if you guys have any problems with it, or have something better.
After a long run this morning, I thought about this macro...
What I think was happen is that after M290 R0 S0 was issued - that fixed refiguring an additional Z-offset but because M290 R0 S0 actually moves the nozzle - unless it is homed directly after, the change is not evident and then it because a death roll because the user sees it as still needing adjustment because the the new G31 has not been used yet (homed) and M290 R0 S0 moved then nozzle back.Cheers,
Kolbi; 0:/macros/Save-Z ; This macro subtracts the current babystep offset to the Z trigger height and lets the user ; know what to change the G31 command in 0:/sys/config.g to. If you are using multiple filament settings, ; and this is for a specific filament type, recommend placing this yielded information in the filament's config.g. if state.status != "processing" ; Printer is not currently printing! if move.axes[2].babystep !=0 ; If no babysteps are currently adjusted - exit routine echo {"OLD: " ^ sensors.probes[0].triggerHeight ^ " NEW: " ^ sensors.probes[0].triggerHeight - move.axes[2].babystep} echo {"Edit the G31 command in your config.g to the new Z offset as: G31 Z" ^ sensors.probes[0].triggerHeight - move.axes[2].babystep} M291 P{"Set probe offset to " ^ sensors.probes[0].triggerHeight - move.axes[2].babystep ^ ", clear babysteps, and REHOME Z?"} R"!WARNING! Do not proceed if printing!" S3 G31 Z{sensors.probes[0].triggerHeight - move.axes[2].babystep} ; set G31 Z offset to corrected M500 P10:31 ; save settings to config-overide.g - G31 P31 saves trigger height M290 R0 S0 ; set babystep to 0mm absolute G28 ; home all M291 P"Ensure M501 exists in 0:/sys/config, or manually edit the G31 Z setting, to make this change permanent." R"Note on making change permanent." S3 else echo "Baby stepping is not currently active, nothing to do." else M291 P"This would be detrimental to ongoing print, aborting." S3