Jump to content

Cura and dual extrusion fix suggestion for Makerbot


larnil

Recommended Posts

Posted · Cura and dual extrusion fix suggestion for Makerbot

I have used Cura as my favorite slicer for time now for single extrusion.

Cura produces the gcode which I run through GPX-plugin to produce x3g code for my printer.

Printer: Duplicator 4 (Makerbot clone) running Sailfish 7.5 as firmware.

When I wanted to do some dual extrusion everything seemed to be fine. Model was sliced, gcode produced (which looked fine in Cura+Repetier) and x3g loded on printer. First layers first color printed fine, but then problems started. When the extruder switched it started with a big blob, extruding so much filament that the extruder started to miss steps.

A lot of searching later I found a post here on the forum, that Cura does not support dual extrusion on Makerbots. Why? Because Cura developers need feedback from users in order to know how the gcode should look. Well, I'll try to give my 50 cents here.

I've done some searching, checking and trials and found what I believe is what needs to be fixed for Cura to produce dual extrusion gcode for Makerbots and clones.

When Cura produces dual extrusion gcode the E-steps are all added up.

Example - each extruder extrudes 10mm then switches

Start: T0 extrudes 10mm -> E increases from 0 to 10

switch to T1

E-step is 10 and T1 continues 10mm more --> E is now 20

switch to T0

E-step is 20 and T0 continues 10mm more --> E is now 30

So, if extruder0 have extruded 10mm filament and a switch is done then extruder1 continues from 10mm and onward. This is exactly the key problem, and the reason I got blobs when printing.

Makerbots add up E-steps too - but separate for each extruder.

So, if extruder0 have extruded 10mm filament and a switch is done then extruder1 starts from 0 and extrudes continues from 10mm and onward.

Example - each extruder extrudes 10mm then switches

Start: T0 extrudes 10mm -> E increases from 0 to 10 for T0

switch to T1

E-step is 0 for T1 and T1 continues 10mm more --> E is now 10 for T1

switch to T0

E-step is 10 for T0 and T0 continues 10mm more --> E is now 20 for T0

The difference between the 2 E-step calculations adds up more and more and will quickly become huge.

So... if the 'Makerbot flavour' gcode is change to handle the E-step absolute value per extruder instead of as a total for both extruders, then I believe Cura would produce Makerbot dual extrusion friendly gcode.

 

  • Link to post
    Share on other sites

    Posted · Cura and dual extrusion fix suggestion for Makerbot

    I'll see what I can do. But it's not a high priority for me.

    Do you know if the G92 works? Because if that works I could just reset the extrusion on every extruder change and I will not have an issue.

     

  • Link to post
    Share on other sites

    Posted · Cura and dual extrusion fix suggestion for Makerbot

    Thanks for looking into it Daid

    I do not know if G92 works. I'll make some tests with some manual edited gcode and return with an answer.

     

  • Link to post
    Share on other sites

    Posted · Cura and dual extrusion fix suggestion for Makerbot

    Does not work:

    G92 does not work with sailfish 7.5 as a extruder reset at layer change. Actually it has the strange impact that the extruder does not change even though an extruder change command it right at the line before. Posts elsewhere on the web suggest the G92 was broken in Sailfish 6.xx and haven't worked properly since.

    Works:

    Adding up E per extruder instead of a combined total

     

  • Link to post
    Share on other sites

    Posted · Cura and dual extrusion fix suggestion for Makerbot

    Something I noticed in my gcode is that my sailfish 7.7 duplicator uses

    G54

    M108 T0

    M18 A B

    And

    G55

    M108 T1

    M18 A B

    To switch extruders and use the firmware toolhead offset instead of

    M135 T(n)

    Even though I've picked the right flavor.

    Any chance your converter fixes that too, or can you make it fix that? I'm not using GPX for the files, I'm using ReplicatorG

  • Link to post
    Share on other sites

    Posted · Cura and dual extrusion fix suggestion for Makerbot

    The plugin code below hasn't been tested extensively, but works for me.

     

    #Name: Fix E value for Sailfish Firmware#Info: Compute E value per extruder.#Help: TBD#Depend: GCode#Type: postprocessE = [0.0, 0.0]lastE = 0.0tool = 0with open(filename, "r") as f:       lines = f.readlines()with open(filename, "w") as f: for line in lines:   code = list(line.split(";"))[0]   if code.startswith("T0") or code.startswith("M135 T0"):      E[0] = lastE - E[tool]     tool = 0     f.write(line)   elif code.startswith("T1") or code.startswith("M135 T1"):      E[1] = lastE - E[tool]     tool = 1     f.write(line)   elif code.startswith("G0") or code.startswith("G1"):     for part in code.split(" "):        if part.endswith("\n"):         part = part[:-1]       if part.startswith("E"):         lastE = float(part[1:])         f.write('E{0} '.format(lastE - E[tool]))             else:         f.write('{0} '.format(part))     f.write('; {1} {2} {3} {4}\n'.format(part[:-1], tool, lastE, E[0], E[1]))   elif code.startswith("G92"):     for part in code.split(" "):        if part.startswith("E"):         lastE = float(part[1:])         E[tool] = lastE     f.write(line)   else:     f.write(line)

     

  • Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
    • Our picks

      • UltiMaker Cura 5.7 stable released
        Cura 5.7 is here and it brings a handy new workflow improvement when using Thingiverse and Cura together, as well as additional capabilities for Method series printers, and a powerful way of sharing print settings using new printer-agnostic project files! Read on to find out about all of these improvements and more. 
         
          • Like
        • 18 replies
      • S-Line Firmware 8.3.0 was released Nov. 20th on the "Latest" firmware branch.
        (Sorry, was out of office when this released)

        This update is for...
        All UltiMaker S series  
        New features
         
        Temperature status. During print preparation, the temperatures of the print cores and build plate will be shown on the display. This gives a better indication of the progress and remaining wait time. Save log files in paused state. It is now possible to save the printer's log files to USB if the currently active print job is paused. Previously, the Dump logs to USB option was only enabled if the printer was in idle state. Confirm print removal via Digital Factory. If the printer is connected to the Digital Factory, it is now possible to confirm the removal of a previous print job via the Digital Factory interface. This is useful in situations where the build plate is clear, but the operator forgot to select Confirm removal on the printer’s display. Visit this page for more information about this feature.
          • Like
        • 0 replies
    ×
    ×
    • Create New...