meta data for this page
This is an old revision of the document!
Leapfrog Administration
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.
Motherboard
Auf der Seite von Leapfrog gibt es eine Übersicht über die Anschlüsse des Motherboards:
Frosch-Icon
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 erhältlich bei Keiper oder Continental Synchroflex bei Zahnriemen24.de
- Üblich ist die Teilung GT2. Endlose Riemen gibts bei roboterbausatz.de . Geschlossene Riemen verkauft robotdigg
- Bei Thingiverse gibt es einen Riemen-Spicer
OctoPi
OctoPi ist Octoprint auf einem RaspberryPi3
- Download von 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
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
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
sudo apt install vim sudo apt install locale sudo updatedb
WWW-Browser-Login
- 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
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.
Plugins
Settings → Plugin_Manager → Get_more oder https://plugins.octoprint.org/
installiert
- OctoPrint-LDAP → nicht im offiziellen Plugin-Repo, aber trotzdem funktional
- Auth LDAP → Login mit Institutscredentials
- 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
- Camera Settings → Kamera-Parameter einstellen
- Classic Webcam → Kompatibilität mit der “alten” Webcam-Technik
- Cura Thumbnails → Vorschaubilder von Jobs, die mit Cura erstellt wurden
- Dashboard → Eine Zusammenfassung im UI
- DeleteMoveAfterPrint → Löscht automatisch den Gcode nach n Tagen
- 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.
- DisplayZ → Höhe der Z-Achse anzeigen während der Drucker druckt
- HeaderAnnouncements → Ansagen für alle oben im Web-Interface
- OctoApp → Automatisches Login mit der Android-App OctoApp
- OctoDash Companion → Unterstützung für ein lokales Touch-Display
- Preheat Button → Ein Knopf zum Vorheizenm auf die im Gcode eingetragenen Temperaturen
- PrintTimeGenius → genauere Schätzung der verbleibenden Druckzeit
- Slicer Thumbnails → Vorschaubilder, die mit PrusaSlicer oder SuperSlicer erstellt wurden
- UI Customizer → Deutlich besseres Browser-UI auf Smartphones. Und auch auf dem Desktop ist das UI ein Stück angenehmer.
Auf jeden Fall ausprobieren
- ☐ 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
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
- 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 (aktuelle Debian-Lage): sudo apt install cura
- Auf github gibt es ein Octoprint-Plugin für Cura. Das Plugin muss nach /usr/lib/cura/plugins kopiert werden.
- Der Leapfrog Creatr kommt im Menü nicht vor. Aber man kann ihn 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
Prusa Slicer
Ist ganz normal in Debian enthalten.
Empfehlenswerte Einstellungen in Prusa-Slicer
- Das Project Notebook von Bob George erzählt, wie die diversen Konfigurationen zusammenarbeiten
- Vorschau-Bild in Octoprint: 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
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
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)
; 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
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
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:
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
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 scheitert das LDAP-Plugin und zieht die User-Verwaltung mit herunter.
→ https://github.com/geneb/OctoPrint-Delta-Calibration/issues/1 Eine gepatchte Version kann von der Kommandozeile aus 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
In Cura: Extensions → Custom_Printjob_Naming → Set_name_options 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
Youtube-Helden
- MirageC → HeVort
- Pro 3D → Valkyrie
- CNC-Kitchen
- SecKit → SK-Tank
- Annex Engineering → K3, Tycho
- My Tech Fun → Eigenschaften von verschiedenem Druck-Materialien
Besondere Drucker
- VZbot → schnellster CoreXY bei Meltbro
- Annex Engineering K3 → crossed gantry - wie Ultimaker
- Peopoly Magneto X → erster 3D-Drucker mit Linearmotoren
- Tesseract Technologies → zweites Projekt mit Linearmotoren
- 3D-printers-for-ants → Verschiedene Mini-Drucker. Besonders interessant: “Dueling Zero”
Tolle Antriebe
reddit-Disk über Alternativen zu odrive
- moteus → 600 USD für ein Developer-Kit mit Motor
- odrive → 200 € pro Driver. Leider nicht mehr wirklich Open Source
- tinymovr → 200 USD für ein Developer-Kit mit Motor
- simplefoc → Servomotor mit Arduino
- spin-servo-drive → superfrisch. Ziele: 50 USD pro Motor. Servomotor für Klipper. Nutzt statt Schaltplan die Spezialprogrammiersprache atopile
Filamente
Höhere Temperatur
Es gibt Filamente, die sich “normal” drucken lassen, die aber erst bei höherer Temperatur weich werden.
- GreenTec Pro → “temperaturbeständig bis 160 °C”. Etwa 60 €/kg
- 3dktop → muss bei 110 °C getempered werden. Danach “hitzebeständig bis 230 °C”. Etwa 90 €/kg
Öko
Wie nachhaltig ist PLA Filament wirklich?
- Formfutura ReForm → PLA aus Extrusionsresten hergestellt, Rollen bis 4.5 kg, etwa 20 €/kg
- GreenTec Pro → “hergestellt aus erneuerbaren Rohstoffen”, Rollen bis 2.5 kg, etwa 60 €/kg
- Einige Auswahl bei filament2print
Filament-Trockner
Fertigkauf
- Printdry Dryer Pro (in Europa bei bfi-it, filament2print, Makerpoint und über Amazon erhältlich) → Die Erweiterungskiste kann Spulen bis ø300mm aufnehmen. Heizt nur(?). Eher teuer.
- Eibos Polyphemus heizt, lüftet und dreht die Spule. Maximaler Durchmesser der Spule ist 250 mm.
- Sunlu hat bei neueren Modellen Lüfter eingebaut. Kauf vermutlich am ehesten über Amazon. → Maximal 1 kg-Spulen.
Eigenbau
- Tipp von richrap.blogspot: Ein einstellbarer Heizer, der normalerweise für Reptilien gedacht ist.
Trocken-Lagerung
- Printdry 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 Makers Muse Video: PVP-K30 in Isopropanol auflösen. Verhältnis 1:18, 5 Minuten lang umrühren. Erhältlich bei 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 octoprint.log
and plugin_softwareupdate_console.log
for details.”
Backup
Clone the SD card
A clone of the SD card provides the most comprehensive backup possible.
Instructions on howto clone raspberry pi are available in this blog.
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. Howto use the backup facility in the octoprint documentation.
List of available configurations:
Automatic Backup
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.