Filament sensing for syringe
Hey all of you,
Instead of using continuous filament I am using a syringe system. This means it has some sort of "home" position and an empty position. So far i did use the filament out function at the low end to pause the print (simple switch). But having it set up this way makes it a little hard to precisely reference the top position without manual interaction.
To make things easier I moved the switch to the top (home) position, but didn't find a way to get it working so far.
- My first Idea was to "home" E (move until "endstop" is triggered, stop and set the E value to 0) but did not find a way to do this. I also did not find a way to set am max for E.
- My second idea is to treat E as an additional axis wich does not move below a certain point.
So far I crated A as an additional axis using the E motor, which lets me home it and set a max, but when printing only the E value and not the A value change.
Is there a way to map the E values from a G-Code to another axis? I found Lnnn in M563 but did not get it working.
- The last option would be to use a switch at the low and top end but doing so would mean quite a bit of hardware work which I'd like to avoid.
Open for any suggestions!
It would also be great to always know the position of the extruder for checking if there is enough material left for the next print. I assume this could be done using relative extrusion moves but wanted to sort out the basics first.
Two ways that you could home the syringe to the full position:
Use stall detection. This is automatically enabled when you send a G1 H1 Exxx command. You still need to set the stall sensitivity using M915, also reducing the motor current during stall detect homing usually helps.
Home the extruder by temporarily assigning an additional axis to the same driver that the extruder uses. Then you can use a homing switch. Hide that axis when not homing.
To detect when the syringe is getting low, you could have the new daemon.g file supported by RRF 3.01 monitor the total raw extrusion property of the extruder.
That was a fast reply! Thanks a lot!
Stall detection worked great and also explains why trying to home against the button using G1 H1 Exxx did behave strange. (stopped right away)
Hiding the unused axis also is a good idea I did not know about.
Right now I am still running on 2.05 and did not look much into RRF 3. Is there some documentation on the new daemon.g file as I did not find much about it?
Getting back on your reply at the reprap.org forum:
Good to know extrusion is always relative. Obviously changes a few things.
Can you tel me how to set something up actually adding the E values including M the extrusion multiplier?
If this gets too complicated I guess I'll add a second switch somewhere, even if it is something I'd like to avoid.
Is there a way to send E Moves to another axis which has a actual position? (If it is actually moving or not doesn't matter I guess) Something like creating a Axis for homing and the hiding it.