Mostfun

Heute ein kleiner Beitrag zu einer ganz nützlichen Konstruktion: ein Filament-Ende-Sensor für den Ender-3D-Drucker.

In Thingiverse gibt es ja diverse "filament-runout-sensor"-Konstruktionen. Ich habe mir knapp 10 davon heruntergeladen und die vielversprechensten gebaut und getestet - glücklich war ich mit keinem. Aus dem Grund habe ich mich dann hingesetzt und habe mir einen Sensor konstruiert, der für meine Belange gut ist.

 Mechanik

Die meisten Sensoren bestehen aus einem Mikroschalter, dessen Fahne auf das Filament drückt. Da das Filament normalerweise daraufhin nachgeben würde, wird um den Schalter ein Stück 3D-Druck herumgedruckt, das zwei Löcher hat. Die beiden Löcher verhindern, dass das Filament "abhaut". So weit so gut und das funktioniert auch mit PLA ganz gut. Als ich dann einmal TPU als Material probierte, ging gar nichts mehr. Das Filament ist zu flexibel. Es geht durch das Loch durch, schlängelt sich an der Fahne des Mikroschalters vorbei und geht dann durch das Ausgangsloch. Damit funktioniert der Sensor nicht mehr. Außerdem hatte ich festgestellt, dass durch die zusätzliche Reibung die der Sensor erzeugt, manchmal der Extruder das Filament durchrutschen lässt (Knackgeräusch). Dadurch werden die Drucke schlechter, weil an der Stelle weniger Matieral aufgetragen wird. Das dritte, was ich zu bemängeln hatte, war dass manche Sensoren ein rechtes gefrickel beim Einfädeln der Filamente verursachten. Die Sensoren verändern auch die Bahn, die das Filament vollführt, weil sie eine bestimmte Länge haben und vor dem Extruder montiert werden. Auch das hat mir im Bezug auf die Abrollsicherheit des Filaments nicht gefallen - es ist ein Störfaktor zusätzlich.

Damit war meine Wunschliste für den Filamentsensor geschrieben:

  • Jedes Filament (transparent, flexibel, schwarz, rauh, glatt) soll erkannt werden können
  • Minimale Reibung durch den Sensor
  • Der Sensor sollte das Abrollen des Filaments möglichst nicht verändern
  • Es sollte einfach sein, das Filament durch den Sensor zu fädeln
  • Der Sensor sollte einen weiteren Schalter haben, der bei einem normalen Filamentwechsel keine Fehlsignale liefert
  • Der Sensor sollte die Gegebenheiten beim Ender 5 Drucker nutzen
  • Der Sensor sollte klein sein
  • Der Sensor sollte eine kleine Platine für die erforderliche Elektronik beinhalten
  • Der Sensor soll eine LED zur Anzeige der Funktion haben

Relativ schnell war mir klar, das die Anforderung auf minimale Reibung bedeutete, dass der Mikroschalter mit einer Rolle ausgestattet sein muß und das Gegenlager ein Kugellager sein muß. Das Filament sollte nur mit dem Kugellager und mit der Rolle kontakt haben, aber wie wird dann das Filament geführt? Die Idee war, dass die beiden Bohrungen im Sensorgehäuse deutlich größer sind, als das Filament selbst. 

Ein kleiner Trichter führt das Filament von einem Öffnungsdurchmesser von 10mm zu einer Bohrung von 2.1mm (Filament hat einen Durchmesser von 1,75). Durch die Trichteranordnung kommt das Filament unmittelbar an der Kugellager/Rollenkombination in den Sensor. Der Kugellagerrand ragt 0,1mm in das Eingangsloch hinein, so dass das Filament nicht am Lochrand, sondern am Kugellagerrand aufliegt. Führt man nun das Filament in den Sensor ein, drückt das Filament die Rolle des Schalters weg (der Schalter schaltet). Das Filament hat durch das Kugellager an der Stelle eine sehr gut definierte Lage. Es ist dadurch kein Problem, dass das Filament sich anschließend durch das kegelförmige Loch am Ende des Sensors fädelt. Letzteres hat einen Durchmesser von 2,5mm und berührt das Filament ebenfalls nicht.

Diese Mechanik erkennt alle nutzbaren Filamente zuverlässig. Ich habe die Mechanik mit Fusion 360 konstruiert. Die gibt es für "Maker" kostenlos.

Ich habe den Sensor so konstruiert, dass das Ausgangsloch genau da ist, wo der Ender Extruder sein Eingangsloch hat. Bisher mußte ich beim Filamentwechsel das Loch des Extruders immer suchen. Da nun der Sensor das Einfädeln in den Extruder übernimmt, reduziert sich die Schwierigkeit darauf, das 10mm Loch des Trichters mit dem 1,75mm Filament zu treffen - sehr einfach!

Unter dem Sitz für den Mikroschalter ist der Platz für die Platine. Diese wird durch zwei Nuten definiert geführt. Der Mikroschalter wird über drei starre Drähte mit der Platine verbunden, was auch gleichzeitig die mechanische Fixierung ist. Schrauben ist nicht erforderlich.

Das Kugellager wird ebenfalls schraubenlos montiert. Es wird einfach in den Sitz gedrückt und hält allein. 

 

 Auf dem nächsten Bild ist der fertige Sensor zu sehen. Ich habe ausnahmsweise die Elektronik einmal mit bedrahteten Bauteilen vorgenommen, um das Nachbauen einfacher zu gestalten.

 Im unteren Bereich der Platine ist der "Service-Schalter" für den geplanten Filamentwechsel zu sehen. Darüber die LED.

 Auf der Rückseite sind einige wenige Verbindungen zu erstellen. Braun ist GND, Rot ist +5V und Orange ist das SIGNAL.

 

Elektronik

 Das ist die von mir verwendete Elektronik. Der Stecker ist kompatibel mit dem "PIN-27-Breakout-Board" für den Ender gehalten.

Die Funktion: Ist kein Filament im Sensor, gibt der R1-Widerstand ein +5V-Signal an den Stecker. Die LED leuchtet nicht. 

Wird nun ein Filament eingeführt, schließt der Mikroschalter den Kontakt 2-1 auf GND (Masse). Die LED leuchtet über den Strombegrenzungswiderstand R2. Als LED habe ich eine grüne LED (low Current, 2mA) vorgesehen.

Der Kondensator dient dazu, dass das Prellen der Schalter nicht zu undefinierten Signalen am Stecker führt. 

 

Einbau

Der Einbau des Sensors ist sehr einfach. Man führt eine 5mm Schraube mit einer Beilagscheibe durch das entsprechende Befestigungsloch im Sensor, schraubt den Nutenstein richtig rum dran und führt es in das "Bosch"-Profil ein.

Nun wird ein starres Filament durch den Trichter des Sensors gesteckt, bis es am Ausgangsloch raus kommt.

Das Filament wird nun durch das Eingangsloch des Extruders geführt. 

Der Sensor wird vorsichtig nach oben bis zum Extruder geschoben und nun wird die Befestigungsschaube fest gezogen. Das Filament darf sich dabei nicht verkanten, Sensor fest halten.

Fertig!

 

Nachbau

Hier noch die Dateien und die verwendeten Materialien:

Die Konstruktionsdatei im Autodesk Fusion 360-Format:

(FilamentsensorFusion360.zip)

 

Hier das STL-File für den 3D-Druck:

(FilamentsensorSTL.zip)

 

Das ganze ist auch verfügbar auf Thingiverse unter:

Ender Filament Runout Sensor with Feeder 

 

1x Kugellager: MR63ZZ 3x6x2,5mm 10 Stück MR63ZZ Miniatur-Kugellager, Double Shielded / Sealed, 3x6x2.5mm Metall Geschirmt Kugellager für 3D-Drucker, Modellbau

1x Mikroschalter: 20x6x10, Scharnier Roller Hebellänge 18mm WINOMO Premium Mini Mikroschalter Roller Hebel Arm SPDT Endschalter Snap Aktion viel -10 Stück

1x Nutensteine: für Aluminiumprofil 20mm 20 Serie T Muttern M3/ M4/ M5 T Nutmuttern Hammerkopf Befestigungsmutter Sortiment Kit für Aluminiumprofil (150 Stücke)

     "   (alternative)                                  BESTOMZ T-Mutter M5 Gewinde Slim 100Pcs (M5x10x6)

1x Unterlegescheibe (DIN125) M5

1x Inbusschraube (DIN912/Innensechskant) M5x6mm

1x Stück Experimentierplatine Lochraster

1x LED grün low Current 

1x 1uF/ >=6,3V (da geht alles)

1x 10k Ohm Widerstand

1x 820 Ohm Widerstand

2x Kabel 3polig PXPQZAKHFTGRTZAP NEW 500mm 20" RC Servo-Verlängerungskabel Kabel Draht-Kabel für Hubschrauber-Kabel

1x Pin27-Adapter Board Creality Ender 3 Ender 3 Pro Ender 5 CR-10 CR 10 MINI 3-Pin 27-Adapterplatine für BL Touch oder Filamentsensor BL Touch 3D-Druckerzubehör

 

Software

Damit der Sensor funktioniert, muss der Filamentsensor in der Druckersoftware aktiviert werden. Dazu bitte im Internet entsprechende Foren kontaktierten.

Wem das zu "doof" ist, der kann auch hier das Hexfile in das Mainboard flashen (KEINE Garantie für Handlingfehler, NUR für Ender 5!). Sorry ich halte mich einmal maximal kurz:

  • Verzeichnis im PC anlegen
  • AVRDude.exe aus dem Internet laden und in das Verzeichnis speichern
  • Das Hexfile von hier-> (MarlinUpdate191007.zip)  <- herunterladen, entpacken und in das gleiche Verzeichnis speichern
  • <Shift> <STRG> Taste gleichzeitig drücken, mit der rechten Maustaste im Kontextmenü "Powershell Fenster hier öffnen", alternativ "CMD"  eingeben und per DOS-Befehle in das erstelle Verzeichnis gehen.
  • USB-Kabel zwischen ENDER5 und Rechner einstecken (drucker muss nicht laufen)
  • Im Gerätemanager (C:\Windows\System32\devmgmt.msc) oben im COM nachsehen, welche COM-Schnittstelle der ENDER bekommen hat
  • Nun das eintippen "avrdude -c Arduino -p m1284p -P COM14 -U flash:w:MarlinUpdate191007.hex"  (Bei mir war es die COM14, die der ENDER bekommen hatte, entsprechend modifizieren).
  • Wenn das flashen abgeschlossen ist, kann das Kabel wieder abgesteckt werden. 
  • Nun kann der Einbau der Adapterplatine erfolgen. 
  • Wird die Adapterplatine vorher eingebaut, pfeift der Drucker ohne Ende - das ist normal, denn auf dem Pin 27 ist normalerweise ein Piezogeber.