Ein Filamentsensor soll verhindern, dass der Drucker weiterläuft, nachdem kein Filament mehr nachgeführt wird. Er überwacht die Zufuhr im Pfad zwischen Spule und Extruder und meldet nur, was er tatsächlich misst. Sein Nutzen liegt vor allem bei langen Drucken ohne Aufsicht. Er erkennt das Ende des Materials und, nur mit Bewegungssensor, einige Staus. Eine verstopfte Düse erkennt er nicht zuverlässig.
Wozu dient ein Filamentsensor beim Druckabbruch?
Filamentende und Filamentriss unterscheiden
Ein Filamentende liegt vor, wenn die Spule leer ist. Dann fehlt das Filament im Pfad, und der Sensor meldet genau das. Ein Filamentriss liegt vor, wenn das Filament reißt oder sich verklemmt, während noch Material auf der Spule ist.
| Situation | Was der Sensor meldet |
|---|---|
| Spule leer | Runout-Meldung, weil am Sensor kein Filament mehr anliegt |
| Riss zwischen Sensor und Extruder | Keine Meldung, weil am Sensor weiterhin Filament anliegt |
| Stau, erkannt per Bewegungssensor | Jam-Erkennung möglich (Marlin Firmware (marlinfw.org), 2024) |
Ein reiner Endsensor erkennt einen Riss nur dann, wenn das Filament am Sensor selbst fehlt, also bei einem Riss zwischen Spule und Sensor. Reißt das Filament hinter dem Sensor, liegt am Sensor weiterhin Material an, und es kommt keine Meldung.
Leerlauf bei langen Drucken verhindern
Läuft die Spule leer, drückt der Extruder ohne Material weiter, und das Modell entsteht unvollständig. Bei Drucken über Nacht oder ohne Aufsicht fällt dieser Fehler erst beim Morgen auf. Der Sensor verkürzt diese Zeitspanne, weil er das Ende sofort meldet. Vor dem Start sollte man den Spulenrest deshalb sichtbar prüfen, denn der Sensor zeigt nur das Ende an und nicht den voraussichtlichen Verbrauch.
Grenzen: Düsenverstopfung wird nicht erkannt
Der Sensor misst, ob Filament im Pfad vorhanden ist, nicht, ob es an der Düse ankommt und schmilzt. Bei einer verstopften Düse bleibt das Filament im Pfad stehen, der Sensor sieht weiterhin Material und schweigt. Mit einem reinen Endsensor drückt der Extruder dann gegen den Widerstand, und das Teil erhält zu wenig Material, ohne dass eine Warnung kommt. Ein Bewegungssensor kann das Stehen des Filaments melden. Bei Verdacht auf eine Verstopfung sollte man Düse und Schmelzzone gesondert prüfen und nicht auf eine Sensormeldung warten.

