Exakte Filamentüberwachung - Hardware Vorhanden

Hier könnt Ihr Erweiterungen oder Verbesserungen des RF1000 vorstellen oder diskutieren. Verbesserungspotential ist ja vorhanden. Modifikationen und Zubehör können hier ebenfalls diskutiert werden.
Benutzeravatar
georg-AW
Developer
Developer
Beiträge: 536
Registriert: Mi 1. Okt 2014, 14:43
Wohnort: Schweiz Nordost
Has thanked: 40 times
Been thanked: 238 times

Re: Exakte Filamentüberwachung - Hardware Vorhanden

Beitrag von georg-AW »

Hi
Ich glaube , wir verstehen uns grundsätzlich miss.
Es geht mir darum, dass ich ja nicht irgendwie eine Maus irgendwie ans Filament klemmen will mit irgendeiner Vorrichtung.
Dass eine komplette Maus elektronisch und mit Ihrer Software praktisch an jedem USB Eingang funktioniert, ist mir seit vielen Jahren bekannt.
Ich dachte man wolle den eigentlichen Maussensor ( der die Oberfläche der Unterlage abtastet und nun die Oberfläche des Filamentes abtasten soll ) aus der Maus ausbauen und in ein Filamentüberwachungssystem verwandeln.

So wie ich dich verstehe, willst du die ganze Maus praktisch unverändert ( bis auf evl. eine Führung ) einsetzen.
Liege ich da richtig ?

ciao Georg
Benutzeravatar
rf1k_mjh11
Developer
Developer
Beiträge: 2097
Registriert: Di 6. Jan 2015, 19:44
Wohnort: Autriche
Has thanked: 276 times
Been thanked: 557 times

Re: Exakte Filamentüberwachung - Hardware Vorhanden

Beitrag von rf1k_mjh11 »

Georg/georg-AW,


[code:2vud9xh6]Ich dachte man wolle den eigentlichen Maussensor ( der die Oberfläche der Unterlage abtastet und nun die Oberfläche des Filamentes abtasten soll ) aus der Maus ausbauen und in ein Filamentüberwachungssystem verwandeln.
So wie ich dich verstehe, willst du die ganze Maus praktisch unverändert ( bis auf evl. eine Führung ) einsetzen.
Liege ich da richtig ?[/code:2vud9xh6]

Klar will ich nicht die ganze Maus ans Filament klemmen. Wenn ich das Gehäuse der Maus demontiere, hört dann der Sensor zu funktionieren auf? Ich hoffe nicht.

Die Maus hat natürlich massenhaft Funktionalität, die ich nicht benötige (Scroll-Rad, 2 oder eher 3 Tasten). Wenn ich die (elektrisch) unangetastet lasse, sollte der Sensor doch weiterhin funktionieren. Wahrscheinlich kann ich die Tasten & Scrollrad sogar abtrennen, ohne den Sensor zu beeinflussen.
(Theor. könnte ich sogar eine der Maustasten als Schalter misbrauchen, der betätigt wird wenn das Filament ausgeht - aber das macht im Prinzip der Sensor, eh schon.).
Dafür aber, das so eine Maus grad €5.99 kostet, schenke ich doch gerne die nicht benötigte Funktionalität her. Ich brauche nur den Sensor, die dazugehörige Elektronik, und das Kabel.

Bei der Montage ist das einzige, auf das ich mechanisch achten muss, der Abstand des Sensors zum Filament. Dieser sollte in etwa den Abstand des Sensors (als Maus) zur Arbeitsoberfläche entsprechen.

Aber wie gesagt, ich bin weder Programmierer, noch Elektroniker. Ich hätte schon meine Probleme mit deiner Hall-Effekt-Sensor-Lösung.

mjh11
RF1000 (seit 2014) mit:
  Pico Hot End (mit eigenem Bauteil- und Hot End Lüfter)
  Ceran Bett
  FW RF.01.47 (von Conrad, modif.)

Die Natur kontert immer sofort mit einem besseren Idioten.
Benutzeravatar
rf1k_mjh11
Developer
Developer
Beiträge: 2097
Registriert: Di 6. Jan 2015, 19:44
Wohnort: Autriche
Has thanked: 276 times
Been thanked: 557 times

Re: Exakte Filamentüberwachung - Hardware Vorhanden

Beitrag von rf1k_mjh11 »

Georg/georg-AW,

Ich will in keiner Weise deine Lösung bekritteln. Ich finde es toll. Es hat viele Vorteile:
Sie ist einsatzbereit und umgesetzt
Sie ist portable (großteils geräteunabhängig)
Sie funktioniert (nehme ich an)
Die Firmware muss nicht angetastet werden (oder?)
Die Host-Software muss nicht angetastet werden
Geringen Platzbedarf

Meine Idee, hingegen, erfüllt noch keinen dieser Punkte, bis auf Platzbedarf (eventuell). Andererseits kann man sagen, dass sich der optische Sensor, in seiner Funktion, schon tausend- oder millionenfach bewährt hat. Alle anderen Punkte sind aber leider noch offen.

Eine Idee halt ....

mjh11
RF1000 (seit 2014) mit:
  Pico Hot End (mit eigenem Bauteil- und Hot End Lüfter)
  Ceran Bett
  FW RF.01.47 (von Conrad, modif.)

Die Natur kontert immer sofort mit einem besseren Idioten.
Benutzeravatar
georg-AW
Developer
Developer
Beiträge: 536
Registriert: Mi 1. Okt 2014, 14:43
Wohnort: Schweiz Nordost
Has thanked: 40 times
Been thanked: 238 times

Re: Exakte Filamentüberwachung - Hardware Vorhanden

Beitrag von georg-AW »

Hi

Es ist berufsbedingt eine Eigenart der Entwicklungsingenieure ( sozusagen eine Deformation ) bei einer neuen Idee auch gleich die Nachteile herauszufinden. Was gelegentlich dazu führt , auch eine gute Idee nicht weiter zu verfolgen. Das geht bei mir auch so.
Sorry , wenn ich deshalb noch eine Erläuterung zufüge welche die Probleme der Filamentsabtastung mittels einer optischen Maus detaillierter ausleuchtet.
Ich glaube, dass die Standardmäuse nicht geeignet sind alle Filamente direkt abzutasten. Es wird ständig wieder Ausnahmen geben welche nicht abtastbar sind. Allenfalls müsste man mit einer Lasermaus Versuche machen.
Es ist leider so, dass bei einer Direktabtastung des Filamentes mit einer Standardmaus die reflektierende , strukturierte Oberfläche eines Filamentabschnittes wesentlich kleiner ist als wenn eine übliche Tischoberfläche abgetastet wird.
Die abgetastete Fläche ist kleiner bzw. in der Unschärfezone und deshalb nicht zu nutzen.
PS: die Oberflächen sind stark überhöht dargestellt.

ciao Georg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Benutzeravatar
rf1k_mjh11
Developer
Developer
Beiträge: 2097
Registriert: Di 6. Jan 2015, 19:44
Wohnort: Autriche
Has thanked: 276 times
Been thanked: 557 times

Re: Exakte Filamentüberwachung - Hardware Vorhanden

Beitrag von rf1k_mjh11 »

Ja ist mir klar, deswegen neige ich ja dazu, das Andrückkugellager abzutasten - immer die gleiche Oberfläche, egal was für Filament.



mjh11

Nachtrag:
Man sollte allerdings konstruktiv dafür sorgen, dass sich das Kugellager bei Filamentende nicht am Rändelrad weiterdreht).
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
RF1000 (seit 2014) mit:
  Pico Hot End (mit eigenem Bauteil- und Hot End Lüfter)
  Ceran Bett
  FW RF.01.47 (von Conrad, modif.)

Die Natur kontert immer sofort mit einem besseren Idioten.
Benutzeravatar
georg-AW
Developer
Developer
Beiträge: 536
Registriert: Mi 1. Okt 2014, 14:43
Wohnort: Schweiz Nordost
Has thanked: 40 times
Been thanked: 238 times

Re: Exakte Filamentüberwachung - Hardware Vorhanden

Beitrag von georg-AW »

Hi

Mein Andrucksystem mit dem flachen Spanner ist so gemacht, dass ohne Filament noch ca. 0.2mm Luft zwischen Ritzel und Magnetscheibe liegen. Wäre das nicht der Fall, wäre die ganze Einrichtung sinnlos. Die Scheibe ist konstruktionsbedingt etwas grösser als das Kugellager. Der Durchmesser des Teilkreise worauf die Magnete liegen muss relativ gross sein weil sonst die einzelnen Magnetfelder überlappen und von den Hallsensoren nicht mehr einzeln wahrgenommen werden.


ciao Georg
Benutzeravatar
rf1k_mjh11
Developer
Developer
Beiträge: 2097
Registriert: Di 6. Jan 2015, 19:44
Wohnort: Autriche
Has thanked: 276 times
Been thanked: 557 times

Re: Exakte Filamentüberwachung - Hardware Vorhanden

Beitrag von rf1k_mjh11 »

Hallo alle, besonders die Klipper-Freunde,

Auf die Bitte mhiers hin, lasse ich diesen Thread wieder aufleben. Vielleicht ist es für die Klipper-Programmierer nicht zu schwer umzusetzen. Auch ein versierter Arduino-Programmierer, wie Nibbels, könnte es leicht umsetzen.

Man kann sich das Durchlesen des gesamten Threads bis hierher sparen, wenn man will.

Die Idee war, den Sensor einer optischen Maus dazu zu verwenden, die Andrückrolle zu beobachten. Damit könnte man beinahe alle Fehler im Filamenttransport finden. Ich komme später zu einer mir bekannten Ausnahme.

Der Sensor in einer Maus macht nichts anderes als mehrmals in der Sekunde ein Bild mit dem vorhergehenden zu vergleichen. Anhand einer eventuellen Differenz wird die Bewegungsrichtung und Distanz ermittelt.
Die Auflösung der ersten optischen Mäuse war zwischen 800 und 1200 dpi (ca. 0.0212 bis 0.03175mm) also schon beachtlich. Inzwischen haben die rein optischen Dinger (ohne Laser) Auflösungen von 3200 dpi und mehr, womit man schon im Bereich von einem Hundertstel Millimeter Auflösung kommt. Ob man die dpi eins-zu-eins in Millimeter-Auflösung umrechnen kann, bleibt noch zu prüfen. Ob meine Idee mit einer Laser-Maus klappt, weiß ich ebenso nicht.

Geeignet ist meine Idee besonders für den RF1000 single, da dieser einen extra guten Platz für den Sensor bietet, hier:
OpticalSensorPosition.jpg
Dort ist ausreichend Platz für den Sensor.
Beim RF2000 müsste man den Sensor auch bei der Andrückrolle unterbringen. Dazu habe ich mir aber keine Überlegungen angestellt.

Der Sensor würde auf die Rückseite der Andrückrolle gerichtet und diesen beobachten. Da die Andrückrolle sich völlig synchron mit dem Filament bewegt, könnte der Maussensor den Transport des Filaments sehr zuversichtlich überwachen.
Ausnahmefall
Einen Fall kenne ich, wo sich die Andrückrolle bewegen könnte, obwohl kein Filament extrudiert wird: bei flexiblen Filamenten kann das Filament 'ausbrechen' wo es dann am Hot End vorbei transportiert wird. Dann sammelt sich das Filament, wie weiche Spaghetti, in einem Haufen unter dem Extruder. In so einem Fall kann es unter Umständen dazu kommen, dass sich die Andrückrolle trotzdem weiter dreht. Hier würde die Überwachung den Fehler nicht erkennen.
Hier als erstes einige Bilder:
IMG_20210525_192435.jpg
IMG_20210525_192454.jpg
IMG_20210525_192526.jpg
IMG_20210525_192628.jpg
Was die Platzverhältnisse betrifft, müssen der Sensorchip, die Linse und die LED unmittelbar bei der Andrückrolle angebracht werden. Da ich betreffend Elektronik nicht vom Fach bin, kann ich nicht sagen, welche von den Elkos, Widerständen, usw. benötigt werden und wie weit entfernt diese untergebracht werden können. Nicht benötigt werden natürlich die drei Mikroschalter und die Lichtschranke (für das Scroll-Rad). Was der Chip auf der Unterseite macht, kann ich nicht sagen (vielleicht die Aufbereitung des USB Protokolls? Die Maus liegt bei mir. War damals die erste optische Maus, die Microsoft herausbrachte. Der hatte noch einen kleinen Chip, der nur die Bildauswertung machte. Den Chip bekommt man heute gar nicht mehr. Heutige Chips integrieren das USB Protokoll und mehr gleich in einem Package.

Damit man ein Gefühl von den Platzverhältnissen bekommt, noch ein paar Bilder. Diese zeigen die Linse in Position. Die Linse ist praktisch das größte Teil. Passt es, wird man vermutlich keine Probleme haben:
IMG_20210525_185929.jpg
Mit dieser Linse hochkant geht es, wie man sieht. Es ist aber schon knapp. (Hinweis: Es gibt viele Formen dieser Linse/Lichtführungs-Einheit.)
Lens_horizontal.jpg
Ist die Linse quer positioniert sieht man, es ist genug Platz da.

Im nächsten Beitrag erkläre ich, wie ich mir das System vorstelle und welche zusätzliche Hardware nötig wäre.

Allseits Gesundheit!

mjh11
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
RF1000 (seit 2014) mit:
  Pico Hot End (mit eigenem Bauteil- und Hot End Lüfter)
  Ceran Bett
  FW RF.01.47 (von Conrad, modif.)

Die Natur kontert immer sofort mit einem besseren Idioten.
nikibalboa
Donator
Donator
Beiträge: 141
Registriert: Mo 13. Nov 2017, 11:12
Wohnort: Friedberg
Has thanked: 179 times
Been thanked: 42 times

Re: Exakte Filamentüberwachung - Hardware Vorhanden

Beitrag von nikibalboa »

Guten Morgen,

Ich würde mich in diesem Thema gerne einbringen aber leider mache ich gerade eine Schulung bis Oktober.

Kurze Anmerkung, funktioniert der Laser am Metalllager?
Sonst müsste das ja auch mit den Achsen der Kugelmaus funktionieren.

Lg nikibalboa
Rf1000 Bausatz mit allen wichtigen Optimierungen + Umbau auf E3dv6.

Fw1.44.01Mod
Benutzeravatar
rf1k_mjh11
Developer
Developer
Beiträge: 2097
Registriert: Di 6. Jan 2015, 19:44
Wohnort: Autriche
Has thanked: 276 times
Been thanked: 557 times

Re: Exakte Filamentüberwachung - Hardware Vorhanden

Beitrag von rf1k_mjh11 »

Funktionsweise:

Hinweis: Die Systemplatine im RFx000 basiert auf den AT Mega 2560, ist also ein Arduino Mikrokontroller.

Ein zweiter Arduino (z.B. Uno, Mega, oder auch viel kleiner; Kosten belaufen sich unter €25) wird eingesetzt, dessen Aufgabe es ist, alle GCode-Befehle an den Drucker durchzuschleifen und dabei auf alle Zeilen mit einem 'E' zu achten.
Der Maussensor ist an den Arduino angeschlossen und wird von diesem regelmäßig ausgelesen. Basierend auf die E-Werte und den Werten der Maus lässt sich eine genaue Überwachung des Filaments bewerkstelligen. Sogar beginnender Schlupf wäre praktisch ohne nennenswerte Verzögerung erkennbar.

(Extra für AtlonXP): Was geschieht beim Auftreten eines Fehlers?
Entweder:
a) Ein Signal wird an den Drucker gesendet, worauf der Drucker ein Script ablaufen lässt, der den Druck pausiert, die Hot End Temperatur senkt, eine Meldung am Display ausgibt und vielleicht den Drucker piepsen lässt.
Oder
b) Da eigentlich alle GCode-Befehle durch den Arduino geschleust werden, wird es sehr einfach: also, die 'normalen' GCode-Befehle einfach nicht mehr weiter durchschleifen, stattdessen Hot End Temperatur senken, Meldung am Display ausgeben und vielleicht schön piepsen lassen.

Natürlich könnten diese Funktionen von einem Raspberry (für die Klipper-Fans) oder auf andere Weise durchgeführt werden.
Auch unsere Systemplatine könnte das übernehmen falls ausreichende freie Ein- und Ausgänge (Pins) vorhanden sind (das ist fraglich). Ebenso fraglich ist, ob genügend Speicherplatz vorhanden ist. Dieser scheint schon ziemlich ausgelastet zu sein.

Was vom zweiten Arduino, bzw. vom zusätzlichen Mikrokontroller genau gemacht werden muss:
  • GCode Befehle vom Host durchschleifen
    (falls von einer SD Karte gedruckt wird, müsste die Karte mit dem zweiten Arduino verbunden sein - nicht die im Drucker selbst!)
  • Beim Durchschleifen der GCode-Befehle die E-Werte beachten.
  • die Antworten des Druckers beachten, evtl. darauf reagieren ('ok', Resend, usw.) und diese Antworten an den Host retour durchschleifen (womit die Log-Datei am PC kreiert wird).
  • Die Maus auslesen und die 'bewegte' Distanz mit den E-Werten vergleichen.
  • Auf einen Fehler reagieren.
Dass ein Arduino die meisten dieser Funktionen können muss, wurde mir erst später klar, als ich erkannte, dass ja die Systemplatine auf Arduino basiert. Daher muss der Empfang und das Senden von Strings (=GCode-Befehle, 'ok' & 'Resend') möglich sein, da das unser Drucker schon macht. Beim GCode-Befehl auf ein 'E' zu achten sollte auch möglich sein, schließlich reagiert der Drucker auf alle Befehle und wertet diese entsprechend aus.
Eine Maus können wir an unseren Drucker nicht anschließen, aber der Anschluss einer Maus und deren Auswertung durch einen Arduino scheint auch möglich zu sein: Hier Link1, Link2, Link3 mit entsprechenden Beispielen. Die hauptsächliche Einschränkung bei der Maus scheint zu sein, dass hier nur das PS/2 Protokoll unterstützt wird. PS/2-Mäuse sind eine stark bedrohte, vom Aussterben bedrohte Rasse, aber es gibt einen einfachen Trick:
PS_2_Adapter.jpg
Ich weiß nicht ob Alle USB Mäuse auch 'PS/2-kompatibel' sind. Müsste man ausprobieren. Schnurlose Mäuse werden höchstwahrscheinlich mit Arduino nicht klappen, bei Raspberry weiß ich es nicht.

Wenn ein eigener Arduino für die Filamentüberwachung eingesetzt wird, und beim Auftreten eines Fehlers die Variante 'b)' gewählt wurde, kann der Drucker selbst völlig 'dumm' bleiben und muss von der Überwachung gar nichts wissen. (Die meisten (oder alle?) externen Filamentüberwachungssysteme verwenden Methode 'a)' und müssen den Drucker, über eine eigene Leitung, vom Fehler informieren, damit der Drucker reagieren kann. Dieser Input muss in der Firmware deklariert werden und benötigt einen Pin (ebenso ist Firmware ändern & neu aufspielen nötig).

Ich schätze, ein 'Eichdurchlauf' wird nötig sein, um dem Arduino die Möglichkeit zu geben, die Mauswerte zu kalibrieren. Es müsste was recht einfaches sein, wo man eine vorher bestimmte, genaue Menge extrudiert. Da der Arduino jede GCode-Zeile abarbeitet, könnte man hierfür einen pseude-GCode-Befehl kreieren, der einen Kalibriervorgang 'auslöst'. Damit wären regelmäßige Kalibrierungen sehr leicht, falls das erwünscht wäre.

EDIT: Einer der Probleme, die ich sehe, ist der getrennte USB 'Ausgang', der vom zusätzlichen Arduino an den Drucker gehen muss.
Unsere Systemplatine verwendet für die Rückmeldungen an den Host ('ok', 'Resend') dasselbe USB Kabel, aus dem die GCode-Befehle ankommen. Das geht beim separaten Arduino nicht, da dieses Kabel an den Host geht, nicht an den Drucker. Mit einem separaten Arduino hätte ich keine Ahnung ob das, oder wie das zu bewerkstelligen ist. Ich nehme einfach an, das so was gehen müsste. Man muss im Prinzip einen zusätzlichen USB-Port 'basteln'. Und das könnte der springende Punkt sein!

Hoch die Masken! Hoch die Vakzine! Nieder mit dem Corona-Virus,

mjh11
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von rf1k_mjh11 am Mi 26. Mai 2021, 21:31, insgesamt 1-mal geändert.
RF1000 (seit 2014) mit:
  Pico Hot End (mit eigenem Bauteil- und Hot End Lüfter)
  Ceran Bett
  FW RF.01.47 (von Conrad, modif.)

Die Natur kontert immer sofort mit einem besseren Idioten.
mhier
Prof. Dr. des 3D-Drucks
Prof. Dr. des 3D-Drucks
Beiträge: 1672
Registriert: Fr 11. Sep 2015, 11:37
Has thanked: 279 times
Been thanked: 247 times

Re: Exakte Filamentüberwachung - Hardware Vorhanden

Beitrag von mhier »

Hier schon mal ein paar Gedanken dazu:

- Ich würde den Sensor eher nicht über die vorhandene Andruckrolle ansteuern, sondern oberhalb des Extruders eine eigenständige Konstruktion aus zwei Andruckrollen benutzen. Das hat die Vorteile, dass das System auch bei anderen Extrudern (RF2000, dual, sogar andere Drucker) funktionieren würde, und dass auch der Fall des ausbrechenden Filaments abgedeckt wäre. Letzteres ist mir durchaus auch schon bei ABS und Holz-PLA-Filament passiert. Der zusätzliche Aufwand dürfte nicht besonders groß sein.

- Evtl. kann man dann auch (mindestens) eine der beiden Andruckrollen aus Kunststoff drucken, so dass der Sensor eine strukturierte Oberfläche sieht. Alternativ kann man auch die Oberfläche der Kugellager etwas anschleifen, dann wir sie rauh. Das habe ich bei meiner Andruck-Rolle im Extruder gemacht, um eine leichte Vertiefung zu bekommen gegen das Ausbrechen.

- Für die Umsetzung auf Software-Seite könnte ich mir vorstellen, dass man bei Klipper tatsächlich über den Maustreiber geht und die Bewegung in einer Koordinate ausliest. Dafür müsste man es allerdings schaffen, dem System beizubringen, welches die normale Maus und welches unser Filament-Sensor ist - oder man kann das System nicht mehr interaktiv benutzen (das wäre für mich ein Problem).

Edit: Hier schon mal die Lösung, wie man Linux beibringt, die zweite Maus nicht für die graphische Oberfläche zu nutzen - solange man noch X und nicht schon Wayland hat (die Frage zielt auch auf Windows, die Antwort ist aber Linux):
https://stackoverflow.com/questions/441 ... -linux-any
Zuletzt geändert von mhier am Mi 26. Mai 2021, 21:33, insgesamt 1-mal geändert.
Gruß, Martin

Klipper Firmware für den RFx000: Klipper für RFx000 | Original-Dokumentation | Diskussion | Wiki mit Installations-Anleitung

(Ich bin in diesem Forum nicht mehr aktiv)
Antworten

Zurück zu „Erweiterungen“