Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Why does custom button keeps triggering after is triggered once?

    Scheduled Pinned Locked Moved Unsolved
    Gcode meta commands
    2
    2
    183
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • SanderLPFRGundefined
      SanderLPFRG
      last edited by

      Hey All!

      I have the Orbiter V2 with Orbiter filament sensor, which has 2 button outputs, 1 triggers when filament is loaded, one is triggered by hand.

      I have configured them so that the buttons trigger macros, which execute scripts.

      i have verified the scripts to be working in a previous forum post, but when the button/ macro is triggered once, it keeps on triggering again and again..

      The only way to reset it is to restart the mainboard..

      Any ideas why this could be happening??

      Config;

      ; Custom buttons
      M950 J1 C"^io2.in"      ; define logical input for E1 filamentsensor
      M581 P1 T2 S0 R2        ; define trigger for filament auto load (trigger2.g)
      M581 P1 T4 S1 R1        ; define trigger for filament runout (trigger4.g)
      M950 J2 C"^io3.in"      ; define logical input for E1 filament unload
      M581 P2 T3 S0 R2        ; define trigger for filament auto unload (trigger3.g)
      

      Trigger2;

      ;E1 Autoload filament macro
      ;
      
      T0                                           ; select tool 0
      M291 P"Filament autoloading!" S0 T3          ; display message
      M302 P0 S10 R10                                    ; lower min cold extrusion
      T0
      G4 S1                                        ; wait for one second
      G1 E15 F500                                  ; load filament inside the gears
      
      ; New material type
      M291 R"Autoload filament" P"What material type do you want to load" S4 K{"PLA","PETG","ASA","Flex","Nylon","Other", "Cancel"} ; Display user prompt
      if input = 0                                ; If answer is PLA -->
      		M109 S200                           ; set hotend temperature and wait
      		set global.loadedfilament = "PLA"   ; Set loaded material to PLA
      elif  input = 1                             ; If answer is PETG -->
      		M109 S245                           ; set hotend temperature and wait
      		set global.loadedfilament = "PETG"  ; Set loaded material to PETG
      elif  input = 2                             ; If answer is ASA -->
      		M109 S260                           ; set hotend temperature and wait
      		set global.loadedfilament = "ASA"   ; Set loaded material to ASA
      elif  input = 3                             ; If answer is Flex -->
      		M109 S250                           ; set hotend temperature and wait
      		set global.loadedfilament = "Flex"  ; Set loaded material to Flex
      elif  input = 4                             ; If answer is Nylon -->
      		M109 S275                           ; set hotend temperature and wait
      		set global.loadedfilament = "Nylon" ; Set loaded material to Nylon
      elif  input = 5                             ; If answer is Nylon -->
      		M291 R"Autoload filament" P"What temperature does your filament need?" L180 H300 S5 
      		M109 S{input} 
      		set global.loadedfilament = "Custom" ; Set loaded material to Nylon
      		set global.customfilamenttemp = {input}
      ;endif
      
      
      ; loading
      G1 E85 F1500                                ; extrude fast
      G1 E25 F300                                 ; purge 25mm
      M400
      
      ; start purging loop
      while true
      	M291 R"Autoload filament" P"Is the correct color filament coming out of the nozzle?" S4 K{"Yes","No"} ; Display user prompt
      	if input = 0                        ; If answer is yes -->
      		break                           ; Filament load successful, so skip to end of loop 
      	G1 E20 F300                         ; Move Z by 5mm, normally this would be an extra purge.
      	M400                                ; Wait for E to complete
      ; end loop
      
      
      M104 S0                                      ; set hotend temperature to 0
      M302 P0 S170 R170                            ; disable cold extrusion
      
      M291 P"Filament autoload succesfull!" S0 T3          ; display message
       
      

      Trigger 3;

      ;E1 Auto unload filament macro
      ;
      T0                                               ; select tool 0
      G91                                              ; Relative coordinates
      
      M300 S4000 P100                                  ; play beep sound
      M291 P"Filament unloading!" S0 T3                ; display message
      
      ; Heat up hotend to loaded filament temperature
      if global.loadedfilament = "PLA"                                ; If answer is PLA -->
      		M109 S200                           ; set hotend temperature and wait
      elif  global.loadedfilament = "PETG"                             ; If answer is PETG -->
      		M109 S245                           ; set hotend temperature and wait
      elif  global.loadedfilament = "ASA"                             ; If answer is ASA -->
      		M109 S260                           ; set hotend temperature and wait
      elif  global.loadedfilament = "Flex"                             ; If answer is Flex -->
      		M109 S250                           ; set hotend temperature and wait
      elif  global.loadedfilament = "Nylon"                             ; If answer is Nylon -->
      		M109 S275                           ; set hotend temperature and wait
      elif  global.loadedfilament = "Custom"                             ; If answer is Custom -->
      		M109 S{global.customfilamenttemp}                           ; set hotend temperature and wait
      ;endif
      
      ; unloading sequence
      G0 E5                                            ; Purge 5mm
      G0 E-10 F3600                                     ; extract filament to cold end
      G4 S5                                            ; wait for 3 seconds
      G0 E5 F3600                                      ; push back the filament to strive stringing
      G0 E-15 F3000                                    ; Extract fast in the cold zone (15/115mm)
      G0 E-40 F500                                     ; continue extraction slow allow filament to be cooled enough before reaches the gears (55/115mm)
      G0 E-75 F1500                                     ; Extract fast out of extruder (115/115mm) + 20mm extra
      M104 S0                                       ; set hotend temperature to 0
      M291 P"Filament unload complete!" S0 T3          ; display message
      

      Trigger4;

      ; Triggered on filament runout
      ;
      
      set global.inFilamentError=true
      M25 ; pause print
      set global.inFilamentError=false
       
      G60 S0          ; Save position to slot 0
      G1 E-10 F3600   ; retract 10mm of filament
      M568 A1         ; set tool to standby temp
      G91             ; relative positioning
      G1 Z5 F360      ; lift Z by 5mm
      G90             ; absolute positioning
      G1 X0 Y0 F3000	; Move to front of bed
       
      M291 P"Filament runout detected, proceed?" R"Filament runout" S2
       
      M302 P1         ; Allow cold extrusion
      G1 E-150 F3000  ; Unwind the filament 400mm
       
      M291 P"Remove remaining filament, insert new filament and continue" R"filament runout" S2
      G1 E100 F1500                                ; extrude fast
      G1 E25 F300                                 ; purge 25mm
       
      M568 A2         ; Set active temperature of the active tool
      M116            ; wait until hotend reaches set temperature
      M302 P0         ; Disable cold extrusion
      G1 E20 F60      ; Prime the nozzle a little bit
      M291 P"Remove the extruded string and click to continue" R"Filament Runout" S2
       
      G1 R1 X0 Y0 Z5 F9000   ; go to 5mm above position of the last print move
      G1 R1 X0 Y0 Z0          ; go back to the last print move
      M24 ; resume print
      
      1 Reply Last reply Reply Quote 0
      • k3lagundefined
        k3lag
        last edited by

        Did you ever find a solution to this? I'm getting ready to setup my orbiter filament sensor.

        1 Reply Last reply Reply Quote 0
        • First post
          Last post
        Unless otherwise noted, all forum content is licensed under CC-BY-SA