Geht doch! Smart Filament Sensor am Tronxy X5SA – Sogar mit OctoPrint

Kurzform: Es ist tatsächlich möglich den Smart Filament Sensor von BTT am Tronxy X5SA 24V zu betreiben. Sogar mit OctoPrint auf einem Raspberry Pi.

Langform: Im Folgenden beschreibe ich den Weg, wie es funktioniert …

Selten war ich so genervt davon, dass etwas nicht funktioniert. An diversen Stellen im Netz gibt es einzelne Aussagen darüber, dass der Smart Filament Sensor mit SKR-Board und Marlin funktioniert. 

Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Für den Käufer ändert sich der Preis dadurch nicht.

Dünn wurde es spätestens dann, wenn noch der Raspberry mit OctoPi dazukam. Nach dem Fehlschlag (siehe letzter Beitrag) beschloss ich fürs Erste den Wegen zu folgen, die andere schon genommen hatten. 

Erster Versuch:

Der Sensor wurde direkt am SKR 1.4 Turbo Board angeschlossen. Das ist der übliche Weg, wie er auch in der mitgelieferten Anleitung beschrieben ist. Dafür muss auch überhaupt nichts an dem mitgelieferten Kabel geändert werden. Die notwendigen Anpassungen in Marlin hatte ich schon bei den vorherigen Versuchen durchgeführt. Da fand ich nichts Neues mehr. Sicherheitshalber kontrollierte ich, ob die Signalleitung auf dem Board nicht schon in Verwendung war. Durch die etwas trickreiche Verdrahtung des BL Touch war ich mir nicht sicher. Aber das passte. 

Prinzipiell funktionierte das auch. Ich schickte einen Druckauftrag von Octoprint auf den Drucker. Der Drucker legte los und reagierte auf den simulierten Stillstand beim Filament. Das machte er einmal, zweimal und dann gar nicht mehr. Die Anzeigen kamen aber sowohl auf dem TFT35 V3.0 als auch bei OctoPrint an. Die Dialogboxen konnten auch hier wie da betätigt werden. Aber leider war der Aufbau vollkommen instabil. Es funktionierte nicht immer. Nebenbei bemerkt: die Mär davon, dass es eine abgeschirmte Leitung sein müsste, kann ich nicht bestätigen. Daran liegt es auf keinen Fall.

Zweiter Versuch:

Der Sensor wurde am TFT35 direkt angeschlossen. Die Displayplatine hat dafür einen eigenen Steckplatz. In der Anleitung steht nämlich geschrieben, dass der Sensor bei Benutzung des TFT-Displays nicht funktioniert und er deshalb in dem Fall am Display selbst angeschlossen werden muss. Dafür muss übrigens in der config.ini des Displays auch eine Änderung vorgenommen werden, da es sonst von seinem Glück nichts weiß. Dieser Versuch scheiterte vollständig. Ich vermute, dass der Steckplatz, beziehungsweise die betreffende Signalleitung auf die entsprechende Signalleitung des SKR-Boards referenziert. Die Verhältnisse sind aber bei mir ganz andere. Kurzum der Sensor zeigte keine Funktion.

Denk- und Recherchephase:

Nicht, dass ich nicht schon genug gesucht hätte, aber man entdeckt ja immer wieder etwas Neues, wenn man mal eine Zeitlang abschaltet. Irgendwann überlas ich dann einen Hinweis auf eine nicht funktionierende Kommandopipeline bei Marlin Versionen vor 2.0.7. Der Artikel war schon wieder weg, als ich die Idee aufgriff und mir mal ansah, wo Marlin denn aktuell in der Entwicklung steht. Version 2.0.8 ist zum Zeitpunkt dieses Artikels aktuell. Ich hatte noch 2.0.6.

Die Lösung:

Das aktuelle Marlin wurde von der Projektseite geladen. Jetzt müssen natürlich alle Anpassungen aus der eigenen alten Version auf die neue übertragen werden. Das ist zwar zeitraubend, geht aber recht flüssig auf folgendem Weg. 

Man besorgt sich Notepad++ und das Compare Plugin (oder von hier). Danach lädt man in Notepad++ die configuration.h aus dem eigenen alten Verzeichnis mit den eigenen Änderungen und dann wird die unberührte neue Version dazugeladen. Über das Plugin werden beide Versionen synchronisiert dargestellt und man kann übersichtlich darin arbeiten.

Bevor nun der Ethusiasmus Oberhand gewinnt ein kleiner aber wichtiger Hinweis: Diverse Daten liegen im EEPROM des SKR-Boards. Das sind beispielsweise die steps/mm, Abstände, Geschwindigkeiten etc.. Ohne Versionssprung werden die Daten bei einem Firmwarewechsel nicht verändert. Bei Versionswechsel aber eben schon. Es empfiehlt sich, die Daten zu sichern.

Bei mir waren die configuration.h, die configuration_adv.h und die pins_BTT_SKR_V1_4.h anzupassen. Wer ein SKR 1.4 Turbo hat, benutzt ebenfalls die genannte Pin-Datei. Sie wird intern verlinkt. Außerdem ist in der platformio.ini noch das richtige Board einzutragen. Jetzt kann es schon mit der Compilierung mit dem Tool der eigenen Wahl angefangen werden. Ich nehme dafür Visual Studio Code. Ich hatte darüber schon berichtet.

Es gibt einige sehr wichtige Abschnitte in den beiden Konfigurationsdateien. Das steht aber auch alles in der Anleitung zum Smart Filament Sensor.

In der configuration.h sind dies die aktivierten defines FILAMENT_RUNOUT_SENSOR mit eingetragener FILAMENT_RUNOUT_DISTANCE_MM 7. Warum gerade 7mm kann ich noch nicht sagen. Der Wert wird aber allgemein im Netz bestätigt und bei mir funktioniert er auch. Ganz wichtig auch das aktivierte define FILAMENT_MOTION_SENSOR. Damit wird Marlin angezeigt, dass hier nicht einfach ein Schalter (Tronxy Auslieferungsumfang), sondern ein SMART Sensor verbaut ist. Das NOZZLE_PARK_FEATURE mit entsprechenden Werten für die Park-Position des Druckkopfes während des Filament-Services muss ebenso aktiviert werden. Um den entsprechenden Menüpunkt im TFT-Display vorzufinden ist noch eine Änderung passend zum Display durchzuführen. Das ist der oben verlinkten Anleitung zu entnehmen.

In der configuration_adv.h ist das define M114_DETAIL zu aktivieren. Natürlich sollte das ADVANCED_pAUSE_FEATURE aktiviert werden und im betreffenden Abschnitt mit sinnvollen (oder default-Werten) belegt werden.

Je nach benutztem Steckplatz muss noch die PINs-Datei angepasst werden. 

Ich habe mich auf den PWRDET-Steckplatz des SKR 1.4 Turbo Boards gehängt. Das ist der Signalpin 1.0. Dementsprechend ist die PINs-Datei zu ändern:

Um es nochmal ganz deutlich zu sagen: Das ist meine ganz spezielle Konfiguration. Die mag bei Euch ganz anders aussehen. Aber ohne diese Definition, wo Marlin den FIL_RUNOUT_PIN findet, geht es nicht.

Ich stelle hier gerne meine drei Konfigurationsdateien für Marlin 2.0.8  zur Verfügung, aber kaum jemand wird sie direkt nutzen können. Sie sollen nur als Hilfestellung dienen. Ich übernehme keinerlei Verantwortung für Richtigkeit, Vollständigkeit oder Virenfreiheit der Datei. Jeder möge selbstverantwortlich damit umgehen. Die md5-Checksum des Archivs ist: 60932663fa44345e65bf0a5280289849

Marlin2.0.8configSFS

 

Nach dem Flashen der neuen Firmware auf das Board habe ich Fehlermeldungen bezüglich ungültigem Mesh und Problemen mit dem Leveln bekommen. Ich gehe davon aus, dass das Kompatibilitätsgründe hat. Funktionieren tut jetzt jedenfalls alles.

In der Simulation verhielt sich der Drucker jetzt absolut verlässlich richtig. Simulation will heißen: Hotend heiß aber ohne Filament, Druckbett heiß, Druckdatei wird per Octoprint (eigener Speicher, nicht SD-Karte) gestartet, Filamentstück wird manuell im Sensor bewegt, – oder eben nicht.

Sowohl auf dem TFT35 V3.0 Display als auch in OctoPrint (ohne spezielles Plugin) kommen alle Nachrichten richtig an und der Druck kann fortgesetzt werden, egal von welcher Stelle die Bestätigungen kommen. 

Filamentproblem erkannt
Die Parkposition wurde erreicht.
Nach dem Filamentservice (Erneuern, Farbwechsel, Entwirren, neue Spule etc.) noch mal etwas mehr durch die Düse drücken oder weiter.
Rückinfo vom Drucker: Es geht weiter

Die Meldungen auf dem kleinen TFT-Display sind identisch.

Bleibt noch zu zeigen, wo ich den Sensor zum Schluss angebracht habe.

Es ist leider unmöglich mit so einem Bericht jeder Situation gerecht zu werden. Trotzdem möchte ich dazu beitragen, dass jeder den Sensor nutzen kann. Wenn etwas unklar ist oder Aspekte fehlen, lasst es mich über die Kommentarfunktion oder das Kontaktformular wissen. Ich werde mich bemühen den Beitrag zu verbessern.

Kleines Fazit zu Schluss: Wer hätte gedacht, dass es an der Firmware liegt? Es lohnt sich also doch, die Firmware zu aktualisieren, zumindest, wenn Umbauten anstehen. Ich habe gesehen, dass es für das Display auch eine neue Firmware gibt und sogar viele neue Skins. Ob ich da mal …?

0 0 votes
Article Rating
Subscribe
Notify of
guest
1 Kommentar
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Alex

Klasse Arbeit. Hab meinen tronxyx5sa pro auch umgebaut auf skr1.4turbo, btt tft 43_V3_0, tmc2209. Nutze aber den original tronxy Level sensor der Standart verbaut ist. Hab noch ein externes eeprom Modul eingebunden. Ein paar kleine Einstellungen muss ich noch machen.