Category Archives: Guest Projects

Lasercut Clock models for Education

Since a few year our fablab started an educational project in collaboration with Maria Pia Solari, Alceo Solari, Giacomo Rupil, Alberto Tonelli and Stefano Solari, and the Associazione “Amici dell’Orologeria Pesarina Giovanni Battista e Remigio Solari – APS” based in Pesariis di Prato Carnico.

The aim of the project is to disseminate to students and to the large public as much as it is possible of the knowledge related to the building of ancient mechanical clocks, before they are lost forever.

To do so, we started with the original drawings of old clock mechanisms by Leonardo da Vinci and Galileo Galilei and re-created a modern version of them, out of wooden parts that can be produced by lasercutting and easily assembled. We also added modern bearings to minimise the friction on wooden axes and gears. Such models and drawings have been created with the opensource software OpenSCAD and are available here for download, shared with an opensource license.

Download all files:

Galileo Clock:

OpenSCAD source file

all DXF (2D drawings for laser cutter)

Leonardo Clock

OpenSCAD source file

all DXF (2D drawings for laser cutter)

Digital stereotomics: implementazione algoritmica delle apparecchiature emisferiche in pietra di Frézier

Maker: Chiara Penzo

Il progetto di stampa 3D qui presentato si inserisce a conclusione di una tesi di laurea sulle volte sferiche in pietra di Amédée François Frézier costituite da singoli conci assemblati a secco. Dopo aver studiato i disegni 2D di Frézier nell’opera La théorie et la pratique de la coupe des pierres […] del 1737, che riportano la rappresentazione di tre metodi di costruzione delle volte sferiche e dopo aver ricostruito in 3D tali modelli attraverso il software VPL Dynamo, si è proceduto con la stampa 3D dei singoli conci per visualizzare concretamente la loro geometria e la difficoltà di realizzazione.

Tempo impiegato per la realizzazione:
136 ore circa di stampa 3D per i tre modelli.

Tecnologie utilizzate:
Il software per la creazione delle mesh dei singoli conci è Dynamo, il software per la stampa 3D è Ultimaker Cura 3D Printing. La stampante utilizzata è FDM Creality3D modello Cr 10 con filamento PLA.

Hephestos 3D printer Upgrade

Post introduttivo e indice.

Una serie di kit di montaggio delle stampanti Hephestos includeva l’estrusore HeatCore Unibody formato da dissipatore e ugello da 0.4mm in pezzo unico di acciaio cromato montati su un sistema di trascinamento di tipo diretto.

HeatCore_Unibody

Questo estrusore con il passare del tempo degrada le proprie prestazioni, il termistore si ossida e non mantiene stabile la temperatura dell’hot end causando intasamenti e vari altri problemi. Poi con un uso intensivo l’estrusore tende a consumarsi e quando sorge l’esigenza di sostituire l’ugello, questo non è possibile.

Trovandomi con una stampante diventata inutilizzabile per questi motivi ho pensato la seguente trasformazione.

Sostituzione del sistema di estrusione con estrusore E3D V6 e riutilizzo del sistema di trascinamento trasformandolo da diretto a Bowden.

L’estrusore E3D V6 oltre ad essere conveniente, viene fornito con tutto l’occorrente per l’utilizzo con tubetto bowden per filamenti da 1.75mm o da 3mm.

Per questa modifica ordineremo un hot-end E3D v6 per filamento da 1.75mm.

E3DV6Con questa trasformazione si riduce l’inerzia sull’asse X causata dal peso del motore di trascinamento del filamento e di conseguenza si riescono ad ottenere stampe più accurate.

 

Materiale occorrente:
Vecchio estrusore HeatCore Unibody da smontare;
Estrusore E3D v6 completo di tubetto bowden, ventilatore e fanduct e nozzle da 0.4mm (acquistabile su Ebay)
Viti e/o brugole e rondelle piane M3, M4, M2.5. (per chi lo avesse è possibile usare alcune viti avanzate dal kit originale di montaggio della stampante)
1 cuscinetto a manicotto LM8UU da aggiungere sul carriage.
Flangia in alluminio o ferro da 60x22mm spessore 2.5mm da sagomare e forare per il fissaggio dell’hotend al carriage.
Saldatore con punta sottile
STL da stampare (link in fondo all’articolo)
Pazienza QB….

 

Smontaggio e trasformazione del’estrusore HeatCore Unibody.

IMG_2346

Con la chiave a brugola (quella più grande fornita con il kit Hephestos) svitare le due viti che fissano il ventilatore tangenziale di raffreddamento del PLA.

IMG_2350

Con la chiave di misura più piccola (sempre fornita con il kit Ephestos) svitare le altre due viti che fissano il telaio porta ventola al corpo estrusore.

Svitare le 2 viti che fissano il ventilatore 40x40mm e relativo dissipatore.

IMG_2352

Svitare le due viti che fissano il sistema di trascinamento del filamento al motore.

IMG_2353

Con una chiave a brugola da 2mm svitare il grano che tiene bloccato l’hotend al sistema di trascinamento filo ed estrarre l’hotend.

IMG_2355IMG_2356

Ora avvitare nel foro filettato che prima era l’ingresso del filamento, la boccola di innesto del tubetto bowden.

IMG_2357 IMG_2358

Riassemblare il sistema di trascinamento al motore orientandolo in modo che il connettore di alimentazione del motore sia rivolto verso l’interno della stampante o verso il basso.

In questo modo sarà più agevole il passaggio dei fili di alimentazione.

IMG_2359

Come si può notare quella che prima era l’entrata del filamento diventa senza problemi l’uscita con la boccola di innesto del tubetto bowden che porta il filamento all’estrusore E3D v6.

Il tubetto fornito con l’hotend deve essere accorciato alla misura opportuna tale da non causare curve troppo strette quando il carrello raggiunge le posizioni più estreme e non deve essere nemmeno lasciato troppo lungo in quanto il filamento potrebbe causare troppo attrito e il sistema di spinta potrebbe non farcela generando la ben nota serie si scatti che possono essere l’avvisaglia di un blocco dell’estrusore.
Consiglio di lasciare il tubetto piuttosto lungo ed eventualmente accorciarlo gradualmente se si riscontrano problemi.

