Alla fine del marzo 2024, abbiamo dato via alle spedizioni della MMU3 per Original Prusa MK4 (e per MK3.9). Si è concluso così un lungo periodo di test interni durante il quale la MMU3 ha dimostrato di poter resistere a migliaia e migliaia di cambi di filamento sulla MK4. La versione per MK3S+ è distribuita dal luglio 2023 e continua ad andare a gonfie vele.

In questo momento, la MMU3 per tutte le stampanti supportate è disponibile, la maggior parte delle versioni sono in stock e i tempi di consegna della variante MK4 si riducono di giorno in giorno ( vedete la tabella di spedizione per i dettagli). Siamo felici di vedere che su Reddit spuntano sempre più stampe particolarmente impegnative: stampe di oltre 150 ore senza alcun intervento non sono affatto rare ultimamente. 🙂

Prima di entrare nel vivo, tutti i link ai modelli si trovano alla fine dell’articolo!

MMU3 – veloce ed efficiente

Le ragioni per cui rimaniamo fedeli allo stesso concetto di unità multimateriale sono molteplici.

Prima di tutto, è un meccanismo incredibilmente semplice: si può facilmente costruire l’intera unità a casa (o aggiornare la versione precedente), la manutenzione è un gioco da ragazzi perché si può accedere rapidamente all’unità e pulire eventuali detriti di plastica, ecc. A questo scopo, abbiamo migliorato diverse parti dell’unità, in modo che ora sia possibile, ad esempio, regolare l’inclinazione in due fasi per un accesso più comodo. Ma in generale, la maggior parte delle parti è stata riprogettata e rinforzata con parti metalliche. Vorremmo ringraziare la community della stampa 3D per averci indirizzato nella giusta direzione grazie al prezioso feedback e alle modifiche apportate dagli utenti – date un’occhiata al nostro precedente articolo per saperne di più sulle modifiche hardware!

Il design della MMU3 consente inoltre di effettuare cambi di filamento molto rapidi, con una media di 35-45 secondi a seconda dei valori di spurgo impostati in PrusaSlicer. Con migliaia di cambi di filamento nel corso di una singola stampa multimateriale, questa operazione sottrae una notevole quantità di tempo al lavoro di stampa e l’unica soluzione più veloce è la XL.

Un’altra prerogativa dell’unità MMU3 è la stampa multimateriale con scarti gestibili. Invece di tagliare e scaricare quantità eccessive di filamento, la MMU3 utilizza una torre di scarico compatta e semi-vuota. Le dimensioni della torre di pulitura possono essere ulteriormente ridotte utilizzando le opzioni pulitura nell’oggetto o pulitura nel riempimento, che spurgano il materiale avanzato nell’ugello: in entrambi i casi, non dovrete preoccuparvi dei pezzi di plastica che si accumulano accanto alla stampante.

Quindi, anche se la nuova unità può sembrare somigliante alla precedente, l’esperienza è molto diversa, anche grazie a un firmware completamente rielaborato – abbiamo deciso di condividere l’intero processo di sviluppo della nuova versione qui sotto, nel caso in cui non mi crediate. 😉 Grazie alla comunicazione bidirezionale completa tra le due schede, la configurazione e l’esecuzione di stampe multimateriale sono molto più semplici. Il touchscreen a colori della MK3.5/MK4 offre ulteriori opzioni, come la possibilità di rimappare rapidamente i filamenti o di impostare la funzionalità SpoolJoin per l’esaurimento del filamento residuo da bobine di filamento quasi vuote.

Infine, abbiamo deciso di mantenere un design simile a quello dell’unità MMU2S, in modo che, se si desidera aggiornare l’unità più vecchia, sia facile ed economico farlo. E, naturalmente, è possibile flashare il firmware MMU3 sull’unità MMU2S per migliorarne le prestazioni senza sostituire alcun componente.

MMU3 per la MK4

Ora, la domanda ovvia è: perché ci è voluto più tempo per rilasciare la MMU3 per l’MK4 quando le altre versioni sono uscite dalla metà del 2023?

