;M98 P"mmu/lib/globals.g" ;M98 P"mmu/settings.g" ; generated/free-endstop.g var output = "mmu/lib/generated/free-endstop.g" echo >{var.output} "; THIS FILE IS AUTO-GENERATED!!! Do not edit, your changes WILL be overwritten next time you run mmu/generate.g again!" echo >>{var.output} "; disassociate the pin first" echo >>{var.output} "M950 J" ^ global.mmu_selector_trigger ^ "C""nil"" ; unassign the selector triger pin definition." echo >>{var.output} "M581 T" ^ global.mmu_selector_trigger ^ "P-1 ; delete the trigger for the mmu selector" echo >>{var.output} "M574 " ^ global.mmu_selector_axis ^ 0 ^ "; declare that the selector axis has no endstop." echo >>{var.output} "M574 " ^ global.mmu_extruder_axis ^ 0 ^ "; declare that the mmu extruder axis has no endstop." echo >>{var.output} "if fileexists(""/sys/trigger" ^ global.mmu_encoder_trigger ^ ".g"") ; if we have a sys/triggerX.g file" echo >>{var.output} " M30 {""/sys/trigger" ^ global.mmu_selector_trigger ^ ".g""} ; delete it." ; generated/buzz.g set var.output = "mmu/lib/generated/buzz.g" echo >{var.output} "; THIS FILE IS AUTO-GENERATED!!! Do not edit, your changes WILL be overwritten next time you run mmu/generate.g again!" echo >>{var.output} "G91 ; switch to relative movement." echo >>{var.output} "G92 " ^ global.mmu_extruder_axis ^ "0 ; Null the MMU extruder axis." echo >>{var.output} "G1 F" ^ global.mmu_extruder_slow_speed ^ " " ^ global.mmu_extruder_axis ^ "5 ; slowly go forward 5 millimeters." echo >>{var.output} "M400 ; wait for the command to end." echo >>{var.output} "G1 F" ^ global.mmu_extruder_slow_speed ^ " " ^ global.mmu_extruder_axis ^ "-5 ; slowly go backwards 5 millimeters again." echo >>{var.output} "M400 ; wait again." echo >>{var.output} "M84 " ^ global.mmu_extruder_axis ^ " ; turn off the extruder axis." echo >>{var.output} "G90 ; return to absolute movement." ; generated/home.g set var.output = "mmu/lib/generated/home.g" echo >{var.output} "; THIS FILE IS AUTO-GENERATED!!! Do not edit, your changes WILL be overwritten next time you run mmu/generate.g again!" echo >>{var.output} "M98 P""mmu/lib/assert-empty.g""" echo >>{var.output} "M98 P""mmu/lib/generated/free-endstop.g""" echo >>{var.output} "M98 P""mmu/lib/disengage.g""" echo >>{var.output} "M584 P{#move.axes} ; allow operating on MMU axes" echo >>{var.output} "set global.mmu_extruder_loaded = false" echo >>{var.output} "G91" echo >>{var.output} "M574 S1 " ^ global.mmu_selector_axis ^ "1" ^ " P""" ^ global.mmu_selector_endstop_pin ^ """" echo >>{var.output} "G1 H1 F6000 " ^ global.mmu_selector_axis ^ -global.mmu_selector_axis_max - 5 echo >>{var.output} "M98 P""mmu/lib/assert-endstop.g""" echo >>{var.output} "G1 F6000 " ^ global.mmu_selector_axis ^ "5" echo >>{var.output} "G1 H1 F300 " ^ global.mmu_selector_axis ^ -10 echo >>{var.output} "M98 P""mmu/lib/assert-endstop.g""" echo >>{var.output} "M574 " ^ global.mmu_selector_axis ^ 0 echo >>{var.output} "G90" echo >>{var.output} "M98 P""mmu/lib/generated/select.g"" S0 H1" echo >>{var.output} "M584 P{#move.axes - 2} ; hide MMU axes" ; generated/init.g set var.output = "mmu/lib/generated/init.g" echo >{var.output} "; THIS FILE IS AUTO-GENERATED!!! Do not edit, your changes WILL be overwritten next time you run mmu/generate.g again!" echo >>{var.output} "M98 P""mmu/lib/globals.g"" ; initialize all global variables." echo >>{var.output} "M98 P""mmu/settings.g"" ; overwrite gobal default values with printer-specifics." echo >>{var.output} "M98 P""" ^ global.mmu_selector_file ^ """ ; restore selector state." echo >>{var.output} "M950 S" ^ global.mmu_servo_num ^ " C""" ^ global.mmu_servo_pin ^ """" echo >>{var.output} "M906 " ^ global.mmu_extruder_axis ^ global.mmu_extruder_current ^ " " ^ global.mmu_selector_axis ^ global.mmu_selector_current echo >>{var.output} "M350 " ^ global.mmu_extruder_axis ^ global.mmu_extruder_microsteps ^ " " ^ global.mmu_selector_axis ^ global.mmu_selector_microsteps echo >>{var.output} "M92 " ^ global.mmu_extruder_axis ^ global.mmu_extruder_steps ^ " " ^ global.mmu_selector_axis ^ global.mmu_selector_steps echo >>{var.output} "M201 " ^ global.mmu_extruder_axis ^ global.mmu_extruder_accel ^ " " ^ global.mmu_selector_axis ^ global.mmu_selector_accel echo >>{var.output} "M203 " ^ global.mmu_extruder_axis ^ 24000 ^ " " ^ global.mmu_selector_axis ^ 24000 echo >>{var.output} "M208 S1 " ^ global.mmu_selector_axis ^ global.mmu_selector_axis_min ^ " " ^ global.mmu_extruder_axis ^ "-9999" echo >>{var.output} "M208 S0 " ^ global.mmu_selector_axis ^ global.mmu_selector_axis_max ^ " " ^ global.mmu_extruder_axis ^ "9999" echo >>{var.output} "M591 D0 S0 P0" echo >>{var.output} "M98 P""mmu/lib/filament-runout.g""" ; generated/load.g set var.output = "mmu/lib/generated/load.g" echo >{var.output} "; THIS FILE IS AUTO-GENERATED!!! Do not edit, your changes WILL be overwritten next time you run mmu/generate.g again!" echo >>{var.output} "M98 R1" echo >>{var.output} "if state.macroRestarted" echo >>{var.output} " if !global.mmu_extruder_loaded" echo >>{var.output} " var err = ""Filament not yet loaded: T"" ^ global.mmu_selector_pos" echo >>{var.output} " if state.status == ""processing""" echo >>{var.output} " echo var.err" echo >>{var.output} " M291 P{var.err} R""Load Filament"" S1 T0" echo >>{var.output} " M98 R1" echo >>{var.output} " M226" echo >>{var.output} " M99" echo >>{var.output} "if global.mmu_extruder_loaded" echo >>{var.output} " echo ""Extruder already loaded, skipping; restarted="" ^ state.macroRestarted" echo >>{var.output} " M99" echo >>{var.output} "if global.mmu_selector_pos == -1" echo >>{var.output} " abort ""Home selector first""" echo >>{var.output} "M98 P""mmu/lib/assert-empty.g""" echo >>{var.output} "M98 P""mmu/lib/engage.g""" echo >>{var.output} "G91" echo >>{var.output} "M584 P{#move.axes} ; enable axes, we need them" echo >>{var.output} "M98 P""mmu/lib/generated/free-endstop.g""" echo >>{var.output} "M574 A0" echo >>{var.output} "M574 S1 " ^ global.mmu_extruder_axis ^ "2" ^ " P""" ^ global.mmu_filament_sensor_pin ^ """ ; Endstop Configuration. Microswitch (S1), High End (2)" echo >>{var.output} "M208 S1 " ^ global.mmu_extruder_axis ^ "-9999 ; max travel to minimum -10m" echo >>{var.output} "M208 S0 " ^ global.mmu_extruder_axis ^ "9999 ; max travel to maximum +10m" echo >>{var.output} "G91 ; set to relative moves" echo >>{var.output} "G1 H1 F" ^ global.mmu_extruder_fast_speed ^ " " ^ global.mmu_extruder_axis ^ 50 ^ " ; run for up to 50mm waiting for the endstop to trigger." echo >>{var.output} "M98 P""mmu/lib/assert-selector-loaded.g""" echo >>{var.output} "G92 " ^ global.mmu_extruder_axis ^ "0" echo >>{var.output} "M98 P""mmu/lib/generated/free-endstop.g""" echo >>{var.output} "M574 A0" echo >>{var.output} "M574 S1 " ^ global.mmu_extruder_axis ^ "2" ^ " P""" ^ global.mmu_extruder_runout_pin ^ """ ; Endstop Configuration. Microswitch (S1), High End (2)" echo >>{var.output} "M208 S1 " ^ global.mmu_extruder_axis ^ "-9999" echo >>{var.output} "M208 S0 " ^ global.mmu_extruder_axis ^ "9999" echo >>{var.output} "G1 H1 F" ^ global.mmu_extruder_fast_speed ^ " " ^ global.mmu_extruder_axis ^ global.mmu_bowden_length ^ " ; fast load the filament to the extruder runout sensor." echo >>{var.output} "G1 F" ^ global.mmu_extruder_load_speed ^ " " ^ global.mmu_extruder_axis ^ -10 ^ " ; back off slightly." echo >>{var.output} "G1 H1 " ^global.mmu_extruder_axis ^ 20 ^ " ; slowly feed again for more precision." echo >>{var.output} "M574 " ^ global.mmu_extruder_axis ^ 0 ^ " ; Disconnect endstop" echo >>{var.output} "M98 P""mmu/lib/generated/load-extruder.g""" echo >>{var.output} "if !global.mmu_extruder_loaded" echo >>{var.output} " var errmsg = ""Load into extruder not detected: T"" ^ global.mmu_selector_pos" echo >>{var.output} " if state.status == ""processing""" echo >>{var.output} " echo var.errmsg" echo >>{var.output} " M291 P{var.errmsg} R""Load Filament"" S1 T0" echo >>{var.output} " M98 R1" echo >>{var.output} " M226" echo >>{var.output} " else" echo >>{var.output} " abort var.errmsg" echo >>{var.output} "M98 P""mmu/lib/disengage.g""" echo >>{var.output} "G90" ; generated/load-extruder.g set var.output = "mmu/lib/generated/load-extruder.g" echo >{var.output} "; THIS FILE IS AUTO-GENERATED!!! Do not edit, your changes WILL be overwritten next time you run mmu/generate.g again!" echo >>{var.output} "if global.mmu_extruder_loaded && (!exists(param.F) || param.F != 1)" echo >>{var.output} " echo ""Cannot load extruder while already loaded; restarted="" ^ state.macroRestarted" echo >>{var.output} " M99" echo >>{var.output} "G91" echo >>{var.output} "G92 " ^ global.mmu_extruder_axis ^ "0" ^ " ; Null the mmu extruder." echo >>{var.output} "G1 " ^ global.mmu_extruder_axis ^ global.mmu_sensor_extruder_gears_length ^ " E" ^ global.mmu_sensor_extruder_gears_length ^ " ; filament: runout sensor -> extruder. Spin extruder as well to prevent the filament from going elsewhere" echo >>{var.output} "G1 F" ^ global.mmu_extruder_load_speed ^ " E" ^ {global.mmu_extruder_gear_diameter + 10} ^ " " ^ global.mmu_extruder_axis ^ {global.mmu_extruder_gear_diameter + 10} echo >>{var.output} "M400" echo >>{var.output} "M98 P""mmu/lib/disengage.g""" echo >>{var.output} "G1 F" ^ global.mmu_extruder_load_speed ^ " E" ^ {global.mmu_extruder_to_park_length - (global.mmu_extruder_gear_diameter + 10)} ^ " ; bring filament to park position." echo >>{var.output} "M400" echo >>{var.output} "M584 P{#move.axes - 2} ; hide MMU axes" echo >>{var.output} "set global.mmu_extruder_loaded = true" echo >>{var.output} "T{global.mmu_tool_number}" echo >>{var.output} "G90" echo >>{var.output} "M98 P""mmu/lib/save-selector-state.g""" echo >>{var.output} "M98 P""mmu/lib/filament-runout.g""" ; generated/load-lane.g set var.output = "mmu/lib/generated/load-lane.g" echo >{var.output} "; THIS FILE IS AUTO-GENERATED!!! Do not edit, your changes WILL be overwritten next time you run mmu/generate.g again!" echo >>{var.output} "; this macro initially loads a lane. That means it starts spinning the MMU extruder until the filament sensor trips," echo >>{var.output} "; then moves the filament back so it sits flush with the selector lane, allowing the selector to move." echo >>{var.output} "M98 P""mmu/lib/assert-empty.g""" echo >>{var.output} "M98 P""mmu/lib/generated/free-endstop.g""" echo >>{var.output} "M98 P""mmu/lib/engage.g""" echo >>{var.output} "M584 P{#move.axes} ; allow operating on MMU axes" echo >>{var.output} "set global.mmu_extruder_loaded = false ; we asserted before that we are empty, so we are currently obviously not loaded." echo >>{var.output} "M574 S1 " ^ global.mmu_extruder_axis ^ "2" ^ " P""" ^ global.mmu_filament_sensor_pin ^ """ ; Endstop Configuration. Microswitch (S1), High End (2)" echo >>{var.output} "M208 S1 " ^ global.mmu_extruder_axis ^ "-9999 ; max travel to minimum -10m" echo >>{var.output} "M208 S0 " ^ global.mmu_extruder_axis ^ "9999 ; max travel to maximum +10m" echo >>{var.output} "G91 ; set to relative moves" echo >>{var.output} "G1 H1 F600 " ^ global.mmu_extruder_axis ^ 600 ^ " ; run for up to 60cm waiting for the endstop to trigger." echo >>{var.output} "M98 P""mmu/lib/assert-endstop.g""" echo >>{var.output} "G1 F6000 " ^ global.mmu_extruder_axis ^ -15 echo >>{var.output} "M400" ; Wait echo >>{var.output} "G92 " ^ global.mmu_extruder_axis ^ 0 ^ " ; Null Selector-Extruder again" echo >>{var.output} "M574 " ^ global.mmu_extruder_axis ^ 0 ^ " ; Disconnect endstop" echo >>{var.output} "M18 " ^ global.mmu_extruder_axis ^ " ; turn off extruder power - we don't need it afterwards." echo >>{var.output} "M98 P""mmu/lib/disengage.g""" echo >>{var.output} "M584 P{#move.axes - 2} ; hide MMU axes" ; generated/select.g set var.output = "mmu/lib/generated/select.g" echo >{var.output} "; THIS FILE IS AUTO-GENERATED!!! Do not edit, your changes WILL be overwritten next time you run mmu/generate.g again!" echo >>{var.output} "if global.mmu_selector_pos == -1 && (!exists(param.H) || param.H != 1)" echo >>{var.output} " abort ""Home selector first""" echo >>{var.output} "if !exists(param.S)" echo >>{var.output} " abort ""No Slot selected""" echo >>{var.output} "if !exists(param.H) || param.H != 1" echo >>{var.output} " M98 P""mmu/lib/assert-empty.g""" echo >>{var.output} "if global.mmu_servo_engaged" echo >>{var.output} " M98 P""mmu/lib/disengage.g""" echo >>{var.output} "M584 P{#move.axes} ; allow operating on MMU axes" echo >>{var.output} "var axis = -1" echo >>{var.output} "while var.axis == -1" echo >>{var.output} " if iterations >= #move.axes" echo >>{var.output} " break" echo >>{var.output} " if move.axes[iterations].letter == global.mmu_selector_axis" echo >>{var.output} " set var.axis = iterations" echo >>{var.output} "if var.axis == -1" echo >>{var.output} " abort ""Cannot find selector axis""" echo >>{var.output} "G90" echo >>{var.output} "var slot_position = (param.S * global.mmu_slot_spacing) " echo >>{var.output} "if var.slot_position > global.mmu_selector_axis_max" echo >>{var.output} " abort ""Selected Slot "" ^ param.S ^ "" would move selector beyond its length of "" ^ global.mmu_selector_axis_max ^ ""!""" echo >>{var.output} "set global.mmu_selector_pos = param.S" echo >>{var.output} "G92 " ^ global.mmu_selector_axis ^ "{move.axes[var.axis].userPosition}" echo >>{var.output} "G1 F18000 " ^ global.mmu_selector_axis ^ "{var.slot_position}" echo >>{var.output} "M84 " ^ global.mmu_selector_axis echo >>{var.output} "M98 P""mmu/lib/save-selector-state.g""" echo >>{var.output} "M98 P""mmu/lib/filament-runout.g""" echo >>{var.output} "M584 P{#move.axes - 2} ; hide MMU axes" ; generated/unload-selector.g set var.output = "mmu/lib/generated/unload-selector.g" echo >{var.output} "; THIS FILE IS AUTO-GENERATED!!! Do not edit, your changes WILL be overwritten next time you run mmu/generate.g again!" echo >>{var.output} "M98 R1" echo >>{var.output} "if state.macroRestarted" echo >>{var.output} " if !global.mmu_extruder_loaded" echo >>{var.output} " if state.status == ""processing""" echo >>{var.output} " M291 P{""Filament not yet loaded: T"" ^ global.mmu_selector_pos} R""Load Filament"" S1 T0" echo >>{var.output} " M98 R1" echo >>{var.output} " M226" echo >>{var.output} " M99" echo >>{var.output} "M98 P""mmu/lib/engage.g""" echo >>{var.output} "M98 P""mmu/lib/generated/free-endstop.g""" echo >>{var.output} "M584 P{#move.axes} ; allow operating on MMU axes" echo >>{var.output} "G91" echo >>{var.output} "M574 S1 " ^ global.mmu_extruder_axis ^ "2" ^ " P""!" ^ global.mmu_filament_sensor_pin ^ """" echo >>{var.output} "M208 S1 " ^ global.mmu_extruder_axis ^ "-9999" echo >>{var.output} "M208 S0 " ^ global.mmu_extruder_axis ^ "9999" ;echo >>{var.output} "G1 F" ^ global.mmu_extruder_fast_speed ^ " " ^ global.mmu_extruder_axis ^ "-10" ;echo >>{var.output} "G1 F" ^ global.mmu_extruder_fast_speed ^ " " ^ global.mmu_extruder_axis ^ "-30 E30" echo >>{var.output} "G1 H1 F" ^ global.mmu_extruder_fast_speed ^ " " ^ global.mmu_extruder_axis ^ -7000 echo >>{var.output} "G1 F6000 " ^ global.mmu_extruder_axis ^ -15 echo >>{var.output} "M98 P""mmu/lib/assert-endstop.g""" echo >>{var.output} "M574 S1 " ^ global.mmu_extruder_axis ^ 0 echo >>{var.output} "M400" echo >>{var.output} "G92 " ^ global.mmu_extruder_axis ^ 0 echo >>{var.output} "M84 " ^ global.mmu_extruder_axis echo >>{var.output} "M98 P""mmu/lib/disengage.g""" echo >>{var.output} "set global.mmu_extruder_loaded = false" echo >>{var.output} "M98 P""mmu/lib/save-selector-state.g""" echo >>{var.output} "M584 P{#move.axes - 2}"