Repetier-Server auf Raspberry PI

Aus RF1000 Wiki
Wechseln zu: Navigation, Suche

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:

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:

SCRCPY4.png

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:

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:

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