Request for new unique product/kit: Bablefish for keyboards

General project help for Adafruit customers

Moderators: adafruit_support_bill, adafruit

Request for new unique product/kit: Bablefish for keyboards

Postby Doctor What » Thu Jul 14, 2011 1:11 pm

Currently there is nothing out there quite like this. The closest thing that I could compare it to is the QIDO adapter: (http://www.keyghost.com/qido/)

the Kenesis (http://www.kinesis-ergo.com/contoured.htm) can reprogram the keys to whatever you want, but its $300+ AND you can't use your own keyboard!

For those of us who want to use an alternative keyboard layout (colemak, workman, carplax, capewell, capewell dvorak, programmer dvorak, personalized, etc, etc, etc) the process usually involves having to key in and design a layout template and then submit it to the OS. The problem with this is alot of times the request either doesn't work (login screens default to qwerty) or the layout is faulty (windows supports dvorak but doesn't work 100% correctly in all applications.) Also you might work in an environment where changes to the OS are forbidden (library, work, etc.)

The aforementioned QIDO adapter works great but unfortunately only does Dvorak. It is not programmable at all. Also, if you wanted to improve upon QWERTY or Dvorak (making a few changes to the layout one key at a time can dramatically in enhance the layouts efficiency) you have to go and create a new layout/submit each time.

There are many people out there who could benefit - those who have RSI who could benefit from a more efficient layout. Many people question the efficiency of Dvorak but I haven't found a single person who could say it was uncomfortable - except those who complain about the L being on the pinky - which could be easily remedied by such a product (hint hint.)

I am not a marketer but I would think there would be tremendous value for such a product. This would not compete at all with the QIDO because they have no interest in making a programmable dongle.

My own story: I've been touch typing QWERTY for over 20 years, wanted to try something new so I tried Colemak. LOVED the efficiency but hated how right biased it is - I'm one of the few that had pain from using the layout. On the other hand I tried Dvorak and found that while I LOVE the alternating hands and comfort there are few things I don't like about it (pinkys, punctuation all over the place, the "L", etc.) Such a device would let me tweak Dvorak to my liking without having to deal with an operating system getting in the way.

I think there are a lot of people just like me who want to remap the keyboard OUR way without involving the operating system in on the discussion.

Thank you very much for taking the time to read my request and your consideration.
Doctor What
 
Posts: 4
Joined: Thu Jul 14, 2011 12:42 pm

Re: Request for new unique product/kit: Bablefish for keyboards

Postby skylen » Thu Jul 14, 2011 5:31 pm

While it would be easier to implement for PS/2 protocol, that wouldn't be as useful since most keyboards now are USB and few laptops have a PS/2 port. The most complex part would be implementing the USB Host for the actual keyboard that is being proxied. A microcontroller with a USB Host or USB OTG interface could interface to the target USB keyboard, and it would need a separate USB device interface; if you can't get a MCU with capability for acting as a host and a device simultaneously, the easiest solution might be two microcontrollers working together. The NXP LPC1754 and some STMicroelectronics STM32F10x microcontroller variants, for instance, support USB OTG which will act as a USB Host for the keyboard.

How would you like to configure the mapping? It could be done using special keystrokes on the target keyboard, maybe even including a small display on the keyboard converter to show the status such on-the-fly changes (without special software on the PC) would be nice for quick tweaks. However, it would be much easier to construct a full layout on using a desktop computer program, where you could visualize the entire layout on screen and much more easily configure it. Can a USB device appear as a USB HID Class keyboard as well as providing a special configuration interface simultaneously?

Nice idea for a project.
skylen
 
Posts: 56
Joined: Fri Sep 04, 2009 4:54 pm

Re: Request for new unique product/kit: Bablefish for keyboards

Postby westfw » Fri Jul 15, 2011 2:14 am

most keyboards still speak ps/2, given a merely physical adapter, since it's essentially "free" for any controller with the complexity to do usb. On the other side, connecting a ps/2 "keyboard" to a USB-only computer is a small matter of a $5 active adapter from china, so I think this should be well within the possible for an arduino-class processor ($30 of components.)

Wrapping a user interface around it would probably be a challenge.

Aren't there software-only products (replacement keyboard drivers) that do most of this?
User avatar
westfw
 
Posts: 1321
Joined: Fri Apr 27, 2007 12:01 pm
Location: SF Bay area

Re: Request for new unique product/kit: Bablefish for keyboards

Postby Doctor What » Fri Jul 15, 2011 9:14 am

westfw wrote:Wrapping a user interface around it would probably be a challenge.

Aren't there software-only products (replacement keyboard drivers) that do most of this?


Yes and no. There are layouts that can be created and imported into the operating system. However as I stated earlier login screens are QWERTY only and not all applications work with the layouts. For example, there are many bugs when using Dvorak (a pre-installed layout in Windows) with Excel where the application is not responding to the proper keys. There are also applications that you can run in the background simply by clicking on them (ie: Colemak has Colemak.exe) however you may use a computer (work, library, paranoid friends) that have a policy against running such applications.

But even if there were fully functional drivers if you want to use someone elses PC and not have to mess with it, you can simply carry along your USB bablefish and plug it in. And as long as computers support USB this device would be future proof: ANY operating system will be able to support the layout.

As far as the interface is concerned I thought long and hard about it and here is the best solution I thought of:

Along with this translator will be a very small cache of non-volatile memory. We all know things on flash drives won't last forever however if the amount of memory was decreased exponentially to favor extreme high reliability/durability I would feel safe with it. This memory would store layouts in files named "dvorak.txt, colemak.txt". This layout would be an easily modifying settings map. To preload the map you could create it on a pc and drag it onto this bablefish key.

If the engineer felt uneasy about using flash for this memory, perhaps the ability to burn layouts to ROM and then socket them in? This is a device I predict being in service for over 15+ years.

To access the map, you would go to any text editor and hit a key combination that would active a menu and print out into the text editor:


(clicks specific key combo)

(message prints in text editor):

Current Layouts on Bablefish:
1. QWERTY
2. Dvorak
3. Colemak
x. etc, etc, etc
5. Exit/Abandon/Getmeouttahere!


It will cycle through all layouts in alphabetic order and display a numeric in front of it. The user would not have to program this menu, it simply adds a numeric and then the filename minus extension.

This numeric would then load the layout into the translator/or exit.

After that you can leave the text editor or keep typing. You will NOT have to do this every time you login/reboot - it will remember the last selected layout.

The advantage to keeping the layouts this way is that it makes it very easy to redistribute them on backup units and online.

And yes, if the price is right people won't hesitate to buy 2-3 backups.
Doctor What
 
Posts: 4
Joined: Thu Jul 14, 2011 12:42 pm

Re: Request for new unique product/kit: Bablefish for keyboards

Postby Doctor What » Fri Jul 15, 2011 9:49 am

By the way, the remapping .txt would look something like this:

a=c
b=e
c=;


so that now the default qwerty "a" key produces a "c" when typed, e for b, and ; for c, etc...

the qwerty layout can be embedded by default

for efficiency sake, it would not be necessary to remap every single key, only modifiers. and you could remap them in any order.




I know this sounds a little complex but i've seen (from my point of view with limited electronics knowledge) even more complex things in the adafruit store so I think it would be doable.
Doctor What
 
Posts: 4
Joined: Thu Jul 14, 2011 12:42 pm

Re: Request for new unique product/kit: Bablefish for keyboards

Postby westfw » Sat Jul 16, 2011 1:23 am

there are many bugs when using Dvorak (a pre-installed layout in Windows) with Excel where the application is not responding to the proper keys.

This is probably because the apps are reading raw keycodes instead of "letters." A keyboard doesn't actually report things like 'a'; it reports "key number 23 was pressed, key number 23 is still pressed, key number 23 was released." Drivers convert those to standard text, but many apps probably access the "raw" keycodes so that they can do something fancy. That probably means that they'll be difficult to get working correctly with ANY non-standard hardware OR driver.
User avatar
westfw
 
Posts: 1321
Joined: Fri Apr 27, 2007 12:01 pm
Location: SF Bay area

Re: Request for new unique product/kit: Bablefish for keyboards

Postby pstemari » Sat Jul 16, 2011 1:46 am

In Windows, at least, the application event loop gets the raw keycodes and has to make an OS call to translate them into keystrokes. Admittedly, it's part of the boilerplate code most people rarely look at, but it's not at all surprising to find out that it gets bypassed, especially by apps as long in the tooth as Excel.
--Paul

A wholly owned subsidiary of:
Persephone: DL R+W+B C 7 X L W C++ I++ T+ A E H++ S+ V-- F+ Q P B PA+ PL
Aldebaran: DM Rt H 5 Y L- W+ C+ I++ T++ A+++ E H++ S+ V+ F++ Q+ P B++ PA- PL--
User avatar
pstemari
 
Posts: 309
Joined: Sun Mar 21, 2010 5:10 pm
Location: Seattle, WA


Return to General Project help

Who is online

Users browsing this forum: mibignistinly, mpeg2, VeleBookSot, Zener and 6 guests

Stuff to buy from the Adafruit store and links to product documentation!


New Products [107]

Raspberry Pi[80]
 
FLORA[23]
 
Bunnie Studios[9]
 
FPGA[1]
 
mbed[11]
Arduino[60]
 
NETduino[14]
 
Android[6]
 
BeagleBone[24]
 
XBee[10]
More Dev Boards[31]


 
BoArduino[8]
 
SpokePOV[4]
 
TV-B-Gone[4]
 
MiniPOV[3]
 
SIM reader[3]
 
Microtouch[5]
 
Clocks & Watches[18]
 
Drawdio[4]
 
Brain Machine[1]
 
Game of Life[2]
 
MintyBoost[2]
More DIY Kits[16]


 
MaKey MaKey[3]
 
Tweet-a-Watt[5]
 
Young Engineers[33]
 
Discover Electronics[2]
 
Snap Circuits[4]
 
littleBits[3]
 
Project packs[8]


 
Breakout Boards[33]
LCDs & Displays[48]
Components & Parts[70]
Batteries & Power[49]
EL Wire/Tape/Panel[52]
LEDs[111]
 
Wireless[14]
Cables[62]
 
Lasers[6]
Sensors/Parts[145]
 
Enclosures/Cases[11]
 
Solar[11]
 
RFID / NFC[13]
Prototyping[70]
 
iDevices[13]
Tools[71]
 
Wearables[39]
 
CNC[37]
 
Robotics[29]
 
3D printing[1]
 
Materials[24]


 
Stickers[41]
 
Skill badges[55]
 
Books[25]
 
Circuit Playground[7]
 
Gift Certificates[4]