Solved e-stop does not switch ps_on pin
-
Hi!
I put a physical e-stop to my printer and have a question, as the title suggests:
I wired everything as it says in docs. Now it works like the e-stop in DWC: Stop all motors and turn off all heaters. So far so good.
As it says at section "Cut the 12/24V supply" it should even shut down my 24V circuit. However, this is not happening with my setup, but I can toggle the PSU with M80 and M81 via DWC.
further details of my setup:
E3D-ToolChanger with a 6HC in SBC mode (Raspi 4), 1x 3HC and 1x ToolBaord 1LC
Firmware 3.4.1 updated via the SBCconfig as follows:
; Configuration file for Duet 3 (firmware version 3) ; executed by the firmware on start-up ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"MultiPrint" ; set printer name M669 K1 ; select CoreXY mode M80 C"!pson" ; invert the PS_ON output for Meanwell power supply ; PanelDue 5.0i with custom logo M575 P1 S1 B57600 ; enable support for PanelDue ; Define inputs and their trigger if necessary M950 J5 C"^io5.in" ; input 5 - ActiveToolDetect (Tool Detect Switch) M950 J6 C"^io7.in" ; input 6 - OpenDoorDetect M581 P6 T2 S1 R0 ; define rising edge trigger --> door opened (trigger2.g) M581 P6 T3 S0 R0 ; define falling edge trigger --> door closed (trigger3.g) M582 T2 ; check for trigger (necessary, we might start with door open) M950 J7 C"^io8.in" ; input 7 - E-Stop (trigger 0) M581 P7 T0 S1 R0 ; define rising edge trigger --> emergency stop (M112) (NOT-HALT) ; Lights M950 P0 C"1.out1" Q500 M98 P"/macros/Light-Control/MainLight_ON.g" M950 P1 C"1.out0" Q500 ;M98 P"/macros/Light-Control/HeadLight_toggle.g" M150 X1 M150 R255 U255 B255 P10 S18 ; Drives M569 P0.2 S0 ; physical drive 0.2 goes backwards (X - Axis) M569 P0.1 S0 ; physical drive 0.1 goes backwards (Y - Axis) M569 P0.0 S1 ; physical drive 0.0 goes forwards (Z - Axis) M569 P0.3 S0 ; physical drive 0.3 goes backwards (C - COUPLER) M569 P1.0 S1 ; physical drive 0.4 goes forwards (B - BRUSH) M569 P0.4 S1 ; physical drive 0.5 goes forwards (E0 - V6) M569 P0.5 S1 ; physical drive 1.0 goes forwards (E1 - Volcano) M569 P121.0 S0 ; physical drive 121.0 goes forwards (E2 - HighTemp Direct) M584 X0.2 Y0.1 Z0.0 C0.3 B1.0 E0.4:0.5:121.0 ; set drive mapping M350 X16 Y16 Z16 B16 E16:16:16 I1 ; configure microstepping with interpolation M350 C16 I0 ; configure microstepping without interpolation M92 X100 Y100 Z1600 C91.022 B128 E400:400:400 ; set steps per mm M98 P"/macros/Speeds/set_speed.g" S"startup" ; set speeds, jerk and accel. for the beginning M566 Z20 C2 B8 E450:700:450 ; set maximum instantaneous speed changes (mm/min) M203 Z800 C8000 B1000 E4500:4500:4500 ; set maximum speeds (mm/min) M201 Z400 C500 B500 E10000:10000:6000 ; set accelerations (mm/s^2) M906 X1800 Y1800 Z1130 B500 I20 ; set motor currents (mA) and motor idle factor in per cent (X Y Z B) M906 C500 E1000:1000:1000 I10 ; set motor currents (mA) and motor idle extruder motors to 10% M84 S15 ; Set idle timeout M98 P"/macros/Boundaries/ToolHead.g" ; set dynamic axis Limits M208 Z0:264.6 C-45:360 B0:23 ; set static axis limits (min:max) ; Endstops M574 X1 S1 P"^io3.in" ; configure active-high endstop for low end on X via pin ^io1.in M574 Y1 S1 P"^io4.in" ; configure active-high endstop for low end on Y via pin ^io2.in M574 Z2 S1 P"^io2.in" ; configure active-high endstop for high end on Z via pin ^io7.in M574 C0 ; No C endstop M574 B1 S1 P"^1.io3.in" ; configure active-high endstop for low end on B via pin ^io5.in ; Z-Probe M558 P5 C"^io1.in" H2 F600:300 I0 A3 T35000 ; set Z probe type to switch and the dive height + speeds G31 P200 X0 Y0 Z0 ; set Z probe trigger value, offset and trigger height M557 X-140:140 Y-90:90 S20:30 ; Define mesh grid ;Stall Detection M915 X Y S5 F1 R1 ; X / Y Axes ; Heaters M308 S0 P"temp0" Y"thermistor" A"Bed" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0 ; BED ; correction val for port "temp0": H=-19; L=0 M950 H0 C"out0" T0 Q5 ; create bed heater output on out0 and map it to sensor 0 with a PWM freq of 5 Hz M307 H0 B0 R1.240 C413.8 D3.17 S1 ; disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S200 ; set temperature limit for bed heater 0 to 200C M308 S1 P"temp1" Y"thermistor" A"T0" T100000 B4138 ; configure sensor 1 as thermistor on pin temp3 ; TOOL 0 ; correction val for port "temp3": H=-7; L=13 M950 H1 C"out1" T1 ; create nozzle heater output on out3 and map it to sensor 1 M307 H1 R2.320 K0.406:0.085 D5.66 E1.35 S1.00 B0 V24.0 ; disable bang-bang mode for heater and set PWM limit M143 H1 S285 ; set temperature limit for heater 1 to 285C M308 S2 P"temp2" Y"thermistor" A"T1" T100000 B4138 ; configure sensor 2 as thermistor on pin temp3 ; TOOL 1 ; correction val for port "1.temp0": H=-6; L=3 M950 H2 C"out2" T2 ; create nozzle heater output on 1.out1 and map it to sensor 2 M307 H2 R2.016 K0.366:0.030 D5.70 E1.35 S1.00 B0 V24.5 ; disable bang-bang mode for heater and set PWM limit M143 H2 S285 ; set temperature limit for heater 2 to 285C M308 S3 P"121.temp0" Y"thermistor" A"T2" T100000 B4138 ;B4725 C7.06e-8 configure sensor 3 as thermistor on pin 121.temp0 ; TOOL 2 ; correction val for port "121.temp0": H=-13; L=0 M950 H3 C"121.out0" T3 ; create nozzle heater output on 121.out0 and map it to sensor 3 M307 H3 R2.409 K0.350:0.180 D5.36 E1.35 S1.00 B0 V23.9 ; disable bang-bang mode for heater and set PWM limit M143 H3 S250 ; set temperature limit for heater 3 to 250C ; Fans M950 F0 C"out4" Q500 ; create fan 0 on pin out9 and set its frequency M106 P0 S0 H-1 L0.2 C"T0" ; set fan 0 value. Thermostatic control is turned off M950 F1 C"out7" Q500 ; create fan 1 on pin out8 and set its frequency M106 P1 S1 H1 T60 ; set fan 1 value. Thermostatic control is turned on M950 F2 C"out5" Q500 ; create fan 2 on pin 1.out6 and set its frequency M106 P2 S0 H-1 L0.2 C"T1" ; set fan 2 value. Thermostatic control is turned off M950 F3 C"out8" Q500 ; create fan 3 on pin 1.out7 and set its frequency M106 P3 S1 H2 T60 ; set fan 3 value. Thermostatic control is turned on M950 F4 C"121.out1" Q500 ; create fan 4 on pin 121.out1 and set its frequency M106 P4 S0 H-1 L0.4 C"T2" ; set fan 4 value. Thermostatic control is turned off M950 F5 C"121.out2" Q500 ; create fan 5 on pin 121.out2 and set its frequency M106 P5 S1 H3 T60 ; set fan 5 value. Thermostatic control is turned on M950 F6 C"!out6+out6.tach" Q500 ; create fan 6 on pin out4, this is a PWM fan so the output needs to be inverted, and using out4.tach as a tacho input M106 P6 S0 H-1 C"Filterbox" ; set fan 6 value. Thermostatic control is turned off M106 P6 S0 ; Input Shaping ;M593 P"zvdd" F42.2 ; cancel ringing at 42.2Hz ;(https://forum.e3d-online.com/threads/accelerometer-and-resonance-measurements-of-the-motion-system.3445/) ; Tools M563 P0 S"V6 Bowden" D0 H1 F0 ; define tool 0 G10 P0 X-8.02 Y38.97 Z-4.7 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C M572 D0 S0.2 ; pressure advance T0 M563 P1 S"Volcano Bowden" D1 H2 F2 ; define tool 1 G10 P1 X-7.92 Y38.96 Z-13.2 ; set tool 1 axis offsets G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C M572 D1 S0.3 ; pressure advance T1 M563 P2 S"Hemera Direct" D2 H3 F4 ; define tool 2 G10 P2 X21.05 Y43.75 Z-5.7 ; set tool 2 axis offsets G10 P2 R0 S0 ; set initial tool 2 active and standby temperatures to 0C M591 D2 P3 C"121.io1.in" ; Configure filament sensing for tool 2 M572 D2 S0.05 ; pressure advance T2 ; PowerFail Script (use M916 to resume the print from where it stopped) M911 S23.6 R23.8 P"M913 X0 Y0 G91 M83 G1 E-5 F1000" ; set voltage thresholds and actions to run on power loss ;MCU Temp Calibration M912 P0 S5 ;room temp: 20°C (reportet MCU temp right after startup: 12°C) M308 S5 Y"mcu-temp" A"6HC MCU" ;show MCU-temp of Mainboard (MB6HC) in DWC (Tools -> Extra) Graph M308 S6 Y"mcu-temp" P"1.dummy" A"3HC MCU" ;show MCU-temp of CAN expansion board 1 (3HC) in DWC (Tools -> Extra) Graph M308 S7 Y"mcu-temp" P"121.dummy" A"1LC MCU" ;show MCU-temp of CAN expansion board 121 (1LC) in DWC (Tools -> Extra) Graph ; check if e-stop is triggerd at startup if sensors.gpIn[7].value == 1 M582 T0
As you may notice: I use a MeanWell PSU with inverted PS_ON logic (M80 C"!pson").
My guess is, that it’s a bug in that region - or is this part of the docs just outdated because shutting off 24V would mean no cooling fan?Thanks for your time!
-
@marvineer PS_ON is NOT changed by a software E-STOP. The reason is fairly simple; if you have (high temperature) heaters surrounded by parts that could melt, cutting power to the fans may result in physical damage. If you want to turn off the PS_ON pin using an external trigger, consider writing a macro that turns it off via
M81
before it callsM112
. -
@marvineer As @chrishamm says, M112 doesn't switch off PSU power, and hasn't since RRF v2. The guide is quite old, and as much as I try to check things as I'm migrating them, I missed this. I'll update the guide and the M112 description to reflect this.
Ian
-
@droftarts said in e-stop does not switch ps_on pin:
I'll update the guide and the M112 description to reflect this.
perfect, that would resolve my confusion. Thanks to all of you
-
-
-
-
I have updated M112 and Connecting an emergency stop.
Ian