-
-
Notifications
You must be signed in to change notification settings - Fork 19.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FR] Endstop for extruder and EMAX and EMIN (for syringe-style dispensers) #13813
Comments
Would it not be easier to start with a full syringe and knowing the travel required to empty it from a linear motion perspective? How would the endstops on the extruder axis help here? You would always start with an empty syringe then somehow fill it automatically? |
@psavva i think to start with full syringe, we need E_MIN_PIN at least. |
Honestly, I haven't put that much thought into it. It was more of a general question to gauge how difficult it would be to implement something like this. At the minimum, if not hardware endstops, I would need to be a button that the user could press when the syringe was "full", that would issue "G92 E0"; then Marlin would need software endstops that would keep the extruder from bottoming out the syringe. However, if Marlin had hardware endstops, it would be possible to wire them up to the stallguard output of Trinamic drivers, which would allow the printer to know when the syringe had bottomed out or became clogged. |
I think if you had to treat the endstop as a filament runout sensor, it would probably be the best... IE: when hitting the endstop trigger the filament runout pin, and in this way, your extrusion will stop when you run out of material... |
@psavva: This is an interesting idea. I'll ask our hardware people whether that could be done. Of course, there would still be a problem is the user retracted the other way. At some point the plunger will pop out of the syringe and will reach a travel limit. |
I guess the same could be said for filament. If you retracted it enough, it would pop out of the extruder. Using the same logic, I would expect that retraction on the syringe would be minimal and should be zero chance of it popping out given the retraction is set to some logical value. |
@psavva: I am not referring to retraction, the limits would be useful to keep the user from causing the linear axis from bottoming out. The reason for E_MAX and E_MIN would be for idiot-proofing. |
@marcio-ao I added homing of e axis using G28 and endstops in my e_homing branch but I recommend also to have a look at the Marlin2ForPipetBot branch of my marlin fork. The latter is configured for my own liquid handling robot "pipetBot-A8". It should be doable to apply the changes I did in my few commits to current Marlin2.0 code. So far it is tested only for cartesian setups with limited features enabled. the e_homing branch has some extra sanity checks that you can remove if you know what you are doing. You may be able to modify it to support extra endstops / dual endstops per axis. Otherwise, you can wire both min and max limit switches in parallel or connect both to one pin via harware logic gates. Using wx.python+mecode I also developped GGCGen, a GUI for creating gcode-scripts for lab robots that run Marlin. The README is quite detailed. |
Interesting, you use marlin for lab robot. |
Curious question. Marlin currently supports a filament runout sensor, could this not be utilised to detect when the syringe has bottomed out? Not ideal, but maybe a work around till something could be implemented? |
@DerAndere1: That's great! I'll have to take a look at your branch and see if there is anything we can use! |
There is also an Old discussion at #8519 and the customized marlin1 in the subdirectory src/Firmware/Marlin of the evobot Software https://bitbucket.org/afaina/evobliss-software/src/master/ . They implemented it in a separate Syringe.h Syringe.cpp with a syringe class and with custom M-codes. |
Hi @marcio-ao and @DerAndere1 |
@EhsanNri : One way is to have a look at the last 4 commits in my 2.0.x_E_homing branch: https://github.com/DerAndere1/Marlin/commits/2.0.x_E_homing . Another way is to configure a linear axis instead of an extruder for the syringe. Have a look at options |
@DerAndere1 Thank you for your reply! |
We are developing a bio-printer that uses a syringe [1] instead of continuous feedstock on the extrusion axis. Because of this, it will be necessary to add an endstop to the E axis and to have limits on that axis.
How difficult would it be to add this type of functionality to Marlin?
[1] A goostruder! For bio materials, or chocolate!
The text was updated successfully, but these errors were encountered: