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
#ifndef MOTHERBOARD#defineMOTHERBOARD BOARD_BIGTREE_SKR_V1_3#endif
/*** 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
#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 ho settato come schermo LCD un REPRAP_DISCOUNT_SMART_CONTROLLER e funziona senza problemi.
#ifAXIS_IS_TMC(X)#defineX_CURRENT1100// (mA) RMS current. Multiply by 1.414 for peak current.#defineX_MICROSTEPS16// 0..256#defineX_RSENSE0.11#endif
#defineSTEALTHCHOP_XY#defineSTEALTHCHOP_Z#defineSTEALTHCHOP_E
Ho abilitato