Schlagwort-Archiv: Ramps

Wlan für den 3D-Drucker: ESP3D mit ESP01 am RAMPS 1.4 mit Repetier Firmware

Wie man ESP3D als Wlan-Erweiterung für den 3d-Drucker mit repetier-firmware aufsetzt.
Heute im Schnelldurchlauf stichpunktartig.
Los gehts:

esp3d
Kaufen:

  • esp-01 schwarze Platine (1Mbyte Fash, die blauen haben nur 0,5MB)
  • esp-01 Adapter -> Pegelwandler 3,3V/5V
  • esp-01 Programmer (es geht auch ein normaler Usb-seriell-wandler mit 3,3V Logikpegel und eine 3,3V spannungsversorgung, ESP ist nicht 5V-tolerant!)
  • Stiftleisten und Dupont-Kabelbrücken

Danach:Brücke am USB-Programmieradapter nachrüsten GPIO0 nach GND für Programmiermodus

Installieren:Arduino 1.8.3 für Linux, Boardverwalter-URL, ESP8266 4.1
Ordner $home/Arduino/tools anlegen
ESP8266FS herunterladen und nach $home/Arduino/tools/ESP8266FS/tool/esp8266fs.jar entpacken
esp3d 1.00 (enthält web-gui 1.0) oder aktuelles release
https://github.com/luc-github/ESP3D/releases
release nach $home/Arduino entpacken
/ESP3D-1.0/esp3d/esp3d.ino öffnen

Arduino-IDE starten und folgendes einstellen:

Board „generic esp8266“ auswählen
flashmode: QIO
flashsize: 1M(144k)
crystal: 26Mhz
flash: 40Mhz
CPU: 160Mhz
Builtin LED: 2
wenn vorher etwas anderes auf dem ESP war im zweifelsfall „Erase Flash: all flash contents“ wählen (Bei späteren updates nur die firmware überschreiben)
ESP01 auf den programmer stecken
Programmer an USB anstecken
ggf. mit sudo dmesg in der Konsole nachsehen welches USB-Device dazukam (/dev/ttyUSB0)
Port in arduino IDE einstellen

Sketch uploaden
Programmer abziehen und wieder anstecken

->Werkzeuge: ESP8266 Sketch Data Upload ausführen
(wenn man das vergisst hat der Webserver keine Webseite/index.html)

Programmer vom Usb abziehen und ESP01 auf ESP01 Adapter umstecken
5V anlegen und 15 Sekunden warten.
Wenn kein Wlan-device namens ESP3D auftaucht nochmal neu flashen

Wenn Wlan-device auftaucht mit diesem Verbinden und Erstkonfiguration durchführen. (Die hier eingegebenen Parameter kann man später noch ändern). Es ist sinnvoll den ESP ins eigene Wlan zu integrieren.
Der Wlan-schlüssel des inititalen Wlans ist 12345678
Es erfolgt dann eine Umleitung über captive portalseite zum ESP3D Webserver. (wenns funktioniert). Alternativ manuell http://192.168.0.1 öffnen (manchmal ist es ein anderer Adressbereich, dann z.b. mit Android und fffing app das Netzwerk scannen um die richtige IP herauszufinden, oder die eigene Adresszuweisung anzeigen und die Gatewayadresse verwenden)

Über die Einrichtungsseite kann das Wlan im ESP auf Clientmodus umgestellt werden, und der WPA-Schlüssel eingegeben werden. Nach einem Neustart wird der ESP dann Teilnehmer im Lokalen Wlan-Netzwerk.

Jetzt Firmware vom Drucker anpassen:
-> repetier fw
-> configuration.h
„define BLUETOOTH_SERIAL“ von -1 (aus) auf 2 ändern.
Baudrate setzen. ich empfehle 115200. 230400 hatte bei meinen Geräten nicht funktioniert, 250000 hat funktioniert. Schneller ist im Prinzip besser fürs hochladen von Gcode auf die SD-Karte über Wlan. In der Praxis macht es kleinen großen Unterschied.
Diese Baudrate ist nur für die Schnittstelle zum ESP und ändert nicht die Baudrate auf dem USB-Seriell-anschluss, da es sich dort um ein anderes UART im Atmega handelt.

Drucker-arduino neu flashen

Aux4 pin 18 und 17 und 1 und 2:
Pin 1: +5V
Pin 2: GND
Pin 17: TX-Leitung vom esp01-adapter
Pin 18: RX-Leitung vom esp01-adapter

Wenn hier der „smart adapter“ vom Display bereits aufsteckt, dann auf den den Adapter oben auf die 4 Lötstellen noch Pinleisten auflöten. (Bei angestecktem Display bitte erst mal bis zu Ende lesen)

esp3d
esp3d

Repetier host konfigurieren
->konfiguration->druckereinstellung

  • Vorhandenes Setup auswählen. neuen Namen eintragen, z.b. esp3d-drucker (speichert eine Kopie des aktuellen Druckerprofils unter neuem Namen)
  • Verbindungsart TCPIP wählen, ip-adresse des esp01 eintragen. (am besten feste ip im esp01 verwenden)
  • port: 8888
  • transferprotokoll: ASCII (!)
    repetier protokoll ist nicht plain ascii und wirft fehler bei der verbindung, weil esp3d zwar transparentes seriell macht, aber nur für plaintext. binärdaten werden nicht transparent übertragen.
  • empfänger cachegröße: 63 (!)

speichern->ok.

Mit Drucker über Wlan verbinden und freuen.
Es darf nur entweder Wlan ODER Usb verwendet werden, sonst gibts Verluste auf der Verbindung.

Nachtrag: der ESP8266 braucht Strom zum arbeiten. Das belastet die 5V Rail in der Druckerelektronik zusätzlich. Der originale AMS1117 ist eh schon überlastet wenn am RAMPS noch ein Smartcontroller angeschlossen ist. Sollte das Arduino mega2560 noch keine externe 5V versorgung bekommen haben, dann ist jetzt der richtige Zeitpunkt dazu.

was noch so schief ging:

    • die Arduino-IDE findet die eigenen Libs für den esp8266 unter Windows (xp) nicht, weil in der deutschen Lokalisierung die Pfadnamen zu lang sind „c:\Dokumente und Einstellungen\..“
    • der Esp01-adapter den ich zuerst verwendete war kaputt: auf der Leiterplatte fehlte eine Durchkontaktierung.
    • Die Doku des esp3d ist falsch, was den Anschluss am Ramps anbelangt. Auf den markierten Pins sitzt bereits der USB-anschluss und belegt die Schnittstelle. (Ja man kann da stumpf mit drauf gehen, und wenn der Seriell-pegelwandler niederohmiger ist als die Schutzwiderstände am Usb-seriell-wandler auf dem Arduino-mega-board, dann setzt er sich durch mit seinen Pegeln… nur weil das vielleicht funktioniert, ist es aber trotzdem scheiße)
    • Der Upload der GUI über die Web-upload-funktion auf dem leeren Webserver in form der index.html.gz datei schlug fehl (aktueller firefox) und der Webserver machte irgendwelchen Murks oder war dann gar nicht mehr erreichbar. Die hochgeladene 70 kbyte große Datei wurde zunächst direkt nach dem Upload als 2kb angezeigt und dann nach wenigen Sekunden gar nicht mehr. Ich habe dann in der Arduino-ide die Erweiterung „ESP8266 Sketch Data Upload“ installiert und es damit gleich beim programmieren mit aufgespielt. Das hat gut funktioniert.
    • Das auf einem extra dafür gekauften Programmer die brücke nicht vorhanden ist um den Esp in den Programmiermodus zu versetzen muss einem auch erst einmal erklärt werden.
    • ältere Versionen von ESP3D lassen sich in Arduino 1.8.3 mit esp2.2 oder 2.4 nicht bauen
    • richtige Datenblätter für den esp8266, wo z.b. auch mal steht wieviel Strom ein GPIO „sourcen oder sinken“ kann, sind nicht so leicht zu finden (ich hatte aufgegeben)
    • RAMPS verwendet die uart2-pins D16 und D17 nicht, leider stellt sich aber heraus das das fullgraphic-smartcontroller Display da zwei Leitungen drauf hat.
    • nach einem Update von repetier 0.92.8 auf 1.0(.1, .2, .3) ist das Uart 2 in der firmware kaputt. Ich habe im repetier-supportforum einen Bugreport dazu angelegt, aber nach Monaten noch keine Reaktion dazu bekommen.
      https://forum.repetier.com/discussion/5317/second-uart-for-bluetooth-isnt-working-after-upgrade-from-0-9-2-to-1-0-1