Il motore di trascinamento del sistema bowden sarà fissato al telaio in duralluminio della Hephestos con due viti (si possono utilizzare delle viti nere M3 avanzate dal kit di montaggio. Frapporre due rondelle piane tra il motore + spingifilo e il telaio in duralluminio in modo da evitare che l’albero motore vada in contatto con il telaio della stampante.

IMG_2361

Il filamento proveniente dalla bobina che può restare allo stesso posto entrerà nel sistema di trascinamento dalla ex uscita per uscire dall’ex entrata.

L’operazione di inserimento del filamento dovrà essere effettuata tenendo premuta la leva del serrafilo ed infilando il filamento da sotto e facendolo scorrere nel bowden fino al raggiungimento dell’Hot End.

Ho collaudato il sistema con stampe di qualche ora con filamento dalla superficie ruvida senza problemi di sorta.

L’importante è che il tubetto bowden non sia troppo lungo.  Deve essere calibrato in base alla massima escursione della testina di stampa rispetto al motore di trascinamento.

IMG_2362

ASSEMBLAGGIO ESTRUSORE

Ora passiamo alll’assemblaggio della parte estrusore.

Prima di passare all’estrusore è necessario stampare le parti che compongono il nuovo carrello X. Il carrello originale era piuttosto instabile (minimale) e comunque non adatto al nuovo estrusore.

Quello che propongo io è derivato dalla Prusa i3 originale, dotato di 4 cuscinetti ed un sistema di autofissaggio della cinghia di trascinamento senza la necessità di fascette.

Le parti sono X-carriage front e X-carriage rear (gli stl si trovano nello zip linkato alla fine della sezione)

         X_CARRIAGE_FRONT_HEPH.stl                                    X_CARRIAGE_REAR_HEPH.stlX-carriage front X-carriage back

carriage1 carriage2

Alloggiare i 4 cuscinetti LM8UU nel X-carriage front ed inserire gli estremi della cinghia GT2 nelle feritoie sagomate con il passo della cinghia GT2 senza tendere troppo la cinghia che verrà tesa dopo con l’apposito tendicinghia. Se si utilizza una cinghia GT2.5 si dovrà fare più fatica o meglio ridefinire il passo delle sagome.

Assemblare poi la parte X-carriage rear assieme al supporto catena  (quella che racchiude i fili elettrici) chain holder

chain holder

e al carriage vero e proprio mediante 4 viti M4

carriage

Questo è l’esploso di come vanno assemblate le parti e l’HOTEND fissato mediante una flangia da 60x22mm e spessore 2.5mm  in alluminio o ferro opportunamente sagomata e due viti M4.
Si trovano anche in internet con le opportune ricerche.

flangia fix HOTEND

esploso carriage1Il risultato è questo:

IMG_2365aI cavetti del riscaldatore, del termistore e del ventilatore devono passare attraverso il foro come in figura.

Il carrello montato visto da dietro. Le fascette anche se presenti nella foto non servono in quanto le viti che tengono il carriage, tengono assieme tutta la struttura.

IMG_2363AI cavi rossi del riscaldatore i cavi bianchi del termistore e i cavi rosso e nero del ventilatore E3D v6 vanno regolati opportunamente ed intestati con i relativi connettori recuperati dal vecchio estrusore.

IMG_2365bQuesta operazione andrebbe fatta prima di assemblare l’estrusore sul carriage in modo da verificare che i connettori passino attraverso il foro citato prima. Eventualmente lo si può allargare con una punta di trapano.

Connessi tutti i cavi, verificato che il ventilatore giri subito (che sia connesso al 12Vcc) che l’Hotend si riscaldi a dovere, si può caricare il filamento di PLA premendo l’apposita leva sul dispositivo di trascinamento e far scorrere il filamento attraverso il bowden fino al raggiungimento dell’Hotend.

Se questo si trova a 200°C, spingendo a mano il filamento con più forza, dall’ugello inizierà ad uscire il filino da 0.4mm estruso.

Ora la stampante è operativa. L’estrusore E3D v6 è dotato della sua ventolina 30×30 di raffreddamento che deve girare sempre. Se non dovesse girare, collegarla all’altro connettore. Facciamo una stampina di collaudo e passiamo alla stampa del supporto ventilatore di raffreddamento PLA e relativo fanduct.

Le parti da stampare sono fanduct_pla.stl e fanduct_pla_end.stl   nel zip a fine post.fanduct_pla fanduct_pla_end

Le due parti vengono stampate separatamente e poi vengono assemblate e tenute assieme da due viti M3.

Il foro più basso sul fanduct_pla è asolato per permettere una piccola regolazione di qualche millimetro in altezza del fanduct end.

slicer fanduct_plaIMG_2364

I dati per la stampa sono i seguenti:

LH02
PLA a 200-210°C (eventualmente valutare la temperatura ottimale in base al PLA usato)
Velocità 30mm/s
Infill 50%
Supporti ovunque con densità del 5%   da togliere con attenzione dopo la stampa!
Piatto riscaldato a 60°C se presente.

La stampa del Fanduct_pla_end, va fatta appoggiandolo sulla ciambella forata finale.

slicer fanduct_pla_endI dati per la stampa sono i seguenti:

LH02
PLA a 200-210°C (eventualmente valutare la temperatura ottimale in base al PLA usato)
Velocità 30mm/s
Infill 50%
NO Supporti
Piatto riscaldato a 60°C se presente.

Ripulire ed assiemare con attenzione smussando eventualmente gli angoli per favorire lo scorrimento delle parti.

Montare il ventilatore 40×40 sull’apertura, e far passare i suoi fili di alimentazione all’interno del fanduct facendoli uscire dietro da un forellino praticato con il trapano o con la punta di un saldatore.

Intestate poi i cavi del ventilatore con il connettore recuperato dal ventilatore tangenziale del vecchio estrusore e collegateli ai cavi provenienti dalla RAMPS.
Se all’accensione della stampante dovesse accendersi subito questo ventilatore significa che sono stati scambiati i connettori. Questo Ventilatore si accende a stampa iniziata al secondo o terzo layer in base alle impostazioni dello slicer e solamente usando il PLA.

Fissare le due parti con due viti M3 sul foro asolato ed inserire da sotto appoggiandolo sul carriage.

IMG_2367

Serviranno due vitine da 2.5x 15mm meglio se autofilettanti per bloccare la struttura sul carriage.

In questo zip STL_trasformazione.zip sono contenuti tutti gli STL delle parti necessarie per la trasformazione della stampante.

Dopo questa trasformazione la Hephestos è rinata a nuova vita.
Le stampe risultanti sono più precise, i layers sono più ordinati e le disfunzioni dovute alla temperatura variabile del PLA e all’inerzia del motore di trascinamento sono scomparse.
Le foto testimoniano.

Post introduttivo e indice.

Piattaforma Vibrante

Il mio nome è Taddea Druscovich è attualmente sto progettando presso il FabLab un exhibit didattico che presenta all’utente di un museo scientifico la forma visibile delle onde vibrazionali.

Come funziona l’exhibit:

Le sfere, che rappresentano piccole unità visibili, si posizionano sulla piattaforma vibrante nelle aree soggette a minore intensità di vibrazione, delineando sulla piattaforma stessa la forma visibile dell’onda. Il prototipo viene completato da Arduino Uno che rende l’exhibit autonomo. Arduino riproduce automaticamente le frequenze sonore che creano le rispettive forme visibili. L’interattività del exhibit è data dalla possibilita di cambiare le onde generate in maniera da esplorare le figure sulla piattaforma.

Il progetto del prototipo verrà presentato a maggio di quest’anno alla Mini Maker Faire di Trieste.

DSC_1436

Prusa i3 UPGRADE

Post introduttivo e indice.

Con questo post, vorrei descrivere un upgrade abbastanza importante effettuato sulla mia Prusa i3 autocostruita.

Questo upgrade può essere effettuato anche sulle stampanti Prusa i3 Hephestos in quanto le nuove parti sono compatibili con il kit.

Seguendo le linee guida fondamentali del progetto PRUSA i3 la stampante è stata realizzata usando due barre filettate M5 per la movimentazione dell’asse Z.

Pur funzionando in modo accettabile, a lungo andare e con l’usura delle barre filettate, questa soluzione comporta delle leggere imperfezioni sulle stampe che sono ben conosciute nella letteratura RepRap con il nome di wobble e Z ribbing. Z ribbing1 Risolto il wobble con delle molle che tenevano premuti verso l’esterno due dadi M5 (invece  di un unico dado in appoggio) in modo da ridurre il gioco tra dado e vite, è rimasto lo Z ribbing ovvero delle striature longitudinali disposte nel senso dei layer che viste in sezione danno l’idea che i layer non siano perfettamente allineati uno sull’altro. Z ribbingQuesto difetto è particolarmente subdolo perchè fa pensare che la sua causa dipenda da imperfezioni nel movimento degli assi X e Y o al fatto che le barre filettate non essendo perfettamente dritte, possano trascinare nel loro moto ondulatorio anche le 2 barre in acciaio temprato inox da 8mm e tutto il carrello X (cosa assai improbabile).

Questo odiato difetto è invece causato da un non uniforme avanzamento dell’asse Z nel passaggio da un layer all’altro dovuto al fatto che le barre filettate non sono barre di precisione ed in breve tempo, come anche  i dadi M5,  si usurano con il risultato che alcuni layer sono da 0.2mm mentre altri sono da 0.18 o 0.23 causando uno schiacciamento del materiale estruso che genera i rigonfiamenti sulle superfici esterne.  Questo succede ciclicamente perchè probabilmente le barre si usurano a metà (in senso assiale) per il fatto che sono comunque leggermente ondulate e l’usura si manifesta in modo asimmetrico tra barra destra e sinistra.

Guarda caso questi rigonfiamenti si susseguono ciclicamente con un passo di 0.8mm…si…proprio il passo verticale della vite M5. Z ribbing2 La soluzione a questo inconveniente si ha sostituendo le comuni barre filettate M5 con le barre trapezoidali. Leadscrew Con una spesa di circa 50 euro (comprese le spese di spedizione) presso questo negozio italiano su ebay  DHM  trasformate la vostra stampante in una macchina professionale o quasi.

Le barre da comperare sono le seguenti: 2 x LEAD SCREW ROD Ø8 mm – 300 mm

Una confezione contiene: – 1 x vite senza fine Ø 8 mm lunghezza 300 mm – 1 x bullone (ottone)

Le barre hanno un passo di 2mm per giro che vanno moltiplicati per il numero di principi della vite.

Nel mio caso il passo è di 2mm con 4 principi, per cui il passo effettivo è di 8mm per giro ovvero ogni giro l’asse X si sposta sull’asse Z di 8mm.

Questo valore ci servirà poi per il calcolo e l’aggiornamento degli  Z steps nel firmware.

Assieme alle barre vanno comperati due accoppiatori 5x8mm Motore (asse da 5mm)  – Barra (asse da 8mm)  sempre da DHM elastic coupler foro 5mmQuesto aggiornamento non è un lavoro banale come sembra in quanto per attuarlo si devono  ristampare  i due supporti della struttura asse X, destro e sinistro (quello col motore), il meccanismo del tendicinghia, i supporti  Z top destro e sinistro con i fori allargati (che vanno ulteriormente ripassati con la punta da 8 facendo attenzione a non romperli.

Iniziamo dalle parti STL scaricabili qui: parti per upgr. viti trapezie

L’archivio zip contiene le seguenti parti: X_End_MOTOR_T.stl X_End_MOTOR_T X_End_IDLER_T.stl X_End_IDLER_T belt_tensioner_arm.stl belt_tensioner_arm placca_belt_tensioner.stl  placca_belt_tensioner X_belt_tensioner.stl    X_belt_tensioner             rondella_belt_tensioner.stl rondella_belt_tensioner     Z-AXIS-TOP-LEFT-V5_BT.stl  e Z-AXIS-TOP-RIGHT-V5_BT.stl Z-AXIS-TOP-LEFT-RIGHT

Tutte queste parti vanno stampate in PLA o meglio PET (per chi ama l’avventura in ABS) con infill di almeno 80% impostando perimetri e spessori top/bottom a 0.8mm e supporti dove serve.

 

ASSEMBLAGGIO X_End_IDLER_T  Prima di tutto deve essere pre-assemblato il tendicinghia:

Le viti ed i bulloni necessari sono indicati direttamente nel disegno di assemblaggio.

Le due viti M3x20 servono ad esercitare una certa pressione sulle barre lisce infilate nell’idler per mantenerle ferme in battuta sul foro cieco dell’X End motor sul lato sinistro. X_belt_tensioner_assyProcedere con il resto dell’assemblaggio dell’idler e tendicinghia come indicato quì sopra.

esploso X-End Idler.

infine infilare i due cuscinetti lineari (estratti dal vecchio IDLER) e la boccola della vite trapezia. Quest’ultima può essere fissata all’idler con due viti M3x15mm e relativi dadi.  esploso X-End Idler_1

Se necessario ripassare i fori con una punta di diametro adeguato.
Inserire con cautela la barra liscia nei cuscinetti e farla scorrere oliando moderatamente.

 

ASSEMBLAGGIO X_End_MOTOR_T  esploso X-End_motor Inserire nella feritoia il dado M3 nylonstop (servirà per mantenere più stabile la vite di regolazione dell’endstop Z nella calibrazione)

Infilare i due cuscinetti lineari (estratti dal vecchio X end) e la boccola della vite trapezia. Quest’ultima può essere fissata all’X end Motor con due viti M3x15mm e relativi dadi.

ATTENZIONE nell’estrazione e riposizionamento dei cuscinetti lineari. Possono sboccolare e far uscire tutte o parte delle sferette compromettendone il funzionamento.

Fissare il motore e poi avvitare la vite di regolazione nel dado M3.
Inutile dire che per tutti i dadi che vanno annegati nella plastica è bene usare il saldatore (con cautela) per riscaldarli e facilitare l’operazione.

Procedere con il ripristino di tutta la struttura dell’asse X…carrello cinghia ecc.

Rimontare l’estrusore ed allineare l’asse X con il piatto di stampa.

ATTENZIONE queste due ultime righe non sono così banali!
Le viti trapezie sono molto precise per cui se l’asse X non è perfettamente orizzontale le boccole possono bloccarsi.

NON ACCENDERE ANCORA LA STAMPANTE!

Dopo aver allineato tutto si deve modificare il firmware per cambiare il valore di steps per millimetro relativi all’asse Z.

Aprire con Arduino IDE 1.06 il Configuration.h ed andare alla riga 500 circa del firmware:
#define DEFAULT_AXIS_STEPS_PER_UNIT   {100, 100, 400, 687.58933}
(i valori X,Y ed E sono quelli della mia stampante)

si deve cambiare solo il valore  Z STEPS PER UNIT (il terzo valore in neretto)

Per una barra M5 il valore precedente era 4000 ora con le viti trapezie diventa 400.

Rimando al capitolo Il Firmware e le sue impostazioni di base
per i dettagli sul calcolo degli Z-Steps

Dopo aver fatto l’upload del firmware si può accendere la stampante.

Verificare l’allineamento dell’HotEnd sul piatto di stampa e il movimento dell’asse Z.
L’asse Z deve muoversi in modo fluido senza perdite di passi.

Una prova interessante dopo aver fatto l’allineamento dell’Hotend sul piatto di stampa, è far muovere l’asse Z fino alla massima altezza o giù di li, verificare con precisione la distanza Z destra e sinistra dal piatto di stampa.  Poi impartire un HOME XYZ e verificare all’arrivo se l’HotEnd risulta ancora allineato con il piatto.

Se non fosse così significa che nel viaggio l’uno o l’altro motore hanno perso degli step a causa di attriti indesiderati.

Se lubrificando le barre il problema non si risolve sarà necessario verificare ed eventualmente aumentare la corrente sui driver dei motori Z in quanto la barra trapezoidale richiede più sforzo.

Questa è la procedura : Regolazione corrente motori

 

PROVE DI STAMPA

Fatte tutte le verifiche e stampare il solito cubo 30x30x30.

Risultato…problema risolto!!!  il Z ribbing è sparito.    Diciamo che siamo al livello della Ultimaker.

comparison

PRIMA
Z ribbing1

DOPO

IMG_2446
Post introduttivo e indice.

D3, la stampante con un asse in più

Si può migliorare la stampa di oggetti con difficili sottosquadra? Forse si.

Ecco una breve descrizione della D3, la stampante che permette di variare l’angolo di uscita della plastica dall’estrusore, rispetto alla direzione della gravità, durante la stampa di un oggetto.
Questa stampante è stata presentata per la prima volta alla Maker Faire 2015 a Roma e fa parte del materiale a disposizione dei maker che portano avanti i loro progetti al SciFabLab.

 

finale1

Prime idee

Uno dei più grandi nemici della stampa 3D è la gravità: infatti quando la plastica viene fusa dall’estrusore non può far altro che cadere verso il basso.
Per questo inizialmente ho pensato che ruotando la stampante di 180 gradi fosse possibile ottenere dei risultati migliori su alcune superfici con sottosquadra particolarmente difficili.
I primi test sono risultati molto incoraggianti in quanto si notava un netto miglioramento nella stampa di oggetti attaccati al piano da punte molto sottili.

test2
test1

test3

Sviluppo della stampante al contrario

Convinto da questi risultati ho cominciato la progettazione di un supporto che permettesse la rotazione della stampante lungo l’asse y, in modo da porterla ruotare la stampante agevolmente.
Per questo progetto ho scelto di utilizzare una Ultimaker Original, uno dei modelli di stampante commerciale più diffusi, e di studiare una struttura che potesse essere costruita in qualsiasi Fablab dotato di tagliatrice laser, evitando di utilizzare viti o chiodi e non modificando in alcun modo la stampante stessa.
Per la costruzione ho utilizzato il legno tagliato con la lasercutter, ma è risultato chiaro fin dal primo prototipo che il movimento degli ingranaggi era fortemente ostacolato dall’attrito dovuto al peso della stampante.

C’era inoltre un altro problema: la struttura costruita in questo modo era difficilmente motorizzabile e quindi non controllabile con uno stepper.

proto1
proto2

La svolta e la nuova teoria

A questo punto era chiaro che c’era bisogno di un disegno totalmente diverso da quello sviluppato fino a questo momento: la struttura doveva essere portata sulla stampante e lo stepper doveva essere fissato sulla base, in modo da controllare il movimento dell’intera struttura.
Mi resi anche conto che in questo modo avrei potuto avere l’intero controllo sul movimento durante la stampa e quindi la possibilità di ruotarla anche di 90 gradi per poter fare i \”ponti\”, uno dei maggiori problemi della stampa 3D. Ma perchè fermarmi a questo punto?
Come detto prima il problema della stampa 3D è la gravità stessa: quando la plastica esce fusa dall’estrusore non può far altro che seguire la gravità verso il basso.
In realtà abbiamo anche un altro componente sempre perpendicolare al piano di stampa, cioè la pressione con cui esce dall’estrusore. Tuttavia imponendo una condizione di stampa a bassa velocità, nella quale possiamo trascurare la pressione di uscita della plastica dall’estrusore, l’unica forza agente sulla plastica è la gravità.
Quindi non ci resta che sfruttare la gravità a nostro favore: mantenendo il piano tangente alla superficie del solido che vogliamo ottenere ad un angolo di almeno 45 gradi rispetto alla base di stampa, angolo ottimale per ottenere dei buoni risultati, la gravità influirà in modo marginale sulla stampa, permettendoci di sfruttare nuove modalità di slicing.
disegno

 

Sviluppo del quarto asse

Ritornado alla stampante e applicando quanto detto risulta chiaro che il progetto ha preso una piega totalmente diversa.
Ora la struttura deve:

  • essere costruibile in un Fablab;
  • senza chiodi ne viti;
  • senza modifiche ne strutturali ne firmware alla stampante;
  • ruotabile durante la stampa.

Su consiglio di Carlo, smetto di disegnare ingranaggi su sui far scorrere la stampante e mi concentro su una struttura, da fissare alla stampante, liscia e circolare, che andrà a scorrere in dei cuscinetti sulla base fissa appoggiata al tavolo. Sul lato interno della parte fissata sulla stampante è stata intagliata una corona su cui scorrerà l’ingranaggio fissato allo stepper.

corona

Per quanto riguarda il fissaggio dello stepper alla base ho deciso di utilizzare il peso stesso dello stepper per dare la giusta tensione all’ingranaggio: infatti il pannello che sostiene il motore è libero di muoversi in verticale e solo il peso lo mantiene della sua posizione.
Questa soluzione ha anche un altro vantaggio: se il sistema improvvisamente ha un problema posso sganciare il motore dalla corona semplicemente sollevandolo.
I cuscinetti, per evitare viti e per poter esser completamente costruibili in un Fablab (per non parlare dell’estetica =) ), sono stati sostituiti cuscinetti planetari modificati ed ingranditi, fissati con una serie di perni ed incastri.

cuscinetto

Sviluppo software

Costruito e montato il tutto sono passato alla parte software. L’Ultimaker Original permette l’utilizzo di solo 5 motori, 3 assi e 2 estrusori; questo implica che lo stepper che andrà a muovere questo nuovo asse della stampante dovrà per forza essere quello del secondo estrusore.
Ma sorge un problema: il firmware della stampante non permette l’utilizzo di due estrusori contemporaneamente, quindi per ogni movimento quindi rotatorio della stampante dovrò fare il cambio tool e fare un retract durante la stampa.
A questo punto l’ultimo problema rimasto è lo slicing, infatti non esiste un programma che calcoli anche i movimenti del nuovo asse.
Considerando che è stato inserito un solo nuovo asse, l’oggetto più interessante da stampare risulta il cilindro e modificare il gcode di un cilindro non è molto difficle sfruttando la geometria dell’oggetto.
Ho scritto uno script in python (non sono un informatico, quindi sono sicuro che ci sono modi più semplici o più efficienti per fare quello che ho fatto, vi prego non intasate i commenti con suggerimenti per lo script grazie=) ) che controlla riga per riga il gcode e va a calcolare l’angolo sul lato del cilindro in base alla variazione dell’asse x tra due layer e conoscendo il layer height.
Il resto del codice serve per inserire le righe del gcode che servono per gestire il movimento, considerando anche il punto di partenza dell’estrusore, il quale può essere su uno qualsiasi dei vertici del perimetro.

