Announcing the ORDuino !

Topics Related to the ORD Bot Printer

Re: Announcing the ORDuino !

Postby orcinus » Thu Mar 08, 2012 2:03 pm

Re: the whole E-stop business...

I have an idea for a fool-proof emergency stop, but it would probably require too many changes to the layout and BOM.
The idea being to add a watchdog IC.

It would work a little something like this:
1) If an emergency stop button/switch is triggered, the watchdog IC gets enabled and the MCU gets the E-Stop signal
2) watchdog timer starts and MCU's priority interrupt triggers
3) MCU disables all the drivers, sends the watchdog signal to the watchdog IC
4) MCU halts and all is well

If things go bad:
1) Emergency stop button is triggered, the watchdog IC gets enabled, MCU gets the E-stop signal
2) watchdog timer starts and MCU's priority interrupt fails
3) watchdog timer expires
4) watchdog's output disables the drivers and/or a relay cutting the power to the board

Additional level of protection would be to require the MCU to keep tripping the watchdog all the time during normal operation, so if *anything* untoward happens and halts the normal progress of the program, things shut down. But that's an overkill and unnecessarily complicates the code.
orcinus
 
Posts: 720
Joined: Tue Feb 14, 2012 4:03 am

Re: Announcing the ORDuino !

Postby Enraged » Thu Mar 08, 2012 6:00 pm

The point of an Estop is specifically for EMERGENCIES.

it is used to completely shut down the machine. You do not care about saving the job when your hand/hair/item is caught in the machine. You need the machine to completely shut down before further damage is done.

what you guys seem to be talking about is more of a pause button than an estop.

My machine shop teacher had a great presentation on the need for easy to reach estop buttons, involving pictures of milling machines, end mills, and fingers. :!:
Enraged
 
Posts: 439
Joined: Fri May 06, 2011 3:13 pm

Re: Announcing the ORDuino !

Postby orcinus » Thu Mar 08, 2012 8:21 pm

I know what it is, but the implementation i've described can serve as a pause and an emergency stop at the same time.

Best case scenario - everything stops "nondestructively" and you can continue where you've left off should you choose to do so.

Worst case scenario - everying gets shut down "destructively" because the "soft" shutdown (and, presumably, the MCU or the code) failed.

There are no downsides compared to a dumb Estop switch. But there are upsides - in case it was not an actual emergency situation, you can just go on and there are less chances of accidental damage caused by the stop (crashed print head, extruder damage etc.).

You're more likely to ever need a pause or a "soft" stop with a 3D printer than a true Estop. They don't break, crunch or saw off fingers and hands. They burn. And no Estop can help you there. The stop feature is there more for printer's benefit, than the operator's.
orcinus
 
Posts: 720
Joined: Tue Feb 14, 2012 4:03 am

Safety

Postby frob » Fri Mar 09, 2012 1:32 am

I think this is an interesting and useful discussion, and i hope it continues because i think there is a lot to learn here in general.
Safety should always be considered a top priority, though there is admittedly little risk for the imprudent with the ORDbots other than minor burns.
We would also be wise to remember there are several ways and means to enhance safety, and we should not look to or depend on a single add-on feature to convince ourselves that we've made something inherently hazardous into something completely safe. This breeds complacency and can have an opposite effect on safety.

Inherently, an E-stop is a last resort, to try to avert the worsening of a disaster after it has already begun.
If we're going to plan and prepare for disaster, we should consider preventive measures first before corrective or reactive ones.
such as fully enclosing the hazardous areas with safety interlocks that disable operation when opened, like you expect to find on a laser plotter.

Now getting back to the implementation specifics of an E-stop with this board:
it seems the simplest and most bulletproof in terms of least dependency on proper operation of stuff, as was pointed out,
is to simply and directly cut power- which you can do with any equipment, with no special provisions built-in.