Nachtrag:
Fullgraphic Smartcontroller mit ESP3D am UART2 unter repetier fw 0.92 gemeinsam betreiben
Leiterbahnen D17 und D16 unterbrechen

esp3d

esp3d

Brücken zu D39 und D43 löten
esp3d

esp3d

Leider ist das Foto unscharf, der Zettel von vor Monaten war jetzt aber nicht mehr lokalisierbar.

repetier firmware 0.92.
Datei ui.h
abschnitt ramps
pins neu zuordnen. (pinnummern und Zeilennummern siehe auch im verlinkten bugreport)

 

Viel Erfolg!

Dual Extruder und gesteuerte Lüfter am Ramps 1.4 mit Repetier Firmware (2)

Nun kommt der zweite Teil: Woher weiß denn die Druckerelektronik von der Erweiterung?

Nun, das muss in die Firmware hineinkompiliert werden.
Das klingt schlimmer als es ist.
Da ich die Repetier-Firmware verwende, muss man also die Repetier-Firmware herunterladen.
Dabei durchläuft man auf der Internetseite das onlinetool zum erzeugen der Konfiguration, die man sich hinterher fertig herunterladen kann.

Es muss nur jeweils für die nun neu hinzugekommenen Funktionen (die in der Firmware bereits enhalten, aber deaktiviert waren) der benutzte Anschluß festgelegt werden.

Die Anschlüsse sind alle Nummeriert, und der Schaltplan vom Ramps 1.4 zeigt die Zuordnung der Anschlüsse zu den Arduino- bzw. Atmega-Prozessorpins. Es gibt dazu eine einheitliche Nummerierung auf arduino.cc
https://www.arduino.cc/en/Hacking/PinMapping2560
Die Nummern in der Spalte „Digital Pins“ entsprechen den Dxx Nummern im Repetier-Firmware Onlinekonfigurator.
Den Schaltplan findet man im Reprap Wiki:
http://reprap.org/wiki/RAMPS_1.4

Wie man an den Skizzen im ersten Beitrag sehen konnte, habe ich mir den Anschluß AUX2 ausgesucht. Hier kommt noch eine Besonderheit: Der Anschluß hat zusätzlich noch „Axx“ Anschlüsse. Die gehen auf Pins am Atmega-Prozessor die auch als Analog-Eingang verwendet werden können. Ich habe mich an die D-Anschlüsse gehalten.
Will man die A-Anschlüsse auch verwenden, braucht man deren D-Nummern. Das die doppelt benamt sind war mir erst nicht klar, ich habe dann später aber festgestellt das der Anschlußplan von Ramps die erforderlichen zusätzlichen Nummern enthält.

Für die hier benutzen Erweiterungen sind keine weiteren Änderungen an der Firmware notwendig. Wer sich unsicher ist kann später in der pins.h bei der Hardware Nummer 33 nachsehen.

Wenn man nun die Firmware und die config.h heruntergeladen hat, braucht man die Arduino Classic IDE. Sie trägt die Versionsnummer 1.0.6
Das lädt man sich ebenfalls herunter und installiert es.
Dann wird die Firmware in einen Ordner entpackt, die config.h hineinkopiert und per doppelklick auf die repetier.ino Datei die IDE aufgerufen.

Nun Rechts oben im Menü den richtigen Arduino aussuchen, also den Arduino Mega 2560, und die richtige virtuelle serielle Schnittstelle.
Dann kann mit dem Button Upload (ganz links zu finden) die neue firmware automatisch kopiliert und in den Drucker geladen werden.
Danach stehen die gewünschten Funktionen zur Verfügung, wenn man alles richtig gemacht hat.
pins.h in arduino -> hardware „== 33“ – keine änderung nötig
features in firmware aktivieren.

Dual Extruder und gesteuerte Lüfter am Ramps 1.4 mit Repetier Firmware (1)

Vorbereiten der Elektronik meines Prusa I3 für den Betrieb eines Dual Extruders.

