Costruzione della MPCNC

29 marzo 2019

Nuovo appuntamento al Terni Maker Festival 2019 il 30 marzo dalle 10 alle 20!

14 settembre 2018

E’ definitivo! Il 12-13-14 ottobre 2018 la MPCNC sarà alla Maker Faire di Roma con la CNC: https://2018.makerfairerome.eu/en/exhibitors/?ids=105 con la “benedizione” di Ryan Zellars, il suo progettista, nonché con quella di Christian Knuell, il programmatore di ESTLCAM.

3 febbraio 2018

Un paio di mesi per acquistare online o in giro tutti i componenti, stampare i file STL, e finalmente si arriva al montaggio della Mostly Printed CNC, il progetto open source di Ryan Zellars disponbile qui https://www.v1engineering.com/

Componenti stampati in 3D

Si trovano tutti su Thingiverse: Mostly Printed CNC 525 MPCNC “F-25mm OD”. Li ho stampati in PLA con infill è 55% per quasi tutti – per pochi pezzi è 70%, mentre come spessore del layer ho usato 0.16 mm. Se dovessi ricominciare userei il PETG, magari rinforzato, più robusto del PLA ma non problematico come l’ABS. Servono complessivamente un paio di rotoli da 1Kg. Usando Repetier si possono stampare molti pezzi per volta, fino a sfruttare l’intero piano della stampante – ma fatelo quando la bobina di filo è nuova perché se finisce la plastica buttate tutto!

AGGIORNAMENTO 25 agosto 2018: Non so se dipenda dalla plastica scadente, ma alcune parti si sono fratturate nel primo montaggio: i due triangoli in alto all’asse Z, il “pineapple” (adattatore fra asse motore Z e vite trapezia M8), i piedini superiori ed inferiori delle 4 gambe verticali). Consiglio di stampare questi pezzi con una plastica più robusta, magari un fill al 100% o se riuscite anche in ABS, che è molto più robusto. Per stampare l’ABS va usata molta lacca per capelli sul vetro della 3D, va usato un raft (vedi opzioni dello slicer), temperatura del piatto a 100-110 gradi, ventolina della testina spenta, ventolina aggiuntiva sull’alimentatore della stampante altrimenti vi dura poco. Meglio scalare i pezzi al 101 o 102% perché l’ABS si restringe. Infine, regolazione del piano perfetta in modo che il primo strato sia ben schiacciato sul vetro. Con queste attenzioni anche la mia stampantina cinese va alla grande. Ryan mi ha consigliato il PETG, appena arriva lo provo.

Tubi metallici

Li ho comprati da Bricofer, 7 tubi in alluminio da 1 m, 6.19€ l’uno (link)
Tre tubi li ho usati sani per l’asse X, che quindi misura 1 metro.
Dai tre tubi per l’asse Y ho ritagliato 3 piedi da 10 cm, quindi asse Y da 90cm.
Dall’ultimo tubo ho ritagliato il quarto piedino da 10 cm e due montanti verticali da 32 cm, che è la misura corrispondente ai piedini da 10cm, secondo le indicazioni del sito. Mi avanzano circa 25 cm quindi avrei potuto aumentare la dimensione Z di altri 3 cm…
L’altezza massima del gruppo Z da piano di lavoro risulta di 11,6 cm,  ok per una fresa, un po’ poco se si vuole usare la MPCNC come stampante 3D .
Dopo il montaggio mi sono pentito perché effettivamente i tubi in alluminio si rigano subito per la pressione dei cuscinetti a sfere, ed inoltre tendono a flettere sotto sforzo, per esempio quando il trapano scende tentando di penetrare il materiale.

AGGIORNAMENTO 3 febbraio 2018: Ho trovato dei tubi in acciaio inox da Calo’ metalli, per soli 35 euro taglio incluso (partono da un tubo lungo 6 metri). Li devo ancora montare… dovrò smontare tutto.

AGGIORNAMENTO 29 maggio 2018: Ho preso coraggio, smontato e rimontato tutto con i tubi d’acciaio. Oltre ad essere più rigidi mi pare che i “roller” facciano anche meno attrito: meno deformazione del tubo comporta minor attrito volvente – e la differenza si sente eccome. Il rimontaggio è ancora in corso perché ne ho approfittato per riorganizzare i cavi.

Viteria

