Configurazione SKR 1.3 con Marlin 2.0 bugfix

Come sicuramente altri curiosi a giro per il mondo e per l’Italia mi sono acquistato una SKR 1.3 by BigTreeTech. Si tratta di una scheda di controllo per stampanti 3D a 32 bit, con la possibilità di interfacciarsi con gli stepper driver TMC (con protocollo UART o SPI) in modo facilitato (senza fare grosse operazioni di saldatura o modifica delle scheda), ma solamente cambiando la posizione di alcuni jumper.

The skr 1.3 board

Vediamo più ne dettaglio alcune caratteristiche della scheda e poi come ho configurato i vari file di configurazione per il firmware marlin 2.0

La scheda era venduta con varie possibilità di acquisto tra cui quelle più interessanti erano con driver TMC2130 o TMC2208. Dato che avevo bisogno di più potenza per i motori (motori da 2.0A per fase) ho deciso di optare per i TMC2208 (che possono fornire 1.4Arms costanti, quindi circa 1.96A).

Come detto la scheda ha già predisposti dei canali di comunicazione facilitati con i driver TMC.
A seconda del driver in questione possiamo usare SPI (per esempio con i TMC2130) oppure con UART (con i TMC 2208).
Se avessi preso i TMC2130 con il protocollo SPI la comunicazione sarebbe risultata immediata, senza saldature. Con il protocollo UART invece ho dovuto saldare dei ponticelli sui driver TMC2208 (ma questo dipende da chi vi vende/produce i driver).

Tra le note a favore che mi hanno spinto a prendere questa scheda a 32 bit rispetto ad altre magari più testate e famose (vedi duet wifi), è stato sicuramente il prezzo (ho speso 42$ per la scheda + 5 driver TMC2208). Rispetto alla ramps ha

  • Alimentazione fino a 24V
  • Protocollo comunicazione SPI/UART facilitato
  • fusibili removibili
  • mosfet ad alta potenza
  • collegamento dedicato per bl touch

Il fatto di poter poi restare in ambiente Marlin (su cui mi trovo benissimo) è stato un altro punto a favore. Bene o male cambiare FW e quindi ambiente di lavoro è sempre una fatica, specialmente quando si ha poco tempo da dedicare allo studio di nuovi software. Volendo la scheda è compatibili anche con smoothieware, ma non ho intenzione di provarlo.

A questo LINK potete trovare il github di bigtreetech con le info sulla scheda, compreso il FW.

Lo switch fisico della scheda da ramps a SKR è stato immediato e facile. Unico punto di alimentazione per tutta la scheda (forse non ha cosa studiata benissimo, separare le linee di alimentazione come la ramps poteva essere una buona cosa), connettori bene posizionati e facili da montare.
Insomma niente da segnalare.

IN CASO VOGLIATE MONTARE COME HO FATTO IO SUCCESSIVAMENTE UN BL TOUCH CLONE (o 3D TOUCH) dovete leggere quanto segue.

I pin di alimentazione servo per il 3D touch sono GND – 5V – S (rispettivamente marrone, rosso, arancione), mentre il connettore riservato sulla SKR presenta i pin in ordine 5V – GND – S. Dovete quindi invertire sul connettore di arrivo alla skr GND e 5V. CONTROLLATE BENE QUESTA COSA USANDO GLI SCHEMI DELLA SKR E FISICAMENTE IL SENSORE CHE VI ARRIVA. MAGARI NON TUTTI I PRODUTTORI FORNISCONO CAVI ALLO STESSO MODO.

Per la compilazione del FW mi sono servito di Visual Studio Code, installando poi l’estensione Platformio.

Il FW va configurato come si è soliti fare con marlin. Vedrò di dare in ordine quello che ho modificato.

Prima cosa da fare dopo aver caricato il progetto del FW in Visual Studio Code è aprire il file Platformio.ini ed andare a settare la riga evidenziata come da immagine

Setting the CPU type

Possiamo poi successivamente passare a modificare il file configuration.h, che il grande classico di Marlin.

Sorvolerò sulle parti non strettamente necessarie per i driver ed il 3d touch. La mia stampante per esempio è una core xy, ed uso un certo tipo di sensore di temperatura che può non corrispondere al vostro in uso. Quindi per le parti non coperte da me dovete fare affidamento a voi stessi. Ma se state leggendo qua penso ne siate in grado 😀

Dalla guida ufficiale di Big Tree Tech dicono di settare le porte di comunicazione come segue

