Looking for help getting MCE remote to work with xbmc
#1
Hardware:
XBMCFreak 10.0 beta2 installed onto Zotac HD-ID11
IR Receiver
Harmony One Remote Control

Preface:
Previously, I had everything working under a Windows 7 install, remote included, but wanted the hardware accelerated decoding available in the ubuntu release. While I know my way around technology without an issue, I am new to the *nix OS language.

Problem:
I've gone through several forum posts and searches trying to get this working without success including trying to replace lirc_mceusb with mod_mce (don't know how). The IR Receiver purchased comes with a standard MCE remote, but I've never used it. I only wanted the MCE Receiver, since it was also equipped to handle input from an MCE Keyboard, so I remapped all of the buttons on my Harmony One to send out keypresses for the matched XBMC commands. (ie. [stop] button on remote sends an "x" keypress to IR receiver).

I attempted the walkthrough here, but was unable to proceed because my device isn't being listed when I issue a "cat /proc/bus/input/devices" command.

looking through dmesg via grep, the following lines appear related to my issue:
Code:
xbmc@XBMCLive:/dev$ dmesg | grep lirc_mceusb
[   12.043846] lirc_mceusb: Windows Media Center Edition USB IR Transceiver driver for LIRC 1.90
[   12.043857] lirc_mceusb: Daniel Melander <[email protected]>, Martin Blatter <[email protected]>, Dan Conti <[email protected]>
[   12.320551] lirc_mceusb[2]: Topseed Technology Corp. eHome Infrared Transceiver on usb3:2
[   12.320640] usbcore: registered new interface driver lirc_mceusb
[   32.304080] Modules linked in: snd_hda_codec_nvhdmi snd_hda_codec_realtek snd_hda_intel snd_pcm_oss snd_hda_codec snd_mixer_oss snd_hwdep snd_pcm snd_seq_dummy arc4 snd_seq_oss snd_seq_midi snd_rawmidi snd_seq_midi_event ath9k ath9k_common snd_seq ath9k_hw snd_timer snd_seq_device joydev ath lirc_mceusb mac80211 hid_sunplus snd lirc_dev nvidia(P) psmouse serio_raw cfg80211 vga16fb led_class coretemp soundcore vgastate snd_page_alloc lp parport usbhid hid vesafb r8169 fbcon tileblit font bitblit softcursor intel_agp mii agpgart
[12974.784892] lirc_mceusb[2]: usb remote disconnected
[13014.168088] lirc_mceusb[3]: Topseed Technology Corp. eHome Infrared Transceiver on usb3:3

Just based on experience, it looks like the eHome Infrared Transceiver is the device that I'm trying to use (since I unplugged it / plugged it back in, following the syntax).

Also, when I attempt to run "irw", I get
Code:
connect: Connection refused

Any help in getting this receiver working on my install would be greatly appreciated.

Thanks!
Reply
#2
I recommend setting your remote up as "Microsoft windows Media Center" in your Logitech Software.

next you need to get IRW working.... so reconfigure your Lirc as mceusb device
http://forum.xbmc.org/showthread.php?tid=65683

from there you SHOULD have a working remote.

if not try to uninstall lirc and reinstall it the new version supports the mceusb2 devices and mceusb in one profile

this setup is working flawlessly for me and I have several pages of custom buttons mapped out

-=Jason=-
Reply
#3
Harmony is already set up as an MCE, as it was working previously in my Windows 7 XBMC build.

