Welcome! Log In Create A New Profile

Advanced

Feed Hold Switch

Posted by J-Dubs 
Feed Hold Switch
May 28, 2010 09:32AM
I am wondering if anyone has added a feed hold switch to their machine or if anyone would have an idea on how to do it. I was thinking that I could use pin 1 on the motherboard as an input and then have the firmware follow the state of that pin and pause the program (much like the host software "Pause" button) when the pin goes high or low.

Here are the two hurdles:

#1 Is pin 1 useable?

#2 I know very little about C++ and the size of the firmware is rather daunting


-J

True wisdom lies in knowing that you know nothing
Re: Feed Hold Switch
May 28, 2010 07:49PM
1: Depends on the specific setup
2: Fairly simple to do, write to the interrupt register to stop the timer interrupt associated with the stepper stepping.

There may be some problems with it:

What happens to the serial input? You MUST keep accepting serial input, or somehow communicate to the computer to not send anything anymore.

What happens to the extruder? Stopping the XYZE steppers isn't enough to stop the extruder from oozing, causing blobs and a ruined print.

Does the extruder back up, as per a normal EOL stop?
Does the "feed hold" not take effect until the extruder isn't extruding anymore?
Do we ignore that problem, and hope for the best? (Might work, depending on plastic type and extruder characteristics.)
Does it complete the current line, and then do a normal back-up-the-extruder-motor stop?

What about de-bouncing the button? If you have a "click on and click off" switch that may be sufficient, but a standard only-on-when-actively-pushed button needs to be debounced by the firmware to give consistent results. As far as I know that's not something the firmware has had to do yet.

I guess the real question is:
What do you want to use this for?
If you want it for an emergency stop, I like nophead's implementation: The processor resets and the robot homes to a safe location.

From what I know of the firmware, it's almost certainly sufficient to write the appropriate bit to the interrupt control register, turning the stepper timer off. See the processor datasheet for more details. That ignores the blob problem, and doesn't home the robot, but maybe that's what you want? Shouldn't interfere with the serial timing. If it does, you might want to check the serial reading code and read the relevant parts of the datasheet.

At worst, you reload the standard firmware and try again, right?


--
I'm building it with Baling Wire
Re: Feed Hold Switch
May 29, 2010 10:56AM
I am using an external temperature controller and I want to be able to pause the program right where it is if the temperature falls to low. The temperature controller has an alarm coil that I am using to enable the extruder stepper driver.


-J

True wisdom lies in knowing that you know nothing
Re: Feed Hold Switch
May 29, 2010 06:39PM
So you want the microcontroler to pause when the tempurature falls to low?

OK, you'll probably want to finish your current line, and back up the extruder motor (if you're doing that) and wait in place for the temperature to come back up.

What microcontroler and firmware are you using?


--
I'm building it with Baling Wire
Re: Feed Hold Switch
May 31, 2010 01:03PM
I am using the gen 1.2 motherboard and the 5d firmware.


-J

True wisdom lies in knowing that you know nothing
Re: Feed Hold Switch
May 31, 2010 10:52PM
so one of the atmel 644's, with plenty of code space, and the 5D firmware from where? There are several versions of the 5D firmware.

regardless, what you'll want to do is find where it starts on a new movement command, and add a temperature test - in a loop, so it loops forever if the temperature isn't right.

It'll get better results to find some way for the microcontroller to turn the heater up/down though.


--
I'm building it with Baling Wire
Sorry, only registered users may post in this forum.

Click here to login