MarlinKimbra & MK4duo

New Version 4.3.6

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...

### Version 4.3.6
* Make class Mechanics to static
* Add Bézier Jerk Control
* Rewrite SD Restart for auto restart when power loss and return.
* Add command gcode M569 for setting Stepper Driver DIR.
* Fix and clear code

EEPROM

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...

Vedo se riesco a fare un po di chiarezza sulla funzione della eeprom.
Capisco che è una situazione a metà, a me piacerebbe che fosse totalmente gestibile via firmware la configurazione della stampante, vedi firmware tipo RRF o altri come quello della GH. Ma per fare questo c’è bisogno di memoria per le variabili, il DUE non ha problemi tutti e 512k sono utilizzabili per il software o per le variabili, purtroppo il mega ha solo 8 Kb di RAM per le variabili. Nel firmware stesso ci sono variabili cioè locazioni dove sono contenuti dati che variano nel tempo, per esempio la temperatura attuale di un riscaldatore o quella impostata come target dall’utente, la posizione degli assi (compreso E), la destinazione, e tante altre.
L’approccio dei firmware nati con il mega o inferiori è stato quello di definire costanti inizialmente alla compilazione del firmware per non occupare, la già poca, memoria del processore. Quindi valori come Z_MAX_POS o il pin del sensore o ancora i pin di una fan o le direzioni dei motori o le home sono costanti e definiti all’inizio nella configurazione. Le costanti non occupano spazio in RAM perché appunto costanti quindi occupano spazio come il software, questo lascia liberi quei pochi Kb di RAM per variabili di lavoro. Questo è perfetto per un funzionamento con il mega, ma costringe l’utente a dover compilare e scaricare il firmware per cambiare queste costanti. Per carità è nulla da dire su questa scelta, anzi la trovo perfetta per quello che serviva…
Alcune variabili però sono rimaste come gli step per mm, le velocità e le accelerazioni, variabili, che con gcode o con il display, è possibile modificare senza scaricare il firmware ricompilato. Ora questi valori però se modificati essendo in ram allo spegnimento della stampante tornano a essere quelli che erano inizialmente cioè quelli dettati dalle configurazioni, per esempio se si varia la velocità da 100 a 110 per un asse, durante tutto il funzionamento della stampante quel valore sarà 110, ma alla nuova accensione tornerà a essere 100 costringendo l’utente a inserire gocde negli start gocde per rimettere a 110 quel valore. Ecco che ci arriva in aiuto la EEPROM, cioè una memoria scrivibile dal software stesso permanente finche non sovra scritta.Quindi se io modifico il valore della velocità con il display o con il gcode e lo porto a 110 e poi lo memorizzo in EEPROM (se attiva), alla nuova accensione verrà letta la EEPROM e invece di mettere a 100 (come settato nella configurazione) la velocità il firmware la mette a 110. Ora se modifico il firmware mettendo come velocità 90 e lo scarico di nuovo nella scheda, quello che accade è la stessa cosa dell’accensione il firmware trova il valore 110 in EEPROM e quindi la velocità sarà 110 e non 90 come messo nella configurazione… In questo caso bisognerà portare il valore a 90 o con il gcode o con il display e poi memorizzarlo in eeprom per sovrascrivere solo questo e non perdere gli altri eventualmente salvati, l’alternativa è resettare la EEPROM con M502 portando tutti i valori di default (cioè quelli scritti nei file di configurazione) per poi di nuovo scriverli in eeprom con M500.
Detto ciò arriviamo al dunque, oltre ai consueti valori ho piano piano portato a variabili e non più costanti altri valori che normalmente erano solo definiti, appunto come i riscaldatori, le fan e altre cosuccie. Facciamo un esempio pratico: Configuro il firmware in modo che la fan 0 è sul pin 10, salvo in EEPROM, dopo di che vado nella configurazione e modifico il pin della fan 0 in 11, scarico il firmware senza fare altro il pin 11 non sarà mai usato perché in memoria EEPROM ho ancora il pin 10 e di conseguenza il firmware continuerà a usare il pin 10 per la fan 0.
Cosa bisognerà fare in questo caso?
Semplicemente due cose: O si cambia con il relativo comando il pin della fan0 e poi si salva in EEPROM oppure si resetta la EEPROM per riportare TUTTI i valori come scritti nella configurazione.
Ed è qui che viene la domanda, perché modificarli da configurazione invece di modificarli direttamente dal firmware con il gcode in modo più rapido senza dover compilare e scaricare ogni volta?
Altrimenti la eeprom non ha senso averla attiva, si cambia tutto da configurazione e basta cosi è tutto più facile.
Però volete mettere che io posso con un comando gcode far diventare il bed con i pid o bangbang senza dover riscaricare tutto??
Oppure modificare i pid al volo per abs o pla o tpu, o ancora cambiare tipo di sensore che monto se cambio al volo un hotend con un altro?
Per me queste sono un plus, ma forse non sono riuscito a farmi e farle capire queste cose. Questo però vuol dire che quando si configura e si modificano certi parametri bisogna fare un po di attenzione se sono valori salvati in eeprom oppure no. Come ho detto all’inizio sarebbe bello che tutti lo fossero, ma per rimanere ancora compatibile con le 8 bit, tutti è impossibile…
Spero che un po si sia capito come discorso. Intanto con RRF si modifica tutto via web browser e noi si compila ancora togliendo le // o mettendole per attivare o disattivare le funzioni…