Followed that post link, uninstalled lirc, reinstalled, selected Windows MCE for both, (selected Windows Media Center Transceivers/Remotes (all) for the Remote control configuration, and Microsoft Windows Media Center V2 (usb) : Direct TV Receiver for IR transmitter, per another post on these forums.

trying to run "irw" still gives the same error of
Code:
connect: Connection Refused
Reply
#4
one thing I notice is that if I run a "cat /proc/bus/input/devices", my IR Receiver isn't listed.
Reply
#5
the IR receiver is probbaly listed as keyboard /mouse = HID device. In this case you don't need lirc and it should still work in xbmc. Why it does not I dont know but you need to map keyb instead of remote key, and possibly you need to set the harmony differently.
Reply
#6
The following is the output from "cat /proc/bus/input/devices" with zero USB devices plugged in.

Code:
xbmc@XBMCLive:~$ cat /proc/bus/input/devices
I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=PNP0C0C/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input0
U: Uniq=
H: Handlers=kbd event0
B: EV=3
B: KEY=100000 0 0 0

I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=LNXPWRBN/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXPWRBN:00/input/input1
U: Uniq=
H: Handlers=kbd event1
B: EV=3
B: KEY=100000 0 0 0

I: Bus=0017 Vendor=0001 Product=0001 Version=0100
N: Name="Macintosh mouse button emulation"
P: Phys=
S: Sysfs=/devices/virtual/input/input2
U: Uniq=
H: Handlers=mouse0 event2
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=3

I: Bus=0001 Vendor=10ec Product=0888 Version=0001
N: Name="HDA Digital PCBeep"
P: Phys=card0/codec#2/beep0
S: Sysfs=/devices/pci0000:00/0000:00:1b.0/input/input7
U: Uniq=
H: Handlers=kbd event7
B: EV=40001
B: SND=6

When I plug in the USB IR Receiver, this list doesn't change, however the following lines show up in dmesg when I unplug / plugin the IR Receiver:
Code:
[12974.784892] lirc_mceusb[2]: usb remote disconnected
[13014.168088] lirc_mceusb[3]: Topseed Technology Corp. eHome Infrared Transceiver on usb3:3

P.S., thank you for the replies and help trying to get this working. It's the only thing left before it's fully setup.
Reply
#7
Ok, looks like it is not HID after all. Then I can only assume that linux do not have a driver for it. I had that problem with receiver that came with pinnacle tv card. I was never able to find a driver for it.
Reply
#8
Looks like an RC6 compatible remote - should work out of the box. The IR receiver shows up the same as mine using dmesg - that is - eHome Infrared Transceiver on usb3:3

Does the remote that came in the package work?

Is the correct USB port enabled?

Does the iso you are using have the .25 kernel?

My remote (which is basically the same) worked straight away - but I had to do some tweaks to get suspend working.
ZOTAC IONITX-D-E Intel Atom N330 Dual Core 1.6 GHz NVIDIA ION with LIVE on SSD (now updated to Nvidia Shield Pro (P2897)
Reply
#9
mm, but I am pretty sure it should show up in the list. Trying another kernal could be an idea.
Try standard xbmclive911 and dharmabeta.
Reply
#10
Since you've got an "eHome Infrared Transceiver" Getting your Harmony to work properly with xbmc takes 2 big steps.
1) install & properly configure lirc
2) make sure xbmc has the correct "Lircmap.xml" and "remote.xml" for your Harmony

Step 1:
Since lirc isn't working correctly (for whatever reason) you need to totally purge your system of the old lirc to make sure you start with an uncorrupted configuration.
Code:
sudo apt-get purge lirc
Double check to make sure any lirc configuration files you may have tweaked are also deleted.

Reinstall lirc
Code:
sudo apt-get install lirc
When the install gets to the lirc configuration window set your remote as "Windows MCE remote all" and your IR Transever as "None"

Reboot your system and try the "irw" command from a terminal.
Press your harmony buttons one at a time to make sure lirc recognizes them.
(this step is important, it also gives you the exact lirc-name of your remote and the lirc-button-names with the capitols in all the right places. best to copy & paste everything to a separate doc)
if yes... Your done, move on to step 2.
If no... reconfigure lirc
Code:
sudo dpkg-reconfigure lirc
choose your remote & reciever, OK your way out, reboot and try the irw command again.

Step 2:
Making sure you have the "Lircmap.xml" & "remote.xml" that works best with your Harmony.
This How-To gives a step by step explanation.
http://forum.xbmc.org/showthread.php?tid...mce+remote

Another good thread specifically for the Harmony
http://forum.xbmc.org/showthread.php?tid=67350

