Microcontroller Firmwareinstallation

From RepRap
Revision as of 12:13, 5 June 2010 by Svadi (talk | contribs)
Jump to: navigation, search
Mendel-Bauanleitung



Motherboard-programming.jpg
RepRap hat ein Motherboard, welches die gesamte Maschine steuert. Jeder Extruder hat eine untergeordnete Steuerung. Die Motherboard- und Extrudersteuerungen müssen programmiert werden. Diese Seite beschreibt, wie man das tut.
Bitte beachten: Diese Seite beschreibt, wie man die RepRap Standardfirmware installiert. Es existieren Alternativen zur RepRap Standardfirmware. Diese sind hier aufgelistet.

Bei den Motherboard- und Extrudersteuerungen muss jeweils ein Bootloader installiert werden, bevor man Programme auf sie laden kann. Dies braucht nur ein einziges mal gemacht zu werden, und wenn man bereits fertige Platinen gekauft hat, ist der Bootloader bereits auf ihnen installiert. Wenn man die Platinen jedoch selbst gebaut hat, muss man dies selbst machen. Eine Anleitung zur Installation des Bootloaders ist hier.

Vorbereitung

Einstellen der Arduino-Software für Sanguino

Bevor man etwas auf das Sanguino-Motherboard laden kann, muss man die Arduino-Umgebung so einstellen, dass sie den abweichenden Atmel 644P Prozessor erkennt.

Zuerst die Arduino Software herunterladen und installieren, dann die Sanguino-Erweiterungen von Zach's Sanguino-Seite herunterladen.

Die neueren Versionen von Arduino (0018 oder neuer) haben eine bessere Unterstützung für Hardware wie den Sanguino, also braucht man nur einen Ordner hinzuzufügen, statt jede Menge einzustellen.

Den Sanguino-Ordner, der in der .zip-Datei ist, in den Ordner arduino-00XX/Hardware kopieren, so dass die Verzeichnisstruktur so aussieht:

    arduino-00XX/Hardware/Sanguino

Darauf achten, dass man Sanguino im Boards-Menü auswählt!


Die untere Anleitung ist veraltet und ist nur auf alte Versionen von Arduino und Sanguino anwendbar.

Die herungtergeladenen Core-Dateien müssen in die entsprechenden Ordner kopiert werden.

   * sanguino-software-1.x/cores/sanguino nach arduino/hardware/cores/sanguino kopieren,
   * sanguino-software-1.x/bootloaders/atmega644p nach arduino/hardware/bootloaders/atmega644p kopieren,
   * alle Ordner in sanguino-software-1.x/libraries/ nach arduino/hardware/libraries/ kopieren, dabei vorhandene Dateien überschreiben.

Als nächstes muss die Datei boards.txt bearbeitet werden, um den Sanguino zu den verfügbaren Boards hinzuzufügen. Sie ist unter arduino/hardware/boards.txt zu finden.

Die Arduino-Umgebung neu starten - jetzt kann die Firmware auf den Sanguino geladen werden.

Eine vollständige Anleitung ist auch hier verfügbar.

Das Motherboard programmieren

Kompilieren

Das C++-Programm, welches auf das Motherboard geladen werden soll, befindet sich im Ordner mendel/firmware/FiveD_GCode/FiveD_GCode_Interpreter des Downloads. Die neueste Version findet man hier im RepRap Subversion-Projektarchiv, man genieße sie jedoch mit Vorsicht - Es könnte eine instabile Entwicklungsversion sein.

Im Downloadverzeichnis ist eine Konfigurationsdatei namens configuration.h.dist. Diese Datei kopieren und zu configuration.h umbenennen. Der Grund für das Kopieren und Umbenennen ist, dass die persönliche Konfigurationsdatei nicht überschrieben werden soll, wenn man eine neue Version von RepRap herunterlädt.

Die Arduino Entwicklungsumgebung starten und die Projektdatei mendel/firmware/FiveD_GCode/FiveD_GCode_Interpreter/FiveD_GCode_Interpreter.pde laden. Die neue configuration.h-Datei sollte auf einem der Tabs erscheinen.