New Version 4.3.5 stable

7 votes, average: 4,71 out of 57 votes, average: 4,71 out of 57 votes, average: 4,71 out of 57 votes, average: 4,71 out of 57 votes, average: 4,71 out of 5 (7 votes, average: 4,71 out of 5)
You need to be a registered member to rate this post.
Loading...

* Now if a heater does not have a sensor or fails, it will not be used, but it will not kill.
* If the PID autotune is not done, the firmware will not switch the heater on until the autotune is performed. Only if have EEPROM.
* Update Nextion Firmware 4.3″ and 7″
* Fix and clear code

Nextion 7″ HMI Diamond Series

6 votes, average: 4,33 out of 56 votes, average: 4,33 out of 56 votes, average: 4,33 out of 56 votes, average: 4,33 out of 56 votes, average: 4,33 out of 5 (6 votes, average: 4,33 out of 5)
You need to be a registered member to rate this post.
Loading...

 

Vediamo come installare questo display nella versione Diamond fatta da Mr.Goblins.

Come mostrato nello schema sovrastante il cablaggio prevede come nodo comune di interfacciamento una schedina di I/O auto-costruita di dimensioni 60 x 21 mm di cui di seguito si riporta la traccia rame:

 

Nell’impossibilità di potersela costruire si può utilizzare il display adapter originale, disponibile sul sito della Itead:  https://www.itead.cc/display/nextion/nextion-io-adapter.html

 

Ovviamente il vantaggio della scheda auto-costruita è quello di avere delle comode morsettiere sia per il cablaggio interno che per i collegamenti esterni del display.

 

Cablaggio:

La scheda di I/O prevede 2 morsettiere a 4 poli per i collegamenti di alimentazione e seriale, 2 morsettiere a 5 poli che portano all’esterno le connessioni  di I/O del display e un connettore SMT a 10 poli per il collegamento tra scheda e display.

Collegare inizialmente tra di loro tutti i pin GND delle schede, filo nero del display e filo nero del cicalino usando come punto comune il relativo morsetto della scheda di collegamento I/O. Successivamente collegare tra di loro tutti i pin VCC delle schede e filo rosso del display usando come punto comune un altro morsetto della scheda di I/O.

Collegare poi i fili giallo e blu del display ai restanti due morsetti della scheda I/O.

Ora andranno collegati l’uscita del sensore PIR, il filo rosso del cicalino e i due ingressi della scheda relè seguendo quanto raffigurato nello schema precedente.

Nel caso si utilizzi la scheda adattatrice originale I collegamenti saranno:

PIR out   → IO_0

Cicalino  → IO_1

Relè IN1 → IO_2

Relè IN2 → IO_3

Dopo di che andrà sistemata nel contenitore la prolunga della scheda SD, fissandola con l’apposita staffetta e, se possibile, frapponendo tra i due un pezzetto di gomma morbida (tipo guarnizione per finestre) facendo passare la piattina di collegamento attraverso l’asola sul fondo del contenitore.

Adesso non rimane che collegare la piattina a 10 poli prima alla scheda di I/O e poi, sovrapponendo l’altra metà del contenitore, al display. Il risultato finale (con il display scollegato) sarà simile a questo:

 

Dall’immagine si nota subito che per orientare verso l’esterno le morsettiere, le schede dovranno necessariamente essere montare sottosopra quindi andranno fissate una volta ultimato il cablaggio.

Si consiglia di piegare il flet-cable a 10 poli come indicato in figura al fine di avere un cablaggio più pulito ma soprattutto per facilitarne l’inserimento dal lato display una volta sovrapposta l’altra metà del contenitore.

 

