Der aus dem Keller wiederbelebte 3D-Drucker ist ein Leapfrog Creatr von 2014. Dieses Modell hat bekannte Kinderkrankheiten, von denen einige beim Nachfolger Creatr HS ausgebügelt wurden. Wie weit wir mit dem Original und eventuell Modifikationen kommen, wird sich zeigen.
Auf der Seite von Leapfrog gibt es eine Übersicht über die Anschlüsse des Motherboards:
OctoPi ist Octoprint auf einem RaspberryPi3
unzip octopi-*.zip
lsblk
sudo dd if=octopi-0.18.0-1.8.6-20221018093204.img of=/dev/sdg bs=64k oflag=dsync status=progress sync umount /dev/sdg1 umount /dev/sdg2
sudo raspi-config
→ Localisation → Locales → de_DE.UTF-8 und en_UK.UTF-8 → Localisation → Keyboard → Generic 105 key (intl) → German (no dead keys) → Localisation → Timezone → Europe → Berlin
In /etc/sudoers.d/010_pi-nopasswd die Einstellung für den user pi entkommentieren sudo chmod u+w /etc/sudoers.d/010_pi-nopasswd sudo vi /etc/sudoers.d/010_pi-nopasswd sudo chmod u-w /etc/sudoers.d/010_pi-nopasswd
sudo apt update sudo apt upgrade
sudo apt install vim sudo apt install locale sudo updatedb
Logitech C922 wird von Octopi unmittelbar erkannt und benutzt, stellt aber auf irgendwas scharf.
Plusonic PSH36 lässt sich auf eine feste Entfernung einstellen, ist aber ansonsten ziemlich lausig.
Also doch die Logitech-Kamera und im Plugin auf eine feste Brennweite und geeignete Belichtung konfigurieren. Die Parameter als Default beim Neustart laden lassen. Die Linse der Logitechkamera vibriert gerne mit, wenn der Drucker beim Drucken wackelt. Das ergibt durch die zeilenweise Auslesung kräftige Wellen im Bild. Mit der Fokussierung ganz im vorderen Anschlag wird das erheblich weniger. → Mit externer Lesebrille den Fokus auf die Mitte des Druckbetts verschieben.
Settings → Plugin_Manager → Get_more oder https://plugins.octoprint.org/
Octodash bringt ein Octoprint-UI für ein kleines Touch-Screen, das direkt am RaspberryPi hängt. Anzeige: Das offizielle 7”-Display von Raspberry mit zugehörigem Gehäuse.
cd /tmp wget -qO- https://github.com/UnchartedBull/OctoDash/raw/main/scripts/install.sh > install_octodash.sh chmod u+x install_octodash.sh sudo ./install_octodash.sh
Hakeleien beim Einrichten:
Cura ist in Debian nur in ziemlich alter Version 4.13 enthalten (aktuelle Debian-Lage): sudo apt install cura
Noch nicht ausprobiert: https://github.com/Ultimaker/Cura/wiki/Running-Cura-from-Source
Ist ganz normal in Debian enthalten.
Auf dem Leapfrog läuft Marlin V1 Version-String (mit M115): FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6 FIRMWARE_URL:http://www.mendel-parts.com PROTOCOL_VERSION:1.0 MACHINE_TYPE:Mendel EXTRUDER_COUNT:2
Katalog der Marlin-Befehle: https://marlinfw.org/meta/gcode/
M104 S200
Alte Heizer-Werte (ausgelesen mit M301): p:6.80 i:0.24 d:48.15 c:0.13
Alte Bett-Werte (ausgelesen mit M304): → Nix. Da gibt es wohl keinen PID
Autotune für 200 °C starten: M303 E0 S200 Parameter U und C scheinen in der Firmware des Leapfrog nicht aktiv zu sein. Es werden zwei PID-Parameter-Sätze empfohlen. Davon ist der zweite etwas schneller am Ziel.
Mit neuem Mk8-Hotend, 50W-Heizer, Silikonkleid, 60 mm-Lüfter, 200 °C
→ M301 P17.71 I1.29 D60.95
Mit neuem Mk8-Hotend, 40W-Heizer, Silikonkleid, 60 mm-Lüfter, 200 °C → M301 P16.10 I0.85 D76.25 Januar 2023: → M301 P18.4 I1.24 D69.97 Juni 2023: → M301 P13.29 I0.79 D56.19
Ins EPROM schreiben, ist in der Firmware nicht aktiviert. Also in Octoprint als Script vor jedem Druckjob eintragen: Octoprint_Settings → GCODE_Scripts → Before print job starts
Cura schickt den Druckkopf am Ende vom Druck an den xy-Ursprung, bei gleich gelassener z-Koordinate. Der Ursprung liegt in der linken, unteren, vorderen Ecke des Druck-Volumens. Dadurch steht der Kopf für die Entnahme des fertigen Objekts etwas im Weg. Mit diesem kleinen Gcode-Script in Octoprint fährt der Kopf in die obere, linke Ecke des Bauvolumens (Octoprint_Settings → Printer → GCODE_Scripts → After print job completes)
; stop heating the bed M140 S0 ; stop heating the nozzle M104 S0 ; absolute coordinates G90 ; move to home (front-left-top) G28 X0 Y0 F1500
Von Haus aus schiebt der Leapfrog systematisch etwas zuviel Filament aus der Düse. Das überflüssige Volumen fällt besonders bei Formen mit 100% Füllung auf. Aber auch andere Drucke können dadurch Probleme bekommen. Am Boden gibt es “Elefantenfüße” und beim Dach rührt die Düse in der letzten Lage. Man könnte denken, dass eine Anpassung des Filament-Durchmessers bei den Drucker-Eigenschaften in Cura zu einer korrekten extrudierten Menge führt. Dieser Parameter hat allerdings (zumindest beim Leapfrog) keinen Einfluss auf die Druckqualität. Stattdessen kann man in den Einstellungen von Cura den “Flow” um einen Prozentsatz anpassen. Der Test-Würfel sieht bei 100% Füllung mit 85% am besten aus. Cura → Print_Settings → Material → Flow → 85%
Kleinere, senkrechte Löcher werden systematisch mit zu kleinem Durchmesser gedruckt. Der Grund ist, dass der extrudierte Kunststofffaden bei engen Kurven nicht ganz der Düse folgt. Er wird immer ein wenig nach innen gezogen. Dadurch wird das Loch kleiner als der Weg der Düse. Ein Loch im Testwürfel, das mit 3mm Durchmesser geplant war, schrumpfte auf diese Weise zu 2.6 mm Durchmesser. Cura → Print_Settings → Shell → Hole_Horizontal_Expansion → 0.4 mm
Den Schlüssel, das Maschinen-Zertifikat und das LUH-Zertifikat in eine gemeinsame pem-Datei bündeln: cd /root/certs/leapfrog.iqo.uni-hannover.de cat leapfrog.iqo.uni-hannover.de.crt.pem /etc/ssl/luh_ca_chain.crt.pem leapfrog.iqo.uni-hannover.de.key.pem >leapfrog.iqo.uni-hannover.de.pem dos2unix leapfrog.iqo.uni-hannover.de.pem scp leapfrog.iqo.uni-hannover.de.pem pi@leapfrog.iqo.uni-hannover.de:/tmp
Die pem-Datei an eine passende Stelle bugsieren und haproxy unterschieben: sudo mv /tmp/leapfrog.iqo.uni-hannover.de.pem /etc/ssl/ sudo chown root: /etc/ssl/leapfrog.iqo.uni-hannover.de.pem sudo chmod 600 /etc/ssl/leapfrog.iqo.uni-hannover.de.pem
In /etc/haproxy/haproxy.cfg
die Zeile, wo vorher das snakeoil Zertifikat referenziert war, wie folgt ändern: bind :::443 v4v6 ssl crt /etc/ssl/leapfrog.iqo.uni-hannover.de.pem
Um HTTP auf HTTPS umzubiegen außerdem diese Zeile einfügen: ( https://www.haproxy.com/blog/redirect-http-to-https-with-haproxy/ ) http-request redirect scheme https code 301 unless { ssl_fc }
Ergebnis:
global maxconn 4096 user haproxy group haproxy log /dev/log local1 debug tune.ssl.default-dh-param 2048 defaults log global mode http compression algo gzip 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 v4v6 bind :::443 v4v6 ssl crt /etc/ssl/leapfrog.iqo.uni-hannover.de.pem http-request redirect scheme https code 301 unless { ssl_fc } option forwardfor except 127.0.0.1 redirect scheme https if !{ hdr(Host) -i 127.0.0.1 } !{ ssl_fc } use_backend webcam if { path_beg /webcam/ } use_backend webcam_hls if { path_beg /hls/ } use_backend webcam_hls if { path_beg /jpeg/ } default_backend octoprint backend octoprint acl needs_scheme req.hdr_cnt(X-Scheme) eq 0 reqrep ^([^\ :]*)\ /(.*) \1\ /\2 reqadd X-Scheme:\ https if needs_scheme { ssl_fc } reqadd X-Scheme:\ http if needs_scheme !{ ssl_fc } option forwardfor server octoprint1 127.0.0.1:5000 errorfile 503 /etc/haproxy/errors/503-no-octoprint.http backend webcam reqrep ^([^\ :]*)\ /webcam/(.*) \1\ /\2 server webcam1 127.0.0.1:8080 errorfile 503 /etc/haproxy/errors/503-no-webcam.http backend webcam_hls server webcam_hls_1 127.0.0.1:28126 errorfile 503 /etc/haproxy/errors/503-no-webcam-hls.http
Das Plugin Octoprint-LDAP ist nicht im offiziellen Katalog enthalten. Download unter: https://github.com/gillg/OctoPrint-LDAP
Es braucht ein paar Extra-Abhängigkeiten: sudo apt-get install libsasl2-dev python-dev libldap2-dev libssl-dev
Nach Upgrade von Octoprint scheiterte das LDAP-Plugin und zieht die User-Verwaltung mit herunter.
→ https://github.com/geneb/OctoPrint-Delta-Calibration/issues/1
Eine gepatchte Version konnte von der Kommandozeile aus installiert werden: sudo /home/pi/oprint/bin/pip install https://github.com/gillg/OctoPrint-LDAP/archive/refs/heads/master.zip
Einstellung in Cura: Extensions → Custom_Printjob_Naming → Set_name_options Der Default ist Prefix={printer_type}
, der sich übersetzt in “CFFFP_”.
Empfehlung: Prefix=NAME
, wobei NAME
durch den eigenen Vornamen ersetzt wird. Dann ist im Web-Interface erkennbar, zu wem der jeweilige Job gehört.
reddit-Disk über Alternativen zu odrive
Es gibt Filamente, die sich “normal” drucken lassen, die aber erst bei höherer Temperatur weich werden.
Wie nachhaltig ist PLA Filament wirklich?
Upgrade auf 1.9.3 und ein paar Plugins
Problem mit UI Customizer to 0.1.9.9: “The update did not finish successfully. Please consult octoprint.log
and plugin_softwareupdate_console.log
for details.”
A clone of the SD card provides the most comprehensive backup possible.
Instructions on howto clone raspberry pi are available in this blog.
Octoprint can save its configuration in a file. This makes a restore from scratch a little less painful. The saved file includes the list of plugins and their parameters. Howto use the backup facility in the octoprint documentation.
List of available configurations:
The tool raspiBackup provides a means to automatically save a backup of the current Raspberry Pi install at regular intervals. The backup gets saved at a network attached storage location. Backups can be full or incremental.