Diesen Tab anklicken und durch die Datei gehen. Sie ist mit Kommentaren versehen und gibt Anweisungen, was zu tun ist, um die Firmware für den RepRap einzustellen. Wenn die Bearbeitung abgeschlossen ist, File->Save auswählen.

In der Arduino Entwicklungsumgebung Tools->Board->Sanguino und dann Sketch->Verify/Compile auswählen.

Das Programm sollte ohne Fehler kompiliert werden.

Hochladen

Das USB<->Seriell-Kabel von dieser Seite an die sechspoligen Stiftleiste auf der linken Seite des Motherboards wie gezeigt anschließen. Auf die richtige Ausrichtung des Steckers achten. Die RTS-Verbindung (Grün) muss auf die obere Seite der Stiftleiste auf dem Motherbord mit der Beschriftung "GRN" verbunden werden. Die Masseverbindung (Schwarz) gehört auf die Unterseite, mit der Beschriftung "BLK".

Sicherstellen, dass auf der 2-Pin-Stiftleiste bei C8 auf dem Motherboard direkt rechts neben der sechspoligen Stiftleiste ein Jumper sitzt. Dieser Jumper erlaubt das Programmieren des Boards.

Das USB-Kabel in die USB-B-Buchse stecken, aber noch nicht das andere Ende an den Computer anschließen.

Die Liste der Verbindungen bei Tools->Serial Port überprüfen und merken. Dann das USB-Kabel anschließen und die Liste erneut überprüfen - ein neuer Eintrag sollte erscheinen (unter Linux etwas wie /dev/ttyUSB0, und unter Windows irgendetwas wie COM5). Diesen neuen Eintrag auswählen, wenn er noch nicht automatisch ausgewählt wurde - Das ist die USB-Schnittstelle die gerade eingesteckt wurde.

Die Power-LED auf dem Motherboard sollte nun leuchten. Das Motherboard wird über USB mit Strom versorgt.

Upload to I/O Board auswählen (das kleine Quadrat mit dem Pfeil nach rechts ->). Nach einigen Sekunden sollte die Debug-LED auf dem Motherboard flackern - Das zeigt, dass das Programm auf das Board geladen wird.

Nach einigen weiteren Sekunden kommt die Meldung der Arduino Entwicklungsumgebung Done uploading und die Debug-LED sollte regelmäßig etwa zwei mal pro Sekunde blinken. Das zeigt, dass das RepRap-Programm auf dem Motherboard läuft.

Wenn der Upload nicht funktioniert, die USB-Verbindung trennen, einige Sekunden warten und wieder einstecken. Dann den RESET-Schalter auf dem Motherboard gedrückt halten (mit der Hand, die nicht die Maus bedient). Mit der Maus auf die Upload to I/O Board-Schaltfläche gehen, die RESET-Taste loslassen und sofort, fast im gleichen Augenblick, mit der Maus klicken.

Oder man klickt auf Upload to I/O Board und hält dann den RESET-Schalter auf dem Motherboard gedrückt, bis man weißen Text auf der unteren Seite der Arduino-IDE sieht, dann sofort den RESET-Knopf loslassen, und auf die Nachricht Done uploading warten...

Um zu sehen, wie das programmierte Motherboard getestet werden kann, diesem Link folgen.

Eine Extrudersteuerung programmieren

Extruder-programming.jpg

Die Ablauf hierfür ist sehr ähnlich wie der zum Programmieren des Motherboards.

Kompilieren

Das C++-Programm, welches auf die Extruder-Steuerungen geladen werden soll, befindet sich im Ordner mendel/firmware/FiveD_GCode/Extruder des Downloads. Die neueste Version findet man hier im RepRap Subversion-Projektarchiv, man genieße sie jedoch mit Vorsicht - Es könnte eine instabile Entwicklungsversion sein.

