Ricevere e trasmettere codici telecomando MySky [RISOLTO]

Ragazzi sto impazzendo, non è possibile che questi di Sky abbiano fatto cose così fuori standard!!

Provo a spiegarmi meglio, magari vi viene in mente qualcosa, e se qualcuno ha un TSOP e un telecomando MySky magari può verificare anche lui stesso.

Studiando le specifiche dei segnali standard IR, il sito LIRC, e parte del sorgente della libreria IRremote, ho capito che generalmente c'è un header composto da un segnale mark (ossia presenza di portante) seguito da uno space (assenza di portante), e poi i vari bit della codifica del tasto anche questi contraddistinti da un tempo di mark+space specifici (con mark che cambia a seconda se il bit è zero o uno, mentre lo space è sempre uguale) ed eventuali bit di chiusura.

Ho preso il TSOP a 33 kHz come esempio qui, visto che in giro ho letto che "dovrebbe" lavorare a 32.75 e quindi questo va sicuramente bene. Credo. Spero. :wink: Comunque sembra essere quello che fornisce risultati più stabili.

Carico uno degli sketch di esempio per il dump dei dati raw (IRrecvDumpV2) e premendo sul telecomando il tasto "1" ottengo sempre 17 valori di rawData, abbastanza regolari fatti così (sono i valori mark/space in microsecondi rilevati):

Timing[17]:

  • 250, -1000 + 250, -1100 + 300, - 700 + 300, -2700
  • 250, -1250 + 250, -1250 + 300, -1100 + 250, - 850
  • 300

ossia, per riportarli in sequenza:

250 1000 250 1100 300 700 300 2700 250 1250 250 1250 300 1100

La prima cosa che mi sembra strana è che i valori "mark" (quelli col "+") sono praticamente regolari (a meno del min tick di 50 uS), quello che varia è lo "space"!
La seconda è che non vedo un header come in altri protocolli.
La terza è che a metà pacchetto c'è uno space lunghissimo (2700 uS).

Se premo il tasto "2" ottengo:

Timing[17]:

  • 300, - 950 + 300, -1100 + 250, - 700 + 300, -2700
  • 250, -1250 + 300, -1250 + 250, -1100 + 300, - 800
  • 300

ossia:

300 950 300 1100 250 700 300 2700 250 1250 300 1250 250 1100

Facendo velocemente con Excel una differenza tra i due ottengo:

-50 50 -50 0 50 0 0 0 0 0 -50 0 50 0

Se considero la tolleranza dei valori pari al tick (+/- 50 uS) risultano praticamente IDENTICI, ovviamente ripetendo più volte la pressione dei due tasti ottengo comunque differenze analoghe, ma in ogni caso sempre 17 elementi nel rawData.

Per cui non capisco come funzioni questa stramaledetta codifica!

Notate anche che la somma algebrica delle differenze è sempre ZERO ossia i pacchetti di dati hanno la stessa identica durata totale, cosa che a questo punto mi sembra comunque curiosa, come se la codifica dei bit non fosse sui tempi mark/space (un bit mark ha sempre la stessa durata quindi se il codice ha più "1" di un altro, sarà più lungo) ma altro: non lavoreranno mica sulla frequenza sti malati mentali che hanno progettato il telecomando MySky?

AIUTOOOOOO!!!!