Repetier-Server auf Raspberry PI
Einrichten und Benutzen eines Raspberry-PI als Server für den RF1000 (ohne Bildschirm ... Bedienung erfolgt von einem PC/Smartphone per Webbrowser)
Schritt 1 Betriebssystem installieren:
Raspbian downloaden:
Zur Installation auf der SD-Karte bitte folgende Anleitung verwenden, da ich nur für Linux auskunft geben kann:
Folgende Links für Windows stammen von Oo:
- http://www.chip.de/downloads/Noobs-New-Out-Of-The-Box-Software-fuer-Raspberry-Pi_69333184.html
- http://sourceforge.net/projects/win32diskimager/
Schritt 2 Betriebssystem einrichten:
Am Raspberry auf der Kommandozeile anmelden mit Benutzernamen "pi" und Passwort "raspberry" (Geht sowohl lokal, wenn Ihr einen Bildschirm und Tastatur anschliesst, als auch über Netzwerk per SSH-Protokoll - siehe:
Auf der Konsole folgenden Befehl eingeben um das Raspberry Configuration-Tool (im folgenden RC genannt) aufzurufen:
sudo raspi-config
Schritt 2a Dateisystem vergrößern
Das Raspbian wir komprimiert ausgeliefert, wodurch zunächst nicht der komplette Speicher der SD-Karte genutzt werden kann. Um diesen zu nutzen muss das Dateisystem vergrößert werden: RC starten und dort die erste Option "Expand Filesystem" aufrufen und bestätigen ... Sobald der Raspberry fertig ist, das RC verlassen und folgende Befehle ausführen (Sicherstellen dass alle Daten auf der SD-Karte wirklich geschrieben sind und dann reboot)
sudo sync sudo reboot
Nach dem Neustart sollte die komplette SD-Karte zur Verfügung stehen. Das kann mit dem Befehl df geprüft werden und als Antwort erhält man etwas wie:
Dateisystem 1K-Blöcke Benutzt Verfügbar Verw% Eingehängt auf rootfs 7725252 2957948 4403188 41% / /dev/root 7725252 2957948 4403188 41% / devtmpfs 242988 0 242988 0% /dev tmpfs 49452 244 49208 1% /run tmpfs 5120 0 5120 0% /run/lock tmpfs 98900 0 98900 0% /run/shm /dev/mmcblk0p1 57288 14728 42560 26% /boot
Hier stehen also von den 4GB der SD-Karte noch 2,9 GB zur Verfügung.
Schritt 2b Updates durchführen
Nur ein aktualisiertes System ist ein sicheres System. Also folgende Befehle ausführen, bis er nichts neues mehr aktualisiert:
sudo apt-get update sudo apt-get upgrade
Dann noch die Firmware updaten:
sudo rpi-update
Es erfolgt ein Neustart.
Schritt 2c Benutzer einrichten
Variante 1 :
Über RC die Option "Change User Password" wählen und ein neues Passwort eingeben.
Diese Variante kann genutzt werden, wenn der Zugriff auf den Raspberry ausschliesslich vom lokalen Netzwerk aus erfolgen soll. Spätestens wenn Ihr vorhabt auf den Raspberry auch übers Internet zu benutzen, muss ich dringend die zweite Variante empfehlen, da nur Trottel Geräte mit Default-Zugängen ins Internet stellen.
Variante 2 :
Neuen Nutzer anlegen, in sudo eintragen und anschliessend Passwörter für root und pi deaktivieren
Eine genaue Beschreibung findet Ihr hier:
Anschliessend den Raspberry neu starten.
Schritt 2d Sonstige Einstellungen im RC
Enable Boot to Desktop/Scratch
"Console Text Console, requiring login (default)" = Nur Textmodus wählen. Die CPU des Raspberry ist nicht stark genug um gleichzeitig die graphische Oberfläche und den Drucker mit Daten zu versorgen.
Enable Camera
Die onBoard-Camera ist zwar schön, aber zur Zeit noch nicht für motion zu gebrauchen. Also deaktivieren.
Overclock
Die Standard-Einstellungen reichen aus. Wer eine USB-Cam mit hoher Auflösung anschliessen will, der kann hier den CPU-Takt relativ sicher erhöhen. (Kühlung beachten, sonst wird der Raspberry instabil, was zu Druckfehlern führt)
Advanced Options -> Hostname
Name des Raspberry im Netzwerk
Advanced Options -> Memory Split
Wenn man ohne Desktop also im Textmodus Scratch arbeitet, reichen 16MB aus. Mit Desktop braucht man mind. 128MB, welche dann dem RAM fehlen. Weitere Infos findet Ihr hier:
Schritt 2e Netzwerk einstellen
Standardmäßig arbeitet der Raspberry im DHCP-Modus, d.h. Er stellt sich im aktuellen Netzwerk von selbst ein.
Wer dieses nicht möchte, kann die Datei /etc/network/interfaces nach Wunsch abändern. Hier ein vielleicht hilfreicher Link:
Wer einen WLAN-Dongle verwenden möchte, der findet diese Anleitung hilfreich:
Im folgenden wird auch ein Texteditor benötigt. Weitere Infos zu den verschiedenen Editoren findet ihr hier:
Im folgenden verwende ich den Befehl vi für den vim Editor. Wenn Ihr einen anderen wollt einfach das vi durch z.B. nano , etc. austauschen.
Schritt 3 Repetier-Server einrichten
Der Repetier-Server mittels folgenden Befehl in der Konsole herunter laden:
wget http://www.repetier-server.com/en/?wpdmdl=187 -O repetier_armel.deb
und das ganze mittels dpkg installieren:
sudo dpkg -i repetier_armel.deb
Nun muss das ganze noch konfiguriert werden. Die Basis-Einstellungen können mit
sudo vi /usr/local/Repetier-Server/etc/RepetierServer.xml
verändert werden. Wichtig ist der Port für die Weboberfläche. So sehen meine Einstellungen aus:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <server> <installation-directory>/usr/local/Repetier-Server/</installation-directory> <storage-directory>/var/lib/Repetier-Server/</storage-directory> <default-language>en</default-language> <port>80</port> <logging>true</logging> <backlog-size>1000</backlog-size> </server>
Zuletzt muss noch der Dienst mit folgendem Befehl sicher aktiviert werden:
sudo update-rc.d RepetierServer defaults sudo service RepetierServer start
Wenn Ihr nun vom PC-Browser die IP-Adresse vom Raspberry eingebt, solltet Ihr folgenden Bildschirm zu sehen bekommen:
Fehler beim Erstellen des Vorschaubildes: Datei fehlt
Da ich hier leider nicht die xml-Datei hochladen kann folgt nun der Inhalt der RF1000.xml, welche Ihr für die Basis-Einstellungen über Druckereinstellungen ersetzen verwenden könnt (Es sind meine Einstellungen, also bitte nochmal vor der Verwendung prüfen, ob diese mit Euren übereinstimmt):
<printer> <shape> <grid color="#454545" spacing="10"/> <rectangle color="#dddddd" xMax="245" xMin="0" yMax="250" yMin="0"/> </shape> <general> <name>RF1000</name> <slug>RF1000</slug> <firmwareName>Repetier-Firmware</firmwareName> <printerVariant>cartesian</printerVariant> <active>true</active> <fan>true</fan> <tempUpdateEvery>1</tempUpdateEvery> <sdcard>true</sdcard> <softwarePower>false</softwarePower> <defaultVolumetric>false</defaultVolumetric> </general> <connection> <serial> <baudrate>250000</baudrate> <device>/dev/ttyUSB0</device> <pingPong>false</pingPong> <inputBufferSize>63</inputBufferSize> <protocol>0</protocol> </serial> </connection> <movement> <xMin>0</xMin> <xMax>245</xMax> <xHome>0</xHome> <yMin>0</yMin> <yMax>250</yMax> <yHome>0</yHome> <zMin>0</zMin> <zMax>200</zMax> <zHome>0</zHome> <xyJerk>20</xyJerk> <zJerk>0.30000000000000004</zJerk> <timeMultiplier>1</timeMultiplier> <movebuffer>16</movebuffer> <xySpeed max="80">80</xySpeed> <zSpeed max="16.66">16</zSpeed> <xyPrintAcceleration>1500</xyPrintAcceleration> <xyTravelAcceleration>2500</xyTravelAcceleration> <zPrintAcceleration>100</zPrintAcceleration> <zTravelAcceleration>100</zTravelAcceleration> <endstops all="true" x="true" y="true" z="true"/> <G10Speed>50</G10Speed> <G10Distance>3</G10Distance> <G10LongDistance>50</G10LongDistance> <G11Speed>50</G11Speed> <G11ExtraDistance>0</G11ExtraDistance> <G11ExtraLongDistance>0</G11ExtraLongDistance> <G10ZLift>0.1</G10ZLift> </movement> <extruders> <extruder filamentDiameter="2.85" lastTemp="0" maxTemp="290" num="0"> <maxSpeed acceleration="6000" jerk="40" max="20"/> <extrude speed="2"/> <retract speed="20"/> <tempChange cooldownPerSecond="0.4606677801010707" heatupPerSecond="2.192791980304762"/> <offsets x="0" y="0"/> <temperatures> <temperature value="215">PLA</temperature> <temperature value="270">ABS</temperature> </temperatures> </extruder> </extruders> <heatedBed cooldownPerSecond="0.04321410837248366" heatupPerSecond="0.5677118006662564" installed="true" lastTemp="60" maxTemp="180"> <temperatures> <temperature value="60">PLA</temperature> <temperature value="165">ABS</temperature> </temperatures> </heatedBed> <quickCommands> <quickCommand name="Ausgabe Objekt">G21 G90 G1 X0 Y250 Z200</quickCommand> <quickCommand name="Ergebnis Heatbed-Scan">M3013</quickCommand> </quickCommands> <webcam> <method>2</method> <timelapseMethod>0</timelapseMethod> <staticUrl>http://172.16.200.133:81/</staticUrl> <dynamicUrl>http://172.16.200.133:81/</dynamicUrl> <reloadInterval>3</reloadInterval> <timelapseInterval>10</timelapseInterval> </webcam> <scripts> <script name="end">G21 G90 G1 X0 Y250 Z200</script> <script name="kill">G21 G90 G1 X0 Y250 Z200</script> </scripts> </printer>
Weitere Infos zur Bedienung findet Ihr hier: http://www.repetier-server.com/manuals/0.50/index.html
Schritt 4 Webcam-Server motion einrichten
Als Webcam-Server für die USB-Kamera verwende ich motion. Vorraussetzung hierfür ist, dass die Webcam als Video4Linux-Gerät zur Verfügung steht.
Update: Wer die onBoard-Camera des Raspberrys verwenden möchte, findet im folgenden Thread eine Beschreibung von Schnibli:
Diese basiert auf einem speziell für die PiCam angepasste Version von Motion:
Ansonsten geht es mit V4L-Kameras hier weiter:
Ihr könnt dieses nach Anschluss der Kamera prüfen, indem ihr folgenden Befehl eingebt:
sudo ls /dev/video*
Erscheint ein z.B. /dev/video0 dann steht die Kamera zur verfügung, ansonsten muss diese durch zusätzliche Treiber, etc. noch eingerichtet werden. Da es zuviele verschiedene Kameras gibt, kann ich hier nicht näher darauf eingehen. Vielleicht helfen folgende Links weiter:
- http://www.linux-drivers.org/usb_webcams.html
- http://tldp.org/HOWTO/Webcam-HOWTO/hardware.html%20http://wiki.ubuntuusers.de/Webcam
Zur Installation vom Paket motion bitte folgende URL eingeben:
sudo apt-get install motion
Auch diese muss Konfiguriert werden:
sudo vi /etc/motion/motion.conf
Folgendes sind meine Einstellungen welche je nach Kamera und Wunsch von Euch noch angepasst werden müssen (insbesondere die Fett markierten Zeilen:
daemon off setup_mode off [b]videodevice /dev/video0[/b] v4l2_palette 8 input 8 norm 0 frequency 0 rotate 0 [b]width 960 height 720[/b] framerate 2 minimum_frame_time 1 netcam_tolerant_check off auto_brightness off brightness 128 contrast 0 saturation 0 hue 0 roundrobin_frames 1 roundrobin_skip 1 switchfilter off threshold 1500000 threshold_tune off noise_level 32 noise_tune on despeckle EedDl smart_mask_speed 0 lightswitch 0 minimum_motion_frames 5 pre_capture 0 post_capture 0 gap 60 max_mpeg_time 0 output_all off output_normal on output_motion off quality 75 ppm off ffmpeg_cap_new on ffmpeg_cap_motion off ffmpeg_timelapse 0 ffmpeg_timelapse_mode daily ffmpeg_bps 500000 ffmpeg_variable_bitrate 0 ffmpeg_video_codec swf ffmpeg_deinterlace off snapshot_interval 0 locate off text_right %Y-%m-%d\n%T-%q text_left 3D-Drucker text_changes off text_event %Y%m%d%H%M%S text_double off target_dir /home/ snapshot_filename %v-%Y/%m/%d/%H/%M%S-snapshot jpeg_filename %v-%Y/%m/%d/%H/%M%S-%q movie_filename %v-%Y/%m/%d/%H/%M%S timelapse_filename %Y%m%d-timelapse [b]webcam_port 81[/b] webcam_quality 50 webcam_motion off webcam_maxrate 1 [b]webcam_localhost off[/b] webcam_limit 0 [b][b]control_port 82 control_localhost off[/b][/b] control_html_output on [b]control_authentication username:password[/b] quiet on
Bitte bei den Einstellungen daran denken, dass je mehr Leistung Ihr für die Webcam durch höhere Auflösung und Framerate benutzt, desto weniger bleibt für den Repetier-Server übrig, was zu Störungen führen kann.
Zuletzt müsst Ihr noch den Motion-Daemon aktivieren indem Ihr in den Start erlaubt:
sudo vi /etc/default/motion
dort start_motion_daemon=yes setzen. Zum schluss noch folgende Befehle ausführen um motion sicher zu starten
sudo update-rc.d motion defaults sudo service motion start
Das sollte es gewesen sein. Viel Spass
Nachtrag:
Wenn die Verbindung zum RF1000 Probleme machen sollte, kann es an mangelnden Rechten liegen. Hier hilft folgender Befehl:
sudo chmod 666 /dev/ttyUSB0