Nuove funzioni. New Feature.

0 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 5 (0 votes, average: 0.00 out of 5)
You need to be a registered member to rate this post.
Loading...

Aggiunte le funzioni:

  • G12 Nozzle Clean
  • G27 Nozzle Park

 

Nozzle clean fa una cosa del genere:

 

Si può settare con dei parametri che permettono dei pattern a zig zag o lineari tra punti nel piano. In questo modo si può mettere una spugnetta o quello che volete per pulire il nozzle prima di partire a stampare.

 

G27 è semplicemente un punto nello spazio dove parcheggiare la testina. Tipo per fare spurgo o quant’altro…

Basta settare le coordinate con #define NOZZLE_PARK_POINT, e ogni volta che date G27 il nozzle si sposterà in quel punto…

New MK4duo

0 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 5 (0 votes, average: 0.00 out of 5)
You need to be a registered member to rate this post.
Loading...

Nasce oggi il nuovo MarlinKimbra con il nome di MK4duo…

Perché duo? Perché ora c’è una sola versione che riunisce sia la versione per 8 bit sia per Arduino DUE.

In questo modo con le stesse impostazioni si può passare tranquillamente da una scheda a 32 bit a quella a 8. Naturalmente PIN permettendo.

Tutto è integrato e le funzioni dei singoli processori sono messe nelle due cartelle HAL_AVR e HAL_SAM che verranno richiamate dal firmware a secondo il processore settato in Arduino IDE…

Vi faccio presente che se selezionate una board a 32 bit, per esempio Alligator e in Arduino IDE avete impostato come processore il mega il compilatore vi segnala l’errore…

Buone stampe a tutti…

Il vostro MagoKimbra…

Differenza tra velocità di stampa e velocità d’estrusione.

3 votes, average: 4.67 out of 53 votes, average: 4.67 out of 53 votes, average: 4.67 out of 53 votes, average: 4.67 out of 53 votes, average: 4.67 out of 5 (3 votes, average: 4.67 out of 5)
You need to be a registered member to rate this post.
Loading...

Spero di farvi cosa gradita, facendo questa piccola guida sulla differenza delle due velocità:

  1. Quella di stampa
  2. Quella di estrusione

Chiedo scusa se i calcoli li facilito per essere più comprensivo, normale che andrebbero fatti più seriamente, ma quello che conta è il risultato finale che più o meno è quello giusto.

Ho notato che anche dai più esperti c’è un po di confusione su queste due velocità, quindi vediamo di capirci…

Immaginiamo di stampare con un nozzle da 0,4 mm di diametro e di stampare esattamente a 100 mm/s un layer da 0,4 mm (faccio cosi per semplificare poi capirete del perché).

Ora se noi dobbiamo fare una linea di 100 mm alta quindi 0,4 mm impiegheremo 1 s alla velocità di stampa. Ma questo non vuol dire che stiamo estrudendo a 100 mm/s, perché no?? E ora ve lo spiego.

Se utilizziamo un filamento di 1,75 mm di diametro e ipotizziamo di estrudere a 100 mm/s in 1 s abbiamo estruso appunto 100 mm di filo, quindi un cilindro alto 100 mm e largo 1,75, ora sappiamo che il volume di questo cilindro si calcola con la formula:

V = (π • r • r) • h

Quindi nel nostro caso è 0,875 * 0,875 * 3,14 * 100 = 240,40 mm3

Ora calcoliamo invece il volume del nostro filo depositato sul piatto lungo 100 mm e alto 0,4 (ripeto per facilitare i calcoli mi baso su un cilindro depositato, anche se non è esattamente cosi)

0,2 * 0,2 * 3,14 * 100 = 12,56 mm3

Molto molto di meno di quello che l’estrusore ha estruso… Quindi??? Semplice l’estrusore non va a 100 mm/s. E a quanto va se deve estrudere solo 12,56 mm3 di materiale??

Sapendo il diametro del filo che è appunto 1,75 e di conseguenza il raggio che è di 0,875 sappiamo che il volume che deve estrudere quello che ci serve sapere quanto altro deve essere il cilindro, quindi la lunghezza di filo che deve spingere nell’hotend.

La formula è quindi H = 12,56 / (0,875 * 0,875 * 3,14) = 5, 2244 circa. Questo è la lunghezza di filo da 1,75 mm di diametro che l’estrusore deve spingere nel nozzle per fare uscire un cilindro di 0,4 di diametro per 100 mm di lunghezza. E in quanto tempo lo deve spingere? Semplicemente nello stesso tempo che lo deposita quindi 1s, di conseguenza la velocità dell’estrusore è “udite udite”:

5,22 mm/s

E si è proprio cosi 5 mm/s…

