Installare Marlin su Schede Ramps

Questa guida serve a chi vuole installare Marlin su una board Ramps 1.4/1.6. La presente guida tratta la configurazione di base, altri argomenti specifici, verranno trattati in articoli diversi (es. BLTOUCH, personalizzazione display, etc. che verranno linkati successivamente

Occorrente: Kit RAMPS con display grafico, link: https://www.amazon.it/ASHATA-Control…1&rps=1&sr=8-6

Per prima cosa scaricate i file allegati
– Arduino 1.8.0 (versione portable completa di tutte le librerie necessarie per windows)
– Marlin versione 1.1.9
– Marlin versione 2.0.x (versione ottimizzata per schede a 32 bit (es. https://www.amazon.it/gp/product/B07…?ie=UTF8&psc=1)

Passo 1
– Estrarre i files in una cartella del Computer (Arduino-1.8.0.rar e Marlin-1.1.9.zip/Marlin-2.0.x.zip)

Passo 2
– Apriamo Arduino.exe (se vi chiede di aggiornare Arduino dite di no in quanto poi potrebbero mancarvi le librerie) e carichiamo Marlin.ino

Nota: Decommentare una stringa significa eliminare il doppio slash all’inizio di una stringa, Commentare una stringa significa aggiungere il doppio slash all’ inizio di una stringa.
Doppio Slash = //

Clicchiamo sul Tab Configuration.h
Questo script definisce tutte le impostazioni di configurazione della scheda Arduino, il comportamento dei motori, le dimensioni del piatto, la direzione positiva degli assi,
la temperatura dell’estrusore e altre impostazioni. La prima cosa da fare è definire il tipo di scheda madre utilizzata.
Per farlo, cercare la riga di comando #define MOTHERBOARD e inserire il valore 33, valido per il tipo di scheda Arduino installata sulla stampante.

  

Una volta definita la scheda madre, è necessario impostare la temperatura del sensore del piatto e dei motori.
Cercare le righe di comando @define TEMP_SENSOR. Sono 6 righe e vanno modificate come nella foto. (#define TEMP_SENSOR_0 5, #define TEMP_SENSOR_BED 1)

A questo punto cercate (con la funzione Find di arduino) #define CUSTOM_MACHINE_NAME “3D Printer” e sostituite “3D Printer” con il nome che volete dare alla vostra stampante
– Adesso cercate #define LCD_LANGUAGE en e sostituitela in questo modo #define LCD_LANGUAGE it
– Adesso cercate #define DISPLAY_CHARSET_HD44780 e assicuratevi che sia impostato come segue #define DISPLAY_CHARSET_HD44780 WESTERN

Ogni stampante ha una sua area di lavoro, pertanto e’ necessario configurare la dimensione del piatto di stampa andando a ricercare #define X_BED_SIZE e #define Y_BED_SIZE, la dimensione deve essere indicata in mm. Per esempio, per un’area di lavoro 220X220X230, la configurazione e’ la seguente:
// The size of the print bed
#define X_BED_SIZE 220
#define Y_BED_SIZE 220

// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 230

In relazione alla voci #define X_MIN_POS e #define Y_MIN_POS, la posizione 0, generalmente risulta fuori dal piatto, la corretta posizione del punto 0,0 del piatto, andrà trovata muovendo l’ugello fino all’angolo del piatto. I valori andranno poi modificati e ricaricati.

È necessario ora riferire ad Arduino la corretta direzione degli assi, imponendo agli Endstop un comportamento di fine corsa iniziale o finale, a seconda di dove sono stati posizionati.
Cerchiamo #define INVERT_X_DIR e In linea di massima, vanno impostati come nella foto. (#define INVERT_X_DIR true, #define INVERT_Y_DIR false, #define INVERT_Z_DIR true)

NOTA BENE se noti che il motora gira al contrario(per esempio effetuando un HOME ALL) basta invertire da true a false o viceversa il motore incriminato (X,Y,Z,E)

Esempio: se noti che il motore X gira in senso opposto e su Arduino la stringa riporta #define INVERT_X_DIR true basta invertirlo, ovvero scrivere #define INVERT_X_DIR false al suo posto

Passo 3
– Andiamo ora nel menu Strumenti e nel sottomenu “Tipo di Arduino”, scegliamo Arduino Mega 2560.

Definiamo ora l’unità di passo dei motori. Questo significa definire la precisione della rotazione dei motori e l’accelerazione espressa in step.
Cerchiamo le righe di comando: (Questi step sono calcolati per una stampante Anet stock)
#define DEFAULT_AXIS_STEPS_PER_UNIT e impostiamo i valori {100, 100, 400, 100} se invece abbiamo uno spingifilo BMG {100.0, 100.0, 402, 412}
#define DEFAULT_MAX_FEEDRATE e impostiamo i valori {400, 400, 8, 50}
#define DEFAULT_MAX_ACCELERATION e impostiamo i valori {2000, 2000, 100, 10000}

Adesso Cerchiamo queste stringhe e impostiamole con questi valori.
#define DEFAULT_ACCELERATION 400
#define DEFAULT_RETRACT_ACCELERATION 1000
#define DEFAULT_TRAVEL_ACCELERATION 1000
#define DEFAULT_MAX_FEEDRATE {400, 400, 8, 50}
#define DEFAULT_MAX_ACCELERATION {2000, 2000, 100, 10000}

Una volta fatto ciò, dobbiamo settare il doppio motore Z, perchè di default funzionerà su uno solo
Andiamo sul tab “Configuration_adv.h

cerchiamo la stringa //#define Z_DUAL_STEPPER_DRIVERS e decommentiamola, scrivendo al suo posto #define Z_DUAL_STEPPER_DRIVERS

Ora abbiamo configurato entrambi i motori Z

Se abbiamo installato il bltouch dovete decommentare questa stringa #define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
– Se non avete il BLTouch NON toccate nulla di queste stringhe
Adesso Cerchiamo queste stringhe e impostiamole con questi valori.
#define NUM_SERVOS 1 questa riga va aggiunta sopra a #define Z_ENDSTOP_SERVO_NR
#define BLTOUCH Questa riga va cercata e decommentata togliendo il doppio slash iniziale
#define AUTO_BED_LEVELING_BILINEAR Questa riga va cercata e decommentata togliendo il doppio slash iniziale
//#define MIN_SOFTWARE_ENDSTOPS questa riga va commentata aggiungendo il doppio Slash all’inizio per renderla inattiva

– Questi parametri vanno adeguati a seconda di quale supporto per il BLTouch avete montato
#define X_PROBE_OFFSET_FROM_EXTRUDER 10 // X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER 10 // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle]
– Se non avete il BLTouch NON toccate nulla di queste stringhe

Passo 4
Ora impostiamo correttamente il display 12864
 

Cerchiamo su Arduino, la stringa //#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER e decommentiamolo.
Otterremo quindi questo risultato #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER come da immagine

 

Abilitamo inoltre il supporto al salvataggio di eventuali modifiche firmware (per esempio se vogliamo cambiare rapidamente il valore di jerk, di accelerazione etc..).
Per farlo dobbiamo decommentare la stringa //#define EEPROM_SETTINGS facendola diventare quindi #define EEPROM_SETTINGS

Passo 5

– Adesso non ci resta che selezionare la Porta COM dove è collegata la stampante e inviare lo sketch ad arduino
Nota Bene questa è una configurazione base per far girare Marlin su una ramps.

 

Collegare quindi i 2 cavi del display (uno è per il display grafico, l’altro per la SD card) ai rispettivi connettori NOTA BENE In caso si visualizzi solamente una schermata blu vuota, potrebbe essere necessario staccare attaccare i connettori del display e/o invertire di 180 gradi i connettori. Ciò che vedremo è l’interfaccia grafica Marlin

Soltanto nel caso che il display FullGraphics presenti dei problemi per es. disallineamenti o parti mancanti potete provare ad inserire nel configuration.h le seguenti 3 righe.
Cercate #define STRING_SPLASH_LINE2 WEBSITE_URL e sotto incollateci queste 3 linee

#define ST7920_DELAY_1 DELAY_NS(63)
#define ST7920_DELAY_2 DELAY_NS(100)
#define ST7920_DELAY_3 DELAY_NS(125)

A questa guida hanno lavorato: Daniele1926, oOxygen, tracqui. Tutti i diritti sono riservati al Team di 3D-World e MT Lab