Single extruder multi material issue #3860
Unanswered
Kalorado303
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I am doing "dual extruder" single nozzle on a klipperized sv06 and I am having an issue when I call for next extruder in super slicer. If I don't add M600 to the tool change g-code in the slicer the print will error out in the beginning with an extruder1 not recognized error. When I add M600 in the custom g-code it works fine but pauses after my purge line and before my print starts so I have to start the print twice. Any idea how to mitigate that?
Here is an example of a failed/error print g code w/o M600. The error says, The value "extruder 1" is not valid for EXTRUDER.
M73 P0 R1
;TYPE:Custom
M104 S0 ; Stops PS/SS from sending temp waits separately
M140 S0
PRINT_START BED=70 HOTEND=235 CHAMBER=30
PURGE_LINE
;; If you are passing variables to PRINT_START, comment out above line and uncomment the last 3 lines instead. (I already did this)
;; Guide: https://github.com/AndrewEllis93/Print-Tuning-Guide/blob/main/articles/passing_slicer_variables.md
;; Make sure the variable names match (for example if you use "EXTRUDER" instead of "HOTEND")
M107
G21 ; set units to millimeters
G90 ; use absolute coordinates
M83 ; use relative distances for extrusion
ACTIVATE_EXTRUDER EXTRUDER=extruder1
;_TOOLCHANGE 1
M104 S235 ; set temperature
M107
Here is an example of a print that works but gets paused right after the purge line due to M600 in the slicer tool change custom g code. Meaning I have to resume the print before it starts.
M73 P0 R0
;TYPE:Custom
M104 S0 ; Stops PS/SS from sending temp waits separately
M140 S0
PRINT_START BED=70 HOTEND=235 CHAMBER=30
PURGE_LINE
;; If you are passing variables to PRINT_START, comment out above line and uncomment the last 3 lines instead. (I already did this)
;; Guide: https://github.com/AndrewEllis93/Print-Tuning-Guide/blob/main/articles/passing_slicer_variables.md
;; Make sure the variable names match (for example if you use "EXTRUDER" instead of "HOTEND")
M107
G21 ; set units to millimeters
G90 ; use absolute coordinates
M83 ; use relative distances for extrusion
M600
;_TOOLCHANGE 1
M104 S235 ; set temperature
M107
Here is my macro config.
[force_move]
enable_force_move: True
NOTE If you're using a Raspberry Pi, you can uncomment the next 2 lines, optionally.
[temperature_sensor raspberry_pi]
sensor_type: temperature_host
NOTE If you're using a an Orange Pi, you can uncomment the next 2 lines, optionally.
[temperature_sensor Orange_Pi]
sensor_type: temperature_host
sensor_path: /sys/class/thermal/thermal_zone0/temp
[virtual_sdcard]
path: /home/pi/printer_data/gcodes
NOTE Cancel objects feature is enabled. If you're using a low powered device, comment out [exclude_object].
Also see [file_manager] section in moonraker.conf.
[exclude_object]
[pause_resume]
[display_status]
[delayed_gcode DISABLEFILAMENTSENSOR]
initial_duration: 1
gcode:
SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0
[gcode_macro _globals]
variable_filament_sensor_enabled: 0 # NOTE Enable(1) or disable(0) the filament sensor, if one is connected
variable_beeping_enabled: 1 # NOTE Enable(1) or disable(0) beeping everywhere except during gantry calibration
variable_pre_purge_prime_length: 1.4
gcode:
SET_GCODE_VARIABLE MACRO=_globals VARIABLE=pre_purge_prime_length VALUE={ variable_pre_purge_prime_length }
SET_GCODE_VARIABLE MACRO=_globals VARIABLE=filament_sensor_enabled VALUE={ variable_filament_sensor_enabled }
SET_GCODE_VARIABLE MACRO=_globals VARIABLE=beeping_enabled VALUE={ variable_beeping_enabled }
[gcode_macro CONDITIONAL_BEEP]
gcode:
# Parameters
{% set i = params.I|default(1)|int %} ; Iterations (number of times to beep).
{% set dur = params.DUR|default(100)|int %} ; Duration/wait of each beep in ms. Default 100ms.
{% set freq = params.FREQ|default(2000)|int %} ; Frequency in Hz. Default 2kHz.
[gcode_macro ADJUST_FILAMENT_SENSOR_STATUS]
gcode:
# Parameters
{% set NEWSTATUS = params.ENABLE|default(-1)|int %}
[gcode_macro M109]
rename_existing: M99109
gcode:
#Parameters
{% set s = params.S|float %}
[gcode_macro M190]
rename_existing: M99190
gcode:
#Parameters
{% set s = params.S|float %}
[gcode_macro PURGE_LINE]
gcode:
{% set PRE_PURGE_PRIME_LENGTH=printer["gcode_macro _globals"].pre_purge_prime_length|default(1.40)|float %}
ADJUST_FILAMENT_SENSOR_STATUS ENABLE=1
[gcode_macro CANCEL_PRINT]
rename_existing: BASE_CANCEL_PRINT
gcode:
SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} ; set timeout back to configured value
CLEAR_PAUSE
SDCARD_RESET_FILE
PRINT_END
BASE_CANCEL_PRINT
[gcode_macro PRINT_START]
gcode:
# Parameters
{% set bedtemp = params.BED|int %}
{% set hotendtemp = params.HOTEND|int %}
{% set chambertemp = params.CHAMBER|default(0)|int %}
[gcode_macro PRINT_END]
gcode:
ADJUST_FILAMENT_SENSOR_STATUS ENABLE=0
CONDITIONAL_BEEP I=2 DUR=30 FREQ=8500
{% set PRE_PURGE_PRIME_LENGTH=printer["gcode_macro _globals"].pre_purge_prime_length|default(1.40)|float %}
[gcode_macro LOAD_FILAMENT]
gcode:
M83 ; set extruder to relative
G1 E30 F300 ; load
G1 E15 F150 ; prime nozzle with filament
M82 ; set extruder to absolute
[gcode_macro UNLOAD_FILAMENT]
gcode:
M83 ; set extruder to relative
G1 E10 F300 ; extrude a little to soften tip
G1 E-40 F1800 ; retract some, but not too much or it will jam
M82 ; set extruder to absolute
[gcode_macro M600]
gcode:
CONDITIONAL_BEEP i=1 dur=300
CONDITIONAL_BEEP i=1 dur=100
CONDITIONAL_BEEP i=1 dur=100
PAUSE ; Pause
[gcode_macro PAUSE]
rename_existing: BASE_PAUSE
gcode:
# Parameters
{% set z = params.Z|default(10)|int %} ; z hop amount
[gcode_macro RESUME]
rename_existing: BASE_RESUME
variable_zhop: 0
variable_etemp: 0
gcode:
# Parameters
{% set e = params.E|default(2.5)|int %} ; hotend prime amount (in mm)
[gcode_macro _CG28]
Conditional homing
gcode:
{% if "xyz" not in printer.toolhead.homed_axes %}
G28
{% endif %}
[gcode_macro BEEP]
description: BEEP I=3 DUR=200 FREQ=2000: Beep 3 times, for 200ms each, at 2kHz frequency.
gcode:
# Parameters
{% set i = params.I|default(1)|int %} ; Iterations (number of times to beep).
{% set dur = params.DUR|default(100)|int %} ; Duration/wait of each beep in ms. Default 100ms.
{% set freq = params.FREQ|default(2000)|int %} ; Frequency in Hz. Default 2kHz.
And here is printer config.
This file contains pin mappings for the stock Sovol SV06.
Find installation instructions at https://github.com/bassamanator/Sovol-SV06-firmware
See https://www.klipper3d.org/Config_Reference.html for configuration reference.
[include ./cfgs/misc-macros.cfg]
[include ./cfgs/PARKING.cfg]
[include ./cfgs/MECHANICAL_GANTRY_CALIBRATION.cfg]
NOTE Uncomment the ONE of the following lines if you're using an adxl345
[include ./cfgs/adxl-rp2040.cfg]
[include ./cfgs/adxl-rpi-pico-2x.cfg]
[include ./cfgs/adxl-direct.cfg]
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command
[printer]
kinematics: cartesian
max_velocity: 200
max_accel: 3000
max_z_velocity: 15
max_z_accel: 45
square_corner_velocity: 8.0
#####################################################################
X/Y/Z Stepper Settings
#####################################################################
[stepper_x]
step_pin: PC2
dir_pin: !PB9
enable_pin: !PC3
microsteps: 128
rotation_distance: 40
endstop_pin: tmc2209_stepper_x:virtual_endstop
position_endstop: 0
position_max: 223 # NOTE You can adjust this if you have more room
homing_speed: 40
homing_retract_dist: 0
[tmc2209 stepper_x]
uart_pin: PC1
run_current: 0.860
stealthchop_threshold: 0
interpolate: False
sense_resistor: 0.150
uart_address: 3
driver_SGTHRS: 81
diag_pin: PA5
[stepper_y]
step_pin: PB8
dir_pin: PB7
enable_pin: !PC3
microsteps: 128
rotation_distance: 40
endstop_pin: tmc2209_stepper_y:virtual_endstop
position_endstop: 0
position_max: 223 # NOTE You can adjust this if you have more room
homing_speed: 40
homing_retract_dist: 0
[tmc2209 stepper_y]
uart_pin: PC0
run_current: 0.900
stealthchop_threshold: 0
interpolate: False
sense_resistor: 0.150
uart_address: 3
driver_SGTHRS: 81
diag_pin: PA6
[stepper_z]
step_pin: PB6
dir_pin: !PB5
enable_pin: !PC3
microsteps: 128
rotation_distance: 4
endstop_pin: probe:z_virtual_endstop
position_min: -4
position_max: 255 # NOTE You can adjust this if you have more room
homing_speed: 5
[tmc2209 stepper_z]
uart_pin: PA15
run_current: 1.000
stealthchop_threshold: 0
interpolate: False
sense_resistor: 0.150
uart_address: 3
diag_pin: PA7
#####################################################################
Extruder
#####################################################################
[extruder]
step_pin: PB4
dir_pin: !PB3
enable_pin: !PC3
microsteps: 128
rotation_distance: 4.65 # NOTE Calibrate e-steps and adjust https://www.klipper3d.org/Rotation_Distance.html
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA1
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC5
#control: pid
#pid_kd: 86.991
#pid_kp: 21.479
#pid_ki: 1.326
min_temp: 0
max_temp: 300
max_extrude_only_distance: 150.0
[tmc2209 extruder]
uart_pin: PC14
run_current: 0.550
stealthchop_threshold: 0
interpolate: False
sense_resistor: 0.150
uart_address: 3
#####################################################################
Bed Heater
#####################################################################
[heater_bed]
heater_pin: PA2
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC4
#control: pid
#pid_kp: 64.440
#pid_ki: 0.773
#pid_kd: 1343.571
min_temp: 0
max_temp: 110
#####################################################################
Probe Related
#####################################################################
[probe]
pin: PB1
x_offset: 27
y_offset: -20
#z_offset: 0
samples: 3
samples_result: median
samples_tolerance: 0.01
samples_tolerance_retries: 5
[safe_z_home]
home_xy_position: 84.50, 135 # NOTE The probe is at the center of the bed.
speed: 100.0
z_hop: 10
z_hop_speed: 15
[bed_mesh]
speed: 175
mesh_min: 27, 5
mesh_max: 222, 203
probe_count: 5,5
algorithm: bicubic
fade_start: 1
fade_end: 10
fade_target: 0
#####################################################################
Fans
#####################################################################
[fan]
pin: PA0
#####################################################################
Misc
#####################################################################
[display]
lcd_type: st7920
cs_pin: PB12
sclk_pin: PB13
sid_pin: PB15
encoder_pins: ^PB14, ^PB10
click_pin: ^!PB2
[bed_screws]
screw1: 26.5, 31
screw1_name: front left
screw2: 196.75, 31
screw2_name: front right
screw3: 196.75, 201
screw3_name: back right
screw4: 26.5, 201
screw4_name: back left
[screws_tilt_adjust]
screw1: 111.5, 116.5
screw1_name: center
screw2: 26.5, 31
screw2_name: front left
screw3: 196.75, 31
screw3_name: front right
screw4: 196.75, 201
screw4_name: back right
screw5: 26.5, 201
screw5_name: back left
speed: 50
horizontal_move_z: 10
screw_thread: CCW-M4
[output_pin beeper]
pin: PC6
value: 0
shutdown_value: 0
pwm: True
cycle_time: 0.0005 ; Default beeper tone in kHz. 1 / 0.0005 = 2000Hz (2kHz)
[filament_switch_sensor filament_sensor]
switch_pin: !PA4 # "Pulled-high"
pause_on_runout: True
insert_gcode:
M117 Insert Detected
{ action_respond_info("Insert Detected") }
runout_gcode:
M117 Runout Detected
{ action_respond_info("Runout Detected") }
CONDITIONAL_BEEP i=3 dur=300 freq=400
[include timelapse.cfg]
## <---------------------- SAVE_CONFIG ---------------------->
## DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
##
## [heater_bed]
## control = pid
## pid_kp = 67.695
## pid_ki = 1.240
## pid_kd = 924.031
##
## [extruder]
## control = pid
## pid_kp = 21.055
## pid_ki = 1.462
## pid_kd = 75.797
##
## [probe]
## z_offset = 2.030
##
## [bed_mesh default]
## version = 1
## points =
## 0.022031, 0.021094, 0.000312, -0.073125, -0.098594
## -0.022500, 0.015625, 0.016250, -0.045313, -0.108281
## -0.046563, 0.003594, 0.009844, -0.008750, -0.062656
## -0.068125, -0.004219, 0.014219, 0.016250, 0.013281
## -0.095313, 0.015625, 0.054062, 0.068906, 0.120625
## x_count = 5
## y_count = 5
## mesh_x_pps = 2
## mesh_y_pps = 2
## algo = bicubic
## tension = 0.2
## min_x = 27.0
## max_x = 222.0
## min_y = 5.0
## max_y = 203.0
What I can’t figure out is why SS is adding “ACTIVATE_EXTRUDER EXTRUDER=extruder1” to the g code only when I don’t add M600 to the slicer toolhead custom gcode which is resulting in the error.
Any ideas?
Beta Was this translation helpful? Give feedback.
All reactions