Infrastruktur

Mamba 3D

FIXME

Netzwerk
IPv4172.23.195.37
IPv62001:470:1f15:156::37
Hostnamemamba3d
Switch?
Port?
Dose

3D-Drucker nach dem FDM-Verfahren. Spende von Rechenkraft.net e.V.-Mitglied Tim an den Verein.

Vorläufige Ansprechpartner*innen: Oleander, Felix, Michael, Tim, binbash.

Slic3r-Config-Bundle unbedingt neu laden! Dieser Drucker hat jetzt automatisches Bed-Leveling, zu dem der Drucker vor dem Druck angewiesen werden muss. Drucker kann bei Nichtbeachtung kaputt gehen!

ToDo

  • Stepper-Strom prüfen?
  • Beschleunigung auf x- und y-Achse limitieren (z.B. in Slic3r) um Wackeln des Druckers zu vermeiden
  • Mehr an Haftungsrelevanten Parametern herumspielen
    • (First-level)-Hotend-Temperatur
    • Heatbed-Temperatur
      • 60° sind meist ok
    • z-Offset
      • Min. -0.1, sonst schleifts!
    • First-level-speed
  • Extruder + Nozzle sind gereinigt, trotzdem immer wieder unsaubere Ebenen
    • Nachschub an Filament unsauber?

How To Print

  1. Steckdosenleiste auf dem Tisch einschalten und Steuer-Computer per Druck auf den Ein- und Ausschalter (rund und zentral auf Front) starten.
  2. Etwa eine Minute später Octoprint unter https://mamba3d.hsmr.cc/ aufrufen.
  3. Filament einlegen
    1. Heizung des Extruders auf Filament einstellen (Octoprint kennt bereits passende Presets, z.B. 205 °C für unser PLA)
    2. Zwei passende Reduzierstücke in die Spule einsetzen.
    3. Rohr des Halters entnehmen, in Spule stecken und fixieren.
    4. Bei Bedarf mit Seitenschneider den Strang glatt abschneiden.
    5. Filament-Strang auf der Front des Druckers zum Extruder führen.
    6. Hebel am Extruder betätigen und Filament-Strang zwischen den Rollen vorbei in das weiße Röhrchen einführen. Den Extruder dabei mit der Hand stützen, um die Belastung des Rahmens zu reduzieren.
    7. Hebel loslassen und sicherstellen, dass Filament-Strang mittig in den Transport-Rollen läuft.
      • Die gerändelte Transportrolle muss frei von Filamentabrieb sein. Sollte dies nicht der Fall sein, sollte sie Rille für Rille mit einem spitzen Gegenstand (Lötbesteck) gereinigt werden.
    8. In Octoprint in einigen 1mm-Schritten extrudieren, bis Plastik-Wurst aus der Düse kommt.
    9. Pastik-Wurst entfernen.
    10. Heizung abschalten.

Slicing

Im Slicer sollte die Temperatur gemäß Temperatur-Tabelle der Filamente oder Datenblatt des Filaments eingestellt werden. (FIXME: Temperatur-Test-Druck-Dings)

Slic3r

  1. Attach:Mamba3D-Slic3r_config_bundle.ini herunterladen und als Config Bundle in Slic3r importieren.
  2. Im Plater-Tab über die Add-Schaltfläche 3D-Modell laden.
  3. Ggf. Einstellungen anpassen.
  4. Über Export G-Code-Schaltfläche den G-Code lokal abspeichern.

Cura

  1. Attach:Mamba3D_Cura.ini herunterladen und mittels "Open Profile" in Cura öffenen. Achtung, experimentell. Muss angepasst werden auf Automatisches Bed-Leveling!

Drucken mit Octoprint

Wenn die Kamera im Control-Tab nicht funktioniert, Schalter an DSLR in Off-Position und nach ca. fünf Sekunden wieder in On-Position bewegen. Wenn dies nicht hilft, überprüfen, ob eins sich in hsmr_5ghz befindet oder per Kabel angebunden ist. Kamera braucht 40 Mbit/s!

  1. Spitze unter „Control“ manuell in z-Richtung hochfahren.
  2. Ebenfalls im Tab „Control“ in die maximal positive y-Richtung und in maximal negative x-Richtung fahren.

