En un artículo anterior , se mostró cómo calibrar la impresora delta en modo manual. Pero debido a la complejidad y complejidad de la configuración, se decidió realizar la calibración automática. Dado que la versión final se encuentra en la etapa de prueba y fabricación, todavía queremos facilitarles la vida a nuestros clientes y a todos los que hicieron impresoras para sí mismos de acuerdo con este esquema. A continuación, se considerará una de las formas de implementar la calibración automática.Hay muchos enfoques, instalar una sonda retráctil en un eyector con un microinterruptor, sensores FSR, un sensor Hall, etc. Pero estos sistemas tienen un inconveniente significativo: miden la distancia no a la boquilla, sino directamente al sensor, además, en algunos casos, la alineación puede fallar (si el sensor no se encuentra en lugar de la boquilla, se puede violar el cálculo de la geometría. Sin mencionar la precisión) .La opción ideal es fijar el toque de la boquilla en la mesa. Y aquí puedes ir de dos maneras:- Cree un contacto eléctrico entre el HotEnd y el efector, de modo que el HotEnd sea móvil y abra (o cierre) el contacto cuando haga clic en él.
- Cree un contacto eléctrico entre la boquilla de metal y la mesa.
La primera opción es más complicada en la fabricación y la estabilidad del trabajo, pero con un diseño adecuado dará un resultado estable permanente, sin movimientos corporales adicionales.La segunda opción es menos conveniente de usar, pero es simple de implementar, y la mayoría de las veces rara vez se requiere calibración y se puede hacer según sea necesario.Hablaremos sobre el segundo método:
De la herramienta que necesitamos:- Cinta adhesiva de aluminio (de hecho, es papel de aluminio en una base adhesiva, y no todo tipo de cintas de refuerzo allí)
- "Cocodrilo": para conectar uno de los contactos a la carcasa metálica de extremo caliente, en principio, puede hacerlo con cualquier clip de papel, o arreglar el extremo del cable atornillándolo o soldandolo (de forma severa pero efectiva)
- Pinza de la oficina
- Pin block 2.54 para conectar nuestro sensor improvisado a la placa RAMPS 1.4 (o al conector EndStop correspondiente en su placa). Pocas personas tienen problemas para montar tales bloques, pero puede encontrar un bloque similar en la unidad de la computadora quitándolo del "tweeter" o botones.
- Accesorios de soldadura, es deseable tener un fundente activo y un soldador menos potente.
- Alambres, aproximadamente un metro.
La forma más simple de aplicar una capa conductora de corriente a nuestro plano de trabajo (vidrio) era una etiqueta adhesiva de cinta de aluminio, pero es importante pegarla de manera uniforme y alisarla para que haya contacto eléctrico entre las tiras de cinta, se verifica de manera primaria con un multímetro para "zumbar".
Además, para cambiar, debe hacer un cable, como se escribió anteriormente, apretar uno de los extremos en un bloque 2.54 (o soldarlo), los otros dos extremos se fijarán en el radiador del HotEnd y en la mesa con cinta de aluminio. Para arrastrarnos hacia el radiador, tomamos un cocodrilo ordinario y soldamos uno de los extremos del cable, para facilitar la soldadura, aconsejo usar ácido, aunque lo logré con buen calentamiento y colofonia ordinaria, el segundo extremo también se puede soldar al cocodrilo, pero en este caso existe la posibilidad de dañar la cinta adhesiva cuando está arreglado, y el cocodrilo debe ser lo suficientemente grande. Hicimos lo siguiente: tomar un clip de papel y limpiarlo de pintura (preferiblemente de todos los lados). El punto importante aquí esque soldaremos un alambre de cobre a una pinza metálica con soldadura ordinaria (PIC 61) y para una soldadura exitosa de la misma manera necesitamos un fundente activo, utilizamos ácido fosfórico ordinario (ácido de soldadura).
Las siguientes son fotos de la conexión a la placa y a la propia impresora. Los extremos de los cables de nuestra impresora están conectados al Z-max., Y en el firmware es necesario indicar cuál es el estado normal del interruptor de límite (nuestro sensor, cerrado o abierto). Con este enfoque, el sensor está abierto en condiciones normales.


El firmware con calibración automática para impresoras delta se puede tomar desde aquí: firmware Marlin Delta con actualizaciones de calibración automática . Configuración delfirmware de RichCattell :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;
Después de conectar los cables y ajustar el firmware de la impresora, debe comenzar la calibración en sí. Y aquí hay un punto muy importante que la calibración debe hacerse desde una computadora, porque La impresora en sí no realiza esta operación correctamente. Aparentemente no hay suficiente memoria del dispositivo y la calibración termina en algún punto intermedio.Además, una de las características de la calibración automática es que el algoritmo selecciona secuencialmente los parámetros de geometría, lo que puede llevar un tiempo considerable, especialmente si la geometría se rompe gravemente o los parámetros iniciales no están configurados correctamente (por ejemplo, la longitud de las diagonales es de 150 mm, y de hecho 200 mm, y el algoritmo con el paso dado repetirá la calibración cada iteración nuevamente, al final se calibrará, pero tomará una cantidad de tiempo inconcebible)Para iniciar la calibración automática, conéctese a la impresora a través de USB y use el programa pronterface. Hay tres tipos de calibración:- El comando G30 , calibra los desplazamientos, esencialmente establece la altura a los interruptores de límite.
- Equipo G30A : calibra la geometría completa de la impresora, la longitud de las diagonales, la sangría de los interruptores de límite (altura) y la curvatura de la geometría de acuerdo con las torres (torre) (lo más probable es que la impresora admita diferentes alturas)
- Team G29 - el llamado AutoBedLevel - calibración automática de la curvatura de la tabla. En impresoras delta, funciona más correctamente y comienza inmediatamente antes de que comience la impresión en el código g inicial.
En consecuencia, los dos últimos son los más relevantes.La siguiente es una lista de la consola de la impresora sin calibración inicial y reiniciarla.Principio de calibración corta:- Comprobación / ajuste de compensaciones de tope final
- Verificar / ajustar el radio delta
- Comprobación de errores de geometría de la torre
- Selección de longitud diagonal> Comprobación de la geometría de la torre> Conciliación de las compensaciones de EndStop. Cuando cambian los dos primeros parámetros, se selecciona el tercero y el ciclo se repite hasta que se cumplan los tres parámetros.
Listado de la calibración inicial: las iteraciones de 4 a 17 se cortan desde repite la acciónConnecting...
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
Listado completo de recalibraciónSENDING: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