#define SERIAL_PORT -1
#define SERIAL_PORT_2 0
#define BAUDRATE 115200
Va inoltre specificato il tipo di scheda utilizzata
#ifndef MOTHERBOARD
#defineMOTHERBOARD BOARD_BIGTREE_SKR_V1_3
#endif
Questo valore dovrebbe essere riconosciuto anche dal git ufficiale di Marlin negli ultimi bugfix. Devo controllare per essere sicuro al 100%.
Decidendo di utilizzare i TMC per tutti e 4 gli assi ho dovuto settare tale parametro per X, Y, Z, E
/**
* Stepper Drivers
*
* These settings allow Marlin to tune stepper driver timing and enable advanced options for
* stepper drivers that support them. You may also override timing options in Configuration_adv.h.
*
* A4988 is assumed for unspecified drivers.
*
* Options: A4988, A5984, DRV8825, LV8729, L6470, TB6560, TB6600, TMC2100,
* TMC2130, TMC2130_STANDALONE, TMC2208, TMC2208_STANDALONE,
* TMC26X, TMC26X_STANDALONE, TMC2660, TMC2660_STANDALONE,
* TMC2160, TMC2160_STANDALONE, TMC5130, TMC5130_STANDALONE,
* TMC5160, TMC5160_STANDALONE
* :[‘A4988’, ‘A5984’, ‘DRV8825’, ‘LV8729’, ‘L6470’, ‘TB6560’, ‘TB6600’, ‘TMC2100’, ‘TMC2130’, ‘TMC2130_STANDALONE’, ‘TMC2160’, ‘TMC2160_STANDALONE’, ‘TMC2208’, ‘TMC2208_STANDALONE’, ‘TMC26X’, ‘TMC26X_STANDALONE’, ‘TMC2660’, ‘TMC2660_STANDALONE’, ‘TMC5130’, ‘TMC5130_STANDALONE’, ‘TMC5160’, ‘TMC5160_STANDALONE’]
*/
#define X_DRIVER_TYPE TMC2208
#define Y_DRIVER_TYPE TMC2208
#define Z_DRIVER_TYPE TMC2208
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988
//#define Z3_DRIVER_TYPE A4988
#define E0_DRIVER_TYPE TMC2208
//#define E1_DRIVER_TYPE A4988
//#define E2_DRIVER_TYPE A4988
//#define E3_DRIVER_TYPE A4988
//#define E4_DRIVER_TYPE A4988
//#define E5_DRIVER_TYPE A4988
In questo modo poi possiamo andare successivamente nel configuration_adv.h e settare i valori di corrente e step per mm per i driver. Sarà possibile farlo anche da Menù LCD, cosa comodissima devo dire.
Per il 3D touch invece, quindi il sensore per il probing ed homing Z, c’è giusto da settare nella relativa sezione
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
#endif
Nel mio caso il sensore è collegato sul pin di Z-Min, così da usarlo anche per l’azzeramento iniziale della macchina.
NOTA: ALLA PRIMA ACCENSIONE DELLA STAMPANTE IL 3D TOUCH MI VA IN ALLARME. NON RIESCE A FARE IL DEPLOY DEL PROBE. DEVO QUINDI RICORDARMI DI FARLO MANUALMENTE IO PRIMA DI DARE CORRENTE ALLA STAMPANTE. NON SO SE è UN PROBLEMA DI MARLIN MADE FROM BigTreeTech OPPURE UN PROBLEMA DEL SENSORE
I vari parametri di settaggio degli offset tra probe e testa di stampa li lascio a voi a seconda della vostra stampante. Sono valori custom e personali.
Potete abilitare le eeprom se volete, settare lo schermo LCD con il lettore di schede SD e tutto il resto che utilizzate solitamente.
Nel mio caso ho settato come schermo LCD un REPRAP_DISCOUNT_SMART_CONTROLLER e funziona senza problemi.
Passiamo ora al configuration_adv.h e vediamo la parte relativa ai TMC.
Dobbiamo ricercare nel file la riga #if HAS_TRINAMIC e di seguito troveremo le sezioni in cui regolare la corrente ed i passi dei motori.
Per esempio nel mio caso
#ifAXIS_IS_TMC(X)
#defineX_CURRENT1100// (mA) RMS current. Multiply by 1.414 for peak current.
#defineX_MICROSTEPS16// 0..256
#defineX_RSENSE0.11
#endif
questo è il valore che ho settato per il motore X (uguali poi per Y, Z ed E0).
Con una corrente rms di 1100mA arrivo a circa 1.555mA, che sono sufficienti a far lavorare bene i miei motori. I miei motori sono da 2A per fase e voglio farli lavorare a circa 80% della corrente massima, quindi 1.6A. Da cui dividendo 1.6A per 1.414 ottendo un valore vicino a 1100mA rms.
Successivamente ho settato come di seguito
#defineSTEALTHCHOP_XY
#defineSTEALTHCHOP_Z
#defineSTEALTHCHOP_E
per avere i driver in modalità silenziosa.
Non ho ancora provato //#define HYBRID_THRESHOLD, che dovrebbe abilitare lo spreadcycle quando il motore viaggia sopra una certa velocità (utile per dare più potenza al bisogno).
Con i TMC 2208 non posso usare il sensorless homing, quindi non ho proprio considerato tale sezione.

Ho abilitato

#define TMC_DEBUG
per poter controllare lo stato dei TMC con gli appositi comandi, anche se poi alla fine non penso di averlo mai usato da console.
Questi sono i settaggi principali per la SKR ed i TMC2208. Naturalmente sono ancora in fase di test della stampante, ma si sta comportando bene. Nonostante stia lavorando con un alimentatore a 12V. Sarebbe meglio un 24V ma dovrei cambiare anche altri componenti ed attualmente non posso.
Per installare il FW basta copiare il file bin prodotto da Visual Studio (che si troverà nella cartella .pioenvs\LPC1768 (nella root del progetto) nella scheda micro sd fornita, inserirla e riavviare la stampante.
La facilità di configurazione è veramente buona. In questo modo si può cambiare i parametri dei motori con facilità. Cosa che aiuta a fare test di qualità e di tuning della macchina.
A questi link potete scaricare la versione attuale dei file di configurazione per Marlin 2 per la mia core xy in caso vogliate leggerli.

Lascia un commento

We use cookies to ensure that we give you the best experience on our website.
Ok