Ne abbiamo parlato diffusamente nei nostri post sul blog, brevemente: avevamo una MMU3 perfettamente funzionante pronta per la spedizione verso aprile 2023 e stavamo aspettando che la nostra capacità produttiva si liberasse un po’, quindi la MMU3 era prevista per giugno 2023. Tuttavia, quando l’estate si è avvicinata e le temperature hanno iniziato a salire, abbiamo notato un improvviso calo della sua affidabilità (MMU3+MK4). Perché la MK3S+ funzionava senza problemi e la MK4 aveva difficoltà? La causa risiede nei diversi sistemi di estrusione e hotend. Fino a quel momento avevamo una combinazione perfettamente funzionante e improvvisamente ci siamo ritrovati al punto di partenza.

Abbiamo quindi allestito una farm per i test e abbiamo iniziato subito a sviluppare una soluzione. Come abbiamo descritto in precedenza, con la MMU si tratta di stampe che richiedono facilmente più di 30 ore di lavoro, il che rende ogni tipo di test più dispendioso in termini di tempo.

La causa del problema era nascosta nelle punte dei filamenti: una volta scaricato un filamento dall’estrusore, la punta deve essere assolutamente perfetta. Tuttavia, nel nostro caso, i filamenti scaricati presentavano spesso un lungo e sottile ciuffo di plastica all’estremità, che creava problemi nel rigoroso design del Nextruder. Abbiamo descritto estensivamente di questa problematica nei nostri aggiornamenti precedenti (ottobre 2023 e gennaio 2024).

Un caso estremo di formazione di una stringa sulla punta

L’ultima volta abbiamo concluso con l’affermazione che la maggior parte dei problemi sulla MK4 sono causati dal filamento che non passa agevolmente attraverso l’estrusore e la guida del filamento. Questo mi porta a…

La Piastra Principale del Nextruder

Per ottenere il livello di affidabilità richiesto per il frequente caricamento/scaricamento del filamento, abbiamo dovuto modificare la parte “Piastra principale” del Nextruder e per questo motivo è inclusa anche nel pacchetto MMU3. Abbiamo anche riprogettato il processo di scarico del filamento, rendendolo più efficiente e molto più veloce!

Utilizzando la MK4 nel modo consueto e cambiando anche i filamenti più volte al giorno, la parte della piastra principale non mostrerà quasi alcun segno di usura anche dopo un lungo periodo di tempo. Tuttavia, le stampe multicolore possono facilmente comportare migliaia di cambi di filamento durante una singola stampa – senza l’MMU, probabilmente ci vorrebbero molti, molti anni di stampa frequente per arrivare a tale numero di cambi di filamento. Con così tanti cicli di cambio filamento durante le stampe multimateriale, la piastra principale può mostrare segni di usura a seconda dell’uso intensivo dell’MMU.

La parte inclusa nella MMU è stata stampata con Multi Jet Fusion per renderla più duratura. Tuttavia, deve essere considerato come un materiale di consumo, poiché si deteriora con il passare del tempo. La stampante tiene traccia dei cambi di filamento e vi informerà quando la durata di vita prevista di questo pezzo è prossima alla fine o se la procedura di caricamento del filamento è diventata meno affidabile a causa dell’eccessiva usura. Secondo i nostri test interni, la parte MJF dura circa 80.000 cambi di filamento e poi deve essere sostituita (la sostituzione richiede circa 10 minuti). Abbiamo testato a fondo questa parte internamente e se si verificano problemi prima del previsto, è probabile che siano causati da qualcos’altro. Non esitate a contattare il nostro team di assistenza per ricevere assistenza.

Come soluzione a breve termine, è possibile stampare il pezzo in PETG – il file STL è disponibile su Printables.com. Tuttavia, la durata sarà notevolmente inferiore.

Strada verso la MMU3

