Tutorial #1: aggiornare il firmware della stampante 3D – seconda parte

Riepilogo

A questo punto ci troviamo in questa situazione:

  • Visual Studio Code installato
  • I plugin PlatformIO IDE e Auto Build Marlin installati in VSCode
  • Il codice sorgente del firmware Marlin (ad es. Marlin-2.0.7.2.zip per la versione stabile o Marlin-bugfix-2.0.x.zip per la versione bugfix)
  • le configurazioni predefinite (ad es. Configurations-release-2.0.7.2.zip per la versione stabile o Configurations-bugfix-2.0.x.zip per la versione bugfix)

Dopo la prima fase propedeutica, passiamo alla generazione del firmware. Trovate la prima parte di questo tutorial a questo indirizzo.

Il codice sorgente

Come anticipato il codice sorgente del Marlin è generico, quello che lo specializza per una specifica stampante, sono i file di configurazione.

Come suggerito, è sempre meglio partire da una versione stabile del firmware. Al momento della scrittura di questo tutorial, l’ultima release disponibile è la versione 2.0.7.2, quindi avremo a disposizione l’archivio compresso Marlin-2.0.7.2.zip.

Scompattatelo dove vi viene più comodo, ma per mantenere le cose in ordine, vi suggerisco di creare una cartella PlatformIO dentro Documenti:

Come avrete notato dall’immagine, dall’archivio decompresso sono state estratte molte cartelle ma quella che ci interessa di più è quella evidenziata e chiamata “Marlin”. All’interno di questa cartella ci sono i due file che consentono la specializzazione e personalizzazione del firmware per uno specifico tipo di stampante: Configuration.h e Configuration_adv.h

Adesso aprite o decomprimete l’archivio Configurations-release-2.0.7.2.zip. All’interno troverete la cartella config/examples con delle altre sottocartelle suddivise per nome del produttore della stampante.

Ad esempio, assumiamo di voler aggiornare il firmware della Anet A8, troveremo i file di configurazione in config/examples/Anet/A8:

Ora: selezionate tutti i file che ci sono nella cartella A8 (in questo caso sono tre: Configuration.h, Configuration_adv.h e _Statusscreen.h) e copiateli nella cartella Documenti/PlatformIO/Marlin-2.0.7.2/Marlin, sovrascrivendo quelli già presenti.

Compiliamo (Anet A8)

Finalmente con la copia dei file di configurazione, siamo pronti a compilare il nostro firmware Marlin aggiornato all’ultima versione stabile per la Anet A8!

Aprite VSCode. Il programma si “lamenterà” che non è stata ancora aggiunta una cartella di lavoro e noi lo accontenteremo aggiungendo la cartella Marlin-2.0.7.2 precedentemente creata in Documents/PlatformIO/:

Adesso con l’aiuto del plugin Auto Build, compileremo il nostro firmware:

  1. Selezionate il plugin Auto Build dalla barra laterale sinistra;
  2. Cliccate su “show the ABM panel”
  3. Premete sul pulsante “Build” (quello con l’icona a forma di martello).

A questo punto inizierà la compilazione. Vedrete muoversi una barra di progresso e una nuova finestra (terminal) mostrerà l’andamento della compilazione.

A seconda della potenza della vostra macchina e dalla velocità della vostra connessione internet, ci potrebbero volere da una decina di secondi, fino a qualche minuto ma in ogni caso è un processo che non vi farà restare in attesa per molto.

Questo è quello che vedrete al termine della compilazione:

Nella finestra del terminale c’è l’esito della compilazione che come in questo caso è andata a buon fine (SUCCESS).

Ho notato che spesso la prima compilazione di una nuova variante non va a buon fine. Basta ripeterla nuovamente. Il problema scaturisce dal caricamento asincrono delle “dipendenze”: PlatformIO scarica autonomamente da internet tutti i file necessari alla compilazione e se il download non si completa in tempo, parte comunque la compilazione che a questo punto fallisce. Ripetendo l’operazione andrà a buon fine perché stavolta le dipendenze sono già al loro posto.

La piccola icona a forma di cartella cerchiata nell’immagine, è utilissima perché se cliccata, apre automaticamente la cartella dove è stato creato il firmware della nostra stampante:

È una funzione molto utile perché come potete vedere, il percorso dove viene depositato il firmware non è esattamente intuitivo da trovare.

Compiliamo (Ender 3)

Chiudete VSCode e ripetiamo i passi precedenti questa volta per un altra stampante sempre molto diffusa: la Creality Ender 3.

Nell’archivio Configurations-release-2.0.7.2.zip cerchiamo la cartella config/examples/Creality/Ender-3 Pro V1.5/