Risultati

Dai test preliminari risulta che la stampante utilizzata è già al limite delle sue potenzialità, infatti otteniamo dei risultati non molto precisi e puliti.
In ogni caso nelle seguenti foto si confrontano i due pezzi, in particolare si nota in alcuni punti un netto miglioramento rispetto ad una stampa senza rotazione.
normal

 

 

 

 

 

 

 

A sinistra possiamo vedere come il pezzo risulti ben stampato rispetto all’immagine di destra dove si notano i filamenti che tendono a staccarsi.

 

Marlin standard per 3D printer Hephestos Scifablab

Di seguito il link per scaricare il Firmware Marlin ORIGINALE per le stampanti Prusa i3 Hephestos (kit realizzati nel precedente corso di assemblaggio) http://scifablab.ictp.it/2015/05/21/corso-di-assemblaggio-di-una-stampante-3d-prusa-i3-hephestos/

Marlin_Hephestos

Questo invece è il link al Firmware Marlin STANDARD con le personalizzazioni per la stampante 3D Ephestos ed avente i menu estesi che permettono impostazioni “tecniche” direttamente dal pannello LCD.

Marlin_STANDARD adattato per HEPHESTOS_scifablab_OK

 

Calibrazione della stampante

Post introduttivo e indice.

A questo punto abbiamo davanti una stampante calibrata termicamente e meccanicamente ossia con tutti i parametri corretti nel firmware e caricati nella scheda Arduino (capitolo precedente).

