I am working on a filament unload script. My current problem is that the script always does an auto bed leveling.
I have two scripts to test this issue:
LevelBed.gcode
:
G28 ; Auto home
G29 ; Level bed
M500 ; Save to EEPROM
Move.gcode
:
M501 ; Restore from EEPROM (try to eliminate bed leveling)
G21 ; Metric values
G90 ; Absolute positioning
G28 ; Auto home
M420 S1 ; Enable bed leveling
G1 X100 Y100 Z100 F1000 ; Move
M400 ; Finish moves
Move.gcode
does bed leveling (LevelBed.gcode
was executed before).
How is it possible to do a movement from G-code without doing automatic bed leveling?
My intention with Move.gcode
:
- Do an auto home
- Do a move to
(100, 100, 100)
The problem:
- Bed leveling happens between the
Auto Home
and theMove
. (It probes the bed at 9 points)
I think G28
Auto Home is not required for filament load/unload scripts. My donor scripts for this purpose just contained them.
I made an example script to just rotate the feeder gear and it seems to be working.
ColdExtrude.gcode
G21 ; Metric values
M83 ; Extruder relative mode
M302 S5 ; Allow extrusion above 5C
G1 E-10 F200 ; Pull back filament a bit
M400
So I cannot eliminate doing an Auto Bed Leveling sequence after G28
, but maybe I even won't need to do it :)
This question remains relevant. I'll need a good print startup code for the Cura
slicer.
It should do something like:
- Heat the bed
- Auto Home
- Auto Bed Level
- Auto Home again
- Lift up the hot-end a bit and heat it up
- Draw a prime line
I am afraid if this problem is not solved, an other Auto Bed Level sequence will be executed between the 2nd Auto Home and the hot-end lift up.
I have recently noticed that the my load/unload scripts based on ColdExtrude.gcode
are not always working. Sometimes the printer starts Auto Bed Leveling without knowing the origin position and badly hits the X/Y movement limits.
So I have to do G28
in my filament load/unload scripts, which involves an implicit Auto Bed Leveling sequence, which is time wasting.
So my question is still active:
How to do extrusion from .gcode
without implicit execution of an Auto Bed Leveling sequence?
G29
, so when you call it it will probe the bed, note that aG28
afterG29
disables bed leveling. "Follow withM420 S
to turn leveling on, or useRESTORE_LEVELING_AFTER_G28
to automatically keep leveling on afterG28
" (reference). $\endgroup$RESTORE_LEVELING_AFTER_G28
is aC
macro, I'd like to avoid FW recompilation and re-flashing. $\endgroup$M420 S
without the1
? $\endgroup$M420 S
. But as I see I even don't have to solve this problem now to move forward. $\endgroup$