This thread has some useful commands for troubleshooting and checking your Lircmap.xml & remote.xml (obviously ignore his custom .xml's)
http://forum.xbmc.org/showpost.php?p=450821&postcount=2
Reply
#11
My Rosewell (also a "eHome Infrared Transceiver") IR remotes USB device ID wasn't included in the lirc source code, so lirc could never control it, I had to find another IR in the source code that was close, copy it's line, and replace the VEN and DEV ids with mine, then recompile. If you look through the source for MCE support in lirc you'll see that "eHome" buys from just about every vendor out there, and so compatibility is hit and miss.
I would run
Quote:lsusb
it will look something like this
Quote:Bus 003 Device 003: ID 147a:2812 eHome Infrared Transceiver
the ID 147a:2812 is your vendor and device ID.
Look to see if your at least your vendor is in this list.
Quote:#define VENDOR_PHILIPS 0x0471
#define VENDOR_SMK 0x0609
#define VENDOR_TATUNG 0x1460
#define VENDOR_GATEWAY 0x107b
#define VENDOR_SHUTTLE 0x1308
#define VENDOR_SHUTTLE2 0x051c
#define VENDOR_MITSUMI 0x03ee
#define VENDOR_TOPSEED 0x1784
#define VENDOR_RICAVISION 0x179d
#define VENDOR_ITRON 0x195d
#define VENDOR_FIC 0x1509
#define VENDOR_LG 0x043e
#define VENDOR_MICROSOFT 0x045e
#define VENDOR_FORMOSA 0x147a
#define VENDOR_FINTEK 0x1934
#define VENDOR_PINNACLE 0x2304
#define VENDOR_ECS 0x1019
#define VENDOR_WISTRON 0x0fb8
#define VENDOR_COMPRO 0x185b
#define VENDOR_NORTHSTAR 0x04eb
#define VENDOR_REALTEK 0x0bda
#define VENDOR_TIVO 0x105a

or check the output against the file here:Lirc CSV lirc_mceusb.c


my Rosewell showed up as "147a" so that would be FORMOSA
but my device ID was missing from the source Lirc CSV lirc_mceusb.c.

So I took this line from the source file lirc_mceusb.c on my harddrive
Quote:{ USB_DEVICE(VENDOR_FORMOSA, 0xe015) },
copied it, and created
Quote:{ USB_DEVICE(VENDOR_FORMOSA, 0xe2812) },

compiled, installed, and it worked.

It looks more complicated than it is, I found this link, it looks like they are doing about the same thing. Vista MCE Remote clone and LIRC

Check your own device and vendor ID against that source file link I posted, and see if it's there or not.
Using a NUC7PJYHN and a 2820FYKH0 Intel NUC running LibreELEC, and two FireTVs.:)
Reply
#12
thanks for all the help.

I followed the advice, and purged / reinstalled lirc, which seemed to work, as it was no accepting input from the original remote (had to dig around for it).

"irw" worked as well, and I hit every button, then copied the resulting keypress information into a text file for reference.

Now I'm going to follow those other two threads linked and see if I can't get the custom buttons working.

Question regarding the harmony one though, the one has the ability to map any key on the remote to any key/button from the remote that it's emulating, and I originally had it setup to emulate an MCE keyboard, so the remote could send keypresses instead of remote buttons. (ie, hitting [stop] on the remote wouldn't send the "stop" code, but the "x" code, as if using a keyboard) since the IR receiver has the capability of being used with an MCE keyboard as well as a remote.

Does the lirc that's installed and reading an mce remote not also have the capability of reading an mce keyboard as well?
Reply
#13
thats the problem you LIRC is for MCE REMOTE not keyboard.. so you need to send remote presses.

not a problem as any and every keyboard press has a = in remote code.

I am going to post some links for you as well as my remote.xml config

my thread on mapping addons to remote buttons
http://forum.xbmc.org/showthread.php?tid=81108

also in that thread several other helpful links.

here is a snip it of my remote.xml located in /.xbmc/userdata/keymaps.remote.xml
you notice I have a few custom buttons in my global list, but I am also using OBC to take advantage of my
"teletext" subtitle, audio, etc that are included in my logitech profile, but don't actually do anything when pressed. to get OBC working you need to make a Lirc.conf file and place it in your user data folder ~/.xbmc/userdata/Lirc.conf

Code:
<lircmap>
       <remote device="mceusb">
                <obc111>RecTV</obc111>
                <obc112>Teletext</obc112>
                <obc113>Aspect</obc113>
                <obc114>Radio</obc114>
                <obc115>BB2</obc115>
                <obc116>BB3</obc116>
                <obc117>Hash</obc117>
                <obc118>Star</obc118>
        </remote>

Code:
xbmc@XBMCLive:~$ cat .xbmc/userdata/keymaps/remote.xml
<!-- This file contains the mapping of keys (gamepad, remote, and keyboard) to actions within XBMC -->
<!-- The <global> section is a fall through - they will only be used if the button is not          -->
<!-- used in the current window's section.  Note that there is only handling                       -->
<!-- for a single action per button at this stage.                                                 -->
<!-- For joystick/gamepad configuration under linux/win32, see below as it differs from xbox       -->
<!-- gamepads.                                                                                     -->

<!-- The format is:                      -->
<!--    <device>                         -->
<!--      <button>action</button>        -->
<!--    </device>                        -->

<!-- To map keys from other remotes using the RCA protocol, you may add <universalremote> blocks -->
<!-- In this case, the tags used are <obc#> where # is the original button code (OBC) of the key -->
<!-- You set it up by adding a <universalremote> block to the window or <global> section:       -->
<!--    <universalremote>             -->
<!--       <obc45>Stop</obc45>         -->
<!--    </universalremote>            -->
<!-- To find out the OBC's of your remote, try enabling the <displayremotecodes> tag in AdvancedSettings.xml -->