Welche Sensortypen gibt es?
Filamentsensoren unterscheiden sich vor allem in ihrem Funktionsprinzip: Sie erkennen entweder das Filamentende, einen Stau oder nur das Vorhandensein des Filaments. Für den Heimdrucker sind drei Bauformen relevant, die sich in Bauart und Erkennungsumfang unterscheiden. Die Wahl bestimmt, ob der Drucker nur bei leerer Spule oder auch bei blockiertem Extruder reagiert.
Mechanischer Hebelschalter mit Mikroschalter
Dieser Sensor sitzt direkt im Filamentpfad. Das Filament drückt einen Hebel an, und sobald kein Filament mehr anliegt, fällt der Hebel ab und betätigt einen Mikroschalter. Der Schalter meldet dem Mainboard das Filamentende. Die Bauweise ist einfach und liefert ein eindeutiges Signal, erkennt jedoch keinen Stau, weil das Filament bei einer Blockade weiterhin anliegt.
Bewegungssensor zur Stauerkennung
Der Bewegungssensor prüft, ob sich das Filament beim Fördern tatsächlich bewegt. Damit erkennt er einen Filamentstau (Jam), also stehendes Filament trotz Förderbefehl. Die Ursache, etwa Extruder oder Hotend, muss man anschließend gesondert prüfen. Laut Marlin Firmware (marlinfw.org, 2024) lässt sich seit Version 2.1.3 über die Option FILAMENT_SWITCH_AND_MOTION eine Jam-Erkennung mit einem Bewegungssensor nutzen, etwa mit M412 S1 L10. Der Sensor ergänzt damit die reine Endeerkennung und ersetzt sie nicht zwingend.
Optische Sensoren ohne mechanischen Hebel
Optische Sensoren erfassen das Filament ohne Hebel im Pfad, sodass keine bewegliche Mechanik am Filament anliegt.
Passt der Sensor zu meinem Drucker und Mainboard?
Vor dem Kauf sollten drei Punkte geklärt sein: ob das Mainboard einen freien Signal-Pin mit passendem Stecker hat, ob die Firmware den Sensortyp unterstützt und ob Spannung und Signalpegel zusammenpassen.
Freier Pin und passender Stecker
Der Sensor braucht einen unbelegten Eingang auf dem Mainboard. Das Pinout-Dokument des Boards zeigt, welche Pins bereits für Endstopps, Lüfter oder Temperatursensoren vergeben sind. Danach wird der Steckertyp des Sensors mit dem Anschluss des Boards verglichen. Passt er nicht, ist ein Adapterkabel nötig, und dessen Eignung sollte vorab geprüft werden.
Firmware-Unterstützung
| Firmware | Relevanter Punkt | Angabe |
|---|---|---|
| Marlin | M412 steuert die Runout-Erkennung | Marlin Firmware (marlinfw.org), 2024 |
| Klipper | Anbindung über [filament_switch_sensor] mit pause_on_runout | Klipper (klipper3d.org), 2025 |
Bei Klipper muss die Sensorsektion zum vorhandenen Pin passen. Welche Firmware-Version ein bestimmter Sensortyp erfordert, ist im Sensor-Datenblatt sowie in der Firmware-Dokumentation nachzuschlagen.
Spannung und Signalpegel
Die Quellenlage enthält keine Angaben zu Eingangsspannung oder Signalpegel. Diese Werte stehen im Datenblatt des Sensors und müssen mit den Vorgaben des gewählten Board-Eingangs abgeglichen werden. Ein Sensor, dessen Pegel nicht zum Eingang passt, kann das Board beschädigen oder falsche Signale liefern.
Wie baue ich den Sensor mechanisch ein?
Der Filamentsensor sitzt zwischen Filamentrolle und Extruder, möglichst nah am Extruder, ohne dass das Filament an Kanten reibt oder knickt. Lege die Position fest, bevor du etwas festschraubst: Spule, Filamentsensor und Extruder sollten möglichst in einer Linie liegen, damit das Filament gerade einläuft und der Hebel nicht gegen Rahmenteile drückt.
Gehe dabei in dieser Reihenfolge vor:
- Filamentsensor provisorisch am Rahmen oder an einer Halterung positionieren und den Filamentpfad von der Spule bis zum Extruder prüfen.
- Hebel oder Klappe so ausrichten, dass das Filament sie im Normalbetrieb frei bewegt. Der Hebel darf an keinem Profil und an keinem Lüfterkanal schleifen.
- Erst danach die Halterung fest verschrauben.
- Filament von Hand durch den Filamentsensor führen und prüfen, dass sich der Hebel ohne Klemmen bewegt.
Kabelführung ist der zweite Teil der Montage. Das Kabel des Filamentsensors muss so verlegt werden, dass es sich bei der Bewegung des Druckkopfs nicht spannt. Befestige es mit Kabelbindern am Rahmen und lasse über die Verfahrwege von X- und Y-Achse genügend Schlaufe, damit am Stecker kein Zug entsteht. Ein Kabel, das beim Verfahren gezogen wird, kann den Stecker lockern oder die Leitung beschädigen.
Firmware aktivieren: Marlin oder Klipper
Die Filamenterkennung wird in Marlin über den G-Code M412 gesteuert, in Klipper über einen Konfigurationsabschnitt in der printer.cfg. Welcher Weg gilt, hängt davon ab, welche Firmware auf dem Drucker läuft. Beide Systeme bieten die Grundfunktion, unterscheiden sich aber in Syntax und Umfang.
Marlin: M412 setzen und abfragen
M412 schaltet die Filament-Runout-Erkennung ein oder aus und fragt deren Status ab. Der Parameter S aktiviert bzw. deaktiviert die Erkennung, der Parameter D legt die Strecke fest, die nach einem Runout nachextrudiert wird.
Klipper: filament_switch_sensor konfigurieren
In Klipper wird der Sensor als Abschnitt [filament_switch_sensor] in der printer.cfg angelegt.
Neben switch_pin und pause_on_runout aktiviert insert_gcode die Einlegeerkennung. Die Standardwerte lauten event_delay 3,0 s und pause_delay 0,5 s.
| Parameter | Firmware | Standardwert oder Wirkung |
|---|---|---|
| M412 S | Marlin | aktiviert bzw. deaktiviert die Erkennung |
| M412 D | Marlin | legt die Nachextrusionsstrecke nach einem Runout fest |
| event_delay | Klipper | 3,0 s |
| pause_delay | Klipper | 0,5 s |
| insert_gcode | Klipper | aktiviert die Einlegeerkennung |