Ora bisogna fare alcuni test per verificare se i dati inseriti nel FW sono corretti.

Verifica preliminare

Prima di procedere con i test, verifichiamo che l’asse X e Y si muovano lungo tutta l’escursione possibile che ad una prima misurazione sul piano di stampa dovrebbe essere di 200x200mm

Un’altra verifica da fare è il parallellismo dell’asse X con l’asse Y.
In pratica si deve verificare che tra la punta dell’ugello ed il letto di stampa vi sia la stessa distanza sia con asse X tutto a destra che tutto a sinistra. Se non fosse così, si devono ruotare a mano i motori destro o sinistro e relative barre filettate per abbassare od alzare una o l’altra estremità in modo da renderle il più possibile parallele al letto di stampa.   La regolazione fine la vedremo in fondo a questo capitolo regolando le viti del letto di stampa.  Questa operazione va fatta a stampante spenta e mentre si ruota a mano un accoppiatore motore-barra, tenere fermo l’altro con le mani, in quanto tende a girare perchè alimentato dal moto di quello che si sta regolando (questi motori sono delle dinamo a 4 poli).

Qualora si noti che i motori non girino in modo regolare, che appaiano sotto sforzo e perdano passi, bisognerà controllare la loro corrente di assorbimento a vuoto.
A tal proposito allego una bella procedura per effettuare questa operazione.

