Flusso canalizzatore a 4 vie – La stampa 3D a 4 colori è già realtà per l’ambiente “REPRAP”. (Prima parte)

L’evoluzione della specie, fino a 4 colori in un’unica stampa 3D…… fino a qualche mese fa solo una “chimera”  per stampanti RepRap in genere, ora, grazie ad una collaborazione nata sul forum Italy RepRap User Group – Gruppo italiano RepRap è possibile gestire 4 colori o materiali con praticamente tutte le schede come la Ramps che supportano il doppio driver, in alternativa è possibile anche con un solo driver gestire fino a 6 colori…. magia?…. si… infatti è stato un “Mago” il principale fautore di questa evoluzione.

Chi è…. ci arriviamo al più presto…… prima alcune immagini…..

badge Maker Faire 2014 birilli 4 colori Italia e birillo 4 colori IeC Flusso
E arrivo al nocciolo della questione…. il firmware modificato da MagoKimbra, alias Alberto Cotronei, noto utente del forum più sopra menzionato che, analizzando le problematiche derivanti dalla limitatezza dei “driver” disponibili sulle schede più diffuse, ha pensato bene di implementare un proprio sistema, peraltro semplicissimo nell’uso, che ha permesso di utilizzare sistemi diversi di estrusione.

Il tutto sempre integrabile alla nuova versione del flusso a 4 vie, semplificazione della versione a 2 vie, molto più semplice da realizzare, nato anch’esso dal forum  e dalla collaborazione di diversi Makers, sempre utenti del forum, fra tutti Nicola P. (Nicola Patucelli – www.3dmakerlab.it), lo scrivente (immaginaecrea, alias Davide Dalfiume) e molti altri utenti del forum che sarebbe decisamente lungo menzionare ma che hanno fatto parte del progetto con i loro suggerimenti e consigli.

E dopo questo giusto preambolo inizio a scendere nello specifico cominciando dal sistema che abbiamo implementato al Maker Faire 2014.

Il sistema ideato da Alberto si basa su una “qualsiasi” scheda a 2 driver che, tramite una ulteriore schedina provvista di 8 relè permette lo scambio dei 4 fili dei motori passo passo consentendo lo “switch” al terzo e quarto estrusore.

Questa la scheda necessaria per il raddoppio da 2 a 4
schede relè
Come si evince ingrandendo l’immagine il costo della scheda è abbastanza contenuto ed è facilmente reperibile ad esempio qui su Ebay (ora aggiornato a EUR 17,74), tengo a precisare che ho solo acquistato personalmente 2 schede, nulla più, non ho quindi conoscenza diretta del venditore, ma è stato rapido e le schede non presentano problemi…. quindi sono rimasto soddisfatto dell’acquisto, per questo mi sono sentito di segnalarne il link.

Vediamo di scendere nello specifico dell’hardware.

E’ molto semplice connettere la scheda ai motori ed ai relativi driver di pilotaggio dei motori.
Altrettanto semplice è identificare i pin di pilotaggio sulla scheda della stampante e relative connessioni.
L’esempio corrente farà riferimento ad una scheda “Rumba”, dotata di soli 2 driver sui 3 installabili su scheda ma, tramite le stesse indicazioni reperibili sul forum stesso e i tutorial specifici preparati dall’ideatore della soluzione a relè (sempre Alberto), è molto semplice utilizzare una più comune Ramps.

Partiamo dalla scheda relè e come si interfaccia a motori e driver
primo driver
I quadrati bianchi contraddistinguono il primo gruppo di relè che sarà pilotato dai primi 4 pin e che gestiranno l’estrusore 1 e 3
Ovviamente i restanti quattro relè con i relativi pin di controllo che non sono nei riquadri gestiranno lo scambio tra estrusori 2 e 4