Ich verwende in meinem selbstgebauten Drucker als Steuerung ein Arduino Mega 2560 Mikrocontrollerboard und das RAMPS shield.
Leider ist auf der Ramps-Aufsteckplatine nur eine recht begrenzte Anzahl an Schalttransistoren drauf, die ausreichend sind für einen 3d-drucker mit einer Düse.
3 Ausgänge sind vorhanden für Heizbett, Düsenheizung und den Lüfter für die Kühlung des Werkstücks.
Den Lüfter zum Kühlen der Elektronik (besonders die Motortreiber haben es nötig) und für den Extruderkopf (wenn erforderlich) muss man dann irgendwo direkt ans netzteil anschließen. Funktioniert so, aber was nun, wenn noch ein weiterer Druckkopf dazukommen soll?

Dann reicht das vorhandene nicht mehr aus. Wir brauchen mehr Schalttransistoren.
An und für sich ist das ja kein Problem, eine kleine Umschau bei den verdächtigen Händlern zeigt aber eine Marktlücke auf.

Also wird das selbst gebaut.
Ein paar kurze Vorversuche zeigen: Ein BC337-25 Kleinsignaltransistor ist ausreichend um bei 5mA Basisstrom 300mA für einen 12V-Lüfter bereitzustellen.
Ein IRLZ44N wird die größeren Ströme übernehmen, es ist ein Logiclevel-N-Kanal-MosFET. Hier kommen zwei zum Einsatz, einer für die Düsenheizung (4 Ampere@12V) und einer für die Druckerbeleuchtung, die ebenfalls über die Firmware geschaltet werden kann.
Zum Anschluß habe ich in meinem Fundus noch Schraubklemmen für Leiterplattenmontage, für die kleinen Ströme für Lüfter reichen auch Stiftleisten und Dupont-Stecker aus.

Das muss dann etwa nach diesem Schema zusammengelötet werden:

Günstig habe ich diese kleinen Lochrasterplatinen gekauft die schon auf eine praktische Größe zugeschnitten sind, und an den Ecken Befestigungsbohrungen haben. Also mal den ganzen Käse da drauf gelötet.

Die Rückseite sieht aus wie es sich für einen prototyp gehört :-), die Vorderseite ist vorzeigbar:

Damit es auch schön blinkt, sind an allen Anschlüssen LEDs zur Statusanzeige eingebaut.
Wie man im Foto sieht, hat das Platinchen bereits seinen Platz im Drucker gefunden gleich neben dem RAMPS.

Da ich nun mit der Schaltung alle möglichen Lüfter schalten kann, tue ich das auch. Das reduziert den Lärm deutlich, wenn alle Lüfter die gerade nicht gebraucht werden automatisch abgeschaltet werden.
Deshalb gibts auch ein kleines Update an meinem Extruderstecker: Auf ABL (automatische betthöheneinstellung) kann ich gerne verzichten, zumal es mit wechselbaren Druckunterlagen aus verschiedenem Material ohnehin nicht funktioniert, daher werden die freien Pins für den zweiten Extruderlüfter reserviert und schon mal so verkabelt.

Hinweis: Wenn man in der Firmware zwei Extruder einrichtet, aber nur einen anschließt, schaltet die Steuerung aus Sicherheitsgründen alles ab und geht in den Trockenlauf, da ein defekter Temperaturfühler erkannt wird.
Es ist also notwendig offene Temperaturfühleranschlüsse mindestens mit einem Widerstand mit plausiblen Wert abzuschließen. 100k sind anstelle eines 100k thermistors gut. Die angezeigte Temperatur entsprechend ignorieren.
Der zweite Extruder darf auch nicht angeheizt werden (start.gcode) wenn keiner angeschlossen ist, sonst greift ebenfalls die Schutzschaltung weil nach aktivieren der Heizung die Temperatur nicht steigt..

Arduino Mega und die Hitze

Zur Zeit ist es sehr warm hier.
Und diese hohen Umgebungstemperaturen verschlechtern natürlich auch die Wärmeabfuhr aus unseren elektrischen und elektronischen Geräten. Davon bleibt auch der 3D Drucker nicht verschont.