Perché Ender-3 Pro V1.5 e non la cartella Ender-3 o la V2? Perché è molto più probabile che la vostra nuova Ender 3 appena arrivata, sia in realtà una Ender-3 Pro V1.5 senza gli accessori della versione Pro.

A questo punto l’unica maniera per essere sicuri di non sbagliare è aprire il coperchio sotto il piano di stampa e dare una occhiata alla scheda madre:

Se la vostra stampante come nella foto è una versione 4.2.2 allora abbiamo indovinato la versione corretta dei file di configurazione, cioè quelli della Ender-3 Pro V1.5.

Se invece trovate qualcosa di diverso come ad esempio V1.1.3 allora avete una Ender-3 originale. Se invece ancora trovaste una scheda madre serigrafata con V4.2.7 allora avete sicuramente una Ender-3 Pro (oppure una Ender 3 V2 prima serie) o una Ender 3 aggiornata.

L’altra discriminante per dedurre il modello di Ender 3 è il display. Ne esistono due tipi: monocromatico e a colori.

Siccome a questo punto la cosa si sta facendo complicata, di seguito troverete uno schema di riepilogo:

ModelloScheda MadreDisplayCartella configurazioneVariante Marlin
Ender 3 (originale)V1.x.xMonoEnder-3/CrealityV1BOARD_MELZI_CREALITY
Ender 3 (nuova)V4.2.2MonoEnder-3 Pro V1.5BOARD_CREALITY_V4
Ender 3 (upgraded)V4.2.7MonoEnder-3/CrealityV427BOARD_CREALITY_V427
Ender 3 ProV1.x.xMonoEnder-3 Pro/CrealityV1BOARD_MELZI_CREALITY
Ender 3 ProV4.2.7MonoEnder-3 Pro/CrealityV427BOARD_CREALITY_V427
Ender 3 Pro V1.5V4.2.2MonoEnder-3 Pro V1.5BOARD_CREALITY_V4
Ender 3 V2V4.2.2ColorEnder-3 V2BOARD_CREALITY_V4


Attenzione: questa confusione nella nomenclatura Creality, di fatto non consente di individuare correttamente il modello. Quindi è fortemente raccomandato verificare sempre la revisione della scheda madre, soprattutto se la vostra stampante non è nell’elenco (vedi ad es. la Ender 3X).

Individuata la variante corretta, copiamo i file di configurazione:

Come in precedenza i file sono già presenti e vi verrà chiesto di sovrascriverli. La cartella di destinazione è sempre la stessa: /Documents/PlatformIO/Marlin-2.0.7.2/Marlin/

Attenzione: se avete saltato la parte precedente per la Anet A8, aprendo Visual Studio Code dovrete prima di tutto indicargli dove si trova la cartella Marlin-2.0.7.2 (vedi sopra).

Riaprite Visual Studio Code e selezionate il plugin Auto Build come in precedenza. Questa volta, vi compariranno le informazioni relative all’Ender 3.

  1. Selezionate il plugin Auto Build
  2. Cliccate sulla scritta “show the ABM panel”
  3. Cliccate sul pulsante “Build” (quello col simbolo del martello).

La compilazione avrà inizio ma siccome abbiamo cambiato piattaforma, PlatformIO scaricherà le dipendenze automaticamente prima di procedere alla compilazione vera e propria.

Come nel caso precedente al termine della compilazione verrà mostrato l’esito e comparirà l’icona della cartella dove è stato registrato il nostro firmware:

Cliccate sull’icona della cartellina e vi si aprirà la cartella contente il firmware appena creato.

Caricare il firmware (Ender 3)

Per caricare il firmware appena generato, basta copiarlo su una scheda microsd, magari la stessa che usate normalmente per i file .gcode, ed inserirla nella stampante spenta.

Accendete la stampante. Noterete che il display resterà acceso ma vuoto per un periodo di tempo più lungo del solito, circa un minuto. La stampante ha rilevato la presenza di un nuovo firmware e sta procedendo in autonomia all’aggiornamento.

Se tutto va a buon fine, il display riprenderà vita mostrandovi il logo del Marlin e la versione aggiornata.

Complimenti: la vostra stampante ora è aggiornata all’ultima versione del firmware!

Riepilogo

  • Abbiamo imparato ad identificare i file di configurazione per la Anet A8 e per le varianti più diffuse di Ender 3 ma con queste informazioni sarete in grado di compilare la vostra versione aggiornata del Marlin in piena autonomia per qualunque altra stampante supportata;
  • Abbiamo appreso l’utilizzo del plugin ufficiale Marlin per la compilazione del firmware.

Nella prossima parte, affronteremo il capitolo “spinoso” del caricamento del firmware su stampanti come la Anet A8 che non collaborano “spontaneamente”.