Im Downloadverzeichnis ist eine Konfigurationsdatei namens configuration.h.dist. Diese Datei kopieren und zu configuration.h umbenennen. Der Grund für das Kopieren und Umbenennen ist, dass die persönliche Konfigurationsdatei nicht überschrieben werden soll, wenn man eine neue Version von RepRap herunterlädt.

Die Arduino Entwicklungsumgebung starten und die Projektdatei mendel/firmware/FiveD_GCode/Extruder/Extruder.pde laden. Die neue configuration.h-Datei sollte auf einem der Tabs erscheinen.

Diesen Tab anklicken und durch die Datei gehen. Sie ist ziemlich kurz. Die Kommentaren geben Anweisungen, was zu tun ist, um die Firmware für den RepRap-Extruder einzustellen. Wenn die Bearbeitung abgeschlossen ist, File->Save auswählen.

Wenn ein Thermistor als Temperatursensor für den Extruder verwendet wird, sollte auch die Datei temperature.h Beachtung finden. Die Tabelle die zum eingesetzten Thermistor passt auswählen. Wenn ein Thermistor eingesetzt wird, für den es keine Standardtabelle gibt, ist das kein Problem. Es gibt ein Phyton-Skript welches Tabellen für jeden Thermistor generiert. Das Skript findet man bei den RepRap-Dateien unter mendel/firmware/createTemperatureLookup.py. Siehe hier für Details.

In der Arduino Entwicklungsumgebung Tools->Board->Arduino Diecimila or Duemilanove w/ ATmega 168 und dann Sketch->Verify/Compile auswählen.

Das Programm sollte ohne Fehler kompiliert werden.

Hochladen

Das USB<->Seriell-Kabel von dieser Seite an die sechspoligen Stiftleiste auf der linken Seite der Extrudersteuerung wie gezeigt anschließen. Auf die richtige Ausrichtung des Steckers achten. Die RTS-Verbindung (Grün) muss auf die obere Seite der Stiftleiste auf dem Motherbord mit der Beschriftung "GRN" verbunden werden. Die Masseverbindung (Schwarz) gehört auf die Unterseite, mit der Beschriftung "BLK".

Das USB-Kabel in die USB-B-Buchse stecken, aber noch nicht das andere Ende an den Computer anschließen.

Die Liste der Verbindungen bei Tools->Serial Port überprüfen und merken. Dann das USB-Kabel anschließen und die Liste erneut überprüfen - ein neuer Eintrag sollte erscheinen (unter Linux etwas wie /dev/ttyUSB0, und unter Windows irgenetwas wie COM5). Diesen neuen Eintrag auswählen, wenn er noch nicht automatisch ausgewählt wurde - Das ist die USB-Schnittstelle die gerade eingesteckt wurde.

Die Power-LED auf der Extrudersteuerungsplatine sollte nun leuchten. Das Extruder-Board wird zum Programmieren über USB mit Strom versorgt, im Betrieb versorgt es sich selbst über die 12V-Stromversorgung. Weitere LEDs können ebenfalls leuchten - das ist OK.

Upload to I/O Board auswählen (das kleine Quadrat mit dem Pfeil nach rechts ->). Nach einigen Sekunden sollte die Debug-LED auf dem Extruder-Board flackern - Das zeigt, dass das Programm auf das Board geladen wird.

Nach einigen weiteren Sekunden kommt die Meldung der Arduino Entwicklungsumgebung Done uploading und die Debug-LED sollte aufhören zu leuchten.

Wenn der Upload nicht funktioniert, die USB-Verbindung trennen, einige Sekunden warten und wieder einstecken. Dann den RESET-Schalter auf der Extrudersteuerung gedrückt halten (mit der Hand, die nicht die Maus bedient). Mit der Maus auf die Upload to I/O Board-Schaltfläche gehen, die RESET-Taste loslassen und sofort, fast im gleichen Augenblick, mit der Maus klicken.

Um zu sehen, wie die programmierte Extrudersteuerung getestet werden kann, diesem Link folgen.

Siehe auch

Siehe auch die Seite über die Firmware der dritten Generation.