Controllo e taratura:

Gli unici controlli da fare riguardano i jumper posti sia sul sensore PIR che sulla scheda a relè mentre la taratura riguarderà i due trimmer della scheda PIR.

Iniziamo dal jumper della scheda PIR che dovrà essere posto sulla posizione “H” (modo Retriggered) ovvero verso l’angolo della scheda.

Nota: in commercio è possibile trovare due tipologie di circuito le quali hanno i pin “H” e “L” invertiti.

I due trimmer andranno regolati ambedue a metà della loro corsa.

Quello del Delay Time è poco importante in quanto il tempo di ritardo è impostabile dal software del display, l’importante è che non sia eccessivamente lungo, mentre il Sensitivity Adjust, posto a metà corsa, rileverà la vostra presenza quando sarete a circa due metri dal sensore. In ogni caso potrete regolarlo in base alle vostre esigenze.

Nella scheda relè il jumper dovrà essere posto nella posizione “VCC” (verso l’angolo della scheda).

 

Materiali:

Di seguito sono elencati i materiali occorrenti alla realizzazione con relativi link verso il sito del venditore.

SD Card Extender:

http://www.ebay.it/itm/SD-to-MicroSD-Card-Extension-Cable-PRICE-INCLUDES-VAT-/112389211361?hash=item1a2aeb44e1:g:bhMAAOSwo6lWI09M

Modulo Neuftech a due relè 5V:

https://www.amazon.it/gp/product/B00PIMRGN4/ref=oh_aui_detailpage_o03_s01?ie=UTF8&psc=1

Sensore PIR Foxnovo HC-SR501:

https://www.amazon.it/Foxnovo-HC-SR501-Pyroelectricity-infrarosso-movimento/dp/B00UBUU770/ref=sr_1_1?s=automotive&ie=UTF8&qid=1493659599&sr=1-1&keywords=HC-SR501

Cicalino Kingstate KPEG350A:

http://it.rs-online.com/web/p/buzzer-piezoelettrici/6221512/

Flat-Cable a 10 vie da PCB Molex 98267-0255:

http://it.rs-online.com/web/p/cavi-per-ponticelli-ffcfpc/4589181/

Morsettiera da PCB 5 vie passo 2,54mm:

http://it.rs-online.com/web/p/blocchetti-terminali-da-pcb/2204298/

Morsettiera da PCB 2 vie addizionabili passo 5,08mm:

http://it.rs-online.com/web/p/blocchetti-terminali-da-pcb/4258720/

Connettore SMT 10 vie Molex 52271-1079:

http://it.rs-online.com/web/p/connettori-fpc/5144329/

 

Allegati:

Master circuito stampato dell’adattatore I/O eseguito con Sprint-Layout 6.0

Bitmap della traccia rame (dimensioni del circuito 60x21mm).

File STL Body.

File STL Frame.

File STL SD Fix.

File STL Support.

Sistema multi estrusore MKR6 – Multi Extruder system MKR6

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...

Questo articolo spiega come si può far funzionare fino a 6 estrusori con una normalissima scheda che ha due driver per estrusori.

Un ringraziamento speciale a angelos del forum reprap Italia.

Prima cosa bisogna acquistare una scheda arduino da 8 relè. Verificare che sia optoisolata e funzionate a 5v.

Esempio:

SainSmart-8-Channel-DC-5V-Relay-01[1]

Una volta fatto questo abilitiamo nel firmware MK4duo la funzione MKR6, per prima cosa diciamo al FW che abbiamo 6 estrusori:

/***********************************************************************
************************** Extruders number ***************************
***********************************************************************/
// This defines the number of extruder real or virtual
#define EXTRUDERS 6

Poi definiamo che abbiamo 2 driver per gli estrusori:

// This defines the number of Driver extruder you have and use
#define DRIVER_EXTRUDERS 2

A questo punto andiamo in Configuration_Feature.h e abilitiamo MKR4:

/***********************************************************************
************************* Multiextruder MKR6 **************************
***********************************************************************
* *
* Setting for more extruder width relay system *
* This is new system for 6 extruder width 2 driver and 6 relay. *
* See Configuration_pins.h for pin command relay *
* *
* Uncomment MKR6 to enable this feature *
* *
* Uncomment INVERTED_RELE_PINS if your relay switches with GND *
***********************************************************************/
#define MKR6
//#define INVERTED_RELE_PINS
/***********************************************************************/

