Configurazione Manuale

Introduzione

Il Configuratore Online permette di realizzare e gestire in maniera semplice e veloce la propria configurazione. Esistono però molte impostazioni e funzionalità che non possono essere gestite tramite tale strumento. Per ragioni di praticità, le impostazioni meno utilizzate dagli utenti non vengono inserite nel Configuratore Online, obbligando gli utenti più avanzati ad effettuare una configurazione manuale di MK4duo. La configurazione manuale permette di gestire ogni singolo aspetto del firmware ma è necessario porvi molta attenzione. Ecco perchè ti proponiamo una serie di guide per la configurazione manuale di MK4duo: una per ogni file di configurazione del firmware.

Come funzionano i file di configurazione

I file di configurazione altro non sono che semplici file di testo in formato ".h" in grado di influenzare il processo di compilazione di MK4duo, per esempio escludendo certe parti di codice piuttosto che altre in base alle funzionalità attivate o meno dall'utente. Per modificarli è necessario utilizzare un editor che non preveda nessun tipo di formattazione del testo (come Notepad su Windows o Geany su Linux), pena la corruzione dei file modificati. I file di configurazione si trovano tutti nella cartella di MK4duo liberamente scaricabile dal repository Github, e il loro nomi cominciano ciascuno con "Configuration", il che li rende facilmente identificabili.

Le impostazioni sono definite secondo una ben precisa sintassi. Per definirne una si usa il comando #define seguito dal nome dell'impostazione. Se l'impostazione prevede un valore, questo viene scritto subito dopo, separato da uno o più spazi. Per far sì che un'impostazione non venga considerata (e in alcuni casi per disabilitarla) è possibile commentarla, facendola precedere da una doppia barra.

#define IMPOSTAZIONE_1     //impostazione attiva
//#define IMPOSTAZIONE_2   //impostazione commentata/disabilitata

#define IMPOS true         //valore booleano (true o false)
#define IMPOS 40           //valore intero
#define IMPOS 30.56        //valore con cifre decimali (PUNTO al posto della VIRGOLA)
#define IMPOS "abcdefghi"  //valore stringa (aperto e chiuso con i DOPPI APICI)
#define IMPOS {30, 20, 10} //insieme di valori (array)

I vantaggi della compilazione condizionata

La compilazione condizionata permette di controllare in maniera selettiva quali parti di codice debbano essere compilate e caricate sulla scheda elettronica e quali invece debbano essere scartate. Il tutto viene gestito automaticamente dal firmware, l'utente può limitarsi a definire correttamente la configurazione della propria macchina senza pensare ad altro. Siccome alcune funzionalità richiedono più risorse di altre (sia come righe di codice sia come SRAM necessaria), è possibile che una particolare configurazione porti ad un codice eseguibile più oneroso rispetto ad un altro generato con una differente configurazione. Ecco perché gli eseguibili di MK4duo possono variare molto in termini di risorse richieste.

Compilazione condizionata e risorse

È possibile scoprire quante risorse sono necessarie per una specifica configurazione solo dopo aver compilato il firmware. Arduino IDE, al termine della compilazione, mostra un output molto utile a questo scopo. Ecco un esempio:

Lo sketch usa 56152 byte (22%) dello spazio disponibile per i programmi.
Il massimo è 253952 byte.

Le variabili globali usano 3071 byte (37%) di memoria dinamica, lasciando altri 5121 byte liberi per le variabili locali.
Il massimo è 8192 byte.

Il dato più significativo di questo messaggio è quello della percentuale di memoria dinamica occupata dalle variabili globali (nel caso qui sopra è il 37%): un valore al di sopra dell'80-90% può causare l'apparire di comportamenti indesiderati ed imprevisti. In genere questo può accadere solo sulle schede a 8bit, caratterizzate da una piccola quantità di SRAM a disposizione: in questi casi è possibile provare a disattivare alcune funzioni non strettamente necessarie oppure si può scegliere di installare sulla propria macchina una scheda a 32bit.

Gli svantaggi della compilazione condizionata

Il principale degli svantaggi della compilazione condizionata è quello di cablare nel codice sorgente molte delle scelte fatte dall'utente in fase di configurazione. In questo modo tali scelte non possono essere modificate durante il funzionamento della macchina, per esempio tramite un comando apposito. Per farlo sarà invece necessario rifare la configurazione e ricompilare il firmware con le nuove impostazioni.

Guida alla configurazione manuale di MK4duo

Per configurare correttamente la tua copia personale di MK4duo è necessario modificare manualmente alcuni file di testo, nel seguente ordine:

  • impostazioni principali: Configuration_Basic.h
  • impostazioni meccaniche:
    • Cartesiane: Configuration_Cartesian.h
    • Core: Configuration_Core.h
    • Delta: Configuration_Delta.h
    • SCARA: Configuration_Scara.h
    • Muve3D: Configuration_Muve3D.h
  • impostazioni CNC (solo se abilitata la funzione CNCROUTER): Configuration_CNCRouter.h
  • impostazioni taglio laser (solo se abilitata la funzione LASER): Configuration_Laser.h
  • impostazioni delle temperature: Configuration_Temperature.h
  • configurazione delle funzionalità di MK4duo: Configuration_Feature.h
  • configurazione dell'utilizzo dei pin: Configuration_Pins.h
  • impostazioni dei driver dei motori (solo se vengono utilizzati driver TMC o Toshiba): Configuration_Motor_Driver.h