Als Elektronik für meinen selbstgebauten Drucker habe ich auf RAMPS 1.4 gesetzt. Dabei kommt eine fertige Mikrocontrollerplatine mit einem ATMEGA 2560 zum Einsatz, die im Arduino-Projekt als offene Hardware entwickelt wurde. Es ist also alles nötige „drumherum“ fertig auf einer Leiterplatte, so daß man sich ganz auf die Projektbezogene Elektronik konzentrieren kann, wenn man ein Embedded-Projekt umsetzen möchte.
Über standartisierte Steckkontakte kann dann die weitere Elektronik angeschlossen werden.
An der Stelle kommt dann RAMPS ins Spiel, eine Erweiterungsplatine die alles enthält um die elektrische Peripherie eines 3D Druckers anzuschließen. Auf der RAMPS Platine befinden sich die Leistungsschalter für die Heizungen vom Druckbett und Heizdüse, und auch weitere Sockel für Motortreiber. Außerdem Anschlüsse für die Temperaturfühler und Endschalter.
Auch kann man ein Display anschließen. Und hier wird es interessant.

Die Arduino-Platine besitzt einen Linearregler um die 5V Spannung für die Elektronik zu erzeugen, und der setzt die Spannungsdifferenz zu den üblichen 12V in Wärme um. (Bei mir von einem Schaltregler aus der höhren Spannung von Heizbett und Motoren von ca. 30V erzeugt)
Da die Arduino-Leiterplatte mit SMD-Bauteilen bestückt ist, hat der Regler also nur die Kupferbahnen der Leiterplatte selbst zur verfügung, um seine Wärme loszuwerden. Das funktionierte ganz gut, so lange die Temperaturen angenehm waren.
Jetzt sitzt der da natürlich ziemlich eingeklemmt. Die RAMPS Erweiterung selbst wird ziemlich warm durch die Leistungstransistoren, und die Motortreiber heizen von oben und natürlich auch per Wärmeleitung über die Pfostenstecker zusätzlich ein. Dazu habe ich ein LC-Display angeschlossen welches für die Beleuchtung noch zusätzlich den Strombedarf auf der 5V Schiene erhöht.
Das war dann alles zu viel, der Spannungsregler erreichte seine Maximaltemperatur und der integrierte Übertemperaturschutz reduzierte den bereitgestellten Strom. Daher sank die Spannung. Sichtbar wurde das an der LCD Beleuchtung. Und natürlich stimmen dann auch die eingelesenen Werte der Temperaturfuhler nicht mehr.

Daher musste nun die Situation verbessert werden.
Bisher war nur ein kleiner 24V Lüfter mit 12V versorgt (wegen dem Lärm, da der immer mitläuft) auf der Rückseite mit einer Papierklammer „Foldback Clip“ so hingetüddelt. Das ist natürlich nicht so optimal, weil in dem Leiterplattenstapel die unterste Platine mit dem Spannungsregler so fast gar nichts davon hat.

Das sah so aus:
kleiner 24V Lüfter kühlt RAMPS Elektronik

Nun muss das also besser werden:
Dazu habe ich zwei Dinge verändert. Die auftretende Abwärme beim linearen Spannungsregler ist direkt abhängig von der zu überwindenden Spannungsdifferenz. Also ist es günstig, diese zu reduzieren. Das könnte man mit einem Widerstand tuen, der aber jedes mal geändert werden muss, wenn man etwas umbaut und der Strombedarf auf der 5V Schiene sich ändert. Zu wenig Spannung vor dem Regler ist auch schlecht, weil diese Regler je nach Typ etwa 2V höhere Spannung am Eingang brauchen, um die Ausgangsspannung ordentlich einzuhalten.
Besser gehts mit Halbleiterdioden. In Durchlassrichtung hat man über jeder Silizium-Diode etwa 0,7V Spannungsabfall. Ein paar davon in Reihe reduziert die Spannung ein Stück, und nimmt damit ein Teil der entstehenden Wärme vom Spannungsregler und verschiebt sie dafür in die Dioden. Die Dioden halten höhere Temperaturen aus und brauchen keine speziellen Maßnahmem zur Kühlung.
Also 4 Dioden zusammengelötet und in die Zuleitung zum Arduino Mega eingeschliffen. So werden aus 12V dann 9V, und der Linearregler hat statt 7V nur noch 4V zu verbraten. So wird seine Verlustleistung fast halbiert.

Da ich damit keinen Schönheitspreis gewinnen muss, hab ich das einfach mal so hingetüddelt.
Dioden am Prusa I3

