Questo repository contiene la mia configurazione di Marlin 2.1 pensata per una Creality Ender 3 V2 aggiornata con scheda madre BTT SKR Mini E3 V3.0, estrusore Micro Swiss NG Direct Drive, sensore BLTouch 3.1 e driver TMC2209. Il README è una memoria storica delle modifiche applicate rispetto ai valori di default di Marlin così da poterle replicare velocemente in caso di upgrade futuri.
| Componente | Dettagli configurati in Marlin |
|---|---|
| Scheda madre | BOARD_BTT_SKR_MINI_E3_V3_0 con porta seriale principale 2 a 115200 baud e porta secondaria USB (-1). |
| Cinematica | Volume utile 235×235×250 mm, endstop agli angoli minimi, direzione motori X/Y invertita, Z e asse estrusore diretti. |
| Estrusione | Un solo estrusore diretto Micro Swiss NG con e-step fissati a 400 step/mm. |
| Sensori | BLTouch 3.1 fissato a sinistra dell'ugello (offset -44 mm in X, -9 mm in Y, +3.5 mm in Z). |
| Interfaccia utente | Display Creality/CR-10 a 128×64 e voce macchina impostata su "Ender-3 Pro". |
| Driver | TMC2209 su tutti gli assi con corrente 580 mA (650 mA su E0) e StealthChop attivo. |
SERIAL_PORT2 per la porta UART integrata sulla SKR Mini eSERIAL_PORT_2a-1per l'USB virtuale.- Baud rate fisso a 115200.
- Nome macchina mostrato sul display:
Ender-3 Pro.
- Volume dichiarato: 235 mm per X e Y, 250 mm per Z, con software endstop minimi attivi (Z esclusa) e massimi attivati.
- Direzione motori: X e Y invertiti (
true), Z normale (false), estrusore diretto invertito (true). - Passi per mm:
{80, 80, 400, 400}(nota: 400 step/mm per E0 tarato sul Micro Swiss NG). - Velocità massime:
{500, 500, 5, 25}mm/s per X/Y/Z/E. - Accelerazioni massime:
{500, 500, 100, 5000}con accelerazioni operative 500 mm/s² (stampa e travel) e 100 mm/s² in retrazione. - Dinamica avanzata: Junction Deviation a 0.08 mm con gestione dei segmenti corti abilitata e accelerazione S-Curve attiva.
- Utilizzo obbligatorio della sonda per l'homing Z e funzione Z Safe Homing al centro del piatto.
- BLTouch abilitato con margine di probing di 10 mm e velocità di spostamento 133 mm/s tra i punti.
- Offset sonda/nozzle
{-44, -9, 3.5}mm. - Altezze di sicurezza: 10 mm per deploy, 5 mm tra i punti e per il multi probing.
- Probing rapido a 4 mm/min, seconda passata a metà velocità, profondità minima -2 mm.
- Livellamento automatico bilineare 5×5, con estrapolazione oltre la griglia e fade-out fino a 10 mm; movimenti suddivisi in segmenti da 5 mm.
- Termistori tipo 1 su hotend e piano.
- PID attivo per hotend (
Kp 21.73 / Ki 1.54 / Kd 76.55) e piano (Kp 50.71 / Ki 9.88 / Kd 173.43). - Preheat rapidi: profilo PLA 185 °C / 45 °C / ventola 255 e ABS 240 °C / 110 °C / ventola 255.
- Ventola estrusore collegata al pin FAN1 con attivazione automatica sopra i 50 °C.
- EEPROM attiva con inizializzazione automatica e messaggi
M500/M501verbosi. - Keepalive host ogni 2 secondi e watchdog attivato.
- Funzione
EMERGENCY_PARSERper comandi critici immediati.
- Menu LCD
CR10_STOCKDISPLAYcon wizard per l'offset della sonda, info menu e babystepping. - Babystepping su Z con doppio click rapido (1250 ms) e combinazione con M851 per salvare l'offset.
- Linear Advance abilitato (K attuale 0.0 da calibrare in base al materiale).
- Supporto alle archi G2/G3 e movimenti manuali con beep feedback.
- Funzione
ADVANCED_PAUSE_FEATUREcon ritrazioni corte (2 mm), unload da 40 mm e load veloce 60 mm, purge finale 50 mm, mantenendo motori attivi e parcheggio automatico della testina. - G-code rapidi
M701/M702e comandoM603per configurare i cambi filamento. - Script runout di default
M600(sensore disabilitato di default ma flusso già predisposto).
- Corrente RMS 580 mA su X/Y/Z (ridotta a metà in homing) e 650 mA su E0, microstepping 1/16.
- StealthChop abilitato su tutti gli assi e timing chopper
CHOPPER_DEFAULT_24V.
- Auto report stato SD (
M27 S) e temperature (M155 S) + posizione (M154 S). - Comandi host action/prompt abilitati con supporto
M76. - Parser G-code esteso (
CAPABILITIES_REPORT) con report ventola su cambio velocità.
Oltre ai punti elencati sopra, in Configuration_adv.h sono stati attivati:
- Ventola hotend automatica su FAN1 e velocità massima (255).
- Wizard LCD per calibrare l'offset della sonda (
PROBE_OFFSET_WIZARD). - Watchdog hardware abilitato (
USE_WATCHDOG). - Babystepping con doppio click, collegamento automatico all'offset della sonda e opzione di visualizzazione totale disabilitata per mantenere il menu pulito.
- Linear Advance pronto all'uso (K da tarare).
- Funzioni di pausa avanzate con parametri personalizzati per il Micro Swiss NG.
- Supporto agli archi G2/G3 per percorsi più fluidi.
- Corrente e modalità dei driver TMC come riportato in tabella hardware.
- Auto-report SD/temperature/posizione e comandi host (pause, prompt) abilitati.
Per ricreare la mia configurazione partendo da un Marlin “vanilla”, procedi nell’ordine seguente:
- Imposta la scheda madre con
#define MOTHERBOARD BOARD_BTT_SKR_MINI_E3_V3_0. - Abilita la doppia seriale impostando
#define SERIAL_PORT 2e#define SERIAL_PORT_2 -1con#define BAUDRATE 115200. - Personalizza il nome macchina con
#define CUSTOM_MACHINE_NAME "Ender-3 Pro".
- Imposta il volume di lavoro a 235×235×250 mm (
X_BED_SIZE,Y_BED_SIZE,Z_MAX_POS). - Definisci gli endstop meccanici agli angoli minimi con stato alto (
#define X_MIN_ENDSTOP_HIT_STATE HIGH,#define Y_MIN_ENDSTOP_HIT_STATE HIGH,#define Z_MIN_PROBE_ENDSTOP_HIT_STATE HIGH) e abilita entrambi i software endstop (#define MIN_SOFTWARE_ENDSTOPS,#define MAX_SOFTWARE_ENDSTOPS). - Inverti il verso dei motori X/Y/E con
#define INVERT_X_DIR true,#define INVERT_Y_DIR true,#define INVERT_E0_DIR truementre Z restafalse. - Imposta i passi/mm con
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 400 }e le velocità massime{ 500, 500, 5, 25 }(DEFAULT_MAX_FEEDRATE). - Configura accelerazioni massime
{ 500, 500, 100, 5000 }(DEFAULT_MAX_ACCELERATION) e operative (DEFAULT_ACCELERATION,DEFAULT_RETRACT_ACCELERATION,DEFAULT_TRAVEL_ACCELERATION). - Abilita
JUNCTION_DEVIATION_MM 0.08e#define S_CURVE_ACCELERATION.
- Attiva il BLTouch (
#define BLTOUCH) e imposta l’offset#define NOZZLE_TO_PROBE_OFFSET { -44, -9, 3.5 }. - Abilita
#define USE_PROBE_FOR_Z_HOMINGe#define Z_SAFE_HOMINGcon centro piatto. - Definisci le altezze di sicurezza (
Z_CLEARANCE_DEPLOY_PROBE,Z_CLEARANCE_BETWEEN_PROBES,Z_CLEARANCE_MULTI_PROBE) a 10/5/5 mm. - Imposta le velocità del probing (
#define XY_PROBE_FEEDRATE (133*60),#define Z_PROBE_FEEDRATE_FAST (4*60),#define Z_PROBE_FEEDRATE_SLOW (Z_PROBE_FEEDRATE_FAST / 2)) e il margine con#define PROBING_MARGIN 10. - Abilita il bilinear mesh 5×5 (
#define AUTO_BED_LEVELING_BILINEAR,#define GRID_MAX_POINTS_X 5) con estrapolazione (#define EXTRAPOLATE_BEYOND_GRID), fade a 10 mm (#define DEFAULT_LEVELING_FADE_HEIGHT 10.0) e segmentazione dei movimenti (#define SEGMENT_LEVELED_MOVES,#define LEVELED_SEGMENT_LENGTH 5.0).
- Usa termistori tipo 1 per hotend e piano (
TEMP_SENSOR_0eTEMP_SENSOR_BED). - Inserisci i PID già calibrati (
DEFAULT_Kp 21.73,DEFAULT_Ki 1.54,DEFAULT_Kd 76.55per l’hotend eDEFAULT_bedKp 50.71,DEFAULT_bedKi 9.88,DEFAULT_bedKd 173.43). - Configura i preset di preriscaldamento (
PREHEAT_1PLA 185/45/255 ePREHEAT_2ABS 240/110/255). - Imposta la ventola di raffreddamento partendo dal firmware (vedi dettagli in
Configuration_adv.h).
- Abilita la memoria non volatile (
#define EEPROM_SETTINGSe#define EEPROM_AUTO_INIT) e i messaggi verbosi (#define EEPROM_CHITCHAT). - Imposta il keepalive dell'host con
#define HOST_KEEPALIVE_FEATUREe intervallo#define DEFAULT_KEEPALIVE_INTERVAL 2. - Seleziona il display grafico Creality con
#define CR10_STOCKDISPLAYe abilita i menu di livellamento (#define LCD_BED_LEVELINGe#define LCD_BED_TRAMMING).
- In
Configuration_adv.habilita#define ADVANCED_PAUSE_FEATUREe imposta i parametri su misura del Micro Swiss NG:#define PAUSE_PARK_RETRACT_LENGTH 2#define FILAMENT_CHANGE_UNLOAD_LENGTH 40#define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 6#define FILAMENT_CHANGE_FAST_LOAD_LENGTH 60#define ADVANCED_PAUSE_PURGE_LENGTH 50#define FILAMENT_UNLOAD_PURGE_RETRACT 13,#define FILAMENT_UNLOAD_PURGE_DELAY 5000,#define FILAMENT_UNLOAD_PURGE_LENGTH 8- Mantieni
#define PARK_HEAD_ON_PAUSE,#define HOME_BEFORE_FILAMENT_CHANGE,#define FILAMENT_LOAD_UNLOAD_GCODES,#define CONFIGURE_FILAMENT_CHANGEe#define PAUSE_PARK_NO_STEPPER_TIMEOUT.
- In
Configuration.hlascia pronto lo script#define FILAMENT_RUNOUT_SCRIPT "M600"(il sensore è facoltativo ma la routine è già predisposta).
- Seleziona i driver TMC2209 (
#define X_DRIVER_TYPE TMC2209ecc.) e imposta le correnti RMS a 580 mA (X/Y/Z) e 650 mA (E0) tramite#define X_CURRENT,#define Y_CURRENT,#define Z_CURRENT,#define E0_CURRENT. - Mantieni
#define HOLD_MULTIPLIER 0.5e#define INTERPOLATE truecon microstepping a 1/16 eRSENSE 0.11su tutti gli assi. - Abilita StealthChop (
#define STEALTHCHOP_XY,#define STEALTHCHOP_Z,#define STEALTHCHOP_E) e lascia il chopper default 24 V (#define CHOPPER_TIMING CHOPPER_DEFAULT_24V). - Riduci la corrente in homing con
#define X_CURRENT_HOME (X_CURRENT/2),#define Y_CURRENT_HOME (Y_CURRENT/2)e#define Z_CURRENT_HOME (Z_CURRENT/2).
- Abilita il wizard LCD per la sonda con
#define PROBE_OFFSET_WIZARD. - Configura il babystepping evoluto con
#define DOUBLECLICK_FOR_Z_BABYSTEPPING,#define DOUBLECLICK_MAX_INTERVAL 1250e#define BABYSTEP_ZPROBE_OFFSET, lasciando commentato#define BABYSTEP_DISPLAY_TOTAL. - Attiva il watchdog hardware con
#define USE_WATCHDOGe il parser di emergenza con#define EMERGENCY_PARSER. - Imposta la ventola estrusore automatica (
#define E0_AUTO_FAN_PIN FAN1_PIN,#define EXTRUDER_AUTO_FAN_TEMPERATURE 50,#define EXTRUDER_AUTO_FAN_SPEED 255). - Abilita il Linear Advance (
#define LIN_ADVANCEe#define ADVANCE_K 0.0) e il supporto agli archi G2/G3 (#define ARC_SUPPORT). - Abilita la reportistica automatica verso l'host (
#define AUTO_REPORT_SD_STATUS,#define AUTO_REPORT_TEMPERATURES,#define AUTO_REPORT_POSITION) e i prompt (#define HOST_ACTION_COMMANDS,#define HOST_PROMPT_SUPPORT).
- Sito principale di Marlin per documentazione e novità.
- Repository MarlinFirmware/Configurations con profili di esempio.
- Guida Auto Build Marlin per compilare con Visual Studio Code.
- Canali di supporto: Discord ufficiale e Issue tracker su GitHub.
Questa sezione sostituisce il README generico di Marlin mantenendo solo i link più utili all'ecosistema ufficiale.