Regolazione corrente motori

 

Test quantità filamento trascinato.

Per questo test si deve smontare l’hot end dall’estrusore in modo da verificare che a fronte di un comando Gcode impartito per estrudere 10cm di filamento, sotto l’estrusore escano effettivamente 10 cm di filamento.

Smontato l’hotend con il suo dissipatore dal gruppo wade, inserire il filamento nell’idler e appena esce da sotto (ruotando a mano la ruota dentata grande), segnare con un pennarello indelebile il filamento in corrispondenza di un punto preciso di riferimento del gruppo wade.

Dal Pannello LCD   PREPARA -> Muovi Asse -> 10mm  ->  E (come estrusore)

Ruotare  la manopola per impostare 50mm, attendere che esca il filamento ed al termine segnare il filamento rispetto allo stesso punto di riferimento usato prima.

Se il motore di trascinamento del filo non dovesse muoversi in config.h commentare la riga #define EXTRUDE_MINTEMP xxx  e riflashare.

Misurare con un righello la quantità di filamento uscita.  Questa deve essere 50mm +/- 2mm di tolleranza.

Ripetere la prova con la stampante collegata al computer con l’interfaccia di comando Repetier host e con il cursore o impartendo un comando Gcode tipo G0 E100 per trascinare 100mm di filamento e fare la stessa verifica con il righello.

Nel caso in cui la lunghezza del filamento in uscita sia diversa dal valore impartito dal comando Gcode,  si deve correggere l’errore con questo calcolo:

Nuovo valore E steps  = Vecchio valore E steps * (100 / filamento misurato)

Volendo si può impostare temporaneamente il nuovo valore di E step con il comando
M92 Ennn e ripetere il test.
Se va bene inserire il valore in Marlin  nella riga  #define DEFAULT_AXIS_STEPS_PER_UNIT X,Y,Z,E

in corrispondenza con il valore E

Togliere il commento da   #define EXTRUDE_MINTEMP xxx  e riflashare e riassemblare l’hotend.

Per qualsiasi dubbio questa guida (già citata nel post precedente) è la bibbia:
http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide

Test movimenti degli assi.

Con questa verifica si va a controllare che il numero di step/mm inseriti nel firmware in #define DEFAULT_AXIS_STEPS_PER_UNIT per X,Y e Z siano corretti e che a fronte di un comando Gcode M92 Xnn  oppure M92 Ynn o M92 Znn per lo spostamento di n cm nei tre assi, il carrello di stampa si muova effettivamente di questi cm.

Dal Pannello LCD   PREPARA -> Muovi Asse -> 10mm  ->  X

Verifica temperature ottimale di fusione del filamento.

Senza la necessità di usare termometri di precisione o altro, si tratta verificare la temperatura ottimale dell’hotend per la fusione del PLA e dell’ABS.

La prima verifica da fare prima di riscaldare l’hot end, è la temperatura indicata nel display a stampante appena accesa e a temperatura ambiente.

Bene la temperatura indicata deve corrispondere (grado più grado meno) alla temperatura ambiente.
Se in questa condizione indica una temperatura ad esempio 7 gradi con temperatura ambiente di 18-20 gradi significa in modo lampante che il termistore impostato nel firmware non corrisponde con il termistore effettivamente montato sull’hotend.

Superato questo test passiamo alla verifica della temperatura ottimale di fusione del filamento.

PREMESSA: la temperatura ottimale di fusione del filamento può essere diversa da stampante a stampante. Dipende tutto dal termistore utilizzato e dalle calibrazioni di fabbrica della circuiteria elettronica di controllo sulla ramps.  Ad esempio per un anno io ho estruso PLA a 200-220°C.
Cambiando estrusore ora estrudo il PLA a 195 gradi.

Per questa prova, alzare l’asse Z di 20-25mm e impostare sul pannello LCD la temperatura dell’ugello a 180°.  L’hotend dovrebbe raggiungere la temperatura impostata in meno 3 minuti senza rimbalzi.
Attendere che arrivi in temperatura e se è tutto OK senza troppe escursioni termiche, inserire il filamento nell’estrusore. Prima di inserirlo, tagliarlo diagonalmente per facilitarne l’inserimento fino all’Hotend. Aiutarsi per questa operazione girando la ruota dentata grande con l’idler (premifilo) abbastanza stretto.  Il filamento di PLA dovrebbe a poco a poco entrare nell’hot end e dall’ugello si dovrebbe scorgere l’uscita del filamento fuso.  Dovrebbe uscire senza sforzare troppo sulla ruota dentata, in caso contrario, aumentare la temperatura a 200°.

La temperatura media di lavoro del PLA dovrebbe aggirarsi da 180° a 220°.
Il filino da 0.4mm deve uscire dall’ugello (girando a mano la ruota dentata grande) senza scoppiettii e senza fare fumo.   Se dovesse invece fumare e scoppiettare, significa che non c’è corrispondenza tra temperatura indicata e temperatura effettiva. Questo a causa di un profilo termico non corretto.  In tal caso documentarsi sul corretto profilo termico del termistore o cambiarlo con uno avente un profilo certificato e presente in Marlin.

Trovata la temperatura che sembra essere ottimale tra sforzo impiegato per spingere il filamento e qualità dell’estruso, usate questo valore per le impostazioni del filamento all’interno del SW di slicing.

Questa prova andrebbe fatta ogni volta che si cambia fornitore di PLA.
Tuttavia una volta pratici è possibile fare questa verifica poco prima che inizi la stampa ed eventualmente modificare a mano dal pannello LCD la temperatura di estrusione durante la stampa per trovare il valore perfetto da impostare nello slicer per le stampe successive.

La stessa prova va fatta con l’ABS. Per questo filamento la temperatura dovrebbe oscillare tra i 230° e i 240°.

Se poi nel corso della stampa l’hobbed bolt dovesse emettere degli “stak” rumori che indicano uno sforzo eccessivo nello spingere il filamento nell’hot end, alzare di 5 gradi la temperatura.

Sovente questi rumori vanno e vengono anche senza la necessità di aumentare e la temperatura soprattutto se ritenete che la qualità della stampa in corso sia buona.
Possono però essere anche sintomo di intasamento imminente.

Solo l’esperienza può aiutare.

Taratura ugello sul piatto di stampa.

Questa taratura permette di iniziare correttamente una stampa.
Se questa è fatta correttamente le parti aderiranno bene al piatto di stampa durante tutto il processo.

Se il letto di stampa non è riscaldato è bene rivestirlo con delle strisce più larghe possibile di nastro da carrozzeria per migliorare l’aderenza della parte. Generalmente in commercio si trova nastro da 4 o 5 cm di larghezza.    I bordi delle varie strisce devono essere affiancati e coincidenti ma non sormontati.

