[[guide:lucvandaele_autocalibrazione_delta]]

Algoritmo di autocalibrazione di Luc Van Daele per meccaniche Delta

Nelle ultime versioni di MK4duo il nostro caro MagoKimbra (Alberto Cotronei), basandosi sul repository di thinkyhead (Scott Lahteine, lo storico sviluppatore di Marlin), ha introdotto nel firmware un sistema di calibrazione per stampanti di tipo Delta-Kossel che esegue delle iterazioni tra gli assi calcolando dei fattori costanti. Tali fattori devono essere inseriti nella configurazione del proprio firmware in modo che gli errori presenti nella geometria della propria stampante possano essere compensati a livello software.

Questo sistema è stato ideato e realizzato da Luc Van Daele.

Nella presente guida viene dato per scontato che i parametri della meccanica immessi nella propria configurazione siano corretti. Inoltre, è necessario aver abilitato l'algoritmo di autocalibrazione 2 in fase di configurazione del firmware!

Le stampanti di tipo delta hanno un'altezza utile (DELTA_HEIGHT), cioè la distanza che il nozzle potrà percorrere in altezza nell'area di stampa: questa può essere calcolata o comunque recuperata usando il comando

G30 X0 Y0 Z1

Dopodiché è possibile correggerla in modo da ottenere un valore (in millimetri) il più corretto possibile, aumentando o diminuendo tale dato attraverso il comando

M666 Hxxx

Si ricorda che dopo ogni variazione dei valori è opportuno salvare tali dati in EEPROM con il comando M500.

Il valore di Z-offset è un valore che deve essere costante: rappresenta la distanza tra la punta del nozzle e il piatto di stampa in posizione Z=0. Tramite l'uso di particolari sensori, l'offset può essere calcolato automaticamente dalla nostra scheda elettronica : il nostro caro e buon MagoKimbra ha realizzato un comando apposito, ovvero

G30 X0 Y0 P1

Tale comando calcolerà il nuovo valore e lo salverà in memoria SRAM. Per salvare tale valore in EEPROM, lanciare il comando M500.

Per essere certi che le modifiche fatte in precedenza siano corrette, lanciamo il comando G28 (per eseguire l'home degli assi) e subito dopo

G30 X0 Y0

Ecco un possibile output sulla porta seriale:

Z-probe:-0.025 X:0.000 Y:0.000

Quando il valore di Z-probe sarà prossimo allo 0 potremo passare alla fase successiva.

Dopo aver fatto il classico G28 possiamo lanciare il comando

G33 A1 // A1 = AutoTune ON

Tale comando, attraverso una serie di iterazioni, calcolerà dei FATTORI COSTANTI che dovranno essere inseriti all'interno del firmware, vedi esempio:

H_FACTOR:+1.24 R_FACTOR:+5.05 A_FACTOR:+0.83
Copy these values to Configuration.h

Questi 3 valori, come dice la seconda riga, andranno aggiunti nel Configuration_Overall.h del nostro firmware.

Dopo aver salvato e caricato il nuovo firmware sulla nostra macchina possiamo passare alla fase successiva.

Dopo aver caricato il firmware con i fattori calcolati precedentemente, possiamo passare alla calibrazione vera e propria lanciando il comando G33. Questo comando realizzerà una serie di iterazioni tenendo presente i fattori costanti caricati nel punto precedente e troverà: gli offset degli endstop, l’angolo formato dalle torri e l’altezza di stampa calibrando il DELTA_RADIUS (dando errore se necessario in maniera indipendente sui vari punti). Ecco un esempio di iterazioni:

G33 Auto Calibrate
Verifico... AC
.Height:250.42 Ex:+0.00 Ey:+0.00 Ez:+0.00 Radius:186.54
.Tower angle : Tx:+0.00 Ty:+0.00 Tz:+0.00 Rod:334.89
.Iteration: 01 std dev:1.006
.Height:250.05 Ex:+0.00 Ey:-0.37 Ez:-0.64 Radius:181.03
.Tower angle : Tx:+0.05 Ty:+0.07 Tz:-0.12 Rod:334.89
.Iteration: 02 std dev:0.149
.Height:250.28 Ex:+0.00 Ey:-0.29 Ez:-0.51 Radius:180.97
.Tower angle : Tx:+0.10 Ty:+0.07 Tz:-0.17 Rod:334.89
.Iteration: 03 std dev:0.055
.Height:250.20 Ex:+0.00 Ey:-0.32 Ez:-0.48 Radius:180.81
.Tower angle : Tx:+0.11 Ty:+0.09 Tz:-0.20 Rod:334.89
.Iteration: 04 std dev:0.029
.Height:250.23 Ex:+0.00 Ey:-0.33 Ez:-0.47 Radius:180.91
.Tower angle : Tx:+0.11 Ty:+0.08 Tz:-0.19 Rod:334.89
.Iteration: 05 std dev:0.025
.Height:250.22 Ex:+0.00 Ey:-0.32 Ez:-0.49 Radius:180.87
.Tower angle : Tx:+0.11 Ty:+0.10 Tz:-0.21 Rod:334.89
Calibration OK rolling back.
.Height:250.23 Ex:+0.00 Ey:-0.33 Ez:-0.47 Radius:180.91
.Tower angle : Tx:+0.11 Ty:+0.08 Tz:-0.19 Rod:334.89
Save with M500 and/or copy to configuration_delta.h

Come possiamo notare, dopo vari test la stampante avrà definito tutti i valori inserendo quelli che portano l’errore (std dev) prossimo allo zero, dicendoci anche che - se proseguissimo con le iterazioni - l’errore aumenterebbe e che quindi abbiamo raggiunto la configurazione ottimale. Confermiamo il tutto con M500 e abbiamo così completato la calibrazione.