da uscita driver
Iniziamo col collegare le uscite che andrebbero ai 2 motori e che invece colleghiamo come da schema utilizzando le prese “centrali” dei relè, sempre restando i primi 4 a pilotare le 2 uscite per gli estrusori 1 e 3, e i restanti 4 per i restanti 2 estrusori 2 e 4.
ai motori 1 e 2 ai motori 3 e 4
e colleghiamo i motori degli estrusori sempre come da schema.
Poi passiamo ad alimentare la scheda e colleghiamo i pin di controllo della scheda stampante.
collegamenti pin 5 - 6 e alimentazione pin su rumba

collegamenti pin 5 - 6 e alimentazione 2
Come si può notare gli ingressi di controllo dei relè sono uniti a gruppi di 4 con prese quadripolari ed inviati alla scheda con un filo singolo per pin.
Utilizzando lo stesso alimentatore che alimenta la scheda stampante per alimentare la scheda relè non c’è bisogno di portare anche la massa quindi  basta collegare alla scheda i soli 2 gruppi di ingressi tramite appunto i pins 5 e 6.

E con questo abbiamo collegato tutta l’elettronica ora passiamo al flusso a 4 vie da preparare per avere una corretta canalizzazione dei fili.
Il file stl pubblicato su thingiverse
Dopo averlo quindi stampato procediamo con la pulizia dei canali per avere una corretta funzionalità partendo dai canali convergenti che hanno un primo tratto di 4 mm di diametro mentre più all’interno hanno un foro di 2.5 mm.

Iniziamo quindi con una punta di 2.5 mm. a canalizzare correttamente le 4 vie, cercando di non andare con la punta oltre il punto di congiunzione.

preparazione flusso 01

Conviene verificare la lunghezza del canale e piazzare la punta in modo che arrivando in fondo arrivi alla congiunzione, piuttosto facile da trovare analizzando un attimo il disegno stl.
Molto delicatamente a mano invece, sempre con la punta di 2.5, è sufficiente passare leggermente il canale centrale di congiunzione.

preparazione flusso 01 bis

E rifinire con un cutter la base d’appoggio dell’ingresso del hotend.

preparazione flusso 01 bis 2

Successivamente, con una punta di 4 mm. e anche in questo caso “a mano”, è sufficiente ripassare la parte che deve ospitare i tubini di teflon che serviranno come “area di parcheggio” dei fili non utilizzati.

preparazione flusso 02

Inseriamo ora uno spezzone di tubo di teflon 4 x 2 all’interno della sede di 4 appena ripassata

preparazione flusso 03

e premiamo a fondo il tubo in modo da arrivare il più possibile vicino al punto dove inizia il tratto ripassato a 2.5 mm.

preparazione flusso 04

Ora tagliamo l’eccedenza “a piano” rispetto alla superficie del flusso usando un cutter

preparazione flusso 05

Poi, una volta tagliato lo estraiamo prendendolo con un paio di pinzette all’estremità.

preparazione flusso 06

Dopo che abbiamo estratto il tubino verifichiamo lo spessore che abbiamo dalla battuta della presa aria misurando con un calibro

preparazione flusso 07

Segnamo l’eccedenza sul tubo con calibro e pennarello

preparazione flusso 09

E tagliamo la restante eccedenza lasciando 1 mm circa in più dal battente della presa aria

preparazione flusso 10

Ne facciamo 4 copie uguali e le inseriamo a battuta nei 4 fori e cerchiamo di svasare leggermente l’ingresso dei 4 tubini, come rappresentato in foto.

preparazione flusso 11

successivamente possiamo montare le 4 prese aria rapide con filetto 1/8 di pollice passo gas.

preparazione flusso 12

E con questo abbiamo concluso l’assemblaggio del flusso che è pronto per essere montato nel sistema.
Ecco come viene fornito nel kit preparato ed in vendita completo di hotend presso il nostro shop

kit flusso

Da ricordare la connessione del hotend che essendo “singolo” va collegato al primo ingresso previsto dalla scheda stampante per termistore e resistenza.

Rimangono firmware e software…. il firmware di MagoKimbra è reperibile qui,

