Emergency Pause Button?

  • Hey my DIY 3D printer will have exposed moving parts that might get some hair caught in it, and it'll be left unattended in an office mail room where people who are not trained will be able to access it.

    I want to add a E-stop button. Wiring it to the RST_EXT signal is my first idea, but I have another idea. What if I find where PWR_FAIL_DET2 is on the PCB (between R80 and R81), and wire a button to that and ground? It should fool the firmware into thinking there's a power loss, right? And I can configure it to just pause the print?

    (I don't want to shop for a big 10A 120VAC button, it'll be a waste and the extra wiring will make the whole machine even more dangerous, more ugly, less efficient. So I want a small button)

    How sensitive is this signal to crosstalk/noise? 47Kohm resistors are pretty big, only about 255 microamps will be shooting through those. Shielded cables will always help, what else should I do? I could tack on some TVS diodes for antistatic, would that screw things up?

    Is there another better way to do this? The only other thing I can think of is tricking the thermistor inputs into causing an error. Not sure if those errors can be dismissed and print resumed.

  • Standard approach wound be to wire a switch into a spare endstop (also available on expansion header) and use that to trigger a software controlled e-stop. Basically trigger the same g-code the emergency stop on the webpage calls.

    If you are looking for something more reliable then have this cut power to the VIN. Optionally include a seperate 5V supply to the board that is not cut and feed a spare set of contacts from the e-stop button to the board to trigger a software e-stop too.


  • Wow ok I dove into the schematics way too early, thanks.

    My next problem... Even a retract filament movement is hazardous (I have this flexible shaft extruder setup with a 40x worm gear, so the motor spins fast with a large steel spinning cable sticking out of it, I will try to shield it physically but still some parts exposed, shielding it also cuts on efficiency). I know pausing a print usually means "retract and park the head for filament change"

    I do see a "M291: Display message and optionally wait for response", I am wondering... if I trigger that from one of the triggernnn.g files, will it freeze all actions and not do a retract?

    Edit: you know what, I just read the source code and found where it calls LockMovementAndWaitForStandstill, I think it'll do all the actions in the movement buffer, so still not 100% safe

    I might just screw around with my own fork

  • @frank26080115 I think you are over complicating the issue - all the tools already exist without delving into the source code. A couple of things:

    If you wire a button as @DocTrucker suggests, then you use M581 to carry out the action(s) that you want. So something like this (which is what I use)

    M581 E4 S1 T0 C0 ;

    In that example, E4 is the end stop that the switch is connected too (normally closed). S1 means detect a rising edge. CO means check any time but you could use C1 which would only check for a trigger during printing. But this is where it gets interesting:

    T0 means do an emergency stop as if M122 had been sent.
    T1 causes a print to pause as if M25 had been sent
    BUT (extract from the Wiki) "Any trigger number # greater then 1 causes the macro file sys/trigger#.g to be executed."

    So, you can write your own macro to carry out whatever commands or actions that you want to take.

    Also, from your first post there is a bit of a conflict if you don't mind my saying so. You say that you want to use this for safety reasons but then go on to say that you want to use small button that is less ugly. If it's for safety reasons, then it needs to be big and prominent. I use such a switch but it it isn't wired as a true emergency stop button which would kill power - it's just connected to an end stop as detailed above. Here is picture - the button is the big red thing on the right.


  • Thanks I think I got it

    I didn't mean the my stop button will be small. I was going to print it out big with colourful plastic and embossed but have the actual switch be something small behind all the plastic.

  • Just my opinion, free, and worth every penny:

    The E-STOP button in the situation you describe should both signal the controller to stop moving, and MUST cut power at the entry to the controller (NOT the mains to the power supply, most PS will run the printer for several seconds after mains are off).

    Yes, I realize that terminates the print in a way that is very likely to be non-restart-able.

    In a place where untrained persons are exposed to a moving device, INSTANT stop, and ASSURED stop, are almost required from a safety perspective (and liability perspective in the US).

  • @danal

    Risk assessment is key here. If you had a serious accident any decent enquiry would find an unguarded machine as potentially negligent. A reliable e-stop is only really going to help save injury if you are entangled, it'll most likely be after the event in an impact related injury.

    For extrusion systems guarding isn't the enemy, it's an enclosure which helps with print quality and extract smelly gasses. You'd need to ensure those with access to the inside are fully aware of what they and the machine is doing.

    That said I'd say the main safety hazard is loss of control of the heaters, and with heaters running the PSUs will drain quick, and more to the point the system will not become stone cold instanly.

    There's also an argument that the Duet could actively stop an axis quicker than detent torque braking of inertia from max speed too.

    What many of us have is a fancy panic button to stop the machine hurting itself, rather than others.

  • This post is deleted!


Looks like your connection to Duet3D was lost, please wait while we try to reconnect.