Close

Input System Design Log 1 - Story So Far

A project log for AluPi - Pocketable Game and Computer System

AluPi is a portable device designed for playing games and performing general computing which is straightforward to assemble.

stephen-mStephen M 05/27/2015 at 05:041 Comment

Hi Everyone,

I thought I would give an update with regards to the input system in the AluPi.

The input system will consist of a keyboard and gaming controls. The controls may or may not include analog sticks (though it would be pretty sweet!) More on this later. The input system will (if everything works out) be able to interface with the raspberry pi or external devices over USB. This means that you could use it as a gamepad for your laptop, or a portable keyboard for a single-board computer. By not limiting the controls to just the AluPi it makes the device 1) more useful, and 2) more modular. Both points are goals of the project. Ideally someone could take the design of the AluPi, easily strip away everything not related to the input system, and make their own USB gamepad.

I am currently planning on using a PIC microcontroller for the USB interface. I have the option to design the system based on the Arduino Leonardo (or other similar designs) that already have USB libraries, but doing it more "from scratch" will provide more value to the community in terms of knowledge, and is much lower cost per chip ($1.94 vs. $6.50 in single quantities).

The schematic design is influenced by microchip's USB Keypad reference design: http://www.microchip.com/pagehandler/en_us/promo/usbkeypad/

Their schematics and source code will be a jumping block for the design.

The digital inputs will be arranged in a matrix to allow for the required number of inputs. I haven't solidified any ideas, but I figure that about 64 digital inputs will be required (26 letters, 10 numbers, at least 10 special keys [space, alt, Fn, etc], 14 gamepad, and 4 more that I might need). I'll be using the C bank of pins as the switch input, and 3 other GPIO pins going into a decoder to select which 8 switches are currently being read.

I'm planning on using low-profile tactile switches such as this for the buttons. If this were being designed for higher volumes I would use tactile domes such as the ones sold by snaptron. Unfortunately, these are very hard to get in small quantities for the individual, do it would be bad for the design. I want anyone to be able to order the parts and assemble it themselves. It would taint the openness of the design if people can't reliably get the materials.

For now, I'm planning on 3D printing the case and keycaps (even though I've done nothing of the sort). In the design, the key cap will be trapped between the case and the switch, with enough room to travel vertically to activate the switch.

Hopefully this picture demonstrates the concept:


I currently plan on using 3DS analog sticks. Unfortunately, it's not a very sustainable thing to design into an open hardware project, but I don't know where else to get nubs. Additionally, there is a software hurdle to make the microscontroller act as a USB mouse (joystick?) in addition to a keyboard. I have done very little with regards to USB, but it seems like it's possible to do using the standard HID interface.

My hope is that these design logs leave breadcrumbs for people to follow if I don't personally finish the project, which is statistically likely for me :P

Discussions

Stephen M wrote 05/27/2015 at 05:37 point

To clarify, the microcontroller I plan to use is the PIC16F1459-I/SS

  Are you sure? yes | no