How can you change colour Mid print

This is AWESOME! I have just got to the point in my 3d printing journey where experimenting with gcode is the next part of the learning curve. I have tried (without success) pause at height and change filament using post processing in Cura. Every video I watch it works perfectly. For me it is a complete failure. Any help would be appreciated!

Hi Tom, I’m glad you found this useful.

I’m going to repost your reply as a new topic so that others can find it easily Im sure others will have the same question.

I will answer it there.

OK, now that I have the topic started I can continue… lol

You are correct there is a PAUSE at height function within cura and I have used it with VERY limited success. There has to be certain options enabled in the EEprom to allow this to work properly.

For example I believe (I could be corrected here) that the Cura Pause at height script uses the M412 command. However if you did not setup the filament runout sensor in the firmware the command will never be run as Cura does not know what to do with the command so it ignores it.

I will let you know a couple of options. the one I usually use successfully is the Pause SD print command. It will work as long as you have SDSUPPORT enabled in the Firmware which most machines do. this command is simply “M25” Scroll through your Gcode file and when you find the “line #” you are looking for add it just before the extruding begins.

Another option that can be used on some machines is the M600 Command. This runs an internal script to “change filament”

Here is a link to PRUSA forum explaining much better than I the M600 command.

Hope this helps

1 Like

With the machines I use there is no control knob, like ender 3, to activate the restart.
I have found a couple of different scenarios to get a two colour print. Both are from Youtube and are from CHEP. I have tried one and it worked albeit I have to tweak my machine / file for better quality but it works.
See the videos for more answers.

It might help a bit if you told us which printer you’re using.

I use Pause at Height with great success but I only get good results when printing from the SD card via the control panel. If I use Octoprint, the new layer (after the filament change) is printed offset from the previous layers. Octoprint throws up a message saying it ignored Msomething-or-other. I only tried it once but I was in a hurry to complete a project for my son’s birthday and didn’t experiment with it. I’m using an Ender 5Pro, with stock firmware.

Also, describing the problem as “a complete failure” is really not helpful.

Are you saying:

  • it doesn’t pause at all
    (did you forget to change pause at height to pause at layer such that what you intended as pause at layer 40 is trying to pause at a height of 40cm on a model that’s only 10cm tall?)
  • pauses but won’t resume/won’t release filament
    (There’s a bug in Marlin. Pause at Height works but the option to resume is lost if you go into the the menu system to change the hotend temperature because you forgot to so something other than 0 in the Pause at Height script. It allows you to change the temperature, but then you can’t resume)
  • pauses but impacts the model on resume
    (I had this problem when I manually edited the gcode on a model but forgot there was an embeded Pause at Height script)
  • pauses but resume seems flaky and you end up skipping a layer
    (Accidentally put two change at height scripts on the same layer)
  • pauses and resumes but the new layer is offset
    (Happens when using Octoprint. Octoprint intercepts one of the movement commands and the rest of the model is offset by that movement amount)
  • pauses but not on the layer you think it should
    (Layers are counted from layer 0, not 1, so if you’re printing an 8-layer sign and want a new colour on the 6th physical layer, you need to enter it as layer 5 in the script)
  • pauses on a higher layer but not on a lower layer
    (a sure sign that your lower layer script is set to Pause at Height, rather than Pause at Layer, hence, while you entered it first, it ends up physically higher in the model)
  • pauses but only at the end of the print
    (could either be that you have Pause at Height set instead of Pause at Layer or that you are trying to print a colour on the top layer of a sign but forgot that the layers count up from 0 so your top layer should have been black filament printed at layer 7 (out of 0-7) but you specified layer 8 - it pauses after layer 7 but there is not layer 8)
  • something else?

I’ve had all of the above problems at one time or another.

1 Like

Ok thanks to all of you who have answered me. I have a three day print on my machine (Creality CR10S Pro) and once it is complete I will get back to doing more experimentation now that there are some more ideas to try. I think the reason the you tube videos work is because the eprom has more options enabled in it. I will report back with my experiences likely after the weekend when there is more time.

Have “they” made a version of the Jyers/marlin firmware for the Cr10 s Pro. I have it in my Ender 3 v2 and colour changes are very easy IE: actually works well, with the Jyers firmware. I have seen somewhere that it will be or has been expanded to work with other Creality machines.

hey @Loosenut I have actually found the raw config for the Jyers firmware if you want to compile your own based on his firmware. But Yes I have also heard a rumor he is making others. I truly hope so as he/she did do a Bang up job on the V2 firmware. If I had the time I would gladly jump in on that project and git er done.