Waffen aus dem 3D Drucker die Xte

Vor einiger Zeit habe ich versucht eine eigene Schusswaffe auszudrucken. Herausgekommen ist dabei diese Gummiband-Pistole. Eigentlich ganz simpel. Man kann mehrere Gummibänder einspannen. Wenn man den Abzug betätigt, wird eines der eingespannten Gummibänder abgeschossen. Erstaunlich präzise sogar. Die Reichweite ist nun nicht so groß, aber für Gefecht innerhalb der Wohnung reicht es aus.

Gedruckte Gummiband-Pistole
Rubberband Gun   http://www.thingiverse.com/thing:217067

 

Der Nachfolger kommt sogar ohne Schrauben aus. Was den Zusammenbau etwas vereinfacht.

http://www.thingiverse.com/thing:603697

 

Für mich hilfreiche Links zum ATtiny

Ich benutze gerne den Arduino in seinen verschiedenen Formen. Alle Anschlüsse sind leicht erreichbar (steckbar) und die Programmierung mit der Arduino IDE ist für gewöhnlich auch ein Kinderspiel. Der Nachteil ist, dass so ein Arduino, auch in den kleinen Varianten, immer noch recht groß ist und auch viel Strom verbraucht. Also musste mal was Neues her. Am besten sollte es auch noch weitest gehend kompatibel mit dem Arduino sein. Da bin ich dann auch den ATtiny gestoßen. Immerhin werden auf dem Arduino auch die Chips von Atmel verbaut. Nur diesmal sollte es eben ein ATtiny statt des ATmega sein.

Den ATtiny gibt es in verschiedenen Ausführungen. Ich habe mir zum Testen einen ATtiny12, ATtiny45 und ATtiny85 besorgt. Jeweils in der Duchsteckversion mit 8 Beinchen. Von Außen sind alle Versionen gleich. Nur im Innern ergeben sich kleine Unterschiede. So hat beispielsweise der ATiny85 drei PWM Ausgänge und der ATtiny 45 nur 2.

Für mein Hundeblinklicht ist es wichtig, dass die Elektronik sparsam mit der Energie umgeht. Zusätzlich habe ich noch nach einer einfachen Möglichkeit gesucht, die Elektronik mit einem einfachen Taster statt eines Schalter abzuschalten. Der ATtiny funktioniert auch ohne Spannungsstabilisierung. 1,8 V bis 5,5 V Betriebsspannung benötigt der kleine Chip. Ideal für einen 3,7 V Lithium-Akku, dessen Spannung von 4,2 V bis ca 3,6 V geht.

Ich fassen einmal kurz meine erreichten Vorteile des ATtiny gegenüber des Arduinos auf.

  • Einsparung des Schalters zum Abschalten der Elektronik
  • Wegfallen des DC-DC Spannungswandlers von 3,7 V auf 5 V
  • ATtiny ist bedeutend kleiner als ein ganzes Arduino Mini Bord
  • ATtiny ist günstiger
  • ATtiny ist stromsparender

 

Unten: Gehäuse mit Arduino Mini, Oben: ATtiny Das aktuelle Gehäuse ist sogar noch einmal etwas kleiner geworden.

Die Größeneinsparung ist schon enorm. Aber auch die Kosteneinsparung ist sehr gut. So ein Arduino Mini (Klon) kostet ca. 8 Euro, vielleicht auch nur 5 Euro. Der ATtiny nur um die 1 Euro. Kostenintensiv ist auch der DC-DC Wandler. Der von mir verwendete Pololu Wandler kostet um die 4 US$. Der eingesparte Schalter kostet nur ein par Cent. Aber man spart auch noch Platz im Gehäuse 🙂

Nun ist der ATtiny da. Wie soll der nun programmiert werden. Ein dafür geeigneten „Flasher“ habe ich mir nicht gekauft. Mit einem Arduino soll das Ganze auch funktionieren. Also mal kurz rumgesucht und folgenden Link (neben anderen) gefunden: http://www.frag-duino.de/index.php/maker-faq/37-atmel-attiny-85-mit-arduino-arduinoisp-flashen-und-programmieren Dort wird beschrieben, was man machen muss, damit man mit Hilfe eines Arduinos den kleinen ATtiny mit Daten füttern kann. Zuerst hatte ich es mit einem Arduino Leonardo versucht, aber damit klappte es nicht. Mit einem Arduino Mega funktionierte es dann.