Alla fine del 2021/inizio 2022, il nostro responsabile del firmware David ha iniziato ad allestire un elenco di funzionalità per un nuovo firmware MMU2S. Inizialmente, l’unico obiettivo era quello di mostrare messaggi di stato adeguati sullo schermo della stampante, nel caso in cui la MMU avesse riscontrato un problema. Da lì si è sviluppato un progetto completamente nuovo con l’obiettivo di aggiungere una comunicazione bidirezionale completa, messaggi di stato adeguati e molte altre funzioni per rendere l’unità molto meno incline a problemi legati all’assemblaggio. Ci siamo resi conto che l’assemblaggio della MMU richiedeva troppa pazienza per garantire che tutto fosse PERFETTAMENTE allineato. Questo non è mai stato un problema con le nostre stampanti 3D (molti online dicono che “il kit di assemblaggio funziona e basta”), quindi la situazione con la MMU è stata piuttosto inaspettata e gli utenti hanno espresso con forza la loro frustrazione.

Di solito non abbiamo la necessità di andare online e dire “Va tutto bene”. Si va online per cercare aiuto per la risoluzione dei problemi. Con la comparsa di domande sulla MMU2 e di richieste di aiuto, si è creata la sensazione che la MMU2S non funzionasse affatto. Tuttavia, la maggior parte degli utenti non ha avuto grossi problemi con la stampa multimateriale. Inoltre, quando sono iniziate a comparire varie modifiche/fix della community, queste hanno avuto diversi gradi di successo, proprio perché era molto difficile assemblare la MMU con grande precisione, per cui la causa del problema si trovava spesso in diversi punti. Abbiamo preso molto sul serio questi commenti. In più, abbiamo contattato tutti i possessori di MMU2S con informazioni su come migliorare le loro unità tramite il nuovo firmware e abbiamo offerto modi per sopperire ai problemi in fase di assemblaggio.

Il firmware in soccorso

Abbiamo analizzato a fondo la situazione, analizzando i post degli utenti sui social media, i video, le recensioni, le modifiche e, naturalmente, i rapporti dell’assistenza tecnica. Inizialmente, volevamo rielaborare il firmware per renderlo più facile da usare, perché l’unità utilizzava un semplice, ma alquanto criptico, sistema di cinque LED per comunicare con l’utente. Questo è stato uno degli elementi che ha contribuito a creare confusione sui social media. “Oh no, il mio primo e terzo LED stanno lampeggiando! Cosa significa?”. Ha reso troppo difficile la gestione dei problemi di stampa più comuni. Sarebbe stato più sensato se la stampante avesse detto “Qualcosa blocca la rotazione del tenditore, controllare quanto segue:” invece di far lampeggiare i LED.

 

Inutile dire che il firmware della MMU2 è stato sviluppato in un piccolo team molti anni fa e che le cose sono cambiate molto all’interno dell’azienda negli ultimi anni. David si è quindi impegnato a migliorare la base di codice esistente, ma quello che all’inizio sembrava un semplice aggiornamento del firmware si è rivelato un progetto completamente nuovo che ha portato all’introduzione della MMU3. Invece di migliorare il vecchio codice, la base di codice esistente è volata fuori dalla finestra e il nuovo firmware è ripartito completamente da zero. Il completo stravolgimento della base del codice ha portato a un enorme miglioramento delle prestazioni complessive, cosa che non sempre accade nello sviluppo del software. 😉

Nell’arco di due mesi è stata completata la proposta di un’architettura firmware nuova di zecca. Inizialmente avevamo preso in considerazione l’IDE Arduino, ma poi l’abbiamo abbandonato perché non ci permetteva di fare tutto ciò che avevamo pianificato.

Il firmware è costruito su tre layer:

  • HAL – Hardware Abstraction Layer – consente l’accesso a timer, watchdog, EEPROM, USART e altro ancora.
  • Moduli – astrazione dei componenti dell’unità – pulsanti, sensore FINDA, Fsensor, Idler, LED, motore passo-passo completo, memoria permanente, protocolli, puleggia, selettore, seriale, temporizzazione, USB CDC, input utente
  • Logica dell’applicazione – logica delle funzioni, come taglio, espulsione, home, controllo di integrità dell’HW, caricamento e scaricamento del filamento e altro ancora.

