Firmware, chi è e come funziona ?

Ciao a tutti,

è un po che non scrivo qui, comunque volevo chiedervi come funzionano i firmware.

sto provando a seguire queste guide, anche se con scarso successo.

  1. --> Mini CNC - Contraptor
  2. --> Arduino GCode Interpreter - RepRap
  3. --> G-code - RepRap

nel primo link è un sito dove spiegano come costruire una piccola CNC e fin li mi è tutto chiaro ma quando si inizia a parlare del firmware non capisco più niente, istintivamente googolato il nome sotto quella voce trovo il secondo e il terzo link in cui si inizia a parlare di un linguaggio chiamato gcode(che credo sia un linguaggio della CNC).
E il problemi arrivano quando mi si chiede di mandare un firmware all arduino :roll_eyes: ?!?!?!!

ora uso un mega 2560

Il firmware è il codice contenuto in un microcontrollore. Parlando dell'Arduino, è la traduzione in linguaggio macchina dello sketch utente.
Firmware indica normalmente un programma normalmente non modificabile dall'utilizzatore di un apparato. Un firmware è anche il codice del tuo telefonino oppure del tuo televisore, che normalmente non sono modificabili dall'utente.

Quindi il firmware è il codice che fa capire l' Arduino le istruzioni che si scrivono sul' IDE.
Cambiare firmware vuol dire far capire delle altre istruzioni al Arduino, Giusto?!?!?!?

MA come si cambia un firmware?

Ogni cosa ha il suo linguaggio. Tu scrivi in C ma il C non è capito dalla CPU del microcontrollore, essa sa "leggere" solo il linguaggio macchina. Il compilatore converte il tuo sketch che scrivi nell'IDE in un formato leggibile dall'Atmega328. La scrittura di un nuovo firmware la fai con l'upload eseguito tramite l'IDE.

QUINDI:

Firmware == Sketch

pero i file che ho scaricato io sono un sacco come facci ad aprirli tutti insieme??

Firmware=sketch se parliamo di Arduino

Hai un link al firmware?

si

Quelli sono file binari, ossia firmware già pronti per essere caricati su un microcontrollore. Per fare ciò devi usare avrdude da terminale (cerca sul forum, ci sono tante discussioni: io personalmente ho messo tante volte i comandi da dare).

avrdude è un file un comando una porta o che....

si, ma vengono fuori discussioni su errori strampalate

avrdude è un comando.
Se hai Linux, basta fare "man avrdude" per vedere come usarlo.

Le macchine utensili a controllo numerico (CNC) usano da tempo un linguaggio chiamato G-code che è universale (o quasi) e che risponde alle regole ISO 6983.

In pratica, alla macchina si invia un file ASCII che contiene delle righe di testo di questo tipo:

N10 G01 X100 Y100 Z100 S1000 F250 M03

Se Arduino è il controller CNC, esso deve interpretare questo file in modo che agisca di conseguenza:
N10 ... numero blocco istruzioni
G01 ... interpolazione lineare
X100 ... asse X
Y100 ... asse Y
Z100 ... asse Z
S1000 ... velocità spostamento
F250 ... avanzamento (feed)
M03 ... avvia mandrino in senso orario

ok grazie