Danach habe ich nach einer Möglichkeit gesucht, den ATtiny in einen Energiesparmodus zu versetzten. Auch hier gibt es diverse Programmbeispiele. Angefangen habe ich mit diesem hier: http://www.arduino-hausautomation.de/2014/emils-ampel-attiny45-im-tiefschlaf/ Eine kleine Ampel wird per Knopfdruck eingeschaltet. Nach einer bestimmten Zeit wird der ATtiny wieder schlafen geschickt. Den dort abgebildeten Code musste ich noch ein bisshen anpassen, damit der ATtiny per Knopfdruck aufgeweckt und auch wieder schlafen geschickt werden kann.

 

 

Pinbelegung ATTiny
Pinbelegung ATtiny 45 – Seite 2

Mega      Duem
D53       Reset (SS)
D51       D11 (MOSI)
D50       D12 (MISO)
D52       D13 (SCK)
Gnd       Gnd
+5         +5

Auch dieser Link war hilfreich: http://playground.boxtec.ch/doku.php/arduino/attiny Hier werden ein paar der ATtiny Typen verglichen.

 

Um den Code auf den jetzigen Stand zu bringen, musste ich einiges lesen. Auch das anfangs kryptisch wirkende Datenblatt des ATtiny hat sich mir ein wenig geöffnet. Hier ist noch ein Quellcode zu finden, in dem die Verwendung der Register ausführlich beschrieben ist: http://matt16060936.blogspot.de/2012/04/attiny-pwm.html
Zu guter Letzt habe ich mich noch mit den Interrupts auseinander gesetzt. http://www.nongnu.org/avr-libc/user-manual/group__avr__interrupts.html

Meine Methode „lauflicht()“ ist so gestaltet, dass die ohne die Funktion delay auskommt. So war es möglich, schnell auf einen Tastendruck zu reagieren. Bei Verwendung von delay hätte der Taster während des delays nicht reagiert. Mittlerweile müsste ich soweit sein, dass ich den Taster komplett als Interrupt definiere. Dann müsste der ATtiny auch während der Wartephase reagieren. Das probiere ich später noch mal aus.

Hundeblinklicht V5 – Nachtrag

Im letzten Code gab es ein paar Unstimmigkeiten. Beim Testen habe ich festgestellt, dass durch die Schaltung selbst im Power Down Modus immer noch etwas über 1 mA fließt. Der Grund dafür war ganz einfach. Statt in den Power Down Modus zu gehen, wurden einfach nur die LEDs ausgeschaltet. Von Außen macht das keinen Unterschied, aber der Stromverbraucht ist schon enorm unterschiedlich.

Den Code habe ich nun etwas geändert. Leider funktioniert mein Code nun nicht mehr mit dem ATTiny45. Statt dessen habe ich nun den ATTiny85 eingebaut. Der Stromverbrauch im Power Down Modus liegt nun bei 0,1 µA. Diesen Wert zeigt jedenfalls mein Messgerät an.

Die Stromsparfunktion müsste eigentlich auch mit dem ATTiny45 funktionieren. Vielleicht finde ich noch heraus, was da schief läuft.

Hundeblinklicht, Version 5 – es wird Tiny

Der kleine Arduino, den ich bisher in den Hundeblinklichtern verbaut habe, war einfach zu groß und auch zu teuer. Ein kleiner ATTiny45 reicht für das bisschen Blinken völlig aus. Man könnte die Funktion natürlich auch als diskrete Schaltung aufbauen. Nachteil ist nur, dass diese Schaltung mit meinen hier vorhandenen Bauteilen alles andere als stromsparend ist. Der kleine ATTiny hingegen ist im Betrieb schon stromsparend und kann sogar noch in einen Schlafmodus versetzt werden. Somit erspare ich mir einen Schalter, mit dem ich die Stromzufuhr unterbechen muss. Der bereits vorhandene Taster schaltet nun zwischen den verschiedenen Modi durch. 1. Blinkmodus mit sehr hellen Blinkimpulsen. 2. Dauerlicht, das nicht ganz so hell ist, damit es nicht blendet. 3. Aus: der ATTiny wird in den Schlafmodus versetzt. Im Schlafmodus soll der Stromverbrauch so gering sein, so dass der verwendete Akku sehr lange hält. Laut dieser Seite http://www.mikrocontroller.net/articles/Sleep_Mode#Power_Down_Mode fließen nur um die 0,3 µA. Mein Messgerät zeigt in diesem Modus allerdings immer noch 1 mA an. Leider bin ich mir auch nicht so ganz sicher, ob ich den ATTiny richtig programmiert habe. Die Funktion für den Schlafmodus (Methode goToSleep)habe ich aus dieser Seite entnommen: http://www.arduino-hausautomation.de/2014/emils-ampel-attiny45-im-tiefschlaf
Vielleicht mache ich da was falsch. Viel Ahnung habe ich noch nicht.

