Forum: HF, Funk und Felder Medion X10 21 Bit Code


von Sebastian B. (begga)


Lesenswert?

Hallo zusammen,

Ich habe für mein Mediacenter einen X10 Empfänger (auf 422mhz mit Pollin 
rfm01 im ook-mode + atmega32) gebaut. Funktioniert auch soweit ganz gut, 
nur leider scheint die Fernbedienung nicht im Standard X10RF Protokoll 
zu senden. Stattdessen verwendet sie eine seltsame 21 Bit Variante (hab 
das auch per Oszi überprüft...). Ich konnte zwar schon den Tastencode, 
Gerätecode sowie zwei Toggle-Bits identifizieren, allerdings tue ich mir 
mit Byte2 Der Daten immer noch schwer. Vielleicht hat ja einer von euch 
eine Idee...

Code                        Taste
----------------------------------------
1 1 1100010 1 0001101 0000  1
1 1 1100011 1 0001110 0000  2
1 1 1100100 1 0001111 0000  3
1 1 1100101 1 0010000 0000  4
1 1 1100110 1 0010001 0000  5
1 1 1100111 1 0010010 0000  6
1 1 1101000 1 0010011 0000  7
1 1 1101001 1 0010100 0000  8
1 1 1101010 1 0010101 0000  9
1 1 1101100 1 0010111 0000  0
1 1 0001100 1 0110111 0000  *
1 1 0001101 1 0111000 0000  #
1 1 1110000 1 0011011 0000  WeltTaste
1 1 1111001 1 0100100 0000  reward
1 1 1111010 1 0100101 0000  play
1 1 1111011 1 0100110 0000  forward
1 1 1111110 1 0101001 0000  pause
1 1 1110110 1 0100001 0000  step back
1 1 1111000 1 0100011 0000  step forward
1 1 1111101 1 0101000 0000  stop
1 1 1111100 1 0100111 0000  record
1 1 0000100 1 0101111 0000  info
1 1 1110101 1 0100000 0000  back
1 1 1100001 1 0001100 0000  p-
1 1 1100000 1 0001011 0000  p+
1 1 1010101 1 0000000 0000  mute
1 1 1011101 1 0001000 0000  v-
1 1 1011110 1 0001001 0000  v+
1 1 0001010 1 0110101 0000  blue
1 1 0001000 1 0110011 0000  green
1 1 0000111 1 0110010 0000  red
1 1 0001001 1 0110100 0000  yellow
1 1 1011001 1 0000100 0000  dvd menu
1 1 0000010 1 0101101 0000  video menu
1 1 1011010 1 0000101 0000  photo
1 1 1011011 1 0000110 0000  music
1 1 1110001 1 0011100 0000  livetv
1 1 1101101 1 0011000 0000  rectv
1 1 1101011 1 0010110 0000  text
1 1 0000110 1 0110001 0000  guide
1 1 1010111 1 0000010 0000  Power
-------------------------------------------
S T         T         GGGG

  1 2345678 1 2345678
  |-------| |-------|
    Byte1     Byte2


S = StartBit
T = ToggleBits (immer das erste Bit im Byte)
G = GeräteCode

Byte1 = Tastencode (denk ich mal)

Was ich über Byte2 bisher sagen kann:

Byte2 Bit2 = 0
Byte2 Bit3 = (!Byte1Bit2) && (!Byte1Bit3)


Gruß Sebastian

von JojoS (Gast)


Lesenswert?

ich habe diese FB auch und ebenfalls mal mit dem RFM dekodiert. Die Bits 
habe ich eingesammelt und zum PC geschickt und mit einer C# dekodiert:

                byte DeviceNr = (byte)(Bitcode & 0xf);
                byte cmd = (byte)((Bitcode & 0xff0) >> 4);
                byte crc = (byte)((Bitcode & 0xff000) >> 12);
                byte crc1 = (byte)(DeviceNr * 0x10 - 0x2b);
                byte c = (byte)(crc - cmd - crc1);

                int toggle = (cmd & 0x80) > 0 ? 1 : 0;
                cmd &= 0x7f;

Das passt fast zu deinen Daten, nur das erste Togglebit ist keines 
sondern gehört zur CRC.

Das ist bei mir aber schon lange her (02/2008) und weiss nicht mehr wie 
ich drauf gekommen bin und habe das auch nicht weiter kommentiert... Und 
weil ich dann eine Logitech Harmony One FB gekauft habe ist das Projekt 
eingeschlafen.

von Sebastian B. (begga)


Lesenswert?

Ah sehr schön danke!

Ich hab den Empfänger erst nur dazu gebaut um über die Fernbedienung das 
Mediacenter einzuschalten (uC hängt an der 5V Standby Leitung undes Atx 
Steckers). Dazu hätte ich nicht unbedingt den CRC Check gebraucht, aber 
man wenn man schon dabei ist, kann mans ja auch gleich richtig machen...

Hab die Treiber Software übrigens auch in c# geschrieben, als plugin für 
den DVB-Viewer, zusammen mit einer RTC lassen sich nun auch 
Aufnahmen-Timer so programmieren, dass sich das Mediacenter rechtzeitig 
einschaltet.
An die Harmony One hab ich auch schon gedacht (bisher schreckt mich der 
PReis noch ab). Aber für den Fall, hab ich extra ein Interrupt Pin für 
einen IR-Sensor freigelassen ;)

Gruß Sebastian

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.