Linux HOW-TO setup a working configuration for the MS Xbox 360 Universal & Media Remote
#1
Edit: Update 5 Jan 2013

BASH script to automate the process

http://pastebin.com/TWuBCtJR (pastebin sitcks a bunch of carriage returns into the script and messed it up)

This should be better http://crunchbanglinux.org/pastebin/2230

This configuration will also work for the new Xbox-360 Media remote


-----------------------------------------------------------------------------------


Configuring this device was very difficult for me as I had no understanding of the particulars required. I hope this helps someone so they dont have to spend the many hours making these files. Why these type of things aren't made easier is beyond me. I had no desire to spend so much time to get a remote working to simply watch a movie.

Not EVERY button is used. I did not map the YXAB buttons for example (haven't decided what I want them to do yet.). Feel free to map them however you want.

Anyway, This is not a how to, its simply a way to get your remote working without knowing any of the details. I have done the work for you and all you will need to do is place these files in the correct place.

However there are a few things that are assumed.

1. You have a working install of lirc
2. You know how to navigate to hidden directories (.xbmc) in Linux.
3. You know how to make changes as root.
4. You may have to restart lirc to make the changes take affect (sudo /etc/init.d/lirc restart)

In some cases these files may not even exist, Simply create them if thats the case.
If these files are already on your system you can rename them to accommodate the new ones.

/etc/lirc/hardware.conf

Code:
# /etc/lirc/hardware.conf
#
#Chosen Remote Control
REMOTE="Microsoft_Xbox360"
REMOTE_MODULES=""
REMOTE_DRIVER=""
REMOTE_DEVICE=""
REMOTE_LIRCD_CONF=""
REMOTE_LIRCD_ARGS=""

#Chosen IR Transmitter
TRANSMITTER="None"
TRANSMITTER_MODULES=""
TRANSMITTER_DRIVER=""
TRANSMITTER_DEVICE=""
TRANSMITTER_LIRCD_CONF=""
TRANSMITTER_LIRCD_ARGS=""

#Enable lircd
START_LIRCD="true"

#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD="false"

#Try to load appropriate kernel modules
LOAD_MODULES="true"

# Default configuration files for your hardware if any
LIRCMD_CONF=""

#Forcing noninteractive reconfiguration
#If lirc is to be reconfigured by an external application
#that doesn't have a debconf frontend available, the noninteractive
#frontend can be invoked and set to parse REMOTE and TRANSMITTER
#It will then populate all other variables without any user input
#If you would like to configure lirc via standard methods, be sure
#to leave this set to "false"
FORCE_NONINTERACTIVE_RECONFIGURATION="false"
START_LIRCMD=""

/etc/lirc/lircd.conf

Code:
# TV button sends no signal and toggles Xbox 360/TV mode. TV mode can be
# signals for any device the remote supports. Volume Up, Volume Down and
# Mute always use the TV mode while the Xbox live guide button always sends
# to the xbox.

begin remote

  name  Microsoft_Xbox360
  bits           13
  flags RC6|CONST_LENGTH
  eps            30
  aeps          100

  header       2682   906
  one           438   451
  zero          438   451
  pre_data_bits   24
  pre_data       0x1BFF80
  gap          107066
  toggle_bit_mask 0x8000
  rc6_mask    0x100000000


      begin codes
          OpenClose                0x8BD7
          XboxFancyButton          0x0B9B
          OnOff                    0x8BF3
          Stop                     0x0BE6
          Pause                    0x8BE7
          Rewind                   0x0BEA
          FastForward              0x8BEB
          Prev                     0x0BE4
          Next                     0x8BE5
          Play                     0x0BE9
          Display                  0x8BB0
          Title                    0x0BAE
          DVD_Menu                 0x8BDB
          Back                     0x0BDC
          Info                     0x8BF0
          UpArrow                  0x0BE1
          LeftArrow                0x8BDF
          RightArrow               0x0BDE
          DownArrow                0x8BE0
          OK                       0x0BDD
          Y                        0x8BD9
          X                        0x0B97
          A                        0x8B99
          B                        0x0BDA
          PgDown                   0x0B92
          PgUp                     0x0B93

          VolDown              0x0bee
          VolUp                0x0bef
      Mute               0x0bf1
      TV                       0x0bb9

          Start                    0x0BF2
          Play                     0x8BE9
          Enter                    0x0BF4
          Record                   0x8BE8
          Clear                    0x0BF5
          1                        0x8BFE
          2                        0x0BFD
          3                        0x8BFC
          4                        0x0BFB
          5                        0x8BFA
          6                        0x0BF9
          7                        0x8BF8
          8                        0x0BF7
          9                        0x8BF6
          100                      0x0BE2
          0                        0x8BFF
          Reload                   0x8BE3
      end codes

end remote

/home/USER/.xbmc/userdata/Keymap.xml

Code:
<keymap>
    <global>
        <remote>
            <left>Left</left>
            <right>Right</right>
            <up>Up</up>
            <down>Down</down>
            <select>Select</select>
            <back>ParentDir</back>
            <forward>FastForward</forward>
                  <reverse>Rewind</reverse>
            <play>Play</play>
                  <pause>Pause</pause>
                  <stop>Stop</stop>
            <mute>Mute</mute>
            <pageplus>PageUp</pageplus>
                  <pageminus>PageDown</pageminus>
            <volumeplus>VolumeUp</volumeplus>
                  <volumeminus>VolumeDown</volumeminus>
            <zero>Number0</zero>
            <one>Number1</one>
            <two>Number2</two>
            <three>Number3</three>
            <four>Number4</four>
            <five>Number5</five>
            <six>Number6</six>
            <seven>Number7</seven>
            <eight>Number8</eight>
            <nine>Number9</nine>
            <power>XBMC.ShutDown()</power>
            <skipplus>SkipNext</skipplus>
            <skipminus>SkipPrevious</skipminus>
            <display>FullScreen</display>
            <record>Screenshot</record>
            <start>XBMC.ActivateWindow(PlayerControls)</start>
            <info>Info</info>
        </remote>
    </global>
</keymap>

home/USER/.xbmc/userdata/Lircmap.xml

Code:
        <lircmap>
            <remote device="Microsoft_Xbox360">
                <left>LeftArrow</left>
                <right>RightArrow</right>
                <up>UpArrow</up>
                <down>DownArrow</down>
                <select>OK</select>
                <back>Back</back>
                <forward>FastForward</forward>
                      <reverse>Rewind</reverse>
                <play>Play</play>
                <pause>Pause</pause>
                      <stop>Stop</stop>
                <volumeplus>VolUp</volumeplus>
                <volumeminus>VolDown</volumeminus>
                <mute>Mute</mute>
                <pageminus>PgDown</pageminus>
                <pageplus>PgUp</pageplus>
                <zero>0</zero>
                <one>1</one>
                <two>2</two>
                <three>3</three>
                <four>4</four>
                <five>5</five>
                <six>6</six>
                <seven>7</seven>
                <eight>8</eight>
                <nine>9</nine>
                <power>OnOff</power>
                <skipplus>Next</skipplus>
                <skipminus>Prev</skipminus>
                <display>Display</display>
                <record>Record</record>
                <start>Start</start>
                <info>Info</info>
            </remote>
</lircmap>

This is the remote I have. It can be bought at Walmart or BestBuy for $20
Image
Image
Reply
#2
I have this remote and the settings in this file still don't work.

Does anyone know how I can further debug? Is there an lirc application that can monitor your calls to see what is coming across?

Some type of infrared sniffer?

ScAndal
Reply
#3
ScAndal Wrote:I have this remote and the settings in this file still don't work.

Does anyone know how I can further debug? Is there an lirc application that can monitor your calls to see what is coming across?

Some type of infrared sniffer?

ScAndal
yes, just execute "irw" while lircd is running (as a daemon or in another console)
Reply
#4
Just a quick question, does this come with a USB IR receiver, or would I need to find one of those as well as the remote?
Reply
#5
pumkinut Wrote:Just a quick question, does this come with a USB IR receiver, or would I need to find one of those as well as the remote?

No you need the IR reciever.

I'm no expert - but what i've read is this controller sends in IR Version6
and xbox1 is in version.

Feel free to correct me if im wrong. cause id love to get this remote working with xbox1
Reply
#6
pumkinut Wrote:Just a quick question, does this come with a USB IR receiver, or would I need to find one of those as well as the remote?

I just bought the IR receiver IR605A and the Xbox 360 Universal Remote and got it working on my Asrock 330 ION with Ubuntu Jaunty after following these instructions https://help.ubuntu.com/community/Instal...%20remotes . To add the IR605A receiver add the follow lines in lirc_mceusb2.c befor rebuilding.

/* Formosa Industrial Computing / IR605A */
{ USB_DEVICE(VENDOR_FORMOSA, 0xe03c) },

PS! The device may have been added to later versions of LIRC. I'm using 0.8.4.
Reply
#7
With the most recent LIVE version 9.11 I had to make a few adjustments.

Here are some updated files that work for me.

/etc/lirc/hardware.conf

Code:
# /etc/lirc/hardware.conf
#
#Chosen Remote Control
REMOTE="Microsoft_Xbox360"
REMOTE_MODULES=""
REMOTE_DRIVER=""
REMOTE_DEVICE="/dev/lirc0"
REMOTE_LIRCD_CONF=""
REMOTE_LIRCD_ARGS=""

#Chosen IR Transmitter
TRANSMITTER="None"
TRANSMITTER_MODULES=""
TRANSMITTER_DRIVER=""
TRANSMITTER_DEVICE=""
TRANSMITTER_LIRCD_CONF=""
TRANSMITTER_LIRCD_ARGS=""

#Enable lircd
START_LIRCD="true"

#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD="false"

#Try to load appropriate kernel modules
LOAD_MODULES="true"

# Default configuration files for your hardware if any
LIRCMD_CONF=""

#Forcing noninteractive reconfiguration
#If lirc is to be reconfigured by an external application
#that doesn't have a debconf frontend available, the noninteractive
#frontend can be invoked and set to parse REMOTE and TRANSMITTER
#It will then populate all other variables without any user input
#If you would like to configure lirc via standard methods, be sure
#to leave this set to "false"
FORCE_NONINTERACTIVE_RECONFIGURATION="false"
START_LIRCMD=""


/home/USER/.xbmc/userdata/Keymap.xml

Code:
<keymap>
    <global>
        <remote>
            <left>Left</left>
            <right>Right</right>
            <up>Up</up>
            <down>Down</down>
            <select>Select</select>
            <back>ParentDir</back>
            <forward>FastForward</forward>
                  <reverse>Rewind</reverse>
            <play>Play</play>
                  <pause>Pause</pause>
                  <stop>Stop</stop>
            <mute>Mute</mute>
            <pageplus>PageUp</pageplus>
                  <pageminus>PageDown</pageminus>
            <volumeplus>VolumeUp</volumeplus>
                  <volumeminus>VolumeDown</volumeminus>
            <zero>Number0</zero>
            <one>Number1</one>
            <two>Number2</two>
            <three>Number3</three>
            <four>Number4</four>
            <five>Number5</five>
            <six>Number6</six>
            <seven>Number7</seven>
            <eight>Number8</eight>
            <nine>Number9</nine>
            <power>XBMC.ShutDown()</power>
            <skipplus>SkipNext</skipplus>
            <skipminus>SkipPrevious</skipminus>
            <display>FullScreen</display>
            <record>Screenshot</record>
            <start>XBMC.ActivateWindow(PlayerControls)</start>
            <info>Info</info>
            <menu>ContextMenu</menu>
            <myvideo>myvideo</myvideo>
            <mymusic>mymusic</mymusic>
            <mypictures>mypictures</mypictures>
            <hash>AspectRatio</hash>
            <clear>ZoomIn</clear>
            <myTV>ZoomOut</myTV>
        </remote>
    </global>
</keymap>

/etc/lirc/lircd.conf


Code:
# this config file was automatically generated
#
#
# contributed by Kyle at shadowmage.org
#
# brand: Microsoft
# model no. of remote control: Xbox 360 Universal Media Remote
# devices being controlled by this remote: Xbox 360
#
# This probably works for the normal Xbox 360 remote too.
#
# TV button sends no signal and toggles Xbox 360/TV mode. TV mode can be
# signals for any device the remote supports. Volume Up, Volume Down and
# Mute always use the TV mode while the Xbox live guide button always sends
# to the xbox.

begin remote

  name  Microsoft_Xbox360
  bits           13
  flags RC6|CONST_LENGTH
  eps            30
  aeps          100

  header       2682   906
  one           438   451
  zero          438   451
  pre_data_bits   24
  pre_data       0x1BFF80
  gap          107066
  toggle_bit_mask 0x8000
  rc6_mask    0x100000000


      begin codes
          OpenClose                0x8BD7
          XboxFancyButton          0x0B9B
          OnOff                    0x8BF3
          Stop                     0x0BE6
          Pause                    0x8BE7
          Rewind                   0x0BEA
          FastForward              0x8BEB
          Prev                     0x0BE4
          Next                     0x8BE5
          Play                     0x0BE9
          Display                  0x8BB0
          Title                    0x0BAE
          DVD_Menu                 0x8BDB
          Back                     0x0BDC
          Info                     0x8BF0
          UpArrow                  0x0BE1
          LeftArrow                0x8BDF
          RightArrow               0x0BDE
          DownArrow                0x8BE0
          OK                       0x0BDD
          Y                        0x8BD9
          X                        0x0B97
          A                        0x8B99
          B                        0x0BDA
          PgDown                   0x0B92
          PgUp                     0x0B93

          VolDown              0x0bee
          VolUp                0x0bef
      Mute               0x0bf1
      TV                       0x0bb9

          Start                    0x0BF2
          Play                     0x8BE9
          Enter                    0x0BF4
          Record                   0x8BE8
          Clear                    0x0BF5
          1                        0x8BFE
          2                        0x0BFD
          3                        0x8BFC
          4                        0x0BFB
          5                        0x8BFA
          6                        0x0BF9
          7                        0x8BF8
          8                        0x0BF7
          9                        0x8BF6
          100                      0x0BE2
          0                        0x8BFF
          Reload                   0x8BE3
      end codes

end remote



home/USER/.xbmc/userdata/Lircmap.xml

Code:
        <lircmap>
            <remote device="Microsoft_Xbox360">
                <left>LeftArrow</left>
                <right>RightArrow</right>
                <up>UpArrow</up>
                <down>DownArrow</down>
                <select>OK</select>
                <back>Back</back>
                <forward>FastForward</forward>
                      <reverse>Rewind</reverse>
                <play>Play</play>
                <pause>Pause</pause>
                      <stop>Stop</stop>
                <volumeplus>VolUp</volumeplus>
                <volumeminus>VolDown</volumeminus>
                <mute>Mute</mute>
                <pageminus>PgDown</pageminus>
                <pageplus>PgUp</pageplus>
                <zero>0</zero>
                <one>1</one>
                <two>2</two>
                <three>3</three>
                <four>4</four>
                <five>5</five>
                <six>6</six>
                <seven>7</seven>
                <eight>8</eight>
                <nine>9</nine>
                <power>OnOff</power>
                <skipplus>Next</skipplus>
                <skipminus>Prev</skipminus>
                <display>Display</display>
                <record>Record</record>
                <start>Start</start>
                <info>Info</info>
                <menu>DVD_Menu</menu>
                <myvideo>Y</myvideo>
                <mymusic>X</mymusic>
                <mypictures>A</mypictures>
                <hash>B</hash>
                <clear>Clear</clear>
                <myTV>Enter</myTV>
            </remote>
</lircmap>
Reply
#8
If I am using a XBOX 360 Universal Remote and USBUIRT(/dev/ttyUSB0) as the reciever is that all I have to change in the hardware.conf file?
so instead of
Code:
REMOTE_DEVICE="/dev/lirc0"
I use
Code:
REMOTE_DEVICE="/dev/ttyUSB0"
right?

Would there be any other changes to your conf files when using a USBUIRT as a reciever?
This is the last step before I am 100 % using this on my Acer Revo..
Thanks
Reply
#9
Thanks.. i got it working using the Xbox360 remote and a Microsoft IR reviever using your conf. and xml files.. thanks!
Reply
#10
Great guide FishOil

Thanks A Million!

One question though, with this set-up what remote button opens the Context Menu?

I have looked though the files and thought it was going to be the "DVD Menu" button but that only returns me to the home screen. I am running XBMC-Live SVN March 1st on Ubuntu 9.10 64x Minimal Install.
Reply
#11
Use the updated versions in this post. That should do it.

Its DVD Menu for context menu
Reply
#12
I had used the updated config already, I found the fix though:

I had to move Keymap.xml from

/home/USER/.xbmc/userdata/
to
/home/USER/.xbmc/userdata/keymaps/

Now Context Menu works as it is supposed to!!

Hopefully this will be helpful for others!
Reply
#13
I have serached but found no results.

Has anyone managed to get a xbox360 remote working in Windows XP?
Reply
#14
I have the "regular" Xbox 360 remote, but I can't get it to work. I don't see why it shouldn't. =/ I use the updated versions of the files in this topic.
I have an Acer MCE remote that's working fine (the only problem being that the build quality of the remote sucks, so I really want to use my Xbox 360 remote).
I run XBMC Live 9.11.

If i run the command "irw" i get this when I use the remote:
000000037ff00be1 00 UpArrow Microsoft_Xbox360
000000037ff00bde 00 RightArrow Microsoft_Xbox360
000000037ff00be9 00 Play Microsoft_Xbox360
000000037ff00be6 00 Stop Microsoft_Xbox360

But nothing happens in XBMC.

Does anyone have any idea why it won't work?

Edit:
It's working now. Smile I just turned off and on the whole system, and then it suddenly worked. Apparently it wasn't enough to just restart the lirc.
Reply
#15
thx for the config-files from post#7, they helped me a lot.

I just wanted to add, that I had to follow this guide http://forum.xbmc.org/showpost.php?p=505280&postcount=2 to get the X,Y,B,A buttons on my small x360 remote to work.
Reply

Logout Mark Read Team Forum Stats Members Help
HOW-TO setup a working configuration for the MS Xbox 360 Universal & Media Remote1