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

    Triggers firing by themselves on restart

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    4
    15
    555
    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.
    • RodrigoRMaraujoundefined
      RodrigoRMaraujo
      last edited by

      Since yesterday I've been configuring physical buttons to fire triggers. These are simple functions to raise the gantry, warm up the table, reset, pause/continue.
      Turns out I detected unattended trigger executions right after resetting or turning on the machine. It turns on and heats the table by itself, or turns on and over the gantry. She is running triggers randomly. I've already checked all the cables, everything has been soldered, they are well crimped, there is no bad contact or short. What can it be?

      Below is my config and trigger files.

      config.g

      ; Configuration file for Duet WiFi (firmware version 1.21)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v2 on Sun Aug 04 2019 18:49:42 GMT-0300 (Horário Padrão de Brasília)
      
      ; General preferences
      M929 P"log.txt" S2 									; start logging to file eventlog.txt
      G90                                            	    ; send absolute coordinates...
      M83                                                 ; ...but relative extruder moves
      M550 P"Voron"                                   	; set printer name
      M669 K1                                            	; select CoreXY mode
      
      ; Network
      M552 S1                             	            ; enable network and acquire dynamic address via DHCP
      M586 P0 S1                                          ; enable HTTP
      M586 P1 S1                                         	; disable FTP
      M586 P2 T1 S0                                      	; disable Telnet
      
      ; Wait a bit so boards can sync up
      G4 S5
      
      M569 P0 S1 ; A (X (right) motor direction)
      M569 P1 S1 ; B (Y (left) motor direction)
      M569 P3 S1 ; Extruder #1
      M569 P5 S0 ; Z1
      M569 P6 S0 ; Z2
      M569 P7 S1 ; Z3
      M569 P8 S1 ; Z4
      
      ; Drive mappings 
      M584 X0 Y1 Z5:6:7:8 E3               	; set drive mapping
      
      M350 X16 Y16 Z16 U16 E16 I1                            ; Configure microstepping with interpolation
      M92 X80 Y80 Z400 E418                  ; Set steps per mm
      M566 X600.00 Y600.00 Z200 E400.00   ; set maximum instantaneous speed changes (mm/min)
      M203 X18000.00 Y18000.00 Z600 E15000.00 ; set maximum speeds (mm/min) ;Z600
      M201 X1000.00 Y1000.00 Z100 E4000.00   ; set accelerations (mm/s^2)
      M906 X1000 Y1000 Z1000 E350 I30           ; set motor currents (mA) and motor idle factor in per cent
      M204 P1200 T2000 ; M204 P600 T1800  ; Set printing acceleration and travel accelerations
      M84 S30                                            ; Set idle timeout
      
      ;Configs do Renato
      ;M906 X1000 Y1000 Z900 E500 ; XYZ and E current
      ;M566 X800 Y800 Z60 E8000 ; Set maximum instantaneous speed changes (mm/min)
      ;M203 X18000 Y18000 Z3000 E15000 ; Set maximum speeds (mm/min)
      ;M201 X1800 Y1800 Z250 E1800 ; Set maximum accelerations (mm/s^2)
      ;M204 P1200 T2000 ; Set printing acceleration and travel accelerations
      
      ; Axis Limits
      M208 X0 Y0 Z0 S1                                   ; Set axis minima
      M208 X350 Y350 Z315 S0                             ; Set axis maxima
      
      ; Endstops
      M574 X2 S1 P"!xstop"                            ; configure active-high endstop for high end on X via pin xstop
      M574 Y2 S1 P"!ystop"                            ; configure active-high endstop for high end on Y via pin ystop
      M591 P2 C"e0_stop" S1 D0         	 				; filament monitor connected to E0_stop
      
      ; Bed leveling
      M671 X-50:-50:350:350 Y5:370:370:5 S20	           ; Z leadscrews positions Left Front - Let Rear - Right Rear - Right Front
      M557 X30:320 Y25:325 P15:15
      
      ; Z-Probe
      M558 K0 P5 C"zprobe.in" H10 F900:120 T7000 A3 S0 R0.1     	; set Z probe type to unmodulated and the dive height + speeds
      G31 K0 P500 X0 Y25 Z3.52 	;5.55				; inductive probe offset, not critical, only used for coarse homing
      ;M558 K1 P8 C"zstop" T6000 F120 H10 A3 S0.005 B1 R0.2
      ;G31 K1 P500 X0 Y0 Z2.35             ; Z switch offset (if positive, greater value = lower nozzle. if negative, more negative = higher nozzle)
      
      ;;Bed heater dual thermistor setup
      ;M308 S0 P"bedtemp" Y"thermistor" T100000 B3950 A"Bed Pad"   ; configure sensor 0 as thermistor on pin bedtemp (pad sensor)
      ;M308 S2 P"e1temp" Y"thermistor" T100000 B3950 A"Bed Plate"  ; configure sensor 2 as thermistor on pin e1temp (plate sensor)
      ;M950 H0 C"bedheat" T2 Q10                                   ; create bed heater output on out0 and map it to sensor 2 (plate sensor). Set PWM frequency to 10Hz
      ;M140 P0 H0                                                  ; Mark heater H0 as bed heater (for DWC)
      ;M143 H0 P1 T0 A2 S115 C0                                    ; Regulate (A2) bed heater (H0) to have pad sensor (T0) below 115°C. Use Heater monitor 1 for it
      ;M143 H0 P2 T0 A1 S120 C0                                    ; Shut off (A1) bed heater (H0) if pad sensor (T0) exceeds 120°C. Use Heater monitor 2 for it
      ;M143 H0 S120                                                ; Set bed heater max temperature to 120°C, use implict monitor 0 which is implicitly configured for heater fault
      ;M307 H0 B1 S1 ;0.8                                             ; Enable Bang Bang mode and set PWM to 60% to avoid warping
      ;;HotEnd
      ;M308 S1 P"e0temp" Y"thermistor" T100000 B4725 C7.060000e-8 A"Hotend" ; configure sensor 1 as thermistor (ATC Semitec 104GT2)
      ;M950 H1 C"e0heat" T1                                                 ; create nozzle heater output on e0heat and map it to sensor 1
      ;M143 H1 S300                                                         ; set temperature limit for heater 1 to 300°C
      
      ; mcu / drivers temperature sensor / voltage thresholds
      M308 S3 Y"drivers" A"Drivers Duet"  ; configure sensor 2 as temperature warning and overheat flags on the TMC2660 on Duet
      M308 S4 Y"drivers-duex" A"Drivers Duex"  ; configure sensor 2 as temperature warning and overheat flags on the TMC2660 on Duetdrivers-duex
      M308 S5 Y"mcu-temp" A"MCU" ; configure sensor 3 as thermistor on pin e1temp for left stepper
      M912 P0 S-5.9						; Calibrating the MCU temperature
      M911 S22 R23 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000"     ; set voltage thresholds and actions to run on power loss
       
      ;Backup Heaters Original
      M308 S0 P"bedtemp" Y"thermistor" T100000 B3950  ; configure sensor 0 as thermistor on pin bedtemp
      M950 H0 C"bedheat" T0                          ; create bed heater output on bedheat and map it to sensor 0
      M307 H0 R0.135 C738.7 D1.34 S1.00 V23.5     ; enable bang-bang mode for the bed heater and set PWM limit
      M140 H0                                        ; map heated bed to heater 0
      M143 H0 S125                                   ; set temperature limit for heater 0 to 120C
      M308 S1 P"e0temp" Y"thermistor" T100000 B4725 C7.06e-8  ; configure sensor 1 as thermistor on pin e0temp
      M950 H1 C"e0heat" T1                           ; create nozzle heater output on e0heat and map it to sensor 1
      ;M307 H1 B0 R2.039 C177.8 D6.23 S1.00 V24.0     ; disable bang-bang mode for heater  and set PWM limit
      M307 H1 R2.537 C232.238:160.826 D6.18 S1.00 V23.9 B0 I0
      M143 H1 S250                                   ; set temperature limit for heater 1 to 280C
      
      ; Fans
      M950 F0 C"fan0" Q500                           ; create fan 0 on pin fan0 and set its frequency
      M106 P0 S0 H-1                                 ; set fan 0 value. Thermostatic control is turned off
      M950 F1 C"fan1" Q500                           ; create fan 1 on pin fan1 and set its frequency
      M106 P1 S1 H1 T50                              ; set fan 1 value. Thermostatic control is turned on
       
      ; Tools
      M563 P0 D0 H1 F0 S"Extruder"                              ; define tool 0
      G10 P0 X0 Y0 Z0                                ; set tool 0 axis offsets
      G10 P0 R0 S0                                   ; set initial tool 0 active and standby temperatures to 0C
       
      ; Miscellaneous
      M575 P1 S1 B57600 ;enable support for PanelDue
      T0						; Select first tool 
      M501
      M290 S0.0   ; babystep the BED UP
      M572 D0 S0.08; PA
      M84
      
      ;Botões físicos rodando macros
      ;(Arquivos de trigger precisam estar no diretório sys)
      ;Botão fechado conecta pinos GND e Ex_STOP (x é o número da porta negativa. Não usar porta Vin, pino do meio)
      
      ;M950 J2 C"^duex.e2stop"
      ;M581 P2 T2 S0 R0 ; Executa trigger2.g
      
      M950 J3 C"^duex.e3stop"
      M581 P3 T7 S0 R0 ; Executa trigger3.g AQUECE MESA 110 GRAUS
      
      M950 J4 C"^duex.e4stop"
      M581 P4 T4 S0 R0 ; Executa trigger4.g RESET
      
      M950 J5 C"^duex.e5stop"
      M581 P5 T5 S0 R0 ; Executa trigger5.g UP Z 25mm
      
      M950 J6 C"^duex.e6stop"
      M581 P6 T6 S0 R0 ; Executa trigger6.g PAUSE/RESUME
      

      trigger4.g

      M999
      

      trigger5.g

      if state.status == "idle" ||  state.status == "busy"
      	M564 H0
      	G91
      	G1 Z25
      	G90
      	M564 H1
      

      trigger6.g

      if state.status == "processing"
      	M25
      	M99
      if state.status == "paused"
      	M24
      	M99
      

      trigger7.g

      if state.status == "idle" ||  state.status == "busy"
      	if heat.heaters[0].active > 0
      		M140 S0
      	else
      		M140 S110
      

      I'm still learning about the object model and metacommands, they may not be very well written, but they are working.
      While I don't understand what's happening, I decided to disable the physical buttons.
      My machine is a voron 2.4, with duet 2 wifi and duex 5, RRF3.3.0
      Placa: Duet 2 WiFi (2WiFi)
      Firmware: RepRapFirmware for Duet 2 WiFi/Ethernet 3.3 (2021-06-15)
      Versão do Duet WiFi Server: 1.26
      Duet Web Control 3.3.0

      cosmowaveundefined o_lampeundefined 2 Replies Last reply Reply Quote 0
      • cosmowaveundefined
        cosmowave @RodrigoRMaraujo
        last edited by

        @rodrigormaraujo A possible solution for that can be to check the "trigger input" again (after a short delay) in the corresponding macro file.
        So you can avoid false triggering because of a unclean signal.

        Mankati FSXT+, DeltaTowerV2, E3D MS/TC

        RodrigoRMaraujoundefined 1 Reply Last reply Reply Quote 1
        • o_lampeundefined
          o_lampe @RodrigoRMaraujo
          last edited by

          @rodrigormaraujo
          it's not directly related, but " == " is not necessary in gcode meta comparison.

          The 'debouncing' method @cosmowave described should do the trick. Maybe adding real pullup resistors will also help keeping the noise down on the trigger line. The internal pullups you've activated with " ^pinname" are probably too weak? (For Duet3 users: it's not recommended to use them at all, AFAIK)

          RodrigoRMaraujoundefined 1 Reply Last reply Reply Quote 1
          • RodrigoRMaraujoundefined
            RodrigoRMaraujo @cosmowave
            last edited by

            @cosmowave please how can i do this? I have no idea.

            cosmowaveundefined 1 Reply Last reply Reply Quote 0
            • RodrigoRMaraujoundefined
              RodrigoRMaraujo @o_lampe
              last edited by

              @o_lampe Thanks for the tip. I don't really know what resistor value I could use. Can you tell me one?

              o_lampeundefined 1 Reply Last reply Reply Quote 0
              • o_lampeundefined
                o_lampe @RodrigoRMaraujo
                last edited by

                @rodrigormaraujo
                4.7k -10k ohms are common. (that is 4700 -10000 ohms for the uneducated readers)

                RodrigoRMaraujoundefined 1 Reply Last reply Reply Quote 0
                • cosmowaveundefined
                  cosmowave @RodrigoRMaraujo
                  last edited by cosmowave

                  @rodrigormaraujo said in Triggers firing by themselves on restart:
                  please how can i do this? I have no idea.

                  Something like this. You have to addapt this code to your inputs:
                  This code has to be in the beginning of the Trigger macro!

                  if fans[0].rpm < 100
                              G4 P10
                              if fans[0].rpm < 100
                                  M25
                                  M118 S"No Water flow!"
                  

                  Mankati FSXT+, DeltaTowerV2, E3D MS/TC

                  RodrigoRMaraujoundefined 1 Reply Last reply Reply Quote 0
                  • RodrigoRMaraujoundefined
                    RodrigoRMaraujo @o_lampe
                    last edited by RodrigoRMaraujo

                    @o_lampe said in Triggers firing by themselves on restart:

                    4.7k -10k ohms are common. (that is 4700 -10000 ohms for the uneducated readers)

                    Ok, thank you!

                    1 Reply Last reply Reply Quote 0
                    • RodrigoRMaraujoundefined
                      RodrigoRMaraujo @cosmowave
                      last edited by

                      @cosmowave thanks for the answer.
                      Got it, but I'm not sure it would work well, because I check the status (state.status == "idle" || state.status == "busy"). This state will be the same before and after the G4. The problem, as I understand it, is the reading of a false signal through the endstop port, which is apparently extremely sensitive to noise.

                      fcwiltundefined cosmowaveundefined 2 Replies Last reply Reply Quote 0
                      • fcwiltundefined
                        fcwilt @RodrigoRMaraujo
                        last edited by fcwilt

                        @rodrigormaraujo

                        Are the switches of the normally closed type?

                        Are the triggers running when you press the switch or release the switch.

                        I've got plain normally closed switches on both Duet 2 and Duet 3 hardware using the built-in pull-up resistors and have never seen your kind of problem.

                        Frederick

                        Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                        RodrigoRMaraujoundefined 1 Reply Last reply Reply Quote 1
                        • cosmowaveundefined
                          cosmowave @RodrigoRMaraujo
                          last edited by

                          @rodrigormaraujo said in Triggers firing by themselves on restart:

                          is the reading of a false signal through the endstop port, which is apparently extremely sensitive to noise.

                          Eventually you can improve the cabeling (shielded cable)? try to not routing them near to stepper/ stepper cables...

                          Mankati FSXT+, DeltaTowerV2, E3D MS/TC

                          RodrigoRMaraujoundefined 1 Reply Last reply Reply Quote 0
                          • RodrigoRMaraujoundefined
                            RodrigoRMaraujo @fcwilt
                            last edited by RodrigoRMaraujo

                            @fcwilt said in Triggers firing by themselves on restart:

                            Are the switches of the normally closed type?
                            Are the triggers running when you press the switch or release the switch.
                            I've got plain normally closed switches on both Duet 2 and Duet 3 hardware using the built-in pull-up resistors and have never seen your kind of problem.

                            No, I used normally open mechanical keyboard (cherry mx green) buttons.

                            [https://pt.aliexpress.com/item/1005001681627152.html?spm=a2g0s.9042311.0.0.2742b90a6Tptvm]

                            A friend commented to me about using NC buttons. I ordered magnetic filters on aliexpress. If the problem persists I will look for these buttons, but I will have to review how to install them on the skirts of the voron.

                            fcwiltundefined 1 Reply Last reply Reply Quote 0
                            • RodrigoRMaraujoundefined
                              RodrigoRMaraujo @cosmowave
                              last edited by

                              @cosmowave said in Triggers firing by themselves on restart:

                              Eventually you can improve the cabeling (shielded cable)? try to not routing them near to stepper/ stepper cables...

                              I ordered magnetic filters on the advice of a friend who works in electronics and builds cnc machines. According to him, this will help eliminate noise.
                              [https://pt.aliexpress.com/item/4000803662446.html?spm=a2g0s.9042311.0.0.3366b90aNy53pX]

                              1 Reply Last reply Reply Quote 0
                              • fcwiltundefined
                                fcwilt @RodrigoRMaraujo
                                last edited by fcwilt

                                @rodrigormaraujo said in Triggers firing by themselves on restart:

                                @fcwilt said in Triggers firing by themselves on restart:

                                Are the switches of the normally closed type?
                                Are the triggers running when you press the switch or release the switch.
                                I've got plain normally closed switches on both Duet 2 and Duet 3 hardware using the built-in pull-up resistors and have never seen your kind of problem.

                                No, I used normally open mechanical keyboard (cherry mx green) buttons.

                                [https://pt.aliexpress.com/item/1005001681627152.html?spm=a2g0s.9042311.0.0.2742b90a6Tptvm]

                                Normally closed setups are less sensitive to noise. Your normally open switches might, perhaps, be the cause of your problem.

                                Frederick

                                Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                                RodrigoRMaraujoundefined 1 Reply Last reply Reply Quote 0
                                • RodrigoRMaraujoundefined
                                  RodrigoRMaraujo @fcwilt
                                  last edited by

                                  @fcwilt yes, thank you!

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