Clear all

Color Change (M600)  

New Member
Color Change (M600)

Good evening guys,

I recently switched over vom Cura to PrusaSlicer and I am really liking the layout, the options and all the possibilities it offers.
At the moment I am trying to get color switches working at certain layer height. I use the option to add a Color Change by right clicking and adding an M600 via the layer pane.

In Marlin 2.0 I configured the respective code snippet in configuration_adv.h as follows:



  #define PAUSE_PARK_RETRACT_FEEDRATE         60  // (mm/s) Initial retract feedrate.

  #define PAUSE_PARK_RETRACT_LENGTH            3  // (mm) Initial retract.

                                                  // This short retract is done immediately, before parking the nozzle.

  #define FILAMENT_CHANGE_UNLOAD_FEEDRATE     20  // (mm/s) Unload filament feedrate. This can be pretty fast.

  #define FILAMENT_CHANGE_UNLOAD_ACCEL        25  // (mm/s^2) Lower acceleration may allow a faster feedrate.

  #define FILAMENT_CHANGE_UNLOAD_LENGTH        0  // (mm) The length of filament for a complete unload.

                                                  //   For Bowden, the full length of the tube and nozzle.

                                                  //   For direct drive, the full length of the nozzle.

                                                  //   Set to 0 for manual unloading.

  #define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE   5  // (mm/s) Slow move when starting load.

  #define FILAMENT_CHANGE_SLOW_LOAD_LENGTH     0  // (mm) Slow length, to allow time to insert material.

                                                  // 0 to disable start loading and skip to fast load only

  #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE  10  // (mm/s) Load filament feedrate. This can be pretty fast.

  #define FILAMENT_CHANGE_FAST_LOAD_ACCEL     25  // (mm/s^2) Lower acceleration may allow a faster feedrate.

  #define FILAMENT_CHANGE_FAST_LOAD_LENGTH     0 // (mm) Load length of filament, from extruder gear to nozzle.

                                                  //   For Bowden, the full length of the tube and nozzle.

                                                  //   For direct drive, the full length of the nozzle.

  #define ADVANCED_PAUSE_CONTINUOUS_PURGE         // Purge continuously up to the purge length until interrupted.

  #define ADVANCED_PAUSE_PURGE_FEEDRATE       4   // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate.

  #define ADVANCED_PAUSE_PURGE_LENGTH         0   // (mm) Length to extrude after loading.

                                                  //   Set to 0 for manual extrusion.

                                                  //   Filament can be extruded repeatedly from the Filament Change menu

                                                  //   until extrusion is consistent, and to purge old filament.

  #define ADVANCED_PAUSE_RESUME_PRIME          3  // (mm) Extra distance to prime nozzle after returning from park.

  //#define ADVANCED_PAUSE_FANS_PAUSE             // Turn off print-cooling fans while the machine is paused.

                                                  // Filament Unload does a Retract, Delay, and Purge first:

  #define FILAMENT_UNLOAD_PURGE_RETRACT       13  // (mm) Unload initial retract length.

  #define FILAMENT_UNLOAD_PURGE_DELAY       5000  // (ms) Delay for the filament to cool after retract.

  #define FILAMENT_UNLOAD_PURGE_LENGTH         8  // (mm) An unretract is done, then this length is purged.

  #define FILAMENT_UNLOAD_PURGE_FEEDRATE      25  // (mm/s) feedrate to purge before unload

  #define PAUSE_PARK_NOZZLE_TIMEOUT           45  // (seconds) Time limit before the nozzle is turned off for safety.

  #define FILAMENT_CHANGE_ALERT_BEEPS          0  // Number of alert beeps to play when a response is needed.

  #define PAUSE_PARK_NO_STEPPER_TIMEOUT           // Enable for XYZ steppers to stay powered on during filament change.

  #define PARK_HEAD_ON_PAUSE                      // Park the nozzle during pause and filament change.

  //#define HOME_BEFORE_FILAMENT_CHANGE           // If needed, home before parking for filament change

  //#define FILAMENT_LOAD_UNLOAD_GCODES           // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu.

  //#define FILAMENT_UNLOAD_ALL_EXTRUDERS         // Allow M702 to unload all extruders above a minimum target temp (as set by M302)


I set values of 0 where needed in order to be able to do the switch manually.

Here is the problem now:
whenever the extruder is in its park position (so the basic functionality is there already :)) it is locked. So the extruder stepper is not turned off. Therefore a manual switch is not possible.

Anyone got an idea on where I have gone wrong?

Thank you all in advance 🙂

Posted : 01/12/2020 7:15 pm
Noble Member
RE: Color Change (M600)

Maybe I misunderstand but a simple colour change at layer is built into Prusa's slicer:

Import part


move slider to desired height, click '+' on the slider


If you need something more complex search for 'manual MMU' on here.

Hth, Cheerio,

Posted : 02/12/2020 8:30 am