OctoPi Installation - Einrichten
Ein Raspberry Pi mit installiertem OctoPi bietet eine sehr einfache Möglichkeit bestehende 3D Drucker aufzurüsten.
OctoPrint-Webinterface
Das in OctoPi enthaltene OctoPrint bietet eine Weboberfläche für die Steuerung des Druckers und zur Verwaltung der 3D-Objekte. So kann zum Beispiel, bei Einsatz einer Webcam, der Printstatus jederzeit und überall begutachtet werden. Oder bei Verwendung eines Relais kann der Drucker nach dem Druckvorgang automatisch abgeschaltet werden. Auch eine zusätzliche Temperaturüberwachung über den Raspberry wäre denkbar.
OctoPi basiert auf Raspian, entsprechend läuft die Einrichtung sehr ähnlich dem folgenden Artikel: Raspberry Pi Inbetriebnahme.
Installation
Das Aufspielen des Images erfolgt wieder mittels Win32 Disk Imager:
(sourceforge.net/projects/win32diskimager/)
Die Netzwerkeinstellungen können direkt auf der SD-Karte, in der Datei octopi-network.txt eingestellt werden:
Somit ist es nicht notwendig dem Raspberry extra an einen Bildschirm anzuschließen, die Verbindung erfolgt über SSH:
Der Benutzer ist wieder: pi, das Kennwort: raspberry
Die initialen Settings können wieder mit folgendem Befehl eingestellt werden:
sudo crontab -e
1) Expand Filesystem
2) change Password
sollte eine Webcam angeschlossen sein:
6) Enable camera
Deaktivieren der Kamera-LED
Sollte die Kamera-LED stören, kann diese in folgender Datei deaktiviert werden: sudo nano /boot/config.txt
disable_camera_led=1
Fehler beim Download zusätzlicher Pakete: SSLError: bad handshake
Sollte es an dieser Stelle nicht möglich sein bestimmte Paket zu installieren, könnte das an einer falschen Uhrzeit liegen:
sudo apt-get install python-setuptools python-pip
Fehler:
Exception:
Traceback (most recent call last):
File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/basecommand.py", line 209, in main
status = self.run(options, args)
File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/commands/install.py", line 299, in run
requirement_set.prepare_files(finder)
File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/req/req_set.py", line 360, in prepare_files
ignore_dependencies=self.ignore_dependencies))
File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/req/req_set.py", line 577, in _prepare_file
session=self.session, hashes=hashes)
File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/download.py", line 810, in unpack_url
hashes=hashes
File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/download.py", line 649, in unpack_http_url
hashes)
File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/download.py", line 842, in _download_http_url
stream=True,
File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/_vendor/requests/sessions.py", line 480, in get
return self.request('GET', url, **kwargs)
File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/download.py", line 378, in request
return super(PipSession, self).request(method, url, *args, **kwargs)
File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/_vendor/requests/sessions.py", line 468, in request
resp = self.send(prep, **send_kwargs)
File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/_vendor/requests/sessions.py", line 597, in send
history = [resp for resp in gen] if allow_redirects else []
File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/_vendor/requests/sessions.py", line 195, in resolve_redirects
**adapter_kwargs
File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/_vendor/requests/sessions.py", line 576, in send
r = adapter.send(request, **kwargs)
File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/_vendor/cachecontrol/adapter.py", line 46, in send
resp = super(CacheControlAdapter, self).send(request, **kw)
File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/_vendor/requests/adapters.py", line 447, in send
raise SSLError(e, request=request)
SSLError: ("bad handshake: Error([('SSL routines', 'SSL3_GET_SERVER_CERTIFICATE', 'certificate verify failed')],)",)
Power GPIO
Hier nur einmal ein Screenshot; zur Verkabelung, siehe: Raspberry Pi Relais
PSU Control
über das Plugin PSU-Control kann mithilfe eines Relais die Stromzufuhr zum Drucker unterbrochen werden.
Folgende Einstellungen habe ich dafür gesetzt:
Immer die richtige Zeit: NTP
Über NTP kann die aktuelle Zeit vom Internet abgerufen werden, dazu die aktuelle Zeitzone einstellen / kontrollieren:
pi@octopi:~ $ sudo dpkg-reconfigure tzdata
NTP installieren
pi@octopi:~ $ sudo apt-get purge ntp
pi@octopi:~ $ sudo apt-get update
pi@octopi:~ $ sudo apt-get install ntpdate
folgender Befehl kann dann die Zeit über NTP holen und setzten:
ntpdate -s 0.de.pool.ntp.org
Damit der Raspi die Zeit bei jedem Start aktualisiert, habe ich folgende Zeile in die Datei rc.local eingetragen:
pi@octopi:~ $ sudo nano /etc/rc.local
ntpdate -s 0.de.pool.ntp.org
Alternativ kann ntp auch über crontab aktualisiert werden:
sudo crontab -e
@reboot sudo ntpdate -s 0.de.pool.ntp.org
Syncthing
Um Daten auf andere Geräte zu synchronisieren, habe ich am Raspberry Syncthing eingerichtet, siehe auch: jankarres.de/2014/09/raspberry-pi-bittorrent-sync-alternative-syncthing-installieren/
pi@octopi:~ $ sudo mkdir /etc/syncthing
pi@octopi:~ $ cd /etc/syncthing
pi@octopi:/etc/syncthing $ sudo wget https://github.com/syncthing/syncthing/releases/download/v0.14.23/syncthing-linux-arm-v0.14.23.tar.gz
pi@octopi:sudo tar xvzf syncthing-linux-arm-v0.14.23.tar.gz
pi@octopi:/etc/syncthing $ sudo rm syncthing-linux-arm-v0.14.23.tar.gz
pi@octopi:/etc/syncthing $ sudo mv syncthing-linux-arm-v0.14.23/syncthing ../
pi@octopi:/etc/syncthing $ sudo chmod -x syncthing
sudo ln -s /etc/syncthing/syncthing /usr/bin/syncthing
nano ~/.config/syncthing/config.xml
<gui enabled="true" tls="false" debugging="false">
<address>192.168.0.115:8384</address>
Autostart:
sudo nano /etc/init.d/syncthing
siehe: Syncthing einrichten: unlimitierte private Dropbox - Autostart
Upload Ordner:
chmod 777 -R /home/pi/.octoprint/uploads/
Communication stuck
Kommunikationsfehler
Es gab einen Fehler bei der Kommunikation mit dem Drucker. Bitte konsultiere den Terminaloutput und octoprint.log für Details. Fehler: Printer keeps requesting line ??? again and again, communication stuck
Das Problem wurde scheinbar durch das Plugin "DisplayLayerProcess" verursacht, entweder, weil ich den Dateinamen am Display anzeigen wollte und ab einer bestimmten Stelle die übertragene Meldung zu lang wurde, oder weil zu viele Statusmeldungen geschickt wurden.
Lösung: Drucker Anzeig ohne Dateinamen [current_print_filename] und Output intervall auf 10 seconds:
Fazit
Octopi und ein Raspberry-PI sind eine einfache Möglichkeit einen beinahe beliebigen 3D-Drucker um ein Webinterface zu erweitern, siehe auch: Prusa i3 basierte Drucker: Verbesserungen und Anpassungen.
{{percentage}} % positiv