Blinklicht für Hunde
Links Version 4, Rechts Version 5

 

 

Blinklicht für Hunde
Links Version 4, Rechts Version 5

Ich bin aber schon mal froh, dass der Schalter nun weg ist. Dieser war schwierig vor Wasser zu schützen.

Blinklicht für Hunde
Dank des neuen Innenlebens ist die neue Version um einiges kleiner geworden

Der Tester liegt im Innern des Gehäuses und kann duch Eindrücken des Gehäusedeckels (0,4 mm dickes Nylon) betätigt werden.

Blinklicht für Hunde
Hundeblinklicht, vorne: neue Version

Die seitlichen Arme habe ich nun auch wieder durch einen fertigen Schlauch ersetzt. Viel stabiler und transparenter. Es sind noch Pins am ATTiny frei. Da könnte ich noch eine Akkuanzeige einbauen. Wenn die Spannung des Akkus auf einen bestimmten Wert absinkt, fängt eine rote LED an zu blinken.

Ordnung ist das halbe Leben und 2/3 davon verschläft man

Basteln macht Spaß. Egal für welches Alter. Leider versursacht basteln auch oft Unordnung. Auch bei meinem 3D Drucker hat sich ein Aufräumstau gebildet. Hier und da wurde mal was geändert. Die Leitungen wurden lieber zu lang als zu kurz gelassen und schon sieht das Ganze recht unübersichtlich aus. Immerhin hatte ich vor kurzem noch das Gehäuse für das Display ausgedruckt. Die stl Datei könnt hier bei dr-henschke.de finden.

Unaufgeräumter Drucker
Unaufgeräumter Drucker

Da der Hauptteil der Technik die nächsten paar Wochen nicht mehr geändert werden soll, habe ich mich nun endlich mal an das Aufräumen gewagt. Vor allem sollte die Technik und der Kabelsalat nicht mehr so frei auf dem Tisch rumfliegen.

Am einfachsten erschien es mir, ein Brett in die untere Sektion einzupassen. Also da hunter dem Heizbett, wo die Aluminiumprofile den 120° Winkel aufspannen. Ich wollte es mal gaz professionell machen und habe mir zuerst eine Schablone aus Pappe (alter Versandkarton) angefertigt.
die erste Schablone hat schon fast gut gepasst

Die erste Schablone war schon mal ganz gut. Die Winkel haben gestimmt. Naja, ist auch nicht so schwer bei einem Gleichschenkeligen Dreieck, dessen größter Winkel 120° ist 😀

die zweite Schablone sollte noch besser passen

Das Ganze muss nun nur noch vorsichtig mit einem scharfen Messer und einem Lineal als Schneidkante ausgeschnitten werden.

vorsichtig die Form mit einem schwarfen Messer und einem Linial als Schneidkante ausschneiden

Die zweite Schablone hat dann genau gepasst. Diese Schablone habe ich dann auf eine 12 mm dicke Spanholzplatte übertragen und mit einer Stichsäge ausgesägt. Ich muss mal das Sägeblatt auswechseln… Dann nur noch die Kanten etwas rund und die Flächen glatt schmirgeln. Das war’s schon. Lackieren oder sonstwie behandeln habe ich mir gespart.

So sieht es beim 3D Drucker jetzt aus.

Aufgeräumter 3D Drucker
Aufgeräumter 3D Drucker

Ganz links im Bild ist der Notaus zu sehen. Im selben Gehäuse ist auch ein FI Schalter untergebracht. Etwas weiter rechts ist das gelbe Gehäuse mit dem Display zu sehen. Das graue Teil darunter ist einfach nur eine ausgedruckte Wand aus ABS. Mittig im Bild sind zwei Lüfter zu sehen, die ebenfalls mit einer gedruckten ABS Halterung am Brett befestigt sind. Die beiden 12 V Lüfter sind in Reihe an 24 V angeschossen und kühlen die RAPS128 Treiber und auch die darüber liegende Stahlplatte. Diese wird bei langen Drucken mit hoher Heizbetttemperatur (>100°C) auch warm. Warmes Metall dehnt sich aus. Das kann dann zur Folge haben, dass sich die Platte seitlich nicht mehr weiter ausdehnen kann und dann (für gewöhnlich) nach oben wegwölbt. Das sind dann zwar nur 1 bis 2 mm. Aber den laufenden Druck kann man dann trotzdem vergessen. Ganz rechts sind dann die Schalter für die Mikroschritte zu sehen.