E se facessimo un layer da 0,2 mm sempre lungo 100 mm, più o meno la metà quindi si muoverà a 2,5 mm/s……

RIPETO sono calcoli grezzi non sono esattamente cosi, perché vanno tenute in considerazioni altre variabili oltre al fatto che reputo il filo depositato cilindrico, ma che non è esattamente cosi. Ma i valori sono approssimativamente molto vicini…

Quindi non impazzite a chiedere all’estrusore velocità oltre i 50 mm/s perché non avrebbe alcun senso, per estrudere a quella velocità dovreste stampare a velocità più alte di 10 volte i 100 mm/s cioè 1000 mm/s…

Cercate invece di inserire valori esatti per le velocità d’estrusione nel fw e non pensate di avere estrusori da F1 che non serve a nulla…

Questi calcoli vengono fatti appositamente dallo slicer che sapendo il filamento che avete calcola il volume da estrudere e in base a questo di quanto effettivamente deve muoversi l’estrusore.

Un altro sistema è quello di usare il volumetrico, quindi lo slicer non calcola più quanto deve estrudere il vostro estrusore in base al filo inserito, ma comanda la stampante con un numero che è il volume da estrudere, sarà poi il fw a calcolarne l’effettivo movimento in base al filo inserito nell’estrusore. Qual’è il vantaggio di questo sistema è quello di avere un gcode creato dallo slicer universale sia che usiate filo da 1,75 sia che usiate quello da 3. Ancora meglio se usate il sensore di grandezza del filamento in questo modo il fw si adatta in maniera dinamica a secondo del diametro rilevato dal sensore stesso…

Un saluto da vostro MagoKimbra.

Gcode – G29 – Auto bed level Cartesian & Core

1 vote, average: 5.00 out of 51 vote, average: 5.00 out of 51 vote, average: 5.00 out of 51 vote, average: 5.00 out of 51 vote, average: 5.00 out of 5 (1 votes, average: 5.00 out of 5)
You need to be a registered member to rate this post.
Loading...

Finalmente arriviamo al comando più complesso che a molti crea non pochi problemi, G29 Auto Bed Leveling o ABL.

Prima di tutto vediamo la geometria che sta dietro al comando e come teoricamente va ad aggiustare il livellamento del piano.

Quando la stampante con la sua probe prende un punto del piano viene memorizzato in una matrice che contiene le tre coordinate di quel punto (X, Y, Z), la matrice poi viene usata da Vector che crea dei vettori di collegamento da punto a punto. La stampante muoverà il nozzle nello spazio tenendo conto di quei vettori.

Esempio: Se nel punto X 10 Y 10 ho una Z pari a 0 e nel punto X 150 Y10 ho una Z pari a 2 ho un vettore che va da (10, 10, 0) a (150, 10, 2) quindi un vettore che sale leggermente da sinistra verso destra.

Cosi per tutti i punti del piano, naturalmente il sistema non fa altro che collegare con vettori tutti i punti del piano che sono stati sondati, senza sapere minimamente cosa succede nel mezzo…

Esistono due modi per fare i vari probe, uno è con una griglia di punti n * n (dove n è AUTO_BED_LEVELING_GRID_POINTS) e l’altro invece è tre punti, ricordando che una regola di geometria ci dice che per tre punti nello spazio passa uno solo piano.

bed-leveling-method-1[1]

 

Quindi sono fondamentali i valori che andiamo a settare nel FW per un corretto ABL.

AUTO_BED_LEVELING_GRID

Se abilitato definiamo la griglia quindi successivamente il numero dei punti

AUTO_BED_LEVELING_GRID_POINTS

E infine i punti minimi e massimi per le due coordinate sul piano cioè X e Y

#define LEFT_PROBE_BED_POSITION 20
#define RIGHT_PROBE_BED_POSITION 180
#define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 180

Left è il minimo a sinistra e Right è il massimo a destra, Front è il minimo avanti mentre Back è il massimo indietro. Questi punti dovrebbero essere all’interno del piano. All’interno di questi punti viene creata la nostra griglia n * n. Se la griglia è di 2 allora saranno esattamente i punti di probe, altrimenti verranno creati (n – 2) punti all’interno di quest’area.

Se la griglia non è definita allora andremo a settare esattamente le coordinate dei tre punti di probe.

#define ABL_PROBE_PT_1_X 15
#define ABL_PROBE_PT_1_Y 180
#define ABL_PROBE_PT_2_X 15
#define ABL_PROBE_PT_2_Y 15
#define ABL_PROBE_PT_3_X 180
#define ABL_PROBE_PT_3_Y 15

Ora veniamo a qualcosa di fondamentale la distanza tra la probe e il nozzle nello spazio definita con i seguenti comandi:

