Volume Knob on Antec Fusion

From MythTV Official Wiki
Revision as of 05:30, 7 January 2011 by Jbebel (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Fusion.jpg

Antec Fusion has this big, nice-looking volume knob. It would also be nice to let it actually do something. The following are the steps I took to make it to work nicely with an MCE remote. My Myth box was based on Fedora Core 6, installed using RPMs from Fedora and ATRpms as much as possible. If you have a system based on another distribution, adapt the steps accordingly.

.


Important.png Note: In mid 2007 Antec released Version 2 of the silver case and a black version. The V2 silver case contains an updated iMon OEM VFD module with integrated IR receiver, which differs from the original case which contained an OEM iMon VFD with no IR receiver. Many (Windows) users on the SoundGraph forum have reported heavy restrictions in the later revision that break compatibility with the earlier version. The black version contains an iMon OEM LCD module which currently does not work with Lirc or LcdPROC(see Imon page for more details). The instructions on this page are currently valid for the original Antec Fusion case and Version 2 of the silver case, and may not be appropriate for the black version.

Update Oct 2007 patch for Black Fusion available here. IR receiver in Black Fusion is working with MCE remotes. Use this guide for a cut and paste howto.



.

Get the VFD to work

I followed the LCDproc page and made the VFD work.

Edit udev rules

There are two lirc devices on the system (in my case, lirc_imon, and lirc_mceusb2), but it's sort of random that which device is assigned lirc0 or lirc1 at boot time. So we need udev to make some symlinks with unique names to point to the correct devices.

Edit /etc/udev/rules.d/lirc.rules, and add the following lines to the end of the file. You need to change the idVendor for your own devices.

KERNEL=="lirc[0-9]*", SYSFS{idVendor}=="0471", SYMLINK+="lirc_mce"
KERNEL=="lirc[0-9]*", SYSFS{idVendor}=="15c2", SYMLINK+="lirc_imon"

If you need info on how to write udev rules, or on how to find out unique SYSFS attributes you can use to write the rules, see here. New versions of udev will need SYSFS to be replaced with ATTR.

For some devices, such as the Hauppauge PVR-150, the idVendor can be tricky to find. In which case, you can try to assign the symlink based in the character device number. Running

ls -l /dev/lirc* 

will show the lirc devices

crw-rw---- 1 root root 61, 0 2008-01-20 19:45 /dev/lirc0
crw-rw---- 1 root root 61, 1 2008-01-20 19:45 /dev/lirc1

If you are confident the latter is the PVR device, you can assign a symlink using

KERNEL=="lirc[0-9]*", ATTR{dev}=="61:1", SYMLINK+="lirc_pvr"

Although this will fail if the assigment is truly random, it usually isn't if you are not making changes to your system, and this trick enables you to follow the rest of this guide.

Add entries to lircd.conf

Following this thread, I added these lines into /etc/lircd.conf

begin remote
  name  ClickWheel
  bits           24
  eps            30
  aeps          100

  one             0     0
  zero            0     0
  post_data_bits  8
  post_data      0xFF
  gap          131993
  toggle_bit      0

  begin codes
       WheelCC                  0x010000
       WheelCW                  0x000100
       WheelClick               0x000008
  end codes
end remote

Newer versions may require the following two lines to be adjusted:

 post_data_bits  48
 post_data      0xFFFFFF35EE

Edit /etc/sysconfig/lircd

Edit /etc/sysconfig/lircd (or /etc/lirc/hardware.conf for Ubuntu) to read as follows

# Options to lircd
LIRCD_OPTIONS="--driver=default --device=/dev/lirc_mce --output=/dev/lircd --pidfile=/var/run/lircd.pid --connect=localhost:8765"
LIRCD1_OPTIONS="--driver=default --device=/dev/lirc_imon --output=/dev/lircd1 --pidfile=/var/run/lircd1.pid --listen"

Modify the device names according to whatever symlinks you've chosen for your devices.

Edit /etc/init.d/lircd

Replace the line

daemon lircd $LIRCD_OPTIONS

with these two lines

lircd $LIRCD1_OPTIONS
lircd $LIRCD_OPTIONS

And add after the line

killproc lircd

another line that reads

killproc lircd1

Note that this will start the first lircd instance with "--listen" then a second instance using "--connect". You have to start them in this order for it to work.

Edit .mythtv/lircrc

Add the following section to .lircrc.

begin
  prog = mythtv
  button = WheelCW
  repeat = 1
  config = ]
end
 
begin
  prog = mythtv
  button = WheelCC
  repeat = 1
  config = [
end

You can increase the repeat number to make the wheel less sensitive. But I've found that it feels the best by letting repeat=1, which makes every notch count.

Restart udev, lircd, and mythfrontend to test


  • A word of warning:

System updates can and most likely will replace these edited files with updated originals. Making backups of your edited files can assist you in re-creating your edits after a system update, saving you the time of looking up your vendor strings again.