Regolare l’asse Z  ruotando a mano i due stepper oppure impartire un comando di HOME e  fare bene attenzione e bloccare eventualmente la discesa agendo a mano sull’endstop Z se dovesse essere starato in negativo. L’ugello non deve premere troppo sul piatto di stampa perchè si può deformare (è in ottone), perchè può rompersi il vetro e perchè può fracassarsi l’endstop.  Eventualmente fermare la discesa poco prima dello zero agendo a mano sull’endstop Z e livellare a mano il piatto di stampa agendo sulle 4 viti agli angoli o ruotando gli assi dei due motori Z  avvicinando a poco a poco l’ugello alla superficie di stampa.

L’ugello deve sfiorare letteralmente il letto di stampa. Solitamente si usa frapporre un semplice foglio di carta grana 80 tra l’ugello e il letto di stampa e questo deve poter scorrere orizzontalmente con un leggero attrito.

Questa verifica va effettuata sui 4 angoli e al centro del letto di stampa.

Fatta correttamente questa verifica si può dare inizio alle stampe.

 

Post introduttivo e indice.

Il Firmware e le sue impostazioni di base

Post introduttivo e indice.

Il Firmware installato nella mia Prusa i3 è il Marlin standard scaricabile da Github  https://github.com/open3dengineering/Prusa-i3/tree/master/Firmware/Marlin

Questa versione deve essere personalizzata per le caratteristiche della stampante che si sta costruendo.

In alternativa è possibile scaricare la mia versione  Marlin-Marlin_v1_Prusa_i3_WORKING già adattata, aggiornata e funzionante su questa stampante.

Scaricate il pacchetto  .ZIP e scompattatelo in una cartella.

Per installare il firmware nell’Arduino serve l’ambiente di sviluppo Arduino IDE e la stampante deve essere pronta, accendibile e non deve fumare nulla!

TUTTE LE ISTRUZIONI  CHE SEGUONO SI RIFERISCONO ALL’AMBIENTE WINDOWS (Windows 7-8-10)

A dir la verità non servirebbe accendere nulla perchè collegando il panino Arduino+ RAMPS al computer con l’USB, l’elettronica con il pannello LCD viene alimentata dall’USB che porta le alimentazioni della sola elettronica dal computer.  ATTENZIONE, i motori ed i riscaldatori non possono funzionare con questa alimentazione perciò dopo il download del firmware sarà necessario collegare l’alimentatore di potenza per poter azionare la stampante.

NON COLLEGATE LA SCHEDA ARDUINO AL COMPUTER SE NON AVETE PRIMA INSTALLATO I DRIVERS

Per fare questo serve il SW arduino IDE versione 1.0.5 o 1.0.6, l’ambiente di sviluppo di Arduino per la creazione di programmi da scaricare nell’omonima e famosissima scheda.
Lo potete scaricare da http://arduino.cc/en/Main/Software  nella sezione PREVIOUS RELEASES.

Consiglio vivamente di utilizzare le vecchie versioni 1.0.5 o 1.0.6 (non le ultime versioni) scaricabili qui https://www.arduino.cc/en/Main/OldSoftwareReleases#1.0.x

Scompattata la cartella Arduino, si può creare un link sul desktop all’eseguibile Arduino.exe senza il bisogno di installare nulla (a meno che non scarichiate la versione installabile).

Per fare in modo che il computer riconosca correttamente la scheda Arduino è necessario scaricare i driver dal sito Arduino ed installarli seguendo queste istruzioni: https://www.arduino.cc/en/Guide/Windows

Aperto finalmente Arduino IDE, verificare che in Strumenti ->Porta Seriale Arduino veda la porta di comunicazione COM x (il numero della porta può variare da PC a PC) ed in Strumenti -> Tipo di Arduino  veda la scheda Arduino Mega 2560 o Mega ADK.

Caricare Marlin nel sistema di sviluppo con  File-> Open ->  Marlin.ino  dalla cartella scompattata all’inizio e selezionare in alto la sezione configuration.h

arduino1

Questo file va a configurare e personalizzare il firmware per la stampante alla quale vogliamo applicarlo.
Nel nostro caso è già tutto pronto (6 mesi di prove risparmiate).

Una piccola precisazione:  le righe precedute da //  sono commentate perciò non vengono prese in considerazione dal compilatore.
Il doppio slash // permette di aggiungere note (ne troverete tantissime) che permettono di tener traccia di cambiamenti fatti e inserire promemoria di vario genere.
Marlin è documentato in ogni sua parte per cui non andrò a spiegare tutte le righe del FW ma solamente quelle più importanti.
Andiamo allora a vedere i punti salienti per la configurazione della stampante.

In riga 84 si trova la definizione del tipo di scheda di controllo.

#ifndef MOTHERBOARD
#define MOTHERBOARD 33
#endif

Questo va a definire il tipo di elettronica utilizzata per il controllo della stampante.
il numero si prende dalla lista sopra il define.
Nel nostro caso  33 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed)
Quindi una stampante dotata di Arduino+ RAMPS+ estrusore, Ventilatore di raffreddamento e letto di stampa riscaldato (quest’ultimo può anche non esserci vedremo poi come attivarlo/disattivarlo).

In riga 89 è possibile personalizzare il messaggio di startup della stampante

#define CUSTOM_MENDEL_NAME “Prusa i3D”   All’accensione il display indica Prusa i3D READY!

ATTENZIONE Il nome impostato può avere al massimo 13 caratteri.

Saltiamo i successivi 2 #define  banali, lasciandoli come stanno e passiamo al thermal setting:

Thermal Setting

Quì è importante conoscere il tipo di termistore utilizzato nell’estrusore che comprerete.
All’atto dell’acquisto chiedete al rivenditore a quale profilo termico Marlin appartiene il termistore da 100KOhm inserito nell’estrusore e/o fornito con il piatto di stampa riscaldato (se lo prendete).

Generalmente la maggior parte dei termistori utilizzati nelle stampanti 3D sono da 100KOhm a temperatura ambiente e possono essere di marche diverse e di conseguenza profili termici diversi ovvero curve resistenza/temperatura diverse uno dall’altro.

Perciò Marlin ha un file Thermistortable.h che contiene tutti i profili termici elencati in configuration .h in modo da gestire il più linearmente possibile la temperatura dell’hot end.

Per cui dalle righe 146 a 149 i seguenti #define permettono di assegnare un determinato profilo termico alle varie parti riscaldate della stampante

#define TEMP_SENSOR_0 11  Il termistore dell’estrusore
#define TEMP_SENSOR_1 0     il termistore del secondo estrusore (se presente)
#define TEMP_SENSOR_2 0     ulteriore termistore
#define TEMP_SENSOR_BED 11  il termistore del piatto riscaldato

nel mio caso il termistore che mi è capitato è QU-BD silicon QWG-104F-3950  con coefficente beta di 3950 corrispondente al profilo 11.
Generalmente gli estrusori comperati in cina hanno questo termistore comunque è bene verificare con il venditore per non trovarci poi a stampare con temperature troppo alte come è capitato a me.                                Questa è la mia stampa Nr 1

IMG_1132

Passiamo ora alle righe 164-175 in cui si vanno a definire le temperature minime al di sotto delle quali la stampa non parte perchè corrispondenti a un termistore interrotto (resistenza infinita)  e massime al di sopra delle quali scatta la protezione e corrispondenti ad un termistore in corto circuito. In questa condizione il riscaldatore continuerebbe a scaldare portando l’hotend a temperature elevate con il rischio di incendio.

