meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
3d-druck:leapfrog-admin:start [2023/01/06 20:58] – [Backup] A clone of the SD card provides the most comprehensive backup possible. kmk3d-druck:leapfrog-admin:start [2024/04/19 18:33] (current) – [Plugins] Format kmk
Line 1: Line 1:
 ====== Leapfrog Administration ====== ====== Leapfrog Administration ======
 +
 +Der aus dem Keller wiederbelebte 3D-Drucker ist ein Leapfrog Creatr von 2014. Dieses Modell hat [[http://nicklievendag.com/leapfrog-creatr-review-part-1/|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.
 +
 +==== Motherboard ====
 +
 +Auf der Seite von Leapfrog gibt es eine [[https://lfa.freshdesk.com/support/solutions/articles/11000000548-the-layout-for-the-creatr-series-motherboard|Übersicht über die Anschlüsse des Motherboards]]: {{./Creatr-Motherboard-All_Connections.png}}
 +
 +==== Frosch-Icon ====
 +
 +https://www.onlinewebfonts.com/icon/438753
 +
 +==== Zahnriemen ====
 +
 +  * Die Zähne der Original-Zahnriemen haben einen Abstand von 3.0 mm → DIN 7721-2, Teilung AT3
 +  * AT3 ist recht selten. Ersatz ist im Prinzip [[https://www.keiperriemen.de/sites/default/files/KEIPER%20Zahnriemen_Polyurethan_%20AT-Teilung.pdf|erhältlich bei Keiper]] oder Continental Synchroflex bei [[https://www.zahnriemen24.de/a/41180-zahnriemen-at3-gen-3?breite=10&laenge=501&quantity=1|Zahnriemen24.de]]
 +  * Üblich ist die Teilung GT2. Endlose Riemen gibts bei roboterbausatz.de . Geschlossene Riemen verkauft [[https://www.robotdigg.com/search/index/s/2GT-9|robotdigg]]
 +  * Bei Thingiverse gibt es einen [[https://www.thingiverse.com/thing:1814419|Riemen-Spicer]]
 +
 +====== OctoPi ======
 +
 +OctoPi ist [[https://octoprint.org/|Octoprint]] auf einem RaspberryPi3
 +
 +  - Download von [[https://octopi.octoprint.org/latest|hier]] ( https://github.com/guysoft/OctoPi )
 +  - Zip auspacken: ''%%unzip octopi-*.zip%%''
 +  - Das Ziel-Device erkunden: ''%%lsblk%%''
 +  - Image auf SD-Karte schreiben (eventuell if und of anpassen):
 +''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''
 +
 +==== Erster SSH-Login: ====
 +
 +  * User: pi
 +  * PW: raspberry
 +  * PW von pi mit passwd geändert und im passwordstore auf dc1 abggelegt → 3dprinter/leapfrog/pi
 +
 +==== System lokalisieren ====
 +
 +<code>
 +sudo raspi-config
 +</code>
 +
 +→ 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
 +
 +==== sudo für pi ====
 +
 +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
 +
 +==== apt in Gang bringen ====
 +
 +''sudo apt update sudo apt upgrade''
 +
 +==== Ein-zwei Kommandozeilenwerkzeuge ====
 +
 +<code>
 +sudo apt install vim
 +sudo apt install locale
 +sudo updatedb
 +</code>
 +
 +==== WWW-Browser-Login ====
 +
 +  * URL: https://leapfrog.iqo.uni-hannover.de
 +  * User: octoadmin
 +  * PW: im passwordstore auf DC1 abgelegt
 +  * In OctoPrint Settings (Maulschlüssel-Icon) einen API-Key für den User octoadmin erzeugen mit dem application identifier “octoprint”
 +  * Ein lokaler User als Ausweichlösung, wenn LDAP nicht funktional ist:
 +    * User: iqo
 +    * PW: im passwordstore auf dc1
 +
 +==== Kamera ====
 +
 +[[https://www.reichelt.de/index.html?ACTION=7&LA=3&OPEN=0&INDEX=0&FILENAME=EB00%2FLOGITECH_HD_C922_DB-DE.pdf|Logitech C922]] wird von Octopi unmittelbar erkannt und benutzt, stellt aber auf irgendwas scharf. 
 +
 +[[https://www.pollin.de/p/webcam-plusonic-one-psh036-724368|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.
 +
 +==== Plugins ====
 +
 +Settings → Plugin_Manager → Get_more oder https://plugins.octoprint.org/
 +
 +=== installiert ===
 +
 +  * **[[https://github.com/gillg/OctoPrint-LDAP|OctoPrint-LDAP]]** → nicht im offiziellen Plugin-Repo, aber trotzdem funktional
 +  * **[[https://github.com/gillg/OctoPrint-LDAP|Auth LDAP]]** → Login mit Institutscredentials
 +  * **[[https://github.com/lsellens/OctoPrint-Cr10_leveling|Bed Leveling Plugin]]** → Ergänzt Knöpfe, mit denen man alle Ecken und die Mitte des Druckbereichs anfahren kann.
 +    * Die Koordinaten der Eckpunkte müssen im Plugin konfiguriert werden. Für den Aufbau von Januar 2023:
 +      * vorne-links: 5 / 5
 +      * vorne-rechts: 210 / 5
 +      * hinten-rechts: 180 / 230
 +      * hinten-links: 5 / 260
 +      * Mitte: 100 / 120
 +  * **[[https://plugins.octoprint.org/plugins/camerasettings/|Camera Settings]]** → Kamera-Parameter einstellen
 +  * **Classic Webcam** → Kompatibilität mit der “alten” Webcam-Technik
 +  * **[[https://github.com/jneilliii/OctoPrint-UltimakerFormatPackage|Cura Thumbnails]]** → Vorschaubilder von Jobs, die mit Cura erstellt wurden
 +  * **[[https://plugins.octoprint.org/plugins/dashboard/|Dashboard]]** → Eine Zusammenfassung im UI
 +  * **[[https://github.com/OllisGit/OctoPrint-DeleteAfterPrint|DeleteMoveAfterPrint]]** → Löscht automatisch den Gcode nach n Tagen
 +  * **[[https://plugins.octoprint.org/plugins/DisplayLayerProgress/|DisplayLayerProgress]]** → Zeigt an verschiedenen Stellen die aktuelle Lagen-Lage an. → In den Einstellungen “Show_printer_display_on_desktop” deaktivieren, denn das bewirkt ein nerviges Mini-Fenster.
 +  * **[[https://plugins.octoprint.org/plugins/displayz/|DisplayZ]]** → Höhe der Z-Achse anzeigen während der Drucker druckt
 +  * **[[https://plugins.octoprint.org/plugins/HeaderAnnouncements/?utm_source=octoprint&utm_medium=announcements&utm_content=1.8.0|HeaderAnnouncements]]** → Ansagen für alle oben im Web-Interface
 +  * **[[https://plugins.octoprint.org/plugins/octoapp/|OctoApp]]** → Automatisches Login mit der Android-App OctoApp
 +  * **[[https://plugins.octoprint.org/plugins/dashboard/|OctoDash Companion]]** → Unterstützung für ein lokales Touch-Display
 +  * **[[https://plugins.octoprint.org/plugins/preheat/|Preheat Button]]** → Ein Knopf zum Vorheizenm auf die im Gcode eingetragenen Temperaturen
 +  * **[[https://plugins.octoprint.org/plugins/PrintTimeGenius/|PrintTimeGenius]]** → genauere Schätzung der verbleibenden Druckzeit
 +  * **[[https://github.com/jneilliii/OctoPrint-PrusaSlicerThumbnails|Slicer Thumbnails]]** → Vorschaubilder, die mit PrusaSlicer oder SuperSlicer erstellt wurden
 +  * **[[https://plugins.octoprint.org/plugins/uicustomizer/|UI Customizer]]** → Deutlich besseres Browser-UI auf Smartphones. Und auch auf dem Desktop ist das UI ein Stück angenehmer.
 +
 +=== Auf jeden Fall ausprobieren ===
 +
 +  * ☐ **[[https://plugins.octoprint.org/plugins/arc_welder/|Arc Welder]]** → Macht aus Polygonzügen echte Bogen-Befehle im Gcode
 +  * ☐ DryRun → Probelauf ohne Extrusion und Grundplattenheizung
 +  * ☐ Simple Emergency Stop
 +
 +=== Klingt interessant ===
 +
 +  * OctoBuddy → common printer actions to be performed with physical buttons via GPIO
 +  * OctoPrint Micro Panel → Simple control and status paired with a physical button panel and OLED display
 +  * USB keyboard → Octoprint mit Tastatur steuern
 +  * AutoLogout
 +  * OctoPrint-BetterHeaterTimeout → Turns off heaters after specified time being on and unused
 +  * ShutdownPrinter → Drucker am Ende des Jobs herunterfahren
 +  * M300_Player → Piept im Web-Interface, wenn fertig
 +  * OctoPrint-Display-ETA → Zeigt die vorhergesagte Fertig-Zeit an. (Ist das im Default nicht enthalten?)
 +  * OctoPrint-Hardwarepwm → Damit die Lüfter angepasst laufen lassen?
 +  * OctoPrint-InfluxDB → Logging auf log(?)
 +  * OctoPrint-Thingiverse
 +  * OctoPrint-TranslateModel → A plugin to move models around without re-slicing.
 +  * Preheat Button → Automatically preheat to the printing temperature of the current gcode file
 +  * Printer Statistics und/oder PrintJobHistory
 +  * Procastinator → Erst zu einer bestimmten Zeit drucken
 +  * Stateful Sidebar → Stellt die Sidebar beim nächsten Login in den alten Zustand
 +  * TemperatureLegendMover → Legende für den Temperatur an eine nettere Stelle verschieben
 +  * ChangeFilament → Unterstützt den Filament-Wechsel
 +
 +==== Lokales Touch-Screen mit Octodash ====
 +
 +[[https://unchartedbull.github.io/OctoDash/index.html|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.
 +
 +<code>
 +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
 +</code>
 +
 +  * Im Web-Interface von Octoprint einen API-Key für Octodash erzeugen.
 +  * In Octoprint in der Konfig für das API die Funktion CORS erlauben.
 +  * Beim ersten Start von Octodash keine der angebotenen URLs nehmen, sondern manuell http://127.0.0.1:5000 eingeben.
 +  * API-Key manuell eintragen.
 +
 +Hakeleien beim Einrichten:
 +
 +  * In zusammengeschraubtem Zustand passen Raspi und Display nicht ins Gehäuse. Lösung: Vor Ort, im Gehäuse zusammen schrauben.
 +  * Mit Display brach die Versorgungsspannung ein. Lösung: Eine eigene Versorgung des Displays mit einem eigenen USB-Kabel.
 +  * Das Display stand auf dem Kopf. Lösung: In /boot/config.txt die Zeile “lcd_rotate=2” einfügen.
 +  * Die GUI-Knöpfe für vor-zurück waren vertauscht. Lösung: In den Einstellungen des Octodash-GUI lassen sich die Achsen invertieren.
 +  * ☑ Eine Halterung, die das Display in angenehmer Höhe bereit hält.
 +
 +====== Slicer ======
 +
 +===== Cura =====
 +
 +===== In Debian =====
 +
 +Cura ist in Debian nur in ziemlich alter Version 4.13 enthalten ([[https://tracker.debian.org/pkg/cura|aktuelle Debian-Lage]]): sudo apt install cura
 +
 +  * Auf github gibt es ein [[https://github.com/fieldOfView/Cura-OctoPrintPlugin|Octoprint-Plugin]] für Cura. Das Plugin muss nach [[file:///usr/lib/cura/plugins|/usr/lib/cura/plugins]] kopiert werden.
 +  * Der Leapfrog Creatr kommt im Menü nicht vor. Aber man kann ihn [[http://support.lpfrg.com/support/solutions/articles/11000085123-how-to-configure-cura-leapfrog-creatr-3d-printer|mit diesen Parametern]] als “Custom FFF Printer” einbinden.
 +  * In den Preferences des FFF-Printers → Connect_OctoPrint
 +    * Eine Zeile für den Leapfrog erzeugen
 +    * Click auf “request” bei API-Key → Nach Login in OctoPi wird der oben erzeugte API-Key übertragen
 +    * Eventuell: edit → Port_Number: 443
 +    * Eventuell: Show_reverse_proxy_options → Haken bei “Use_HTTPS”, “user name” und “password” freilassen
 +    * close → Wenn der Drucker läuft, sollte er automatisch erkannt werden.
 +  * Im “Marketplace” gibt es ein Plugin, mit dem FreeCAD-Modelle importiert werden können (müssen die Endung ‘.fcstd’ haben)
 +
 +==== Cura selber bauen ====
 +
 +Noch nicht ausprobiert: https://github.com/Ultimaker/Cura/wiki/Running-Cura-from-Source
 +
 +==== Cura als Appimage ====
 +
 +[[https://appimage.github.io/Cura/|Appimage von github]]
 +
 +===== Prusa Slicer =====
 +
 +Ist ganz normal in Debian enthalten.
 +
 +==== Empfehlenswerte Einstellungen in Prusa-Slicer ====
 +
 +  * Das Project Notebook von Bob George erzählt, [[https://muppetlabs.co/3dprinting_prusaslicer.html|wie die diversen Konfigurationen zusammenarbeiten]]
 +  * Vorschau-Bild in Octoprint: [[https://forum.prusa3d.com/forum/prusaslicer/guide-config-prusaslicer-to-send-print-to-octoprint-on-button-press-including-proper-limited-api-permissions-and-key/|Anleitung im Prusa-Forum]]
 +  * Avoid crossing perimeters
 +  * Druckobjekt automatisch zentrieren: Configuration → Preferences → General → Auto_center_parts
 +  * Automatisches Slicing im Hintergrund: Configuration → Preferences → General → Background_Processing
 +  * Einstellungen in einem eigenen Fenster: Configuration → Preferences → GUI → Layout_Options = Settings_in_non_modal_window
 +  * Weniger raumgreifende Icons: Configuration → Preferences → GUI → use_custom_sized_icons ankreuzen. Dann Toolbar_icon_size = 60%
 +  * Travel und Retractions im Vorschaubild anzeigen lassen → Option unten im Vorschaubild
 +
 +==== Settings ====
 +
 +  * Settings-Level: “advanced” oder “expert”
 +
 +=== Print Settings ===
 +
 +  * Layers and Parameters → Quality → Avoid_crossing_perimerters = true
 +  * Skirt and Brim → Skirt → Loops = 3
 +  * Skirt and Brim → Skirt → Minimal_filament_extrusion_length = 50 mm
 +  * Skirt and Brim → Brim → Brim_type = Outer_brim_only
 +  * Output_options → Output_filename_format = KaiMartin_[input_filename_base].gcode (Offizielle Liste der möglichen Variablen: https://help.prusa3d.com/de/article/liste-der-platzhalter-variablen_205643 )
 +  * Notes → Spezialitäten des jeweiligen Einstellungs-Satz
 +
 +=== Mit Octoprint verbandeln ===
 +
 +https://forum.prusa3d.com/forum/apiprusaslicer/guide-config-prusaslicer-to-send-print-to-octoprint-on-button-press-including-proper-limited-api-permissions-and-key/
 +
 +==== Noch Anschauen: ====
 +
 +  * Configuration Snapshots
 +
 +====== Firmware ======
 +
 +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%%''
 +
 +==== G-Code ====
 +
 +Katalog der Marlin-Befehle: https://marlinfw.org/meta/gcode/
 +
 +  * Zieltemperatur des Extruders auf 200°C einstellen: ''%%M104 S200%%''
 +  * Zieltemperatur des Betts auf 60°C einstellen: M140 S60
 +
 +===== PID einstellen =====
 +
 +  * Doku zu autotune: https://marlinfw.org/docs/gcode/M303.html
 +  * Quick-Guide: https://oddity.oddineers.co.uk/2020/03/29/a-quick-guide-to-pid-tuning-with-marlin/
 +
 +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
 +
 +===== Nach dem Druck den Kopf wegfahren =====
 +
 +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)
 +<code>
 +; 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
 +</code>
 +
 +===== Nicht zu viel und nicht zu wenig =====
 +
 +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%
 +
 +===== Lochdurchmesser =====
 +
 +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
 +
 +===== Geometrische Kalibrierung =====
 +
 +https://www.youtube.com/watch?v=dbWAhb40kG4
 +
 +====== Zertifikate einbauen ======
 +
 +=== auf afs1 als root ===
 +
 +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
 +
 +=== auf leapfrog als pi ===
 +
 +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:
 +
 +<code ini>
 +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
 +</code>
 +
 +====== LDAP in Gang bringen ======
 +
 +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''
 +
 +==== Defektes Plugin ====
 +
 +Nach Upgrade von Octoprint scheiterte das LDAP-Plugin und zieht die User-Verwaltung mit herunter.
 +
 +→ https://github.com/geneb/OctoPrint-Delta-Calibration/issues/
 +
 +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''
 +
 +====== Empfehlenswerte Einstellungen ======
 +
 +===== Cura =====
 +
 +==== Plugins ====
 +
 +  * “FreeCAD integration” / “Inventor integration” / “Solid Works integration”: Je nach bevorzugtem CAD-System
 +  * “OctoPrint Connection”: Um direkt von Cura aus den Octoprint auf leapfrog.iqo.uni-hannover.de ansprechen zu können
 +  * “Printjob naming”: Ein eigener Präfix für die Gcode-Datei
 +
 +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.
 +
 +  * “Settings Guide”: Ausführliche Beschreibung der diversen Optionen
 +
 +==== Slicer-Optionen ====
 +
 +  * Material / Printing_Temperature: 205 °C
 +  * Material / Printing_Initial_Layer: 215 °C
 +  * Material / Build_Plate_Temperature: 60 °C
 +  * Material / Build_Plate_Initial_Temperature: 70 °C
 +  * Speed / Print_Speed: 40 mm/s
 +  * Speed / Enable_Acceleration_Control: yes
 +  * Speed / Print_Acceleration: 1000 mm/s²
 +  * Speed / Enable_Jerk_Control: yes
 +  * Speed / Print_Jerk: 10 mm/s
 +
 +====== Thingiverse und Multiverse ======
 +
 +  * https://www.thingiverse.com
 +  * [[https://www.youmagine.com/|youmagine]]
 +  * [[https://pinshape.com/|pinshape]]
 +  * [[https://cults3d.com/|cults]]
 +  * [[https://www.prusaprinters.org/|prusaprinters]]
 +  * [[https://nasa3d.arc.nasa.gov/models|nasa]]
 +
 +====== Youtube-Helden ======
 +
 +  * [[https://yewtu.be/channel/UCfeX8-nWEFO3ShEahxXebng|EddieTheEngineer]]
 +  * [[https://yewtu.be/channel/UCQB3-0PIEN_wn-932h0LNOw|MirageC]] → HeVort
 +  * [[https://yewtu.be/channel/UCECzwRUtrgP9lZ2tW37NIaw|Pro 3D]] → Valkyrie
 +  * CNC-Kitchen
 +  * SecKit → [[https://seckit3dp.design/|SK-Tank]]
 +  * [[https://yewtu.be/channel/UCWzwWRhTU1AGjs8Trek5ckw|Wes Cherry]] → [[https://github.com/CroXY3D/CroXY|CroXy]]
 +  * [[https://yewtu.be/channel/UCbq8gmKHhfbplwSLyjS6mBw|Annex Engineering]] → K3, Tycho
 +  * [[https://yewtu.be/channel/UCaNh1YtSETrKihL8DitpFig|Nathan builds robots]]
 +  * My Tech Fun → Eigenschaften von verschiedenem Druck-Materialien
 +
 +====== Besondere Drucker ======
 +
 +  * [[https://vorondesign.com/voron2.4|Voron 2.4]] → CoreXY [[https://www.3djake.de/suche?keyword=Voron|bei 3Djake]] oder [[https://voron.at/produkt/voron-2-4/|bei Printer Cave]]
 +  * [[https://ratrig.com/v-core3default.html|Ratrig V-core]]
 +  * [[https://meltbro.de/vzbot/|VZbot]] → schnellster CoreXY [[https://meltbro.de/vzbot/|bei Meltbro]]
 +  * [[https://github.com/Annex-Engineering/Gasherbrum-K3|Annex Engineering K3]] → crossed gantry - wie Ultimaker
 +  * [[https://peopoly.net/products/magneto-x|Peopoly Magneto X]] → erster 3D-Drucker mit Linearmotoren
 +  * [[https://tesseracttechnologies.com/|Tesseract Technologies]] → zweites Projekt mit Linearmotoren
 +  * [[https://3dprintersforants.com/|3D-printers-for-ants]] → Verschiedene Mini-Drucker. Besonders interessant: “Dueling Zero”
 +
 +====== Tolle Antriebe ======
 +
 +[[https://www.reddit.com/r/robotics/comments/lc4hk5/is_there_a_cheapos_equivalent_to_an_odrive/|reddit-Disk über Alternativen zu odrive]]
 +
 +  * [[https://mjbots.com/|moteus]] → 600 USD für ein Developer-Kit mit Motor
 +  * [[https://odriverobotics.com/|odrive]] → 200 € pro Driver. Leider nicht mehr wirklich Open Source
 +  * [[https://tinymovr.com/en-de/collections/controllers-and-kits|tinymovr]] → 200 USD für ein Developer-Kit mit Motor
 +  * [[https://simplefoc.com/simplefoc_shield_product_v2|simplefoc]] → Servomotor mit Arduino
 +  * [[https://github.com/atopile/spin-servo-drive|spin-servo-drive]] → superfrisch. Ziele: 50 USD pro Motor. Servomotor für Klipper. Nutzt statt Schaltplan die Spezialprogrammiersprache [[https://atopile.io/|atopile]]
 +
 +====== Filamente ======
 +
 +===== Höhere Temperatur =====
 +
 +Es gibt Filamente, die sich “normal” drucken lassen, die aber erst bei höherer Temperatur weich werden.
 +
 +  * [[https://www.extrudr.com/de/materialien/greentec-pro/|GreenTec Pro]] → “temperaturbeständig bis 160 °C”. Etwa 60 €/kg
 +  * [[https://3dk.berlin/de/3dktop-hitzebestandig/195-3dktop-schwarz-hitzebestaendig-bis-230c.html#/xdurchmesser-1_75mm/einheiten_fur_175mm-1000g|3dktop]] → muss bei 110 °C getempered werden. Danach “hitzebeständig bis 230 °C”. Etwa 90 €/kg
 +
 +===== Öko =====
 +
 +[[https://www.3dnatives.com/de/feature-story-3d-druck-material-pla-nachhaltig-230720191/|Wie nachhaltig ist PLA Filament wirklich?]]
 +
 +  * [[https://www.3djake.de/formfutura/reform-rpla-turkish-blue?sai=12523|Formfutura ReForm]] → PLA aus Extrusionsresten hergestellt, Rollen bis 4.5 kg, etwa 20 €/kg
 +  * [[https://www.extrudr.com/de/materialien/greentec-pro/|GreenTec Pro]] → “hergestellt aus erneuerbaren Rohstoffen”, Rollen bis 2.5 kg, etwa 60 €/kg
 +  * [[https://filament2print.com/de/spezial-pla/1284-polyterra.html|PolyTerra]]
 +  * Einige Auswahl [[https://filament2print.com/de/242-bio-nachhaltig|bei filament2print]]
 +
 +===== Filament-Trockner =====
 +
 +==== Fertigkauf ====
 +
 +  * Printdry [[https://www.printdry.com/product-category/dryer-pro/|Dryer Pro]] (in Europa bei [[https://shop.bfi-it.de/zubehoer-ersatzeile/weitere-marken/printdry/|bfi-it]], [[https://filament2print.com/gb/35_printdry|filament2print]], [[https://www.makerpoint.nl/en-gb/search?q=printdry|Makerpoint]] und über Amazon [[https://www.amazon.de/PrintDry-Filamenttrockner-PRO3-ultimative-integrierter/dp/B0BPYXZSVK|erhältlich]]) → Die [[https://www.printdry.com/wp-content/uploads/2020/01/IMG_7553wsc-600x600.jpg|Erweiterungskiste]] kann Spulen bis ø300mm aufnehmen. Heizt nur(?). Eher teuer.
 +  * [[https://shop.eibos3d.com/collections/eibos-prodect/products/pre-order-eibos-3d-filament-dryer-polyphemus|Eibos Polyphemus]] heizt, lüftet und dreht die Spule. Maximaler Durchmesser der Spule ist 250 mm.
 +  * Sunlu hat bei [[https://www.sunlu.com/de-de/products/sunlu-filadryer-s4?variant=46634040787226|neueren Modellen]] Lüfter eingebaut. Kauf vermutlich am ehesten [[https://www.amazon.de/SUNLU-4-Spool-Trocknung-automatische-Feuchtigkeitsregelung-Aufbewahrungsbox/dp/B0CPLT4YGG/ref=sr_1_2?crid=3FOCIGNNFGBSM&dib=eyJ2IjoiMSJ9.SSveK5ZWo6ZZl6Yr-92zhRZIpqkkbB-H6IceW6AJWxlNwrxhIC41rOSDMy7jvFGgDjcEujCk5R-Jl-2-8uscnSi9qGr-XGZ-pZf7Kdsvoczf9JqMp9LbTU1JF1WyYtg2Y_urw6x3-rq2g2AVmzoHjQPEXiiVS5qlAMld365BdS1ONMSmsGgMCDO8GafMA1sErctne3kxR86llzoqhtWLQszJ9uqo4ER-qC73kOgHhmDjpt3TQSSccKCmRFsPyQ83wBscl88D1pnXlThTpAMr1b7oCZGKFbup4MTh2M_7ygg.3FfgXdIuhS7QUEO3dKDWjQSiKfT8LKcOTfF1rlFoONE&dib_tag=se&keywords=sunlu+filament+dryer&qid=1711376535&sprefix=sunlu+filament+dryer%2Caps%2C102&sr=8-2|über Amazon]]. → Maximal 1 kg-Spulen.
 +
 +==== Eigenbau ====
 +
 +  * Tipp von [[https://richrap.blogspot.com/2018/02/diy-heated-drybox-for-3d-printing.html|richrap.blogspot]]: Ein einstellbarer Heizer, der normalerweise für Reptilien gedacht ist.
 +
 +===== Trocken-Lagerung =====
 +
 +  * Printdry [[https://www.matterhackers.com/store/l/printdry-filament-storage-vacuum-sealed-package-of-5/sk/MZK6ZEMP|Dose mit Pump-Ventil und Druck-fast-ausgleich]] (bei Amazon erhältlich)
 +  * Ansonsten die üblichen, halbwegs luftdichten Plastikschüsseln.
 +
 +====== Betthaftung ======
 +
 +  * Tipp aus einem Kommentar zu einem [[https://www.youtube.com/watch?v=9-6tIkTrcwA|Makers Muse Video]]: PVP-K30 in Isopropanol auflösen. Verhältnis 1:18, 5 Minuten lang umrühren. Erhältlich bei [[https://www.sigmaaldrich.com/DE/de/product/sial/81420|als 81420 bei Sigma-Aldrich]]
 +
 +====== Upgrade-Schmerzen ======
 +
 +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 <html><code></html>octoprint.log<html></code></html> and <html><code></html>plugin_softwareupdate_console.log<html></code></html> for details.”
 +
 +
 ===== Backup ===== ===== Backup =====
 ==== Clone the SD card ==== ==== Clone the SD card ====
-A clone of the SD card provides the most comprehensive backup possible.   +A clone of the SD card provides the most comprehensive backup possible. 
-Instructions on [[https://beebom.com/how-clone-raspberry-pi-sd-card-windows-linux-macos/|Howto clone raspberry pi]] are available at beebom.com +   
 +Instructions on howto clone raspberry pi are available in [[https://ep.gnt.md/index.php/how-to-clone-raspberry-pi-sd-card-on-linux-and-shrink-it-to-actual-size/|this blog]]. 
 ==== Octoprint-Configuration ==== ==== Octoprint-Configuration ====
 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. [[https://docs.octoprint.org/en/master/bundledplugins/backup.html|Howto use the backup facility]] in the octoprint documentation. 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. [[https://docs.octoprint.org/en/master/bundledplugins/backup.html|Howto use the backup facility]] in the octoprint documentation.
Line 9: Line 483:
 List of available configurations: List of available configurations:
   * {{ :3d-druck:leapfrog-admin:octoprint-backup-20230106-192754.zip |2023-01-06}}   * {{ :3d-druck:leapfrog-admin:octoprint-backup-20230106-192754.zip |2023-01-06}}
 +
 +==== Automatic Backup ====
 +The tool [[https://www.linux-tips-and-tricks.de/en/backup|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.