Welcome! Log In Create A New Profile

Advanced

Need help implementing PAUSE in Repetier Host/Firmware

Posted by Eric Mack 
Need help implementing PAUSE in Repetier Host/Firmware
May 19, 2013 04:10PM
I want to add a switch to my RepStrap so that when filament runs out it will sound an alarm and pause Repetier so that I can load new filament without damaging the print.

Is there an easy way to implement a 'pause' pin in Repetier host/firmware that when activated will pause execution but NOT disable heaters (Bed & Extruder)?

From what I can tell, there is a reset setting that determines what happens when a reset pin is enabled. The problem, according to the documentation is that it will also disable the heaters...

From Configuration.h:

/** What shall the printer do, when it receives an M112 emergency stop signal?
0 = Disable heaters/motors, wait for ever until someone presses reset.
1 = restart by resetting the AVR controller. The USB connection will not reset if managed by a different chip!
*/
#define KILL_METHOD 1

The default is "1" which will reboot the controller. Setting to zero, will pause but the documentation says it will also disable heaters.
Re: Need help implementing PAUSE in Repetier Host/Firmware
May 19, 2013 04:56PM
How will it know the filament is running out?

Ben
Re: Need help implementing PAUSE in Repetier Host/Firmware
May 19, 2013 05:04PM
Thought was to two use sensors:

To detect filament out, I would use a simple lever switch - the kind with a roller at the end -- to pinch the filament. When the switch trips I would know the filament had run out. If I mount the switch upstream from the hot end (say 6") that should provide sufficient time for the pause command to take effect given that there will likely be other commands ahead of it in the queue.

To detect filament movement, my current thinking is to run the filament against a rubber wheel attached to an encoder. From there I can detect movement in both directions and speed of movement. I don't need speed so I will ignore that.

Then, I envision writing some code into a standalone microprocessor to watch movement, ignore retracts, and if we see a stoppage for a period of time I would consider there to be a problem.

Future enhancements could include monitoring a pin from the printer controller so that it knows when the controller is running a program. Or, better still, eventually find a way to integrate with a pin from the controller so that the circuit could compare when the host is asking for filament to whethere filament is moving.

That's the big picture. For now, I would like to simply monitor a filament out condition and have it pause the machine, sound an alarm. I want the pausing of the machine to do whatever pause does (like move to a park position?) but not kill the heaters.

That's my thinking so far.
Re: Need help implementing PAUSE in Repetier Host/Firmware
May 19, 2013 05:22PM
I dont have a good answer, but this might be a good time to bring up this idea; Why not have a standard serial/I2C interface with some standard way get info and send commands? This could include a 'pass-along' command for getting/sending data from the computer attached to the printer.

Of course with accompanying arduino library, The idea would be to make experimenting with ideas like these easier. I think the melzi can have a slave attached already, something like this might exist, but i havent found much documentation on any such.
Re: Need help implementing PAUSE in Repetier Host/Firmware
May 19, 2013 05:54PM
Check my answer in this thread for a solution

[forums.reprap.org]


Repetier-Software - the home of Repetier-Host (Windows, Linux and Mac OS X) and Repetier-Firmware.
Repetier-Server - the solution to control your printer from everywhere.
Visit us on Facebook and Twitter!
Sorry, only registered users may post in this forum.

Click here to login