MarlinKimbra & MK4duo

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

New Version 4.3.4 stable

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

* CaseLight use Neopixel by Original Marlin
* Add command M123 – Set Logic Endstop
* Add command M124 – Set Pullup Endstop
* Add command M603 – Set filament change
* Add command M701 – Load Filament
* Add command M702 – Unload Filament
* Replaced easy bowden with filament change load & unload
* Save Logic and Pullup Endstop to EEPROM
* Fix and clear code

New Version 4.3.3 stable

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

* Add command M306 – Set Heaters parameters.

* Add G26 Mesh validation

* Update Nextion Firmware with new graphics by Mr Goblin.

* New calculation system for thermistors

* Add command M305 – Set thermistor and ADC parameters and DHT sensor parameters

* Add M303 R<Method> 0 = Classic Pid, 1 = Some overshoot, 2 = No Overshoot, 3 = Pessen Pid

* Unified commands M320 and M420 in M420 for all Bed Level

* Add subcode to M106 – P<fan> S<speed> F<frequency> U<pin> L<min speed> I<inverted logic>

* Add option for SD card SDCARD_SORT_ALPHA (By Marlin)

* Add M36 – Set SD Card Sorting Options

* Add Unified Bed Level (UBL) for Cartesian, Core and Delta

* Add support for DHT11, DHT21 and DHT22 Temperature/Humidity sensors (Only for test)

* Add subcommand S to M600 for change temperature

* New Class Heater for 4 Hotend 1 Bed 1 Chamber 1 Cooler

* Now Probe offset is a variable.

* New command for compatibility with Marlin, M851 X Y Z for setting Probe Offset

* New management commands

* New classes created

* Many changes made

* Add Adafruit NeoPixel Led

* Add Extruder Encoder for control filament movement (Experimental)

* Now all types of delta autocalibration can be done with probe_manually and lcd

* Create class bedlevel and probe

* G30 now have Z e P sub command. Z1 modify Delta Height and P1 modify Probe Z offset.

* Add Hardware PWM for SAM processor

* Add M114 D for Detail position, leveled, unlevel, stepper

* Add MKR12 system for 12 extruder with 16 relé and 4 driver

* Support to 12 Extruder

* Add support for PCA9632 PWM RGB LED

* Add support DAV System (By D’angella Vincenzo)

* Swap on Alligator board Heater_0 with Heater_Bed because this pin is Hardware PWM.

* Add User menu LCD

* Write Kinematic function for Cartesian, Core and DELTA. SCARA for now not implemented.

* Add ADVANCED PAUSE FEATURE (Ex Filament Change. Requires an LCD display)

* Add PARK HEAD ON PAUSE (Park head on SD pause or M125 commands. Requires an LCD display)

* Add M125 – Store current position and move to pause park position.

* Add automatic call M600 with one extruder and ADVANCED PAUSE FEATURE when change tools

* Add STATUS MESSAGE SCROLLING. The message on lcd scroll right to the left.

* Add ANET board for A2, A6 and A8 printer

* Add ANET full graphics lcd

Update 4.3.29_dev

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

### Version 4.3.29 dev
* New calculation system for thermistors
* Add command M305 – Set thermistor and ADC parameters and DHT sensor parameters
* Unified commands M320 and M420 in M420 for all Bed Level
* Add subcode to M106 – P<fan> S<speed> F<frequency> U<pin> L<min speed> I<inverted logic>
* Add EMERGENCY_PARSER to Due
* Add option for SD card SDCARD_SORT_ALPHA (By Marlin)
* Add M36 – Set SD Card Sorting Options
* Fix and clear code

### Version 4.3.28 dev
* Add Unified Bed Level (UBL) for Cartesian, Core and Delta
* Add support for DHT11, DHT21 and DHT22 Temperature/Humidity sensors (Only for test)
* Fix and clear code

### Version 4.3.27.2 dev
* Add subcommand S to M600 for change temperature
* Fix and clear code

### Version 4.3.27 dev
* New Class Heater for 4 Hotend 1 Bed 1 Chamber 1 Cooler
* Rewrite Temperature code
* Fix and clear code

### Version 4.3.26 dev
* Now Probe offset is a variable.
* New command for compatibility with Marlin, M851 X Y Z for setting Probe Offset
* Remove old command M666 P for Z offset Probe
* Fix and clear code

### Version 4.3.25 dev
* New management commands
* New classes created
* Many changes made
* Add Adafruit NeoPixel Led
* Fix and clear code

### Version 4.3.24 dev
* Add Extruder Encoder for control filament movement (Experimental)
* Now all types of delta autocalibration can be done with probe_manually and lcd
* Fix and clear code