This got me thinking about what exactly happens when you do that.
You hit an E-stop when the machine is moving in a direction that is likely about to cause very nasty things, or is already doing very nasty things, and continuing in that direction will continue to cause more nasty things. If you just cut power, and especially if it is moving quickly, it will keep going on its own for a while (Newton's first law), with the only thing to slow it down is probably the act of doing the nasty thing it's doing or getting ready to do, with or without power. and a little friction. Then you pray that the the friction stops it or at least slows it down before it gets (more) nasty on you.
Is this applicable to a 3D printer? maybe, a little - its debatable. i doubt it, really, but i would tend to err on the side of excessive caution, when in doubt. To a large CNC machine or laser cutter? i'm pretty sure it does, at least a lot more more. More mass = more inertia, more torque, and potentially a lot more forceful and devastating nastyness.

But in the end it seems to me that the only practical improvement in "E-stop machine response" we could hope to achieve over the simple & effective "just cut the dang power now!" approach, would be if we instead do a forceful but controlled stop first. am i wrong ? No one has yet commented on this idea.

Active braking, will stop any motion in an instant, no coasting. That seems pretty much a no brainer improvement to me- significant? debatable. but an improvement nonetheless.
Just like my $99 Black & Decker made in China miter saw - let go of the trigger switch, it doesn't just coast to a halt like my table saw, which can take almost a minute. It Brakes. Hard. With a surprising bang and ring of the blade, it's stopped cold in less than 2 seconds. Nice! Did i mention how i really love my cheap miter saw? - and it cuts super clean through aluminum extrusion like its butter, with a special 80 tooth carbide blade made for soft metals- looks just like a machined finish! And i still have all my fingers 8-)
At what cost? If i am not alone in thinking this, then it can be done quite easily, without going through the CPU if thats better. I'm ok with adding the trivial provisions to allow that.
no significant cost, other than the time taken to come to a decision.

Could we do even better? well maybe. Would that be relevant to the ORDbots? almost certainly not. But any possible improvement beyond that would seem to be much more contentious, and moreover imply an increase in complexity and possibly cost which seems less likely to be a worthwhile tradeoff. and delay things further. Who knows, we might come up with something useful by rev 2, and ill keep an open mind (and schematic) for that. :)

Sadly i've got no time to do more work on the layout before well into the weekend - so that leaves a couple more days of discussion before i have to call it. ;)
frob
 
Posts: 260
Joined: Tue Jan 31, 2012 6:24 pm
Location: Montreal, Quebec, Canada

Safety & Reliability

Postby frob » Fri Mar 09, 2012 1:58 am

orcinus wrote:Re: the whole E-stop business...
I have an idea for a fool-proof emergency stop, but it would probably require too many changes to the layout and BOM.
The idea being to add a watchdog IC....


This is an interesting idea, which i will put into my thinking stack (well more of a fifo really) for more consideration later....

A watchdog is always a great idea... Assuming you code for it correctly in the micro. but that's easy to do, even though you rarely see it in practice.
Actually there is a slew of really neat tricks you can use in embedded code to dramatically improve reliability and robustness overall, which indirectly increases safety in a significant way- before even considering hardware tactics. None of which i expect to find in use in open source 3D printer code, though i am prepared to be pleasantly surprised there. I spent a long part of my previous design career developing high end security access controls - they're getting pretty commonplace now, though back in the day it was mostly banks, casinos, govt's & military, airports, etc. that wanted & could afford them. Ya might say that reliability was kinda important. I could could fill a textbook on this subject alone - but other's have already done a great job with that, so i will focus on more fun things to play with:)

Oh, did i forget to mention there's already a watchdog on the board? musta slipped my mind. oh yeah there is, but you'll never find it without a hint. :P
Hmm that could be a fun "where's Waldo?" challenge for a nice reward. Spot the watchdog and win a prize. :D
frob
 
Posts: 260
Joined: Tue Jan 31, 2012 6:24 pm
Location: Montreal, Quebec, Canada

Re: Announcing the ORDuino !

Postby Zat German » Fri Mar 09, 2012 11:28 am

I see the point in a forceful and controlled stop in large machines because there is a lot of mass moving around, potentially at high speeds where the mass is dangerous on its own. The problem I see with a forceful and controlled stop on the ORD and most 3D printers is that if a finger or arm is being pinched or held against a burning hot element(which is the most injurious situation I can think of at the moment) and you need to get it out with an e-stop, anything still driving the steppers for any amount of time after e-stop is pressed is working against that.

I think it is enough to have the ability to drive the CPU RESET low and stepper driver ENABLE low(I think this is the right one to stop the driver from holding the steppers anymore, I am not certain what this "and set the translator to the Home" state means in the datasheet though) and anything more complicated can be implemented by the end user.
Zat German
 
Posts: 141
Joined: Sat Feb 18, 2012 4:48 am

Re: Announcing the ORDuino !

Postby frob » Fri Mar 09, 2012 1:25 pm

