Joystick mouse
Joystick mice are usually intended for special applications, like
industrial applications or to help disabled people to use computer.
But it can be quite comfortable for normal desktop use as well.
Some years ago I got a Genge & Thoma SK 60-200 industrial
joystick from my colleague. Wondering what could be done with it, I
came up with idea to make a joystick mouse. I used the same HW as in
my Atari joystick adapter, only the PIC firmware needed some
tweaking. The mouse is seen by the computer as standard HID mouse
which works without drivers on any recent OS (Windows, Linux, Mac
etc.).
I decided to install the mouse and buttons directly to my desk at
work to get optimum ergonomics. So it was time for some power
drilling action:
It might look like the button holes are placed randomly but they are
actually well thought. The left button is convenient to use with
ring finger while right button is perfect to click with thumb. The
finished install looks kinda Mickey Mouse:
Yes I'm left handed. I can use a regular mouse equally well with
either left or right hand, but joysticks I have always used with
left hand. The buttons are cheap arcade buttons which have very
light spring pressure and clicking micro switch. I have removed the
rubber boot from the joystick as it was killing the feel and
precision. Just have to be careful no to spill coffee on it...
I have used the joystick mouse for about three years now, together
with ordinary mouse. They can both be connected at same time with no
problems. I use joystick mouse with left hand and standard mouse
with right hand. The joystick mouse is not so good for applications
which require accuracy, such as CAD software. But for usual desktop
work, browsing etc. I find it very useful. The ergonomics are far
better than using a mouse. You notice this when working for long
sessions. No wrist ache 'mouse hand', because wrist is in more
natural position.
I have also tried to use a trackball, Kensington
Expert Mouse, but I didn't like the ergonomics. You have to
keep your wrist in uncomfortable position because the ball is so
large, and thus high from desk. Perhaps if trackball was integrated
in desk it would be much better.
Hardware
The readout electronics are identical to JAKADAPTER. Any layout version
of 2.1 HW can be used. There is also a version which uses only
though-hole components which is easy to build. Looking at Jakadapter circuit
diagram, the 220 k resistors are not necessary here. Also most
of the 5 k resistors could be left out as well, only R5 and R11 are
needed. Leaving all resistors installed does not harm operation of
joystick mouse, if joystick potentiometers have low resistance
compared to 220 k. Then you can use the same adapter also for Atari
/ Commodore joystick by changing the FW via bootloader.
The joystick which I have used has 5 kohm linear pots on both axes,
but other values should work also OK. The ends of the pots are
connected to GND and +5V. The pot wiper contact voltage is the read
with PIC ADC. Buttons are read as digital inputs, connected between
PIC input and ground. All connections can be made to JAKADAPTER
connector X1 with following pinout:
X1 connector pin
|
Joystick mouse connection
|
4
|
Right mouse button
|
5
|
Y-axis pot wiper
|
6
|
Left mouse button
|
7
|
+5V
|
8
|
Ground
|
9
|
X-axis pot wiper
|
Firmware
The firmware is written with CCS
PIC C compiler. The firmware including sources and compiled
hex is available below. The USB descriptor file which I have
modified for this use is not included, as it is CCS copyrighted
code. If you have the compiler and need the file, drop me an
email. The included .hex file is compiled to be used with this bootloader, so
you must first program the bootloader with Pickit3 or ICD3, and
then flash the joystick mouse hex file with the bootloader
software. Later, if needed, you can enter bootloader mode by
keeping left mouse button pressed when connecting USB cable.
HID_Joystick_mouse_v04.zip
(Version 0.4, Jan 11. 2015. Compiled with CCS compiler v5.021)
Currently the firmware is very simple. The center position is
calibrated only at startup, so joystick must not be touched when
connecting the USB cable or booting up the PC.
page created 11.9.2015
last updated 12.9.2015 webmaster@kair.us