Ein paar Leitungen sind immer noch zu lang. Dennoch bin ich schon mal zufrieden.

Microsteps – Mikroschritte einstellen am RADDS

Bei dem RADDS in den Versionen bis 1.1 gab es keine Schalter oder Jumper, wie beim RAMPS. Ab Version 1.2 befinden sich Microschalter auf der Unterseite des RADDS. Zum Einstellen der Mikroschritte muss also jedes Mal das RADDS vom Arduino DUE getrennt werden. Für mich war und ist das eine unbefriedigende Lösung. Auf dem RADDS selber ist an keiner anderen Stelle Platz. Also habe ich mir überlegt, die Schalter nach aussen zu führen.

Ich habe hier die RADDS Version 1.1. Dort sind eh keine Schalter eingebaut.

Einstellen der Mikroschritte beim RADDS 1.1
Einstellen der Mikroschritte beim RADDS 1.1 Bildquelle: User Guide RADDS 1.01 max3dshop.org

Als erstes trennt man die Leiterbahnen für MS1, MS2 und MS3 auf. Standardmäßig sind diese Leitungen auf 3,3 V gelegt, was für gewöhnlich bedeutet, dass die Schrittmotortreiber mit höchster Mikroschrittzahl laufen sollen. Nach dem Auftrennen wird ein ausreichend langes (dünnes) Kabel an MS1, MS2 und MS3 gelötet. Für jede Achse (X, Y, Z) und jeden Extruder, den man einstellen möchte, einzeln. Ich habe X, Y, Z, E1 und E2 mit Leitern von einem Flachbandkabel versehen. Das sind schon mal 15 Kabel. Hinzu kommen noch einmal eine Leitung für 3,3 V und eine für Ground. Ground ist zwar nicht unbedingt notwendig, aber die eine Leitung mehr oder weniger macht auch nicht viel mehr Mühe. Ausserdem ist es sicherer, wenn MS auf 3,3 V oder Ground gelegt ist. Bei einem offen gelassenen Ende und gerade bei längeren Leitungen können Fremdsignale in die Leitung einstreuen. Keiner möchte, dass ein Drucker mitten im Druck mal kurzzeitig von 32 Mikroschritten auf 128 Mikroschritte umschaltet. Das wäre dann so, als würden Schrittverluste auftreten.

Flachbandkabel an der RADDS Unterseite
Flachbandkabel an der RADDS Unterseite

Die 3,3 V und den Ground habe ich mir auf der Unterseite von den Pins der Endschalter geholt.

Auf der anderen Seite des Flachbandkabels habe ich kleine günstige Umschalter (3 Kontakte) angelötet. Die Leitung von MS1, MS2 und MS3 kommen jeweils bei einem Schalter an den mittleren Kontakt. Die 3,3V kommen an den oberen Kotakt und Ground an den unteren Kontakt. Wenn man sich bei allen Schaltern an dieses Konzept hält, bedeutet die Schaterstellung oben = heigh und Schalterstellung unten = low.

 

Schalter zum Einstellen der Mikroschritte
Schalter zum Einstellen der Mikroschritte
Schalter zum Einstellen der Mikroschritte
Schalter zum Einstellen der Mikroschritte

Die drei Schater zum Einstellen des zweiten Extroders sind hier noch nicht zu sehen. Vorsorglich habe ich die Leitungen schon mal mit nach Außen geführt. Bisher gibt es keine Probleme mit den Schaltern und dem Drucker. Diese Modifikation ist natürlich nur etwas für Leute, die oft an ihrem Drucker experimentieren und die Anzahl der Mikroschritte oft ändern.

Die lieben Endstopps und deren Spannungsversorgung

Anfangs waren bei meinem Drucker Endstopps mit Hall-Sensor verbaut. Diese Hall-Sensoren messen das Magnetfeld. Wenn nun also ein kleiner Magnet an diesen Hal Sensor kommt, wird dies vom System erkannt. Die verbauten Hall-Sensoren arbeiteten mit 5 V und gaben ein 5 V Signal aus. Soweit gut. Die 5 V waren bei meinem alten System auch vorhanden. Nur seit der Umstellung vom Arduino Mega auf den Arduino DUE wurde es komplizierter. Der DUE arbeitet nur noch mit Signal-Eingangsspannungen bis 3,3 V. Am einfachsten und billigesten war es nun erst einmal, die Hall-Sensoren duch mechanische Endschalter auszutauschen. Diese benötigen keine Versorgungsspannung und schalten einfach nur.