Und nun zur zweiten Maßnahme:
Die Verbesserung der Luftkühlung.
Um den Luftstrom besser an der Elektronik zu halten, habe ich eine Plexiglasscheibe zugeschnitten und über die Elektronik geschraubt. Zusätzlich gibts einen leisen 12V Lüfter mit 60×60 mm, der einen deutlich höheren Luftstrom erzeugt als der kleine Lüfter vorher. Der wird nun auch noch mit einem kleinen gedruckten Haltewinkel so montiert, das er auch die untere Leiterplatte im Stapel mit anbläst.

Mini-Luefterhalter
Der Drucker fertigt also seine eigenen Teile zur Verbesserung der Konstruktion. 🙂

Fertig zusammengeschraubt sieht das dann so aus:

Mini-Luefterhalter

Die Instabilitäten der 5V Spannungsversorgung sind damit hachhaltig beseitigt.

Selbstbau 3D-Drucker Teil 9- Elektronik

Das wird ein umfassenderer Artikel. Der Artikel wird noch weiter vervollständigt.

Ich habe folgende Themen auf dem Programm:
Arduino Mega 2560-16
Ramps 1.4
Geetech Fullgraphic Smart Controller
Optische Endschalter
Pololu A4988 Schrittmotortreiber
Kabelwege

Arduino Mega 2560-16
Da gibts nicht viel dazu zu sagen, der wird einfach gekauft und dann hat man ihn.
Ach doch noch was: Der eingebaute Spannungsregler zum Erzeugen der 5V Betriebsspannung ist ein Linearregler, und der hat bei 12V schon arg zu kämpfen seine Verlustleistung loszuwerden. Der kann nicht aus dem 24V Netzteil versorgt werden. Bei meinem sainsmart Arduino Clone ist 12V für den Energiebedarf (da hängt ja auch noch der Smartcontroller und dessen Displaybeleuchtung mit auf der 5V Schiene) schon zu viel, da steigt er durch Strombegrenzung und Spannungsfall auf der 5V schiene langsam aus. Soll der Drucker ohne USB-Anschluß zum Hostcomputer von der SD-Karte drucken können, ist hier also ein externer Spannungsregler für 5V, oder die versorgung des Arduino-Board über die Hohlsteckerbuchse mit 7-10V notwendig, damit der Spannungsregler auf dem Arduino nicht überhitzt.
Wichtig: Bei Betrieb der Motortreiber/RAMPS mit 24V muss unbedingt die Diode unter dem Motortreiber ausgelötet werden, die die Spannung vom Ramps auf den Spannungsreglereingang des Arduino einspeist. Näheres findet sich im Reprap-Wiki zum Ramps 1.4.

Ramps 1.4
Ramps 1.4 ist ein Motortreiber-Aufsatz „Shield“ für den Arduino Mega. (Reprap Arduino Mega Pololu Shield).
Es können 5 Motortreiber aufgesteckt werden und zudem befinden sich hier noch die elektrischen Anschlüsse für Temperaturfühler, Heizbett, Extruderheizung, Kühl-Lüfter für das Druckstück und der Anschluß für das Heizbett und die Endschalter.
Die Pololu Motortreiber (bei Verwendung des A4988!) müssen mit dem Poti von den dicken Stromanschlüssen wegzeigen.

Opo-endstop an Ramps

Auf der RAMPS-Platine muss bei Verwendung von 24V eine Diode ausgelötet werden. Der Heizbettanschluß kann nur 11A Schalten, die große Polyfuse ist nur für 16V geeignet und muss gegen ein 35V-Typ getauscht werden, oder durch etwas anderes (z.B. KFZ-Flachsicherung) ersetzt werden. Die FET sind nicht die allertollsten und können durch welche mit niedrigerem RDSon-Widerstand getauscht werden um höhere Ströme schalten zu können. Im Fall des Heizbett müssen dazu aber zusätzlich die Leiterbahnen verstärkt werden.

Damit alles korrekt funktioniert, müssen alle in der Firmware konfigurierten Temperaturfühler auch angeschlossen sein!

