Repetier host dont send M600 when sensor is Open

Hi, i've a strange problem:

I have a BTT skr 1.3 and Marlin 2.0 bugfix. I have enabled:





Pin 1.25 (Zmin) is set for the Filament Runout Sensor.

I verified that the switch works by sending M119 from REPETIER HOST. 

I send the M412 command before launching a test print: filament runout on

I launch the print and after a while I open the switch, I expect the print to stop and go park, but it doesn't.
To do a test i send the M600 command from the host while the print is proceeding. it works good. the print pauses and does everything that is enabled and set in Advanced Pause.

My other try test is setting different command for FILAMENT RUNOUT SENSOR. I had try with M410. Equally Don't work. 

it is as if the Repetier Host does not react to the signal coming from the printer when the sensor is turn on/off, and does not launch M600.
Would anyone know why?


  • What does your firmware respond on out of filament? This has changed over time so guess this is something new that host currently does not support. When it sen enuquing M600 in the past this meant it was blocking internally and run M600 locally. So host would just wait until marlin was finished with filament change.
  • this is the firmware setting for FILAMENT_RUNOUT_SENSOR

    #define NUM_RUNOUT_SENSORS   1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each.
    #define FIL_RUNOUT_INVERTING FALSE // Set to true to invert the logic of the sensor.
    #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
    //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
    // Set one or more commands to execute on filament runout.
    // (After 'M412 H' Marlin will ask the host to handle the process.)

    the firmware should respond with the instructions set in advanced pause and nozzle park 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      100  // (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     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        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.
      #define ADVANCED_PAUSE_RESUME_PRIME          0  // (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_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         10  // 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)
      // Specify a park position as { X, Y, Z_raise }
      #define NOZZLE_PARK_XY_FEEDRATE 100   // (mm/s) X and Y axes feedrate (also used for delta Z axis)
      //#define NOZZLE_PARK_Z_FEEDRATE 5      // (mm/s) Z axis feedrate (not used for delta printers)
    when i send m600 from host, it work. when i try whit sensor dont work.
  • I think the ADVANCED_PAUSE_FEATURE is the main problem. Host and server do not understand firmware side menus on host side at the moment. Maybe the reason it is marked experimental in marlin sources. I have that on my todo.
  • Thank you very much for your reply, computer science is not my field but I think I understand. If so, there is no point in continuing with other attempts. I hope more updates will come out soon that will correct this problem.
    Thank you again.
  • Working on dialog support, so hope with that it works then.
Sign In or Register to comment.