Uno dei problemi del firmware precedente (che risale al 2017) consisteva nell’essere scritto come codice sincrono, il che escludeva sostanzialmente qualsiasi aggiornamento della stampante mentre la MMU stava eseguendo un’azione. Prima che la MMU potesse reagire a qualsivoglia nuovo input o situazione, doveva completare un determinato ciclo. Inoltre, non sapeva cosa stesse succedendo alla stampante. Si limitava a ricevere comandi che poi venivano eseguiti. Con la nuova architettura, non è più così. Tutto funziona come una vera e propria macchina a stati in parallelo per tutto il tempo e sia la stampante che la MMU comunicano sempre tra loro, condividendo informazioni in tempo reale. In questo modo, il sistema è in grado di risolvere molte situazioni che altrimenti causerebbero i messaggi “MMU richiede l’attenzione dell’utente”. Il caricamento del filamento non è riuscito? Proviamo a caricarlo di nuovo automaticamente. Bene, ora funziona, continuiamo.

 

Il tutto è stato realizzato su un semplice chip ATMega 32U4. Dal momento che non è possibile eseguire un sistema operativo incorporato con multitasking a causa delle risorse limitate, abbiamo dovuto crearne uno noi stessi. Non si tratta di un “vero” multitasking, ma di un’architettura intelligente che garantisce che nessun componente possa bloccare gli altri, in modo che tutto continui a funzionare.

Test delle unità e integrazione

David e il suo team hanno trascorso mesi a sviluppare il firmware utilizzando solo i test delle unità (test solo software di piccole parti del codice) e hanno sempre controllato se avr-gcc fosse in grado di compilare il codice. Le uniche parti di test fisico sono state eseguite con l’implementazione parziale dei componenti HAL. Una volta che lo sviluppo ha raggiunto le fasi successive, il team di sviluppo ha finalmente caricato il firmware sulla scheda MMU2S, che ha funzionato a meraviglia, dimostrando che l’approccio allo sviluppo test-driven è valido nella sua forma pura.

Una parte essenziale del nuovo firmware è stata l’implementazione di messaggi di errore adeguati – questo ha significato anche preparare l’altra parte (la stampante) per la comunicazione. Con due diversi rami del firmware (MK3S+ con la scheda Einsy e MK4 a 32 bit con la scheda xBuddy), c’era un po’ di lavoro in più da fare.

In definitiva, anche in questo caso utilizziamo macchine a stati. La stampante è il dispositivo di controllo e la MMU risponde solo ai comandi (ma questa volta può anche “riferire”). È logico che la CPU più potente della stampante controlli la comunicazione, le richieste e altro ancora. Al di sopra di questo protocollo di comunicazione c’è un layer aggiuntivo che collega il protocollo al firmware Marlin. In questo caso abbiamo voluto mantenere l’API di primo livello, ma tutto il resto è stato buttato via e completamente riscritto.

È stata una mole di lavoro incredibile, ma alla fine ne è valsa la pena. La comunicazione tra i due dispositivi avviene senza problemi e l’intera esperienza è praticamente senza soluzione di continuità.

E poi il team hardware ha avuto un paio di idee.

Regola qui, regola là…

Abbiamo già detto che le modifiche apportate dalla community sono state un indicatore importante che ci ha aiutato a concentrarci sulle aree cruciali.

Con il lavoro sul nuovo firmware in corso, il nostro team di sviluppo hardware ha esaminato l’unità MMU e ha deciso di migliorare alcune parti qui, altre parti là e alla fine ha riprogettato la maggior parte dei componenti, tranne l’elettronica. Anche in questo caso, potete trovare maggiori dettagli nel precedente articolo sul blog.

Nel frattempo, il team del firmware ha deciso di aggiungere un altro componente alla base di codice. Un componente piuttosto importante: il supporto del registro. O, per essere più precisi, la parametrizzazione runtime della MMU, simile a un sistema di registro MODBUS. C’è stato anche un tentativo di utilizzare il MODBUS completo, ma a causa delle risorse limitate su MK3S+, è stato abbandonato in favore di una versione modificata del protocollo MMU. Ora aggiunge 35 voci di registro (a 1 e 2 byte), alcune di sola lettura, altre di lettura/scrittura e altre ancora persistenti nella EEPROM. Questo ci offre una serie di nuove opzioni, tra cui i nuovi G-code M707 e M708 per leggere/scrivere le voci del registro. Per esempio, questo permette di configurare la velocità di caricamento del filamento prima di ogni cambio di filamento. Inoltre, ogni stampante parametrizza la sua MMU all’inizio, il che ci permette di avere un solo firmware MMU per tutti i modelli di stampante supportati.

