RE: [openag5-talk] Modus operandis

[ Thread Index | Date Index | More lists.tuxfamily.org/openag5-talk Archives ]


I haven't followed every detail of this last exchanges but would like to
offer a couple of thoughts.  For several years (20+ years ago) I wrote MC
firmware (anyone remember 8085 and 8088 processors?) in assembly language
and C to run dot-matrix printer mechanisms.  

For several years I have been using a product that is no longer
manufactured, called the Touchstream keyboard (the technology was bought by
Apple and is being slowly reintroduced as the user interface in iPhone,
iTouch, etc).  There isn't much point in going into details on the
fingerworks keyboard (since it's no longer available), but the product had
two key attributes that are relevant to the AG5 discussion.  First, it was
capable of generating not only key presses, but also any number of "macros"
initiated by multi-finger gestures, such as cursor movement, mouse pointer
movement, click/double click/right click, and many useful commands such as
"page up/down" "scroll up/down" "page zoom in/out" "application
switch/close" etc.  In different OS modes these "macro" commands are output
as various combinations or sequences of key and mouse events.  It's
completely portable, meaning that no drivers needed to be installed, and it
even had internal reprogramming of all these macros to different OS modes
(Win, Mac, Linux, Emacs) that could be changed simply by pressing "special"
combinations on the device that would generate the swap internally (not
generate any output).  

Second, it was entirely programmable.  Firmware could be updated to new
manufacturer versions over the USB interface with no additional hardware.
The best part is that it was customizable. You could install a small
software package that had an "editor" software, consisting of a GUI that
showed a map of all the "key" locations (and gesture types) that allows the
user to re-assign any pre-defined macro attribute (such as page up/down,
zoom in/out, etc), or any user-defined keystroke or combinations or
sequences of key and mouse events, to any key press location or gesture
event.  The UI allowed the user to save/open/edit multiple versions of these
customization files at will on the host computer, and any time you wanted to
try something you could simply "export" to the device, which would update
the firmware in the internal eeprom accordingly.  

Obviously creating such a user-friendly application would take a fair amount
of work, and that's not what I'm suggesting at this point.  And I don't
think the AG-5 would ever support quite so many gestures/combinations output
possibilities that the Touchstream could.   However, the benefit of being
able to change things and try them out, and then change again and tweak
until you get it right, is very powerful.  I imagine that autohotkey allows
this, but of course the limitation is the device customization is local to
the host machine running autohotkey--not desirable!  It seems to me that two
"key" objectives would be: 

1. to design an interface that allows reprogramming of the device via the
USB cable, from any computer that has the software tools to do this, and
withut needing any special hardware.

2. to figure out what modifications may be necessary to the AG-5 hardware to
facilitate such a process.
 
A key limitation would be, what can you fit in the on-board eeprom memory?
For example, it may be too much to expect the device to retain mappings of
key/mouse events to four different operating systems on-board, like the
Touchstream did.  But maybe it could keep two, user selectable OS
"environment" mappings at a time.  

I just ordered my first AG5 and have not recieved it yet, but the email I
got acknowledging the order shows a new feature--a series of keypress
combinatuons that can change (speed up) the trackball response (actually
steepen the acceleration curve).    I wonder that the manufacturer wouldn't
be interested in making the device inherently firmware-upgradable--it'd be a
great customer service to be able to offer upgrades like the
mouse-acceleration firmware to existing users.  Then the rest of this effort
would be simply a software excercise.  Has anyone been in touch with the
inventor to suggest such a thing?

I hope these thoughts are helpful.  I don't have the skills or the time to
participate too much in actually creating the software, but I have more than
a passing interest in making AG5 work and in making re-mapping native to the
device for portability, and will certainly participate in trying/testing
stuff that others come up with, to help make this happen.

Best regards,
Bruce Harley
 

-----Original Message-----
From: Listengine [mailto:listengine@xxxxxxxxxxxxxxxxx] On Behalf Of Lars
Krueger
Sent: Sunday, April 06, 2008 4:47 AM
To: openag5-talk@xxxxxxxxxxxxxxxxxxx
Subject: Re: [openag5-talk] Modus operandis

> Yes, yes, I agree again, we can completely control the device. But 
> some of the eventually required transformations can't be made by 
> simply transfering the generated remapping of the autohotkey, because 
> it knows nothing about scancodes, it knows only about keycodes of a 
> conventional board.

With a new firmware in the AG5 we don't talk about a single table lookup
anymore. The development version will simply send a sent of scancodes that
are processed in the host computer.

Autohotkey is then used to transform exactly these scancodes to regular
keypresses. This autohotkey script has to know the scancode-to-AG5-key
mapping in order to perform the key generation. The script will make no
sense with any other input device, being it a keyboard or off-the-shelf AG5.

> And more, you'd need a software driver in the OS (or in X?) to 
> translate the scancodes generated by that new shift keys, because also 
> the common keyboard drivers know nuts about them.

In this sense the red and blue shift keys will be keys like 'a' or space
when the firmware treats them as those. You need a translator to transform
the scancodes to actual keycodes. It's a matter of convenience whether this
translator is in the PC or in the AG5.

> keyboard (that is, the conventional driver already installed in any
> machine) can't deal with these tricky things (namely, 3 shift levels).

Windows and X11 have only a single 2D table that is indexed by shift state
(think 1 bit per shift key) and scancode. The output is the keycode. So you
can't handle sequences. shift-alt-A is the same as alt-shift-A. 

> I din't study the conventional remapping possibilities, because I'm 
> still waiting for the AG5 I've just bought. Maybe I'm wrong, what do 
> you think?

My strategy was to use the original keymap, identify things I don't like and
change them using autohotkey or usbhotkey. When OpenAG5 works, it simpl y
means I can do the same this on any computer I plug the AG5 into.
--
Dr. Lars Krueger
http://LarsKrueger.homestead.com/files


Psssst! Schon vom neuen GMX MultiMessenger gehört?
Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger

---




---


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/