Sei sulla pagina 1di 2

Come si modifica il firmware (codice sorgente telecomandi/sani-20-fw)

Il firmware è il codice sorgente dei telecomandi, cioè, è il codice dove sono scritte tutte le funzioni del
telecomando. È composto da 4 file, ma a noi serve solo Flash.h QUINDI GLI ALTRI NON GUARDARLI
PROPRIO, PERCHE NON SO COSA SONO, NON SO COSA FANNO E SE SI INCASINANO SONO GUAI PERCHE CI
VUOLE QUALCUNO CHE SAPPIA PROGRAMMARE IN C PER SITEMARE.

Flash.h - contiene tutte le sequenze infrarossi di tutti i tasti dei telecomandi per 4 tipologie di televisori
(samsung, philips, lg, sky). A noi interessa dalla riga 59 alla 278. Quando lo apri e vedi un botto di numeri:
NON SPAVENTARTI!!!! (che sennò non ne usciamo più).

Per ogni tipologia di televisore abbiamo una matrice (se stai toccando un codice sorgente e non sai cosa sia
una matrice, FOOOOORSE sarebbe il caso che tu NON TOCCASSI un codice sorgente, poi fai te) di 52 x 75
elementi. 52 sono i tasti del telecomando (44 tasti sulla scheda telecomando + 8 comandi speciali) e 75
sono i numeri che compongono ogni singola sequenza infrarossi.

Per ogni tipologia di televisore, troviamo una matrice.

Quella di samsung va dalla riga 59 alla riga 112 e si chiama T101

Quella di philips va dalla riga 115 alla riga 167 e si chiama T102

Quella di lg va dalla riga 170 alla riga 223 e si chiama T103

Quella di sky va dalla riga 226 alla riga 278 e si chiama T201

I numeri grigi a fianco (esempio = /*01__*/ ) sono tuoi amici, ti dicono a quale tasto della scheda
telecomando corrisponde la riga della matrice. Quelli strani (esempio = /*13p_*/) sono i comandi speciali.

Per farti capire, questi sono i primi 2 tasti per un telecomando samsung (1= tasto On\Off, 2= tasto mute):

volatile const uint16_t T101[52][75] __at(T101_Fadr) =

/*01__*/ {{4500, 4500, 590, 1690, 590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
590, 1690, 590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 1690, 590,
590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 1690, 590, 590, 590, 1690, 590, 1690, 590, 1690,
590, 1690, 590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590}, tasto On\Off

/*02__*/ {4500, 4500, 590, 1690, 590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
590, 1690, 590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 1690, 590, 1690,
590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
1690, 590, 1690, 590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590}, tasto mute

In base ai cambiamenti dei tasti che devi fare, devi sostituire nella riga della matrice la sequenza infrarossi
corrispondente al nuovo tasto rimpiazzando quella vecchia. ATTENZIONE A RISPETTARE LE PARENTESI E LE
VIRGOLE. (sennò poi ti toccherà cecare una singola virgola sbagliata o una singola parentesi al posto
sbagliato su tutta la tabella).

GUARDA L’ESEMPIO DI SOTTO


Per farti capire meglio, ora invertirò i 2 tasti che ti ho mostrato prima:

Inizio sostituendo l’intera sequenza del tasto 2 con quella del tasto 1

PRIMA

volatile const uint16_t T101[52][75] __at(T101_Fadr) =

/*01__*/ {{4500, 4500, 590, 1690, 590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
590, 1690, 590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 1690, 590,
590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 1690, 590, 590, 590, 1690, 590, 1690, 590, 1690,
590, 1690, 590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590}, frequenza tasto on/off

/*02__*/ {4500, 4500, 590, 1690, 590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
590, 1690, 590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 1690, 590, 1690,
590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
1690, 590, 1690, 590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590}, frequenza tasto mute

DOPO

volatile const uint16_t T101[52][75] __at(T101_Fadr) =

/*01__*/ {{4500, 4500, 590, 1690, 590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
590, 1690, 590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 1690, 590,
590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 1690, 590, 590, 590, 1690, 590, 1690, 590, 1690,
590, 1690, 590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590}, frequenza tasto on/off

/*02__*/{4500, 4500, 590, 1690, 590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
590, 1690, 590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 1690, 590,
590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 1690, 590, 590, 590, 1690, 590, 1690, 590, 1690,
590, 1690, 590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590}, frequenza tasto on/off (sono
le stesse frequenze)

poi metto al tasto 1 la sequenza che prima era nel tasto 2

volatile const uint16_t T101[52][75] __at(T101_Fadr) =

/*01__*/ {{4500, 4500, 590, 1690, 590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
590, 1690, 590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 1690, 590, 1690,
590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
1690, 590, 1690, 590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590}, frequenza tasto mute

/*02__*/{4500, 4500, 590, 1690, 590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
590, 1690, 590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 1690, 590,
590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 1690, 590, 590, 590, 1690, 590, 1690, 590, 1690,
590, 1690, 590, 1690, 590, 1690, 590, 590, 590, 590, 590, 590, 590, 590, 590}, frequenza tasto on/off

così facendo, il tasto 1 è diventato il tasto mute e il tasto 2 è diventato il tasto On/Off.

Questo metodo funziona per tutte le frequenze di tutti i telecomandi, volendo si possono mettere le
frequenze di una tabella di un tipo di televisore in una tabella di un televisore di tipo diverso, a patto di
rispettare la stessa procedura descritta prima (e stando SEMPRE attenti alle virgole e alle parentesi).

Tutte le frequenze originali le trovi su DOCUSAMBA in un file Excel che si chiama “Codici Firmware v5.2”.

Potrebbero piacerti anche