<!-- Note that the action can be a built-in function.                 -->
<!--  eg <B>XBMC.ActivateWindow(MyMusic)</B>                         -->
<!-- would automatically go to My Music on the press of the B button. -->

<!-- Joysticks / Gamepads:                                                                    -->
<!--   See the sample PS3 controller configuration below for the format.                      -->
<!--                                                                                          -->
<!--  Joystick Name:                                                                          -->
<!--   Do 'cat /proc/bus/input/devices' or see your xbmc log file  to find the names of       -->
<!--   detected joysticks. The name used in the configuration should match the detected name. -->
<!--                                                                                          -->
<!--  Button Ids:                                                                             -->
<!--   'id' is the button ID used by SDL. Joystick button ids of connected joysticks appear   -->
<!--   in xbmc.log when they are pressed. Use your log to map custom buttons to actions.      -->
<!--                                                                                          -->
<!--  Axis Ids / Analog Controls                                                              -->
<!--   Coming soon.                                                                           -->
<keymap>
  <global>
    <remote>
      <play>Play</play>
      <pause>Pause</pause>
      <stop>Stop</stop>
      <forward>FastForward</forward>
      <reverse>Rewind</reverse>
      <left>Left</left>
      <right>Right</right>
      <up>Up</up>
      <down>Down</down>
      <select>Select</select>
      <enter>FullScreen</enter>
      <pageplus>PageUp</pageplus>
      <pageminus>PageDown</pageminus>
      <back>ParentDir</back>
      <menu>PreviousMenu</menu>
      <title>ContextMenu</title>
      <info>Info</info>
      <skipplus>SkipNext</skipplus>
      <skipminus>SkipPrevious</skipminus>
      <display>FullScreen</display>
      <start>PreviousMenu</start>
      <record>Screenshot</record>
      <volumeplus>VolumeUp</volumeplus>
      <volumeminus>VolumeDown</volumeminus>
      <mute>Mute</mute>
      <power>XBMC.ShutDown()</power>
      <myvideo>XBMC.ActivateWindow(VideoLibrary,MovieTitles)</myvideo>
      <mymusic>XBMC.ActivateWindow(MyMusic)</mymusic>
      <mypictures>XBMC.ActivateWindow(MyPictures)</mypictures>
      <mytv>XBMC.ActivateWindow(VideoLibrary,TvShowTitles)</mytv>
      <red>OnClick(14)</red>
      <green>XBMC.ActivateWindow(MyVideos)</green>
      <yellow>XBMC.ActivateWindow(ToggleFullscreen)</yellow>
      <blue>XBMC.ActivateWindow(ShutDownMenu)</blue>
      <zero>Number0</zero>
      <one>Number1</one>
      <two>JumpSMS2</two>
      <three>JumpSMS3</three>
      <four>JumpSMS4</four>
      <five>JumpSMS5</five>
      <six>JumpSMS6</six>
      <seven>JumpSMS7</seven>
      <eight>JumpSMS8</eight>
      <nine>JumpSMS9</nine>
      <ChanUp>PageDown</ChanUp>
      <ChanDown>PageUp</ChanDown>
    </remote>
        <universalremote>
                <obc111>XBMC.ActivateWindow(10024,plugin://plugin.video.youtube.beta/)</obc111>
                <obc112>RunScript(script.audio.grooveshark)</obc112>
                <obc113>RunScript(script.games.rom.collection.browser)</obc113>
                <obc114>XBMC.ActivateWindow(10025,addons://sources/video/)</obc114>
                <obc115>RunScript(script.xbmc.pandora)</obc115>
                <obc116>XBMC.ActivateWindow(MusicVideoTitles)</obc116>
                <obc117>Hash</obc117>
                <obc118>Star</obc118>

        </universalremote>
  </global>
Reply
#14
okay, so the lirc profile i'm currently using only accepts input codes from an mce remote.

I did some searching and found http://mod-mce.sourceforge.net/, which looks like it combines both the mce remote & mce keyboard and allows for input for both.

Would I be able to somehow replace the existing lirc with this one and get both capabilities?

Not ignoring your advice, as I'm gonna go through and remap my harmony buttons tonight for the remote instead of the keyboard as a stop gap, but I'd just like to know for my own knowledge if it's possible to at least get the IR Receiver / lirc to receive the remote codes for both an mce remote & mce keyboard, then I can play around with the mapping later.

Thanks!
Reply

Logout Mark Read Team Forum Stats Members Help
Looking for help getting MCE remote to work with xbmc0