Puzzled by my results with M600 - some help would be appreciated
December 17, 2020 10:11AM
I have a Anycubic Kossel Linear Plus, with a Trigorilla board running Marlin 1.1.9 - this has been running nicely.

Now I have been wanting to use M600 (filament change), and I've *almost* got it working properly. Here's what I've got in the marlin code:

Extract from configuration_adv.h:

#define ADVANCED_PAUSE_FEATURE
#if ENABLED(ADVANCED_PAUSE_FEATURE)
  #define PAUSE_PARK_RETRACT_FEEDRATE         60  // (mm/s) Initial retract feedrate.
  #define PAUSE_PARK_RETRACT_LENGTH            2  // (mm) Initial retract.
                                                  // This short retract is done immediately, before parking the nozzle.
  #define FILAMENT_CHANGE_UNLOAD_FEEDRATE     10  // (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      750  // (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   6  // (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   6  // (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    725 // (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        3  // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate.
  #define ADVANCED_PAUSE_PURGE_LENGTH         50  // (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.

                                                  // Filament Unload does a Retract, Delay, and Purge first:
  #define FILAMENT_UNLOAD_RETRACT_LENGTH      13  // (mm) Unload initial retract length.
  #define FILAMENT_UNLOAD_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 PAUSE_PARK_NOZZLE_TIMEOUT           45  // (seconds) Time limit before the nozzle is turned off for safety.
  #define FILAMENT_CHANGE_ALERT_BEEPS         2   // 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           // Ensure homing has been completed prior to 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)
#endif

Extract from configuration.h:
#define NOZZLE_PARK_FEATURE

#if ENABLED(NOZZLE_PARK_FEATURE)
  // Specify a park position as { X, Y, Z }
  #define NOZZLE_PARK_POINT { 0, -90, 50 }
  #define NOZZLE_PARK_XY_FEEDRATE 100   // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
  #define NOZZLE_PARK_Z_FEEDRATE 5      // Z axis feedrate in mm/s (not used for delta printers)
#endif

I have also increase the maximum extrusion length so that it is greater than the load value shown above.

At the moment, the nozzle parks where I want it to park, the display beeps with the correct messages, the correct amount of filament is extruded to prime the nozzle, and the nozzle returns to the print when prompted. All fine so far.

My difficulty is with the filament load and unload - using the parameters shown above, the filament doesn't retract at all and it goes straight to the point where I get instructed to change the filament. When I press the button it immediately primes the nozzle, rather than loading filament.

I have also tried the following command:

M603 T0 U750 L700

Following this with M600 does unload the filament a bit - about 100 - 150mm - and does reload the filament again to slightly less length when instructed, and primes the nozzle. The problem is that I need the filament to retract about 750mm to get it most of the way out of the bowden tube, and the current results are way short.

At the time of running all these tests, the nozzle was well above the minimum nozzle temperature so that's not blocking things.

Where am I going wrong? I've looked at the Marlin gcode web pages for M603 and M600, but it doesn't indicate what the units are for these commands (I assumed mm).

All help appreciated...

Edited 1 time(s). Last edit at 12/17/2020 10:14AM by David J.
Re: Puzzled by my results with M600 - some help would be appreciated
December 17, 2020 11:29AM
In cura I use Park at Z
with Prusaslicer a pause can be inserted from the Preview window or here


Computer Programmer / Electronics Technician
Re: Puzzled by my results with M600 - some help would be appreciated
December 17, 2020 11:44AM
Quote
Roberts_Clif
In cura I use Park at Z
with Prusaslicer a pause can be inserted from the Preview window or here

Park isn't really the problem - it's the filament unload/reload that's bugging me. Also, I don't use prusaslicer...
Re: Puzzled by my results with M600 - some help would be appreciated
December 17, 2020 03:29PM
Then Watch this


Computer Programmer / Electronics Technician
Re: Puzzled by my results with M600 - some help would be appreciated
December 17, 2020 04:10PM
Interesting - but it doesn't address my problem - I am trying to get the Marlin M600 command to work properly. I am not interested in filament changes using other machines, software or slicers.

It's simply that Marlin has the M600 command, and it isn't working for me. I'm trying to find out why.
Sorry, only registered users may post in this forum.

Click here to login