Welcome! Log In Create A New Profile

Advanced

Teacup M102 extruder reverse

Posted by awmt102 
Teacup M102 extruder reverse
July 03, 2011 10:46AM
Hi all,

I have had some great success having just got all of the hardware working properly without any major issues.

My first print was OK but not great so I am looking at tweaking my Skeinforge (40 - built into ReplicatorG) settings.

I have been reading through the source code for the firmware and finding out exactly what skeinforge is trying to do and what Teacup is doing with the G/M-codes. The one that I really want to get working is M102 - reverse extruder. My skeinforge output uses it a lot but looking in gcode_process.c I can see M102 is not being used, there is just a blank placeholder. I'm not 100% clear on what version I have and cannot find it written in any files, but the latest gcode_process.c on github is the same as the one I have.

I suppose my question is am I right in saying that extruder reversal has not been implemented yet? If so is there an intent to implement? If not is there a an alternative method for preventing stringing when the extruder has to move without extruding?

Thanks

Andy
Re: Teacup M102 extruder reverse
July 03, 2011 07:44PM
M102 is only relevant to DC motor extruders. You're correct in that it hasn't been implemented.

For stepper motor extruders, sending an E word that causes a negative E move retracts the filament.

M102 would be easy if you do want it, e_direction(1); heater_set(DC_EXTRUDER, DC_EXTRUDER_PWM); then add e_direction(0) before heater_set in M101 to make sure it sets direction too.

Are you actually going for reversal with a DC motor extruder? I will commit this to master if so.

Edited 1 time(s). Last edit at 07/03/2011 07:46PM by Triffid_Hunter.


-----------------------------------------------
Wooden Mendel
Teacup Firmware
Re: Teacup M102 extruder reverse
July 03, 2011 07:50PM
like this:

diff --git a/gcode_process.c b/gcode_process.c
index 00d5b29..34b2dba 100644
--- a/gcode_process.c
+++ b/gcode_process.c
@@ -453,6 +453,7 @@ void process_gcode_command() {
                                        enqueue(NULL);
                                }
                                #ifdef DC_EXTRUDER
+                                       e_direction(0);
                                        heater_set(DC_EXTRUDER, DC_EXTRUDER_PWM);
                                #elif E_STARTSTOP_STEPS > 0
                                        do {
@@ -466,6 +467,12 @@ void process_gcode_command() {
                                break;
 
                        // M102- extruder reverse
+                       #ifdef  DC_EXTRUDER
+                               case 102:
+                                       e_direction(1);
+                                       heater_set(DC_EXTRUDER, DC_EXTRUDER_PWM);
+                                       break;
+                       #endif
 
                        // M5/M103- extruder off
                        case 5:


-----------------------------------------------
Wooden Mendel
Teacup Firmware
Re: Teacup M102 extruder reverse
July 08, 2011 11:29AM
Hi,

No I am not using a DC motor. I have since realised that E_STARTSTOP_STEPS is there to provide stepper motor reversal. I have been paying with the value but still get very stringy prints.

I have found that I see a marginal improvement with this is increased to the 100s but very little difference if I continue to increase it (I have gone as far as 20000 with no additional improvement).

Observing the stepper when it reverses It does not seem to be withdrawing much (definitely not a full revolution of 200 steps). This would validate my findings that >approx 100 E_STARTSTOP_STEPS has no impact since it is not actually doing >approx 100 steps at reversal.

I assume the reason for not sucking back more is because there is only a finite time between moves in which to do the reversal. In which case I must ask how can I reduce the stringiness if I am already at the limit of E_STARTSTOP_STEPS?

Thanks

Andy
Re: Teacup M102 extruder reverse
July 08, 2011 12:22PM
If 200 steps is not a full turn it is most likely that you have microstepping enabled. @ 16x a full revolution would take 3200 steps for one revolution.


FFF Settings Calculator Gcode post processors Geometric Object Deposition Tool Blog
Tantillus.org Mini Printable Lathe How NOT to install a Pololu driver
Re: Teacup M102 extruder reverse
July 08, 2011 12:27PM
awmt102 Wrote:
-------------------------------------------------------
> Hi,
>
> No I am not using a DC motor. I have since
> realised that E_STARTSTOP_STEPS is there to
> provide stepper motor reversal. I have been paying
> with the value but still get very stringy prints.

Skeinforge (at least version 41) has settings under the dimension setting that automatically enter retraction and advance for you (see image). This works extremely well for me at 3mm. Don't use any "extra" distance- this really messes up my prints. The retraction distance is not only used for retraction, but also as the advance before the next extrusion movement. For this you should set the retraction in Teacup to 0 steps - SF41 does it for you.

All this is HIGHLY dependent on your extruder. If you are using a bowden extruder, I doubt that any amount of retraction at any speed will help you. The filament acts like a giant spring, so you would have to retract maybe 10mm in a few microseconds in order to keep it from blobbing and stringing. This is not possible with today's extruders afaik.
I also noted that with the exact same setup I seem to get much less blobbing and stringing (essentially none) using an aluminum nozzle as compared to a brass nozzle where I always get strings, no matter how far I retract.

Good luck - you're on the right path.

ST
Attachments:
open | download - skeinforge dimension.png (36.2 KB)
Re: Teacup M102 extruder reverse
July 10, 2011 01:05PM
Thanks for the help.

I started looking at the retraction in Skeinforge and found that it pretty much solves my 'stringy' issues.

Thanks again.

Andy
Sorry, only registered users may post in this forum.

Click here to login