Success (kinda) with SL-6399 remote
#1
Star 
I've now managed to map most of the keys on the SpeedLink SL-6399 remote. It's messy though because I've had to re-map various keys using xmodmap, as well as edit some of the lines in XBMC's Keymap.xml, and had to use xbindkey to map a couple of other things. Oh, and I still can't get the pesky "Home" key to work.

I'm using Ubuntu Hardy with the XBMC PPA (and default skin)

If anyone has any improvements or questions about this, please let me know.

The xmodmap keyboard re-mappings:

remove Control = Control_L
keycode 56 = b R
keycode 33 = p Y
keycode 41 = f A
keycode 39 = s W
keycode 117 = q
keycode 58 = c
keycode 31 = u
keycode 22 = Escape

The modified Keymap.xml (changes made to the global, fullscreenvideo, and videoOSD sections):

http://www.hatters.org.uk/oddjob/Keymap.sl-6399.xml

(Note that I'm ignoring the "Record", "MSN" and "MyTV" buttons here, and all six little keys beneath the number pad. Pressing them should do nothing in most cases.)

It's also useful to have the ability to start XBMC from the remote (in case it crashes, for example) as well as to be able to shut down the PC. For this, I'm using xbindkeys, with a config file containing the following:

# Start XBMC from remote
"xbmc"
m:0x14 + c:28
Control+Mod2 + t

# Call Ubuntu shutdown menu from remote
"gnome-session-save --gui --kill"
Alt + F4

(Note that you have to disable ALT+F4 from the System > Preferences > Keyboard Shortcuts control panel in Ubuntu for this to work)

The main remaining problem is mapping the "Home" key (green one between the volume and page up/dn keys). This sends super_l+alt_l+enter. I'd like to map that to "h" for XBMC, but I can't work out how. I tried using evrouter for this, but failed.

Random useful stuff along the way:

xkeycaps (front end for xmodmap)
xev
SL-6399 keys
Reply
#2
I suppose this post would have been better in the tips forum. If any admins are watching, perhaps they'd move it there? Thanks.

BTW: why is there a FAQ/tips forum as well as a thread about tips and tricks? Rather confusing.
Reply
#3
cheers gilgongo!

your configs work excellent with this nasty remote!
thanks a lot for sharing them! Smile
Reply
#4
Glad to hear that someone else is using this remote control. It works fine for Vista Media Center, but then VCE isn't as slick as XBMC.

Regarding launching the XBMC from the green button, in Vista I have used EventGhost, created a "Start Program" Macro, pressed the green button, then mapped the launching of Media Center to the "Task.Activated.ehshell" to the macro. This opens Media Center and also opens XBMC, so now it's a case of figuring out how to suppress Media Center.

The big problem I am having with this remote control is that EventGhost just doesn't recognise any of the other buttons as "events" so I have nothing to map to the other functions.

Unfortunately, I have also found that I can't get your xml to work for me either. I have tried writing over the original "Keymap.xml" with your version - after backing up the original, of course - but it does no more than it did before, which basically the four directional arrows and the "OK" button. Once a film/song/slideshow is started, there is no way out without crashing the application.

Any suggestions?
Reply
#5
Is there any remote control that just works plug and play in xbmc or do we have to run event ghost and all these other programs to get the remote working?

I am keen on getting this speedlink remote. I am using vista home premium and won't bother using mce as I like XBMC far more. Is there any new progress, will all buttons function in xbmc with this remote now?

I heard even though this remote connects via usb it does not function as a true USB device but instead is recognized by the PC as a Human Interface Device and registers as a mouse and keyboard, is this true? Does it really matter?

I hope you can answer my three questions

Many thanks in advance
Reply
#6
Slippy you looking to do this on Vista or Linux? On Linux the old MCE hardware is PnP with Lirc. Took me maybe 15mins to be up and running. Something like this http://cgi.ebay.com/Microsoft-Remote-Rec...240%3A1318
Openelec Gotham, MCE remote(s), Intel i3 NUC, DVDs fed from unRAID cataloged by DVD Profiler. HD-DVD encoded with Handbrake to x.264. Yamaha receiver(s)
Reply
#7
BLKMGK Wrote:Slippy you looking to do this on Vista or Linux? On Linux the old MCE hardware is PnP with Lirc. Took me maybe 15mins to be up and running. Something like this http://cgi.ebay.com/Microsoft-Remote-Rec...240%3A1318

Many thanks for your reply

I will be doing this on vista and XP. I plan on setting it up to work on both but I would use the remote control mainly on vista.
Reply
#8
I've got this remote and want to use this guide but I don't seem to have xmodmap installed, and I can't seem to get it installed either.

Tried:

sudo apt-get install xmodmap

That gave me:

Package xmodmap is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
x11-xserver-utils


Anyone point me in the right direction?
Reply
#9
What is necessary to do to get the SpeedLink SL-6399 to work in XBMCLive ?
I have replaced the Keymap.xml file with the one gilgongo have made.
(Witch resulted i fewer buttons working than before)

I see in gilgongo's howto that xmodmap keyboard re-mappings is necessary
But since I'm accessing my XBMC box through ssh I cant run any x windows apps.

Is there a manual way of remapping the keyboard layout, or a command line tool I can use ?
Where does xmodmap remapping store it's changes ?
Maybe a direct replacement of that file will do the trick.
Reply
#10
Ok i figured out how to fix this.

First you go to /etc/usr/share/xbox/system
there you rename old keymap.xml -> mv Keymap.xml KeymapOLD.xml

now u download the above given url -> wget http://www.hatters.org.uk/oddjob/Keymap.sl-6399.xml

AND ADD THE FOLLOWING LINES TO GLOBAL KEYBOARD SECTION:

<volume_up>VolumeUp</volume_up>
<volume_mute>Mute</volume_mute>
<volume_down>VolumeDown</volume_down>


now u rename that to keymap.xml

STEP 2

U go to

cd /etc/X11/xinit/

there u renamte xinitrc to xinitrcOLD (through mv command again)

now u make a new xinitrc -> nano xinitrc

paste below data:

---------------
#!/bin/bash
# $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $

# /etc/X11/xinit/xinitrc
#
# global xinitrc file, used by all X sessions started by xinit (startx)

# invoke global X session script
xmodmap -e "remove Control = Control_L"
xmodmap -e "keycode 56 = b R"
xmodmap -e "keycode 33 = p Y"
xmodmap -e "keycode 41 = f A"
xmodmap -e "keycode 39 = s W"
xmodmap -e "keycode 117 = q"
xmodmap -e "keycode 58 = c"
xmodmap -e "keycode 31 = u"
xmodmap -e "keycode 22 = Escape"
. /etc/X11/Xsession
------------------------------------------

now save it (Contrl-o)

and reboot ur system!

now the remote works fine, all of the above can be done by SSH.

Good luck!

NOT WORKING:

Arrow Keys in On Screen Keyboard (OSK)
Reply
#11
I, too, have this remote and it took me a few days to get it to work.
Thought I could share how I did it.

I used lirc, and since the computer thinks it's a keyboard when you plug it in, it's a bit tricky to get it to work. First you need linux-input-layer.conf (just google it) and use this as your lircd.conf, you also need to have the evdev module loaded and use dev/input as your lircd driver.

1. "sudo modprobe evdev"
2. "cat /proc/bus/input/devices" to find out where the device is, it's going to show up as two differerent devices, both should be called "HOLTEK YaoCoo ".
3. "lircd -H dev/input -d location --pidfile=/var/run/lirc.pid --listen=9988", where you change location to the first device you found in 2.
4. "lircd -H dev/input -d location --pidfile=/var/run/lirc1.pid --listen=9987", change the second device you found in 2 with location.
5. To make the two lircd sessions communicate, "lircd --driver=dev/input --device=/dev/lirc0 --output=/dev/lircd --pidfile=/var/run/lirc0.pid --connect=localhost:9988 --connect=localhost:9987". I added these three lines to my /etc/rc.local, to make it run at startup.
6. If you try "irw" now at the command line, and press some buttons on the remote you should get something like "000000000001001c 00 ENTER linux-input-layer" (this is the result I get from irw by pressing the OK-button).
7. Now you need to make a Lircmap.xml and put it in .xbmc/userdata, the Lircmap.xml format is like this

<lircmap>
<remote device="devicename">
<buttonname>LIRC_BUTTON_NAME</buttonname>
...
</remote>
</lircmap>
(see http://wiki.xbmc.org/?title=Lirc_and_Lircmap.xml)

where "devicename" in our case is "linux-input-layer.conf", and "LIRC_BUTTON_NAME" is the name you get from "irw" when you press a button.

This fixed it for me at least, there are still some unused buttons, but the useful ones like play, plause, stop, OK, volume, mute, rew, fwd, arrows, etc. work like a charm. Info, display, menu, etc. work too.

Lircd kept complaining about me not "specifying a valid gap", so I found the gapvalue for the remote from http://lirc.sourceforge.net/remotes/speed-link/SL-6399 and added it to my /etc/lircd.conf.

Code:
<lircmap>
    <remote device="linux-input-layer">
        <play>P</play>
        <stop>S</stop>
        <up>UP</up>
        <down>DOWN</down>
        <left>LEFT</left>
        <right>RIGHT</right>
        <select>ENTER</select>
        <back>BACKSPACE</back>
        <info>COMPOSE</info>
        <display>Z</display>
        <menu>R</menu>
        <title>T</title>
        <forward>F</forward>
        <reverse>B</reverse>
        <skipplus>PAGEUP</skipplus>
        <skipminus>PAGEDOWN</skipminus>
        <volumeplus>VOLUMEUP</volumeplus>
        <volumeminus>VOLUMEDOWN</volumeminus>
        <mute>MUTE</mute>
    </remote>
</lircmap>
Reply
#12
Lightbulb 
I did this yet another way that makes ALL buttons (except volume and mute) work independently of each other. Some of the other solutions posted here and elsewhere leave something to be desired. The xmodmap hack seems to disable the CTRL button and can't tell the difference between forward and skip, for example, and the lirc method felt laggy (and was fairly complicated to set up).

Here's my take, using xbmc 9.11 on debian unstable:

  1. Install "inputlirc" (http://packages.debian.org/sid/inputlirc) - this is NOT the same as LIRC, but it presents a lirc-compatible server for /dev/input linux event sources only. (apt-get install inputlirc)

  2. Edit /etc/default/inputlirc:
    Code:
    EVENTS="/dev/input/by-id/usb-HOLTEK_YaoCoo-event*"
    OPTIONS="-c -g -m0"

    "-c" means it will combine modifier keys (ctrl, shift, etc) into one composed key, the result is that we can easily map "ctrl-shift-f" to one xbmc button and "shift-f" to another. "-g" will grab exclusive access to the device, so it will stop producing keyboard events in X. "-m0" means it will not filter any keys.

  3. Restart inputlirc (not necessary after reboot):
    Code:
    /etc/init.d/inputlirc restart

  4. If you also have the "lirc" package installed, verify this is working by using the "irw" client on the cmdline, and check that it produces sensible output when pressing buttons on the remote.

  5. Create a file in ~/.xbmc/userdata/Lircmap.xml with the following contents:
    Code:
    <lircmap>
      <remote device="usb-HOLTEK_YaoCoo-event-kbd">

        <!-- For the SpeedLink something USB (sl-6399?)
             Use inputlircd with:
             EVENTS="/dev/input/by-id/usb-HOLTEK_YaoCoo-event*"
             OPTIONS="-c -g -m0"
             Keys not working:
               * "MSN" (toggles between useful and useless keycodes)
               * VolumeUp / VolumeDown / Mute (does not send anything)
         -->

        <!-- "TV", "PC" -->
        <display>CTRL_KEY_T</display>
        <power>ALT_KEY_F4</power>

        <!-- rew, play, fwd, stop -->
        <reverse>CTRL_SHIFT_KEY_B</reverse>
        <play>CTRL_SHIFT_KEY_P</play>    
        <forward>CTRL_SHIFT_KEY_F</forward>    
        <stop>CTRL_SHIFT_KEY_S</stop>

        <!-- replay, pause, skip, record -->
        <skipminus>CTRL_KEY_B</skipminus>
        <pause>CTRL_KEY_P</pause>    
        <skipplus>CTRL_F</skipplus>    
        <record>CTRL_KEY_R</record>

        <!-- back, more, arrows, OK, aspect -->
        <back>KEY_BACKSPACE</back>    
      <!--  <menu>KEY_COMPOSE</menu>  -->
        <guide>KEY_COMPOSE</guide>
        <up>KEY_UP</up>    
        <left>KEY_LEFT</left>    
        <right>KEY_RIGHT</right>    
        <down>KEY_DOWN</down>    
        <select>KEY_ENTER</select>    
        <mute>CTRL_SHIFT_KEY_Z</mute>    
        
        <!-- rgb: video, music, pictures, mytv -->
        <myvideo>CTRL_KEY_E</myvideo>
        <mymusic>CTRL_KEY_M</mymusic>
        <mypictures>CTRL_KEY_I</mypictures>
        <mytv>CTRL_SHIFT_KEY_T</mytv>

        <!-- start, channelup, channeldown -->
        <start>ALT_META_KEY_ENTER</start>
        <volumeplus>KEY_PAGEUP</volumeplus>
        <volumeminus>KEY_PAGEDOWN</volumeminus>

        <!-- numpad, star, hash -->
        <one>KEY_1</one>
        <two>KEY_2</two>
        <three>KEY_3</three>
        <four>KEY_4</four>
        <five>KEY_5</five>
        <six>KEY_6</six>
        <seven>KEY_7</seven>
        <eight>KEY_8</eight>
        <nine>KEY_9</nine>
        <zero>KEY_0</zero>
        <star>KEY_KPASTERISK</star>
        <hash>SHIFT_KEY_3</hash>

        <!-- guide, rtv, help, fullscreen -->
        <guide>CTRL_KEY_G</guide>
        <livetv>CTRL_KEY_O</livetv>
        <subtitle>KEY_F1</subtitle>
        <language>ALT_KEY_ENTER</language>

        <!-- rgb: radio, dvd, audio, title -->
        <blue>CTRL_KEY_A</blue>
        <yellow>CTRL_SHIFT_KEY_M</yellow>
        <green>CTRL_SHIFT_KEY_A</green>
        <red>CTRL_KEY_U</red>

      </remote>
    </lircmap>

  6. Start xbmc


The volume and mute buttons do not seem to send any events, so I'm not sure what's up with that. Instead, I mapped volume up/down to the channel up/down buttons, and mute to the aspect button.
Reply
#13
kjellkjell Wrote:I, too, have this remote and it took me a few days to get it to work.
Thought I could share how I did it.

I used lirc, and since the computer thinks it's a keyboard when you plug it in, it's a bit tricky to get it to work. First you need linux-input-layer.conf (just google it) and use this as your lircd.conf, you also need to have the evdev module loaded and use dev/input as your lircd driver.

1. "sudo modprobe evdev"
2. "cat /proc/bus/input/devices" to find out where the device is, it's going to show up as two differerent devices, both should be called "HOLTEK YaoCoo ".
3. "lircd -H dev/input -d location --pidfile=/var/run/lirc.pid --listen=9988", where you change location to the first device you found in 2.
4. "lircd -H dev/input -d location --pidfile=/var/run/lirc1.pid --listen=9987", change the second device you found in 2 with location.
5. To make the two lircd sessions communicate, "lircd --driver=dev/input --device=/dev/lirc0 --output=/dev/lircd --pidfile=/var/run/lirc0.pid --connect=localhost:9988 --connect=localhost:9987". I added these three lines to my /etc/rc.local, to make it run at startup.
6. If you try "irw" now at the command line, and press some buttons on the remote you should get something like "000000000001001c 00 ENTER linux-input-layer" (this is the result I get from irw by pressing the OK-button).
7. Now you need to make a Lircmap.xml and put it in .xbmc/userdata, the Lircmap.xml format is like this

<lircmap>
<remote device="devicename">
<buttonname>LIRC_BUTTON_NAME</buttonname>
...
</remote>
</lircmap>
(see http://wiki.xbmc.org/?title=Lirc_and_Lircmap.xml)

where "devicename" in our case is "linux-input-layer.conf", and "LIRC_BUTTON_NAME" is the name you get from "irw" when you press a button.

This fixed it for me at least, there are still some unused buttons, but the useful ones like play, plause, stop, OK, volume, mute, rew, fwd, arrows, etc. work like a charm. Info, display, menu, etc. work too.

Lircd kept complaining about me not "specifying a valid gap", so I found the gapvalue for the remote from http://lirc.sourceforge.net/remotes/speed-link/SL-6399 and added it to my /etc/lircd.conf.

Code:
removed

Hi,

after trying all the other approaches i did this and i can control my video,
but there is a mouse arrow which i controll with up and down, not the usual navigation type.
I tried to disable the "use mouse" option, but that I cant navigate at all.

EDIT: when I press the mouse button on the remote I can navigate as wished and start a video,
but I cant use the start/stop buttons, when i than press the mousebutton again I can use start/stop but i
got the mousearrow back, kinda drives me crazy.



Does someone else has still this remote?

EDIT:
please ignore this, i dumped this remote and took my soldering iron on a trip to the old xbox dvd remote thinigy...
Reply
#14
Hi,

Gilgongo, big thanks for the information you're provided, it's been very useful. I got this remote in exasperation at the built in receiver in my ASrock 330HT being a pig to get working under linux.

Just plugged it in, and arrow keys, ok, volume, mute, page up/down, back and more (context menu) work great, which is enough to use from the remote.

Been though the forums looking at some other threads, found that in Dharma key modifiers ctrl, alt, shift are supported in keymap.xml. So, should be able to use this remote by just plugging it in and copying a new keymap.xml.

I don't have Dharma yet, waiting for the final release soon, but as soon as I have I'll make the changes and let you know how it goes.
Reply
#15
sir_indy Wrote:Hi,

Gilgongo, big thanks for the information you're provided, it's been very useful. I got this remote in exasperation at the built in receiver in my ASrock 330HT being a pig to get working under linux.

Just plugged it in, and arrow keys, ok, volume, mute, page up/down, back and more (context menu) work great, which is enough to use from the remote.

Been though the forums looking at some other threads, found that in Dharma key modifiers ctrl, alt, shift are supported in keymap.xml. So, should be able to use this remote by just plugging it in and copying a new keymap.xml.

I don't have Dharma yet, waiting for the final release soon, but as soon as I have I'll make the changes and let you know how it goes.

I'd be interested to see how you get on - just installed Dharma and have this remote - don't want to reinvent the wheel!
Reply

Logout Mark Read Team Forum Stats Members Help
Success (kinda) with SL-6399 remote0