Trovare tutte le viti è stata la cosa più difficile.. alcune lunghezze in M8 non si trovano, vanno prese più lunghe e tagliate o create a partire da un’asta filettata, altre misure si trovano solo su Aliexpress… Se usare l’asta a vite trapezoidale il dado M8 alto non serve più, invece vi servono 4 vitine M2 da 20mm con relativi dadi per fissare la femmina in ottone.
Il progetto MPCNC nasce per viteria in pollici. Nella versione “europea” dei file STL, in questi l’unica correzione che è stata fatta è quella di prevedere tubi da 25mm invece che da 25.4 mm (un pollice), ma rimangono alcuni problemi.
Le viti M3.5 (cioè con diametro esterno della filettatura pari a 3.5 mm) sono introvabili, come anche i relativi dadi autobloccanti. Si tratta delle viti di assemblaggio delle parti in PLA, le quali prevedono viti a testa tonda (per chiave Allen esagonale) con dadi autobloccanti. Questo complica notevolmente le cose perché occorre trapanare tutti i pezzi per portarli a M4 – e questo è il meno – e riuscire a tenere fermi – per stringerli- i relativi dadi autobloccanti, che vengon a trovarsi in un alloggiamento esagonale troppo grande nel quale girano liberamente. Quando non è possibile usare una chiave aperta, ho risolto inserendo un cacciavite piatto.
Nel caso dei pezzi interni all’asse Z, è indispensabile ristamparli, utilizzando la versione parametrica dei “nut trap” disponibile qui.

AGGIORNAMENTO: Tonino ha trovato quasi tutta la viteria in acciaio inox da Bricoman

Cuscinetti a sfere

Per i cuscinetti – ne servono 53 – ne ho presi 60 su Aliexpress per 18  euro, marca Fushi, e mi sembrano ottimi. Sono del tipo da skateboard con protezione metallica (608 ZZ), ma leggendo in giro  penso che sarebbero più adatti quelli con protezione in plastica dei due lati (608 2RS) perché proteggono meglio dalla polvere ed il fatto che non resistano troppo al calore non è un problema in questo progetto.

Motori passo-passo

Ho trovato dei Nema 17 da 2 A, 86 oz/inch, su Stepperonline, per 53 euro, 5 pezzi inclusa spedizione dalla Germania (link). Hanno più coppia anche di quelli proposti dal sito del progetto. Non sono sicuro che i driver A4988 siano adatti a sfruttarli a fondo, ma vedo che si usa regolarli al 75% della corrente nominale, cioè 1.5A, che dovrebbe essere un valore accettabile anche per il driver, che teoricamente raggiunge i 2 A.

Pulegge e cinghie dentate

Le pulegge dentate da 16 denti si trovano su Aliexpress  a pochi centesimi – cercate “GT2 timing pulley 16 tooth bore 5mm OD13mm 6mm”, cioè diametro foro 5mm, diametro esterno 13mm, larghezza cinghia 6mm. Prendetene qualcuna in più perché la vite di blocco si spana facilmente. Come cinghia ne ho trovato un tipo di colore bianco con 4 fili d’acciaio all’interno – cercate “Timing Belt 5m Steel Core 2GT 6mm”. L’acciaio minimizza l’allungamento della cinghia sotto sforzo,  spero che non si spezzino troppo presto.
Da valutare l’uso di una cinghia più larga dei 6mm standard, che comporta l’uso di alcune viti più lunghe, 8 cuscinetti in più e pulegge  da 20 denti (da 16 non si trovano), e una ventina di euro di costo in più.

Asta filettata per l’asse Z

In un primo momento ho montato una volgare asta filettata M8 in acciaio zincato, che passa attraverso un dado alto M8. Questa soluzione non funzionava, il motore si bloccava, troppo dura e non adatta. Ho quindi montato un’asta con filetto trapezio e femmina in ottone (cercate “8mm Acme threaded Rod Stainless steel Leadscrew+T8 Nut”)  – un altro mondo, va benissimo anche se il passo è 4 volte maggiore, e di questo va tenuto conto quando si configurano gli step/mm nel firmware.

Collegamento dei motori

I Nema 17 sono motori bipolari, il che significa che hanno 4 fili, cioè una coppia di fili per ciascuno dei due avvolgimenti (chiamati A e B). Il connettore lato Ramps/CNC Shield può essere inserito in qualsiasi verso, e cambiando verso il motore gira nell’altro senso.
Avendo la CNC due motori per ogni asse, questi devono girare in perfetta sincronia e in versi opposti. Questo risultato può essere ottenuto collegando i rispettivi avvolgimenti in parallelo o in serie, facendo attenzione a scambiare i fili di uno qualsiasi degli avvolgimenti di uno dei motori.
Il collegamento in parallelo provoca un assorbimento di corrente doppio con una tensione massima dell’avvolgimento uguale a quella di alimentazione (nel mio caso 12V), mentre il collegamento in serie lascia inalterata la corrente sul driver ma dimezza la tensione disponibile su ogni motore. A questo si può rimediare aumentando la tensione di alimentazione. Dato che i driver A4988 sono già al limite di corrente consentito con un solo motore, ho scelto il collegamento in serie. Se avrò problemi riconducibili ad una tensione troppo bassa, userò un alimentatore da 18 o 24 volt., ma in teoria non dovrebbe servire perché la resistenza degli avvolgimenti è tanto bassa da consentire il raggiungimento della corrente nominale con meno di 5 volt.

