We encountered a man who had quadriplegia due to a motor vehicle accident. He had a little motion in one hand and wanted to use a computer, but he could not use a regular mouse. If he could use the computer, he could go online, surf the internet, research whatever struck his fancy, chat with other people, email, etc. - it would open a lot of doors for him and greatly increase his standard of living. We tried a commercially available joystick mouse, and he could use it successfully. The problem was cost: the commercial model was $550 (since then, it has dropped to $400 ) which neither he nor his family could afford.
I built a joystick mouse for him out of a USB gamepad and arcade machine components. This mouse had two features lacking in the commercial model: 1) It could launch programs or commands, greatly increasing the efficiency of computer use 2) it could talk, giving auditory feedback regarding which button was pressed, as he could not move his head to look at his hands.
We have since used descendants of the first joystick mouse with several people who had cerebral palsy or other conditions that made traditional computer use difficult. The cost to build one of these is about $45.
Remove these ads by
Signing UpStep 1: Materials and Tools
Materials:
Wood, about 7" wide and 1/4" thick
Paint, Wood glue
(1) USB gamepad (I have had good success buying cheapies from eBay or other places - we will be destroying it in the process so don't buy the most expensive).
(1) competition joystick (happ.com is a good supplier too, but more expensive)
(6) competition pushbuttons (happ.com is more expensive here too)
(4) #10 1/2" wood screws (or metal screws)
(7) #8 or #6 1.5" Wood screws
(20) 0.187" Female Quick Disconnect Crimp Connectors
300" (25 feet) 24-28-gauge hookup wire (old CAT-5 cable works beautifully with the jacket removed)
12x12" square solid foam shelf liner
Tools:
Drill
Dremel with micro drill bit (e.g. 0.0260")
1.125" hole saw (for drill)
Table Saw / regular saw for woodworking
Needlenose Pliers
diagonal-cutting pliers (dykes)
Sandpaper
Soldering Iron and solder
Wire strippers
Helping hands
Wire crimp tool
Hot air gun
Hot glue gun
Software:
AutoHotkey (Windows only, similar automation software exists for Mac / Linux)













































Visit Our Store »
Go Pro Today »




I was thinking of having the buttons countersunk, and then have hinged flaps that could flip in from the sides (or flaps that are just added on as needed with velcro) to cover up buttons for clients that are not as able to avoid hitting them accidentally while manipulating the joystick. A deluxe feature (for models that may be used by multiple individuals) could included adding alternative 1/8" switch jacks along the sides. This would allow you to plug in whatever switches the client finds most accessible (head array switches or whatever).
On the other hand, countersinking the buttons might help act as a keyguard, and hiding the buttons completely could help when working with people who don't have the mental ability to use six buttons.
I like the idea of the 1/8" switch jacks on the side - that will certainly be an addition to the next micro-production run. This design is wood about 1/2" thick on the sides (thicker than any panel jacks), but it could be milled down. I have thought about making a switch-interface out of just the game controller board and putting it in a plastic enclosure box. In my design, I use the crimp connectors on the arcade parts (rather than soldering into place) so that the design can be physically rewired easily if needed. The hard part is adapting the controller board - everything else (switch jacks, etc) is relatively easy.
They can program both keyboard and mouse. JoyToKey is free, but Xpadder costs 5 dollars for each latest version.
This can also be used for MAME cabinets as well, except you use it for a MAME cabinet instead. Most MAME cabinet instructions are a bit vague when describing how to put the joystick together, so this actually kills two birds with one stone...
We have been puzzled by the economies of scale issue ourselves. However, this is true for most of Assistive Technology - much of the commercial equipment is insanely expensive (it is not hard to find things in the $5000+ price bracket). This is sad, because most people with disabilities don't have a lot of money (or the money they do have goes for therapies, medicines, etc.) It may have to do with being classed as a "medical device" or something - apparently there is 10x-20x jump in price if something is classed as medical or therapeutic.
Great work shadowwynd!
I've been a AAC (Augmentative & Alternative Communication) technologists for almost 10 years.
From what I've seen is that the companies that don't charge enough don't survive. To be effective their product must:
1.) Be strongly made.
2.) Good support must be offered.
3.) Solid research & development must be on going.
Take DynaVox as an example. They are still in business after all these years!
I was thinking you could probably use the board out of a USB numeric keypad for this instead of a game controller. That way you wouldn't need any 3rd party software; you could just turn on mousekeys in Windows.
Two notes, though:
1) For our original user, it would still need additional software to tell him what was pressed because he couldn't move his head to see his hand. For someone who didn't need this, the keypad would work great, especially if they didn't need variable speed.
2) There exists the possibility of blocking keys due to simultaneous presses. A keyboard is designed for very fast sequential presses, but doesn't work well if multiple keys are pressed at the same time. A keyboard uses a matrix to of rows and columns to detect key presses. If the right multiple keys are pressed, other input is ignored. For instance, open a text editor. Hold down the "A" and "S" keys simultaneously. Then try typing "W" or "X" while holding the "A" and "S" keys down - most keyboards won't do it because the same column is still selected. A numeric keypad would be the same.
A joystick normally has each button go to a separate pin on the microcontroller. This means that all the buttons can be used independent of the others (they can all be held down and one could be toggled successfully). For *this* project it shouldn't make a difference due to the limitations of the user. For some projects (for instance, if you were using a joystick board as an interface to a bank of switches) this property becomes important.
While making something "self-serviceable" is bad practice in mass production I consider it a must in "good quality"
But either way it is a good ible just the same.
I would prefer to see more mass-produced things be self-serviceable, myself.