Archiv

RAMPS

Da Autoleveling das ganze Druckbett nivellieren unnötig (jedenfalls zu Teilen) macht und mittlerweile dutzende von Anleitungen im Web existieren, hatte ich mich auch mal daran gemacht das einzubauen.

Ich nutze dabei aus, das die Dauerdruckplatte aus Metall besteht und ich sie damit bequem berührungslos abtasten kann. Ein Induktiver Näherungssensor erledigt das dann ohne Servo oder anders geartete Mechanik.

An den X-Carriage wurde ein Stück Lochband angeschraubt, welches den Sensor trägt. Das ist erstmal eine Übergangslösung (auch wenn ich schon einen Monat damit drucke), stilgerecht muss da ein Stück gedrucktes Plastik hin.

hookDas Stück Lochband passt perfekt zwischen die Haltern von dem Zahnriemen.

hook_carrigeDas bisschen Elektonik, das für den Induktiven Näherungssensor notwenig ist kam auf ein Stück Restplatine und wurde mit Heiskleber vergossen, so das da keine Kurzschlussgefahr herrscht wenn ich das einfach lose zu Ramps dazu lege.

opto_platineDamit lässt sich der Sensor nun genau so anschliesen wie ein normaler Endstop.

Extruder und Induktiver Näherungssensor zusammen eingebaut, sieht das dann so aus:

P1060778Die Muttern vom Näherunsgschalter muss man unbedingt mit Schraubensicherung sichern, selbst wenn man die maximal anzieht, nach einigen Stunden hat sich da alles losvibriert und damit ist dann die ganze schöne Kalibierung hinfällig

Softwaretechnisch geht das im Prinzip genau so wie bei allen anderen, nur das man den Teil mit dem Servo aktivieren und einstellen übersprigen kann. Eine schöne Video Anleitung gib es hier, bzw. eine in Textform.

Beim Drucken schwebt der Näherungssensor dann einfach etwas über dem Druck.

schwebe

Als neuen Endstop für die Z-Achse kommt ein Induktiver Näherungsschalter zum Einsatz.

ind_stopDieser besteht primär aus drei Funktionseinheiten: einem Schwingkreis mit Oszillator, einer Auswerteinheit und einer Ausgangsstufe. Die Ausgangstufe ist in meinem Fall eine PNP Ausführung mit Status LED.

Kurz zur Funktionsweise

Nähert sich der Näherungsschalter einem Objekt aus Metall nimmt die Amplitude der Schwingung ab, da dem Schwingkreis Energie entzogen wird, das wird von der Auswerteinheit registriert und die Ausgangsstufe schaltet um.

Folglich muss der Näherungssensor das metallene Objekt nicht berühren, der Schaltabstand liegt bei 2-5mm je nach Modell und Metall. Bei Alu wie bei mir ist der Schaltabstand ehr auf der niedrigen Seite bei Stahl am größten.

Großer Vorteil an der Sache

  • super Präzise, die Wiederholgenauigkeit ist kleiner als 0,01mm also viel besser als bei dem klassischem Schalter.
  • Staub und andere Nichtmetallischer Dreck ignoriert der Sensor, also keine falschen Messungen durch Dreck auf der Messstelle (bei mir öfters mal Holzspäne).
  • da komplett versiegelt unempfindlich gegenüber Staub, Ölen und Co. (Spielt bei CNC-Maschinen wohl ehr eine Rolle).

Nachteil

  • funktioniert logischerweise nur bei Metallen.
  • brauchen in der Regel eine Betriebsspannung größer als 5V, und die Ausgangsstufe liefert auch kein Logik Signal das man direkt auf Ramps geben könnte, da brauch man noch ein paar zusätzliche Komponenten.
  • schaltet langsamer als ein mechanischer Schalter, aber auch für den Drucker vernachlässigbar (200ns), mit den zusätzlichen Komponenten dauerts dann bis das Signal auf Ramps ist noch etwas länger also bei mir 4µs.

Zusätzliche Beschaltung

Speziell bei PNP Endstufen lässt man diese gerne ein Relais schalten was dann den echten Kontakt schaltet. Da ich aber grade kein passendes Relais zu Hand hatte und noch einen kleinen Optokoppler optoim Fundus hatte übernimmt der die Aufgabe mir ein Ramps kompatibles Signal zu erzeugen.

SceminSchwups zusammengelötet und schon gibt das ein sauberes Signal, wenn der Endstop aktiv ist liegen am Ausgang 0V an, bzw. der Ausgang wird auf Masse gezogen. Ansonsten liegen 5V an, das Signal kann also direkt auf Ramps gegeben werden. Zugegeben ein einfacher Transistor hätte es auch getan, so ist Ausgang halt noch zusätzlich besser gegen Überspannung geschützt.

Als vorbereitende Maßnahme für das neue Heizbett wurde der Mosfet von Ramps externalisiert.

mosfet altHaupsächlich um nicht mehr auf die kleinen Schraubklemmem angewiesen zu sein da 2,5mm² Kabel dafür zu viel sind, aber auch um die Leiterbahnen auf Ramps zu entlasten und dem Mosfet einen kleinen Kühlkörper zu verpassen. Der ist zwar nicht unbedingt notwenig, aber Schaden tut es auch nicht und lässt Spielraum nach oben.

Laut Schaltplan ist das Q3, also raus mit dem Mosfet und die Kabel direkt an den Mosfet angelötet. Damit setzt man zwar die zu Q3 dazugehörige Status LED und auch den Pulldown Widerstand Schachmatt, aber die Status LED kann man mit einer externen LED ersetzen, wenn man sie den braucht. Verbindet man dann noch beide Minuspole auf Ramps ist auch der Pulldown Widerstand wieder mit drin.

mosfet

Kleiner Kühlkörper angeschraubt und dann noch im Luftstom plaziert bleibt der Mosfet schön kühl.

Verbunden wird das dann per 4mm Buchsen und Stecker mit dem Heizbett, die sind für bis zu 30A ausgelegt so das da auch für die Zukunft Luft nach oben ist.

Nach gut einer Stundearbeit ist aus dem Layout eine fertige Platine geworden. Als erstes wurde die Paltine geätzt, und zwar in zweifacher Ausführung (das hier ist nur ein Teil).

plaAnschließend wurden die Platine weiter zugeschnitten und die ganzen Löcher gebohrt, das ist auch der mühseligste Part. Danach etwas Lötlack darübergesprüht und eine ganze Menge Dioden verlötet. Als Schottky-Diode wurden Dioden des Types SK26A SMD verwendet. Diese können 60V bei 2A ab und waren die einzigen SMD Schottky-Dioden die ich in ausreichender Stückzahl rumliegen hatte, ander Dioden tuen es natürlich auch. Als Überspannungsschutzdiode kommt die Diode P6SMB 33A SMD zum Einsatz, diese schließt Spannungen größer 33V kurz. Das wäre für die Motortreiber A4988 etwas viel, da sollte man eine Diode mit 27V oder weniger nehmen wenn es die Betreibspannung (24V in meinem Falle) erlaubt.

Bestückt sieht die Platine (auf dem Bild noch ohne den Kondensator) dann so aus:

a2Hier mal als Nahaufnahme:

b1Wie man sieht hatte ich es mit dem Bestücken etwas eilig, deshalb habe ich auf der einen Seite auch nur jeden zweiten Pin verlötet, die Buchse hebt damit immernoch mehr als gut genug. Auf RAMPS aufgesteckt mit einem Treiber darin sieht das ganze dann so aus.

c9Nicht unbedingt super ästhetisch, speziell wenn die ganze Kiste auch verkabelt ist, aber sehr funktional! Damit solle an dieser Baustelle fürs erste mal Ruhe sein. :). gruener-haken

Ulayouttestv1m mal Nägel mit Köpfen zu machen und die ganzen Frickellösungen abzuschaffen habe ich mich mal hingesetzt und schwupp die wupp eine kline Platine gelayoutet. Die Dioden will ich dabei in SMD verwenden, da jedes nicht vorhandende Bohrloch ein gutes ist. Und um das ganze so einfach wie möglich zu halten solls eine einseitige Platine sein, auch wenn man dann mit Hand ein paar Verbindungen ziehen muss, das geht aber  immernoch schneller als als das doppelseitig zu ätzen.

Das Ding wird dann demnächst geätzt und bestückt und soll dann einfach zwischen dem Motortreiber und RAMPS sitzen.

Darauf sind je Treiber acht Schottky-Diode, eine Suppressordiode und ein Kondensator wird direkt an die Pins angelötet, damit sollten alle meine drei Punkte abgehackt sein, hoffentlich ;).

Nach nun einem gutem Jahr habe ich es endlich mal geschafft RAMPS in ein Gehäuse zu verbauen.

e2Als Gehäuse dient eine Box von TEKO, Modell P4. Löcher wurden an beiden Seiten reingebohrt um Kabel rein und rauszuführen. Links sitzt bei mir RAMPS mit dem Arduino Mega 2560 und dem aufgelötetem Adapter für den Reprap Ramps 1.4 smart LCD controller.

Die Lochrasterplatine rechts nebenan übernimmt dieverse Steuerungs- und Schaltaufgaben. Unter andem Sitzen dort einige MOSFETs die vom Arduino angeschaltet werden können, um beispielweise den Lüfter für die Motortreiber zu kontrollieren. Auch werden dort die benötigten Spannungen für den Arduino (5V) und die Lüfter (12V) erzeugt.

Die nächste Lochrasterplatine besteht primär nur aus Sicherungen. Die Polysicherungen von RAMPS hatte ich schon vorher runtergeschmissen, jetzt übernehmen klassische Feinsicherungen den Job. Die Spannungsversorgung für den Arduino und die Lüfter sind mit 1A abgesichert, RAMPS plus Motoren mit 3,15A und das Heizbett mit 10A. Jede Sicherung hat eine LED bekommen um defekte Sicherungen anzuzeigen. Ansonsten sitzen dort nur noch ein paar Kondensatoren um die Spannung konstant zu halten.

Ganz rechts sitzt dann nocheinmal eine Hauptsicherung, kann ja nie schaden und sichert auch nocheinmla das Relais ab, welches es mir ermöglicht die ganze Druckerelektonik bequem Stromlos zu schalten.

Strom bekommt die Kiste einfach über zwei 4mm Bananenbuchsen:

e6Als Deckel wird zu dem Gehäuse normalerweise ein Aludeckel mitgeliefert, da ich mein Gehäsue aber auf nem Flohmarkt für einen Euro gekauft habe gabs keinen Deckel. Also wurde einer aus 4mm starkem Plexiglas geschnitten, darauf kommt der Lüfter und der An/Aus Schalter, natürlich in Rot. Auch ein Reset Taster darf natürlich nicht fehlen.

s7Da sieht man dann auch wuderbar die LEDs durchscheinen, das wäre bei einem Aludeckel ja ansonsten recht witzlos.

In letzter Zeit hatte ich öfters Probleme mit dem Schrittmotortreiber der X-Achse. Wenn ich eine hohe Druckgeschwinigkeit gefahren bin (170mm/s) ist mir der Treiber gestorben, was natürlich super für den Druck ist. Da waren es schon zwei tote Treiber. Danach habe ich mich ans Internet gesetzt und angefangen zu suchen warum ausgerechnet dieser Treiber immer kaputt geht.

Erster Ansatz war natürlich die Webseite von Pololu. Und da ist auch schon der erste Hinweis zu finden:

Warning: This carrier board uses low-ESR ceramic capacitors, which makes it susceptible to destructive LC voltage spikes, especially when using power leads longer than a few inches. Under the right conditions, these spikes can exceed the 35 V maximum voltage rating for the A4988 and permanently damage the board, even when the motor supply voltage is as low as 12 V. One way to protect the driver from such spikes is to put a large (at least 47 µF) electrolytic capacitor across motor power (VMOT) and ground somewhere close to the board.

Das könnte zutreffen, immerhin lasse ich die Treiber schon mit 24V laufen, da  ist nach oben natürlich nicht mehr viel Luft. Also mal das Osziloskop an den neuen (dritten!) Treiber gehängt und mal einen Probedruck gestartet. Noch bevor der Druck richtig begonnen hatte ging die X-Achse nicht mehr. Schon beim Homing hatte es mir den Treiber zerschossen. Immerhin zeighte das Oszi etwas an. Einen hübsche Schwinung mit einer maximalen Amplitude von fast 45V, da musste der Treiber jedenfalls nicht lange leiden.

3 tote Treiber und keine Lust einen weiteren auf gut Glück zu opfern, also wie bekomm ich die blöden Spikes auf unter 35V? Auch da gibt Pololu einige Ideen an:

There are several ways to limit the magnitude of the initial LC transients we’ve seen so far:

  • Limit lead inductance
  • Add resistance to the LC circuit
  • Add a large, high-ESR capacitor across (in parallel with) the low ESR capacitor

(Ich bekomme es nicht hin eine Aufzählung als Zitat zu kennzeichen, die gehört natürlich aber noch dazu)

Realisierbarkeit

  • Die Induktiviät der Zuleitung werde ich nicht deutlich kleiner bekommen, dazu müsste ich massiv das RAMPS Board manipulieren, worauf ich nicht unbedingt scharf bin.
  • Zusätzlichen Widerstand in den LC (Induktiviät und Kondensator) Kreis einbringen. Das könnte man thoretisch machen 0,1 Ohm oder so sollten genügen. Alternativ kann man das mit einem Mosfet realisieren, das ist jedoch etwas mehr Aufwand.
  • Die einfachte Methode ist wohl einen großen high ESR Kondensator parallel zu dem kleinen 10µF Kondensator auf dem Pololu Board zu schalten. Das ist eigentlich auch so auf RAMPS vorhergesehen, deshalb sitzt unter jedem Treiber auch ein Kondensator in SMD Bauweise.

Ich habe mir mal diesen Kondensator unter dem Treiber angeuckt, es ist ein 100µF 35V Kondensator, so weit so gut, als ich dann den ESR Wert gemessen habe bin ich auf eien Wert von 0,14 Ohm gekommen, das ist aber eindeutig ein Low ESR Wert, das kann ja garnicht richtig viel helfen.

Hmmm, waren die Teile die beim RAMNPS Board beilagen also nicht unbedingt ideal.

Also in der Teile Box nach Elkos mit >= 100µF und einer mindest Spannungsfestigkeit von 35V gesucht. SMD Elkos mit hohem ESR Wert habe ich nicht, gefunden hab ich aber ein ganzes dutzend 220µF 35V Kondensatoren, alle mit einem ESR von rund 0,25 Ohm.

CapsDas klingt doch deutlich besser, also wird so einer verbaut. Leider passt der nicht mher dahin wo der alte SMD Kondensator saß, dafür ist der einfach deutlich zu groß.

Caps GroeßeMacht ja aber nichts, dann wird der halt direkt auf den Treiber gelötet und die Stelle im RAMPS Board freigelassen.

Cap neu(Der Kondensator sollte nicht unbedingt dem kühlkörper berühren, die Dinger mögen Hitze nicht so sehr. Das lässt sich ja aber ganz einfach ein Stückchen zu Seite biegen). Hier die Lötstelle im Detail:

Cap neu solderIch hab den Kondensator einfach an den Kondenstaor (das braune Rechteck) drangelötet, natürlich könnte man auch einfach die beiden Pins als Kontakte nehmen ist aber ziemlich egal.

Da ich das ganze schon vor ein paar Wochen gemacht habe, kann ich sagen das dass richtig was genutzt hat. Bis jetzt hat es den Treiber nicht mehr zerschossen. So das ich auch bei den anderen Treibern diesen Umbau machen werde, kostet ja nur ein paar Cent und in 5 Minuten hat man den Treiber modifiziert. Den SMD Kondensator ausgelötet, den neune Kondensator zurechtgebogen und eingelötet, Treiber wieder eingesteckt und schwups kanns weitergehen. Weiter Messungen mit dem Oszi haben gezeigt das mit dem neuen Kondensator die Spannungsspitze fast gänzlich unterdrückt wird.