-
David Raditch: I read on your web page that you have
made “pinch gloves”. I was wondering how they work.
-
You don't know the Fakespace pinch gloves.
I will describe the function:
The box will detect any contact group of fingertip contacts.
For 10 fingers, you can get up to 5 contact groups (2 fingers each).
You can even connect left-hand fingers with right-hand ones.
You may even get one contact group with 10 fingers (= all shorted).
For transmitting the connection event, the box sends a serial string
(as you can see in the demo program screen shot).
No polling nessecary, the box always reports a string
when the connection state is changing.
Most-recent connections are first in the list of connections.
My box furthermore scans for ground connections what the original
(huge) box does not, with a detection time less than 100 ms.
Note that the “pinch gloves” do not include any acceleration or inclination
sensors as you may expect for this commercial product.
- Do you touch the thumb to fingers to detect a pinch?
-
The firmware scans for any connection (like a short-circuit finder
for a cable testing machine).
- I am very much impressed with the USB interface.
-
I'm not explained in HTML that this device offers a simple
firmware update method via USB too!
Simply connect thumb and little finger on left glove and plug-in
the USB plug. In this case, the device branches to a known bootloader.
E.g. for a HID-compatible firmware version (not Fakespace compatible).
Or, maybe, a dual-role firmware. Good for Linux.
Because “connection groups” do not fall into something known HID,
making a HID (Human Interface Device, a USB category) did not make much sense.
This device simulates a COM port (without need of a Windows driver!),
and is therefore fully compatible with the Fakespace box,
except you have a DOS program.
That's the reason I rewrote the demo program (it was for DOS).
- I
wrote Win32 keystroke injection software to take the “button” press and
change to a keystroke.
It was designed to help a friend who was unable to move his hands to play
computer game.
-
For your application, changing the firmware to directly send HID-compatible
keystrokes to Windows would be the best solution, because that does not
need any Windows driver.
An extra HID-compatible “port” and a special Windows software can ease
configurating the internal translation table.
See also:
http://www.obdev.at/products/avrusb/prjhid.html
Of course you can also write a driver-like software that converts
the current serial protocol to keystrokes (calling SendInput()
),
not changing the Glove box' firmware.
- What about serial port emulation over low-speed USB?
- Yep, this introduces trouble with Windows Vista and newer, and Linux too.
Read this.
It will run, thanks to (certified?) intermediade drivers made by someone else.
Nevertheless, emulating a COM port device over Low-Speed USB violates the USB standard.
Not good.
Possible future problems in mind, and for sake of usefulness, HID (Human Interface Device)
should be used instead.
It will even free the end-user from clicking annoying driver-install notifications.
Yeah, a glove is really a Human Interface, why not using such a tailored standard?
The reasons are:
- Keeping compatibility to the original FakeSpace box
- No 100% fitting HID standard available for such input device
Later improvement of firmware and demo software will “invent” and use
a special packet for such a device (let's say a cable connection finder),
similar to that used for the serial connection (to make transition simple).
Nevertheless, implementing a HID device will break compatibility to existing
software that expects a COM port.
Therefore, such a step requires rewriting your software – or at least an
intermediade application that serves a COM port;
the COM0COM project
is a good null-modem cable replacement for doing this.
If I had known about COM0COM at that time, I would have made it so.
Please drop me a note when someone else on the world uses this pair of gloves.
Especially when HID firmware, HID demo software and/or HID↔COM emulation is needed.