Nur wie festmachen? Die Hall-Sensoren, da diese berührungslos arbeiten, waren ausreichend mit einfachem doppelseitigen Klebeband befestigt. Bei den mechanischen Endschalter reicht die Klebefläche auf dem abgerundeten Aluprofil nicht aus. Nun bitte nicht über meine Lösung lachen. Ich habe eine alte EC Karte genommen und diese mit Nutenstein und Schraube am Profil befestigt. Die nun ebene und große Auflagefläche war ausreichend zum Ankleben der mechanischen Endschalter. Die Höhe der Endschalter konnte man nun über das Lösen der Schrauben bewerkstelligen.

Unten ist der mechanische Endschalter zu sehen. Oben der Endschalter mit Hall-Sensor.
Unten ist der mechanische Endschalter zu sehen. Oben der Endschalter mit Hall-Sensor.

Wirklich bequem war das nicht. Immer Schrauben lösen und wieder anziehen. Beim Anziehen der Schrauben hat sich die Höhe dann auch oft verstellt. Ich habe mir dann einen Halter ausgedruckt, den ich an das Profil klammern kann. Dieser sitzt auch ohne Kleber und Schrauben stramm am Aluprofil, lässt sich aber immer noch per Hand auf und ab schieben.

Unten ist mein zweiter Versuch einer Befestigung für meine mechanischen Endschalter zu sehen.
Unten ist mein zweiter Versuch einer Befestigung für meine mechanischen Endschalter zu sehen.

Der Weisheit letzter Schluss war dies jedoch auch nicht. Der Schlitten, bei dem die Endschalter auslösen sollen, hat eine hohe Geschwindigkeit und entsprechend groß ist auch die Aufprallkraft auf den mechanischen Endschalter. Dieser bewegte sich dann immer ein kleines bisschen, was die Kalibrierung des 3D Drucker sehr schwer machte.

Ich hatte mich dann nach einer fertigen Lösung umgeschaut, die mit 3,3 V arbeitet. Der Angelo hat in seinem Shop eben solche. Das Ausgangssignal ist 3,3 V. Nur leider brauchen diese Hall-Sensoren eine Eingangsspannung von 5 V.

Schaltplan für die Endschalter am RADDS
Schaltplan für die Endschalter am RADDS

Wie man nun aber auf dem Schaltplan für das RADDS sehen kann, gibt der Anschluss für die Endschalter nur 3,3 V aus. Glücklicher Weise hat AUX1 ganz in der Nähe 5 V. Dort habe ich mir dann die 5 V Versorgungsspannung für die Hall-Endschalter abgeholt. Da ich bequem bin und die Anschlussstecker für die Endschalter nicht ändern wollte, habe ich eine kleine Steckerleiste angepasst.

5V Leiste
5V Leiste

Diese kleine 5 V Leiste ist von unten isoliert. Ich habe die Leiste dann an die Stelle geklemmt, wo normalerweise die Stifte für die 3,3 V Versorgunsspannung sind und die Stecker dort einfach aufgesteckt.

Aufgesteckte Endschalter
Aufgesteckte Endschalter

Nun konnte ich den 3D Drucker wieder gut kalibrieren und ich muss bei den ersten Druckschichten nicht mehr danaben sitzen und per Hand ausgleichen.

Mehr ist besser – die Elektronik ist nun auf 24 V umgestellt

Da ich nun die RAPPS128 Schrittmotortreiber bei mir eingebaut habe und diese Treiber keine (einfache) separate Spannungsverorgung für die Schrittmotoren haben, habe ich endlich mal meine gesamte Elektronik für den 3D Drucker von 12 V auf 24 V umgestellt. Einfach so mehr Spannung anlegen darf mannatürlich nicht. Als erstes wäre da der Arduino DUE, der über die Eingangsspannung des RADDS mit Strom versorgt wird. 24 V ist für den Arduino DUE zuviel. Laut Datenblatt soll man im Dauerbetrieb nicht über 12 V gehen. Der Entwickler des RADDS schlägt vor, die Diode D1, über die der DUE die Spannung bekommt, durch 3 Zenerdioden mit jeweils 4 V zu ersetzen. Ja, kann man machen, aber wirklich schön ist das nicht. Ich habe die Diode D1 nun einfach durch einen Schaltregler ersetzt. Dieser wandelt die 24 V des RADDS in 9 V für den DUE um. Das funktioniert wunderbar und es ist sogar weniger Lötarbeit als 3 Zenerdioden einzulöten.