Elettronica di controllo

Dato che l’Arduino 2560 Mega R3 + Ramps + driver A4988 ha tardato ad arrivare, ho voluto testare la MPCNC con un Arduino Uno con CNC Shield e 3 driver che avevo in un cassetto, con risultati ottimi tanto che ora  non sono sicuro di quale dei due usare.
Il grande vantaggio del Mega è che ha un display 12864 che funge anche da lettore di SD, per cui è possibile usare la CNC senza collegarla fisicamente al computer.
I driver A4966 gestiscono il microstepping, ovvero la capacità di suddividere i 200 passi per giro dei motori in 2-4-8-16 micropassi. Per abilitare il microstepping occorre mettere dei ponticelli sulle 3 coppie di pin che si rimangono sotto il driver quando questo viene inserito sulla Ramps o sul CNC shield. Si arriva quindi fino a 3200 step per giro mettendo tutti e tre i ponticelli. Il rovescio della medaglia è che più piccoli sono gli step meno forza ci vuole per provocare una perdita di passi che comprometterebbe l’intera lavorazione.  Non ho ancora fatto sufficienti prove ma esito fra 8 e 16. Non è detto che l’asse Z debba avere gli stessi microstep di X e Y, ma anche su questo devo testare. Chiaramente se si cambiano gli step sull’hardware è necessario aggiustare gli step/mm nei parametri software/firmware.

Firmware

Per l’Arduino Uno il firmware che ho provato è GRBL (v 1.1) in coppia con Universal GRBL Sender. Il firmware si può caricare sull’Arduino così come scaricato – le istruzioni per farlo si trovano cercando “flashing grbl arduino”. La configurazione degli step/mm (scala), le velocità e le accelerazioni massime si fanno in un secondo tempo, da riga di comando, inviando comandi all’Arduino, via USB da gcode sender. Per farlo è necessario apprendere pochi semplici comandi: $$ ritorna la lista dei parametri con i loro valori; $nn ritorna il valore del parametro nn. $nn=valore imposta il parametro. Una volta scritti, i parametri vengono salvati nella eeprom del controller, dove restano memorizzati anche togliendo l’ailmentazione all’arduino.

Per il Mega, ho usato il Marlin del sito del progetto, nella versione per Acme Thread (asta Z a filetto trapezio), ma ho dovuto cambiare gli step/mm nel config.h. Inoltre ho messo Marlin in italiano.

Nota: gli step/mm, che consentono impostare dimensioni i millimetri di spostamento per 1 step dei motori passo passo, sono numeri interi perché legati alla distanza dei denti delle cinghie per X e Y e al passo di vite per Z. Tuttavia se tendete molto le cinghie dentate allungandole, potreste dover intervenire su questi parametri per mantenere la precisione dimensionale della CNC. Per le velocità e accelerazioni sono andato per tentativi, verificando fino a che valori le cose funzionano. I limiti sono legati alla velocità dell’arduino, alla potenza reale dei motori, agli attriti, al peso della parti mobili (con le barre d’acciaio bisogna accontentarsi di accelerazioni inferiori) e delle fresatrice…

Software ESTLCAM

La catena software che porta dal disegno al gcode può avere diversi componenti, che posso rientrare in un unico applicativo oppure essere realizzati con tool indipendenti fra loro, anche open source o gratuiti.
Il disegno di partenza, se di tipo bitmap, va innanzitutto trasformato in file vettoriale 2D, ad esempio con Inkscape, che è open source. Se il disegno è già vettoriale oppure è stato creato con un CAD, si può passare direttamente alla generazione di percorsi della fresa.
Sto utilizzando con successo ESTLCAM (www.estlcam.de)

Estlcam Version 11,017 – unicorn