Ora un ulteriore preambolo.
Le soluzioni possibili in termine di estrusori sono  molteplici, nel senso che è possibile utilizzare qualsiasi tipo di estrusore che possa essere utilizzato col tubo “Bowden” con filo 1.75 mm per poter utilizzare il sistema a 4 colori.

Le soluzioni quindi possono essere diverse, tra le quali la soluzione che abbiamo proposto al Maker Faire 2014, dotata di 4 estrusori “Airtripper” scaricati da “Thingiverse” con trascinatori MK7 in alluminio, che sono risultati semplici e “funzionali”… ma soprattutto facili e veloci da stampare come plastiche.

Parallelamente è stata presentata, sempre al Maker Faire, una soluzione da Nicola P. l’estrusore NPR2, che non richiede la scheda relè ma solo i 2 driver gestiti gestiti sempre dal firmware, più volte menzionato, di MagoKimbra.
La soluzione però è in corso di sviluppi e prevede fino a 6 materiali gestiti da 2 motori, sarà possibile quindi stampare fino a 6 colori con un singolo driver unendo i sistemi NPR2 con una scheda relè “dimezzata” rispetto a quella proposta in questo articolo, con soli quattro relè ed un unico “pin di controllo” insomma.

E’ possibile quindi adottare diverse soluzioni in base al proprio progetto di stampante realizzata o “da realizzare” per poter facilmente adottare la “multiestrusione a singolo ugello”, soluzione semplice, efficace e pulita, ad oggi per l’uso di più colori a singolo materiale ma passibile di sviluppi, alcuni dei quali sono già stati “ipotizzati” ……..

ORA IL FIRMWARE

So che Alberto ha inserito e sta ancora completando documentazione su documentazione ma mi baserò sulle sue stesse semplici indicazioni per i settaggi “essenziali” del firmware che si riferiscono naturalmente al sistema proposto, per la soluzione NPR2 rimando ovviamente allo stesso “creatore” del sistema e agli sviluppi che sta ancora portando avanti.

Il codice partendo dal file “Configuration.h:
/***********************************************************************\
**************************** Define type printer **********************
***********************************************************************/
#define CARTESIAN

//#define COREXY
//#define DELTA
//#define SCARA
#if defined(CARTESIAN)
#include “Configuration_Cartesian.h”
#elif defined(COREXY)
#include “Configuration_Corexy.h”
#elif defined(DELTA)
#include “Configuration_Delta.h”
#elif defined(SCARA)
#include “Configuration_Scara.h”
#endif
/***********************************************************************/

e già da qui il distinguo con la versione di Marlin originale si nota da subito….
A differenza del firmware originale la versione modificata possiede 4 file diversi per distinguere le varie geometrie (Cartesiana, CoreXY, Delta e Scara) semplificando, e non di poco, la gestione dei  parametri di settaggio sia della stessa geometria che dei parametri “generali” , tra i quali i più importanti; “Step per mm, accelerazioni e velocità max dei motori”.
Poi il settaggio per il numero di estrusori utilizzati:

// This defines the number of Driver extruders
#define DRIVER_EXTRUDERS 2
// This defines the number of extruder real or virtual
#define EXTRUDERS 4
#if EXTRUDERS > 1
#define SINGLENOZZLE //This is used for singlenozzled multiple extrusion configuration
#endif
/***********************************************************************
*********************** Multiextruder MKR4 ***************************
***********************************************************************

* *
* Setting for more extruder width rele system *
* *
* Firmware by MagoKimbra magokimbra@hotmail.com *
* *
* See pins.h for pin command rele *
* *
***********************************************************************/
#define MKR4

#ifdef MKR4
#define DELAY_R 500 // Delay for switch rele
#endif // END MKR4

Per quanto riguarda invece il settaggio dei sensori è sufficiente dare un valore valido al primo hotend

#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_3 0

Questa è la parte dedicata al numero di estrusori utilizzati in questo caso 4

Passiamo quindi, in questo caso essendo una stampante con assi “cartesiani” gestiti in maniera “classica”, al file “Configuration_Cartesian.h” per i valori che riguardano i settaggi generali della stampante.

