• Tags
  • Documentation
  • Order
  • Register
  • Login
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.
  • undefined
    RodrigoRMaraujo
    last edited by 5 Sept 2021, 21:40

    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

    undefined undefined 2 Replies Last reply 6 Sept 2021, 05:55 Reply Quote 0
    • undefined
      cosmowave @RodrigoRMaraujo
      last edited by 6 Sept 2021, 05:55

      @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

      undefined 1 Reply Last reply 6 Sept 2021, 07:03 Reply Quote 1
      • undefined
        o_lampe @RodrigoRMaraujo
        last edited by 6 Sept 2021, 06:41

        @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)

        undefined 1 Reply Last reply 6 Sept 2021, 07:09 Reply Quote 1
        • undefined
          RodrigoRMaraujo @cosmowave
          last edited by 6 Sept 2021, 07:03

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

          undefined 1 Reply Last reply 6 Sept 2021, 07:57 Reply Quote 0
          • undefined
            RodrigoRMaraujo @o_lampe
            last edited by 6 Sept 2021, 07:09

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

            undefined 1 Reply Last reply 6 Sept 2021, 07:18 Reply Quote 0
            • undefined
              o_lampe @RodrigoRMaraujo
              last edited by 6 Sept 2021, 07:18

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

              undefined 1 Reply Last reply 6 Sept 2021, 14:03 Reply Quote 0
              • undefined
                cosmowave @RodrigoRMaraujo
                last edited by cosmowave 9 Jun 2021, 07:58 6 Sept 2021, 07:57

                @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

                undefined 1 Reply Last reply 6 Sept 2021, 14:09 Reply Quote 0
                • undefined
                  RodrigoRMaraujo @o_lampe
                  last edited by RodrigoRMaraujo 9 Jun 2021, 14:10 6 Sept 2021, 14:03

                  @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
                  • undefined
                    RodrigoRMaraujo @cosmowave
                    last edited by 6 Sept 2021, 14:09

                    @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.

                    undefined undefined 2 Replies Last reply 6 Sept 2021, 15:12 Reply Quote 0
                    • undefined
                      fcwilt @RodrigoRMaraujo
                      last edited by fcwilt 9 Jun 2021, 15:13 6 Sept 2021, 15:12

                      @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

                      undefined 1 Reply Last reply 7 Sept 2021, 02:00 Reply Quote 1
                      • undefined
                        cosmowave @RodrigoRMaraujo
                        last edited by 6 Sept 2021, 15:18

                        @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

                        undefined 1 Reply Last reply 7 Sept 2021, 02:03 Reply Quote 0
                        • undefined
                          RodrigoRMaraujo @fcwilt
                          last edited by RodrigoRMaraujo 9 Jul 2021, 02:05 7 Sept 2021, 02:00

                          @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.

                          undefined 1 Reply Last reply 7 Sept 2021, 02:04 Reply Quote 0
                          • undefined
                            RodrigoRMaraujo @cosmowave
                            last edited by 7 Sept 2021, 02:03

                            @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
                            • undefined
                              fcwilt @RodrigoRMaraujo
                              last edited by fcwilt 9 Jul 2021, 02:11 7 Sept 2021, 02:04

                              @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

                              undefined 1 Reply Last reply 9 Sept 2021, 01:05 Reply Quote 0
                              • undefined
                                RodrigoRMaraujo @fcwilt
                                last edited by 9 Sept 2021, 01:05

                                @fcwilt yes, thank you!

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