In einem früheren Artikel wurde gezeigt, wie der Delta-Drucker im manuellen Modus kalibriert wird. Aufgrund der Komplexität und Komplexität der Einstellungen wurde jedoch eine automatische Kalibrierung beschlossen. Da sich die endgültige Version in der Test- und Fertigungsphase befindet, möchten wir unseren Kunden und allen, die nach diesem Schema Drucker für sich selbst hergestellt haben, das Leben erleichtern. Als nächstes wird eine der Möglichkeiten zur Implementierung der automatischen Kalibrierung betrachtet.Es gibt viele Ansätze: Installieren einer einziehbaren Sonde an einem Ejektor mit einem Mikroschalter, FSR-Sensoren, einem Hallsensor usw. Diese Systeme haben jedoch einen erheblichen Nachteil: Sie messen den Abstand nicht zur Düse, sondern direkt zum Sensor. In einigen Fällen kann die Ausrichtung fehlschlagen (wenn sich der Sensor nicht anstelle der Düse befindet, kann die Geometrieberechnung verletzt werden. Ganz zu schweigen von der Genauigkeit). .Die ideale Option besteht darin, die Berührung der Düse selbst auf dem Tisch zu fixieren. Und hier können Sie auf zwei Arten vorgehen:- Erstellen Sie einen elektrischen Kontakt zwischen dem HotEnd und dem Effektor, sodass das HotEnd beweglich ist und den Kontakt öffnet (oder schließt), wenn Sie darauf klicken.
- Stellen Sie einen elektrischen Kontakt zwischen der Metalldüse und dem Tisch her.
Die erste Option ist komplizierter in der Herstellung und Stabilität der Arbeit, aber bei richtiger Konstruktion ergibt sich ein dauerhaft stabiles Ergebnis ohne zusätzliche Körperbewegungen.Die zweite Option ist weniger bequem zu verwenden, aber einfach zu implementieren. In den meisten Fällen ist eine Kalibrierung selten erforderlich und kann nach Bedarf durchgeführt werden.Wir werden über die zweite Methode sprechen:
Aus dem Tool, das wir brauchen:- Aluminium-Klebeband (in der Tat ist es Aluminiumfolie auf Klebebasis und nicht alle Arten von Verstärkungsbändern dort)
- „Krokodil“ - Um einen der Kontakte mit dem Hot-End-Metallgehäuse zu verbinden, können Sie im Prinzip mit jeder Büroklammer arbeiten oder das Drahtende durch Schrauben oder Löten befestigen (streng, aber effektiv).
- Büro Wäscheklammer
- Pin Block 2.54 zum Anschließen unseres improvisierten Sensors an die RAMPS 1.4-Karte (oder an den entsprechenden EndStop-Anschluss auf Ihrer Karte). Nur wenige Leute haben eine Crimpverbindung für die Montage solcher Blöcke, aber Sie können einen ähnlichen Block in der Computereinheit finden, indem Sie ihn vom „Hochtöner“ oder den Tasten entfernen.
- Lötzubehör ist es wünschenswert, ein aktives Flussmittel und einen weniger leistungsstarken Lötkolben zu haben.
- Drähte, ungefähr einen Meter.
Der einfachste Weg, eine stromleitende Schicht auf unsere Arbeitsebene (Glas) aufzubringen, war ein Aufkleber aus Aluminiumband. Es ist jedoch wichtig, ihn gleichmäßig zu kleben und zu glätten, damit ein elektrischer Kontakt zwischen den Bandstreifen besteht. Er wird elementar mit einem Multimeter auf „Klingeln“ überprüft.
Zum Umschalten sollten Sie auch einen Draht herstellen, wie zuvor beschrieben, eines der Enden in einen Block 2.54 drücken (oder daran löten). Die anderen beiden Enden werden mit Aluminiumband am Heizkörper des HotEnd und auf dem Tisch befestigt. Um zum Kühler zu kriechen, nehmen wir ein gewöhnliches Krokodil und löten eines der Enden des Drahtes daran. Ich empfehle, zur Erleichterung des Lötens Säure zu verwenden, obwohl ich es mit guter Erwärmung und gewöhnlichem Kolophonium geschafft habe, aber das zweite Ende kann auch mit dem Krokodil verlötet werden, aber in diesem Fall besteht die Möglichkeit, das Klebeband zu beschädigen wenn fixiert, und das Krokodil sollte groß genug sein. Wir haben wie folgt gehandelt: Nehmen Sie eine Büroklammer und reinigen Sie sie von Farbe (vorzugsweise von allen Seiten). Der wichtige Punkt hier istDamit wir einen Kupferdraht mit gewöhnlichem Lot (PIC 61) auf eine Metallwäscheklammer löten und für ein erfolgreiches Löten trotzdem ein aktives Flussmittel benötigen, haben wir gewöhnliche Orthophosphorsäure (Lötsäure) verwendet.
Das Folgende sind Fotos der Verbindung zur Karte und zum Drucker selbst. Die Enden der Kabel an unserem Drucker sind mit dem Z-max verbunden. In der Firmware muss der normale Zustand des Endschalters (unser Sensor, geschlossen oder offen) angegeben werden. Bei diesem Ansatz ist der Sensor im Normalzustand geöffnet.


Die Firmware mit automatischer Kalibrierung für Delta-Drucker kann hier abgerufen werden: Marlin Delta- Firmware mit automatischen Kalibrierungsupdates . RichCattell-Firmware-Einstellungen:Cohfiguration.h
#define AUTOCALIBRATION_PRECISION 0.03
#define BED_DIAMETER 170
const bool X_MIN_ENDSTOP_INVERTING = false;
const bool Y_MIN_ENDSTOP_INVERTING = false;
const bool Z_MIN_ENDSTOP_INVERTING = false;
const bool X_MAX_ENDSTOP_INVERTING = false;
const bool Y_MAX_ENDSTOP_INVERTING = false;
const bool Z_MAX_ENDSTOP_INVERTING = true;
Nachdem Sie die Kabel angeschlossen und die Druckerfirmware angepasst haben, müssen Sie die Kalibrierung selbst starten. Und hier ist ein sehr wichtiger Punkt, dass die Kalibrierung von einem Computer aus durchgeführt werden sollte, weil Der Drucker selbst führt diesen Vorgang nicht korrekt aus. Anscheinend ist nicht genügend Gerätespeicher vorhanden und die Kalibrierung endet irgendwo in der Mitte.Eines der Merkmale der automatischen Kalibrierung ist auch, dass der Algorithmus die Geometrieparameter nacheinander auswählt, was eine beträchtliche Zeit in Anspruch nehmen kann, insbesondere wenn die Geometrie stark beschädigt ist oder die Anfangsparameter nicht richtig eingestellt sind (zum Beispiel beträgt die Länge der Diagonalen 150 mm und tatsächlich 200 mm). und der Algorithmus mit einem gegebenen Schritt wiederholt die Kalibrierung bei jeder Iteration erneut, am Ende wird sie kalibriert, aber es wird diese nicht vorstellbare Zeit in Anspruch nehmenUm die automatische Kalibrierung zu starten, stellen Sie über USB eine Verbindung zum Drucker her und verwenden Sie das Pronterface-Programm. Es gibt drei Arten der Kalibrierung:- Der Befehl G30 - kalibriert Offsets - stellt im Wesentlichen die Höhe auf die Endschalter ein.
- Team G30A - kalibriert die gesamte Geometrie des Druckers, die Länge der Diagonalen, die Einkerbung der Endschalter (Höhe) und die Krümmung der Geometrie gemäß den „Tower“ -Türmen (höchstwahrscheinlich unterstützt der Drucker unterschiedliche Höhen).
- Team G29 - das sogenannte AutoBedLevel - automatische Kalibrierung der Tischkrümmung. Bei Delta-Druckern funktioniert dies am besten und beginnt unmittelbar vor dem Druckvorgang im ursprünglichen G-Code.
Dementsprechend sind die letzten beiden am relevantesten.Im Folgenden finden Sie eine Liste der Druckerkonsole ohne Erstkalibrierung und Neustart.Kurzes Kalibrierungsprinzip:- Überprüfen / Anpassen von Endstop-Offsets
- Delta Radius prüfen / einstellen
- Überprüfen von Turmgeometriefehlern
- Auswahl der diagonalen Länge> Überprüfen der Turmgeometrie> Abgleichen von EndStop-Offsets. Wenn sich die ersten beiden Parameter ändern, wird der dritte ausgewählt und der Zyklus wiederholt, bis alle drei Parameter erfüllt sind.
Auflistung der Erstkalibrierung - Iterationen von 4 bis 17 werden seitdem abgeschnitten es wiederholt die AktionConnecting...
start
Printer is now online.
echo:Marlin 1.0.0
echo: Last Updated: Jul 31 2015 11:09:21 | Author: (RichCattell, Prism Mini)
Compiled: Jul 31 2015
echo: Free Memory: 1753 PlannerBufferBytes: 1232
echo:Hardcoded Default Settings Loaded
echo:Steps per unit:
echo: M92 X100.00 Y100.00 Z100.00 E156.00
echo:Maximum feedrates (mm/s):
echo: M203 X200.00 Y200.00 Z200.00 E200.00
echo:Maximum Acceleration (mm/s2):
echo: M201 X9000 Y9000 Z9000 E9000
echo:Acceleration: S=acceleration, T=retract acceleration
echo: M204 S3000.00 T3000.00
echo:Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s), Z=maximum Z jerk (mm/s), E=maximum E jerk (mm/s)
echo: M205 S0.00 T0.00 B20000 X20.00 Z20.00 E20.00
echo:Home offset (mm):
echo: M206 X0.00 Y0.00 Z0.00
echo:Delta Geometry adjustment:
echo: M666 A0.000 B0.000 C0.000 I0.000 J0.000 K0.000 U0.000 V0.000 W0.000 R66.00 D154.00 H230.00
echo:Endstop Offsets:
echo: M666 X0.00 Y0.00 Z0.00
echo:Z-Probe Offset:
echo: M666 P X0.00 Y0.00 Z0.00
echo:PID settings:
echo: M301 P15.09 I0.75 D76.13
echo:SD init fail
Setting hotend temperature to 190.000000 degrees Celsius.
Setting bed temperature to 70.000000 degrees Celsius.
>>> g30 a
SENDING:G30 A
Starting Auto Calibration..
Calibration precision: +/-0.100mm
| Z-Tower Endstop Offsets
| -7.8500 X:0.00 Y:0.00 Z:0.00
| -5.2400 -8.5900 Tower Offsets
| -6.8400 A:0.00 b:0.00 C:0.00
| -3.7200 -8.0400 I:0.00 J:0.00 K:0.00
| -5.6900 Delta Radius: 66.0000
| X-Tower Y-Tower Diagonal Rod: 154.0000
Iteration: 1
Checking/Adjusting endstop offsets
x:-3.6800 (adj:-3.6800) y:-7.9600 (adj:-7.9600) z:-7.7700 (adj:-7.7700)
X=ERROR Y=ERROR Z=ERROR
x:0.7500 (adj:-2.9300) y:-0.1900 (adj:-8.1500) z:-0.2200 (adj:-7.9900)
X=ERROR Y=ERROR Z=ERROR
x:0.1600 (adj:-2.7700) y:-0.0800 (adj:-8.2300) z:0.0500 (adj:-7.9400)
X=ERROR Y=OK Z=OK
x:0.0300 (adj:-2.7400) y:-0.0200 (adj:-8.2500) z:0.0100 (adj:-7.9300)
X=OK Y=OK Z=OK
| Z-Tower Endstop Offsets
| -0.0300 X:-2.74 Y:-8.25 Z:-7.93
| -0.0200 0.1500 Tower Offsets
| -0.2800 A:0.00 b:0.00 C:0.00
| -0.0300 -0.0300 I:0.00 J:0.00 K:0.00
| -0.1900 Delta Radius: 66.0000
| X-Tower Y-Tower Diagonal Rod: 154.0000
Checking delta radius
Adjusting Delta Radius
x:-0.0600 (adj:-2.8000) y:-0.0300 (adj:-8.2800) z:-0.0500 (adj:-7.9800)
X=OK Y=OK Z=OK
c: -0.2000 delta radius:66.0000 prec:0.010 tries:0
done:false
x:0.0700 (adj:-2.7300) y:0.0900 (adj:-8.1900) z:0.0300 (adj:-7.9500)
X=OK Y=OK Z=OK
c: -0.2100 delta radius:66.2000 prec:0.010 tries:0
done:false
x:0.0600 (adj:-2.6700) y:0.0300 (adj:-8.1600) z:0.0600 (adj:-7.8900)
X=OK Y=OK Z=OK
c: -0.1500 delta radius:66.4000 prec:0.010 tries:0
done:false
x:0.0400 (adj:-2.6300) y:-0.0100 (adj:-8.1700) z:0.0300 (adj:-7.8600)
X=OK Y=OK Z=OK
c: -0.0800 delta radius:66.6000 prec:0.010 tries:1
done:false
x:0.0300 (adj:-2.6000) y:0.0400 (adj:-8.1300) z:0.0600 (adj:-7.8000)
X=OK Y=OK Z=OK
c: 0.0200 delta radius:66.8000 prec:0.010 tries:2
done:false
x:-0.0100 (adj:-2.6100) y:0.0200 (adj:-8.1100) z:-0.0200 (adj:-7.8200)
X=OK Y=OK Z=OK
c: -0.0900 delta radius:66.7000 prec:0.010 tries:3
done:false
x:-0.0000 (adj:-2.6100) y:-0.0000 (adj:-8.1100) z:-0.0000 (adj:-7.8200)
X=OK Y=OK Z=OK
c: -0.0500 delta radius:66.7500 prec:0.020 tries:0
done:false
x:0.0500 (adj:-2.5600) y:0.0100 (adj:-8.1000) z:0.0300 (adj:-7.7900)
X=OK Y=OK Z=OK
c: -0.0400 delta radius:66.8000 prec:0.020 tries:1
done:false
x:-0.0100 (adj:-2.5700) y:-0.0500 (adj:-8.1500) z:-0.0400 (adj:-7.8300)
X=OK Y=OK Z=OK
c: 0.0100 delta radius:66.8500 prec:0.020 tries:1
done:true
Iteration: 2
Checking/Adjusting endstop offsets
x:-0.0000 (adj:-2.5700) y:0.0300 (adj:-8.1200) z:0.0300 (adj:-7.8000)
X=OK Y=OK Z=OK
| Z-Tower Endstop Offsets
| 0.0100 X:-2.57 Y:-8.12 Z:-7.80
| 0.0100 0.1700 Tower Offsets
| 0.0000 A:0.00 b:0.00 C:0.00
| 0.0200 -0.0200 I:0.00 J:0.00 K:0.00
| -0.1900 Delta Radius: 66.8500
| X-Tower Y-Tower Diagonal Rod: 154.0000
Checking for tower geometry errors..
x_diff = 0.15000
y_diff = 0.03000
z_diff = 0.20000
high_diff = 0.20000
xy_equal = false
xz_equal = true
yz_equal = false
Opp Range = 0.36000
t1:Err t2:OK t3:Err
Tower geometry OK
Checking DiagRod Length
target:0.0033 c:0.0000 adj:0.00000
| Z-Tower Endstop Offsets
| -0.0000 X:-2.57 Y:-8.12 Z:-7.80
| 0.0400 0.2000 Tower Offsets
| -0.0000 A:0.00 b:0.00 C:0.00
| -0.0100 -0.0000 I:0.00 J:0.00 K:0.00
| -0.2000 Delta Radius: 66.8500
| X-Tower Y-Tower Diagonal Rod: 154.0000
Iteration: 3
Checking/Adjusting endstop offsets
x:-0.0100 (adj:-2.5800) y:0.0300 (adj:-8.0900) z:0.0300 (adj:-7.7700)
X=OK Y=OK Z=OK
| Z-Tower Endstop Offsets
| -0.0300 X:-2.58 Y:-8.09 Z:-7.77
| 0.0300 0.1400 Tower Offsets
| -0.0200 A:0.00 b:0.00 C:0.00
| 0.0100 -0.0400 I:0.00 J:0.00 K:0.00
| -0.2200 Delta Radius: 66.8500
| X-Tower Y-Tower Diagonal Rod: 154.0000
Checking for tower geometry errors..
x_diff = 0.13000
y_diff = 0.07000
z_diff = 0.19000
high_diff = 0.19000
xy_equal = true
xz_equal = true
yz_equal = false
Opp Range = 0.36000
t1:Err t2:OK t3:Err
Tower geometry OK
Checking DiagRod Length
target:-0.0033 c:-0.0200 adj:-0.20000
target:0.2133 c:0.2000 adj:-0.20000
target:0.4267 c:0.4000 adj:-0.20000
target:0.6233 c:0.6200 adj:0.00000
Diag Rod Length changed .. Homing Endstops
| Z-Tower Endstop Offsets
| -0.4600 X:-2.58 Y:-8.09 Z:-7.77
| -0.4000 -0.2900 Tower Offsets
| -0.4600 A:0.00 b:0.00 C:0.00
| -0.4500 -0.5200 I:0.00 J:0.00 K:0.00
| -0.6900 Delta Radius: 66.8500
| X-Tower Y-Tower Diagonal Rod: 153.4000
Iteration: 17
Checking/Adjusting endstop offsets
x:0.0100 (adj:-3.0300) y:0.0300 (adj:-8.5000) z:0.0100 (adj:-8.2300)
X=OK Y=OK Z=OK
| Z-Tower Endstop Offsets
| -0.0300 X:-3.03 Y:-8.50 Z:-8.23
| 0.0400 0.1200 Tower Offsets
| -0.0300 A:0.00 b:0.00 C:0.00
| 0.0100 -0.0600 I:0.00 J:0.00 K:0.00
| -0.2600 Delta Radius: 66.8500
| X-Tower Y-Tower Diagonal Rod: 153.3453
Checking for tower geometry errors..
x_diff = 0.11000
y_diff = 0.10000
z_diff = 0.23000
high_diff = 0.23000
xy_equal = true
xz_equal = false
yz_equal = false
Opp Range = 0.38000
Tower 3 has largest error
t1:Err t2:Err t3:Err
Tower3 Error: Adjusting
tower: -0.0400 opptower:-0.2700 tower radius adj:0.0000
done:false
x:0.0000 (adj:-3.0300) y:0.0000 (adj:-8.5000) z:-0.0600 (adj:-8.2900)
X=OK Y=OK Z=OK
tower: -0.0700 opptower:-0.1300 tower radius adj:-1.0000
done:false
x:-0.0600 (adj:-3.0900) y:-0.0900 (adj:-8.5900) z:-0.0900 (adj:-8.3800)
X=OK Y=OK Z=OK
tower: -0.0900 opptower:0.0900 tower radius adj:-2.0000
done:false
x:-0.0500 (adj:-3.1400) y:-0.0400 (adj:-8.6300) z:-0.0700 (adj:-8.4500)
X=OK Y=OK Z=OK
tower: 0.0400 opptower:0.0500 tower radius adj:-1.5000
done:true
Tower Postions changed .. Homing Endstops
| Z-Tower Endstop Offsets
| 0.6400 X:-3.14 Y:-8.63 Z:-8.45
| 0.3300 0.4500 Tower Offsets
| 0.0900 A:0.00 b:0.00 C:0.00
| 0.0900 0.0100 I:0.00 J:0.00 K:-1.50
| -0.0200 Delta Radius: 66.8500
| X-Tower Y-Tower Diagonal Rod: 153.3453
Iteration: 18
Checking/Adjusting endstop offsets
x:0.1000 (adj:-3.0400) y:0.0600 (adj:-8.5700) z:0.6500 (adj:-7.8000)
X=OK Y=OK Z=ERROR
x:-0.0500 (adj:-3.0900) y:-0.0400 (adj:-8.6100) z:0.0600 (adj:-7.7400)
X=OK Y=OK Z=OK
| Z-Tower Endstop Offsets
| -0.0000 X:-3.09 Y:-8.61 Z:-7.74
| -0.0600 0.0200 Tower Offsets
| -0.1100 A:0.00 b:0.00 C:0.00
| -0.0000 -0.0700 I:0.00 J:0.00 K:-1.50
| 0.0200 Delta Radius: 66.8500
| X-Tower Y-Tower Diagonal Rod: 153.3453
Checking delta radius
Adjusting Delta Radius
x:-0.0200 (adj:-3.1100) y:-0.0300 (adj:-8.6400) z:0.0200 (adj:-7.7200)
X=OK Y=OK Z=OK
c: -0.1100 delta radius:66.8500 prec:0.010 tries:0
done:false
x:0.0500 (adj:-3.0600) y:0.0400 (adj:-8.6000) z:0.0100 (adj:-7.7100)
X=OK Y=OK Z=OK
c: -0.0400 delta radius:67.0500 prec:0.010 tries:1
done:false
x:0.0400 (adj:-3.0200) y:0.0800 (adj:-8.5200) z:0.0600 (adj:-7.6500)
X=OK Y=OK Z=OK
c: -0.0000 delta radius:67.2500 prec:0.010 tries:1
done:true
Iteration: 19
Checking/Adjusting endstop offsets
x:-0.0000 (adj:-3.0200) y:-0.0200 (adj:-8.5400) z:0.0100 (adj:-7.6400)
X=OK Y=OK Z=OK
| Z-Tower Endstop Offsets
| -0.0200 X:-3.02 Y:-8.54 Z:-7.64
| -0.0600 0.0200 Tower Offsets
| 0.0000 A:0.00 b:0.00 C:0.00
| -0.0100 -0.0300 I:0.00 J:0.00 K:-1.50
| 0.0200 Delta Radius: 67.2500
| X-Tower Y-Tower Diagonal Rod: 153.3453
Autocalibration Complete
SENDING:M500
echo:Settings Stored
Vollständige NeukalibrierungslisteSENDING:G30 A
Starting Auto Calibration..
Calibration precision: +/-0.100mm
| Z-Tower Endstop Offsets
| -0.1800 X:-3.02 Y:-8.54 Z:-7.64
| -0.3000 -0.1600 Tower Offsets
| -0.2200 A:0.00 b:0.00 C:0.00
| -0.2200 -0.2000 I:0.00 J:0.00 K:-1.50
| -0.1500 Delta Radius: 67.2500
| X-Tower Y-Tower Diagonal Rod: 153.3453
Iteration: 1
Checking/Adjusting endstop offsets
x:-0.2100 (adj:-3.2300) y:-0.2000 (adj:-8.7400) z:-0.1700 (adj:-7.8100)
X=ERROR Y=ERROR Z=ERROR
x:0.0100 (adj:-3.2200) y:0.0100 (adj:-8.7300) z:-0.0200 (adj:-7.8300)
X=OK Y=OK Z=OK
| Z-Tower Endstop Offsets
| 0.0200 X:-3.22 Y:-8.73 Z:-7.83
| -0.1000 0.0300 Tower Offsets
| 0.0000 A:0.00 b:0.00 C:0.00
| -0.0200 -0.0300 I:0.00 J:0.00 K:-1.50
| 0.0100 Delta Radius: 67.2500
| X-Tower Y-Tower Diagonal Rod: 153.3453
Autocalibration Complete