di Ivan Tarozzi

Ci sono quelli che spendono migliaia di euro nella stampante evoluta che fa anche il caffè, e ci sono quelli che usano Octoprint… vi lascio immaginare di quale categoria io faccia parte 🙂

Il mondo della stampa 3D è un mondo variegato e soprattutto in ambito making non è raro trovarsi di fronte a stampanti autocostruite o anche stampanti commerciali, che però non dispongono di funzionalità avanzate come la stampa da rete e il controllo remoto.

OctoPrint viene incontro proprio a queste esigenze, implementando un sistema per il controllo e il monitoraggio remoto della propria stampante 3D e la possibilità di “lanciare” le stampe da un qualunque PC connesso in rete e provvisto di web browser.

OctoPrint è software libero al 100%. Realizzato in python, può essere eseguito su qualsiasi computer, compreso il RaspberryPi o SBC simili.

Solitamente il workflow di stampa prevede la creazione di un modello 3D (o il download di un modello esistente), l’elaborazione tramite programma di slicing (esempio Cura o PrusaSlicer) con la conseguente generazione di file GCODE. Tale file deve quindi essere trasferito alla stampante; tipicamente, nelle stampanti più semplici ed economiche, questo equivale a copiare il file su una SD o una chiavetta USB da inserire poi nella stampante, per poi essere utilizzato attraverso il display della stampante stessa.

OctoPrint consente invece di rivedere questo workflow. Il PC su cui viene eseguito OctoPrint viene collegato via USB alla stampante 3D (la porta USB posteriore, quella che solitamente viene utilizzata anche per aggiornarne il firmware). Attraverso tale porta quasi tutte le stampanti dotate di firmware recente e sufficientemente aperto (…) consentono di ricevere i comandi GCODE, ovvero quei comandi che consentono la movimentazione della stampante, l’impostazione delle termoresistenze e l’attivazione dell’estrusione del filamento.

Lo stesso PC viene inoltre collegato alla rete e implementa una applicazione web utilizzabile tramite un normale web browser.

Accedendo all’interfaccia web di OctoPrint, è possibile attivare il collegamento seriale-USB di OctoPrint alla stampante e da quel momento in poi è possibile:

  • monitorare e impostare le temperature di estrusore e piatto di stampa
  • movimentare manualmente gli assi e l’estrusore
  • caricare un file GCODE con una preview della lavorazione e una stima dei tempi di stampa
  • avviare la stampa del file GCODE selezionato
  • monitorare da remoto lo stato di avanzamento, con tanto di vissualizzazione della stampa in tempo reale (se colleghiamo una normale webcam al nostro PC OctoPrint)
  • eseguire timelaps del nostro processo di stampa

Octoprint dispone inoltre di un grande numero di plugin che permettono ad esempio la contabilizzazione del filamento consumato per ogni stampa, statistiche di utilizzo, integrazione tramite Telegram (ad esempio OctoPrint vi avviserà con un messaggio quando la vostra stampa sarà terminata).

Infine, cosa piuttosto comoda nell’utilizzo di tutti i giorni, OctoPrint mette a disposizione una API che gli permette di lavorare in rete assieme ad altri SW. Un esempio pratico è l’integrazione con lo slicer: invece di salvare il file su disco e successivamente richiamarlo dall’interfaccia web di OctoPrint, è possibile configurare lo slicer per inviare direttamente il file ad OctoPrint, senza passaggi intermedi.

Ricapitolando i vantaggi del sistema:

  • posso eseguire la parte di pre-lavorazione e slicing su qualsiasi computer e in qualsiasi punto della rete
  • una volta eseguito lo slicing, posso inviare il GCODE direttamente ad OctoPrint
  • da qualsiasi punto della rete posso quindi avviare la stampa e monitorarne l’avanzamento

In questo contesto i comandi GCODE non vengono letti dalla SD della stampante, ma ricevuti in tempo reale dal PC OctoPrint collegato via USB. Per questo motivo risulta molto pratico utilizzare un RaspberryPi o un dispositivo simile, anche senza monitor collegato, ma semplicemente fruibile via rete. Le ridotte dimensioni, i bassi consumi ed eventualmente la possibilità di collegare ai suoi GPIO altri sensori o relè (ad esempio per accendere e spegnere l’alimentazione della stampante prima e dopo la stampa) ne fanno un ottimo candidato per eseguire OctoPrint.
Ma nulla vieta di utilizzare anche un “vecchio PC” o un notebook dedicato alla postazione di stampa.

Dal sito octoprint.org (o direttamente tramite l’utility “Raspberry Pi Imager”) è possibile scaricare l’immagine che consente di ottenere direttamente una SD con il sistema installato e configurato.

In alternativa è possibile eseguire l’installazione manuale (si tratta di un programma python, quindi venv e PIP consentono una installazione piuttosto agevole).

Oppure (la strada che ho provato io in occasione della reinstallazione di OctoPrint su un mio OrangePi con sistema Armbian) esiste uno script bash che si occupa di tutto: https://github.com/paukstelis/octoprint_install. Per tutte quelle situazione in cui si vuole usare un SBC diverso da RaspberryPi (e quindi l’impossibilità di usare l’immagine OctoPi) o in cui si vuole comunque installare il sistema su una generica versione di Linux, questo script fa egregiamente il suo lavoro, arrivando anche a configurare il servizio per la condivisione in rete della webcam, in modo che OctoPrint lo possa usare per mostrare il video e acquisire i fotogrammi per il timelaps.

Io uso OctoPrint da ormai alcuni anni, e lo trovo molto pratico. E’ un progetto vivo e in continua evoluzione. Un ottimo esempio di software libero, e se vi piace e ne avete le possibilità potete anche supportare il progetto https://octoprint.org/support-octoprint

OctoPrint – il polpo amico della tua stampante 3D