{"id":402,"date":"2024-07-02T13:33:47","date_gmt":"2024-07-02T12:33:47","guid":{"rendered":"https:\/\/www.3dprint-italia.it\/WP\/?page_id=402"},"modified":"2024-08-26T18:57:32","modified_gmt":"2024-08-26T17:57:32","slug":"marlin-2-x-da-zero-senza-lasciarci-le-penne","status":"publish","type":"page","link":"https:\/\/www.3dprint-italia.it\/WP\/marlin-2-x-da-zero-senza-lasciarci-le-penne\/","title":{"rendered":"Marlin 2.x da Zero senza lasciarci le penne"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Link ad aiuti esterni<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Alcuni suggerimenti prima di iniziare a spiegare Marlin. Marlin ha un sacco di parametri per la configurazione delle nostra stampanti, se ti piace come me sfogliare il cartaceo, puoi acquistare la guida realizzata da Salvatore Patti in vendita su <a href=\"https:\/\/www.amazon.it\/firmware-Marlin-EDIZIONE-GOLD\/dp\/B0BGKR6FFS?_encoding=UTF8&amp;pd_rd_w=9Te2X&amp;content-id=amzn1.sym.443cce2f-e93b-4c88-835f-639d2b80c99b&amp;pf_rd_p=443cce2f-e93b-4c88-835f-639d2b80c99b&amp;pf_rd_r=257-0548122-6487245&amp;pd_rd_wg=mKwYr&amp;pd_rd_r=4949e909-86c4-4e12-884a-fbd0ca116baf&amp;linkCode=ll1&amp;tag=3dprintital09-21&amp;linkId=a6ab372a77e263040aa510d22656d4ff&amp;language=it_IT&amp;ref_=as_li_ss_tl\">Amazon<\/a> (i link contiene tag in modo che il gruppo riceva una percentuale sulla vendita, il prezzo finale non cambia)<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/www.amazon.it\/firmware-Marlin-EDIZIONE-GOLD\/dp\/B0BGKR6FFS?_encoding=UTF8&amp;pd_rd_w=9Te2X&amp;content-id=amzn1.sym.443cce2f-e93b-4c88-835f-639d2b80c99b&amp;pf_rd_p=443cce2f-e93b-4c88-835f-639d2b80c99b&amp;pf_rd_r=257-0548122-6487245&amp;pd_rd_wg=mKwYr&amp;pd_rd_r=4949e909-86c4-4e12-884a-fbd0ca116baf&amp;linkCode=ll1&amp;tag=3dprintital09-21&amp;linkId=a6ab372a77e263040aa510d22656d4ff&amp;language=it_IT&amp;ref_=as_li_ss_tl\"><img loading=\"lazy\" decoding=\"async\" width=\"313\" height=\"466\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/71uXDns6YGL._SY466_.jpg\" alt=\"\" class=\"wp-image-403\" style=\"width:183px;height:auto\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/71uXDns6YGL._SY466_.jpg 313w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/71uXDns6YGL._SY466_-202x300.jpg 202w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/71uXDns6YGL._SY466_-16x24.jpg 16w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/71uXDns6YGL._SY466_-24x36.jpg 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/71uXDns6YGL._SY466_-32x48.jpg 32w\" sizes=\"auto, (max-width: 313px) 100vw, 313px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Il nostro Gianluca ha fatto una breve recensione sul nostro <a href=\"https:\/\/www.youtube.com\/@3DPrintItalia\">canale youtube<\/a><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Recesione libro  Marlin di Salvatore Patti\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/G1fHp8mrk_c?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Sul canale trovate anche una guida video realizzata sempre da Gianluca degli argomenti che vedremo piu&#8217; nel dettaglio in questa guida, cercheremo di trattare piu&#8217; nel dettaglio tutti gli argomenti relativi al firmware Marlin, anche se, ad oggi, sembra che il piu&#8217; utilizzato inizi ad essere Klipper. Ma tranquilli, parleremo anche di quello.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Tutorial Marlin Partendo da 0\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/1IAMQLjw8d8?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Breve introduzione<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Questa guida vuole essere una breve introduzione ai comandi di base per una buona compilazione del firmware per la tua stampante, questa e&#8217; una guida autorealizzata, differente dalla guida ufficiale di cui abbiamo gia&#8217; fatto la traduzione parziale. cercheremo di analizzare e spiegare un po&#8217; piu&#8217; a fondo le funzioni dei vari settaggi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cercate di seguire l&#8217;articolo in ordine, in quanto viene presentato in base a come si presentano i comandi su Marlin piano piano che scorriamo i file da compilare.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se seguirai questa guida passo passo, riceverai un tassello in pi\u00f9 da aggiungere alle tue conoscenze sulla stampa 3D e vedrai che soddisfazione dar\u00e0 compilarsi il proprio firmware.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se durante il percorso avrai dei dubbi, puoi commentare sotto o accedere al nostro <a href=\"https:\/\/t.me\/+WyZLiMYiNQ04NWZk\">canale Telegram<\/a> dove saremo disponibili noi ed altri utenti per aiutarti.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Qui di seguito troverai l&#8217;indice degli argomenti<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introduzione a Marlin 2.x<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"559\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_125252189-1024x559.png\" alt=\"\" class=\"wp-image-405\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_125252189-1024x559.png 1024w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_125252189-300x164.png 300w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_125252189-768x420.png 768w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_125252189-1536x839.png 1536w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_125252189-24x13.png 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_125252189-36x20.png 36w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_125252189-48x26.png 48w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_125252189.png 1607w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Quando aprirai per la prima volta i file per la configurazione di Marlin 2.x, la prima cosa che penserai sar\u00e0 <strong>&#8220;Nono sono mica un programmatore io&#8221;<\/strong>, nulla di piu&#8217; errato, vedrai in questa guida passo passo che la compilazione del firmware risulta semplice anche per chi non ha basi di programmazione.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Marlin si compone di molti file, ma alla fine i file essenziali su cui lavorare sono due, l&#8217;importante \u00e8 armarsi di un buon editor di testo, o, ancora meglio, programmi specifici per la compilazione del firmware che ti daranno i giusti suggerimenti per la compilazione. Vedremo in seguito i programmi necessari.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se poi vorrai addentrarti ancora di pi\u00f9 nel mondo di Marlin, allora i file su cui lavorare potrebbero diventare molti di pi\u00f9.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ti domanderai <strong>&#8220;Ma perch\u00e9 devo mettermi a compilare io il mio firmware?&#8221;<\/strong>. Le risposte possono essere molteplici, personalmente la risposta \u00e8 mi piace scoprire cosa c&#8217;\u00e8 dietro il funzionamento delle stampanti 3D e mi piace modificare le cose come piace a me. Inoltre la modifica del firmware pu\u00f2 portare a miglioramenti di eventuali errori del firmware stock delle stampanti.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sei un vero maker? allora non aver paura e vai avanti, ti si potrebbero presentare errori, ma con l&#8217;aiuto di Google, ma soprattutto delle community esistenti su Marlin (vantaggio rispetto a Klipper, che ha una community in crescita).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In questa guida per configurare Marlin 2.x, andremo a vedere la configurazione per una stampante &#8220;Custom&#8221;, o &#8220;auto costruita&#8221; per chi odia gli inglesismi (a volte necessari, si veda per esempio slicer che affettatrice suona male). Apriremo il file necessari alla configurazione e li modificheremo passo passo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Essenziale, per completare la configurazione, \u00e8 conoscere tutti i componenti e le caratteristiche della tua stampante, come ad esempio tipo di estrusore, motori, scheda madre, dimensioni di stampa, modello termistore, tipo di end stop, etc. Pertanto prima di iniziare \u00e8 meglio raccogliere tutti questi dati, altrimenti ti troverai ad un punto di stop nella configurazione.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Preparare Marlin per la personalizzazione<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Esistono alcuni siti che aiutano nella compilazione di Marlin, ma non li suggerisco, in quanto si basano su configurazioni fatte da utenti per stampanti personalizzate. In questa guida vedremo come partire dalle configurazioni presenti sul sito di Marlin, abbiamo due possibilit\u00e0:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Configurazione con i file di base<\/li>\n\n\n\n<li>Configurazione con file di esempio di una stampante similare<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In entrambi i casi \u00e8 necessario procedere a configurare il nostro ambiente di lavoro.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"download-firmware\">Scaricare il firmware<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Molto facile! se sei pratico con GitHub, dal tuo browser preferito accedi al gitHub di Marlin al seguente link:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/MarlinFirmware\/Marlin\">https:\/\/github.com\/MarlinFirmware\/Marlin<\/a><\/p>\n\n\n\n<figure class=\"wp-block-pullquote\"><blockquote><p>Se vuoi conoscere le novit\u00e0, i contenuti o i problemi risolti delle diverse versioni di Marlin, puoi farlo dal seguente link:<\/p><cite><strong><a href=\"https:\/\/github.com\/MarlinFirmware\/Marlin\/releases\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/MarlinFirmware\/Marlin\/releases<\/a><\/strong><\/cite><\/blockquote><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Esistono varie versione scaricabili di Marlin:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Versione corrente: \u00e8 le versioni stabile e testata di Marlin;<\/li>\n\n\n\n<li>Patched: e&#8217; la versione stabile, ma con l&#8217;aggiornamento relativo ai bug segnalati, ma non ancora convertita in versione stabile (pu\u00f2 provocare danni alla configurazione, da non usare su macchine di produzione), identificata con la versione senza lts davanti al nome;<\/li>\n\n\n\n<li>Nightly build: E&#8217; la versione di studio dei bug, da non usare per macchine di produzione, \u00e8 di fatto la versione per i test, identificata con bugfix davanti al nome.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In poche parole una versione di Marlin, prima di diventare corrente, passa prima per lo stadio Nightly e poi Patched.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se non vi trovate bene navigando su GitHub, \u00e8 possibile scaricare le tre versioni di Marlin e relative configurazioni anche dal sito alla pagina di <a href=\"https:\/\/marlinfw.org\/meta\/download\/\">download<\/a> scegliendo la versione desiderata dalla colonna download.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"546\" height=\"849\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_155930679.png\" alt=\"\" class=\"wp-image-411\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_155930679.png 546w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_155930679-193x300.png 193w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_155930679-15x24.png 15w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_155930679-23x36.png 23w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_155930679-31x48.png 31w\" sizes=\"auto, (max-width: 546px) 100vw, 546px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Il passaggio successivo, se disponiamo di una stampante commerciale, sar\u00e0 scaricare le configurazioni preconfigurate dalla pagina <a href=\"https:\/\/github.com\/MarlinFirmware\/Configurations\">https:\/\/github.com\/MarlinFirmware\/Configurations<\/a> o dal sito indicato sopra, dalla colonna Configurations, facendo attenzione a scaricare la configuraziona create per la versione Marlin scaricata.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>ATTENZIONE<\/strong>: non utilizzare mai la versione import, in quanto sono configurazioni importate e non ancora testate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ora che disponiamo dei file  di Marlin sul tuo computer, dobbiamo decomprimerli. Una soluzione ottimale e&#8217; avere il tutto in cartelle senza troppe sottocartelle evitando accenti e simboli nei nomi, in quanto potrebbe generare errori in fase di compilazione (personalmente cerco di evitare anche gli spazi).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Andremo ad unire la versione base stabile di Marlin con la configurazione della nostra macchina (ricordo che useremo una preconfigurazione di macchina esistente simile alla nostra):<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Apriamo Esplora file di Windows e accediamo alla cartella in cui abbiamo scaricato e decompresso il repository Marlin;<\/li>\n\n\n\n<li>Una volta l\u00ec, apriremo un altro esploratore di file con il contenuto del repository di configurazione<\/li>\n\n\n\n<li>Troveremo due file di configurazione Marlin per la nostra stampante, nell&#8217;immagine di esempio utilizzeremo una Ender 3 (sono felice possessore di due ender 3 ben modificate, ma vi invito anche a leggere la <a href=\"https:\/\/www.3dprint-italia.it\/WP\/cera-una-volta-una-ender-3\/\">storia di Azzurra<\/a>, la rinascita di una ender 3, sviluppata dal nostro amico luigi) con le preconfigurazioni per una scheda SKR MINI v2 (la cartella da cercare sarebbe quella indicata nella seguente schermata):<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"860\" height=\"174\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_180526166.png\" alt=\"\" class=\"wp-image-413\" style=\"width:683px;height:auto\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_180526166.png 860w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_180526166-300x61.png 300w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_180526166-768x155.png 768w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_180526166-24x5.png 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_180526166-36x7.png 36w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_180526166-48x10.png 48w\" sizes=\"auto, (max-width: 860px) 100vw, 860px\" \/><\/figure>\n<\/div>\n\n\n<ul class=\"wp-block-list\">\n<li>Copiamo i file all&#8217;interno della cartella del nostro preconfigurato (riquadro nello screenshot precedente e li incolleremo (sostituendo quelli esistenti) nella cartella \u201c\u2026\\Marlin\u201d dove abbiamo decompresso il repository Marlin come nella seguente schermata:<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"770\" height=\"390\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_180649142.png\" alt=\"\" class=\"wp-image-414\" style=\"width:578px;height:auto\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_180649142.png 770w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_180649142-300x152.png 300w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_180649142-768x389.png 768w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_180649142-24x12.png 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_180649142-36x18.png 36w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_180649142-48x24.png 48w\" sizes=\"auto, (max-width: 770px) 100vw, 770px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Adesso il nostro Marlin aspetta solo di essere compilato!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Installazione dei software necessari per editare e compilare Marlin<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Il passo successivo \u00e8 installare il software necessario, per farlo, \u00e8 necessario scaricare e installare i seguenti programmi:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Python: https:\/\/www.python.org\/downloads\/ puoi scaricarlo anche dall&#8217;App Store di Windows, che in alcuni casi esegue un&#8217;installazione pi\u00f9 corretta;<\/li>\n\n\n\n<li>Git: https:\/\/git-scm.com\/<\/li>\n\n\n\n<li>Visual Studio Code: https:\/\/code.visualstudio.com\/Anche se sembra che Python e Git non vengano utilizzati in nessun passaggio, sono requisiti di Visual Studio Code per questo tutorial<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Una volta installati i programmi, possiamo installare il plugin PlatformIO in Visual Studio Code. Per fare ci\u00f2 seguiremo i seguenti passaggi:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Premiamo i quadrati nel menu di sinistra  <img loading=\"lazy\" decoding=\"async\" width=\"46\" height=\"46\" class=\"wp-image-416\" style=\"width: 46px;\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_194648255.png\" alt=\"\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_194648255.png 46w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_194648255-24x24.png 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_194648255-36x36.png 36w\" sizes=\"auto, (max-width: 46px) 100vw, 46px\" \/> ;<\/li>\n\n\n\n<li>Nel motore di ricerca scriviamo \u201cPlatformIO\u201d;<\/li>\n\n\n\n<li>Premiamo sul pulsante <img loading=\"lazy\" decoding=\"async\" width=\"51\" height=\"25\" class=\"wp-image-417\" style=\"width: 51px;\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_194840337.png\" alt=\"\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_194840337.png 51w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_194840337-24x12.png 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_194840337-36x18.png 36w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-01_194840337-48x24.png 48w\" sizes=\"auto, (max-width: 51px) 100vw, 51px\" \/> per installare.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" class=\"wp-image-419\" style=\"width: 150px;\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/images.png\" alt=\"\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/images.png 225w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/images-150x150.png 150w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/images-24x24.png 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/images-36x36.png 36w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/images-48x48.png 48w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>Possibili soluzioni ai problemi di installazione dell&#8217;estensione Platformio:<\/strong><br>&#8211; <strong>Installa prima Python<\/strong>, come suggerito in questa guida, dal suo sito web o dall&#8217;App Store di Windows;<br>&#8211; <strong>Esegui VSC come amministratore<\/strong>, almeno durante l&#8217;installazione delle estensioni necessarie, in questo modo eviterai che alcune azioni vengano limitate o bloccate in determinate configurazioni di Windows;<br>&#8211; Vai su \u201c<strong>Applicazioni e funzionalit\u00e0<\/strong>\u201d nel caso di Windows, sceglieremo l&#8217;opzione \u201cAlias \u200b\u200bdi esecuzione dell&#8217;applicazione\u201d disattivando il programma di installazione dell&#8217;applicazione python.exe e python3.exe. Una volta completato questo passaggio, riavvieremo VSC e riproveremo l&#8217;installazione;<br>&#8211; <strong>Assicurati che il tuo antivirus\/firewall non stia bloccando<\/strong> il processo di installazione di VSC\/Platformio poich\u00e9 parti del processo richiedono il download di moduli da Internet.<br><strong>Se non ha funzionato\u2026 ricominciare da zero e nell&#8217;ordine di installazione corretto:<\/strong><br>&#8211; <strong>Disinstallare completamente VSC<\/strong> e tutti gli altri componenti correlati installati;<br>&#8211; <strong>Avvia un pulitore di registro<\/strong> come CCleaner, PrivaZer o simili, rimuovendo eventuali riferimenti ad applicazioni che non sono necessarie;<br>&#8211; <strong>Eliminare eventuali directory rimanenti<\/strong> relative a queste attivit\u00e0 di compilazione Marlin;<br>&#8211; <strong>Installa tutto da zero<\/strong> seguendo i passaggi indicati nella guida presente in questa guida.<br><br><strong>Controlli per verificare che Python sia installato correttamente (dipende dalla versione di Python installata e dal sistema operativo), poich\u00e9 \u00e8 una parte fondamentale sia per l&#8217;installazione di Platformio che per il suo funzionamento:<\/strong> <br>\u2013 Esegui da riga di comando (tasto <strong>Windows + R<\/strong> -&gt; cmd.exe) <br>\u2013 <strong>echo %PATH% <\/strong>\u2013 questo dovrebbe restituire un elenco di directory in cui una di queste dovrebbe essere Python e dobbiamo assicurarci che punti alla versione compatibile con la nostra versione di Platformio\u2026 ad esempio, il percorso mostra una versione 2.5 e il nostro Platformio necessita di Python 3.6+ <br>\u2013 <strong>echo %PYTHONPATH% <\/strong>\u2013 come il precedente, dovrebbe restituire il percorso Python <br>\u2013 python \u2013version \u2013 se quanto sopra \u00e8 corretto dovrebbe restituire la versione del nostro Python installato <br>\u2013 <strong>pip \u2013version <\/strong>\u2013 pip \u00e8 un programma di installazione del pacchetto Python e potrebbe anche essere richiesto per alcune azioni <br><br><strong>Elenco delle alternative se non \u00e8 possibile far funzionare VSC+Platformio<\/strong>: <br>\u2013 Usa Sublime invece di VSC <br>\u2013 Utilizza qualsiasi editor di testo e avvia Platformio dalla riga di comando <br>\u2013 Utilizza Atom invece di VSCdos direttamente con le versioni Marlin e potrebbe contenere configurazioni errate o problematiche<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Compiliamo il nostro Marlin<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Una volta ottenuti i file di Marlin ed installato i software necessari, dobbiamo compilarlo per ottenere i file utilizzabili dalle nostre stampanti.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Apriamo <strong>Visual Studio Code<\/strong>, selezioniamo l&#8217;icona di platformIO <img loading=\"lazy\" decoding=\"async\" width=\"30\" height=\"29\" class=\"wp-image-423\" style=\"width: 30px;\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_095957428.png\" alt=\"\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_095957428.png 43w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_095957428-24x24.png 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_095957428-36x36.png 36w\" sizes=\"auto, (max-width: 30px) 100vw, 30px\" \/> nella colonna di di sinistra e poi selezionare il pulsante <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"27\" class=\"wp-image-424\" style=\"width: 150px;\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_100045269.png\" alt=\"\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_100045269.png 229w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_100045269-24x4.png 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_100045269-36x6.png 36w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_100045269-48x9.png 48w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"474\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_095921360-1024x474.png\" alt=\"\" class=\"wp-image-422\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_095921360-1024x474.png 1024w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_095921360-300x139.png 300w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_095921360-768x355.png 768w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_095921360-24x11.png 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_095921360-36x17.png 36w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_095921360-48x22.png 48w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_095921360.png 1072w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Navighiamo nel <strong>percorso dove abbiamo la nostra cartella contenente il repository di Marlin<\/strong> scaricato da GitHub:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"824\" height=\"517\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_100411067.png\" alt=\"\" class=\"wp-image-425\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_100411067.png 824w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_100411067-300x188.png 300w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_100411067-768x482.png 768w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_100411067-24x15.png 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_100411067-36x23.png 36w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_100411067-48x30.png 48w\" sizes=\"auto, (max-width: 824px) 100vw, 824px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Come gi\u00e0 detto, ti consigliamo di non avere la cartella con i tuoi sorgenti Marlin in molte directory nidificate poich\u00e9 ci\u00f2 potrebbe causare alcuni problemi. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;ideale \u00e8 averlo alla radice di qualsiasi tua unit\u00e0, ad es. C:\/Marlin <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In Visual Studio Code <strong>selezioniamo il file plaformio.ini<\/strong> dall&#8217;area di lavoro Marlin che abbiamo appena aggiunto. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"482\" height=\"674\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_101537825.png\" alt=\"\" class=\"wp-image-427\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_101537825.png 482w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_101537825-215x300.png 215w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_101537825-17x24.png 17w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_101537825-26x36.png 26w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_101537825-34x48.png 34w\" sizes=\"auto, (max-width: 482px) 100vw, 482px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Selezioniamo che l&#8217;autore del file \u00e8 credibile<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"518\" height=\"359\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_101446414.png\" alt=\"\" class=\"wp-image-426\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_101446414.png 518w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_101446414-300x208.png 300w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_101446414-24x17.png 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_101446414-36x25.png 36w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_101446414-48x33.png 48w\" sizes=\"auto, (max-width: 518px) 100vw, 518px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Modifichiamo la riga &#8220;default_envs&#8221; e sostituiamo &#8220;megaatmega2560&#8221; con quella adatta alla nostra scheda\/stampante<\/strong>. Per trovare la vostra scheda, dovremo districarci un po&#8217; tra la pagina web di Marlin ed i file di configurazione di Marlin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Cerchiamo la nostra scheda<\/strong> nella seguente pagina <a href=\"https:\/\/marlinfw.org\/docs\/hardware\/boards.html#boards-list\">https:\/\/marlinfw.org\/docs\/hardware\/boards.html#boards-list<\/a> dove abbiamo anche l&#8217;indicazione del processore utilizzato dalla scheda ed identifichiamola copiando il codice nella colonna di sinistra<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"980\" height=\"63\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_104631278.png\" alt=\"\" class=\"wp-image-428\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_104631278.png 980w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_104631278-300x19.png 300w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_104631278-768x49.png 768w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_104631278-24x2.png 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_104631278-36x2.png 36w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_104631278-48x3.png 48w\" sizes=\"auto, (max-width: 980px) 100vw, 980px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">apriamo in platformio il file <strong>pin.h<\/strong> presente nel seguente percorso <strong>Marlin\/src\/pins\/<\/strong> premiamo <strong>CTRL + F<\/strong> e nella casella di ricerca incolliamo il nome della nostra scheda togliendo il suffisso <strong>BOARD_<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"630\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_105705712-1024x630.png\" alt=\"\" class=\"wp-image-429\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_105705712-1024x630.png 1024w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_105705712-300x185.png 300w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_105705712-768x472.png 768w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_105705712-24x15.png 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_105705712-36x22.png 36w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_105705712-48x30.png 48w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_105705712.png 1034w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Troveremo cosi la nostra scheda, dove <strong>tra i commenti<\/strong> troveremo la sigla env <strong>da utilizzare nel campo env di platformio.ini<\/strong> nel nostro caso abbiamo diverse scelte, andremo ad utilizzare il primo in elenco <strong>STM32F103RC_btt<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"488\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_120136918-1024x488.png\" alt=\"\" class=\"wp-image-430\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_120136918-1024x488.png 1024w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_120136918-300x143.png 300w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_120136918-768x366.png 768w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_120136918-24x11.png 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_120136918-36x17.png 36w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_120136918-48x23.png 48w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_120136918.png 1035w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>PICCOLA TIPS:<\/strong> a volte i costruttori di schede, mettono in condivisione un repository firmware Marlin fatto da loro, possiamo navigare nel loro paltformio.ini per verificare la env utilizzata, in questo caso la BTT ha messo la seguente scheda<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"448\" height=\"152\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_120509366.png\" alt=\"\" class=\"wp-image-431\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_120509366.png 448w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_120509366-300x102.png 300w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_120509366-24x8.png 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_120509366-36x12.png 36w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_120509366-48x16.png 48w\" sizes=\"auto, (max-width: 448px) 100vw, 448px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Vedremo successivamente il file pin.h dove \u00e8 presente la configurazione dei pin della scheda (ma si tratta gi\u00e0 di un livello di configurazione pi\u00f9 avanzato)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Successivamente, se vogliamo apportare modifiche alla configurazione di base della nostra stampante, sia perch\u00e9 abbiamo apportato una modifica sia per migliorare un&#8217;impostazione, apriamo la cartella Marlin e appariranno i due file di configurazione. Puoi trovare informazioni sulle opzioni di base di Marlin nel seguente <a href=\"https:\/\/marlinfw.org\/docs\/configuration\/configuration.html\">collegamento<\/a> (e&#8217; la guida ufficiale del sito Marlin in inglese)e o spiegate in modo pi\u00f9 &#8220;semplice&#8221; nella nostra<strong> guida di Marlin<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"918\" height=\"507\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_122113124.png\" alt=\"\" class=\"wp-image-432\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_122113124.png 918w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_122113124-300x166.png 300w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_122113124-768x424.png 768w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_122113124-24x13.png 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_122113124-36x20.png 36w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_122113124-48x27.png 48w\" sizes=\"auto, (max-width: 918px) 100vw, 918px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Diamo al momento per scontato che abbiamo una ender 3 stock, a cui andiamo a cambiare la scheda originale e montiamo la scheda BTT SKR Mini E3 V 2.0 e che vogliamo utilizzare il firmware che ci fornisce Marlin senza alcuna modifica, procediamo quindi a compilare il firmware cos\u00ec com&#8217;\u00e8, senza alcuna modifica premendo sul pulsante <strong>compila<\/strong> <img loading=\"lazy\" decoding=\"async\" width=\"33\" height=\"26\" class=\"wp-image-434\" style=\"width: 33px;\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_123222178.png\" alt=\"\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_123222178.png 33w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_123222178-24x19.png 24w\" sizes=\"auto, (max-width: 33px) 100vw, 33px\" \/><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"691\" height=\"321\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_123103777.png\" alt=\"\" class=\"wp-image-433\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_123103777.png 691w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_123103777-300x139.png 300w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_123103777-24x11.png 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_123103777-36x17.png 36w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_123103777-48x22.png 48w\" sizes=\"auto, (max-width: 691px) 100vw, 691px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">PlatformIO inizier\u00e0 a scaricare ed installare le librerie necessarie per compilare il firmware, una volta scaricate e installate proceder\u00e0 alla compilazione. Se la compilazione andr\u00e0 a buon fine troveremo la seguente schermata<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"271\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_180337522-1024x271.png\" alt=\"\" class=\"wp-image-445\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_180337522-1024x271.png 1024w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_180337522-300x79.png 300w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_180337522-768x203.png 768w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_180337522-24x6.png 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_180337522-36x10.png 36w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_180337522-48x13.png 48w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_180337522.png 1232w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Trovate qui il allegato il testo completo della compilazione per vedere l&#8217;intero processo<\/p>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-831ef0a7-07ae-4791-a460-7db7a36123ae\" href=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/esito-compilazione.txt\">esito-compilazione<\/a><a href=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/esito-compilazione.txt\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-831ef0a7-07ae-4791-a460-7db7a36123ae\">Download<\/a><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Nella scheda problem, sono visibili eventuali errori o warning generati durante la compilazione, se la compilazione va comunque a buon fine, generalmente sono semplici warning di eventuali operazioni da effettuare<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"61\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_180309566-1024x61.png\" alt=\"\" class=\"wp-image-444\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_180309566-1024x61.png 1024w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_180309566-300x18.png 300w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_180309566-768x46.png 768w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_180309566-24x1.png 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_180309566-36x2.png 36w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_180309566-48x3.png 48w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-02_180309566.png 1384w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In questo caso ricorda di verificare i jumper se configurata la home senza sensori.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Compilato il codice <strong>andiamo nella cartella: &#8220;\u2026\\Marlin.pio\\build\\xxxx&#8221;<\/strong> dove troveremo un file chiamato &#8220;<strong>firmware.bin<\/strong>&#8221; o simile a seconda delle caratteristiche che necessitano per le nostre elettroniche.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" class=\"wp-image-419\" style=\"width: 150px;\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/images.png\" alt=\"\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/images.png 225w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/images-150x150.png 150w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/images-24x24.png 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/images-36x36.png 36w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/images-48x48.png 48w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/td><td>Nel caso in esempio il procedimento \u00e8 descritto per una scheda a 32 bit in cui \u00e8 sufficiente copiare il file generato sulla scheda SD della nostra stampante.<br>Per le stampanti pi\u00f9 vecchie, il file generato \u00e8 solitamente un .hex che, tra mite collegamento USB con la stampante, possiamo caricare direttamente da VSC o utilizzare alcuni slicer (es. PrusaSlicer o Cura ).<br>Ricorda che VSC potrebbe non farlo direttamente se non installi i driver per la tua scheda e potrebbe non essere in grado correttamente la COM se hai, ad esempio, Cura aperto.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Copiamo questo file su una scheda SD vuota nella directory principale o seguiamo la procedura appropriata per la nostra scheda.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Estraiamo la SD dal computer<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Spegniamo la stampante (scolleghiamo l&#8217;USB e l&#8217;alimentazione se sono entrambe collegate) e aspettiamo 30 secondi<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Inseriamo la scheda SD nella stampante (deve essere inserita nel supporto SD della scheda madre e non nel display) e accendiamo la stampante<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dopo un minuto possiamo spegnere la stampante e riavviarla, verifichiamo da display che sia installato il nuovo firmware.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Aggiornare Marlin ad una nuova versione<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Molti utenti trovano molto complicato il processo di aggiornamento dalla versione da loro preparata a quella nuova. Di seguito ti forniamo alcuni suggerimenti su come eseguire il processo per renderlo pi\u00f9 semplice.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Scarica la nuova versione di Marlin, come indicato <a href=\"#download-firmware\">precedentemente<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una volta scaricata e decompressa, aggiungeremo quella cartella al nostro progetto VSC insieme alla vecchia versione<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ora che abbiamo entrambe le directory nel nostro progetto non ci resta che utilizzare lo strumento di confronto incluso in VSC per confrontare i file di configurazione di Marlin:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>platformio.ini<\/strong>, \u00e8 il file dove troveremo sostanzialmente l&#8217;env della nostra elettronica;<\/li>\n\n\n\n<li><strong>Marlin\/configuration.h<\/strong>, file dove normalmente abiliteremo le funzioni e la configurazione della stampante\/elettronica\/estensioni;<\/li>\n\n\n\n<li><strong>Marlin\/configuration_adv.h<\/strong>, simile al precedente ma dove troveremo alcune funzioni avanzate.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Per confrontare due file, dal pannello laterale dove viene mostrata la struttura di file nelle cartelle del nostro progetto (Explorer), clicchiamo col destro sul file da confrontare della nostra vecchia versione, premeremo  <strong>&#8220;Select for compare&#8221;<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"675\" height=\"413\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-05_203035365.png\" alt=\"\" class=\"wp-image-453\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-05_203035365.png 675w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-05_203035365-300x184.png 300w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-05_203035365-24x15.png 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-05_203035365-36x22.png 36w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-05_203035365-48x29.png 48w\" sizes=\"auto, (max-width: 675px) 100vw, 675px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Successivamente faremo lo stesso ma con il file della nostra nuova versione, ma, in questo caso, selezioneremo l&#8217;opzione <strong>&#8220;Compare with selected&#8221;<\/strong> <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"831\" height=\"573\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-05_211241550.png\" alt=\"\" class=\"wp-image-454\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-05_211241550.png 831w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-05_211241550-300x207.png 300w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-05_211241550-768x530.png 768w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-05_211241550-24x17.png 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-05_211241550-36x25.png 36w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-05_211241550-48x33.png 48w\" sizes=\"auto, (max-width: 831px) 100vw, 831px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"> apparir\u00e0 una nuova schermata con il confronto tra le versioni:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nella parte superiore contrassegnata nello screenshot seguente vedremo il nome e la cartella dei file da confrontare<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nella parte centrale vediamo come segna i cambiamenti, nel primo blocco indica in rosso le parti che la destinazione non prevede (rosso), la parte centrale dove indica i cambiamenti in entrambi i posti e quello che utilizzeremo normalmente per rilevare gli aggiustamenti (rosso\/verde) e la parte inferiore (verde) dove troverete quello che c&#8217;\u00e8 nel nuovo e non nel vecchio<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1002\" height=\"605\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-05_212143721.png\" alt=\"\" class=\"wp-image-455\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-05_212143721.png 1002w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-05_212143721-300x181.png 300w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-05_212143721-768x464.png 768w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-05_212143721-24x14.png 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-05_212143721-36x22.png 36w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/immagine_2024-07-05_212143721-48x29.png 48w\" sizes=\"auto, (max-width: 1002px) 100vw, 1002px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" class=\"wp-image-419\" style=\"width: 75px;\" src=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/images.png\" alt=\"\" srcset=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/images.png 225w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/images-150x150.png 150w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/images-24x24.png 24w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/images-36x36.png 36w, https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/images-48x48.png 48w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/td><td>&#8211; puoi invertire l&#8217;ordine di selezione dei file se il codice colore ti \u00e8 pi\u00f9 familiare <br>&#8211; ti consigliamo di aggiungere sempre i commenti, con \/\/ alla fine delle righe che modifichi, cos\u00ec sar\u00e0 pi\u00f9 facile per te identificare le modifiche <br>&#8211; a volte le funzioni possono cambiare posizione o nome cos\u00ec come il formato del valore, qui devi solo guardare e leggere i commenti del codice stesso<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Una volta apportate tutte le modifiche, non dovrai fare altro che caricare il nuovo progetto in Platformio come abbiamo spiegato all&#8217;inizio della guida e compilare, correggendo eventuali errori che compaiono, poich\u00e9 normalmente gli errori sono descritti abbastanza bene<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ultimi suggerimenti<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Se stai per aggiornare una stampante e non disponi dei file Marlin originali ed hai apportato modifiche alla configurazione dello schermo, ti consigliamo di eseguire un M503 da un client terminale come Pronterface e salvare le informazioni restituite poich\u00e9 sono i valori EEPROM,  molto utili da regolare nel nuovo firmware.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ricordiamo che \u00e8 consigliabile, dopo aver caricato il firmware, caricare i valori di fabbrica della EEPROM, questo pu\u00f2 essere fatto da terminale con un M502 seguito da un M500, oppure da schermo in modalit\u00e0 Marlin in Configurazione\/Ripristino e seguito da Configurazione\/ Salva EEPROM\u2026 oltre all&#8217;M503 con cui potrai elencare i valori della tua EEPROM per assicurarti che siano corretti<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Capire come Marlin utilizza la RAM e\/o l&#8217;EEPROM dell&#8217;elettronica della stampante per salvare determinate impostazioni pu\u00f2 creare inizialmente confusione e se non lo facciamo correttamente pu\u00f2 causare problemi perdendo determinate impostazioni al riavvio della macchina.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Marlin utilizza quella che chiamiamo EEPROM, che pu\u00f2 trovarsi in un chip di memoria dedicato o integrata in un&#8217;area riservata da Marlin nella ROM dell&#8217;elettronica stessa<\/strong>\u2026 essendo queste le pi\u00f9 consigliabili\/comuni, abbiamo anche la possibilit\u00e0 di salvare la nostra EEPROM nella SD della nostra elettronica dove crea un eeprom.dat (a seconda della versione di Marlin questo nome pu\u00f2 variare).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>In questa EEPROM Marlin salva i valori di configurazione che solitamente sono regolabili dall&#8217;utente<\/strong>, questo permette una regolazione pi\u00f9 semplice senza richiedere di dover regolare questi valori nei sorgenti Marlin, compilare e applicare il nuovo firmware alla nostra macchina.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ci\u00f2 che fa all&#8217;avvio Marlin,  \u00e8 caricare i valori salvati nella EEPROM (memoria non volatile) nella RAM (che \u00e8 una memoria volatile) in modo che possiamo utilizzarli, consultarli e regolarli durante le nostre stampe, spento la macchina, questa RAM viene cancellata per eseguire il processo di caricamento dei valori EEPROM al riavvio di Marlin.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Di seguito spiegheremo alcuni gcode che abbiamo a disposizione per gestire questa EEPROM, funzionanti solo quando abbiamo attivato il comando EEPROM_SETTINGS nel firmware e come usarli in ciascun caso:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>M500 (Save Setting)<\/strong>: Il gcode M500 (Save settings) salva nella EEPROM la configurazione che abbiamo attiva nella nostra RAM in modo che le modifiche apportate non vadano perse allo spegnimento della macchina. Possiamo anche avviare questo comando dalla schermata della modalit\u00e0 di emulazione Marlin <strong>Store Settings<\/strong> o, sui display touch screen, che di solito hanno anche opzioni per eseguire il processo.<\/li>\n\n\n\n<li><strong>M501 (Restore settings)<\/strong>: Il gcode M501 (Restore settings) carica i valori dalla nostra EEPROM sulla nostra RAM, eseguendo sostanzialmente il processo opposto di M500. Normalmente, l&#8217;uso normale dell&#8217;M501 \u00e8 annullare le modifiche apportate alla nostra RAM che non sono state applicate alla nostra EEPROM. Sempre dalla schermata della modalit\u00e0 di emulazione Marlin abbiamo l&#8217;opzione Carica impostazioni con la quale eseguiremo l&#8217;M501.<\/li>\n\n\n\n<li><strong>M502 (Factory Reset)<\/strong>: Con M502 (Factory Reset) caricheremo nella nostra RAM le configurazioni incluse nel firmware, non nella EEPROM, assicurandoci di ritornare ai valori originali del nostro firmware. Di solito \u00e8 consigliabile eseguire un M502, seguito da un M500, ogni volta che applichiamo una nuova versione del firmware alla nostra macchina, poich\u00e9 in questo modo carichiamo i valori del nuovo firmware, ripristinando le eventuali configurazioni rimanenti che avevamo dal precedente nella nostra EEPROM. \u00c8 importante dire che nelle ultime versioni di Marlin, nel caso in cui vengano rilevati cambiamenti significativi nella struttura della EEPROM rispetto al nuovo firmware, suggerir\u00e0 sullo schermo di eseguire questo Reset della EEPROM.<\/li>\n\n\n\n<li><strong>M503 (Report Settings)<\/strong>: Il gcode M503 (Report Settings) ci permetter\u00e0 di visualizzare i valori della nostra RAM attraverso la console seriale (Pronterface ad esempio), il che \u00e8 estremamente utile per verificare quali valori sta realmente utilizzando la nostra macchina. Nelle attuali versioni di Marlin abbiamo una funzione chiamata CONFIGURATION_EMBEDDING che ci permetter\u00e0 di aggiungere il parametro C al nostro M503 e di lasciarci un file zip sulla nostra SD, quando possibile, con i valori della nostra RAM in formato testo.<\/li>\n\n\n\n<li><strong>M504 (Validate EEPROM)<\/strong>: Infine abbiamo M504 (validate EEPROM) che convalider\u00e0 se il formato\/struttura EEPROM \u00e8 corretto per la versione del nostro firmware, poich\u00e9, in caso contrario, il nostro firmware potrebbe non avviarsi correttamente in determinate circostanze.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Gianluca ci ha parlato di questi comandi nel video qui sotto presente sul nostro canale<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Recuperare valori del firmware, salvataggio e ripristino impostazioni della stampante\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/pA6A-hIPGZU?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Sulle schede attuali viene generato un firmware.bin che viene posizionato nella SD. In questi casi, se il processo di aggiornamento \u00e8 stato eseguito correttamente, questo file viene rinominato in .CUR. Quindi per verificare se il processo \u00e8 stato corretto, estrai la SD dopo aver completato il processo di aggiornamento e verifica dal tuo computer che il .BIN sia cambiato in .CUR<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Altre schede, normalmente precedenti ad 8bit, hanno il nuovo firmware \u201cmasterizzato\u201d direttamente sulla scheda, quindi \u00e8 necessario averle collegate via USB. In alcuni casi pu\u00f2 causare problemi durante la programmazione tramite USB, quindi puoi andare nella posizione in cui hai lasciato il binario compilato\u2026 in questi casi normalmente \u00e8 un file .hex e caricarlo da altri strumenti specifici per il tuo stampante, slicer come PrusaSlicer o Cura possono eseguire questo passaggio abbastanza facilmente<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">File &#8220;Configuration.h&#8221;<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Come ho detto prima, ci sono 2 file principali che gestiscono tutto durante la configurazione di Marlin 2.0.x. Naturalmente ci sono molti altri cambiamenti e modifiche che potremmo apportare ma per il nostro scopo attuale non sono al momento necessari (modifiche al menu originale, loghi, ecc.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Inizieremo quindi a modificare il file Configuration.h tramite VSC, oppure con l&#8217;editor di testo che abbiamo scelto (nel mio caso <a href=\"https:\/\/notepad-plus-plus.org\">Notepad++<\/a>) e seguiremo, in ordine, le diverse opzioni pi\u00f9 comuni di cui tenere conto. Questo file contiene le principali configurazioni hardware, lingue e driver, nonch\u00e9 configurazioni per le funzionalit\u00e0 e i componenti pi\u00f9 comuni della nostra stampante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In verde puoi vedere le opzioni che ho attivato (o che sono attivate per impostazione predefinita) e in grigio le opzioni che sono disattivate o i semplici commenti. Per attivare un&#8217;opzione basta eliminare le due barre &#8220;\/\/&#8221; davanti al parametro in questione; per disattivarli, aggiungili. Se sei un programmatore avrai gi\u00e0 abbastanza familiarit\u00e0 con questa procedura.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Logo Marlin (SHOW_BOOTSCREEN)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c8 il logo Marlin che appare all&#8217;avvio del firmware. Per impostazione predefinita appare attivo, possiamo disattivarlo se lo desideriamo senza alcun problema. Non \u00e8 essenziale configurarlo in Marlin 2, ma potremmo anche liberare un po&#8217; di memoria se sei molto limitato.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Puoi anche inserire il tuo logo o un&#8217;immagine personalizzata, ma lo spiegheremo alla fine di questa guida nella sezione &#8220;<strong>Trucchi interessanti per Marlin<\/strong>&#8220;.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"enlighter\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Show the Marlin bootscreen on startup. ** ENABLE FOR PRODUCTION **\n#define SHOW_BOOTSCREEN<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Scheda madre o elettronica (MOTHERBOARD)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Parametro molto importante. Qui selezioneremo l&#8217;elettronica che abbiamo installato nella nostra stampante 3D. Dato che ce ne sono parecchie di elettroniche disponibili, dovremo trovare qual \u00e8 la nostra e il valore da inserire qui.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hai un elenco di dispositivi elettronici compatibili da utilizzare nel file &#8220;<strong>boards.h<\/strong>&#8220;. Si trova nel seguente percorso del firmware Marlin: <strong>\\Marlin\\src\\core\\boards.h<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nel mio caso, la mia stampante 3D utilizza una scheda SKR MINI E3 V2.0 della BTT. Per questo devo scrivere &#8220;<strong>BOARD_BTT_SKR_MINI_E3_V2_0<\/strong>&#8221; come puoi vedere nell&#8217;esempio. Inserisci la tua elettronica.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"enlighter\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Choose the name from boards.h that matches your setup\n#ifndef MOTHERBOARD\n  #define MOTHERBOARD BOARD_BTT_SKR_MINI_E3_V2_0\n#endif<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Porte di comunicazione (SERIAL_PORT e SERIAL_PORT_2)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Sono le porte di comunicazione della nostra elettronica. In linea di principio, non dovresti modificare il primo a meno che tu non abbia dell&#8217;elettronica esotica. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se la tua scheda era una della serie SKR di BTT, generalmente dovresti attivare <strong>SERIAL_PORT_2<\/strong> e impostare il valore <strong>-1<\/strong> (come \u00e8 di default). <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per altri tipi di schede, \u00e8 necessario cercare i valori in rete, un suggerimento \u00e8 quello di andare a vedere se i produttori delle schede hanno un GitHub della scheda, dove si possono trovare questi valori.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n* Select the serial port on the board to use for communication with the host.\n* This allows the connection of wireless adapters (for instance) to non-default port pins.\n* Serial port -1 is the USB emulated serial port, if available.\n* Note: The first serial port (-1 or 0) will always be used by the Arduino bootloader.\n*\n* :[-1, 0, 1, 2, 3, 4, 5, 6, 7]\n*\/\n#define SERIAL_PORT 0\n \n\/**\n* Select a secondary serial port on the board to use for communication with the host.\n* :[-1, 0, 1, 2, 3, 4, 5, 6, 7]\n*\/\n#define SERIAL_PORT_2 -1<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Velocit\u00e0 di comunicazione (BAUDRATE)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La velocit\u00e0 alla quale collegheremo il nostro computer alla stampante, per impostazione predefinita \u00e8 115200, quindi la lasceremo cos\u00ec.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se per caso hai problemi di comunicazione con la tua stampante, puoi abbassare la velocit\u00e0 di questo parametro per cercare di risolverlo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per la seconda seriale al momento non mettiamo nulla.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * Serial Port Baud Rate\n * This is the default communication speed for all serial ports.\n * Set the baud rate defaults for additional serial ports below.\n *\n * 250000 works in most cases, but you might try a lower speed if\n * you commonly experience drop-outs during host printing.\n * You may try up to 1000000 to speed up SD file transfer.\n *\n * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]\n *\/\n#define BAUDRATE 115200\n\n\/\/#define BAUD_RATE_GCODE     \/\/ Enable G-code M575 to set the baud rate<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Nome della tua macchina (CUSTOM_MACHINE_NAME)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Questo \u00e8 semplice, il nome che vuoi che abbia la tua nuova stampante configurata. Per impostazione predefinita noterai che \u00e8 disabilitato, quindi queste 2 barre &#8220;<strong>\/\/<\/strong>&#8221; appaiono davanti a <strong>#define<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Rimuoveremo le 2 barre e lasceremo la configurazione in questo modo:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Name displayed in the LCD \"Ready\" message and Info menu\n#define CUSTOM_MACHINE_NAME \"Ender-3\"<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Configurare i Driver (DRIVER_TYPE)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Configurare il firmware del Marlin 2 con i driver di cui disponiamo \u00e8 essenziale. Il processo molto semplice.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per impostazione predefinita, tutte le opzioni sono disabilitate, quindi, se parti da una configurazione base, devi abilitare quelle che utilizzerai, indicando i driver utilizzati sulla tua scheda.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nella mia stampante ho 3 motori sui 3 assi (X, Y, Z) e un unico motore per l&#8217;estrusore. Quindi abilito le opzioni necessarie. Il primo estrusore si chiama sempre <strong>E0<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dato che utilizzo un configuration.h precompilato per <strong>BBT SKR MINI E3<\/strong>, la scheda monta dei <strong>TMC2209<\/strong>, pertanto li trovo indicati gia&#8217; nel file preconfigurato.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nei commenti puoi vedere tutti i tipi di driver disponibili in Marlin 2, quindi individua il tuo e annotalo esattamente come appare.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * Stepper Drivers\n *\n * These settings allow Marlin to tune stepper driver timing and enable advanced options for\n * stepper drivers that support them. You may also override timing options in Configuration_adv.h.\n *\n * Use TMC2208\/TMC2208_STANDALONE for TMC2225 drivers and TMC2209\/TMC2209_STANDALONE for TMC2226 drivers.\n *\n * Options: A4988, A5984, DRV8825, LV8729, TB6560, TB6600, TMC2100,\n *          TMC2130, TMC2130_STANDALONE, TMC2160, TMC2160_STANDALONE,\n *          TMC2208, TMC2208_STANDALONE, TMC2209, TMC2209_STANDALONE,\n *          TMC26X,  TMC26X_STANDALONE,  TMC2660, TMC2660_STANDALONE,\n *          TMC5130, TMC5130_STANDALONE, TMC5160, TMC5160_STANDALONE\n * :['A4988', 'A5984', 'DRV8825', 'LV8729', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2160', 'TMC2160_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC2209', 'TMC2209_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE', 'TMC5160', 'TMC5160_STANDALONE']\n *\/\n#define X_DRIVER_TYPE  TMC2209\n#define Y_DRIVER_TYPE  TMC2209\n#define Z_DRIVER_TYPE  TMC2209\n\/\/#define X2_DRIVER_TYPE A4988\n\/\/#define Y2_DRIVER_TYPE A4988\n\/\/#define Z2_DRIVER_TYPE A4988\n\/\/#define Z3_DRIVER_TYPE A4988\n\/\/#define Z4_DRIVER_TYPE A4988\n\/\/#define I_DRIVER_TYPE  A4988\n\/\/#define J_DRIVER_TYPE  A4988\n\/\/#define K_DRIVER_TYPE  A4988\n\/\/#define U_DRIVER_TYPE  A4988\n\/\/#define V_DRIVER_TYPE  A4988\n\/\/#define W_DRIVER_TYPE  A4988\n#define E0_DRIVER_TYPE TMC2209<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Numero di estrusori (EXTRUDER)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Qui configureremo in Marlin il numero di estrusori di cui dispone la nostra stampante 3D. Per impostazione predefinita, il valore iniziale \u00e8 1, poich\u00e9 la maggior parte ha un estrusore. Se questo non \u00e8 il tuo caso, inserisci il numero corretto di estrusori.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ This defines the number of extruders\n\/\/ :[0, 1, 2, 3, 4, 5, 6, 7, 8]\n#define EXTRUDERS 1<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Diametro del filamento (DEFAULT_NOMINAL_FILAMENT_DIA)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"> In questa sezione selezioneremo il tipo di diametro utilizzato dalla nostra stampante. Per impostazione predefinita, viene impostato a 3.0, un residuo bellico di quando le stampanti usavano quel filamento, oggi la maggior parte delle stampanti  funziona solitamente con un diametro di 1,75. Molto importante cambiarlo.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc.\n#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Sensori di temperatura (TEMP_SENSORS)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In questa sezione del firmware Marlin definiremo i sensori di temperatura esistenti nella nostra stampante 3D. A partire dalla versione versione 2.0.7.2, \u00e8 stato aggiunto il supporto per pi\u00f9 estrusori (per un totale di 11 supportati) incluso un sensore per la camera chiusa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Come puoi vedere, ce ne sono molti e un elenco appare nel codice stesso. Se non disponi di informazioni sulla tua, prova a controllare su Google troverai diverse indicazioni da parte degli utenti con stampanti uguali o simili.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per impostazione predefinita, solo <strong>TEMP_SENSOR_0<\/strong> \u00e8 configurato con il valore &#8220;1&#8221;. Nel mio caso va bene essendo il sensore montato sulla Ender 3.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Avendo anche il piano riscaldato, per migliorare l&#8217;adesione durante la stampa ed evitare problemi di Warping, configuro <strong>TEMP_SENSOR_BED<\/strong> con il valore 1. Il resto lo lascio a 0 poich\u00e9 non ho pi\u00f9 estrusori n\u00e9 una camera riscaldata (Chamber Temp).<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * Temperature Sensors:\n *\n * NORMAL IS 4.7k\u03a9 PULLUP! Hotend sensors can use 1k\u03a9 pullup with correct resistor and table.\n *\n * ================================================================\n *  Analog Thermistors - 4.7k\u03a9 pullup - Normal\n * ================================================================\n *     1 : 100k\u03a9 EPCOS - Best choice for EPCOS thermistors\n *   331 : 100k\u03a9 Same as #1, but 3.3V scaled for MEGA\n *   332 : 100k\u03a9 Same as #1, but 3.3V scaled for DUE\n *     2 : 200k\u03a9 ATC Semitec 204GT-2\n *   202 : 200k\u03a9 Copymaster 3D\n *     3 : ???\u03a9  Mendel-parts thermistor\n *     4 : 10k\u03a9  Generic Thermistor !! DO NOT use for a hotend - it gives bad resolution at high temp. !!\n *     5 : 100k\u03a9 ATC Semitec 104GT-2\/104NT-4-R025H42G - Used in ParCan, J-Head, and E3D, SliceEngineering 300\u00b0C\n *   501 : 100k\u03a9 Zonestar - Tronxy X3A\n *   502 : 100k\u03a9 Zonestar - used by hot bed in Zonestar Pr\u016f\u0161a P802M\n *   503 : 100k\u03a9 Zonestar (Z8XM2) Heated Bed thermistor\n *   504 : 100k\u03a9 Zonestar P802QR2 (Part# QWG-104F-B3950) Hotend Thermistor\n *   505 : 100k\u03a9 Zonestar P802QR2 (Part# QWG-104F-3950) Bed Thermistor\n *   512 : 100k\u03a9 RPW-Ultra hotend\n *     6 : 100k\u03a9 EPCOS - Not as accurate as table #1 (created using a fluke thermocouple)\n *     7 : 100k\u03a9 Honeywell 135-104LAG-J01\n *    71 : 100k\u03a9 Honeywell 135-104LAF-J01\n *     8 : 100k\u03a9 Vishay 0603 SMD NTCS0603E3104FXT\n *     9 : 100k\u03a9 GE Sensing AL03006-58.2K-97-G1\n *    10 : 100k\u03a9 RS PRO 198-961\n *    11 : 100k\u03a9 Keenovo AC silicone mats, most Wanhao i3 machines - beta 3950, 1%\n *    12 : 100k\u03a9 Vishay 0603 SMD NTCS0603E3104FXT (#8) - calibrated for Makibox hot bed\n *    13 : 100k\u03a9 Hisens up to 300\u00b0C - for \"Simple ONE\" &amp;amp; \"All In ONE\" hotend - beta 3950, 1%\n *    14 : 100k\u03a9  (R25), 4092K (beta25), 4.7k\u03a9 pull-up, bed thermistor as used in Ender-5 S1\n *    15 : 100k\u03a9 Calibrated for JGAurora A5 hotend\n *    17 : 100k\u03a9 Dagoma NTC white thermistor\n *    18 : 200k\u03a9 ATC Semitec 204GT-2 Dagoma.Fr - MKS_Base_DKU001327\n *    22 : 100k\u03a9 GTM32 Pro vB - hotend - 4.7k\u03a9 pullup to 3.3V and 220\u03a9 to analog input\n *    23 : 100k\u03a9 GTM32 Pro vB - bed - 4.7k\u03a9 pullup to 3.3v and 220\u03a9 to analog input\n *    30 : 100k\u03a9 Kis3d Silicone heating mat 200W\/300W with 6mm precision cast plate (EN AW 5083) NTC100K - beta 3950\n *    60 : 100k\u03a9 Maker's Tool Works Kapton Bed Thermistor - beta 3950\n *    61 : 100k\u03a9 Formbot\/Vivedino 350\u00b0C Thermistor - beta 3950\n *    66 : 4.7M\u03a9 Dyze Design \/ Trianglelab T-D500 500\u00b0C High Temperature Thermistor\n *    67 : 500k\u03a9 SliceEngineering 450\u00b0C Thermistor\n *    68 : PT100 Smplifier board from Dyze Design\n *    70 : 100k\u03a9 bq Hephestos 2\n *    75 : 100k\u03a9 Generic Silicon Heat Pad with NTC100K MGB18-104F39050L32\n *   666 : 200k\u03a9 Einstart S custom thermistor with 10k pullup.\n *  2000 : 100k\u03a9 Ultimachine Rambo TDK NTCG104LH104KT1 NTC100K motherboard Thermistor\n *\n * ================================================================\n *  Analog Thermistors - 1k\u03a9 pullup\n *   Atypical, and requires changing out the 4.7k\u03a9 pullup for 1k\u03a9.\n *   (but gives greater accuracy and more stable PID)\n * ================================================================\n *    51 : 100k\u03a9 EPCOS (1k\u03a9 pullup)\n *    52 : 200k\u03a9 ATC Semitec 204GT-2 (1k\u03a9 pullup)\n *    55 : 100k\u03a9 ATC Semitec 104GT-2 - Used in ParCan &amp;amp; J-Head (1k\u03a9 pullup)\n *\n * ================================================================\n *  Analog Thermistors - 10k\u03a9 pullup - Atypical\n * ================================================================\n *    99 : 100k\u03a9 Found on some Wanhao i3 machines with a 10k\u03a9 pull-up resistor\n *\n * ================================================================\n *  Analog RTDs (Pt100\/Pt1000)\n * ================================================================\n *   110 : Pt100  with 1k\u03a9 pullup (atypical)\n *   147 : Pt100  with 4.7k\u03a9 pullup\n *  1010 : Pt1000 with 1k\u03a9 pullup (atypical)\n *  1022 : Pt1000 with 2.2k\u03a9 pullup\n *  1047 : Pt1000 with 4.7k\u03a9 pullup (E3D)\n *    20 : Pt100  with circuit in the Ultimainboard V2.x with mainboard ADC reference voltage = INA826 amplifier-board supply voltage.\n *                NOTE: (1) Must use an ADC input with no pullup. (2) Some INA826 amplifiers are unreliable at 3.3V so consider using sensor 147, 110, or 21.\n *    21 : Pt100  with circuit in the Ultimainboard V2.x with 3.3v ADC reference voltage (STM32, LPC176x....) and 5V INA826 amplifier board supply.\n *                NOTE: ADC pins are not 5V tolerant. Not recommended because it's possible to damage the CPU by going over 500\u00b0C.\n *   201 : Pt100  with circuit in Overlord, similar to Ultimainboard V2.x\n *\n * ================================================================\n *  SPI RTD\/Thermocouple Boards\n * ================================================================\n *    -5 : MAX31865 with Pt100\/Pt1000, 2, 3, or 4-wire  (only for sensors 0-2 and bed)\n *                  NOTE: You must uncomment\/set the MAX31865_*_OHMS_n defines below.\n *    -3 : MAX31855 with Thermocouple, -200\u00b0C to +700\u00b0C (only for sensors 0-2 and bed)\n *    -2 : MAX6675  with Thermocouple, 0\u00b0C to +700\u00b0C    (only for sensors 0-2 and bed)\n *\n *  NOTE: Ensure TEMP_n_CS_PIN is set in your pins file for each TEMP_SENSOR_n using an SPI Thermocouple. By default,\n *        Hardware SPI on the default serial bus is used. If you have also set TEMP_n_SCK_PIN and TEMP_n_MISO_PIN,\n *        Software SPI will be used on those ports instead. You can force Hardware SPI on the default bus in the\n *        Configuration_adv.h file. At this time, separate Hardware SPI buses for sensors are not supported.\n *\n * ================================================================\n *  Analog Thermocouple Boards\n * ================================================================\n *    -4 : AD8495 with Thermocouple\n *    -1 : AD595  with Thermocouple\n *\n * ================================================================\n *  Custom\/Dummy\/Other Thermal Sensors\n * ================================================================\n *     0 : not used\n *  1000 : Custom - Specify parameters in Configuration_adv.h\n *\n *   !!! Use these for Testing or Development purposes. NEVER for production machine. !!!\n *   998 : Dummy Table that ALWAYS reads 25\u00b0C or the temperature defined below.\n *   999 : Dummy Table that ALWAYS reads 100\u00b0C or the temperature defined below.\n *\/\n#define TEMP_SENSOR_0 1\n#define TEMP_SENSOR_1 0\n#define TEMP_SENSOR_2 0\n#define TEMP_SENSOR_3 0\n#define TEMP_SENSOR_4 0\n#define TEMP_SENSOR_5 0\n#define TEMP_SENSOR_6 0\n#define TEMP_SENSOR_7 0\n#define TEMP_SENSOR_BED 1\n#define TEMP_SENSOR_PROBE 0\n#define TEMP_SENSOR_CHAMBER 0\n#define TEMP_SENSOR_COOLER 0\n#define TEMP_SENSOR_BOARD 0\n#define TEMP_SENSOR_REDUNDANT 0<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Limitatori di temperatura (MINTEMP &amp; MAXTEMP)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La configurazione di questi parametri in Marlin 2 \u00e8 molto importante, poich\u00e9 controllano le temperature massime e minime della nostra stampante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Definiremo in quali intervalli dovrebbe trovarsi ciascuno dei sensori disponibili. In questo modo, se qualche sensore non raggiunge o supera questa temperatura, Marlin segnala un errore sul display e disattiva l&#8217;Hotend e il piano riscaldato.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nel mio caso solitamente configuro le temperature dell&#8217;estrusore a 5 gradi (minima) e 275 gradi (massima). Nel caso in cui un estrusore o un letto non raggiunga i 5\u00ba gradi, dedurremo che il termistore non \u00e8 installato correttamente o \u00e8 fisicamente danneggiato.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Allo stesso modo, ci protegger\u00e0 nel caso in cui venga accidentalmente superata la temperatura massima, cosa fondamentale per la nostra sicurezza e quella della nostra casa.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Below this temperature the heater will be switched off\n\/\/ because it probably indicates a broken thermistor wire.\n#define HEATER_0_MINTEMP   5\n#define HEATER_1_MINTEMP   5\n#define HEATER_2_MINTEMP   5\n#define HEATER_3_MINTEMP   5\n#define HEATER_4_MINTEMP   5\n#define HEATER_5_MINTEMP   5\n#define HEATER_6_MINTEMP   5\n#define HEATER_7_MINTEMP   5\n#define BED_MINTEMP        5\n#define CHAMBER_MINTEMP    5\n\n\/\/ Above this temperature the heater will be switched off.\n\/\/ This can protect components from overheating, but NOT from shorts and failures.\n\/\/ (Use MINTEMP for thermistor short\/failure protection.)\n#define HEATER_0_MAXTEMP 275\n#define HEATER_1_MAXTEMP 275\n#define HEATER_2_MAXTEMP 275\n#define HEATER_3_MAXTEMP 275\n#define HEATER_4_MAXTEMP 275\n#define HEATER_5_MAXTEMP 275\n#define HEATER_6_MAXTEMP 275\n#define HEATER_7_MAXTEMP 275\n#define BED_MAXTEMP      125\n#define CHAMBER_MAXTEMP  60<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">PID Tuning (Estrusore)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Sezione che controlla le impostazioni dell&#8217;algoritmo responsabile della gestione della temperatura degli estrusori e del letto riscaldato.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Potremmo entrare pi\u00f9 nel dettaglio su come funziona, ma non \u00e8 questo il momento. Se sei interessato a saperne di pi\u00f9 sul PID Tuning, scrivi nei commenti e ci organizzeremo per dettagliarlo maggiormente. E&#8217; possibile anche visionare la <a href=\"https:\/\/reprap.org\/wiki\/PID_Tuning\">guida<\/a> presente sul sito reprap.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per impostazione predefinita, alcuni valori sono predeterminati per molte delle stampanti pi\u00f9 conosciute sul mercato. Nel mio caso, per la Ender 3 troviamo i seguenti valori:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/===========================================================================\n\/\/============================= PID Settings ================================\n\/\/===========================================================================\n\n\/\/ @section hotend temp\n\n\/**\n * Temperature Control\n *\n *  (NONE) : Bang-bang heating\n * PIDTEMP : PID temperature control (~4.1K)\n * MPCTEMP : Predictive Model temperature control. (~1.8K without auto-tune)\n *\/\n#define PIDTEMP           \/\/ See the PID Tuning Guide at https:\/\/reprap.org\/wiki\/PID_Tuning\n\/\/#define MPCTEMP         \/\/ ** EXPERIMENTAL ** See https:\/\/marlinfw.org\/docs\/features\/model_predictive_control.html\n\n#define PID_MAX  255      \/\/ Limit hotend current while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current\n#define PID_K1     0.95   \/\/ Smoothing factor within any PID loop\n\n#if ENABLED(PIDTEMP)\n  \/\/#define PID_DEBUG             \/\/ Print PID debug data to the serial port. Use 'M303 D' to toggle activation.\n  \/\/#define PID_PARAMS_PER_HOTEND \/\/ Use separate PID parameters for each extruder (useful for mismatched extruders)\n                                  \/\/ Set\/get with G-code: M301 E[extruder number, 0-2]\n\n  \/\/ Creality Ender-3\n #if ENABLED(PID_PARAMS_PER_HOTEND)\n    \/\/ Specify up to one value per hotend here, according to your setup.\n    \/\/ If there are fewer values, the last one applies to the remaining hotends.\n   #define DEFAULT_Kp_LIST {  21.73,  21.73 }\n    #define DEFAULT_Ki_LIST {   1.54,   1.54 }\n    #define DEFAULT_Kd_LIST {  76.55,  76.55 }\n  #else\n    #define DEFAULT_Kp  21.73\n    #define DEFAULT_Ki   1.54\n    #define DEFAULT_Kd  76.55\n  #endif\n#else\n  #define BANG_MAX 255    \/\/ Limit hotend current while in bang-bang mode; 255=full current\n#endif<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Per ottenere i valori dalla tua stampante, puoi consultarli su Internet oppure puoi farli tu stesso con una funzione interna Marlin chiamata <strong>PID Autotune<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per fare ci\u00f2, collega la tua stampante a Repetier\/Simplify3D o qualsiasi altro software che ti consenta di utilizzare i comandi Gcode. Una volta connesso, invia il comando <strong>M303 E0 S200 C8<\/strong> e il processo inizier\u00e0.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dopo aver riscaldato e raffreddato il fusore per 8 volte, si chiuder\u00e0 e verranno visualizzate le seguenti informazioni. Dovrai solo prendere i valori Kp, Ki e Kd e inserirli nel tuo firmware, nei campi <strong>DEFAULT_Kp<\/strong>, <strong>DEFAULT_Ki<\/strong> e <strong>DEFAULT_Kd<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes has-small-font-size\"><table class=\"has-black-color has-text-color has-link-color\"><tbody><tr><td>bias: 92 d: 92 min: 196.56 max: 203.75 <br>Ku: 32.59 Tu: 54.92 <br>Clasic PID <br>Kp: 19.56 <br>Ki: 0.71 <br>Kd: 134.26 <br>PID Autotune finished ! Place the Kp, Ki and Kd constants in the configuration.h<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Pid Tuning (letto riscaldato)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Come prima, ma per il nostro piano di stampa. Per impostazione predefinita nel nuovo firmware sar\u00e0 disabilitato. Se hai un letto riscaldato devi decommentare l&#8217;opzione <strong>#define PIDTEMPBED<\/strong> come vedrai nella mia configurazione.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Puoi anche eseguire un&#8217;altra funzione Marlin interna per ottenere i valori dal letto. Questo viene fatto con il comando Gcode<strong> M303 E-1 C8 S90<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sul preconfigurato per Ender 3, il PID del letto \u00e8 disattivato, di seguito vedete un esempio di come deve essere attivato, ma mi raccomando di fare l&#8217;autotune con il Gcode indicato sopra.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/===========================================================================\n\/\/====================== PID &amp;gt; Bed Temperature Control ======================\n\/\/===========================================================================\n\n\/\/ @section bed temp\n\n\/**\n * Max Bed Power\n * Applies to all forms of bed control (PID, bang-bang, and bang-bang with hysteresis).\n * When set to any value below 255, enables a form of PWM to the bed that acts like a divider\n * so don't use it unless you are OK with PWM on your bed. (See the comment on enabling PIDTEMPBED)\n *\/\n#define MAX_BED_POWER 255 \/\/ limits duty cycle to bed; 255=full current\n\n\/**\n * PID Bed Heating\n *\n * The PID frequency will be the same as the extruder PWM.\n * If PID_dT is the default, and correct for the hardware\/configuration, that means 7.689Hz,\n * which is fine for driving a square wave into a resistive load and does not significantly\n * impact FET heating. This also works fine on a Fotek SSR-10DA Solid State Relay into a 250W\n * heater. If your configuration is significantly different than this and you don't understand\n * the issues involved, don't use bed PID until someone else verifies that your hardware works.\n *\n * With this option disabled, bang-bang will be used. BED_LIMIT_SWITCHING enables hysteresis.\n *\/\n#define PIDTEMPBED\n\n#if ENABLED(PIDTEMPBED)\n  \/\/#define MIN_BED_POWER 0\n  \/\/#define PID_BED_DEBUG \/\/ Print Bed PID debug data to the serial port.\n\n  #define DEFAULT_bedKp 50.71\n  #define DEFAULT_bedKi 9.88\n  #define DEFAULT_bedKd 173.43\n\n  \/\/ FIND YOUR OWN: \"M303 E-1 C8 S90\" to run autotune on the bed at 90 degreesC for 8 cycles.\n #else\n  \/\/#define BED_LIMIT_SWITCHING   \/\/ Keep the bed temperature within BED_HYSTERESIS of the target\n#endif<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tuttavia, ci sono momenti in cui l&#8217;attivazione del parametro PIDTEMPBED \u00e8 pi\u00f9 dannosa che non attivarlo. Ti consiglio di non abilitarlo dall&#8217;inizio.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Estrusione a freddo (PREVENT_COLD_EXTRUSION)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Entrambe le funzioni gestiscono l&#8217;estrusione a freddo presso Marlin. Come tutti sappiamo, non \u00e8 consigliabile estrudere il filamento se il nostro Hotend non \u00e8 acceso.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;opzione <strong>PREVENT_COLD_EXTRUSION<\/strong> ci impedir\u00e0 direttamente di estrudere materiale se il nostro hotend non raggiunge la temperatura minima definita.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Possiamo configurare a quale temperatura minima consentiremo a Marlin di estrudere il filamento con il parametro <strong>EXTRUDE_MINTEMP<\/strong>. Per impostazione predefinita sono entrambi attivi, quindi non dovresti preoccuparti.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ti consiglio di non disattivare questi comandi, a meno che non devi fare dei test di estrusione.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * Prevent extrusion if the temperature is below EXTRUDE_MINTEMP.\n * Add M302 to set the minimum extrusion temperature and\/or turn\n * cold extrusion prevention on and off.\n *\n * *** IT IS HIGHLY RECOMMENDED TO LEAVE THIS OPTION ENABLED! ***\n *\/\n#define PREVENT_COLD_EXTRUSION\n#define EXTRUDE_MINTEMP 170<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Lunghezza di estrusione (PREVENT_LENGTHY_EXTRUDE)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Come indicato nei commenti, impedisce estrusioni di filamento di una distanza maggiore di quella che abbiamo configurato. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ci\u00f2 significa che Marlin ti consentir\u00e0 di estrudere solo un massimo di 200 mm in un singolo comando GCODE come misura di default.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se si desidera estrudere molto pi\u00f9 di 200mm con un singolo comando, ad esempio nel caso di avere una funzione per caricare il filamento dal display utilizzando Bowden (questo e&#8217; il caso della ender 3 standard), \u00e8 necessario modificare il parametro <strong>EXTRUDE_MAXLENGTH<\/strong> ad un valore pi\u00f9 alto, nell mio caso 600. <\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * Prevent a single extrusion longer than EXTRUDE_MAXLENGTH.\n * Note: For Bowden Extruders make this large enough to allow load\/unload.\n *\/\n#define PREVENT_LENGTHY_EXTRUDE\n#define EXTRUDE_MAXLENGTH 600<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Protezioni termiche (THERMAL_PROTECTION)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Questi tre parametri attivano la protezione termica aggiuntiva che Marlin 2.0.x offre per prevenire danni alle nostre stampanti. Devono essere sempre attivi, infatti in Marlin 2 arrivano di default, quindi non li toccheremo in alcun modo.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/===========================================================================\n\/\/======================== Thermal Runaway Protection =======================\n\/\/===========================================================================\n\n\/**\n * Thermal Protection provides additional protection to your printer from damage\n * and fire. Marlin always includes safe min and max temperature ranges which\n * protect against a broken or disconnected thermistor wire.\n *\n * The issue: If a thermistor falls out, it will report the much lower\n * temperature of the air in the room, and the the firmware will keep\n * the heater on.\n *\n * If you get \"Thermal Runaway\" or \"Heating failed\" errors the\n * details can be tuned in Configuration_adv.h\n *\/\n\n#define THERMAL_PROTECTION_HOTENDS \/\/ Enable thermal protection for all extruders\n#define THERMAL_PROTECTION_BED     \/\/ Enable thermal protection for the heated bed\n#define THERMAL_PROTECTION_CHAMBER \/\/ Enable thermal protection for the heated chamber\n#define THERMAL_PROTECTION_COOLER  \/\/ Enable thermal protection for the laser cooling<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Parametri meccanici (cinematica COREXY e Delta)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Sul mercato esistono diverse stampanti con cinematiche diverse. Ad esempio cinematica cartesiana, delta, tripteron, corexy (e sue varianti), ecc. L&#8217;a verit\u00e0 \u00e8 che per parlarne basterebbe un solo articolo, l&#8217;argomento \u00e8 molto ampio e servirebbero pi\u00f9 articoli. Una breve introduzione la trovi in questo nostro vecchio articolo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se la tua stampante utilizza la cinematica diversa dalla cartesiana, devi attivare il parametro corrispondente. Dato che la mia Ender 3 usa la cinematica cartesiana, lascio tutto disabilitato.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se sei curioso, allego la configurazione presente con tutto disattivati nel firmware precompilato per la mia ender 3, essendo molto lunga la sezione, allego un file di testo.<\/p>\n\n\n\n<div class=\"wp-block-file alignleft\"><a id=\"wp-block-file--media-76372e47-e8e4-41d2-a553-088be4ccbc3c\" href=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/Cinematica.txt\">Cinematica<\/a><a href=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/Cinematica.txt\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-76372e47-e8e4-41d2-a553-088be4ccbc3c\">Download<\/a><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Logica dei finecorsa (ENDSTOP_INVERTING)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A seconda del tipo di sensore o finecorsa che utilizziamo, avranno una logica diversa. Non \u00e8 un gran mistero, lasciali tutti su <strong>FALSE<\/strong> e se qualcuno di loro non funziona, cambia la logica in questa sezione (inserendo <strong>TRUE<\/strong>). Nel mio caso particolare, il firmware preconfigurato, \u00e8 impostato tutto su false.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Mechanical endstop with COM to ground and NC to Signal uses \"false\" here (most common setup).\n#define X_MIN_ENDSTOP_INVERTING false \/\/ Set to true to invert the logic of the endstop.\n#define Y_MIN_ENDSTOP_INVERTING false \/\/ Set to true to invert the logic of the endstop.\n#define Z_MIN_ENDSTOP_INVERTING false \/\/ Set to true to invert the logic of the endstop.\n\n.......\n\n#define Z_MIN_PROBE_ENDSTOP_INVERTING false \/\/ Set to true to invert the logic of the probe.<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Configurazione dei passi\/step (DEFAULT_AXIS_STEPS_PER_UNIT)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In questa sezione diremo alla nostra stampante quanti passi verranno eseguiti per ogni unit\u00e0 di movimento. Le unit\u00e0 possono essere definite in millimetri o pollici.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nel caso si utilizzino i pollici \u00e8 necessario attivare il parametro <strong>INCH_MODE_SUPPORT<\/strong>. Non attiveremo questo parametro, poich\u00e9 lavoriamo con i <strong>millimetri<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c8 necessario conoscere in anticipo i valori da inserire, quindi ti consiglio di estrarli da alcuni firmware gi\u00e0 disponibili per la tua stampante (per andare sul sicuro).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un&#8217;altra opzione \u00e8 cercarlo su Internet da un altro utente, navigare nei forum, consultare il produttore o, come ultima opzione, calcolarli tu stesso come puoi vedere in questo video.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Calibrazione misure di stampa e incastri perfetti\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/Cfl80upYq6w?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * Default Axis Steps Per Unit (linear=steps\/mm, rotational=steps\/\u00b0)\n * Override with M92\n *                                      X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]]\n *\/\n#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 400, 93 }<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Invertire la direzione del motore (INVERT_X_DIR)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Modificheremo questi parametri se durante l&#8217;esecuzione di un HOME o durante la stampa di qualsiasi parte con la nostra stampante, uno qualsiasi dei motori va nella direzione sbagliata. Di default sono tutti configurati con l&#8217;opzione <strong>false<\/strong>. Nel mio caso X, Y ed estrusore sono su <strong>true<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tuttavia, un&#8217;altra opzione \u00e8 quella di invertire il cavo di collegamento del motore, ma se fatto male, pu\u00f2 provocare danni ai motori.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ @section motion\n\n\/\/ Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.\n#define INVERT_X_DIR true\n#define INVERT_Y_DIR true\n#define INVERT_Z_DIR false\n\/\/#define INVERT_I_DIR false\n\/\/#define INVERT_J_DIR false\n\/\/#define INVERT_K_DIR false\n\/\/#define INVERT_U_DIR false\n\/\/#define INVERT_V_DIR false\n\/\/#define INVERT_W_DIR false\n\n\/\/ @section extruder\n\n\/\/ For direct drive extruder v9 set to true, for geared extruder set to false.\n#define INVERT_E0_DIR true\n#define INVERT_E1_DIR false\n#define INVERT_E2_DIR false\n#define INVERT_E3_DIR false\n#define INVERT_E4_DIR false\n#define INVERT_E5_DIR false\n#define INVERT_E6_DIR false\n#define INVERT_E7_DIR false<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Volume di stampa (X_BED_SIZE e Y_BED_SIZE)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Definiremo qui le misure esatte del nostro volume di stampa (letto). La mia stampante ha un piano orizzontale di 235 mm x 235 mm, quindi dovrebbe essere configurata in questo modo:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ The size of the printable area\n#define X_BED_SIZE 235\n#define Y_BED_SIZE 235<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Limiti di movimento (MIN_POS e MAN_POS)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Una volta definite le misure del nostro piano di stampa (letto), dobbiamo configurare Marlin 2 con i limiti minimo e massimo di movimento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Di default per i minimi Marlin \u00e8 configurato con il valore 0, che non dobbiamo modificare poich\u00e9 \u00e8 la HOME. Per i limiti massimi, Marlin utilizza direttamente le misure attuali del nostro letto in X e Y (che avevamo precedentemente lasciato configurate nel parametro precedente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per finire con la configurazione, sull&#8217;asse Z la misura che dobbiamo aggiungere \u00e8 l&#8217;altezza massima di stampa della nostra macchina. Nel mio caso particolare posso stampare circa 250 mm, quindi inserisco il suo valore.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Travel limits (linear=mm, rotational=\u00b0) after homing, corresponding to endstop positions.\n#define X_MIN_POS 0\n#define Y_MIN_POS 0\n#define Z_MIN_POS 0\n#define X_MAX_POS X_BED_SIZE\n#define Y_MAX_POS Y_BED_SIZE\n#define Z_MAX_POS 250\n\/\/#define I_MIN_POS 0\n\/\/#define I_MAX_POS 50\n\/\/#define J_MIN_POS 0\n\/\/#define J_MAX_POS 50\n\/\/#define K_MIN_POS 0\n\/\/#define K_MAX_POS 50\n\/\/#define U_MIN_POS 0\n\/\/#define U_MAX_POS 50\n\/\/#define V_MIN_POS 0\n\/\/#define V_MAX_POS 50\n\/\/#define W_MIN_POS 0\n\/\/#define W_MAX_POS 50<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Restrizioni di movimento (MIN_SOFTWARE_ENDSTOPS)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Per sicurezza, e per evitare di danneggiare i componenti della nostra stampante, Marlin 2 \u00e8 configurato di default in modo da non poter superare i limiti minimi. Ci\u00f2 significa che quando si raggiunge un finecorsa o un sensore, il motore non potr\u00e0 avanzare ulteriormente, anche se lo si fa manualmente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tuttavia, con alcuni comandi, puoi disabilitare quel limite se lo desideri. Operazione sconsigliata, perch\u00e9, se non esperti, si possono fare danni alla stampante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il limite che si rimuove pi\u00f9 spesso, \u00e8 quello dell&#8217;<strong>asse Z<\/strong> per effettuare alcune regolazioni.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * Software Endstops\n *\n * - Prevent moves outside the set machine bounds.\n * - Individual axes can be disabled, if desired.\n * - X and Y only apply to Cartesian robots.\n * - Use 'M211' to set software endstops on\/off or report current state\n *\/\n\n\/\/ Min software endstops constrain movement within minimum coordinate bounds\n#define MIN_SOFTWARE_ENDSTOPS\n#if ENABLED(MIN_SOFTWARE_ENDSTOPS)\n  #define MIN_SOFTWARE_ENDSTOP_X\n  #define MIN_SOFTWARE_ENDSTOP_Y\n  #define MIN_SOFTWARE_ENDSTOP_Z\n  #define MIN_SOFTWARE_ENDSTOP_I\n  #define MIN_SOFTWARE_ENDSTOP_J\n  #define MIN_SOFTWARE_ENDSTOP_K\n  #define MIN_SOFTWARE_ENDSTOP_U\n  #define MIN_SOFTWARE_ENDSTOP_V\n  #define MIN_SOFTWARE_ENDSTOP_W\n#endif\n\n\/\/ Max software endstops constrain movement within maximum coordinate bounds\n#define MAX_SOFTWARE_ENDSTOPS\n#if ENABLED(MAX_SOFTWARE_ENDSTOPS)\n  #define MAX_SOFTWARE_ENDSTOP_X\n  #define MAX_SOFTWARE_ENDSTOP_Y\n  #define MAX_SOFTWARE_ENDSTOP_Z\n  #define MAX_SOFTWARE_ENDSTOP_I\n  #define MAX_SOFTWARE_ENDSTOP_J\n  #define MAX_SOFTWARE_ENDSTOP_K\n  #define MAX_SOFTWARE_ENDSTOP_U\n  #define MAX_SOFTWARE_ENDSTOP_V\n  #define MAX_SOFTWARE_ENDSTOP_W\n#endif\n\n#if EITHER(MIN_SOFTWARE_ENDSTOPS, MAX_SOFTWARE_ENDSTOPS)\n  \/\/#define SOFT_ENDSTOPS_MENU_ITEM  \/\/ Enable\/Disable software endstops from the LCD\n#endif<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Memorizzazione nella EEPROM (EEPROM_SETTINGS)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Abbiamo parlato all&#8217;inizio di questa configurazione.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Marlin ci offre la possibilit\u00e0 di modificare la configurazione della nostra stampante dal display stesso e quindi salvare le modifiche nella EEPROM.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se vogliamo avere questa possibilit\u00e0 attiva, dobbiamo attivare questo parametro nel nostro firmware.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ @section eeprom\n\n\/**\n * EEPROM\n *\n * Persistent storage to preserve configurable settings across reboots.\n *\n *   M500 - Store settings to EEPROM.\n *   M501 - Read settings from EEPROM. (i.e., Throw away unsaved changes)\n *   M502 - Revert settings to \"factory\" defaults. (Follow with M500 to init the EEPROM.)\n *\/\n#define EEPROM_SETTINGS       \/\/ Persistent storage with M500 and M501\n\/\/#define DISABLE_M503        \/\/ Saves ~2700 bytes of flash. Disable for release!\n#define EEPROM_CHITCHAT       \/\/ Give feedback on EEPROM commands. Disable to save flash.\n#define EEPROM_BOOT_SILENT    \/\/ Keep M503 quiet and only give errors during first load\n#if ENABLED(EEPROM_SETTINGS)\n  #define EEPROM_AUTO_INIT    \/\/ Init EEPROM automatically on any errors.\n  \/\/#define EEPROM_INIT_NOW   \/\/ Init EEPROM on first boot after a new build.\n#endif<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Preriscaldamento ABS\/PLA (PREHEAT)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Come potresti aver visto se hai gi\u00e0 armeggiato con la tua stampante, Marlin ti offre due opzioni iniziali per preriscaldare la stampante prima della stampa. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Puoi configurare le temperature disponibili per i filamenti ABS e PLA, anche se puoi aggiungerne altre se lo desideri.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Qualcosa di molto utile perch\u00e9 quelli forniti di default nel firmware possono essere migliorati. <\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ @section temperature\n\n\/\/\n\/\/ Preheat Constants - Up to 10 are supported without changes\n\/\/\n#define PREHEAT_1_LABEL       \"PLA\"\n#define PREHEAT_1_TEMP_HOTEND 185\n#define PREHEAT_1_TEMP_BED     45\n#define PREHEAT_1_TEMP_CHAMBER 35\n#define PREHEAT_1_FAN_SPEED   255 \/\/ Value from 0 to 255\n\n#define PREHEAT_2_LABEL       \"ABS\"\n#define PREHEAT_2_TEMP_HOTEND 240\n#define PREHEAT_2_TEMP_BED    110\n#define PREHEAT_2_TEMP_CHAMBER 35\n#define PREHEAT_2_FAN_SPEED   255 \/\/ Value from 0 to 255\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Lingua del menu (LCD_LANGUAGE)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Lingua che apparir\u00e0 sul display del firmware Marlin 2. Per impostazione predefinita \u00e8 l&#8217;inglese, personalmente lascio inglese, in quanto le traduzioni potrebbero avere errori, per\u00f2, se vuoi, Lingua del menu (LCD_LANGUAGE)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lingua che apparir\u00e0 in ognuno dei menu (display) del firmware Marlin 2. Al momento quello che mi convince di pi\u00f9 \u00e8 quello spagnolo, quindi \u00e8 quello che ho selezionato. Per impostazione predefinita \u00e8 l&#8217;inglese, probabilmente vorrai cambiarlo. disponibile anche il menu italiano.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * LCD LANGUAGE\n *\n * Select the language to display on the LCD. These languages are available:\n *\n *   en, an, bg, ca, cz, da, de, el, el_CY, es, eu, fi, fr, gl, hr, hu, it,\n *   jp_kana, ko_KR, nl, pl, pt, pt_br, ro, ru, sk, sv, tr, uk, vi, zh_CN, zh_TW\n *\n * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cz':'Czech', 'da':'Danish', 'de':'German', 'el':'Greek (Greece)', 'el_CY':'Greek (Cyprus)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'hu':'Hungarian', 'it':'Italian', 'jp_kana':'Japanese', 'ko_KR':'Korean (South Korea)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt_br':'Portuguese (Brazilian)', 'ro':'Romanian', 'ru':'Russian', 'sk':'Slovak', 'sv':'Swedish', 'tr':'Turkish', 'uk':'Ukrainian', 'vi':'Vietnamese', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Traditional)' }\n *\/\n#define LCD_LANGUAGE en<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Supporto per scheda SD (SDSUPPORT)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Questa opzione ti consente di caricare i file STL utilizzando una scheda SD.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Che tu ci creda o no, \u00e8 disabilitato per impostazione predefinita nel firmware Marlin di default. Nel caso della preconfigurazione per Ender 3 risulta gi\u00e0 attivato.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * SD CARD\n *\n * SD Card support is disabled by default. If your controller has an SD slot,\n * you must uncomment the following option or it won't work.\n *\/\n#define SDSUPPORT<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Semplifica i menu (SLIM_LCD_MENUS)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Marlin ti d\u00e0 la possibilit\u00e0 di navigare attraverso innumerevoli menu dal suo display.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Molti di questi parametri dovrebbero essere stati precedentemente configurati nel firmware, senza la necessit\u00e0 di modificarli &#8220;al volo&#8221;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per ridurre i menu, Marlin offre la possibilit\u00e0 di semplificarli con il parametro SLIM_LCD_MENUS. Non solo semplificher\u00e0 i menu, ma risparmierai una notevole quantit\u00e0 di memoria. Ti consiglio di attivare questa opzione se non hai la necessit\u00e0 di fare modifiche &#8220;al volo&#8221;. Io preferisco interazione maggiore, pertanto lo lascio disabilitato<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * LCD Menu Items\n *\n * Disable all menus and only display the Status Screen, or\n * just remove some extraneous menu items to recover space.\n *\/\n\/\/#define NO_LCD_MENUS\n\/\/#define SLIM_LCD_MENUS<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Tipo di display (LCD\/selezione controller)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Osservando il file configuration.h, vediamo che per il display sono presenti diverse configurazioni.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pu\u00f2 sembrare un po&#8217; complicato, ma in realt\u00e0 tutto ci\u00f2 che dobbiamo fare \u00e8 trovare la descrizione del nostro schermo LCD e rimuovere i commenti per poter configurare Marlin 2.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esistono display basati su testo, display LCD grafici, display OLED e molti altri. Per la Ender 3 il display di default e&#8217; indicato con <strong>CR10_STOCKDISPLAY<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se non riesci ad identificare il tuo display, pu\u00f2 esserti utile questo <a href=\"https:\/\/marlinfw.org\/docs\/hardware\/controllers.html#controllers-and-displays\">link<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se usi i TFT della BTT va bene il display stock, in quando in modalit\u00e0 emulazione Marlin, simulano il display stock.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Factory display for Creality CR-10 \/ CR-7 \/ Ender-3\n\/\/ https:\/\/marlinfw.org\/docs\/hardware\/controllers.html#cr10_stockdisplay\n\/\/\n\/\/ Connect to EXP1 on RAMPS and compatible boards.\n\/\/\n#define CR10_STOCKDISPLAY<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Link ad aiuti esterni Alcuni suggerimenti prima di iniziare a<\/p>\n","protected":false},"author":6,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ngg_post_thumbnail":0,"footnotes":""},"class_list":["post-402","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Marlin 2.x da Zero senza lasciarci le penne - 3D Print Italia<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.3dprint-italia.it\/WP\/marlin-2-x-da-zero-senza-lasciarci-le-penne\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Marlin 2.x da Zero senza lasciarci le penne - 3D Print Italia\" \/>\n<meta property=\"og:description\" content=\"Link ad aiuti esterni Alcuni suggerimenti prima di iniziare a\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.3dprint-italia.it\/WP\/marlin-2-x-da-zero-senza-lasciarci-le-penne\/\" \/>\n<meta property=\"og:site_name\" content=\"3D Print Italia\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/groups\/3dprintitalia\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-26T17:57:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/71uXDns6YGL._SY466_.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data1\" content=\"38 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.3dprint-italia.it\\\/WP\\\/marlin-2-x-da-zero-senza-lasciarci-le-penne\\\/\",\"url\":\"https:\\\/\\\/www.3dprint-italia.it\\\/WP\\\/marlin-2-x-da-zero-senza-lasciarci-le-penne\\\/\",\"name\":\"Marlin 2.x da Zero senza lasciarci le penne - 3D Print Italia\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.3dprint-italia.it\\\/WP\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.3dprint-italia.it\\\/WP\\\/marlin-2-x-da-zero-senza-lasciarci-le-penne\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.3dprint-italia.it\\\/WP\\\/marlin-2-x-da-zero-senza-lasciarci-le-penne\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.3dprint-italia.it\\\/WP\\\/wp-content\\\/uploads\\\/2024\\\/07\\\/71uXDns6YGL._SY466_.jpg\",\"datePublished\":\"2024-07-02T12:33:47+00:00\",\"dateModified\":\"2024-08-26T17:57:32+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.3dprint-italia.it\\\/WP\\\/marlin-2-x-da-zero-senza-lasciarci-le-penne\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.3dprint-italia.it\\\/WP\\\/marlin-2-x-da-zero-senza-lasciarci-le-penne\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/www.3dprint-italia.it\\\/WP\\\/marlin-2-x-da-zero-senza-lasciarci-le-penne\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.3dprint-italia.it\\\/WP\\\/wp-content\\\/uploads\\\/2024\\\/07\\\/71uXDns6YGL._SY466_.jpg\",\"contentUrl\":\"https:\\\/\\\/www.3dprint-italia.it\\\/WP\\\/wp-content\\\/uploads\\\/2024\\\/07\\\/71uXDns6YGL._SY466_.jpg\",\"width\":313,\"height\":466},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.3dprint-italia.it\\\/WP\\\/marlin-2-x-da-zero-senza-lasciarci-le-penne\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.3dprint-italia.it\\\/WP\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Marlin 2.x da Zero senza lasciarci le penne\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.3dprint-italia.it\\\/WP\\\/#website\",\"url\":\"https:\\\/\\\/www.3dprint-italia.it\\\/WP\\\/\",\"name\":\"3D Print Italia\",\"description\":\"Tutto sulla stampa 3d\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.3dprint-italia.it\\\/WP\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.3dprint-italia.it\\\/WP\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.3dprint-italia.it\\\/WP\\\/#organization\",\"name\":\"3D Print Italia\",\"url\":\"https:\\\/\\\/www.3dprint-italia.it\\\/WP\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/www.3dprint-italia.it\\\/WP\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.3dprint-italia.it\\\/WP\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/cropped-Logo_Colorato.png\",\"contentUrl\":\"https:\\\/\\\/www.3dprint-italia.it\\\/WP\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/cropped-Logo_Colorato.png\",\"width\":512,\"height\":512,\"caption\":\"3D Print Italia\"},\"image\":{\"@id\":\"https:\\\/\\\/www.3dprint-italia.it\\\/WP\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/groups\\\/3dprintitalia\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Marlin 2.x da Zero senza lasciarci le penne - 3D Print Italia","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.3dprint-italia.it\/WP\/marlin-2-x-da-zero-senza-lasciarci-le-penne\/","og_locale":"it_IT","og_type":"article","og_title":"Marlin 2.x da Zero senza lasciarci le penne - 3D Print Italia","og_description":"Link ad aiuti esterni Alcuni suggerimenti prima di iniziare a","og_url":"https:\/\/www.3dprint-italia.it\/WP\/marlin-2-x-da-zero-senza-lasciarci-le-penne\/","og_site_name":"3D Print Italia","article_publisher":"https:\/\/www.facebook.com\/groups\/3dprintitalia","article_modified_time":"2024-08-26T17:57:32+00:00","og_image":[{"url":"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/71uXDns6YGL._SY466_.jpg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Tempo di lettura stimato":"38 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.3dprint-italia.it\/WP\/marlin-2-x-da-zero-senza-lasciarci-le-penne\/","url":"https:\/\/www.3dprint-italia.it\/WP\/marlin-2-x-da-zero-senza-lasciarci-le-penne\/","name":"Marlin 2.x da Zero senza lasciarci le penne - 3D Print Italia","isPartOf":{"@id":"https:\/\/www.3dprint-italia.it\/WP\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.3dprint-italia.it\/WP\/marlin-2-x-da-zero-senza-lasciarci-le-penne\/#primaryimage"},"image":{"@id":"https:\/\/www.3dprint-italia.it\/WP\/marlin-2-x-da-zero-senza-lasciarci-le-penne\/#primaryimage"},"thumbnailUrl":"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/71uXDns6YGL._SY466_.jpg","datePublished":"2024-07-02T12:33:47+00:00","dateModified":"2024-08-26T17:57:32+00:00","breadcrumb":{"@id":"https:\/\/www.3dprint-italia.it\/WP\/marlin-2-x-da-zero-senza-lasciarci-le-penne\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.3dprint-italia.it\/WP\/marlin-2-x-da-zero-senza-lasciarci-le-penne\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.3dprint-italia.it\/WP\/marlin-2-x-da-zero-senza-lasciarci-le-penne\/#primaryimage","url":"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/71uXDns6YGL._SY466_.jpg","contentUrl":"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/07\/71uXDns6YGL._SY466_.jpg","width":313,"height":466},{"@type":"BreadcrumbList","@id":"https:\/\/www.3dprint-italia.it\/WP\/marlin-2-x-da-zero-senza-lasciarci-le-penne\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.3dprint-italia.it\/WP\/"},{"@type":"ListItem","position":2,"name":"Marlin 2.x da Zero senza lasciarci le penne"}]},{"@type":"WebSite","@id":"https:\/\/www.3dprint-italia.it\/WP\/#website","url":"https:\/\/www.3dprint-italia.it\/WP\/","name":"3D Print Italia","description":"Tutto sulla stampa 3d","publisher":{"@id":"https:\/\/www.3dprint-italia.it\/WP\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.3dprint-italia.it\/WP\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/www.3dprint-italia.it\/WP\/#organization","name":"3D Print Italia","url":"https:\/\/www.3dprint-italia.it\/WP\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.3dprint-italia.it\/WP\/#\/schema\/logo\/image\/","url":"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/02\/cropped-Logo_Colorato.png","contentUrl":"https:\/\/www.3dprint-italia.it\/WP\/wp-content\/uploads\/2024\/02\/cropped-Logo_Colorato.png","width":512,"height":512,"caption":"3D Print Italia"},"image":{"@id":"https:\/\/www.3dprint-italia.it\/WP\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/groups\/3dprintitalia"]}]}},"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.3dprint-italia.it\/WP\/wp-json\/wp\/v2\/pages\/402","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.3dprint-italia.it\/WP\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.3dprint-italia.it\/WP\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.3dprint-italia.it\/WP\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.3dprint-italia.it\/WP\/wp-json\/wp\/v2\/comments?post=402"}],"version-history":[{"count":51,"href":"https:\/\/www.3dprint-italia.it\/WP\/wp-json\/wp\/v2\/pages\/402\/revisions"}],"predecessor-version":[{"id":514,"href":"https:\/\/www.3dprint-italia.it\/WP\/wp-json\/wp\/v2\/pages\/402\/revisions\/514"}],"wp:attachment":[{"href":"https:\/\/www.3dprint-italia.it\/WP\/wp-json\/wp\/v2\/media?parent=402"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}