Wie verhält sich der Drucker bei Filamentende?
Die Reaktion hängt von der Firmware und der Konfiguration des Filamentsensors ab. Bei Marlin führt der Drucker bei erkanntem Filamentende den konfigurierten G-Code aus, meist M600, also den Filamentwechsel bzw. eine Pause. Bei Klipper entscheidet die Option pause_on_runout: Ist sie aktiv, pausiert der Drucker sofort, sobald der Filamentsensor kein Filament mehr meldet. Ist sie deaktiviert und ist kein runout_gcode hinterlegt, ist die Erkennung deaktiviert, und der Drucker pausiert nicht.
Marlin: Ausführung des Runout-G-Codes
Ist die Runout-Erkennung in Marlin aktiv, wird bei einem Filamentende der hinterlegte G-Code ausgeführt. In der Standardkonfiguration ist das M600, der Befehl für den Filamentwechsel. Der Druck pausiert, die Düse fährt in die Wechselposition, und Sie können das neue Filament einlegen. Anschließend setzen Sie den Druck fort. Welcher G-Code tatsächlich ausgelöst wird, legt die Firmware-Konfiguration fest. Prüfen Sie diesen Eintrag, bevor Sie den Sensor im Alltag verwenden.
Klipper: Sofortige Pause oder benutzerdefinierter G-Code
In Klipper wird der Sensor im Abschnitt [filament_switch_sensor] konfiguriert. Mit pause_on_runout: True (Standardwert) pausiert der Drucker sofort, sobald der Sensor das Filamentende erkennt. Das Filament kann dann gewechselt werden, und der Druck wird fortgesetzt.
Mit pause_on_runout: False schaltet Klipper die automatische Pause ab. Ist dann zusätzlich ein runout_gcode gesetzt, führt Klipper stattdessen diesen eigenen G-Code aus. Fehlt auch dieser Eintrag, ist die Erkennung deaktiviert. Prüfe deshalb, dass entweder pause_on_runout aktiv ist oder ein runout_gcode gesetzt ist.
Übersicht der Konfigurationen
| Firmware bzw. Einstellung | Reaktion bei Filamentende |
|---|---|
| Marlin, Runout-Erkennung aktiv | Ausführung des konfigurierten G-Codes, meist M600 (Filamentwechsel/Pause) |
Klipper, pause_on_runout: True |
Sofortige Pause |
Warum löst der Sensor falsch aus?
Fehlauslösungen können von den Zeitwerten der Firmware, der aktivierten Einlegeerkennung, einer falschen Zuordnung der Erkennungsart oder der Verkabelung abhängen.
Verzögerungswerte und Pausenverhalten
Die Standardwerte sollten zuerst unverändert bleiben. Nur wenn unter OctoPrint ein ungewöhnliches Pausenverhalten auftritt, kann laut Klipper (2025) eine Erhöhung von pause_delay helfen. Der Wert wird dann schrittweise angehoben, und das Verhalten wird nach jeder Änderung über mehrere Druckstarts beobachtet, bevor weiter angepasst wird.
Einlegeerkennung
Mit insert_gcode wird die Einlegeerkennung aktiviert. Ist sie aktiv, reagiert der Sensor auch auf das Einlegen von Filament und führt den hinterlegten G-Code aus. Wer das Einlegen nicht als Ereignis nutzt, sollte den Eintrag prüfen, denn eine ungewollte Einlegeerkennung kann eine Pause auslösen, obwohl kein Filamentende vorliegt.
Spannung und Verkabelung
Prüfe Steckverbindungen auf festen Sitz und Kabel auf Knicke oder Scheuerstellen, denn ein Wackelkontakt kann ein Filamentende vortäuschen. Gleiche außerdem Spannung und Signalpegel mit dem Datenblatt des Sensors ab.
Falsche Zuordnung der Erkennung
Eine häufige Fehlerquelle ist die Verwechslung von Erkennungsarten. Unter Marlin setzt M412 die Runout-Erkennung. Vor jeder Anpassung sollte klar sein, welche Erkennung tatsächlich aktiv ist.
Wie teste ich den Sensor vor dem nächsten Druck?
Ein Test mit entferntem Filament zeigt, ob der Sensor das Filamentende erkennt und der Drucker danach korrekt pausiert. Der Ablauf besteht aus drei Prüfungen: Erkennungsstatus, Auslösetest und Pausenverhalten.
Erkennungsstatus nach der Aktivierung abfragen
Nach der Aktivierung der Filamenterkennung fragst du den Status unter Marlin mit M412 ab. Für Klipper prüfst du in der Dokumentation, wie sich der Zustand des Sensors anzeigen lässt. Die Anzeige muss die Erkennung als aktiv ausweisen. Meldet sie einen inaktiven Zustand, wurde die Einstellung nicht übernommen, und der Test ist zu wiederholen, bevor du einen Druck startest.
Auslösetest mit entferntem Filament
Für den Auslösetest startest du beaufsichtigt einen kurzen Druck und ziehst dann das Filament aus dem Sensor, bis der Drucker reagiert. Bleibe dabei am Gerät und halte die Hände vom Druckkopf fern. Die Reaktion hängt von der Firmware ab:
| Schritt | Handlung | Prüfpunkt |
|---|---|---|
| 1 | Erkennung aktivieren, Status abfragen | Erkennung wird als aktiv angezeigt |
| 2 | Filament aus dem Sensor entfernen, Test starten | Auslösung erfolgt |
| 3 | Pausenverhalten beobachten | Klipper: sofortige Pause. Marlin: konfigurierter G-Code, meist M600 |
| 4 | Filament wieder einlegen | Wiederaufnahme aus der Pause beobachten |
Pausenverhalten im Test kontrollieren
Im dritten Schritt prüfst du, ob die Pause unmittelbar nach der Auslösung erfolgt und der Extrusionsvorgang stoppt. Setzt der Drucker die Extrusion trotz ausgelöster Erkennung fort, ist die Konfiguration vor dem nächsten Druck zu korrigieren.
Häufig gestellte Fragen
Erkennt der Sensor auch einen Riss im Filament?
Nur teilweise. Ein Riss zwischen Spule und Sensor fällt auf, weil am Sensor kein Material mehr anliegt. Reißt das Filament hinter dem Sensor, bleibt die Meldung aus, außer ein Bewegungssensor ist zusätzlich verbaut und in Marlin per FILAMENT_SWITCH_AND_MOTION aktiviert.
Wie reagiert der Drucker, wenn der Sensor anschlägt?
Bei Klipper pausiert der Drucker sofort, wenn pause_on_runout auf True steht. Marlin führt bei aktivierter Erkennung den konfigurierten G-Code aus, meist M600 für Filamentwechsel bzw. Pause.
Woran erkenne ich, ob die Sensor-Erkennung aktiv ist?
Unter Marlin fragt M412 ohne Parameter den Status ab, mit S lässt sich die Erkennung ein- oder ausschalten. Bei Klipper ist die Erkennung deaktiviert, wenn pause_on_runout auf False steht und kein runout_gcode gesetzt ist.