Lentamente ma inesorabilmente, il capitolo chiamato Original Prusa i3 MK3S+ dovrà prima o poi concludersi, anche se non abbiamo intenzione di abbandonare il supporto già domani. In ogni caso, la serie MK3 ha avuto una lunga e meravigliosa vita. Le prime unità sono state inviate alla fine del 2017 e da allora abbiamo lavorato su aggiornamenti e miglioramenti. Le recenti versioni del firmware hanno apportato importanti aggiunte a un elenco già lungo di funzioni di sicurezza, in particolare il sistema di Thermal Model Protection che controlla continuamente se la stampante funziona come previsto con precisione millimetrica. Fin dall’inizio abbiamo messo in atto ottimi sistemi di sicurezza, ma c’è sempre spazio per i miglioramenti.

Modello Termico – Recap veloce

Il firmware 3.12 per MK3/S/+ ha introdotto una nuova funzione di sicurezza chiamata Modello di protezione termica, di cui abbiamo parlato in un articolo esteso. Quindi, un breve riepilogo: Abbiamo introdotto questa nuova funzione di protezione per identificare e risolvere rapidamente i problemi di riscaldamento imprevisti della stampante 3D. L’obiettivo è quello di interrompere il processo di riscaldamento entro 10-12 secondi per evitare potenziali danni. Questi problemi comprendono vari fattori come problemi di cablaggio, malfunzionamento dei blocchi di riscaldamento, guasti ai termistori e variabili esterne come correnti d’aria e formazione di blob nell’estrusore.

Questa funzionalità si basa su una simulazione interna dell’hotend. Il firmware monitora continuamente le letture dei termistori per assicurarsi che seguano un modello termico predefinito. Se vengono rilevate irregolarità, la stampante risponde in pochi secondi visualizzando un avviso di “ANOMALIA TERMICA”, che scompare quando le letture tornano ai valori previsti entro 5 secondi. Se l’anomalia persiste, la stampante disattiva il riscaldamento e attiva un avviso sonoro per avvisare l’utente. La domanda è: cosa succede se la stampante 3D è stata pesantemente modificata?

Raccolta dei dati

Abbiamo analizzato oltre 150.000 misurazioni per creare il modello termico delle nostre stampanti 3D MK3S+. In pratica, abbiamo controllato gli intervalli dei vari parametri (temperature, potenza erogata, tempo) e abbiamo creato un profilo generale che potesse essere applicato a tutte le nostre stampanti in modo sicuro. Ciò significava spingere le stampanti fino e oltre i loro limiti (sì, c’era del fumo). Ad esempio, abbiamo utilizzato un blocco riscaldatore customizzato con lo spazio per 2-3 termistori, in modo da poter inserire un termistore rotto insieme a uno perfettamente funzionante e confrontare i due in tempo reale.

 Tuttavia, non potevamo testare ogni singola modifica disponibile per le nostre stampanti e preparare modelli termici individuali. Le nostre stampanti sono open-source e tutti sono liberi di modificarle, metterle a punto e hackerarle nel modo che ritengono più opportuno, ma poiché la sicurezza e l’affidabilità sono tra le nostre massime priorità, abbiamo dovuto tracciare una impopolare linea di demarcazione. Si tratta del Modello Termico. Poco dopo il rilascio, abbiamo iniziato a ricevere segnalazioni da vari utenti. Alcune di queste erano in realtà grida di aiuto della stampante. Il Thermal Model Protection continuava a disturbare gli utenti semplicemente perché i componenti della stampante erano ormai deteriorati e dovevano essere sostituiti. Tutte le volte che il nuovo sistema dava un errore, era una cosa seria. La nostra raccomandazione è piuttosto chiara: se il vostro rilevatore di fumo inizia a darvi fastidio con continui bip, la soluzione non è rimuovere le batterie. Lo stesso vale per le nuove funzioni di sicurezza del firmware. Naturalmente, questo non significa che il firmware sia al 100% a prova di bomba: abbiamo già identificato e risolto un paio di casi insoliti. Quindi, se avete una MK3S+ di serie e il sistema di protezione vi dà problemi, piuttosto che “rimuovere le batterie da un rilevatore di fumo”, contattateci e saremo più che felici di assistervi. Questo per quanto riguarda le stampanti di serie e quelle modificate dall’utente. E poi c’è Revo.