Si tratta di un programma freeware per Windows, che consente di partire da un DXF o inserire direttamente delle scritte, di calcolare i percorsi della fresa tenendo conto del diametro,  di generare il gcode e di mandarlo direttamente dall’Arduino Uno, Arduino Mega e decine di altre schede. La versione gratuita ha tutte le funzionalità, solo che prima di salvare un file gcode o di caricarlo fa “perdere tempo”, un secondo un più ogni volta che lo si usa. Oppure costa 49€. Con l’uso ne sto scoprendo sempre di nuove che no mi dilungo qui a descrivere.
ESTLCAM installa sull’Arduino il proprio firmware con tutti i parametri impostati sul programma stesso. In questo modo, però, la CNC funziona solo direttamente collegata ad un computer.
Riporto di seguito le impostazioni per l’uso con GRBL su Arduino UNO e CNC Shield.

Nel caso si volesse utilizzare ESTLCAM solo come generatore di file gcode e non per comandare direttamente la CNC, è importante dire al software quale sia il firmware di destinazione – GRBL per l’UNO o Marlin per il Mega.

Se volete invece comandare la CNC direttamente da ESTLCAM, come hardware il Mega+Ramps non è supportato (lo è stato nella v.9 di ESTLCAM ma poi abbandonato), invece l’UNO+CNC Shield sì. In questo scenario non userete GRBL come software ma imposterete come hardware “GRBL compatible” in modo da conservare la stessa mappatura dei piedini.

ESTLCAM Basic settings
ESTLCAM Basic settings

Attenzione, io trovo più intuitivi i millimetri al secondo quindi ho impostato quelli, se si usa un’altra unità, occorre scalare opportunamente i valori nelle altre finestre.

ESTLCAM-CNC program settings

Notare che l’estensione da assegnare ai file gcode, modificata per poterli salvare su SD e dare in pasto a Marlin nel caso vi orientaste sulla soluzione con Arduino MEGA consigliata dal buon Ryan.

ESTLCAM-CNC controller settings

I parametri mostrati in questa finestra sono validi per microstepping impostato a 1/16 e pulegge motrici da 16 denti su cinghia GT2 con passo da 2 mm. Il Controller Hardware è la scheda che usate. Qui sto usando Arduino UNO con GRBL. La USB/COM Port da inserire si trova in Gestione Dispositivi di Windows, nel ramo Porte COM – se i driver di Arduino sono installati correttamente, quando collegate l’Arduino alla USB sotto quella voce dovrebbe apparire la porta COM assegnata. I 3200 Step per revolution si ottengono moltiplicando i 200 step “hardware” dei motori per il numero di microstep, quindi 16. La Distance per revolution invece si ottiene moltiplicando il numero di denti della puleggia motrice (16) per il passo della cinghia dentata (2). Per l’asse Z, gli 8 mm sono l’avanzamento per un giro di vite, che dipende dal passo della vite e dal numero di filetti. Le Maximum Feedrate invece le ho trovate sperimentalmente, aumentandole il più possibile. La velocità raggiungibile dipende fra l’altro dal voltaggio di alimentazione dello shield (12V o più – il limite è 35V per gli A4988 e 45V per i DRV8825), dal tipo di collegamento serie/parallelo dei motori, dalla velocità del microcontrollore (l’Arduino UNO non consente velocità elevate quanto il MEGA). La Acceleration Distance pure dovrebbe essere impostata più alta se trasportate una fresa più pesante, per evitare di “sprecare” coppia per vincere l’inerzia del carrello invece che per fresare. Analogamente, lo Start feedrate, velocità iniziale della fresa, non deve essere troppo elevato per limitare movimenti bruschi in partenza.

Utilizzando il firmware di ESTLCAM, una GUI consente di controllare la stampa in corso, variando al volo anche la velocità di stampa, mettendo in pausa il gcode e anche facendolo ripartire da dove si era fermato o da un altro punto.

ESTLCAM -CNC Controller

In alternativa si può usare ESTLCAM solo per generare il gcode, salvarlo con estensione .nc ed inviarlo all’Arduino tramite un altro programma oppure una scheda SD inserirta sul Mega (precisamente sotto il display LCD12864), con il vantaggio di poter rendere la CNC indipendente dal PC durante la “produzione”.

Motore fresa

Come fresa ho montato un trapanino Dremel 4000 che avevo. Ha una potenza di 175W e supera i 30.000 rpm. Per montarlo ho trovato un apposito STL su thingiverse. Devo ancora capire che frese usare e che velocità impostare, secondo il materiale da tagliare…

Cablaggio

A fine agosto/settembre la MPCNC è rimontata con tubi di acciaio e cablaggi risistemati. Una torretta porta tutti i cavi all’asse Z. L’illuminazione è assicurata  e ospita un riflettore LED da 50 W e da una lampadina LED a 12 v fissata direttamente al trapano con una fascetta.