C’è anche la possibilità di invertire il segnale per far scattare i relè se per caso si attivano con livello basso…

Dobbiamo anche dire al Firmware che pur avendo 6 estrusori però abbiamo un solo Hotend, quindi sempre in Configuration_Feature.h abilitiamo Singlenozzle:

/***********************************************************************
**************************** Single nozzle ****************************
***********************************************************************
* *
* This is used for single nozzle and multiple extrusion configuration *
* *
* Uncomment SINGLENOZZLE to enable this feature *
* *
***********************************************************************/
#define SINGLENOZZLE
/***********************************************************************/

Tutto questo lo possiamo fare in maniera semplice e rapida con il configuratore on line che trovate qui sul blog.

Ora per concludere la parte Firmware andiamo in Configuration_Pins.h e diciamo al Firmware quali sono i pin che servono per far scattare i relè. I pin da settare sono EX1_CHOICE_PIN e EX2_CHOICE_PIN:

#define EX1_CHOICE_PIN 5
#define EX2_CHOICE_PIN 6

Questi 2 pin sono un esempio, ma cambiano da scheda in scheda. Per la Ramps 1.4 si possono usare i pin per i servo lasciando il pin 11 per un eventuale servo bed level.

Ora passiamo al cablaggio, prendiamo i 4 fili che escono dal driver E0 e quelli di E1 e li colleghiamo in questa maniera:

Come vedete è abbastanza semplice. Il nero che esce dal driver lo colleghiamo in parallelo su tutti i cavi neri dei vostri 4 motori, stessa cosa facciamo per il rosso. Il nero e il rosso sono l’uscita A1 e B1 del driver, quindi 1 di una coppia e l’altro dell’altra coppia.

Mentre A2 il verde e B2 il blu li andiamo a mettere sul centrale dei due primi relè. I Normalmente Chiusi dei due primi relè li andiamo a collegare al verde e blu del primo motore che sarebbe E0, in questo modo quando i relè sono nella situazione tutti non eccitati il motore che andremo a controllare sarà appunto E0.

I Normalmente Aperti dei due primi relè andranno sui centrali della prossima coppia di relè, mi raccomando non invertite le coppie, mantenete la connessione a due a due…

I Normalmente Chiusi della seconda coppia andranno al verde e blu del secondo motore E1.

I Normalmente Aperti della seconda coppia andranno al verde e blu del terzo motore E2.

La prima coppia serve per commutare tra E0 e seconda coppia.

La seconda coppia serve per commutare tra E1 e E2.

Ripetiamo lo stesso identico concetto sugli altri 4 relè collegati però con il driver E1 per cosi collegare i motori di E3, E4 e E5.

I relè vanno alimentati con una 5v fissa, poi hanno degli ingressi per farli commutare, in questo caso visto che dovranno commutare a coppie dovremmo collegarli tra loro l’in 1 e 2 con in 5 e 6, l’in 3 e 4 con in 7 e 8. Poi dobbiamo portare i 2 pin scelti per farli scattare EX1_CHOICE_PIN e EX2_CHOICE_PIN.

Fatto tutto ciò possiamo alimentare la nostra scheda e dopo aver compilato e scaricato il fw passiamo alla fase di test.

Se abbiamo fatto tutto come si deve dovremmo avere questo risultato: Se ci colleghiamo con Host i relè dovrebbero rimanere tutti nello stato di quiete, ma se passiamo da E0 a E1 dovremmo sentire commutare la prima coppia di relè e anche la terza coppia, ce ne possiamo accorgere dai led che di solito sono montati sulla schedina relè.

Se passiamo da E1 a E2 vedremo scattare anche la seconda coppia di relè insieme alla quarta.

Se passiamo da E2 a E3 vedremo di nuovo tutti i relè tornare nella posizione di quiete, ma verrà usato il driver E1.

Se passiamo da E3 a E4 vedremo scattare di nuovo la prima e la terza coppia, ma usando il driver E1 si muoverà solo il motore di E4.

Se passiamo da E4 a E5 vedremo scattare di nuovo tutti i relé, ma visto che stiamo usando sempre il driver E1 si muoverà solo il motore E5.

A questo punto possiamo provare il tutto. disabilitiamo il controllo di temperatura con il comando M302 P1, questo fa in modo che possiamo estrudere anche se la temperatura dell’hotend non è al di sopra del minimo…

Proviamo a estrudere con ogni singolo estrusore, sentirete i relè commutare ogni qualvolta cambiate estrusore.

MagoKimbra.