#define HEATER_0_MINTEMP 5   riscaldatore estrusore 0
#define HEATER_1_MINTEMP 5   riscaldatore estrusore 1
#define HEATER_2_MINTEMP 5   riscaldatore 2
#define BED_MINTEMP 5              letto di stampa (mettere questo valore a 0 se non presente)

5 corrisponde alla temperatura minima in gradi indicata dal termistore all’elettronica.
Poichè questa condizione è altamente improbabile, solo in caso di guasto, il display restituisce un errore tipo Mintemp error  e la stampa non parte.

#define HEATER_0_MAXTEMP 250
#define HEATER_1_MAXTEMP 250
#define HEATER_2_MAXTEMP 250
#define BED_MAXTEMP 120   // mettere a 120 quando installo il piatto riscaldato.

Al contrario questi #define permettono di impostare una temperatura massima di 250°C per l’estrusore/i e 120 per il letto di stampa oltre le quali il riscaldatore viene spento e la stampa interrotta con segnalazione di errore Maxtemp error.

Impostazione del  PID righe 212-213 e 214

// Mendel Parts V9 on 12V
    #define  DEFAULT_Kp 63.0    
    #define  DEFAULT_Ki 2.25    
    #define  DEFAULT_Kd 440

Prima di passare alla impostazione del PID ecco una breve spiegazione tratta da RepRapWiki

PID sta per Proportional-Integral-Derivative control algorithm usato in particolare sul firmware Marlin ma anche in altri firmware per gestire il riscaldamento degli hot end e dei letti di stampa.

Tarare il PID significa ottenere i valori di Kp, Ki e Kd per definire l’algoritmo di approccio alla temperatura impostata. Se la temperatura sale troppo velocemente e oscilla molte volte attorno alla temperatura target prima di stabilizzarsi, allora questi valori non sono corretti.

Per tarare il PID si utilizza il comando M103 E0 S200 C8 ad hot end freddo per lanciare la procedura  PID Autotune.
Per impartire un comando Gcode alla stampante, la si deve collegare al PC con il cavo USB ed scaricare un SW di interfacciamento con la stampante tipo Repetier Host  o Klimen Printrun.
Io ho sempre usato Repetier Host sia per la comunicazione con la stampante che per lo slicing che si basa sul motore di Cura.  Una volta impostate le caratteristiche della stampante e connessa la stampante cliccando su “Connetti“, un’apposita interfaccia “Controllo manuale” sulla destra, mediante la casella GCode, permette di impartire un qualsiasi comando Gcode alla stampante o comandare direttamente gli assi e tutte le parti della stampante con il mouse cliccando sulle frecce e sui cursori. La parte bassa della schermata fornisce inoltre un comode Log delle operazioni.

repetier

La procedura PID autotune, comando GCode  M103 E0 S200 C8 riscalda l’hot end 0  (E0), eseguendo 8 cicli (C8) di riscaldamento e raffreddamento attorno alla temperatura target S200 (200°C) ed al termine restituisce i valori Kp, Ki e Kd da inserire in Marlin sulle righe 212-213 e 214 di configuration.h.

Perciò i valori preimpostati nel configuration.h che stiamo analizzando potrebbero non andare bene per la vostra stampante per cui, dopo aver fatto delle prove di stampa, se si osserva una temperatura che sale repentinamente verso il target, lo supera di 8-10 gradi, ridiscende sotto questa di 8-10 gradi, risale ecc..senza stabilizzarsi, è consigliabile fare il PID autotuning.

Per ulteriori approfondimenti http://reprap.org/wiki/PID_Tuning
oppure http://numbersixreprap.blogspot.it/2013/10/installing-and-pid-tuning-new-j-head.html

THERMAL RUNAWAY

Questa feature presente solo in alcune versioni di Marlin previene sovrariscaldamenti causati da malfunzionamenti del termistore.
Le righe da 290 a 300 contengono dei #define per calibrare il comportamento di questa feature nei confronti degli estrusori e del letto di stampa riscaldato.

Il funzionamento di questa è spiegato ampiamente nelle note all’interno di Marlin e le impostazioni sono leggermente diverse da quelle proposte nel Marlin standard per il letto riscaldato Righe 299 e 300.

#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 60           //in seconds (era 20)
#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 10    // in degree Celsius (era 2)

Con i valori originali (tra parentesi) la protezione risultava troppo sensibile per il letto riscaldato che ha dei tempi di reazione più lenti dell’estrusore e con temperature alte per stampare ABS (110° -120°) la protezione interveniva prematuramente.

I valori di THERMAL RUNAWAY per l’estrusore invece sono ottimali.

Passiamo alla sezione successiva:

Mechanical Setting.

Anche quì senza spiegare tutta la logica degli endstop rimando al seguente link http://www.instructables.com/id/Building-a-Prusa-i3-3D-Printer/step11/End-Stops-A-primer/

me la sono cuccata tutta anch’io…..

Prima di impartire il comando di HOME ALL AXIS dal pannello, accertatevi di aver calibrato l’endstop Z in modo che si attivi in una posizione più alta del piatto di stampa.

Nella sezione Calibrazioni ci occuperemo dell’esatta posizione dell’ugello sul piatto di stampa.

La sequenza di homing è la seguente:
Asse X va in posizione Home muovendo il carrello di stampa verso destra fino all’endstop X.
Asse Y va in posizione Home muovendo il piatto di stampa in dietro fino l’endstop Y
Asse Z muove il carrello di stampa verso il basso fino all’endstop Z (estrusore a contatto con il piatto di stampa) (accertatevi di aver calibrato l’endstop Z in posizione Home Z di sicurezza)

Se la stampante è stata costruita seguendo i miei appunti, mettendo gli endstop come indicato, si possono usare i valori preimpostati vi trovate una stampante con Home position nell’angolo davanti a destra del piatto di stampa.   Altre Prusa i3 possono avere la home position davanti a sinistra ma alla fine non è determinante per la stampa.

Vorrei solo fare un appunto sulle righe da 334 a 339 che determinano la logica dei microswitch (endstop).

const bool X_MIN_ENDSTOP_INVERTING = true; 

un valore false significa che l’endstop è NC (Normalmente Chiuso)
un valore true significa che l’endstop è NA (Normalmente Aperto) o non è montato affatto.

Le righe da 370 a 372 invece vanno impostate in base alla posizione degli endstop sulla stampante.

#define X_HOME_DIR  1
1 = posizione endstop (home X) a DESTRA (connessione in RAMPS su X MAX pins)
-1 = posizione endstop (home X) a SINISTRA (connessione in RAMPS su X MIN pins);

#define Y_HOME_DIR -1
-1 = posizione endstop (home Y) sul RETRO  (connessione in RAMPS su Y MIN pins);
1 = posizione endstop (home Y) sulla parte frontale (connessione in RAMPS su Y MAX pins);

#define Z_HOME_DIR -1 
-1 = posizione endstop (home Z) in BASSO;
1 = posizione endstop (home Z) in ALTO.

con queste impostazioni X=1 Y=-1 Z=-1 la stampante va in HOME con carrello X a destra, piatto Y dietro, Z in basso.

Per ulteriori chiarimenti rimando allo schema delle connessioni:http://scifablab.ictp.it/wp-content/uploads/2015/05/Schema-filature.jpg

Movement Setting

Lasciamo come stanno i valori indicati nei  #define di riga 495 e 496 e passiamo al #define di riga 511

#define DEFAULT_AXIS_STEPS_PER_UNIT   {100,100,4000,687.58933}    // X, Y, Z, E

Qui si devono indicare gli step/mm per tutti gli assi X, Y, Z, E  (E=Estrusore)
Anche l’estrusore è considerato come un asse.

Questi sono i valori più importanti di tutte le impostazioni perchè determinano con esattezza l’entità degli spostamenti dell’estrusore, la quantità di materiale estruso e di conseguenza la corretta dimensione e la qualità degli oggetti stampati.

