SpeedPad n52
This is a small article about the Belkin “Nostromo” SpeedPad n52 on Linux, and the keymapping it uses (though this applies to all operating systems), and a little review of the device. There’s not much to report about it, it’s a fairly straight-forward device. I won one of these devices at AlphaLAN (which isn’t running anymore - and their website doesn’t exist anymore), where Belkin sponsored the event (cheers!).
It’s a little FPS keyboard - that is, it has keys layed out for playing first person shooter games. There’s lots of these on the market these days (I originally wrote this page in 2005, now it is 2008), many of which integrate with a normal keyboard, and have more buttons on them. I don’t use mine a lot these days because it lacks a Control key, which is much more comfortable to hit than C/J for crouch, particularly since I started playing Garry’s Mod (where that is the context menu key).
The spacebar/jump/15 button is very stiff, and not at a good angle for hitting with the side of your thumb. Unlike the rest of the keys, that key is lower profile, making it awkward to push.
Unfortunately, Belkin seem to have stopped making new versions of the Speedpads, though there was an earlier version, the n50, which had less buttons. All in all, there are much better products out there on the market now, with more buttons, and some that are integrated with the keyboard itself. I’m just using a normal keyboard now, because I need more buttons. At the time, it was a rather novel device... now it is collecting dust.
Device Driver
None needed. It reports as two USB 1.1 Human Input Devices, a keyboard and a mouse. On most current Linux distros, it should be just “plug and play”. The three LEDs are mapped as “pretend” Num Lock, Caps Lock and Scroll Lock, however you need to address the event device directly in order to change the states. I’ve written a program to change the states, but it is too buggy to be useful, and there aren’t any games that you could utilise this (and programs like it) in yet. Basically you need to write a program that will “search” for the device’s ID explicitly in /dev/input/event*, and explicitly set it’s LED states. The device seems to ignore “general” LED state events, so for example when Num Lock is active, the LED on the n52 will not light.
Using lsusb, it reports as ID 050d:0815 Belkin Components. Using the HAL Device Manager (in GNOME), it shows up like this. The USB Reciver device above it in the screenshot is the “base station” for a Logitech Cordless Desktop Pro (the MX700 mouse version).
There is a Linux equivalent to the Windows configuration software (supporting multiple shift states, etc.), but it’s not required. I’ve never used it myself.
Key Mapping
The device has 14 keys on the top, and an extra (15th) key which sits underneath the thumb. They are mapped as follows, on a US-Dvorak and US-QWERTY keyboard repectively, as follows:
01: Tab
02: Apostrophe ('), Q
03: Comma (,), W
04: Period (.), E
05: P, R06: Caps Lock
07: A
08: O, S
09: E, D
10: U, F11: Left Shift
12: Semicolon (;), Z
13: Q, X
14: J, C15: Space
The D-Pad on the side acts as the arrow keys, but rotated 90 degrees clockwise, ie: Up maps to Left. The orange button above it is mapped to Left Alt.
Mouse
This is pretty simple, the scroll wheel acts as a normal Microsoft Intellimouse compatible scroll wheel, which when pushed in translates to the normal button 3 (Middle).
Joystick
Linux doesn’t recognize the D-Pad as a joystick, like the Belkin driver emulates by default on Win32. I see this as an advantage, because many games lack joystick support, so using them as arrow keys increases the usability of the device. You can, however, in Windows set the D-Pad up as a keyboard again.