[[configurazione:manuale]]

Questa è una vecchia versione del documento!



Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /membri/mk4duowiki/wiki/inc/parser/handler.php on line 1552

Configurazione Manuale

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.

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)

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

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

L'aspetto più significativo di questo output è quello relativo alla percentuale di memoria dinamica occupata dalle variabili globali: un valore al di sopra dell'80-90% può significare 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.

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.

MK4duo si sta muovendo nella direzione di rendere alcune di queste impostazioni modificabili in maniera dinamica. Ciò richiede di caricare sulla scheda più parti di codice in grado di gestire ciascuna situazione possibile, ovviamente al prezzo di un firmware che necessita di maggiori risorse per funzionare correttamente.

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

FileGuidaNote
Configuration_Basic.hLinkObbligatorio
Configuration_Cartesian.hLinkSolo per meccaniche cartesiane
Configuration_Core.hLinkSolo per meccaniche Core
Configuration_Delta.hLinkSolo per meccaniche Delta
Configuration_Scara.hLinkSolo per meccaniche SCARA
Configuration_Muve3D.hLinkSolo per meccaniche Muve3D
Configuration_CNCRouter.hLinkSolo se abilitata la funzione CNC
Configuration_Laser.hLinkSolo se abilitata la funzione Laser
Configuration_Temperature.hLinkObbligatorio
Configuration_Feature.hLinkObbligatorio
Configuration_Pins.hLinkObbligatorio
Configuration_Motor_Driver.hLinkSolo se abilitati driver TMC