Antec Fusion lirc
From MythTV
There are different receiver models. Run the command lsusb to determine your model. Different remotes also have different codes. This description has a lot of information, and emphasizes Mythbuntu in its description. The description only covers one model
Contents |
Vendor product 15c2:0038 and Remote Veris RM200
If the output from lsusb shows something like ID 15c2:0038 SoundGraph Inc. and the remote is a Veris RM200, try this solution.
Update: As of LIRC 0.8.6, most of this content is obsolete. LIRC 0.8.6 creates only one /dev/lirc0 device, and the default lircd.conf found in /usr/share/lirc/remotes/imon/lircd.conf.imon-antec-veris works out of the box.
The methods used are described in [MythTV blog description]. You may need to modify the lirc. See the mythtvblog entry for descriptions of how to do this.
The receiver uses 2 devices, /dev/lirc0 and /dev/lirc1. Some commands are received by one, some are received by the other. There is a certain logic behind the separation. Mouse and keyboard commands are received by /dev/lirc0; this includes the directional pad, left click, enter, and the number button, but skips the mouse/keyboard toggle button.
Everything else comes through /dev/lirc1. There are also commands generated by the volume knob. Some of the commands generated by the volume knob have the same bit code as some of the commands generated by the remote, but the duplicate bit codes are received by different devices, so it works out.
The command mode2 -d /dev/lirc0 and mode2 -d /dev/lirc1 was used to determine the codes.
When LClick is pressed briefly, it is followed immediately by MouseButtonUp. When LClick is pressed for a longer period, MouseButtonUp is not sent until another button has been pressed, perhaps RClick. This allows the mouse button to be kept down when dragging. Some of the controls are still unclear, but there is a start here.
The commands received by /dev/lirc1 come in pairs. One code when the button is pressed, another when the button is released. The release commands are appended with the string Release.
The knob has codes for clockwise motion and counterclockwise motion. When the knob is turned quickly, a different command is issued. WheelCW1 is a slow turn clockwise. WheelCW2 is a faster turn. WheelCW3 is a still faster turn. The knob commands are received by /dev/lirc1. WheelCCW1 has the same code as MouseButtonUp, but WheelCCW1 is received by /dev/lirc1, and MouseButtonUp is received by /dev/lirc0.
A few files are included here.
hardware.conf
This controls the entire lirc setup.
# /etc/lirc/hardware.conf # #Chosen Remote Control REMOTE="Soundgraph iMON Knob" REMOTE_MODULES="lirc_dev lirc_imon" REMOTE_DRIVER="default" REMOTE_DEVICE="/dev/lirc0" REMOTE_LIRCD_CONF="" REMOTE_LIRCD_ARGS="/etc/lirc/lircd-0.conf" #Chosen IR Transmitter TRANSMITTER="None" TRANSMITTER_MODULES="" TRANSMITTER_DRIVER="default" TRANSMITTER_DEVICE="/dev/lirc1" TRANSMITTER_LIRCD_CONF="" TRANSMITTER_LIRCD_ARGS="/etc/lirc/lircd-1.conf" #Enable lircd START_LIRCD="true" #Don't start lircmd even if there seems to be a good config file START_LIRCMD="true" #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/init.d/lirc
This is a slightly modified version of the official Ubuntu file. Here's the patch.
--- lirc~ 2008-09-24 14:31:50.000000000 -0700
+++ lirc 2009-02-21 09:55:59.000000000 -0800
@@ -65,7 +65,8 @@
#Now, if we ALSO have a transmitter defined, add some args
#To make the first lircd listen up
if [ ! -z "$TRANSMITTER_DEVICE" ] || [ ! -z "$TRANSMITTER_DRIVER" ]; then
- REMOTE_ARGS="$REMOTE_ARGS --output=/dev/lircd --listen"
+# REMOTE_ARGS="$REMOTE_ARGS --output=/dev/lircd --listen"
+ REMOTE_ARGS="$REMOTE_ARGS --listen"
fi
fi
echo $REMOTE_ARGS
@@ -87,7 +88,8 @@
#Now, if we ALSO have a remote defined, add some args
#To make the second lircd connect
if [ ! -z "$REMOTE_DEVICE" ] || [ ! -z "$REMOTE_DRIVER" ]; then
- TRANSMITTER_ARGS="$TRANSMITTER_ARGS --output=/dev/lircd1 --connect=localhost:8765 --pidfile=/var/run/lircd1.pid"
+# TRANSMITTER_ARGS="$TRANSMITTER_ARGS --output=/dev/lircd1 --connect=localhost:8765 --pidfile=/var/run/lircd1.pid"
+ TRANSMITTER_ARGS="$TRANSMITTER_ARGS --output=/dev/lircd --connect=localhost:8765 --pidfile=/var/run/lircd1.pid"
fi
fi
echo $TRANSMITTER_ARGS
lircd-0.conf
For Ubuntu, this is placed in the directory /etc/lirc. This controls all commands using /dev/lirc0, which is only from the remote.
#This configuration has been automatically generated via #the Ubuntu LIRC package maintainer scripts. # #It includes the default configuration for the remote and/or #transmitter that you have selected during package installation. # #Feel free to add any custom remotes to the configuration #via additional include directives or below the existing #Ubuntu include directives from your selected remote and/or #transmitter. #Configuration for the Soundgraph iMON Knob remote: include /usr/share/lirc/remotes/imon/lircd.conf.imon.rm200-0
lircd-1.conf
For Ubuntu, this is placed in the directory /etc/lirc. This controls all commands using /dev/lirc1, both from the remote and the knob.
#This configuration has been automatically generated via #the Ubuntu LIRC package maintainer scripts. # #It includes the default configuration for the remote and/or #transmitter that you have selected during package installation. # #Feel free to add any custom remotes to the configuration #via additional include directives or below the existing #Ubuntu include directives from your selected remote and/or #transmitter. include /usr/share/lirc/remotes/imon/lircd.conf.imon.rm200-1 include /usr/share/lirc/remotes/imon/lircd.conf.imon-knob-only
lircd.conf.imon.rm200-0
This file catches codes which come in through /dev/lirc0. For Ubuntu, this is placed in the directory /usr/share/lirc/remotes/imon.
# Please make this file available to others
# by sending it to <lirc@bartelmus.de>
#
# this config file was automatically generated
# using lirc-0.8.4(default) on Sat Oct 18 02:21:26 2008
#
# contributed by Jean-Yves Avenard
# Modified by Kevin Dalley
#
# brand: Antec Fusion Remote
# model no. of remote control: MX200
# devices being controlled by this remote:
#
# MouseButtonUp indicates the LClick or RClick has been released
# Pressing quickly on LClick or RClick includes MouseButtonUp
# When a mouse button had previously been held down.
# Pushing longer on LClick or RClick, and release
# and MouseButtonUp will not be sent until another button is hit
# This allows a mouse button to be pushed down while the
# mouse is moved.
begin remote
name mx200
bits 32
eps 30
aeps 100
one 0 0
zero 0 0
gap 195991
toggle_bit_mask 0
begin codes
Backspace 0x0200002A
Select/Space 0x0200002C
LeftMenu 0x02800000
RightMenu 0x02000065
LClick 0x01010000
RClick 0x01020000
MouseButtonUp 0x01000000
Enter 0x02000028
Up 0x01008000
Down 0x01007F00
Left 0x01000080
Right 0x0100007F
ESC 0x02000029
1 0x0200001E
2 0x0200001F
3 0x02000020
4 0x02000021
5 0x02000022
6 0x02000023
7 0x02000024
8 0x02000025
9 0x02000026
* 0x02200025
0 0x02000027
# 0x02200020
KeyUp 0x02000000
end codes
end remote
lircd.conf.imon.rm200-1
This file catches codes which come in through /dev/lirc1. For Ubuntu, this is placed in the directory /usr/share/lirc/remotes/imon.
# Please make this file available to others
# by sending it to <lirc@bartelmus.de>
#
# this config file was automatically generated
# using lirc-0.8.4(default) on Sat Oct 18 02:21:26 2008
#
# contributed by Jean-Yves Avenard
#
# brand: Antec Fusion Remote
# model no. of remote control: MX200
# devices being controlled by this remote:
#
# Button names ending in Release indicate that the button has been released.
# The wheel commands are for the knob
begin remote
name mx200
bits 32
eps 30
aeps 100
one 0 0
zero 0 0
gap 195997
toggle_bit_mask 0
begin codes
AppExit 0x288195B7
AppExitRelease 0x2881D5B7
Power 0x289115B7
PowerRelease 0x289155B7
Play 0x2A8115B7
PlayRelease 0x2A8155B7
Record 0x298115B7
RecordRelease 0x298155B7
Eject 0x29B195B7
EjectRelease 0x29B1D5B7
Rewind 0x2A8195B7
RewindRelease 0x2A81D5B7
Pause 0x2A9115B7
PauseRelease 0x2A9155B7
Forward 0x2B8115B7
ForwardRelease 0x2B8155B7
Prev 0x2B9115B7
PrevRelease 0x2B9155B7
Stop 0x2B9715B7
StopRelease 0x2B9755B7
Skip 0x298195B7
SkipRelease 0x2981D5B7
Eject2 0x299395B7
Eject2Release 0x2993D5B7
AppLaunch 0x29B715B7
AppLaunchRelease 0x29B755B7
TaskSwitcher 0x2a9395b7
TaskSwitcherRelease 0x2a93D5b7
Go 0x2AB195B7
GoRelease 0x2AB1D5B7
Mute 0x2B9595B7
MuteRelease 0x2B95D5B7
Vol+ 0x28A395B7
Vol+Release 0x28A3D5B7
Vol- 0x28A595B7
Vol-Release 0x28A5D5B7
Ch- 0x288795B7
Ch-Release 0x2887D5B7
Ch+ 0x289395B7
Ch+Release 0x2893D5B7
Timer 0x2B8395B7
TimerRelease 0x2B83D5B7
Video 0x2B8515B7
VideoRelease 0x2B8555B7
Music 0x299195B7
MusicRelease 0x2991D5B7
Pictures 0x2BA115B7
PicturesRelease 0x2BA155B7
TV 0x28A515B7
TVRelease 0x28A555B7
Bookmark 0x288515B7
BookmarkRelease 0x288555B7
Thumbnail 0x2AB715B7
ThumbnailRelease 0x2AB755B7
Zoom 0x29A595B7
ZoomRelease 0x29A5D5B7
FullScreen 0x2AA395B7
FullScreenRelease 0x2AA3D5B7
DVD 0x29A395B7
DVDRelease 0x29A3D5B7
Menu 0x2BA395B7
MenuRelease 0x2BA3D5B7
Subtitle 0x298595B7
SubtitleRelease 0x2985D5B7
Audio 0x2B8595B7
AudioRelease 0x2B85D5B7
MouseKeyboard 0x299115B7
MouseKeyboardRelease 0x299155B7
end codes
end remote
lircd.conf.imon-knob-only
This file catches codes coming from the knob, which comes in through /dev/lirc1. For Ubuntu, this is placed in the directory /usr/share/lirc/remotes/imon.
/etc/lirc/lircmd.conf
Allows use of the remote as a mouse. This was slightly modified from the source listed in the file.
# # To find out how to get a proper configuration file please read: # # /usr/share/doc/lirc/README.Debian # # From http://acidzebra.blogspot.com/2007/07/integrating-mythtv-and-amarok_17.html # # lircmd config file # PROTOCOL IntelliMouse #PROTOCOL MouseSystems # ACCELERATOR start max multiplier ACCELERATOR 2 50 5 TOGGLE_ACTIVATE * MouseKeyboard MOVE_N * Up MOVE_E * Right MOVE_S * Down MOVE_W * Left MOVE_IN * Ch+ MOVE_OUT * Ch- BUTTON1_DOWN * LClick BUTTON1_UP * MouseButtonUp #BUTTON1_TOGGLE * star BUTTON3_DOWN * MouseButtonUp #BUTTON1_CLICK * OK #BUTTON1_TOGGLE * Prev-Channel #BUTTON3_CLICK * Radio # BUTTONx_CLICK, BUTTONx_UP, BUTTONx_DOWN are also possible
xorg.conf
This section should be added to /etc/X11/xorg.conf, which allows the remote to be recognized as a mouse.
Section "InputDevice"
Identifier "Remote"
Driver "mouse"
Option "Device" "/dev/lircm"
Option "Protocol" "IntelliMouse"
Option "SendCoreEvents"
Option "Buttons" "5"
Option "ZAxisMapping" "4 5"
EndSection
Section "ServerLayout"
Identifier "StandardLayout"
Screen 0 "Default Screen" 0 0
InputDevice "Remote"
EndSection
.lirc/mythtv
In Ubuntu, this file is placed in ~/.lirc/mythtv. Otherwise, it may be in .lirc. It includes some work for X11.
# LIRCRC Auto Generated by Mythbuntu Lirc Generator
# Author(s): Mario Limonciello, Nick Fox
# Created for use with Mythbuntu
begin
flags = startup_mode
mode = mythtv
end
begin mythtv
begin
remote = mx200
prog = mythtv
button = 7
config = 7
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = Mute
config = |
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = 1
config = 1
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = 0
config = 0
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = Pause
config = P
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = Menu
config = M
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = 6
config = 6
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = 2
config = 2
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = Ch-
config = Down
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = Ch+
config = Up
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = Rewind
config = <
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = Play
config = P
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = Vol-
config = [
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = Stop
config = Escape
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = ESC
config = Escape
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = Vol+
config = ]
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = 5
config = 5
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = 4
config = 4
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = Enter
config = Return
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = Record
config = R
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = 9
config = 9
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = 3
config = 3
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = Enter
config = Enter
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = 8
config = 8
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = Up
config = Up
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = Down
config = Down
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = Right
config = Right
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = Left
config = Left
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = Go
config = Enter
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = AppLaunch
config = i
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = LClick
config = i
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = Forward
config = >
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = Prev
config = Home
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = Skip
config = End
repeat = 0
delay = 0
end
begin
remote = mx200
prog = mythtv
button = Bookmark
config = Space
repeat = 0
delay = 0
end
begin
remote = IMON_KNOB_ONLY
prog = mythtv
button = WheelCCW1
config = [
repeat = 0
delay = 0
end
begin
remote = IMON_KNOB_ONLY
prog = mythtv
button = WheelCW1
config = ]
repeat = 0
delay = 0
end
begin
remote = IMON_KNOB_ONLY
prog = mythtv
button = WheelCCW2
config = [ [
repeat = 0
delay = 0
end
begin
remote = IMON_KNOB_ONLY
prog = mythtv
button = WheelCW2
config = ] ]
repeat = 0
delay = 0
end
begin
remote = IMON_KNOB_ONLY
prog = mythtv
button = WheelCCW3
config = [ [ [
repeat = 0
delay = 0
end
begin
remote = IMON_KNOB_ONLY
prog = mythtv
button = WheelCW3
config = ] ] ]
repeat = 0
delay = 0
end
begin
button = MouseKeyboard
repeat = 3
flags = mode
mode = X11
end
end mythtv
begin X11
begin
button = MouseKeyboard
repeat = 3
flags = mode
mode = mythtv
end
end X11