### Version 4.3.23 dev
* Create class bedlevel and probe
* G30 now have Z e P sub command. Z1 modify Delta Height and P1 modify Probe Z offset.
* Fix EEPROM_SD
* Fix and clear code

### Version 4.3.22 dev
* Add Hardware PWM for SAM processor
* Add M114 D for Detail position, leveled, unlevel, stepper
* Add MKR12 system for 12 extruder with 16 relé and 4 driver
* Support to 12 Extruder
* Add support for PCA9632 PWM RGB LED
* Add support DAV System (By D’angella Vincenzo)
* Swap on Alligator board Heater_0 with Heater_Bed because this pin is Hardware PWM.

### Version 4.3.21 dev
* Add User menu LCD
* Write Kinematic function for Cartesian, Core and DELTA. SCARA for now not implemented.

### Version 4.3.20 dev
* Add ADVANCED PAUSE FEATURE (Ex Filament Change. Requires an LCD display)
* Add PARK HEAD ON PAUSE (Park head on SD pause or M125 commands. Requires an LCD display)
* Add M125 – Store current position and move to pause park position.
* Add automatic call M600 with one extruder and ADVANCED PAUSE FEATURE when change tools
* Add STATUS MESSAGE SCROLLING. The message on lcd scroll right to the left.
* Add ANET board for A2, A6 and A8 printer
* Add ANET full graphics lcd

Guida all’utilizzo di pausa e/o advanced pause 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...

Per spiegare questa parte un po complessa che in molti faticano a capire bisogna partire da come funziona il firmware nella gestione dei comandi sia seriali che da SD.

Tutti i sistemi seriali hanno una gestione a buffer, per farvi capire la cosa faccio un esempio che può essere più semplice da capire. Avete presente quando vedete un video in streaming, la prima cosa che fa il visualizzatore sul vostro PC è quello di creare un buffer di alcuni secondi del video per poi cominciare a visualizzarlo, questo perché durante il download ci possono essere dei momenti in cui il bitrate diminuisce o addirittura si ferma, in questo modo il buffer permette di continuare a vedere il filmato mentre si ripristina la connessione.

Stessa cosa funzione per la seriale pc board. Ci sono due tipi di buffer quello hardware e uno software.

Quando si mandano i comandi alla board tutti i comandi vengono bufferizzati finché il buffer non è pieno, poi vengono eseguiti uno alla volta e man mano che si svuota il buffer viene riempito da un altro comando.

Quindi se si manda una sequenza di questo tipo:

G1 F1380 X90.759 Y109.209 E66.92575
G0 F4800 X91.295 Y109.239
G1 F1380 X109.239 Y91.295 E67.76978
G0 F4800 X109.239 Y91.861
G1 F1380 X91.861 Y109.239 E68.58719
G0 F4800 X92.427 Y109.239
G1 F1380 X109.239 Y92.427 E69.37797
G0 F4800 X109.239 Y92.993
G1 F1380 X92.993 Y109.239 E70.14214
G0 F4800 X93.558 Y109.239
G1 F1380 X109.239 Y93.558 E70.87972
G0 F4800 X109.239 Y94.124
G1 F1380 X94.124 Y109.239 E71.59069
G0 F4800 X94.690 Y109.239
G1 F1380 X109.239 Y94.690 E72.27503
G0 F4800 X109.239 Y95.255
G1 F1380 X95.255 Y109.239 E72.93279
G0 F4800 X95.821 Y109.239
G1 F1380 X109.239 Y95.821 E73.56393
G0 F4800 X109.239 Y96.387
G1 F1380 X96.387 Y109.239 E74.16845
G0 F4800 X96.952 Y109.239
M0 S0
G1 F1380 X109.239 Y96.952 E74.74639
G0 F4800 X109.239 Y97.518
G1 F1380 X97.518 Y109.239 E75.29771
G0 F4800 X98.084 Y109.239
G1 F1380 X109.239 Y98.084 E75.82241
G0 F4800 X109.239 Y98.649
G1 F1380 X98.649 Y109.239 E76.32053
G0 F4800 X99.215 Y109.239
G1 F1380 X109.239 Y99.215 E76.79203
G0 F4800 X109.239 Y99.781
G1 F1380 X99.781 Y109.239 E77.23691

Questi comandi vengono messi nel buffer ed eseguiti uno alla volta. Quando il parser dei comandi arriva a M0 S0 effettua la pausa, il comando viene eseguito, ma nel frattempo il buffer è già pieno dei successivi comandi.

A questo punto come uscire dalla pausa?

