Il file HEX, nel formato detto "Intel Hex", contiene il codice binario compilato del programma, ed e' quello che AVRDUDE deve leggere per programmare il microcontrollore. Per una spiegazione del formato:
https://en.wikipedia.org/wiki/Intel_HEX
In pratica, usando AVRDUDESS che e' una interfaccia grafica a AVRDUDE PER IL MICROCONTROLLORE DELLO SCHERMO:
- nel menu "Programmer (-c)" devi selezionare il programmatore di cui disponi, e subito sotto il porto a cui e' collegato;
- nel menu sotto "MCU (-p)" devi selezionare "ATMEGA328P";
- cliccando sul bottone [...] accanto alla linea sotto "Flash" devi selezionare il file SBCVideo.hex, "Write", e come "Format" il valore "Intel Hex";
- Nella sezione "Fuses & lock bits", devi scrivere accanto a "L" il valore "0xF7", accanto a "H" il valore "0xD9" e accanto a "E" il valore "0xFF";
A questo punto il bottone "Program" dovrebbe fare il mestiere, se il tuo programmatore e' collegato dove credi.
Per quanto riguarda i Flag, puoi leggere a che cosa servono cliccando sulla scritta "
fuse settings" e selezionarli uno a uno cliccando sul bottone "Bit selector" - i lock bits dovrebbero essere tutti non settati e va bene cosi', nella riga di "LFUSE" devi deselezionare (mettere a zero) CKSEL3 come spiega l'autore (e cosi' arriva il valore "0xF7"), HFUSE mantiene il valore di 0xD9 ed EFUSE quello di 0xFF.
Per il microcontrollore della tastiera, il file HEX e' SBCInterface_328.hex se usi un ATMEGA328P (altrimenti c'e' la versione per ATMEGA88 e per ATMEGA168) e i "Fuses & lock bits" devono assumere i valori Low: 0xFF, High: 0xD9, Extended: 0xFF.
Da notare che il codice sorgente NON E' per la IDE di Arduino ma per Atmel Studio (versione 7 credo).