Need help with Griffin PowerMate USB volume controller - new 64 bit desktop & Ubuntu 12.04

A simple way to get it working (tested on xubuntu 15.04):

  1. Install evrouter from here

  2. Create an event mapping file for evrouter with the contents:

    # /somepath/evrouterrc
    Window ""
    "Griffin PowerMate" "" any key/256 "XButton/2"  # click
    "Griffin PowerMate" "" any rel/7/1 "XButton/5"  # scroll >
    "Griffin PowerMate" "" any rel/7/-1 "XButton/4" # scroll <
    

    You may change the mapping to anythings else ex.: volume control events using: XKey/XF86AudioLowerVolume and XKey/XF86AudioRaiseVolume

    List of Supported mappings

  3. Once your PowerMate is connected simply run:

    sudo pkill evrouter & sleep .1 && sudo evrouter -c /somepath/evrouterrc $(find /dev/input -iname "*powerm*")
    

    The command:

    1. kills any previously started evrouter commands
    2. sleeps for a 100ms
    3. starts a new evrouter with the specified config file, and looks up the attached powermate device ( should be somewhere at /dev/input/by-id/usb-Griffin_Technology__Inc._Griffin_PowerMate-event-if00)

    Optionally you can put this in a script in your $PATH and then you could launch it using a single command

    If you put evrouterrc to /etc/evrouterrc you can skip the -c /somepath/evrouterrc part of the command


For a very long time I had been struggling to get powermate working in Ubuntu, my favourite OS. It was frustrating and finally I got it going and I do want to share with you all how I did. My sincere thanks to all the people from the references. I needed something more definitive, there is none available. Therefore this endeavour.

This is how I got my volume control with Griffin Powermate USB device working in Ubuntu Saucy Salamander 13.10 amd64. Please bear with me and do the following.

References

  1. http://screamingroot.org/node/5
  2. http://www.mp3car.com/input-devices/146252-using-griffin-powermate-in-linux.html
  3. http://www.bedroomlan.org/projects/evrouter (for evrouter)
  4. http://tomthegeek.blogspot.com/2007/05/griffin-powermate-working-with-ubuntu.html
  5. http://ubuntuforums.org/showthread.php?t=1346654&page=3
  6. https://superuser.com/questions/471253/ubuntu-how-to-run-a-terminal-command-on-boot

HowTo

  1. Make a file /etc/udev/rules.d/10-local.rules with the content:

    SUBSYSTEMS=="usb", ATTRS{product}=="Griffin PowerMate", KERNEL=="event?", NAME="input/powermate"
    

    Command-line approach to achieve that:

    echo 'SUBSYSTEMS=="usb", ATTRS{product}=="Griffin PowerMate", KERNEL=="event?", NAME="input/powermate"' | sudo tee /etc/udev/rules.d/10-local.rules
    
  2. Create group called powermate add yourself and other users to that group.

    sudo addgroup powermate
    sudo adduser "$USER" powermate
    
  3. Now create the file /etc/udev/rules.d/40-permissions-powermate.rules and add the following:

    ATTRS{product}=="Griffin PowerMate" GROUP="powermate", MODE="0666"
    

    Command-line approach to achieve that:

    echo 'ATTRS{product}=="Griffin PowerMate" GROUP="powermate", MODE="0666"' | sudo tee /etc/udev/rules.d/40-permissions-powermate.rules
    
  4. Download and install evrouter from http://www.bedroomlan.org/projects/evrouter or use the repository at http://www.bedroomlan.org/bedroomlan-debian-repository.

  5. Create /etc/evrouterrc or $HOME/.evrouterrc (I prefer /etc/evrouterrc) with the following content:

    Window ""
    "Griffin PowerMate" "" any key/256 "XKey/XF86AudioMute"
    "Griffin PowerMate" "" any rel/7/1 "XKey/XF86AudioRaiseVolume"
    "Griffin PowerMate" "" any rel/7/-1 "XKey/XF86AudioLowerVolume"
    

    Command-line approach to achieve that:

    sudo tee /etc/evrouterrc > /dev/null <<EOF
    Window ""
    "Griffin PowerMate" "" any key/256 "XKey/XF86AudioMute"
    "Griffin PowerMate" "" any rel/7/1 "XKey/XF86AudioRaiseVolume"
    "Griffin PowerMate" "" any rel/7/-1 "XKey/XF86AudioLowerVolume"
    EOF
    
  6. Find out the powermate input event number (in mine it is event7), by running the following command.:

    sudo evrouter /dev/input/*
    

    In the long output, you should see a line like the following

    device  0: /dev/input/event7: Griffin PowerMate
    
  7. Create an executable file /usr/local/bin/powermate with the content:

    #!/bin/sh
    exec evrouter -c /etc/evrouterrc /dev/input/event7
    

    Command-line approach to achieve that:

    sudo tee /usr/local/bin/powermate > /dev/null <<EOF
    #!/bin/sh
    exec evrouter -c /etc/evrouterrc /dev/input/event7
    EOF
    sudo chmod a+x /usr/local/bin/powermate
    
  8. If you are a lazy guy like me and would like it to auto-run at start-up, you can do so by adding the script file to /etc/rc.local or any such other:

    sudo sed -i -e '/exit 0/i /usr/local/bin/powermate' /etc/rc.local
    

Try it and see. Best of luck. I love it now. Hopefully you folks can get it working it too.


I made my own program to interface with the Powermate. It requires pulseaudio (the default in Ubuntu), it changes the volume when the knob is turned and you can mute by pressing down the knob. The blue light changes to reflect the current volume.

You can find it here: https://launchpad.net/~stefansundin/+archive/ubuntu/powermate

Install with:

sudo add-apt-repository ppa:stefansundin/powermate
sudo apt-get update
sudo apt-get install powermate

If you have the device plugged in already, unplug it and then plug it back in! Then run powermate in a terminal. An autostart entry has been added so this should happen automatically on your next login.

Hold down the knob for one second to activate "movie mode". Operation is the same except the LED stays off.