Ci sono due modi il primo è meccanico perché il firmware anche se in pausa continua a controllare pin e altro quindi un pulsante collegato su un pin può dare il consenso, vedi encoder del display. Ma se non abbiamo nessun pulsante? Si potrebbe fare con un comando gcode per esempio, che è il comando M108 che è il comando che sblocca come l’encoder, ma se diamo questo comando da host che dovrà andare in seriale verso la board non è che abbia una corsia preferenziale, farà la stessa strada degli altri comandi quindi si mette in coda nel buffer e visto che la stampante è ferma non verrà mai eseguito, quindi questa strada cosi con è percorribile..

Se stampiamo da SD le cose si mettono in maniera diversa perché il buffer della SD è diverso da quello della seriale, quindi mandando il comando in seriale verso la board il buffer sarebbe vuoto e quindi M108 arriva al processore. Ma quì ci sarebbe un altro problema, come vi ho detto prima ci sono due buffer quello hardware e quello software, quello software che è quello che viene riempito dai comandi che arrivano o dalla seriale o dalla SD e poi eseguiti uno alla volta comunque sarebbe pieno, quindi M108 arriva tramite la seriale al processore, ma non riesce a metterlo nel buffer software perché pieno e anche cosi non verrebbe eseguito.

In quest’ultimo caso il firmware permette una via d’uscita cioè attivare EMERGENCY_PARSER, questa funzione legge il buffer seriale e legge man mano i vari vari comandi che arrivano dalla seriale man mano che arrivano inserendoli in un altro buffer di mezzo che poi sarà svuotato nel buffer principale, visto che stiamo stampando da SD questo buffer di mezzo sarà vuoto, quindi se viene rilevato che il comando che arriva è M108 o altri comandi importanti li esegue subito.

/**
* Enable an emergency-command parser to intercept certain commands as they
* enter the serial receive buffer, so they cannot be blocked.
* Currently handles M108, M112, M410
* Does not work on boards using Arduino DUE processors!
*/
//#define EMERGENCY_PARSER

Perché non metterlo definito di default chiederete voi, perché è memoria in più e tempo processore in più perché comunque ogni volta che arriva un carattere sulla seriale il firmware controlla che carattere è se è una M allora aspetta il prossimo se è un 1, il prossimo, e cosi via se rileva che è un M108 allora esegue se non lo è butta nel buffer principale e lascia al parser l’esecuzione… Quindi è tempo macchinina perso che si attiva solo se si ha la necessità di fare queste pause..

Comunque come già detto utilizzabile solo se si stampa da SD. E se si volesse stampare da Host? Bene gli Host seri vedi repetier o i vari octoprint o repetier server hanno la possibilità di mettere nel gcode il comando @pause che blocca l’host non la stampante, quindi l’host si ferma a mandare comandi e aspetta che voi premiate il tasto play che apparirà sul l’host stesso. Nei setting dell’host si possono mettere dei comandi che verranno inviati alla stampante, che vi ricordo non è in pausa, non ha più comandi da eseguire perché l’host non gliela mandati, quindi eseguirà tranquillamente qualsiasi comando che arriverà dalla seriale. Potrò cosi mettere dei comandi di spostamento per togliermi da sopra il pezzo, eventuali ritrazioni, insomma posso fare quello che voglio.

Ora vediamo cosa succede se ho un display qualsiasi display anche il nextion.

Si può abilitare ADVANCED_PAUSE_FEATURE che è praticamente il vecchio cambio filo M600 il comando annesso che eseguirà una serie di comandi in base alle impostazioni messe.

Ma se uno vuole inserire una pausa senza dover necessariamente fare il cambio filo, allora si abilità PARK_HEAD_ON_PAUSE.

Cosa attiva questa funzione, semplice se si mette in pausa la stampa da SD il firmware parcheggierà il nozzle in una posizione che è la stessa del cambio filo.

#define PAUSE_PARK_X_POS 3 // X position of hotend
#define PAUSE_PARK_Y_POS 3 // Y position of hotend
#define PAUSE_PARK_Z_ADD 10 // Z addition of hotend (lift)

Farà una ritrazione che è sempre uguale a quella del cambio filo:

#define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm

e attende la pressione del tasto encoder per i display  normali il tastino che appare nel nextion send, oppure il solito comando M108 se è attiva la funzione EMERGENCY_PARSER.

Una volta che si preme l’encoder si riporta sul pezzo estrude della stessa lunghezza della ritrazione di prima e ricomincia la stampa.

Ma se si volesse forzare la pausa senza dover premere pause printer sd, come si fa?

C’è il comando M125 che fa esattamente questo, cioè andare in pausa.

M125 – Save current position and move to pause park position. (Requires PARK_HEAD_ON_PAUSE)

Quindi niente M0 o roba del genere, con questo comando si va in pausa, il nozzle viene parcheggiato e si aspetta le pressione del tasto.

Detto ciò come al solito vi auguro buone stampe e buone pause a tutti.

Mago Kimbra.