Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /membri/mk4duowiki/wiki/inc/parser/handler.php on line 1552
{{tag>tutorial delta calibrazione}} ====== 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 **[[https://github.com/LVD-AC|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! ==== Fase 1: Regolazione Altezza utile di stampa ==== 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''. ==== Fase 2: Regolazione z-offset della probe di Z ==== 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. ==== Fase 3: Ricerca e caricamento FATTORI COSTANTI ==== 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. {{ guide:fattori_costanti_autocalibrazione_delta.png?nolink |}} Dopo aver salvato e caricato il nuovo firmware sulla nostra macchina possiamo passare alla fase successiva. ==== Fase 4: Calibrazione geometrie ==== 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.