Zat German wrote:... if a finger or arm is being pinched or held against a burning hot element(which is the most injurious situation I can think of at the moment) and you need to get it out with an e-stop, anything still driving the steppers for any amount of time after e-stop is pressed is working against that.

Good point! ok i'll buy that.
Zat German wrote:I think it is enough to have the ability to drive the CPU RESET low and stepper driver ENABLE low(I think this is the right one to stop the driver from holding the steppers anymore, I am not certain what this "and set the translator to the Home" state means in the datasheet though) and anything more complicated can be implemented by the end user.

Why not just cut the power to the board instead?
What is the benefit to doing it this way?
frob
 
Posts: 260
Joined: Tue Jan 31, 2012 6:24 pm
Location: Montreal, Quebec, Canada

Re: Announcing the ORDuino !

Postby Zat German » Fri Mar 09, 2012 1:36 pm

frob wrote:Why not just cut the power to the board instead?
What is the benefit to doing it this way?

Well, it is not so much a benefit but providing an alternative to just cutting the power in an emergency. I have assumed from all the features of this prototype board and the things you have said about it that it was something to explore possibilities but everything on it may not be on the final version. Having these two lines exposed in an easy to drive way allows us to explore the concept more, especially for one as undeveloped in the 3D printer space as that of an emergency stop. If I have misunderstood the point of the prototype, then yeah, cutting the power is sufficient.

edit: Oh yeah, cutting power in an emergency also assumes that you will not be receiving any power from the USB connection. I should go back and read up on your specs for this again, I do not recall if you are doing this or not.
Zat German
 
Posts: 141
Joined: Sat Feb 18, 2012 4:48 am

E-stop reloaded

Postby frob » Fri Mar 09, 2012 2:04 pm

Zat German wrote:Well, it is not so much a benefit but providing an alternative to just cutting the power in an emergency. I have assumed from all the features of this prototype board and the things you have said about it that it was something to explore possibilities but everything on it may not be on the final version.

Touché! :mrgreen:
Zat German wrote:Having these two lines exposed in an easy to drive way allows us to explore the concept more, especially for one as undeveloped in the 3D printer space as that of an emergency stop. If I have misunderstood the point of the prototype, then yeah, cutting the power is sufficient.

Yes, one of the purposes of prototypes is to experiment with unproven ideas.
I am powerless when you use my own unassailable logic against me. consider it done ;)

Zat German wrote:edit: Oh yeah, cutting power in an emergency also assumes that you will not be receiving any power from the USB connection.

True, but this affects the CPU only, not the motor drivers, which need the external motor power to energize the motors.

I have the CPU reset and all motor driver resets tied together - so just activating that will do the job. I will provide a 2-pin connection point for that.
Also, i will look at the implications of running the motor step lines through a controlled buffer with pulldowns on the outputs and a means to to externally control that as well. just to play with the "active braking" idea later. there is already such a buffer used for the SD-card interface, and it costs 20 cents - adding another one adds no significant cost, only finding one more cm for it in a congested area may be a little tricky.
EDIT: moving the USB port to the lower edge as i plan to will open up the needed space, so this likely will happen.
frob
 
Posts: 260
Joined: Tue Jan 31, 2012 6:24 pm
Location: Montreal, Quebec, Canada

Re: Safety & Reliability

Postby orcinus » Sat Mar 10, 2012 3:23 am

frob wrote:A watchdog is always a great idea... Assuming you code for it correctly in the micro. but that's easy to do, even though you rarely see it in practice.


I love watchdogs. And yeah, people rarely use them, which is a pity.
The last time i've seen them used in hobby(-ish) electronics was in AMB's kits (DAC in particular).

Same goes for brownout detectors.

frob wrote:Oh, did i forget to mention there's already a watchdog on the board? musta slipped my mind. oh yeah there is, but you'll never find it without a hint. :P
Hmm that could be a fun "where's Waldo?" challenge for a nice reward. Spot the watchdog and win a prize. :D


I assume this isn't it, then:
Image

Most SMD watchdog ICs i've seen are either SOIC8 or SOT23.
This looks like it might be a 3-pin side of a SOT23.

Of course, if we need a hint to find it, its probably not a usually seen package :)
orcinus
 
Posts: 720
Joined: Tue Feb 14, 2012 4:03 am

PreviousNext

Return to ORD Bot

Who is online

Users browsing this forum: No registered users and 5 guests