Jump to content

Changing Location where Tool Change Takes Place


Go to solution Solved by GregValiant,

Recommended Posts

Posted · Changing Location where Tool Change Takes Place

Hello, I am having some issues trying to print with two printheads and one seems to be with the printhead changing tools over the model and thus wiping ooze on it before going to the purge tower (or ooze shield if I had it enabled). I tried changing the beginning command in the extruder itself with g-code, but this did not seem to fix the issue. I'd appreciate help changing this and if you have any other suggestions to prevent my prints from failing. I have the MODIX Big60 V4 printer with the 2nd IDEX printhead. I have attached my g-code and a zip file with the g-code and a video of the 1st 9 ish minutes of the print.

MV4BIG60_Test Cube Part1_v2.gcode Test Cube Attempt.zip

  • Link to post
    Share on other sites

    Posted · Changing Location where Tool Change Takes Place

    This is a lot more complicated than people assume.  IDEX printers can be made to work with Cura, but they aren't directly supported.

    #1 is the poor layer adhesion of your initial layer.  The skirt/ooze shield just breaks away and gets carried around.  That's a function of the bed surface, the print material, and the bed temperature and whether you are using any adhesion promotor.

     

    Prior to any tool change, and based on the "Nozzle Heat Up Speed", Cura will add an M104 line to bring the inactive extruder up to it's set print temperature.  It's timed to get to the set point right at the tool change.

    Then the tool change occurs and there is an immediate M109 to insure that the new tool doesn't start printing until it is up to temperature.  That M109 will often cause a delay of 10 seconds even if the nozzle is already at the set point.  That is built into the firmware.

    So the new Active Tool waits until it knows it's hot (oozing while it waits) and the inactive tool goes to Standby Temperature of the material (oozing until it cools down).

     

    You can try increasing the "Nozzle switch retraction distance" and hope that the filament gets pulled back far enough that it doesn't ooze.  That can be tough on direct drive extruders as there is only so much room.

    You can move the Prime Tower so it is centrally located between the park positions of the two heads, and not in line with the model.

    Looking at the gcode - every tool change has this code:
    M82 ;absolute extrusion mode
    G1 X585.115 Y550.115 F5000
    M83 ;relative extrusion mode

    Can I assume that is the code you put into the Extruder StartUp Gcode?  It appears to be overridden by the firmware.  The first move from the park position seems to be to the exact position the nozzle was before the tool change (right over the print) and only then does it move on to the X585 Y550 location.

    Delete both the Extruder StartUp Gcodes and instead put something like this into both Extruder Ending Gcodes.

    G91
    G0 X0 Y50
    G90

    Where the Y value is sufficient to move the nozzle off the part and towards the prime tower location.  Maybe that will fool the firmware "Park" macro into thinking that is the "return to" location.  The booger should end up on the prime tower.

    But you have to fix the bed adhesion problem first.  You won't get a good print until you get that initial layer to stay down.

     

     

  • Link to post
    Share on other sites

    • 2 weeks later...
    Posted · Changing Location where Tool Change Takes Place

    @maugustyniak

    Did you ever get this figured out?  The question regarding this same sort of movement came up in a bug report on Github.  The report was in regards to a Flash Forge IDEX printer but it sounded like exactly the same with the tool change occurring over the print.

  • Link to post
    Share on other sites

    Posted (edited) · Changing Location where Tool Change Takes Place

    After going over that bug report I thought about it a bit and came up with a post-processor that takes the tool change and moves it down below the travel to the prime tower.

    You must have "Enable Prime Tower" checked in Cura or it exits.

    It doesn't make any changes on the first layer because the tool changes occur without a travel to the Prime Tower, but above that - if there is Prime Tower on the layer it will take this code:

    ;LAYER:1
    G1 F1200 E19.11976
    G1 F600 Z0.6
    G92 E0

    T0                                                   >>>>> Tool change occurs over the print
    G92 E0
    M105
    M109 S195                                   >>>>>> If there is a "wait for temperature" it occurs over the print
    M104 T1 S205
    M205 X10 Y10
    G0 F9000 X224.295 Y217.158 Z0.6  >> Travel to Prime Tower
    G0 X223.029 Y217.725
    M104 S205
    ;TYPE:PRIME-TOWER

     

    and change it to this code:

    ;LAYER:1
    G1 F1200 E19.94616
    G1 F600 Z0.6
    G92 E0
    G0 F9000 X224.295 Y217.158 Z0.6  >> Travel to Prime Tower
    G0 X223.029 Y217.725
    M104 S205
    ;TYPE:PRIME-TOWER
    T0                                                 >>>> Tool change above the prime tower
    G92 E0
    M105
    M109 S195                                 >>>>> "wait for temperature" occurs over the prime tower.
    M104 T1 S205
    M205 X10 Y10
    G1 F600 Z0.4
    G1 F1200 E16
    G1 F3000 X222.123 Y219.42 E16.06617

     

    Other settings become involved and the script is fairly simple.  It's possible that "Z-hop at tool change" or some other things might cause a problem, but from what I've seen in debugging, it should not be an issue.

    I'm trying to get the script to work with any IDEX machine that "Parks on tool change" since all of them seem to suffer from the same problem.

    Unzip this and put "MoveToolChange.py" into your Configuration Folder and the "scripts" sub-folder.  It will be available with the other post processors under "Extensions".

    I'm looking for some feedback on this.

    The search for the Tool Change lines is for both "T" and "M135".  If your gcode tool change command is different then the post won't work until I add the command to the search criteria.

    MoveToolChanges.zip

     

     

     

     

     

    Edited by GregValiant
  • Link to post
    Share on other sites

    Posted · Changing Location where Tool Change Takes Place

    I think the script works well except for the first layer. I'm having issues slicing in a way that actually works with my printer in general with Cura, my printer isn't designed to print with T1 first and I can't seem to find a way to disable that to force it to start with T0 (it should be able to do that considering both extruders have filament to place on layer 1). And for some reason, it sets my T0 to 205C for both active/standby and my T1 to 180C for active/standby, even though I have the standby temp set on each for 180C and the active for 205C.  

     

    While this isn't practical for a full print, I switched the support material to be T0 and the primary print to be T1 just to see what the first few layers would look like with your script. Everything deposited at the purge tower except for the very first layer tool change, where it deposited on the first layer of support. I attached the code where I didn't switch T0 to support material for reference. If I can get the rest of the settings fixed so I can keep tweaking the retraction settings I'd be happy to use that script, but my printheads crash into each other if T1 is selected first.

     

    image.thumb.png.458349f168d2008d0765cd40cb921e1a.png

    cura_idex_test_v2.gcode

  • Link to post
    Share on other sites

    Posted · Changing Location where Tool Change Takes Place

    Attaching a newer version of the gcode with some edits to settings to fix the T0/T1 issue (it was the interleaved tower) and a video that shows what's happening.

    cura_idex_test_v3.gcode OCVideo.744821711.493919.zip

  • Link to post
    Share on other sites

    Posted · Changing Location where Tool Change Takes Place

    With that little model in Cura, and Cura set up to slice, use the "File | Save Project" command and post the 3mf file here.

    It may be possible to adjust the tool change movement using the "Extruder Start" and "Extruder End" gcode fields.

     

    Can you verify the park position for each extruder?  It looks like T0 parks at X=0 and T1 parks at X=600.

     

     

  • Link to post
    Share on other sites

    Posted · Changing Location where Tool Change Takes Place

    I'm not sure how to check the park position for certain, but T0 parking at Y = 0 & T1 at Y = 600 sounds accurate. The photo attached shows my Y restrictions for the print area.

    image.png

    cura_idex_test_v3.3mf

  • Link to post
    Share on other sites

    • Solution
    Posted · Changing Location where Tool Change Takes Place

    I see some things in the StartUp and Ending Gcode that I don't care for.

    In the Ending Gcode there is this line:

    • G1 X{move.axes[0].min+2} Y{move.axes[1].max-2} F6000 ; move to the back left

    That line results in this in the gcode:

    • G1 XNone YNone F6000 ; move to the back left

    So the line doesn't do anything because the printer will see it as nonsense.  The reason is that the keywords are not Cura keywords.  They might work with a different slicer.

     

    In the Startup Gcode the temperature values are hard coded in.  That is never a good idea.

    • M104 T1 S205; set extruder 1 to 205C
    • M109 T0 S205; set extruder 0 to 205C and wait

    Cura is adding the proper temperature lines as a prepend prior to the StartUp Gcode BUT when the printer sees these hard coded temperature lines it will set the hot ends to 205 regardless of what you have in the Cura settings.

     

    Although the printer settings state that the printer has a heated bed, the Bed Temperature is set to 0°.  Is that correct?

     

    I've taken the liberty of revising the StartUp and Ending Gcodes.  I think you need a base value to start from and the current start and ending aren't getting it done.

    I thought about adding movement commands to the Extruder End gcodes but I decided against it.  The original video seems to show the newly activated tool going to the "last known position" of the previous tool.  It might be better to handle that with the post processor.  The new version of the post processor (attached) adds a move to the center of the prime tower just before the tool change.  Hopefully any boogers will get stuck to the prime tower.

     

    The printer in the project file is one I set up to be like yours.  Opening the file will not over-write your current printer defaults.  Take a look at the Start and Ending gcodes and see what I did.  The model is the one you supplied.

     

     

     

    GV cura_idex_test.3mf MoveIDEXToolChanges.zip

  • Link to post
    Share on other sites

    Posted · Changing Location where Tool Change Takes Place

    Could you maybe send screenshots of the start/end code you changed? I can't seem to load the fake printer settings you made. 


    image.png.25f4daf4184173dfbc270354b07196e7.png

  • Link to post
    Share on other sites

    Posted · Changing Location where Tool Change Takes Place

    Ouch.  The printer is a Creality CR-10max that I altered.  I wouldn't have thought it would be a problem.

     

     

    You can open this in a text editor like Notepad.  It only contains the StartUp and Ending gcodes.

     

    Modix Start and End.gcode

     

  • 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.9 stable released!
        Here comes Cura 5.9 and in this stable release we have lots of material and printer profiles for UltiMaker printers, including the newly released Sketch Sprint. Additionally, scarf seams have been introduced alongside even more print settings and improvements.  Check out the rest of this article to find out the details on all of that and more
          • Like
        • 5 replies
      • Introducing the UltiMaker Factor 4
        We are happy to announce the next evolution in the UltiMaker 3D printer lineup: the UltiMaker Factor 4 industrial-grade 3D printer, designed to take manufacturing to new levels of efficiency and reliability. Factor 4 is an end-to-end 3D printing solution for light industrial applications
          • Heart
          • Thanks
          • Like
        • 7 replies
    ×
    ×
    • Create New...