Folgen Sie uns

Multi Installation

In Diesem Beitrag möchte ich darstellen, wie man mit einem Raspberry mehrere 3D-Drucker betreiben kann.

Zunächst benötigen wir einen Raspberry mit einer Octopi Installation.

Hierfür kann gerne der Pi Imager verwendet werden, wo man SSH Zugriff und Wifi Konfiguration direkt vor dem flashen einstellen kann.

Als Hardware empfehle ich einen Raspberry Pi (ab 3) mit einer 16GB microSD Karte zu verwenden.

HINWEIS: Dies funktioniert ab einer Octoprint Version V0.17.xxx

Es kann ein Durcheinander sein, das entsprechende Gerät für einen bestimmten Drucker zu finden. Die Gerätebenennung /dev/ttyUSB0 erfolgt im Allgemeinen in sequenzieller Reihenfolge. In diesem Fall erhält der erste angeschlossene Drucker /dev/ttyUSB0, der zweite /dev/ttyUSB1 und so weiter. Es ist nicht garantiert, dass diese Benennung nach einem Neustart gleich ist.

Daher werden wir einige udev Regeln verwenden, um einige Symlinks zu Geräten zu erstellen, die vor und nach einem Neustart den gleichen Namen haben und demselben Drucker entsprechen. Ich benutze ttyDRUCKER1 für meinen 1. Drucker und ttyDRUCKER2 für meinen 2.Drucker und so weiter.

Um die Unterschiede zu ermitteln, können Sie dies manuell tun, indem Sie sich die Ausgänge von udevamd für die verschiedenen Geräte ansehen. Der folgende Befehl ist für /dev/ttyUSB0.

udevadm info -q all -n /dev/ttyUSB0 --attribute-walk

Der folgende Befehl ist für /dev/ttyUSB1.

udevadm info -q all -n /dev/ttyUSB1 --attribute-walk

Hier bekommen wir sämtliche Daten über den angeschlossenen Drucker angezeigt. Dieser sollte natürlich eingeschaltet und per USB mit dem Raspberry verbunden sein.

Als nächstes erstellen wir uns eine Datei, wo wir einige udev Regeln einstellen werden.

cd /etc/udev/rules.d/
sudo nano 99-usb.rules

In dieser Datei fügen wir nun folgende 2 Zeilen Code ein:

SUBSYSTEM=="tty", ATTRS{idVendor}=="1a87", ATTRS{idProduct}=="1234", ATTRS{devpath}=="1.3", SYMLINK+="ttyDRUCKER1
SUBSYSTEM=="tty", ATTRS{idVendor}=="1a87", ATTRS{idProduct}=="1234", ATTRS{devpath}=="1.4", SYMLINK+="ttyDRUCKER

Hierbei muss mindestens ein Attribut (ATTRS) unterschiedlich sein.

Sollen mehr als 2 Drucker betrieben werden, muss dementsprechend eine 3. und 4. Regel eingestellt werden.

An dieser Stelle unterscheidet der Raspberry nun von alleine zwischen den angeschlossenen Druckern.

Nun brauchen wir eine 2. Instanz von Octoprint. Auch hier wieder der Hinweis: Für mehr Drucker braucht man auch mehr Instanzen und muss den Code dementsprechend erweitern bzw. abändern.

Zunächst Kopieren wir die original Instanz in einen 2. Ordner

cp -R /home/pi/.octoprint /home/pi/.octoprint2
sudo cp /etc/default/octoprint /etc/default/octoprint2

In folgender Datei wird der 2. Octoprint Instanz dann ein eigener Port zugewiesen

sudo nano /etc/default/octoprint2
PORT=5001
DAEMON_ARGS="--port=$PORT --config /home/pi/.octoprint2/config.yaml --basedir /home/pi/.octoprint2/"

Das selbe müssen wir nun auch für den Originalordner machen. Hierbei verwenden wir allerdings einen anderen Port. Das ist unser erster Unterschied zwischen den 2 Instanzen. 

sudo nano /etc/default/octoprint
PORT=5000
DAEMON_ARGS="--port=$PORT --config /home/pi/.octoprint/config.yaml --basedir /home/pi/.octoprint/"

Das selbe müssen wir nun auch für den Originalordner machen. Hierbei verwenden wir allerdings einen anderen Port. Das ist unser erster Unterschied zwischen den 2 Instanzen. 

Die Drucker sollten jetzt erreichbar sein unter:

http://IP_Raspberry:5000

http://IP_Raspberry:5001

Jetzt müssen wir noch dafür Sorgen, dass die 2. Octopi Instanz auch bei einem Neustart des Raspberry automatisch gestartet wird. 

sudo cp /etc/init.d/octoprint /etc/init.d/octoprint2
sudo nano /etc/init.d/octoprint2

In dieser Datei müssen ein paar Änderungen vorgenommen werden. Ändern Sie jeden Namen von “octoprint” in “octoprint2” und “OctoPrint” in “OctoPrint2”.

Die Zeile:

DAEMON=/usr/bin/octoprint

darf nicht verändert werden.

 

 

OctoPi verwendet systemctl, daher ist es wichtig, die Daemon-Liste neu zu laden, nachdem ein neues Init-Skript hinzugefügt wurde.

 

sudo systemctl daemon-reload
sudo update-rc.d octoprint2 defaults
sudo /etc/init.d/octoprint2 start
sudo /etc/init.d/octoprint2 start

Nun zur Sicherheit den Raspberry einmal neu booten lassen. 

Viel Spaß beim Drucken. 

Über Anregungen zu Themen, Verbesserungsvorschlägen u.s.w. freue ich mich immer. Bitte nutzen sie hierfür mein Kontaktformular.

Gerne dürfen sie die hier erstellten Anleitungen für ihre Projekte Nutzen. 

Im großen und Ganzen stelle ich meine Arbeit hier Hobby Programmierern und Bastlern unentgeldlich zur Verfügung.

Ihnen gefallen meine Ausarbeitungen und ich konnte ihnen damit helfen? Dann freue ich mich natürlich auch über eine freiwillige Spende.