#define X_PROBE_OFFSET_FROM_EXTRUDER 0 // X offset: -left [of the nozzle] +right
#define Y_PROBE_OFFSET_FROM_EXTRUDER 0 // Y offset: -front [of the nozzle] +behind
#define Z_PROBE_OFFSET_FROM_EXTRUDER -1 // Z offset: -below [of the nozzle] (always negative!)

Come vedete è spiegato abbastanza bene come devono essere messi i valori… Se X offset è negativo vuol dire chela sonda è a sinistra del nozzle, se positivo starà a destra. Cosi se Y è negativo vuol dire che è davanti al nozzle, altrimenti starà dietro. Questi due valori devono essere interi, non essenziale una precisione enorme. Questi due valori però andranno a influire sui punti di probe.

Sia che sia una griglia che siano i tre punti, la posizione X Y è della probe e non del nozzle, quindi il nozzle si troverà spostato rispetto al punto di probe di un tot determinato dagli offset. Vado a farvi un esempio abbiamo un offset su X di -25 quindi la sonda è a sinistra del nozzle di 25 mm. Ora andiamo a fare la probe nel primo punto cosi come settato di default:

LEFT_PROBE_BED_POSITION 20

La probe andrà sul punto 20 e il nozzle? Il nozzle andrà a 20 + 25 quindi a 45 nel piano. Fin qui tutto bene.  Andiamo a fare la probe sul secondo punto a destra:

RIGHT_PROBE_BED_POSITION 180

Quindi la sonda starà a 180 mentre il nozzle a 180 + 25 = 205, Se abbiamo messo come valore X_MAX_POS 200 ecco che in compilazione del FW quest’ultimo ci avvertirà con un warning (che non è un errore come tanti e tanti dicono perché non leggono ciò che è scritto) che la posizione massima è stata superata e che non è possibile fare una probe nel punto 180, il massimo che possiamo raggiungere è 175. Stessa identica cosa vale per Y.

Cosa invece serve lo Z_PROBE_OFFSET che come dice il FW DEVE essere solo negativo. Perché negativo? Perché la sonda deve rilevare il piano prima che il nozzle lo tocchi altrimenti crash…

Questo valore è indipendente se la sonda stia più alta del nozzle (vedi pibot o sonde ottiche, oppure quelle di prossimità) o che tramite un movimento meccanico (Servo e/o Bltouch) stia più in basso del nozzle, l’importante è solo che deve rilevare il piano n mm prima del nozzle, questo valore n è il nostro Z_OFFSET.

Questo valore può essere trovato in diversi modi e poi inserito direttamente nel fw con il comando M666 P.

Uno di questi modi è quello di misurare l’altezza vera del nozzle con il solito metodo del foglio, a quel punto dovremmo avere un valore di Z pari a zero, quindi saliamo per poi riscendere piano fino a che non vediamo attivarsi la nostra sonda, magari aiutandoci con il comando M119 che ci dirà se la probe è triggered o meno. a quel punto la differenza d’altezza sarà il nostro offset.

Ricordatevi che esistono i comandi M401 e M402 per le sonde con servo (anche BLTOUCH) che faranno scendere la probe o risalire…

Quindi come è chiaro questo valore Z_PROBE_OFFSET deve essere preciso al centesimo di mm questo perché andrà a influire sull’ABL.

Altri setting da fare sono:

#define XY_TRAVEL_SPEED 10000               // X and Y axis travel speed between probes, in mm/min

Come ben spiegato la velocità di spostamento da un punto all’altro dei vari probe, espressa in mm al minuto, quindi 10000 sono circa 166 mm/s.

#define Z_RAISE_BEFORE_PROBING 10 //How much the extruder will be raised before travelling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when travelling from between next probing points
#define Z_RAISE_AFTER_PROBING 5 //How much the extruder will be raised after the last probing point.

Questi dicono al FW quanto si deve alzare il nozzle di Z prima (BEFORE) di iniziare a sondare, per esempio per chi ha probe con il servo. Se per caso la probe è sul piano e il servo farà scendere la probe potremmo causare un altro crash… Poi c’è il valore BETWEEN cioè tra una probe e l’altra, tendenzialmente può essere anche di soli pochi mm, ma ci sono alcune sonde vedi Pibot, che necessitano di arrivare da lontano per avere una misura più precisa, anche quelle di prossimità, quindi meglio allontanarsi di diversi mm anche 10 mm per fare in modo che la sonda rilevi il piano con maggior accuratezza.. Infine un RAISE AFTER, cioè dopo aver fatto tutti i probe si alza per poter portare la sonda a posto senza eventualmente toccare il piano (vedi servo).

Infine ultimamente è possibile dire anche che tipo di sonda abbiamo montato, se di tipo servo lo si farà nel solito modo, altrimenti dobbiamo solo dire al fw che tipo abbiamo:

Z_PROBE_SLED