RADDS 1.1 mit Schaltregler-Erweiterung
RADDS 1.1 mit Schaltregler-Erweiterung (auf dem Bild sind die RAPS128 noch nicht zu sehen)

Zum Einsatz kommt hier ein kleiner Schaltregler von Traco Power. Diese sind nicht ganz billig. Jedoch hatte ich den noch von meinem Microslicer übrig.

Als nächstes machen die Lüfter dann noch Probleme. Meine Lüfter sind für 12 V ausgelegt. Zum Glück sind die Lüfter recht robust und könnten sogar eine Zeit lang an 24 V betrieben werden. Nur leidet dann die Lebensdauer der Lüfter extrem (Verschleiß der Lager und Überhitzung der Elektronik). Mein Hotend-Lüfter wird mit einer PWM-Steuerung angesprochen. In der Firmware (Repetier Firmware) kann man einstellen, wie hoch die maximale Einschaltdauer des PWM-Signals sein soll. Ich habe den Wert von 255 (Maximum) auf 120 runtergesetzt. Eigentlich wäre ein Wert um die 70 richtiger gewesen, denn bei verdoppelter (Gleich-)Spannung (12 V auf 24 V), verdoppelt sich auch der Strom durch einen (ohmschen) Verbraucher und sich somit die Leitung quadratisch erhöht. P = U x I;  I = U / R => P = U² / R. Statt 255 durch 2 zu teilen, müsste man durch 4 (2²) teilen, um auf die gleiche mittlere Leistung des PWM-Signals zu kommen. Der Lüfter fängt bei max PWM 60 nur an zu pfeifen, bei 120 ist der Lüfter immer noch schön ruhig.

Als Letztes ist da noch mein Hotend selber, bzw dessen Heizelement. Dieses ist für 12 V ausgelegt. Da dieses Heizelement nur ein einfacher Widerstand ist, ist diesem erst einmal die Spannung egal, die an ihm anliegt. An 12 V hat das Heizelement eine Leistung von ca 60 W. Der Widerstand beträgt somit grob 0,5 Ohm. Wird die Spannung nun verdoppelt, hat das Heizelement eine Leistung von ca 244 Watt. Das ist mehr, als mein großes Heizbett an 24 V hat. Das kleine Heizelement am Hotend wird mit dieser Leitung sehr schnell, sehr heiß. Versehentlich hatte ich das PWM-Siganl nicht gedrosselt. Das Heizelement war innerhalb weniger Sekunden auf über 380°C aufgeheizt. Ist ja super, nur 1 oder 2 Sekunden warten, bis das Hotend die benötigte Drucktemperatur erreicht hat 🙂 Nur leider schafft es die Regelung nicht, diese große Leistung zu bändigen. Also muss auch hier der maximale PWM Wert gesenkt werden. Nach einigem Rumtesten habe ich den Wert dann von 255 auf 40 gesenkt. Bei diesem Wert ist die Temepraturregelung nun stabil genug, um wieder drucken zu können.

Info: Ab RADDS Version 1.2 ist schon ein Schaltregler verbaut und man kann den DUE ohne eigenen Schaltregler über das RADDS mit 24 V versorgen.

Kleiner Schrittmotortreibertest – laute und leise Motoren – Eine Oddysee

Mittlerweile habe ich nun schon ein paar Schrittmotortreiber, auch Stepsticks oder Stepper Driver genannte, ausprobiert. Zuerst hatte ich die Pololu A4988 in meinen 3D Drucker. Einer davon hatte sich schon nach relativ kurzer Zeit verabschiedet. Thermische Probleme schätze ich mal. Ich habe mich dann nach robusteren Alternativen umgeschaut. Dabei sind mit dann die DRV8825 ins Auge gefallen. Wichtig war mir, dass die Treiber kompatibel zu den vorherigen sind, damit ich nicht erst noch etwas umlöten muss. Damals war ich noch ganz neu im Thema 3D Druck und deren Technik und ich hätte mir nicht zugetraut, größere Umbauarbeiten vorzunehmen. Die DRV8825 können ein bisschen mehr Strom liefern. 1 Ampere zu 1,5 Ampere Dauerstrom. Satte 50% mehr. Beim Spitzenstrom liegen beide mit 2 A zu 2,2 A schon wieder dichter zusammen. Aber es kommt eben nicht nur auf die maximalen Spitzen an. Die DRV8825 haben auch noch dne Vorteil, dass sie bis zu 32 Microsteps (je Vollschritt) steuern können. Allerdings hatte ich das nie genutzt. Ich bin bei den 16 Microsteps, die auch beim A4988 möglich waren, geblieben.