A parte tutti i settaggi dedicati ad endstop, pullup, direzione motori che rimando alle guide del forum stesso dedicate ai settaggi base dalla stampante vorrei evidenziare un’altra modifica del firmware che permette di gestire gli step degli estrusori indipendenti l’uno dall’altro, funzione ancora non implementata nel firmware originale e che consente una “taratura fine” impossibile altrimenti.
Oltre ovviamente alle accelerazioni, relative velocità massime, ecc. ecc. sempre indipendenti per ogni estrusore e sempre implementate solo nella versione del “Mago”.

// default settings
#define DEFAULT_AXIS_STEPS_PER_UNIT {160,160,16000/1.75,185,185,185,185} //
X, Y, Z, E0, E1, E2, E3 default steps per unit
#define DEFAULT_MAX_FEEDRATE {300,300,2,150,150,150,150} // X, Y, Z, E0, E1,
E2, E3 (mm/sec)
#define DEFAULT_RETRACTION_MAX_FEEDRATE {120,120,120,120} // E0, E1, E2,
E3 (mm/sec)
#define DEFAULT_MAX_ACCELERATION {1000,1000,50,1000} // X, Y, Z, E maximum
start speed for accelerated moves.
#define DEFAULT_ACCELERATION 1000 // (3000)X, Y, Z and E max acceleration in
mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION 2000 // (3000) X, Y, Z and E max
acceleration in mm/s^2 for retracts

Completo con le ultime indicazioni del “Mago” che fanno riferimento alla possibilità di assegnare qualsiasi pin risulti libero sulla scheda in uso per la gestione della scheda relè a 4 o a 8 (1 pin o 2 pin) modificando il o i valori che ora sono assegnati ai pin 5 e 6

File pins.h

#ifdef MKR4
#if (EXTRUDERS == 2) && (DRIVER_EXTRUDERS==1) // Use this for one driver and two extruder
#define E0E1_CHOICE_PIN 6
#elif (EXTRUDERS == 3) && (DRIVER_EXTRUDERS==2) // Use this for two driver and 3 extruder
#define E0E2_CHOICE_PIN 6
#elif (EXTRUDERS == 4) && (DRIVER_EXTRUDERS==2) // Use this for two driver and 4 extruder
#define E0E2_CHOICE_PIN 5
#define E1E3_CHOICE_PIN 6
#endif // END EXTRUDERS
#endif // END MKR4

Questi sostanzialmente sono gli interventi di correzione da effettuare sul firmware che si riducono ad una “semplificazione” dei settaggi del firmware “originale” (Marlin) aggiungendo funzionalità al sistema.

IL SOFTWARE

Anche in questo caso le soluzioni sono molteplici e possono essere basate su software differenti.

Al momento infatti utilizziamo Cura per l’uso con 2 colori, la colonna di “spurgo” presente come funzione del programma (Wipe & prime tower), dal mio punto di vista seppur rallentando la stampa in maniera evidente, mi risulta essere ancora la soluzione più “pulita e precisa”  per l’esecuzione di stampe richiedenti particolari tolleranze e/o una mancanza assoluta di “scorie plastiche” su piano.

Per contro Cura non risulta ancora in grado di utilizzare la stessa “colonna” con più di 2 colori.
Per questo al momento utilizziamo Slic3r per le prove di stampa effettuate e vengo a come poter utilizzare il software gestendo lo “spurgo” della melt zone per il passaggio da un colore all’altro.

Il software è già in grado di gestire più estrusori e, tramite un campo specifico dove poter inserire codice dedicato al cambio estrusore. è possibile utilizzare le funzioni “aggiuntive” del firmware del Mago che permettono con semplicità di creare una “routine” di spurgo.
Una funzione aggiuntiva del firmware permette tramite i comandi G-Code “G60” e “G61” di ricordare col primo (G60) la posizione precedente allo spurgo, il secondo (G61) “ricorda” le coordinate spaziali compreso l’asse Z, altrimenti non “reperibile” in altro modo.