Anschluß der Motoren:
Der Anschluß der Schrittmotoren ist unklar, auf der Platine steht jedoch 1A, 1B, 2A, 2B an den Stiftleisten. Bei den Motoren entsprechend das Datenblatt hernehmen und die Anschlüsse 1A/1B jeweils einer Spule, und 2A/2B der anderen zuweisen, oder die zugehörigkeit der Leitungen zu den beiden Wicklungen einfach mit einem Widerstandsmeßgerät ermitteln. Durch drehen des Steckers kann nachher die Drehrichtung des Motores noch korrigiert werden.

Anschluß der Endschalter: Bei optischen Endschaltern sind die Schaltzustände leider nicht so wohldefiniert wie bei mechanischen Endschaltern (kurzschluß nach masse oder pullup direkt am Arduino-Port).
Hier muss die fehlende Entstörung der Eingänge mit einem Tiefpass noch ergänzt werden. Ich habe mir dazu eine kleine Lochrasterplatine zum zwischenstecken zusammengelötet.
Erfolgreich war ein Serienwiderstand von 1,8 Kiloohm und ein Keramikvielschichtkondensator zu 100nF nach Masse. Ohne den Tiefpassfilter wurden die Endschalter bei laufenden Motoren häufig willkürlich als ausgelöst erkannt, obwohl gar keine Auslösung bestand und die Lichtschranke nicht unterbrochen wurde. Offenbar ist in der Repetier-Firmware auch keine Software-Entprellung „eingebaut“ und jeder kleine eingestreute Transient lässt den Eingang kippen.

Opo-endstop an Ramps

Beim Verlängern der Leitungen habe ich ja Flachbandkabel eingesetzt. Um Störungen zwischen den Motorleitungen zu den Endschalterleitungen zu vermeiden habe ich eine Ader dazwischen freigelassen, was jedoch ohne den Tiefpass am Ramps nicht ausreicht, um einen ordentlichen Betrieb zu erreichen :/

Pololu A4988 Schrittmotortreiber
Stepstick-Platinen
Die Motortreiber kamen bis auf die Stiftleisten vollständig aufgebaut bei mir an, ich musste also nur die Leisten noch anlöten.
Am Poti kann man den Motorstrom einstellen. Mit dem Uhrzeigersinn wird der Strom größer.
Die Referenzspannung kann man mit einem Spannungsmesser direkt am beweglichen Teil des Potis erfassen und gegen Masse messen.
Die Referenzspannung muss entsprechend dem zulässigen Motorstrom der verwendeten Schrittmotoren ausgerechnet und eingestellt werden (oder niedriger). Man kann auch die Motortemperatur im Auge behalten und ggf. noch etwas reduzieren.

Geetech Fullgraphic Smart Controller
Der Smart Controller wird nur angesteckt und bekommt seine Daten per I2C vom Arduino. In der Firmware muss entspechend der Controller „Reprapdiscount Full Graphic“ eingestellt sein. Nicht verwechseln mit dem anderen Reprapdiscount smart controller mit 4 zeiligem LCD.
Es gibt berichte, das das Vollgraphikdisplay die Ausführung der Firmware bremsen würde. Die Aussagen sind zum Teil wiedersprüchlich. Ich werde das beobachten.

Kabelwege
Energiekette zur X-Achse:
Energiekette zur X-Achse
Neben der Energiekette zum Heizbett, kommt auch zur X-Achse eine Energiekette zum Einsatz, um Knickstellen an den elektrischen Anschlüssen zu vermeiden. So werden Kabelbrüche vermieden.

Prusa I3 Boxed Verkabelung

Zum Druckkopf habe ich den Kabelstrang an den Teflonschlauch fürs Filament angebunden, da soll dann später noch solches Wickelband herum, wenn der Kabelbaum komplett ist. Ich habe bereits zusätzliche Leitungen für eine LED-Beleuchtung am Druckkopf und die Lüfter für die Extruderkühlund und die Werkstückkühlung vorgesehen.

Der restliche Kabelsalat verschwindet einfach mit anschraubbaren Kabelbinder-Haltesockeln an der Rückseite der Konstruktion.
Das Netzkabel am Netzteil ist noch ein Provisorium, da muss noch ein Isoliergehäuse über die Schraubkontakte und einen Netzschalter hätt ich auch gern. Ob ich noch einen Kaltgeräteanschluß dazwischen setze oder das Netzkabel lieber mit einer Zugentlastungsschelle sichere, weiß ich auch noch nicht. Ein festes Kabel kann nicht aus der Buchse rutschen.