Più potenza non sempre è meglio

Quando la MMU3 carica il filamento nell’estrusore, l’operazione è piuttosto semplice. Il tenditore ruota, applica una pressione sul filamento e lo preme contro l’ingranaggio di alimentazione. L’ingranaggio inizia a ruotare, spingendo il filamento attraverso il selettore e il tubo in PTFE nell’estrusore.

La nostra idea iniziale era che avessimo bisogno della massima pressione possibile. Perché no? È necessario spingere il filamento attraverso il tubo in PTFE, non vogliamo che il filamento scivoli o perda i passi. Ma in realtà non è così. Il movimento del filamento è controllato dai due sensori del filamento (nella MMU e nella stampante), quindi non importa se il motore perde qualche passo. E non è nemmeno necessario che funzioni a piena potenza.

In questo modo si evita di creare ammaccature nella stringa di filamento, dove un azionamento troppo energico avrebbe asportato del materiale dalla stringa stessa, impedendole di essere spinta in avanti dall’ingranaggio. Se guardavate Top Gear, probabilmente ricorderete Jeremy Clarkson che urlava “POWAAHH!” durante un burnout enorme che di solito evitava per poco un disastro: questo è simile. Una potenza eccessiva è inutile quando le ruote non riescono a trasferire la coppia sulla strada. Meno corrente al motore significa che se il filamento si dovesse bloccare da qualche parte, il motore non triterà il materiale e non causerà altri problemi mezz’ora dopo, nel momento in cui questa parte del filamento finirà nell’estrusore. Quando la MMU esaurisce l’intervallo/lunghezza di passo preimpostato, mostra comunque un errore. Ma il pezzo di filamento può essere riutilizzato (non buttato via).

Inoltre, a differenza della stampante, il vecchio firmware della MMU non disponeva di un motore stepper e planner dedicato. Questo rendeva l’unità più rumorosa del necessario, inoltre era quasi impossibile controllare le accelerazioni se non modificando il codice. Con il nuovo firmware, la situazione è migliorata. C’è un motore stepper e planner completo che gestisce 3 assi contemporaneamente, comprese le rampe di accelerazione. Questo ci permette di controllare dinamicamente le velocità e le accelerazioni di tutti i motori in fase di esecuzione. Inoltre, abbiamo cambiato il modo in cui i driver TMC2130 eseguono l’homing (ora misurano la lunghezza degli assi), il che contribuisce a rendere l’unità più silenziosa e affidabile.

Ci sono altre cose dietro il firmware della MMU3, ma sono ancora più complicate di quanto appena spiegato. Magari un’altra volta. 🙂

Stampe colorate con meno sprechi e più comfort

Questo riassume lo stato attuale della MMU3. L’unità è disponibile per tutti i modelli di stampante supportati, funziona in modo eccezionale e consente di ottenere risultati davvero notevoli con il minimo sforzo.

Stiamo smaltendo gli ordini arretrati di MMU3 più velocemente del previsto, quindi se non avete ancora la vostra unità, arriverà molto presto. E se state già stampando con più filamenti, condividete le vostre stampe! Non vediamo l’ora di vederle!

Buona stampa!

 

Link ai modelli:

https://3dsets.com/product/model-7-buggy/

https://www.printables.com/model/384371-the-frog-prince-multi-and-single-colour-fairytale-

https://www.printables.com/model/748459-articulated-sea-turtle-singlecolor-and-multicolor

https://www.printables.com/model/576954-chibi-wolverine

https://www.printables.com/model/144657-mini-viking

https://www.printables.com/model/379304-astronaut-sitting-on-moon

https://www.printables.com/model/138600-cat-sculpt-with-mmu-painting

https://www.printables.com/model/563626-lola-bunny-space-jam

https://cults3d.com/en/3d-model/art/kingfisher-mmu-three-versions