La possibilità poi di utilizzare il comando G61 Zx, dove “x” sono mm in più rispetto alla posizione registrata e “-x” ovviamente in meno, permette un controllo totale per il riposizionamento della testina, senza creare problemi di collisioni con le parti stampate durante il riposizionamento della stessa dopo il cambio colore.

Andiamo quindi ai parametri essenziali per mettere in opera il sistema.

Slic3r01

Iniziamo col settare in Printer settings il numero di estrusori (4)

Slic3r02

Poi andiamo ad aggiungere il codice che ci permette di sfruttare le caratteristiche avanzate del firmware modificato nella finestra segnata…. nel nostro caso la sequenza di comandi si basa sui movimenti della stampante e la sua geometria, ovvio il fatto che ad ogni stampante va adattato un codice specifico.
Ad ogni cambio colore, quindi estrusore, la sequenza inserita sarà più o meno come quella a seguire descritta con la quale abbiamo eseguito queste prime sessioni di stampa a 4 colori.
Una volta inserita la giusta sequenza bisogna salvare ovviamente il setting della stampante.

G60 ; memorizzo la posizione di stampa 
G92 E0 ; azzero l’estrusore attivo
G1 F6000 E-5 ; ritraggo 5 mm.
G61 F20000 Z1 ; alzo di 1 mm. la testina dalla stampa
G1 F15000 X0 Y0 ; porto la testina  nell’angolo di spurgo del piano
G1 F5000 E-83 ; e ritraggo velocemente altri 78 mm andando in totale a 83 mm di ritrazione e mettendo “in parcheggio” il filo
T[next_extruder] ; attivo l’estrusore successivo in ordine di stampa
G92 E0 ; lo azzero
G1 F5000 E80 ; porto il filo “corrente” nella melt zone.
G1 F20000 Z0 ; e mi abbasso sul piano per utilizzare il piano stesso per l’eliminazione del materiale di spurgo
G92 E0 ; riazzero l’estrusore corrente
G1 F120 E60 ; e scarico 60 mm. di materiale per spurgare il colore ancora presente
G1 F5000 E55 ; ritraggo di 5 mm. (ritrazione bowden)
G92 E0 ; riazzero l’estrusore
G1 F15000 Y15 Z5 ; sposto il piano a “filo hotend” per staccare il filo rimasto dallo spurgo
G61 Z1 F20000 ; riporto allo Z + 1 mm. per non toccare la stampa
G61 F15000 X Y ; e velocemente riporto la testina sulla stampa alle coordinate registrate
G61 Z F20000 ; porto la testina esattamente allo Z registrato
G1 F5000 E4.5 ; recupero 4.5 mm della ritrazione
G92 E0 ; e riazzero l’estrusore

Da qui in poi continua la stampa in base al G-code generato dal programma stesso.
Il recupero di soli 4.5 mm. di ritrazione, invece dei 5 ritratti dopo lo spurgo, derivano dal fatto che lo spurgo stesso porta “in pressione” il filo all’interno del tubo bowden, pressione che viene appunto compensata riducendo di mezzo mm. il recupero della ritrazione al ritorno sulla stampa, dopo il cambio di colore.

Ora dovremmo “teoricamente” avere il sistema settato correttamente quindi lanciamo lo slicing di una stampa.

Slic3r03

Carichiamo quindi i 4 stl del nostro birillo a 4 colori in repetier caricando contemporaneamente i  file.

Slic3r04

Portiamo tutti gli oggetti nello stesso gruppo e centriamo la mesh

Slic3r05

poi assegniamo un estrusore diverso ad ogni stl in modo da distinguere i colori.
E’ possibile decidere quale estrusore destinare a quale sezione, quindi la gestione dei colori è completamente gestibile….

Ora non manca che lo slicing e la stampa per i quali rimando alla seconda parte di questo articolo,  che verrà pubblicata… a seguire…..

Fine prima parte.