L’hotend Revo realizzato dai nostri amici di E3D è una popolare alternativa all’hotend di serie di MK3S+. Pur essendo un ottimo pezzo di hardware, si tratta comunque di una modifica di terze parti. Dal momento che il nostro team si è dedicato completamente alla rifinitura della MMU3, il Revo ha dovuto essere affrontato in modo diverso. Fortunatamente, il Revo ha caratteristiche molto consistenti.

Misurare il Revo

A causa delle capacità limitate del nostro team di sviluppo, ci siamo rivolti alla community per chiedere aiuto. Molti utenti di GitHub sono intervenuti per aiutarci: i nostri più grandi ringraziamenti vanno a
alexiri, kromeninja, ulab, JWvP, snafu1282, matthiazzz, sdh2, devejhilton D-an-WMaroonOut09 solo per citarne alcuni. Grazie a tutti coloro che hanno contribuito a dare forma al firmware 3.13, i vostri contributi sono estremamente apprezzati! Abbiamo chiesto ai membri della community di misurare le temperature e le ventole in condizioni specifiche. La risposta è stata sorprendente e siamo stati in grado di raccogliere abbastanza dati in breve tempo; uno dei fattori che ci ha aiutato è il fatto che gli hotend Revo hanno delle caratteristiche consistenti in tutta la gamma di hotend prodotti.

Una volta raccolti i valori di base, abbiamo preparato un aggiornamento per il modello termico che è stato distribuito come firmware sperimentale per verificare se avevamo ottenuto il risultato giusto. È risultato un passo nella giusta direzione. I risultati erano promettenti, ma avevamo bisogno di un campione più ampio. Non potevamo raccogliere abbastanza dati dai membri della community e non volevamo nemmeno utilizzare valori troppo generici (ad ampio spettro) perché ciò avrebbe reso il sistema di protezione molto meno affidabile. Nel frattempo, stavamo aspettando che E3D ci fornisse i suoi dati ufficiali. E3D ha dovuto controllare vari lotti dei suoi estrusori Revo per trovare i valori limite, in modo da poter vedere qual è l’intervallo per i vari parametri. Una volta ottenuti questi valori, abbiamo potuto finalmente compiere l’ultimo passo: compilare tutto nel file del firmware. 
Alla fine abbiamo optato per una serie separata di file binari: è più facile flashare il file firmware giusto piuttosto che regolare i valori nelle Impostazioni. Inoltre, grazie a questi sistemi, ora possiamo aggiungere facilmente i vostri modelli termici: se desiderate aggiungere il supporto per la protezione dei modelli termici al vostro hotend di terze parti, contattateci e vi aggiorneremo.

Altri contributi della community

Di recente abbiamo rilasciato il nuovo firmware 3.13.2-RC1 e include ancora più contributi della community. L’architettura a 8 bit è fortemente limitata (per cui non sarà in grado di funzionare, ad esempio, con la funzione Input Shaper e Pressure Advance), ma è sempre fantastico vedere come le ottimizzazioni del codice possano far risparmiare preziosi byte. Con le recenti modifiche al codice, siamo stati in grado di risparmiare 6 kB di memoria flash interna (anche con la MMU3S e il Modello termico). Questo ci ha permesso di avere più spazio per le aggiunte della community. 
Abbiamo implementato la funzionalità di “Att./disatt. Sens. Filam.” inviata da Commod0re e anche il supporto per il G-code M118 di Robomagus che consente di inviare messaggi (stampa seriale) a host come Octoprint o PrusaLink. E infine, ma non meno importante – nel firmware 3.13.0, abbiamo implementato il supporto per Meatpack fornito tramite le richieste di pull di scottmudge! Si tratta di uno sviluppo entusiasmante, perché Meatpack consente essenzialmente la compressione di G-Code con un rapporto di ~0,61, con solo un piccolo overhead di elaborazione. Per oggi è tutto. Spero che vi sia piaciuto dare una sbirciatina alla nostra “cucina” del firmware. Non mancheranno altri diari di sviluppo nel prossimo futuro.