Dann kamen im Herbst 2014 die „Silencioso“. Bis zu 128 Microsteps waren mit diesem Treiber möglich. Je mehr Microsteps, desto genauer kann der Drucker arbeiten. Theoretisch jedenfalls. Mal davon abgesehen, dass die Mechanik der Hobby- und Semiprofessionellen 3D Drucker keine Auflösungen im einstelligen Micromillimeterbereich zulassen, gibt es auch noch Fallstricke bei den Treibern, wie sie die Microsteps umsetzen. Um diese „Unzulänglichkeiten“ zu zeigen, hat der User Willy aus dem RepRap Forum einen Schrittmotor-Tester gebaut.

Hier ein schönes Video von Willy aus dem RepRap-Forum.


Kurz gesagt: Microstep ist nicht gleich Microstep.

Über das RepRap Forum bin ich auf Angelo mit seinen Silencioso gestoßen. Nicht gerade günstig diese Treiber, aber versprochen wird, bzw wurde viel. Der anfängliche Preis von ca. 40 Euro je Treiber war dann doch auch erst mal abschreckend. Die DRV8825 kosten immerhin unter 10 Euro je Stück. Als der Preis dann auf 25 Euro gesenkt wurde, habe ich mir die Silencioso auch mal bestellt. 3 Stück brauche ich für meinen Delta-Drucker. Das ist auch schon mal eine Menge Geld. Die Silencioso werden nicht wie meine vorherigen Treiber auf mein RAMPS gesteckt. Ein kleines bisschen Bastelarbeit war nötig. Aber das war nicht weiter schlimm. Doof war nur, dass mal gleich zwei von drei Treibern defekt waren. Zum Glück war es „nur“, dass die Treiber nicht stromlos geschaltet werden konnten. D.h. auch wenn die Motoren abgeschaltet sein sollten, konnte man die Achsen an den defekten Treibern nicht bewegen. Aber man konnte immerhin drucken. Kurz darauf habe ich noch mal zwei neue Silencioso bestellt. Und schon wieder ein Treiber von zwei defekt. Diesmal hat der eine defekte Treiber gar nicht funktioniert. 5 gekaufte Treiber und 2 funktionieren. Na super. Da war meine Freude groß.

In dieser Zeit hatte ich mit dann auch einen Arduino DUE und ein RADDS gekauft. Mein zuvor verwendeter Arduino Mega war zu langsam. Bei 64 Microsteps konnte ich nur noch sehr langsam drucken. Selbst bei 32 Microschritten durfte ich nicht zu schnell drucken. Viele fragen sich nun bestimmt, warum schon bei 32 Microschritten Geschwindigkeitsprobleme auftraten. Das liegt daran, dass ich 0,9° statt der üblichen 1,8° Schrittmotoren habe. Der Arduino muss also schon mal von Grund auf doppelt so viele Schritte bei 0,9° berechnen. Auch bei dem RADDS hat mich mein Unglück übrigens nicht verlassen, denn auch dieses war defekt. Nach langem Hin und Her, auch in einer Telefonkonferent mit Marcus Littwin, dem Entwickler hinter Repetier,  stellte sich heraus, dass das EEPROM auf dem RADDS defekt ist. Mit dem Ersatz-DUE von Angelo lief es dann erst mal wieder einigermaßen. Nach dieser Odyssee hat mich die Motivation verlassen und ich habe erst mal alles Rund ums Thema 3D Druck liegen gelassen. Zumal die Geldreserven auch zuneige gingen.

Warum habe ich die defekten Silencioso nicht reklamiert? Ja, manchmal frage ich mich das auch. Hätte ich diese Treiber in einem mir anonymen Shop gekauft, hätte ich sie auf jeden Fall reklamiert. In diesem Fall hatte ich sie bei Angelo gekauft. Er hat mir bei allgemeinen 3D Druck Sachen und auch versucht bei meinen speziellen Problemen mit den Treibern  und dem Arduino DUE zu helfen. So habe ich das Geld als Entwicklungshilfe für die RepRap Community abgeschrieben. Auch Repetier hat eine kleine Spende bekommen, da er mir ermöglicht hat, die Firmware so zu ändern, dass ich mit dem defekten Arduino DUE drucken konnte.