Z_PROBE_MECHANICAL

Z_PROBE_FIX_MOUNTED

La SLED è una sonda che normalmente rimane staccata dal carrello X, viene parcheggiata fuori e agganciata solo quando serve in maniera magnetica e ha la sonda fissa non si muove quindi abbastanza precisa. Una cosa simile è stata fatta sulla Prusa I3 EVO di NicolaP.

La MECHANICAL è di tipo fisso non c’è movimento alcuno, un sonda di tipo meccanico per esempio è il nozzle stesso che o a pressione sul piano o con qualche connessione elettrica particolare abilita il pin.

La FIX_MOUNTED sono tutte quelle sonde fissate, anch’esse non hanno movimento alcuno e sono per esempio il PiBot o quelle di prossimità.

 

Arriviamo al comando vero e proprio.

G29

uso

  • G29 P<#> S<# speed> D V<#> T F<#> B<#> L<#> R<#>

parametri

  • P numero di punti della griglia se si vuole variare quello di default.
  • S travel speed in mm/min
  • D Flag per il Dryrun mode. Praticamente fa completamente tutto, ma non varia la matrice vettoriale. E’ un test.
  • V Verbose level 0 – 4. Setta quante informazioni ci deve dare il fw indietro, 0 nessuna 4 massimo. Da mettere solo nella fase di controllo.
  • T fa un report della topologia del piano con tutte le informazioni possibili (Verbose 4 fa la stessa cosa oltre a tante altre info).
  • F posizione frontale della griglia, utile per cambiare i punti di probe solo nello spazio utilizzato dal pezzo.
  • B posizione posteriore della griglia, utile per cambiare i punti di probe solo nello spazio utilizzato dal pezzo.
  • L posizione sinistra della griglia, utile per cambiare i punti di probe solo nello spazio utilizzato dal pezzo.
  • R posizione destra della griglia, utile per cambiare i punti di probe solo nello spazio utilizzato dal pezzo.

 

Uno dei problemi che noto spesso è quello del montaggio della probe. Io ho sempre cercato di metterla più vicina possibile al nozzle:

20141117_161557

Questo perché? Semplice il problema nasce quando la probe è molto spostata rispetto al nozzle visto che va a sondare un punto, ma il nozzle è totalmente da un’altra parte, questo crea una matrice vettoriale falsata e non precisa. Mi spiego, se la sonda è 50 mm alla destra del nozzle quando la sonda va a sondare il punto 50 di X il nozzle è nel punto X = 0 quindi va inserire un altezza nella matrice X Y Z di un punto che non centra nulla… Quindi si creano dei vettori falsati rispetto al piano..

Il mio consiglio è sempre quello di mettere la sonda il più vicino possibile al nozzle, difatti la miglior posizione sarebbe il nozzle stesso…

Un altro problema è la precisione stessa della sonda, una sonda che rileva nello stesso punto diversi valori che si discostano di decimi di mm non è affidabile, per provarla basta fare la home di Z al centro diverse volte per verificare che l’altezza di Z rilevata sia si diversa (è impossibile averla sempre uguale), ma con differenze di non più di centesimi di mm…

Un altro modo di livellare il piano con il FW è quello del MBL Mesh Bed Level che vedremo nel prossimo post, per ora il vostro Mago vi augura come sempre delle buone stampe…

 

MagoKimbra

Update V4.2.85

2 votes, average: 5.00 out of 52 votes, average: 5.00 out of 52 votes, average: 5.00 out of 52 votes, average: 5.00 out of 52 votes, average: 5.00 out of 5 (2 votes, average: 5.00 out of 5)
You need to be a registered member to rate this post.
Loading...
Update V4.2.85
* Add Stop and Save for Restart (SSR)
 
Per ora proviamo solo la funzione poi aggiungeremo il check di un pin per la mancanza di tensione…
 
Da LCD c’è il comando Stop and Save (Stop e Salva)
Da Host M33 in qualsiasi momento mentre sta stampando da SD.
 
Il FW salva in SD un file chiamato restart.gcode con posizione corrente, temperature, nome del file in stampa e linea di file SD letta.
 
Il FW farà per le delta una home totale e per le altre solo di X Y, spegne tutto e si mette in pausa, In caso di vera mancanza di corrente questo naturalmente, a meno di usare UPS, non sarà possibile.
 
Quando si rivuole iniziare basterà far partire il file restart.gcode, il quale non farà altro che rifare la home, portare a temperatura i riscaldatori, bed e chamber compresi, spostarsi nell’ultima posizione nota, riaprire il file precedente in SD e cominciare a leggere dall’ultima riga letta.
 
Si può usare anche per fermare la stampa se si hanno dei problemi o per qualsiasi altro motivo…
 
Buone stampe dal vostro MagoKimbra.