VRC-1100 Ortek Technology MCE Clone Remote
The VRC-1100 Ortek Vista MCE Remote is an inexpensive media center remote control that is bought at various retailers online. This remote includes a built in mouse. Out of the box everything seems to functions except programming the buttons can be kind of a pain, as it is detected as a wireless keyboard and mouse and is not detected by lircd, if you want to get this remote detected in lircd then read on.
There are two sets of instructions here. The first set gets the remote control working using `lircd`, the second set makes use of `inputlircd`, which has some advantages / disadvantages. For an alternate setup which does not use lirc, see Adesso ARC-1100 which is a rebranded clone of the Ortek VRC-1100.
Contents
lircd setup
The pages that helped me get this remote working were from [1], [2], and [3]
I wrote this as the information to get this working was a little scattered and outdated, if you follow these instructions your ortek remote will be recognized by lircd and MythTv however a few buttons still dont work. See the issues at the bottom of this page.
Getting Lircd to see it
1. First we need a different version of lircd.conf so backup your original
sudo cp /etc/lirc/lircd.conf /etc/lirc/lircd.conf.backup
then download this version that has been made to work with devinput
wget http://lirc.sourceforge.net/remotes/devinput/lircd.conf.devinput
then copy this over the old version (make sure you back it up incase you need it latter on
sudo cp lircd.conf.devinput /etc/lirc/lircd.conf
2.
Now your going to need to know what devices your remote uses, there should be two
so in a console type
cat /proc/bus/input/devices
the output will be something like
I: Bus=0003 Vendor=05a4 Product=9881 Version=0110 N: Name="HID 05a4:9881" P: Phys=usb-0000:00:04.0-1/input0 S: Sysfs=/devices/pci0000:00/0000:00:04.0/usb3/3-1/3-1:1.0/input/input3 U: Uniq= H: Handlers=sysrq kbd event3 B: PROP=0 B: EV=120013 B: KEY=e080ffdf 1cfffff ffffffff fffffffe B: MSC=10 B: LED=7 I: Bus=0003 Vendor=05a4 Product=9881 Version=0110 N: Name="HID 05a4:9881" P: Phys=usb-0000:00:04.0-1/input1 S: Sysfs=/devices/pci0000:00/0000:00:04.0/usb3/3-1/3-1:1.1/input/input4 U: Uniq= H: Handlers=kbd mouse0 event4 B: PROP=0 B: EV=17 B: KEY=1f0000 0 2020000 3878 d801d001 1e0000 0 0 0 B: REL=103 B: MSC=10
you need to scroll the list looking for your remote this is identified by the ''N: Name="HID 05a4:9881"'' line.
If you cant find "05a4:9881" then type in a console
lsusb
and find your ortek remote mine is shown below
Bus 003 Device 002: ID 05a4:9881 Ortek Technology, Inc.
once your have the identifier number redo the ''cat /proc/bus/input/devices'' like above
3.
Ok so once you have identified your devices from ''cat /proc/bus/input/devices''
you need to find the ''P: Phys='' line. From my example above the lines im looking for is
Phys=usb-0000:00:04.0-1/input0 Phys=usb-0000:00:04.0-1/input1
4. now we have are device phsical addess, now its time to configure our hardware.conf. If you are running ubuntu and installed lircd with apt-get then your hardware.conf will be located at '/etc/lirc/hardware.conf'
sudo nano /etc/lirc/hardware.conf
now you will need to make you hardware.conf look like the following but be sure to change the ''REMOTE_DEVICE='' line to reflect what you got from above
# /etc/lirc/hardware.conf # #Chosen Remote Control REMOTE="None" REMOTE_MODULES="" REMOTE_DRIVER="devinput" REMOTE_DEVICE="phys="usb-0000:00:04.0-1/input0"" REMOTE_SOCKET="/dev/lircd" REMOTE_LIRCD_CONF="/etc/lirc/lircd.conf" REMOTE_LIRCD_ARGS="" #Chosen IR Transmitter TRANSMITTER="None" TRANSMITTER_MODULES="" TRANSMITTER_DRIVER="devinput" TRANSMITTER_DEVICE="phys="usb-0000:00:04.0-1/input1"" TRANSMITTER_SOCKET="/dev/lircd" TRANSMITTER_LIRCD_CONF="/etc/lirc/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=""
now restart lircd
sudo /etc/init.d/lirc restart
now type irw in a console, on some systems you might need to specify the socket ''/dev/lircd'' this will be in hardware.conf under the ''REMOTE_SOCKET= line
irw
or
irw /dev/lircd
Press some buttons on your remote and you should see some output
if not then something else is wrong with your setup, go back and make sure you have followed the instructions
5.
So now if lirc has succefully recognized your remote (verified by using irw) all that is left to do is generate key mapping for mythtv
you could do this by running, but read below.
mythbuntu-lirc-generator
but it has some bugs (you should try mine below), it miss's some keys and makes duplicates
I tried this but then I ended up editing the completed file almost entirely, this is what I ended up with.
My lircrc file
This file needs to be placed in the file ''/.lirc/mythtv'' located in the home directory of the user that mythtv runs under. Just look around for a folder named ''.lirc'' (the period means its a hidden folder) that contains some files named mythtv, mplayer, xine, vlc, and so on, if you dont have a ''.lirc'' folder anywhere then create it. Then create the mythtv file inside of it(you can place application specific files within this folder) and paste in the contents below. You will need to add the following line to ~/.lircrc: ''include ~/.lirc/mythtv''. Create ~/.lircrc if it does not already exist.
Feel free to edit this file how ever you want it pretty simple, the remote = line is the driver listed in irw, the last part when you press a button button = is what key was pressed on the remote config = is what key to send to mythtc this can also contain combos like CTRL+R and ALT+Esc, besure to capitalize the CTRL and ALT parts
This file isnt 100% Please read the issues at the end, if you know how to fix any of these problem the please edit this wiki.
# LIRCRC Auto Generated by Mythbuntu Lirc Generator # Author(s): Mario Limonciello, Nick Fox, John Baab # Created for use with Mythbuntu begin remote = devinput prog = mythtv button = KEY_KP0 config = 0 repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_KP1 config = 1 repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_KP2 config = 2 repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_KP3 config = 3 repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_KP4 config = 4 repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_KP5 config = 5 repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_KP6 config = 6 repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_KP7 config = 7 repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_KP8 config = 8 repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_KP9 config = 9 repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_BACKSPACE config = Backspace repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_F4 config = Escape repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_PAGEDOWN config = Down repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_PAGEUP config = Up repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_DOWN config = Down repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_ENTER config = Return repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_ESC config = Escape repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_F config = > repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_NEXTSONG config = N repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_HOMEPAGE config = M repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_LEFT config = Left repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_META config = M repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_MUTE config = | repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_PLAYPAUSE config = P repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_R config = R repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_B config = < repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_RIGHT config = Right repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_STOPCD config = S repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_UP config = Up repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_VOLUMEDOWN config = [ repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_VOLUMEUP config = ] repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_PREVIOUSSONG config = B repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_O config = Q repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_T config = Z repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_M config = F repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_I config = Y repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_E config = T repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_SLEEP config = U repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_KPASTERISK config = O repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_G config = S repeat = 0 delay = 0 end
Issues
A couple problems I'm still having with this remote is some of the buttons still don't work, although it is better than what it was before.
- Info button is not detected at all
- Some button cannot be assigned in mythtv because they send multiple keypress' to mythtv, button they have this problem are
- Start button
- Pound button
- Blue, Red, and Green
Example of issue When start button is pushed
000000008001007d 00 KEY_LEFTMETA devinput 0000000080010038 00 KEY_LEFTALT devinput 000000008001001c 00 KEY_ENTER devinput
each of these buttons are sent to lircd as if they where pushed individually
Note: For buttons which generate multiple keypresses, you can still get lircd to handle those and map them to single keyboard events - like this:
begin remote = devinput prog = mythtv button = KEY_CTRL button = KEY_SHIFT button = KEY_T config = ....
I did this for other programs rather than MythTV, but I think it should work the same in principle. There's also the inputlircd approach achieves this as well.
I do not take credit for this im just simply putting it somewhere that is easy to find, as it took me awhile to find this info, also this is my first wiki entry ever so please forgive any errors
XF86Audio<action> buttons
The XF86Audio buttons are not added at this point in time. These can be made available by using xmodmap. An example can be found in the Gyration-based MCE Remotes entry.
inputlircd setup
Comparison to lircd setup
I initially set up my MythBox to use lircd directly. This worked fairly well - however, I wanted to get the remote control working with XBMC following instructions here, which suggests using inputlirc. After experimenting with it for a bit, I decided that I preferred to use inputlircd instead.
Disadvantages? Using inputlircd seems to stop the mouse control button from working. I'm not sure there's anything that can be done about that.
Advantages? It combines multiple keypresses together (for the coloured keys, for example). The Info button also gets picked up (it generates the same event as the right mouse click button).
Configuration
You just need to follow these instructions; specifically the first two sections ("UDev rule" and "Lirc installation").
In my experience on getting this to work on my Xubuntu 11,10 box, there were a few differences from these instructions (YMMV):
- lircd recognises my devices as /dev/input/irremote0 rather than irremote0. When you run "irw", you should be able to find out what name that "lircd" uses for it.
- Restarting some services didn't work as expected initially - running irw seemed to fail initially, and I had to restart to then get it working.
I haven't got a full lircrc file which takes advantage of the extra buttons yet - you can still use the file mentioned above, and do a find/replace changing "devinput" to either "irremote0" or "/dev/input/irremote0" (which is what I'm currently doing). I'll add an updated lircrc file later.
Example configuration
This is a commented version of the lircrc file which describes all the buttons on the control in order. The keypresses defined in this file correspond to the event names emitted by inputlircd. I've laid out the configuration to make it easier to customise if you want to change what the keys map to.
# # # # SECTION: Menu buttons at top. # # # # Browser button. #begin # remote = /dev/input/irremote1 # prog = mythtv # button = KEY_HOMEPAGE # config = # repeat = 0 # delay = 0 #end # Power button. #begin # remote = /dev/input/irremote1 # prog = mythtv # button = KEY_SLEEP # config = # repeat = 0 # delay = 0 #end # Yellow button. begin remote = /dev/input/irremote0 prog = mythtv button = CTRL_SHIFT_KEY_T config = F4 repeat = 0 delay = 0 end # Blue button. begin remote = /dev/input/irremote0 prog = mythtv button = CTRL_KEY_M config = F5 repeat = 0 delay = 0 end # Green button. begin remote = /dev/input/irremote0 prog = mythtv button = CTRL_KEY_I config = F3 repeat = 0 delay = 0 end # Red button. begin remote = /dev/input/irremote0 prog = mythtv button = CTRL_KEY_E config = F2 repeat = 0 delay = 0 end # TV button [dot]. begin remote = /dev/input/irremote0 prog = mythtv button = CTRL_KEY_O config = S repeat = 0 delay = 0 end # TV button [menu]. begin remote = /dev/input/irremote0 prog = mythtv button = CTRL_KEY_G config = O repeat = 0 delay = 0 end # TV button [wide]. begin remote = /dev/input/irremote0 prog = mythtv button = CTRL_KEY_T config = W repeat = 0 delay = 0 end # TV button [DVD]. #begin # remote = /dev/input/irremote0 # prog = mythtv # button = CTRL_SHIFT_KEY_M # config = # repeat = 0 # delay = 0 #end # # # # SECTION: Forward / Rewind / Stop / Record buttons. # # # # Rewind button. begin remote = /dev/input/irremote0 prog = mythtv button = CTRL_SHIFT_KEY_B config = < repeat = 0 delay = 0 end # Forward button. begin remote = /dev/input/irremote0 prog = mythtv button = CTRL_SHIFT_KEY_F config = > repeat = 0 delay = 0 end # Fast Rewind button. begin remote = /dev/input/irremote1 prog = mythtv button = KEY_PREVIOUSSONG config = Home repeat = 0 delay = 0 end # Fast Forward button. begin remote = /dev/input/irremote1 prog = mythtv button = KEY_NEXTSONG config = End repeat = 0 delay = 0 end # Stop button. begin remote = /dev/input/irremote1 prog = mythtv button = KEY_STOPCD config = S repeat = 0 delay = 0 end # Play and Pause button. begin remote = /dev/input/irremote1 prog = mythtv button = KEY_PLAYPAUSE config = P repeat = 0 delay = 0 end # Record button. begin remote = /dev/input/irremote0 prog = mythtv button = CTRL_KEY_R config = R repeat = 0 delay = 0 end # # # # SECTION: Direction + OK buttons. # # # # Backspace button. begin remote = /dev/input/irremote0 prog = mythtv button = KEY_BACKSPACE config = Backspace repeat = 0 delay = 0 end # Info button and right mouse button. begin remote = /dev/input/irremote1 prog = mythtv button = BTN_RIGHT config = I repeat = 0 delay = 0 end # Up button. begin remote = /dev/input/irremote0 prog = mythtv button = KEY_UP config = Up repeat = 0 delay = 0 end # Down button. begin remote = /dev/input/irremote0 prog = mythtv button = KEY_DOWN config = Down repeat = 0 delay = 0 end # Left button. begin remote = /dev/input/irremote0 prog = mythtv button = KEY_LEFT config = Left repeat = 0 delay = 0 end # Right button. begin remote = /dev/input/irremote0 prog = mythtv button = KEY_RIGHT config = Right repeat = 0 delay = 0 end # OK button and Enter button. begin remote = /dev/input/irremote0 prog = mythtv button = KEY_ENTER config = Return repeat = 0 delay = 0 end # Left mouse button. begin remote = /dev/input/irremote1 prog = mythtv button = BTN_MOUSE config = Return repeat = 0 delay = 0 end # Right mouse button is the same as the Info button. # # # # SECTION: Volume / channel buttons. # # # # Volume up button. begin remote = /dev/input/irremote1 prog = mythtv button = KEY_VOLUMEUP config = ] repeat = 0 delay = 0 end # Volume down button. begin remote = /dev/input/irremote1 prog = mythtv button = KEY_VOLUMEDOWN config = ] repeat = 0 delay = 0 end # Mute button. begin remote = /dev/input/irremote1 prog = mythtv button = KEY_MUTE config = | repeat = 0 delay = 0 end # Channel up button. begin remote = /dev/input/irremote0 prog = mythtv button = KEY_PAGEUP config = Up repeat = 0 delay = 0 end # Channel down button. begin remote = /dev/input/irremote0 prog = mythtv button = KEY_PAGEDOWN config = Down repeat = 0 delay = 0 end # Start button. begin remote = /dev/input/irremote0 prog = mythtv button = ALT_META_KEY_ENTER config = M repeat = 0 delay = 0 end # # # # SECTION: Keypad keys at bottom. # # For all of these keys, the controller actually sends: # KEY_NUMLOCK # KEY_KP* (whatever the corrresponding event is) # KEY_NUMLOCK # # # # Key 1 begin remote = /dev/input/irremote0 prog = mythtv button = KEY_KP1 config = 1 repeat = 0 delay = 0 end # Key 2 begin remote = /dev/input/irremote0 prog = mythtv button = KEY_KP2 config = 2 repeat = 0 delay = 0 end # Key 3 begin remote = /dev/input/irremote0 prog = mythtv button = KEY_KP3 config = 3 repeat = 0 delay = 0 end # Key 4 begin remote = /dev/input/irremote0 prog = mythtv button = KEY_KP4 config = 4 repeat = 0 delay = 0 end # Key 5 begin remote = /dev/input/irremote0 prog = mythtv button = KEY_KP5 config = 5 repeat = 0 delay = 0 end # Key 6 begin remote = /dev/input/irremote0 prog = mythtv button = KEY_KP6 config = 6 repeat = 0 delay = 0 end # Key 7 begin remote = /dev/input/irremote0 prog = mythtv button = KEY_KP7 config = 7 repeat = 0 delay = 0 end # Key 8 begin remote = /dev/input/irremote0 prog = mythtv button = KEY_KP8 config = 8 repeat = 0 delay = 0 end # Key 9 begin remote = /dev/input/irremote0 prog = mythtv button = KEY_KP9 config = 9 repeat = 0 delay = 0 end # Key 0 begin remote = /dev/input/irremote0 prog = mythtv button = KEY_KP0 config = 0 repeat = 0 delay = 0 end # Asterisk (*) #begin # remote = /dev/input/irremote0 # prog = mythtv # button = KPAsterisk # config = * # repeat = 0 # delay = 0 #end # Hash (#) # This is actually sent as two keypresses - ALT_KEY_KP3 and ALT_KEY_KP5. # #begin # remote = /dev/input/irremote0 # prog = mythtv # button = ALT_KEY_KP3 # config = # repeat = 0 # delay = 0 #end # # # # SECTION: Bottom 3 buttons (close / clear / enter). # # # # Close button. begin remote = /dev/input/irremote0 prog = mythtv button = ALT_KEY_F4 config = Escape repeat = 0 delay = 0 end # Clear button. begin remote = /dev/input/irremote0 prog = mythtv button = KEY_ESC config = Escape repeat = 0 delay = 0 end # Enter button is the same as the OK button.