Netzwerkfähiger 3D-Drucker in 10 Schritten
In diesem Post wird beschrieben, wie man den Ultimaker netzwerkfähig machen kann. Zudem soll eine Webcam installiert werden. In unserem Fall werden wir über Wlan mit dem Printserver kommunizieren. Wir verwenden dazu die Software Octoprint, die von Gina Häußge entwickelt wird. Vielen Dank!
Material bereitstellen
- Raspberry Pi Version 2011.12 aufgesetzt mit Raspian (SD-Karte)
- USB-Hub
- Beliebiger Monitor (mit HDMI-Eingang)
- Beliebige Maus
- HDMI-Kabel
- USB-Kabel (Typ A zu Typ B)
- Micro Wlan USB-Adapter
- Beliebige Web-Cam (USB)
Ultimaker Upgrade
Damit der Rasp mit dem Drucker kommunizieren kann, muss eine Custom-Firmware auf den Ultimaker geladen werden.
- Ultimaker per USB mit Laptop verbinden
- Cura starten
- Unter Expert – Run First Run Wizard… den First Rund Wizard starten
- Dreimal „Next“ drücken
- Button „Goto this page for a custom firmware“ drücken
- Einstellungen vornehmen:
- Unter Software Basic die Baudrate auf 115200 stellen
- Unter Hardware-Addons die rot eingerahmten Checkboxen anwählen
-
Button „Build Marlin!“ drücken
-
Datei als Zip herunterladen und entpacken (zoberst auf der Seite zum Download bereit)
-
Batch „upload.bat“ ausführen (Achtung: Drucker muss über USB angeschlossen sein) Achtung: COMPort muss angegeben werden
(Systemsteuerung-Gerätemanager-Anschlüsse(COM & LTP)-Arduino)
Beispiel: „COM10“ -
Die Firmware wird aktualisiert
Raspberry starten
Monitor über HDMI mit Raspberry verbinden. Maus, Tastatur, Drucker und Webcam über USB an Hub anschliessen. Hub über USB an Raspberry anschliessen. Wlan-Adapter über USB an Rasp anschliessen. SD-Karte mit Raspian einstecken. USB-Hub an Strom anschliessen.
Der Raspberry startet, sobald er genug Strom bekommt.
Raspberry Basic-Konfigurationen
- Raspi-config
- configure_keyboard wählen
- Einigermassen passendes Modell wählen
- Im nächsten Schritt „Other“ wählen
- Danach Schritte befolgen:
- „German(Switzerland)“
- Noch einmal „German(Switzerland)“
- „The default for the keyboard layout“
- „No compose key“
- „No“
- „Finish“
- Wenn nötig einloggen mit Default Login:
Username: pi und Passwort:
raspberry
- GUI starten mit Befehl:
startx
- Mit WLAN verbinden:
- WiFi Conig starten
- Scan (WLAN muss vorhanden sein)
- Doppelklick auf richtiges WLAN
- Pre-Shared-Key eingeben, Save
- Connect
- Logout
- Updaten: (Das kann einen Moment dauern)
sudo apt-get update
sudo apt-get upgrade
- Den Vim-Editor mit folgendem Kommando installieren:
sudo apt-get install vim
- Root-Passwort neu setzen:
sudo passwd
- Rasp über Konsole neu starten mit Befehl:
sudo init 6
Octaserver konfigurieren starten
- Nach einloggen diese Befehle nacheinander (Zeile für Zeile) ausführen
cd
sudo apt-get install python-pip git
git clone https://github.com/foosel/OctoPrint.git
cd Octoprint
sudo pip install -r requirements.txt
- Mit Befehl Octoserver starten:
./run
- Mit Tastatur-Kombination Octoserver beenden:
Ctrl+C
Webcam einrichten
- Befehle nacheinander ausführen:
cd
sudo apt-get install subversion libjpeg8-dev imagemagick libav-tools
wget -Omjpg-streamer.tar.gz http://mjpg-streamer.svn.sourceforge.net/viewvc/mjpg-streamer/mjpg-streamer/?view=tar
tar xfz mjpg-streamer.tar.gz
cd mjpg-streamer
make
- Webcam-Server starten:
Mit Befehl:
./mjpg_streamer -i „./input_uvc.so“ -o „./output_http.so“
-
Testen:
Im Browser folgendes eingeben: http://<your Raspi’s IP>:8080/?action=stream
Alle 5 Sekunden sollte ein Bild der Webcam angezeigt werden
Webcam beenden mit Tastenkombination Ctrl+C -
config.yaml anpassen:
cd
cd .octoprint
vim config.yaml
Zeilen einfügen oder anpassen:
webcam:
stream: /webcam/?action=stream
snapshot: http://127.0.0.1:8080/?action=snapshot
ffmpeg: /usr/bin/avconv
vim:
Insert-Mode mit „i“
Speichern und schliessen: ESC dann „:wq“
- Testen mit Octoprint:
- OctoPrint-Server starten (siehe Punkt 4)
- Mit Ctrl+Alt+F2 auf zweite Konsole wechseln
- Sich mit dem Default-User einloggen
- Webcam-Server starten (siehe Punkt 6)
- URL: http://<your Raspi’s IP>:5000 aufrufen
- Unter dem neuen Register Webcam sollte eine Live-Abbildung vorhanden sein
Alles über Port 80 laufen lassen
- HaProxy installieren
sudo apt-get install haproxy
- /etc/haproxy/haproxy.cfg anpassen
Konfiguration wie folgt übernehmen:
global
maxconn 4096
user haproxy
group haproxy
daemon
log 127.0.0.1 local0 debug
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
option http-server-close
option forwardfor
maxconn 2000
timeout connect 5s
timeout client 15min
timeout server 15min
frontend public
bind *:80
use_backend webcam if { path_beg /webcam/ }
default_backend octoprint
backend octoprint
reqrep ^([^ :]*) /octoprint/(.*) 1 /2
server octoprint1 127.0.0.1:5000
backend webcam
reqrep ^([^ :]*) /webcam/(.*) 1 /2
server webcam1 127.0.0.1:8080
-
/etc/default/haproxy anpassen
ENABLE auf 1 setzen -
/.octoprint/config.yaml anpassen
Option einfügen
server:
host: 127.0.0.1
- HA-Proxy starten
sudo service haproxy start
- Testen
Octo-Server neu starten
Im Browser nur IP vom Raspberry eingeben -> Web-Gui sollte erscheinen
Shutdown und Reboot über Web-Gui
- Sudo-Rule erstellen
sudo -s
cat > /etc/sudoers.d/octoprint-shutdown
eingeben:
pi ALL=NOPASSWD: /sbin/shutdown
Eingabe mit Ctrl+D beenden
- Skript berechtigen
cd /etc/sudoers.d
chmod 744 octoprint-shutdown
exit
- Config-File „config.yaml“ anpassen
cd .octoprint
vim config.yaml
folgende Zeilen einfügen oder anpassen:
system:
actions:
name: Shutdown
command: sudo shutdown -h now
action: shutdown
confirm: You are about to shutdown the system.
name: Reboot
command: sudo shutdown -r now
action: reboot
confirm: You are about to reboot the system
Octoprint und Webcamserver neu starten und testen (Neben Settings sollte ein Menu „System“ erscheinen)
Automatischer Start
- Skript erstellen
sudo -s
mkdir bin
cd bin
vim octoprint
Folgendes einfügen:
#!/bin/sh
OCTOPRINT_HOME=/home/pi/OctoPrint
MJPEG_STREAMER_HOME=/home/pi/mjpg-streamer
# start mjpeg streamer
$MJPEG_STREAMER_HOME/mjpg_streamer -i "$MJPEG_STREAMER_HOME/input_uvc.so -r SXGA -f 15" -o "$MJPEG_STREAMER_HOME/output_http.so" &
# start the webui
$OCTOPRINT_HOME/run
- Skript ausführbar machen
chmod +x /home/pi/bin/octoprint
- /etc/rc.local bearbeiten
Folgende Zeile vor dem exit0 einfügen:
sudo -u pi /home/pi/bin/octoprint
Das Ganze sollte jetzt beim Raspberry-Start automatisch gestartet werden
Webgui zugreifen und Druckauftrag starten
Mit der IP vom Raspberry kann jetzt über einen Browser auf das Webgui zugegriffen werden.
Beispiel: 192.168.1.35
Mit der Funktion „Upload“ kann jetzt ein gcode-File hochgeladen werden. Um es für den Druck vorzubereiten, muss noch auf das Ordner-Symbol gedrückt werden. Mit dem Befehl „Print“ kann jetzt das Modell gedruckt werden. Optional: Fixe IP für Rasp vergeben
Optional eine fixe IP konfigurieren mit dem Befehl
sudo nano /etc/network/interfaces:
anstatt
iface eth0 inet dhcp neu eintragen (Adressen nach Netzwerk anpassen):
iface eth0 inet static
address 192.168.1.99
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1