1. Got a question or need help troubleshooting? Post to the troubleshooting forum or Search the forums!

Multiple colors with single extruder

Discussion in 'Printing Filament' started by mark tomlinson, Mar 20, 2016.

  1. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    21,138
    Likes Received:
    6,997
    A cool video that demos some basic multi-color printing.
    Me, I airbrush, but this is a cool approach :)

     
  2. KTMDirtFace

    KTMDirtFace Well-Known Member

    Joined:
    May 18, 2015
    Messages:
    1,247
    Likes Received:
    461
    I watched his video on that the other week and finally tried it.

    My first attempt, came out pretty good other than i need to tweak some settings. It was printed on my replicator 2. I'm going to have to figure out a slightly diffrent way to do it on the robo3d because of the Auto level. Probably just set the Simplify3d end script for each color to just pause instead of shutting everything down.

    [​IMG]

    [​IMG]
     
    mark tomlinson likes this.
  3. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    21,138
    Likes Received:
    6,997
    That is an excellent example too.
     
  4. KTMDirtFace

    KTMDirtFace Well-Known Member

    Joined:
    May 18, 2015
    Messages:
    1,247
    Likes Received:
    461
    I have not quite figured out how to do this with the Robo3d..because of the auto leveling.

    Any ideas?

    I tried making multiple process's in simplify3d, and having the end script pause it. However if you "prepare to print" with multiple process's selected it wont ever get the end script.

    I also tried exporting the first process to do the auto level jazz like normal, and on the end script have it pause.. and export it as a seperate gcode from the next process.. that works it will pause after the first process but then I cant figure out how to load a diffrent gcode proccess to unpause if that makes any sense.

    I'm not sure how to get the second process to print using the first process's auto-level calibration settings that it it determined. thats basically what it boils down to.

    I may have to manually throw pause commands in one single Gcode file by editing the file directly, and unpause from Octoprints control panel when ready.
     
  5. KTMDirtFace

    KTMDirtFace Well-Known Member

    Joined:
    May 18, 2015
    Messages:
    1,247
    Likes Received:
    461
    Whats the propper command to pause in the gcode for the robo but not turn the heaters off?

    I tried M226, but it didn't do anything. M0 and M1 turn the heaters off ( apparently by the looks of the reprap wiki). it says not to use M25 for gcode commands.

    Edit: I'm gonna get this figured out tonight. doing a 20x20x4 test now ( small cube first 2mm white, second 2mm will be black )
    Code:
    M0 H1
    
    Appears to pause it and leave the heaters on the H signifys heaters and anything nonzero will keep them on. Doing a test now.
     
    #5 KTMDirtFace, Mar 21, 2016
    Last edited: Mar 21, 2016
  6. KTMDirtFace

    KTMDirtFace Well-Known Member

    Joined:
    May 18, 2015
    Messages:
    1,247
    Likes Received:
    461
    Ok I think I figured it out, unfortunately it requires modifying a gcode file manually. Unless somone has a better way. And these instructions are for simplify3d, and octoprint. Disclamer I just figured it out and only did one test so I have no idea how this will work for others....

    For my test I did a 20x20x4mm box. In simplify3d i imported my 20x20x4 box. With the goal of printing the first 2mm in white and the top 2mm in black.
    [​IMG]

    1: create a process for the base color, in my case I used 0.9 first layer height %..this is important. if you do 100% your layer height numbers will come out right, but if you do 0.9 ( the default ) it works too just make sure all your other processes also have a 0.9 first layer height. The numbers will look weird in the gcode but it will be fine.

    I created a process to stop printing at 2.0MM and called it BOTTOM
    [​IMG]

    I also gave it no top layers since the next process will have no bottom layers. if that makes sense.

    2: Create a proccess for the top color, I called it top, and set it to start printing at 2.0MM additionally this had no bottom layers and 3 top layers.
    [​IMG]

    3. Prepare to print, you want to select both processes and we will have to manually enter a pause into the gcode by hand. in a minute.
    [​IMG]

    4. Save the toolpath to disk.
    5. Open your newly saved Gcode file, I like Notepad++, next search for "; layer" this is where it gets a little confusing to find the right layer. If you did your first layer height at 100% and in this example you would search for "; layer X, Z = 2.0" but since I did first layer 0.90 on both processes 2.0mm isn't there so it will round up... in my case layer 10 was 1.98mm, and layer 11 was 2.18mm, I put my Pause command in layer 2.18. Screenshot here.
    [​IMG]
    6. save the gcode and upload it to your octopi ( or SD card? i dont know i only tried octopi)
    7. Print

    When my print got to layer 11 the M0 H1 command paused it and kept the heaters on, and I was able to jog the controls and retract the filament and change the filament out.
    It looked like this when it paused.
    [​IMG]


    [​IMG]

    Jog controls to get the print head out of the way, change filaments and press "RESUME" in octopi

    it should go back where it left off like this with a new color
    [​IMG]


    And the final print ( ignore the massive pillowballing on the top thats got nothing to do with this )
    [​IMG]
    \
     

    Attached Files:

    #6 KTMDirtFace, Mar 21, 2016
    Last edited: Mar 21, 2016
    mark tomlinson likes this.
  7. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    21,138
    Likes Received:
    6,997
    Excellent ground work !

    I simply posted the video, but have not had a chance to fiddle with it yet.
    If you haven't gone through the Simplify online courses you might want to as it helps explain the way the processes interact a lot better (IMHO). Although "going through the fire" to sort it out yourself will certainly make sure you remember :)
     
  8. Nathan Simers

    Nathan Simers Member

    Joined:
    Feb 25, 2016
    Messages:
    59
    Likes Received:
    19
    Sorry pics not the best but these are off the robo with one extruder but i did the hard way. I set up a cap on the other side of the print bed so when it was time i would pause it while its in the caps side and change filament i had to release the motor but this way it was out of the way. The om lotus did have a issue one of the times after i changed the filament but i was able to save it when it was on the cap again i could pause it and offset the z axis and save my piece without doing all this with the hot end over my part.
     

    Attached Files:

    #8 Nathan Simers, Mar 22, 2016
    Last edited: Mar 22, 2016
    KTMDirtFace and mark tomlinson like this.
  9. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    21,138
    Likes Received:
    6,997
    Nice.
    I think (for me) the take away from that video was that you can do the layered color changes with very few overlapping layers.
    Requires a bit more effort on the modeling side and planning the print, but works :)
     
  10. KTMDirtFace

    KTMDirtFace Well-Known Member

    Joined:
    May 18, 2015
    Messages:
    1,247
    Likes Received:
    461
    Tried the process on my fridge magnet, with 2 pauses. It worked fine unfortunately when i fed the blue filament ( 3rd color ) in and hit resume, the filament snapped ...DOH so failed print. I will try again tonight it should work though. I'll see if I can figure out a way to do it without modding the gcode by hand tonight too.

    [​IMG]
    [​IMG]
     
    mark tomlinson likes this.
  11. znet3d

    znet3d New Member

    Joined:
    Apr 4, 2016
    Messages:
    12
    Likes Received:
    3
    I tried to do this using the MC slicer. worked great the first time I tried it, by simply pausing it moving 30mm up, change filament, move 30mm down and resume. The second time when I was changing the filament I moved the extruder to the side a bit and when I moved It down it did not line up and printed off the cube. My question is how can I make it move back to the last place it was paused? Anything I can do in the pause/resume gcode?
     
  12. danzca6

    danzca6 Well-Known Member

    Joined:
    Jul 27, 2015
    Messages:
    2,161
    Likes Received:
    1,072
    Fast forward to today and Marlin 1.1.0 with MESH leveling, you can now use the method described in the video. No longer do you need to worry about ABL in your startup code. I would just make sure to heat the hotend after the G28.

    I have also played with the post processing scripts in S3D to include the following for SD printing and then you just save off the gcode for all 3 processes in one file. If you change quick it works, but if you wait too long and the stepper inactivity kicks in they turn off and loose their place. Something that can be extended in the firmware. However I think MESH leveling is the way to go so that you can do the process in the video. The only thing you need to make sure of is that the print starts with the z height high enough not to crash into the part when homing.

    {REPLACE "\n; layer 6, Z = " "; layer 6\nG1 X114.000000 Y5.000000\nM25\nG1 X114.000000 Y5.000000\n; layer 6 "}
     
  13. KTMDirtFace

    KTMDirtFace Well-Known Member

    Joined:
    May 18, 2015
    Messages:
    1,247
    Likes Received:
    461
    So I don't know what I was going on about earlier in this thread.

    Now all I do is throw a Pause "M0 H1" code in gcode in on the layer I want to pause and change filaments.

    My problem now that I have not figured out is, it pauses. I jog controls up in octoprint to get the nozzle up.. I retract filament, then extrude new color... then hit Resume in ocoprint. For whatever reason...it starts Ejecting the filament. Almost like it is trying to recover the Extruder back to where it was.

    I'm not sure what is going on. Its not coming from GCode.. so it must be from octoprint or the firmware I guess?
     
  14. Kilrah

    Kilrah Well-Known Member

    Joined:
    Apr 18, 2017
    Messages:
    497
    Likes Received:
    332
    It IS coming from the Gcode which is most likely in absolute mode.
    You might be able to edit octoprint pause/resume gcode to fix that
     
    JuniorGamingTime likes this.
  15. KTMDirtFace

    KTMDirtFace Well-Known Member

    Joined:
    May 18, 2015
    Messages:
    1,247
    Likes Received:
    461
    Hmm I dont see anything in the gcode file that would do it so thats why I'm thinking the firmware or octoprint is interjecting it. I will look into octoprint stuff. I have not tried it with the LCD screen maybe its different there?
     
    #15 KTMDirtFace, Jan 10, 2018
    Last edited: Jan 10, 2018
  16. KTMDirtFace

    KTMDirtFace Well-Known Member

    Joined:
    May 18, 2015
    Messages:
    1,247
    Likes Received:
    461
    So this is ODD.. if i print a 20x20x10 cube, and throw a M0 H1 pause in it at layer 24(about half way ).. its fine it does not try to eject a bunch of filament when I resume it. If I print my large couple hour print with the same pause code when I hit resume it tries to eject the filament. Weird.

    Edit: now im really confused... been trying a couple models. no issues. Just one of them decides to spit the filament out after a pause. more testing required I guess.
     
    #16 KTMDirtFace, Jan 10, 2018
    Last edited: Jan 10, 2018
    Geof likes this.
  17. Ala Sawan

    Ala Sawan New Member

    Joined:
    Dec 21, 2018
    Messages:
    5
    Likes Received:
    0
    I don't know what I am missing . it's not working with me
     
  18. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    21,138
    Likes Received:
    6,997
    You are going to need to supply a lot more information on a 2-year old thread for any help :)

    "Not working for me" doesn't give us anything to go on.
     
  19. Kelly Herrera

    Kelly Herrera New Member

    Joined:
    Feb 15, 2019
    Messages:
    2
    Likes Received:
    1

    Is the 'M0 H1' added in simplify3d in the scripts section? Or is it added somewhere else? This is my first time working with simplify3d and the auto leveling is killing me!!!!
     
  20. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    21,138
    Likes Received:
    6,997

Share This Page