Upperbottom
Active member
Solved!
Discord to the rescue! Probable cause was a rounding error. Setting position_min: -1 at [stepper_x] in printer.cfg solved the problem.
Thanks @Hagbard V2.1070 !
Well, in prepration to install a Canbus toolhead, I decided to switch to sensorless homing.
I followed the guide by Eric Zimmermann, and got the homing working*
Homing works in hot and cold state (when hot bed 110, nozzle 240, chamber temp about 50C )
BUT
When I start a print, it heats as expected and when it comes to start the print it fails with:
"Move out of range: -0.000 175.000 4.000 [0.000]"
Followed by an abort.
My machine is mostly standard with a stealthburner toolhead and it uses tap. I use orca-slicer and KAMP and the script work(ed) reliably.
Has anyone an idea where to start looking for a solution?
EDIT: upon closer analysis, something seems to be wrong in the g28 command. G28 X/Y/Z respectively work as intended, G28 by itself throws a "Move out of range" error.
EDIT2: I replaced my startup G28 with a G28 X G28 Y and G28Z...Then the print starts as expected...
EDIT3: But not really.. even after lowering the sensitivity of the x-axis, no reliable print start.. However when first doing G28 Y then G28 X it works....
this is my start script:
This is my G32
This is my Home.cfg
*I have almost the same config, so it was easy to follow,once I get prints working, I probably will have to fiddle with the stallcurrent settings, I used a "chicken" value which may be too sensitive.
Discord to the rescue! Probable cause was a rounding error. Setting position_min: -1 at [stepper_x] in printer.cfg solved the problem.
Thanks @Hagbard V2.1070 !
Well, in prepration to install a Canbus toolhead, I decided to switch to sensorless homing.
I followed the guide by Eric Zimmermann, and got the homing working*
Homing works in hot and cold state (when hot bed 110, nozzle 240, chamber temp about 50C )
BUT
When I start a print, it heats as expected and when it comes to start the print it fails with:
"Move out of range: -0.000 175.000 4.000 [0.000]"
Followed by an abort.
My machine is mostly standard with a stealthburner toolhead and it uses tap. I use orca-slicer and KAMP and the script work(ed) reliably.
Has anyone an idea where to start looking for a solution?
EDIT: upon closer analysis, something seems to be wrong in the g28 command. G28 X/Y/Z respectively work as intended, G28 by itself throws a "Move out of range" error.
EDIT2: I replaced my startup G28 with a G28 X G28 Y and G28Z...Then the print starts as expected...
EDIT3: But not really.. even after lowering the sensitivity of the x-axis, no reliable print start.. However when first doing G28 Y then G28 X it works....
this is my start script:
Code:
[gcode_macro PRINT_START]
# Use PRINT_START for the slicer starting script - please customise for your slicer of choice
gcode:
# Parameters
{% set bedtemp = params.BED|float %}
{% set hotendtemp = params.EXTRUDER|float %}
; {% set chambertemp = params.CHAMBER|default(0)|float %}
M118 Set bedtemp ;checkmessage
M190 S{bedtemp} ;checkmessage
M118 set nozzle 150;checkmessage
M109 S150 ; set hotend to 150 for TAP
SKEW_PROFILE LOAD=CaliFlower ;skew compensation
G32 ; home all axes, QGL, MESH
G28 Z ;rehome z so mesh is on 0
STATUS_MESHING
BED_MESH_CLEAR
BED_MESH_CALIBRATE
M109 S{hotendtemp}
G90 ; absolute positioning
G1 Z20 F3000 ; move nozzle away from bed
VORON_PURGE
# BED_MESH_PROFILE LOAD=default
STATUS_BUSY
This is my G32
Code:
[gcode_macro G32]
gcode:
SAVE_GCODE_STATE NAME=STATE_G32
G90
G28
QUAD_GANTRY_LEVEL
PARK
RESTORE_GCODE_STATE NAME=STATE_G32
This is my Home.cfg
Code:
# Note you may need to add the following to your printer.cfg somewhere (without the comments of course) for the Kinematic position stuff below to work.
#[force_move]
#enable_force_move: True
[gcode_macro _HOME_X]
gcode:
# Home
{% set RUN_CURRENT_X = printer.configfile.settings['tmc2209 stepper_x'].run_current|float %}
{% set RUN_CURRENT_Y = printer.configfile.settings['tmc2209 stepper_y'].run_current|float %}
{% set HOME_CURRENT = 0.49 %}
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CURRENT}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CURRENT}
SET_KINEMATIC_POSITION X=15
G91
G1 X-15 F1200
#G4 P2000
#M400 to finish all pending moves/process the buffer
M400
G28 X
# Move away
G91
G1 X-15 F1200
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CURRENT_X}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CURRENT_Y}
[gcode_macro _HOME_Y]
gcode:
{% set RUN_CURRENT_X = printer.configfile.settings['tmc2209 stepper_x'].run_current|float %}
{% set RUN_CURRENT_Y = printer.configfile.settings['tmc2209 stepper_y'].run_current|float %}
{% set HOME_CURRENT = 0.49 %}
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CURRENT}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CURRENT}
SET_KINEMATIC_POSITION Y=15
G91
G1 Y-15 F1200
#G4 P2000
#M400 to finish all pending moves/process the buffer
M400
# Home
G28 Y
# Move away
G91
G1 Y-15 F1200
# Wait just a second… (give StallGuard registers time to clear)
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CURRENT_X}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CURRENT_Y}
[homing_override]
axes: xyz
gcode:
{% set home_all = 'X' not in params and 'Y' not in params and 'Z' not in params %}
SET_KINEMATIC_POSITION Z=1
G1 Z4 F1200
{% if home_all or 'X' in params %}
_HOME_X
{% endif %}
{% if home_all or 'Y' in params %}
_HOME_Y
{% endif %}
{% if home_all or 'Z' in params %}
G90
G1 X175 Y175 F15000
G28 Z
G1 Z10 F1500
{% endif %}
[gcode_macro _CG28]
description: Homing only if necessary
gcode:
{% if "xyz" not in printer.toolhead.homed_axes %}
G28
{% endif %}
*I have almost the same config, so it was easy to follow,once I get prints working, I probably will have to fiddle with the stallcurrent settings, I used a "chicken" value which may be too sensitive.
Last edited: