Filament sensor mit Klipper

Guten Tag ,

ich versuche seit Tagen zwei filament sensoren in meine Klipper config einzupflegen ich kann machen was ich will . Entweder bricht dann der druck ab . Das filament wird nicht erkannt und druckt weiter oder bleibt stehen . Hab die verschiedenen filament sensor configs ausprobiert für beide extruder . Mit g code ohne g code  dann die g codes in repetier einpflegen ohne erfolg . Geb ich den filament sensor namen bei den beiden extrudern ein werden sie irgendwannr ausgelöscht . Alles bisher ohne erfolg . Könnt ihr mir ein klipper config für 2 filament sensoren die unter Repetier server auch funktionieren . 

Comments

  • Ps. Und die dazu gehörigen einstellungen in repetier server .
  • Wichtig ist zu beachten, das wir keinen Druck einer Datei über Klipper machen sondern die ganze Zeit die Kontrolle haben. Daher sollte man alles weglassen das in klipper einen Druck stoppt oder pausiert.
    pause_on_runout: False

    im sensor verhindert, das Klipper sich darum kümmern will und alles durcheinander bringt. 

    Es gibt 2 mögliche herangehensweisen. Entweder wenn du per api socket angebunden bist, kannst du den Namen des sensors eintragen und er wird automatisch getriggert. Alternativ oder wenn du es keine api Anbindung nutzt, musst du eine spezielle Meldung senden, damit der Server das sieht und reagieren kann. Unten der Code wie das geht. Habe nur einen Extruder aber mit 2. geht es genau so, einfach einen 2. Sensor definieren.

    [filament_switch_sensor filament_sensor]
    pause_on_runout: False
    # When set to True, a PAUSE will execute immediately after a runout
    # is detected. Note that if pause_on_runout is False and the
    # runout_gcode is omitted then runout detection is disabled. Default
    # is True.
    runout_gcode: outoffilament
    # The gcode to run after a filament runout is detected. If
    # pause_on_runout is set to True this gcode will run after the PAUSE
    # is complete. The default is not to run any gcode commands.
    #insert_gcode:
    # The gcode to run after a filament insert is detected. The default
    # is not to run any gcode commands, which disables insert detection.
    event_delay: 3.0
    # The minimum amount of time in seconds to delay between events.
    # Events triggered during this time period will be silently
    # ignored. The default is 3 seconds.
    switch_pin: ^ar15 # ar15=RAMPS Y+ ar2=RAMPS X+ / ar4=RAMPS Servo Pin 4
    # The pin on which the switch is connected. This parameter must be
    # provided.

    [gcode_macro outoffilament]
    gcode:
      ; Message to server about filament sensor triggered
      QUERY_FILAMENT_SENSOR SENSOR=filament_sensor
      RESPOND TYPE=command MSG=action:out_of_filament


  • edited October 8
    Sorry für die späte rückmeldung konnte es erst jetzt richtig testen .
    Ok mit dem Query befehl reagiert er . Aber wen das filament über den sensor ist regaiert er nicht . Was ich allerdings kann auf Pause gehen und dann kann ich das filament wechseln manuel durch führen .

    Hier mal wie ich es in Klipper eingegeben habe :

    [filament_switch_sensor filament_sensor_extruder0]
    switch_pin: PG12
    pause_on_runout: False
    event_delay: 3.0
    pause_delay: 0.5

    runout_gcode: 
      outoffilament

    [filament_switch_sensor filament_sensor_extruder1]
    switch_pin: PG13
    pause_on_runout: False
    event_delay: 3.0
    pause_delay: 0.5

    runout_gcode: 
        outoffilament

    sehs gerade hab noch die g codes vergessen .

  • Was steht denn im log wenn es passiert. outoffilament gcode sollte ja dann eine entsprechende Meldung an den Server senden. Die muss so aussehen wie der server sie erwartet, sonst reagiert der server nicht. Die Regel die implementiert ist sieht so aus:
    <response type="outOfFilamentPause" string="true">//\s*action:out_of_filament\b</response>

    Also:
    // action:out_of_filament

    muss in der Zeile enthalten sein. In meiner config ist TYPE=command so konfiguriert das es // hinzufügt.
Sign In or Register to comment.