Arduino USB HID Gamepad using Matrix keypad

Hi all,

I am planning to make a simple USB controller for my telescope mount which is controlled by EQAscom (an open source telescope driver project) which can be configured to use a gamepad or joystick to control various functions.

all of the functions i require are simple digital button presses and i do not require any form of analog input so i am planning to use a membrane keypad, i have found a nice 16 way keypad with the option to place my own legend behind the buttons but it is only available in a matrix configuration.

so what i need to know is:

  1. how to decode the input from the keypad matrix
  2. how to configure an arduino as a USB HID gamepad.
  3. combine the above
  4. Which arduino version to use

can anyone offer any advice?

I would use UnoJoy with an Arduino Uno. Does it have to be an HID joystick, or can it be an HID keyboard? I am not sure whether you would be able to convert the digital logic from the matrix buttons into analog values for a joystick. I am trying to solve a similar problem, creating an HID joystick with an OSEPP Uno board (uses an FTDI chip, so no UnoJoy). Hopefully someone more experienced can come along and help.

Yes it does have to be HID joystick interface, the application can maintain control with a joystick all of the time, but it needs to be the active focused window in order to respond to keyboard input, if it were as simple as using a keyboard/keypad i would just buy a USB numeric keypad and re label the keys.

in my case all i could simply map the keys for left and right to the X axis and the keys for up & down to the Y axis, when up is pressed the analog value for X would be reported as 255(or what ever the highest value should be), when down is pressed the value for X would be set to 0 & when no keys are pressed the value would be 128 (or mid value) the same would apply for the Y axis. the rest of the keys would simply be used as buttons as normal on a gamepad.