{# Klebestift auf zu bedruckende Fläche sowie rechte untere Ecke des Printbeds auftragen (direkt neben der Schraube).}

  1. .gcode-Datei in Octoprint laden und drucken.
  2. Es wird zuerst ein Test-Blob links unten abgesetzt. Dieser muss, sollte er nicht auf dem Printbed haften, fix mit einer Pinzette entfernt werden.

Druck von Bed abnehmen

Das Lösen des Druckes vom Bed sollte erst nach vollständigem Abkühlen erfolgen und kann etwas Zeit in Anspruch nehmen. Helfen kann ein Spatel oder eine Plastikkarte. In keinem Falle sollten scharfkantige Objekte verwendet werden. Den ersten Test-Blob links unten in Richtung des Randes entfernen um ein Ablösen des BuildTaks an dieser Ecke zu vermeiden.

Reinigung

Sollten nach dem Ablösen des Objekts Filamentrückstände verbleiben, so sollten diese mit Spatel, Plastikkarte oder Fingernagel vorsichtig abgelöst werden. Da Staub und Fingerabdrücke die Haftung beeinflussen können empfiehlt sich eine regelmäßige Reinigung mit Isoprop (braune Glasflasche) und Papiertuch.

Andere Lösungsmittel außer Wasser und Isoprop dürfen nicht verwendet werden, da sie die Druckfläche schädigen können!

Sollten sich Filamentrückstände nicht lösen lassen, da beispielsweise die Düse zu nah am Druckbett war, so sollte das Druckbett auf etwa 100°C (Verbrennungsgefahr!) erwärmt werden. Das Filament kann i.d.R. nun an einer Stelle angehoben und wie Kaugummi in einem flachen Winkel abgezogen werden.

Filament entfernen

  1. Heizung des Extruders auf Filament einstellen (Octoprint kennt bereits passende Presets, z.B. 205 °C für unser PLA)
  2. Hebel am Extruder betätigen und Filament-Strang ggf. mit etwas Kraft gerade nach oben aus dem Röhrchen ziehen. Den Extruder dabei mit der Hand stützen, um die Belastung des Rahmens zu reduzieren.
  3. Mit Seitenschneider den Strang glatt abschneiden.
  4. Heizung abschalten.
  5. Filament in dafür vorgesehenen, luftdichten Eimer oder Box legen und Deckel schließen.

Timelapses

In Octoprint können über den Tab Timelapse Zeitraffer-Aufnahmen der Druckvorgänge heruntergeladen werden.

Abschalten

Wenn alle Druckjobs erledigt sind, bitte den Steuer-Computer per kurzem Druck auf den Ein- und Ausschalter (grün leuchtend, rund und zentral auf Front) oder aus Octoprint heraus herunterfahren. Danach die Steckerleiste auf dem Tisch ausschalten.

Gemeinschafts-Filament

Das Filament kann von allen genutzt werden und wurde von Leuten privat eingekauft. Haltet euch daher bitte an die Preisvorgabe. Das Filament kostet 2 Cent je Gramm. Nach dem Druck wiegt ihr bitte das was ihr verdruckt habt. Inklusive Stützmaterial und allem anderen. Umso genauer, desto besser. Denn dann kann wieder neues Filament besorgt werden und steht für alle zur Verfügung.

Nach dem Wiegen zahlt ihr bitte den entsprechen Geldbetrag in die Kasse ein.

4 Cent ≙ 1 g ≙ 0,8 cm³

Bitte das Filament wieder zurück in die entsprechende Behältnisse und die Sachen wieder in den Schrank zurück.

Im Wiki gibt es unter Sammelbestellungen eine Liste von Lieferanten. Wenn ihr Wünsche habt, tragt diese bitte dort ein. Es wird versucht sich zeitig darum zu kümmern.

Temperaturen

Je nachdem mit welchem Filament gedruckt wird müssen ein paar Einstellungen angepasst werden.

MarkeFarbeTemperatur
ColorFabbegal195 °C
SIENOCFlourecent Rose Red205 °C (+- 5°C)
SIENOCTransparent205°C (+-5°C)
SIENOCTransparent Red205°C (+-5°C)
SIENOCGold205°C (+-5°C)
KaisertecTannengrün?
KaisertecOrange?
KaisertecSchwarz?
KaisertecWeiß?
KaisertecNavy?

Aufbau

8 h liebevolle Arbeit

Techn. Dokumentation zum Drucker

Controller

Ist ein Minitronics 1.0 mit angepasster Marlin-Firmware. Durch das neue E3D-v6 Hotend hätte es sein können, dass die Firmware nach Herstellerinformationen angepasst werden muss, die dort angemerkte Anpassung ist allerdings bereits in der oben verlinkten angepassten Marlin Firmware genau so vorhanden.

Extruder/HotEnd

Das Hotend ist ein E3D-v6 1.75mm Universal mit höherer Leistung als das ursprünglich im Mamba 3D verbaute HotEnd (30W statt 25W). Dieses Hotend kann theoretisch 295°C erreichen, was allerdings vermieden werden sollte, da diese Temperaturen den Temperatursensor im HotEnd beschädigen können. Höchsttemperatur die sicher verwendet werden kann sind ca 285°C. Praktisch liegt dieser Wert niedriger, da der Drucker neustartet, sobald ein gewisser Wert vom Temperatursensor überschritten wird (ca 275°C).

PID-Tuning

Um die Ansteuerung des HotEnds durch die Firmware zu verbessern sollte das sogenannte PID Tuning gemacht werden. Alternativ hier eine Anleitung in Textform. Anmerkung: Dies kann/sollte für ein (zukünftiges) Hotbed auch getan werden.

Außerdem: NIEMALS am HotEnd drehen. Erst gesamten Extruder ausbauen und dann sehr vorsichtig die Aufbauanleitung von E3D Rückwärts befolgen.

PID-Kalibration erfolgte in 10 Zyklen bei 205°C. Da M500 zum speichern auf den EEPROM nicht zu funktionieren scheint wurde temporär ein "M301 P27.38 I2.61 D71.78" in den "before print job starts"-Einstellungen hinzugefügt um unsere PID-Werte einzurichten.

Hotbed

Hotbed ist eine verklebte Gummimatte mit 200W Heizleistung. Der Thermistor hat einen Nennwiderstand von R25°C = 100 kΩ und einen Temperatur-Koeffizient (Beta-Konstante) von B25/50 = 3950 K ± 1%. Marlin wird dafür in Version 1.1.0 die Tabelle 11 (QU-BD silicone bed QWG-104F-3950 thermistor) liefern. Diese haben wir derzeit backported.

Maximale erkennen

X-Achse

Rollen, auf denen sich der Extruder bewegt, stoßen links oder rechts an den Rahmen. Anmerkung: Der für die 0-Stellung der X-Achse zuständige Schalter ist an nicht mehr vollständig geraden Pins auf der Platine befestigt. Sollte dieser nicht mehr funktionieren, sollte hier ggf nachkorrigiert/gelötet werden. Zum momentanen Zeitpunkt (14.12.2016) funktioniert (noch) alles wie es soll.

Y-Achse

Die Rollen auf dem zur Y-Achse parallel verlaufendem Profil fahren an ein Blech auf der von vorne betrachtet rechts liegenden Seite auf.

Z-Achse

Hinterer Bereich des Extruders (Filament-Transprt-Motor) schlägt am oberen Teil des Rahmens an. Im Minimal stößt die Nozzle an das Druck-Bed.

Techn. Dokumentation des Octoprint-Setups

Grundsystem

ArchLinux auf einem Dell Optiplex 745 Tower mit 160 GB großer Festplatte und $genug RAM. Auf der Festplatte ist ein MBR und ein einziges ext4, welches / bildet. Bootloader ist GRUB.

Octoprint

octoprint (AUR)

# systemctl enable octoprint
$ echo "octoprint ALL=(ALL) NOPASSWD: /usr/bin/systemctl poweroff,/usr/bin/systemctl halt,/usr/bin/systemctl reboot,/usr/bin/systemctl restart octoprint" | sudo tee -a /etc/sudoers

/var/lib/octoprint/.octoprint/config.yaml

accessControl:
  salt: [snip]
api:
  key: [snip]
appearance:
  name: Mamba 3D
feature: {}
gcodeViewer: {}
plugins:
  cura:
    cura_engine: /usr/share/cura/CuraEngine
    debug_logging: true
  discovery:
    upnpUuid: bb97356d-b927-4444-94ec-f6a1560e2294
  softwareupdate:
    _config_version: 4
    checks:
      octoprint:
        checkout_folder: null
        prerelease: false
        prerelease_channel: null
printerParameters: {}
printerProfiles:
  default: mamba3d
  defaultProfile: {}
serial:
  autoconnect: true
  baudrate: 115200
  maxCommunicationTimeouts: {}
  port: /dev/ttyUSB0
  timeout: {}
server:
  commands:
    serverRestartCommand: sudo systemctl restart octoprint
    systemRestartCommand: sudo systemctl reboot
    systemShutdownCommand: sudo systemctl poweroff
  firstRun: false
  host: 127.0.0.1
  secretKey: [snip]
system:
  actions:
  - action: shutdown
    command: sudo systemctl poweroff
    confirm: You are about to shutdown the system.
    name: Shutdown
  - action: reboot
    command: sudo systemctl reboot
    confirm: You are about to reboot the system.
    name: Reboot
  - action: restart
    command: sudo systemctl restart octoprint
    confirm: You are about to restart Octoprint.
    name: Restart Octoprint
temperature:
  profiles:
  - bed: '50'
    extruder: '195'
    name: PLA
webcam:
  ffmpeg: /usr/bin/ffmpeg
  ffmpegThreads: 2
  snapshot: /webcam/?action=snapshot
  stream: /webcam/?action=stream
  watermark: false

/var/lib/octoprint/.octoprint/printerProfiles/mamba3d.profile

axes:
  e:
    inverted: false
    speed: 1500
  x:
    inverted: false
    speed: 9000
  y:
    inverted: false
    speed: 9000
  z:
    inverted: false
    speed: 150
color: default
extruder:
  count: 1
  nozzleDiameter: 0.4
  offsets:
  - - 0.0
    - 0.0
heatedBed: false
id: mamba3d
model: Mamba3D
name: Mamba3D
volume:
  depth: 200.0
  formFactor: rectangular
  height: 200.0
  origin: lowerleft
  width: 200.0

CuraEngine

cura-not-so-old (AUR)

Caddy

caddy-full-bin (AUR)

# systemctl enable caddy

/etc/caddy/Caddyfile

mamba3d.hsmr.cc
proxy / 127.0.0.1:5000 {
	websocket
	transparent
	header_upstream X-Scheme {scheme}
	header_upstream X-Forwarded-Host {host}
}

proxy /webcam 127.0.0.1:8080 {
	transparent
	without /webcam
}

MJPG-Streamer

mjpg-streamer (AUR)

# usermod -aG video octoprint

/etc/systemd/system/mjpg-streamer.service

[Unit]
Description=MJPG Streamer
StopWhenUnneeded=true

[Service]
User=octoprint
Group=octoprint
Type=simple
Restart=on-failure
ExecStart=/usr/bin/mjpg_streamer -i "input_ptp2.so" -o "output_http.so -p 8080 -n"

[Install]
WantedBy=multi-user.target

/etc/udev/rules.d/10-mjpg-streamer.rules

ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="317b", ENV{ID_GPHOTO2}="1", ENV{GPHOTO2_DRIVER}="PTP", MODE="0660", GROUP="video", TAG+="systemd", ENV{SYSTEMD_WANTS}="mjpg-streamer.service"