Was Moralisches:
Open Source bedeutet eben nicht, dass alles kostenlos ist. Es gibt viele Menschen, die ihren Lebensunterhalt mit Open Source Produkten verdienen (müssen). Auch Menschen, die nichts mit ihrer Arbeit für die Open Souce Community verdienen wollen, sollte man dann auf eine andere Weise würdigen. Diese Menschen, ob nun mit oder ohne kommerzielle Interessen, investieren viel Zeit in ihre Projekte, damit die breite Masse ein auf sie anpassbares Produkt bekommen. Also bitte nicht einfach immer nur die „kostenlosen“ Dinge abgreifen und dann auch noch beschweren. Statt mit Geld kann man natürlich auch mit Beteiligung helfen. Man kann testen, so wie ich es hier mache, oder man hilft bei der Entwicklung.
So, Moral Ende.

Also die Silencioso sind leise und die Druckergebnisse sind auch gut, wenn die Treiber funktionieren. Bei einem der funktionierenden Treiber stellte sich noch ein anderes Problem heraus. Wie ich schon schrieb, werden die Silecioso nicht auf das RAMPS oder RADDS gesteckt, sondern hinten mit einem Gehäuse an die Schrittmotoren geschraubt. Eigentlich keine schlechte Idee. Bei meinem nur ungünstig, da ich dann nur noch schwer an die Stelpoti für Strom und Decay komme. Auch die Schalter zum Einstellen der Mikoschritte sind nur schwer erreichbar. Aber weiter zum Problem. Die Platine mit dem Treiber wird in ein lackiertes Metallgehäuse gelegt. Bei einigen Treibern passt die Platine allerdings nur sehr stramm in das Gehäuse. An einer Stelle hat die Platine an der Seite einen Messpunkt (für Vref, Motorstrom). Dieser Messpunkt kann sich mit der Zeit duch Vibration der Schrittmotoren duch den Lack schleifen und eine Verbindung kommt zustande. Über das Gehäuse und den Schrauben wird dann weiter eine Verbindung zum Gehäuse der Schrittmotoren hergestellt. Diese wiederum sind mit dem Metallrahmen des Druckers verbunden und der Metallrahmen liegt auf Masse. Der Messpunkt hat eine positive Spannung, so dass nun eine Menge Strom abfließt und der Treiber dann heiß wird und sich abschaltet. Meine Notlösung war nun erst einmal, dass ich die Treiber nicht mehr an die Schrittmotoren geschraube habe. Das hat funktioniert. Sieht aber mehr als bescheiden aus. 😉

Während dieser ganzen Umbauarbeiten habe ich immer wieder mal ein Ton-Video aufgenommen, damit man mal den Lautstärkeunterschied zwischen den Treibern hören kann. Zuerst der Arduino Mega mit den DRV8825, dann Arduino Mega mit den Silencioso mit verschiedenen Mikroschritten und zu Guter letzt der Arduino DUE mit dem RADDS plus Silencioso.

Das Video habe ich bei Youtube hochgeladen und ihr könnt es euch auch hier anschauen.

 

Eigentlich wollte ich nur einmal kurz das Video hier vorstellen, aber dann ist der Text doch ein bisschen länger geworden als erwartet.

Ein Licht, das Dunkle zu vertreiben

Ich habe nun mal versucht, einen langen einwanigen Schlauch zu drucken. Die ersten Versuche ware noch nicht so gut. Aber mit der richtigen Kühlung ging es nachher sehr gut und auch schnell.

Die seitlichen Arme sind einwandig gedruckt worden

Statt der zuvor 3 LEDs sind nun 5 LEDs vorhanden, die nun (großteils) paarweise blinken.

Geschlossenes Gehäuse mit betriebsbereitem Innenleben.

Ob die seitlichen Arme den Hundealltag beim Gassigehen überleben, muss ich erst noch testen. Der flexible Schlauch, den ich vorher hatte, war nicht schlecht. Der Innendurchmesser war aber nur 4 mm und es passte somit keine LED hinein. Ich muss mir mal kleine 3 mm LEDs besorgen und testen, ob diese hell genug sind. Vielleicht müssen auch mal kleine SMD LEDs herhalten. Das Gehäuse soll nun mit einem Klettband am Geschirr befestigt werden. Das ist die flexibelste Lösung, die mir gerade einfällt.

Die aktuellen CAD Daten für das Gehäuse habe ich bei Shapedo hinterlegt.
http://community.shapedo.com/guin/flashlight_for_my_dogs

Hundeblinklicht
Nachts im Wald

[video_player type=“youtube“ width=“560″ height=“315″ align=“center“ margin_top=“0″ margin_bottom=“20″]aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj04ZmJ6MV9YSk9uOCZmZWF0dXJlPXlvdXR1LmJl[/video_player]