Premesso che se la stampante viene costruita seguendo le mie indicazioni, i valori inseriti sono corretti.

In ogni caso volendo verificare i valori rimando alla guida alla quale mi sono ispirato anch’io
http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide

Riassumo brevemente:

XY steps
I
l valore steps-per-mm può essere facilmente calcolato usando le caratteristiche delle pulegge dei motori e il tipo di cinghia.

Se dopo aver calcolato correttamente questo valore, gli oggetti risultanti dalle stampe hanno dimensioni errate, significa che la cinghia è danneggiata o non ben tesa o qualcos’altro non funziona a dovere.

La formula di base per il calcolo dei valori X e Y da mettere nel #define… è:

steps_per_mm = (nr.steps del motore_per_giro * driver_microstep) / (passo della cinghia * numero denti puleggia motore)
Se abbiamo usato un motore NEMA 17 dalle caratteristiche del motore sappiamo che l’asse ruota di 1.8° per step.
Quindi per fare una rotazione completa di 360° farà 200 step  (360/1.8).
Il valore nr.steps del motore_per_giro da usare nella formula è 200

Dalle caratteristiche dei driver pololu A4988 si evince che il massimo valore di microstep ottenibile è di 1/16 per cui nella formula il valore driver_microstep da usare è 16

Ora si devono contare i denti della puleggia GT2  calettata sull’asse dei motori X e Y (nel mio caso 16 denti)  e ovviamente il pitch (passo) della cinghia GT2 è di 2mm quindi il valore passo della cinghia è 2  e numero denti puleggia motore è 16  da cui:

(200 * 16) / (2 * 16) =   3200/32 = 100 steps per mm   100 è il valore da assegnare a X e Y

Z steps

La stampante Prusa i3 usa barre filettate per i movimenti lungo l’asse Z.
Così per calcolare di quanto si sposta l’asse Z ad ogni giro del motore si deve conoscere quanta rotazione viene trasmessa alle barre filettate e poi usare il passo della filettatura “thread pitch” delle barre (distanza-per-rivoluzione) per determinare il moto verticale lungo l’asse Z.

La formula per calcolare il movimento Z di una barra filettata rotante è:

steps_per_mm = (steps_motore_per_giro * driver_microstep) / passo della barra filettata

Nel nostro caso usando la barra filettata M5 e gli steps_motore_per_giro sono sempre 200.
I microstep supportati dal driver sono sempre 1/16 quindi 16.

Il passo della barra filettata si dovrebbe trovare in qualche catalogo su internet in ogni caso rimando all’ottimo Prusa Calculator anche per la verifica dei valori precedenti http://prusaprinters.org/calculator/

Da questo si evince il passo della barra M5 che è 0.8  da cui il calcolo:
(200 * 16) / 0.8 = 4000  è il valore da assegnare a Z

E (Extruder) steps

L’estrusore tipo “Wade” montato nella mia stampante usa un motore NEMA 17 che pilota due  ruote dentate di riduzione e fa girare un bullone zigrinato “hobbed bolt.”

Per il calcolo degli E steps è importante conoscere con una certa precisione il diametro della gola zigrinata dell’hobbed bolt.

bolt1,75mm

La gola del mio Hobbed Bolt ha un diametro di 6,37mm (verificare questo valore perchè può variare in base al fornitore)

La ruota dentata piccola ha 10 denti
La ruota dentata grande ha 43 denti

La formula standard è:
e_steps_per_mm = (steps_motore_per_giro * driver_microstep) * (numero denti ruota grande / numero denti ruota piccola) / (diametro gola hobbed bolt * pi)

da cui il calcolo:     (200 * 16) * (43 / 10) / (6,37 * 3,14159) = 687,589330 steps per mm è il valore da assegnare a E

Inserite i valori calcolati nella stringa:
#define DEFAULT_AXIS_STEPS_PER_UNIT   {100,100,4000,687.58933}

Lasciamo invariati tutti gli altri valori ed eventualmente chiunque è libero di approfondirli uno ad uno. Internet propone moltissima letteratura in merito.

Ancora un cenno riguardante le righe  da 557 a 563 in cui si definiscono i parametri di Preheat.

Il Preheat è utile per cambiare il filamento della stampante o per altre attività sull’estrusore.
Si ricordi che qualsiasi attività di manutenzione e smontaggio dell’hotend (per risolvere intasamenti feroci) va fatta a caldo pena l’anomala forzatura dei filetti in alluminio e ottone e compromissione dell’intero estrusore.  ATTENZIONE ALLE USTIONI!

Il preheat del PLA avviene a temperature più basse ed a mio avviso non necessita di riscadamento del letto di stampa e nemmeno di azionare il ventilatore. Perciò le mie impostazionei sono le seguenti:

#define PLA_PREHEAT_HOTEND_TEMP 200  //mettere il valore più adatto all’estrusione del PLA
#define PLA_PREHEAT_HPB_TEMP 0 // si decide di non riscaldare il letto di stampa
#define PLA_PREHEAT_FAN_SPEED 0   // no ventola di raffreddamento del PLA

#define ABS_PREHEAT_HOTEND_TEMP 240  // mettere il valore più adatto all’estrusione dell’ABS
#define ABS_PREHEAT_HPB_TEMP 0  // si decide di non riscaldare il letto di stampa
#define ABS_PREHEAT_FAN_SPEED 0   // no ventola di raffreddamento

LCD and SD support

Anche qui i dati inseriti valgono per il pannello LCD standard con supporto della SD card denominato Utilpanel o REPRAP_DISCOUNT_SMART_CONTROLLER
Le righe 571 572 575 e 576 permettono di impostare la sensibilità dell’encoder rotativo per la navigazione nei menu e la frequenza e durata del beep alla conferma delle opzioni di menu che avviene premendo il pulsante rotativo.

571 #define ENCODER_PULSES_PER_STEP 1        // Increase if you have a high resolution encoder
572 #define ENCODER_STEPS_PER_MENU_ITEM 4  // Set according to ENCODER_PULSES_PER_STEP or your liking

574 #define ULTIPANEL                                                 //the UltiPanel as on Thingiverse
575 #define LCD_FEEDBACK_FREQUENCY_HZ 1000    // this is the tone frequency the buzzer plays    when on UI feedback. ie Screen Click
576 #define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click

Lasciamo come stanno tutte le altre impostazioni e salviamo i cambiamenti fatti. Ricordarsi di tenere la copia originale zippata per poter eventualmente confrontare in caso di errori.

Così come sta il menu visibile dal pannello LCD sarà in italiano.
Se si vuole cambiare il linguaggio di deve caricare il file language.h e cambiare in riga 25 il

#define LANGUAGE_CHOICE 7  // Pick your language from the list above

7 = italiano
1= English

o la lingua desiderata dalla tabella sopra……non c’è il Klingon ….peccato!

Salviamo anche questo file  cliccando sul primo simbolo a destra  (freccia in basso)

arduinopanel

Facciamo una compilazione di prova cliccando il primo tasto a sinistra.
Se tutto procede bene e la compilazione termina senza errori si può eseguire l’upload del FW nell’Arduino cliccando sul tasto Carica (freccia verso destra)

Ovviamente la scheda deve essere connessa con il cavo USB.

Dopo la compilazione (circa 30 secondi) inizia l’upload del FW (dura altri 30 secondi circa).

Al termine dell’upload il sistema si inizializza e il display dovrebbe indicare Mendel Ready!  o quello che si è impostato in Configuration.h riga 89.

Mendel Ready

Ora la stampante è pronta per le calibrazioni finali.

Calibrazione

Post introduttivo e indice.