Thursday, 29 July 2010

Remote Control

I eventually gave up on the idea of trying to prod the serial port on my Astro STB and bought a cheap IR transceiver from some guy in Hong Kong via ebay. My first attempts at learning the remote codes were frustrating - irrecord complained about something being wrong after incorrectly guessing the settings, and when I finally got some codes learned, I found that a lot of the buttons had the same code, so 2, 6 and 8 were all being detected as KEY_2. Eventually I started trying to manually configure the basic settings based on some of the standard protocols, and eventually hit on RCMM-32, which learned all the codes and can reliably detect them when I press the buttons on the remote.

So now the codes are learned, along with the codes for the extra buttons for controlling a Panasonic DVD player on the bottom of my TV remote, which have now found a use giving basic control of Freevo in case the wireless keyboard, bluetooth equipped mobile phone or one of many wifi equipped gadgets is not close at hand.

Next step is to go the other way and send the codes out to the STB. The transceiver doesn't seem to be sending anything out at all. I still haven't narrowed down the problem, it may be a faulty IR LED, or an incompatibility between the transceiver (MCEUSB gen 1) and the software driving it (LIRC 0.86). Now that I have the remote codes, it might also be a good time to go back to trying the serial link, but that'll have to wait for another night. For now, I'll just post up the Astro remote codes, in case anyone else is struggling to get them working with LIRC.

# brand:                       ASTRO
# model no. of remote control: 
# devices being controlled by this remote:
#   Astro Satellite Decoder STB (Malaysia) [Philips DSR4201/68]

begin remote

  name  ASTRO
  bits            8
  eps             2
  aeps          100

  header        417   278
  three         167   778
  two           167   611
  one           167   444
  zero          167   278
  ptrail        167
  pre_data_bits   24
  pre_data       0x225027
  gap          99817
  toggle_bit_mask 0x0

      begin codes
          KEY_0                    0x00
          KEY_1                    0x01
          KEY_2                    0x02
          KEY_3                    0x03
          KEY_4                    0x04
          KEY_5                    0x05
          KEY_6                    0x06
          KEY_7                    0x07
          KEY_8                    0x08
          KEY_9                    0x09
          KEY_RED                  0x6D
          KEY_GREEN                0x6E
          KEY_YELLOW               0x6F
          KEY_BLUE                 0x70
          KEY_KPASTERISK           0xF6
          KEY_TEXT                 0x3C
          KEY_MENU                 0x54
          KEY_SHOP                 0xAA
          KEY_EXIT                 0x83
          KEY_BACK                 0xA9
          KEY_EPG                  0xCC
          KEY_INFO                 0x0F
          KEY_UP                   0x58
          KEY_DOWN                 0x59
          KEY_LEFT                 0x5A
          KEY_RIGHT                0x5B
          KEY_OK                   0x5C
          KEY_VOLUMEUP             0x10
          KEY_VOLUMEDOWN           0x11
          KEY_CHANNELUP            0x20
          KEY_CHANNELDOWN          0x21
          KEY_AUDIO                0x4E
          KEY_SUBTITLE             0x4B
          KEY_MUTE                 0x0D
          KEY_MAIL                 0xF3
          KEY_FAVORITES            0x84
          KEY_HELP                 0x81
          KEY_POWER                0x0C
      end codes

end remote


Anonymous said...

Hi Jason
I just want to tell you that I used your lirc.conf for the Phillips remote and i am very happy that I found your blog, thank you very much.

Anonymous said...

Can dsr4201 controlling dvb850s decoder? TQ

Jason Rumney said...

I haven't found any way for the dsr4201 to control or be controlled by anything.