Author Topic: Almost-A-Datahand  (Read 7872 times)

0 Members and 2 Guests are viewing this topic.

Offline timon37

  • Thread Starter
  • Posts: 24
Almost-A-Datahand
« on: Sat, 22 May 2010, 20:59:02 »
The article is a work in progress, and unfortunately I'm moving along with my PC about 250km very soon so it might take a while to finish.

Update 18.02.2011: Some bad and some good news

Bad: I haven't been using my awesome hand for a few months (though I'm typing on it right now, for fun), mostly because I had too much work for classes and I'm still faster on a standard keyboard, mostly because I often hesitate, stutter, and ain't completely comfortable with it.

Good: I've got 10 cherry blacks;) 40x 9mm 1N and 40x 13mm 1.6N tact switches and two different concepts for the side keys, which should be way more durable.

Ohh and I've actually modified the units quite significantly a few months ago since I switched to sitting on a couch, so they're a bit more like a datahand (and the ratio of lego to anything else increased again;). I'll try to conjure (read extort) a camera from someone to make some pictures, and generate a static gallery for all the pictures (actually I'll make the gallery in a few moments, done, look bellow).


The goal:
A device that allows for fast, accurate and effortless text, shortcuts and pointer input in situations with very mixed usage patterns, requiring rapid switching between the "pointer" and "keyboard".

This has shaped into two ideas, the more pointer favoring one:
To create a single handed datahand like keyboard that will hopefully allow for slower but good-enough typing speed. While the right hand wields a standard mouse.
and the more keyboard favoring one:
To create a two handed datahand like keyboard with an integrated pointing device (thumb trackball to be precise) that results in good-enough pointing accuracy and speed.

Both solutions are slower in at least one way than a keyboard and mouse, however as there is no need to move the right hand between the mouse and keyboard or dance with the left on the keyboard they should prove faster for my needs. Ironically I have a perfect and probably possible in my lifetime solution which is a datahand + gaze-tracking with at least 4 pixel accuracy;) Btw there's also the frogpad which, as this guy proves, can be faster than my standard typing speed;p theoretically the one unit datahand has more main keys (20 vs 15) so it might be possible to reach such speeds but the chords are easier on the frogpad since you just lock two fingers and move the hand down, on the other hand I think shortcuts were easier on my prototype, keep in mind that I obviously didn't have enough time to really master the device. But honestly the main reason why I decided to make two units is to lower the required effort at a certain speed.


Now hark for thou shalt witness ze AwesomeHand*2 a.k.a. Might-Be-Better-Than-A-DataHand a.k.a. Way-Cheaper-Than-A-DataHand.

Dammit I forgot to make a more artistic overall picture:/

click on any picture for more megapixels.

Pictures (all of them): http://czlug.icis.pcz.pl/~timon/aadh/pictures/gal/


General features:
    [*]40 finger keys with adjustable position,
    [*]2 left thumb switches,
    [*]1 right thumb switch,
    [*]2 axis clickable analog joystick, used as 4 keys or an analog joystick in gaming mode,
    [*]thumb trackball, on bearings, optical sensor and electronics from logitech trakman wheel,
    [*]n-key rollover (almost as left pcb is the old version),
    [*]atmega32 microcontroller @ 12MHz,
    [*]usb flashable firmware,
    [*]chair mountable (only),
    [*]leather palm pads!
    [/LIST]

    Principles of operation & keymap:
    There is a lot of different possibilities here, and some will fit certain tasks better than others. Below is the current state of my setup which I'll update as I make changes.

    There are 3 modes which define the function of most finger keys,   Normal, Move and NAS (numbers&symbols). A given mode is only active when the aproperiate joystick direction, or switch is held. The default mode is Move, the most important switch is RT which changes into Normal.
    Code: [Select]

    Joy: LT: RT (right thumb switch):
    NAS+Ctrl Ctrl Ctrl+Shift Alt
    NAS Space Norm
    NAS+Shift Shift Shift Empty

    Key 5D (JScr) when pressed in Move mode causes the Joystick to behave as a scroll wheel, where the angle defines the scrolling speed.
    Code: [Select]

    Common keys existing in all modes:
    0W: 0E: 1W: 6E: 7E: 7W:
    BackSpace Tab Escape Enter Space Delete

    Normal (_ means it's one of the common keys, space means empty slot):
      0:      1:      2:      3:            4:      5:      6:      7:

      '       r       f       c             g       c       r       l
    _ a _   _ o x   = e -   y u i         d h f   / t \   b t _   _ s _
      ;       q       j       k             m       w       v       z

    NAS:
      0:      1:      2:      3:            4:      5:      6:      7:

      `       ,       .                                              
    _ 0 _   _ 1       2       3 4         5 6       7       8 _   _ 9 _
                                                                     

    Move:
    0: 1: 2: 3:

    F3 F4 PgUp Up
    _ F5 _ _ F6 Hom F7 End Lef F8 Rig
    F1 F2 PgDn Dow


    4: 5: 6: 7:

    MMB ScrU F11 F12
    MB4 LMB MB5 JScr _ _ _
    RMB ScrD F9 F10

    This time there is no relocating of zxcv when ctrl is held since all the keys have more or less the same ease of access.


    Evaluation:

    Pros:
      [*]40 keys at your fingertips,
      [*]no hand/wrist movements, small & diverse finger movements, and arguably most of whatever applies to the datahand http://www.datahand.com/products/proii.htm
      [*]integrated trackball means resonable pointing accuracy & speed without moving your hand
      [*]those 40 keys can also be 40 mouse buttons, macros, or whatever you can program into the firmware
      [*]reasonably cheap and easy to make
      [*]it's awesome (it even looks awesome if you ask me)
      [/LIST]

      Cons:
        [*]relatively steep learning curve (though in my experience learning dvorak on a normal keyboard was harder)
        [*]requires getting used to and carefully adjusting the position, as it's easy to unconsciously tense muscles at first
        [*]can't be fully and quickly operated single handedly (this can to a certain degree be mitigated by handsensing and major modes)
        [/LIST]

        Shortcomings:
          [*]side finger keys are quite delicate and can easily unglue if hit by something or are pressed with quite a bit of force,   didn't happen to me in normal use but I unglued a few keys with clothes or falling objects
          [*]pressing two adjecent side finger keys (e.g. 3N & 3E) at the same time is a bit difficult
          [*]tact switches have a relatively large margin of error of force,
          [*]tact switches seem to have a relatively long bounce, which can result in double keypresses
          [*]double tapping is a bit hard (though I might just not be used enough to it yet)
          [*]the down keys can have uneven travel, require very close to center pressing (some more than others so cherry picking is advised)
          [*]adjusting the position of the pcb is hard and annoying (though it has more freedom than a datahand)
          [*]the palm pads aren't exactly the perfect shape
          [/LIST]

          Initial experience/thoughts:
          At this moment I'm a few days into using it and writing at around 200cpm. The main difference, as compared to the previous prototype, is the ease with which I can sustain this speed, and hopefully very soon around 300cpm which is my typing speed on a regular keyboard. Apart from that there is the huge benefit of not having to rapidly switch modes when typing, and more room on thumb switches. I'm noticing I have bursty typing where I pause a bit and really quickly burst some words so the potential for really high speed seems to be there (I also had this with the one haded versions but to a lesser degree). I'm thinking that dvorak may not be the best keymap as it feels a bit heavy on the right hand, also certain key combinations could prove significantly faster/slower with this (same keywell vs different etc.) so it might make sense to try to optimize for most common character pairings, but that's some complex analysis/thinking for probably a minor difference so I don't care.

          Experience/thoughts after about 2 weeks (with a relatively low amount of typing, due change of town):
          Honestly I thought I would be better by now, in this my avg is about 230-250cpm, max is 265cpm (47correct, 1wrong words), though I'm abusing that test a bit which means the results are not representative of my normal typing performance. In this I just managed hmm 45wpm typing about 3 lines, which surprised me a bit to be honest;) the avg is probably more or less 35-40wpm.
          The additional Space on the thumb joystick makes my typing more fluent, I think it's just that my brain is not yet fully used to the independent finger movements as I don't have problems with many rapid sequences of keys yet others and the space after words (right pinky, west key) is a bit problematic.

          Speed after about another 2 weeks:
          I haven't been doing any training/testing except natural typing so this time the results should be a bit closer to my real world speed. In this I got:
          cpm:  wpm:
          185               (I didn't write the first result down, but it was something like that)
          285    50
          291    53
          295    52
          In this:
          wpm:
          41
          43
          48
          49
          So not so bad, but still not so good.

          Construction & DIY instructions/tips:

          If you're thinking of building your own you should first think about your specific needs, skills and time, as there are quite a few possibile directions (of varying difficulty) in which you can go:
          making the pcb for finger keys is not necessary (although advised), like this,
          the plastic for finger keys can be cut out from cd boxes with a trimming knife and careful bending,
          the joystick optional, like this, or this
          the thumb trackball is optional,
          you can just use the housing with microball bearings from the logitech,
          you could use the controller from a standard keyboard, like this, or this, although this will require a custom driver (a keymap might be enough in some cases, need to verify),
          you can just make the left unit and use a mouse in your right hand (along the initial concept),

          possibilities not yet explored:
          foot pedals - a very good idea, I didn't try it because of the positions in which I sit in front of the computer and the fact that I change them often
          capacitive switches under palmrests to sense the hand and automatically switch into one handed modes (assuming you can handle two or three different keymaps;p)
          the use of joystick as a mouse
          the use of finger switches as a mouse (like in a datahand)
          the use of cherry mx switches for down finger keys (I really goddamn want to explore this one)




          Parts (the prices are very approximate as you can find much worse/better deals):
          40x   NINIGI TACT-65      = 40 x 0.068   = $2.72
          8x      = 8 x $0.25   = $2
          3x   micro switch   = 3 x $0.8   =$2.4
          1x   an. cl. joy      =   $4 or $10 for a cheap gamepad
          1x   log. tm wheel   = $30
          2x   3mm thick acrylic   =
          2x   pcb         = ordered around 20$ ?
          afew   angle bars      = a few $ maybe I didn't count


          1x   ATMega32      = $8.47
          1x   DIP40         =
          44x   diodes      =
          2x   C22pf         =
          1x   C100nf      =
          ...      =

          Argh finding all of this is annoying;p the parts are mostly cheap, the tools and time are the issue if you ask me. Though all in all it's not gonna be cheap I think I spent around $100 to $200 on the whole project, which to me is significant cash but still completely worth it;)

          Tools:
          soldering iron - duuuh
          a dremel with:
             a small metal cutting disk - not necessary if you use 1mm thick plastic
             something for grinding
          sandpaper - cheap method for grinding the side keys so the edge resting on the pcb is flat
          table drill - only needed to drill the pcb


          Finger keys:
          This is arguably the most important element, and the most lacking as compared to a datahand. The idea to just glue the plastic to the tact switch was my friends idea, I was initially thinking of stupid stuff like cutting in the a pcb to make a pivot point or something;p I actually have another possibly much better idea, though harder to do without more precise equipment (which I kinda might be able to get my hands on), but that's for much later.

          The generally simplest and most consistent method is to cut out the plastic rectangles, grind if necessary, then glue the tact switches on with a simple aligning tool:


          Then just solder them into the pcb, and slightly align as the holes should have a bit of room or won't be perfectly aligned. Start with the west and east keys that are next to each other as they are the hardest to position. The plastic for 1W and 6E has to be grinded a bit on the side to not block on the other tact switch. The sizes I used were 15mm width, and 22mm and 27mm height, I thinking this a bit too high and I'll rise the down key another mm or two (this also lowers the actuation force for side keys). Btw the plastic for the keys is 3mm thick so I can grind it into a more datahand like shape but I'll probably never get to it. More pictures.

          With the first non pcb prototype (pictures) I actually printed the positions of parts and glued that below the plastic, glued on the tact switches, then glued to them the plastic of the key and finally inserted the down key. The results were quite good, this order might be preferred since it might be hard to glue the tact switch to the base with the key plastic already attached.

          The down key is a bit problematic, as the ones I got were a bit too hard so I shortened the springs more or less this much. The internals are here pictures 11 to 16. I first glued to the switch a 13x13x1mm plastic, then on top of that I add the 15x15x3mm black plastic with a concave top (grinded with dremel), with a small bit of double sided sticky tape in between.

          The pcb layouts, the important files are second4b and second5b for http://pcb.gpleda.org/.

          Joystick:
          The internals are here pictures 1 to 10. Again I shortened the spring (not pictured), but with the two-handed version that might not be necessary as rapid mode switches aren't necessary.

          The trackball:
          Most important pictures here.

          The controller, schematic:
          Pictures here 514, 515, 535-538.

          The firmware:
          I've had some serious issues with making it a keyboard&mouse combo (Xorg had trouble handling it, windows completely refused to recognize it), but I think I managed though the gaming mode suffered death because of it. I'll try to clean it up a bit and release soon.
          Unfortunately I'm having some problems in windows and linux with the mouse not working at first (in linux I just need to replug it), I'll try solving this during the next few days and try releasing a preliminary version, unfortuntely I won't be able to completely test the build and initial flashing instructions as I don't have most of my equipment with me:(
          I think the problem is mostly beceause of my usb hub, but I had no time to really test anything or organize the firmware. Either way I'm putting it out, it's rough and ugly and may require a few touchups to compile & flash & work, but that's better than nothing atm. Contact me if you need help (email in readme). Firmware.

          The os side driver:
          I didn't touch it for quite a while, and I won't unless someone wants to make a version without the controller. Keep in mind I can only write it for linux (it's based on Xorg evdev).

          Shorted pictorial history of evolution:

          This device has gone through quite a few changes both physical, electrical, and conceptual. A few pictures more or less tell the story:

          The controller is from a standard usb keyboard, and the whole logic of modes, chords, etc was in the modified evdev X driver.


          This is the most important progress (I don't remember why I didn't make the north key higher;p)


          Then the new adjustable chair mount with a palm pad made from a mouse top.


          Then my first homemade pcb, an atmega32 controller, and a joystick (a bit later).


          At more or less the same time I decided to make a right unit with this thumb trackball.


          Which led to this, but finishing the right unit was on hold as I was quite happy using it.


          But that was not enough so I finished the right unit to what you saw at the top, if you're interested in more details check out comments #1 to #35.




          Old stuff for reference:


          The second prototype:

          Hear me, hear me. For I bring you the one and only AwesomeHand a.k.a. Almost-Better-Than-A-Datahand.
          http://czlug.icis.pcz.pl/~timon/awesomehand/Picture%20059.jpg
          More pictures: http://czlug.icis.pcz.pl/~timon/awesomehand/

          It has 5 switches per finger Down/South/North/West/East, and 6 for the thumb (the thumbpack is from the first prototype). In general this is almost a completely different device from the first prototype. The action is very light, the side switches when placed horizontally can't even support the weight of my finger, I calculated they require about 22grams but that is mostly a guess;p. The switches I used are unfortunately noname but they are definitely a lighter kind (you have some specs here http://www.ninigi.com/index.php?show=products&mnuID=16 the price is generally very low (I paid 0,8pln vs 2,4pln for the previous ones). You have some to scale inkscape drawings (though I might have made a mistake with the legs of switches) here http://czlug.icis.pcz.pl/~timon/awesomehand/awesomehand.svg.

          The best part of all this is that it can be made on a pcb:) Though universal pcbs aren't the best since the spacing is 4,5 and 7mm for the outer legs. You could also use the horizontal switches that have the very long nipple (for lack of a better word) and glue the plastic to it's side, though then you also need additional "something" to block it from rotating. In general a lot can be made different and better.

          Initial experience and thoughts on what could be better:
          Unfortunately for now (second day) worse than I hoped. With this one the positioning of elements and the hand is far more important. I definitely made the center key too high, also it would probably help to have it concave (for more precise positioning), but that is a bit problematic since the switch is off center (to lower the resistance) and it rotates a bit. It might be better to make the center key on a normal keyswitch though the cherry mx may be a bit too large so something like this would be necessary (just with a nice action). Shaped side plates would also help, I really wish I had a makerbot or something like that;) Then again it's possible to just glue a few cd boxes and grind with a dremel into the right shape but 20 elements is painful.


          The mechanism of the driver is the same for now but I'll be changing it in the near future.
          The new keymap is similar, also a bit based on dvorak, with quite a bit of free space:
          Code: [Select]

          Norm:
            0:      1:      2:      3:

            l       r       f       c
          b a p   y o g   w e m   d u i
            s       n       t       h

          01 12 23
          D: k v j
          S: q x z

          Move:
          0: 1: 2: 3:

          Esc PgUp Up
          Del BaSp Hom Spa End Lef Ent Rig
          Tab PgDn Dow

          Num (with standard shift chars):
            0:      1:      2:      3:

            8       9       ;       /
          [ 4 ]   - 5 =   \ 6 '   , 7 .
            0       1       2       3

          01 12 23
          D: `


          The first prototype a.k.a. Almost-A-Datahand:

          First a general picture of the first (more or less) prototype:
          http://czlug.icis.pcz.pl/~timon/almostdatahand/Picture%20003.jpg
          More pictures, movies at: http://czlug.icis.pcz.pl/~timon/almostdatahand/

          Note that this is relatively easy to make as it doesn't require any special skills or equipment. The hardest part for me was connecting the cables to the controller board since the contacts were at a non-standard spacing. The plates to which the switches are glued are made from plastic from cd boxes;)

          Each finger has 3 switches north/down/south, and the thumb has 6 switches, the controller is from a standard keyboard, wired so the thumb switches can be pressed in any combination and not block each other and finger switches. The whole logic is in a modified xf86-input-evdev-2.4.0 driver so it's linux only until someone writes something for windows (don't count on me).

          The keymap is just a first relatively simple attempt based on letter frequency in english, it's a bit similar to dvorak since it has aoeu and htns, I'm gathering stats to maybe improve it.

          Fingers: 0 is pinkie, 3 is index, ND means North+Down simultaneous, 12 means fingers 1 and 2 simultaneous on the same row.
          Code: [Select]

          Norm: Move Num (with standard shift chars)
          Fin: 0 1 2 3 0 1 2 3 0 1 2 3

          N: l r d i LeAr DoAr UpAr RiAr 8 9 . -
          D: s n t h Home PgDo PgUp End 4 5 6 7
          S: a o e u Del BaSp Spa Ent 0 1 2 3

          ND: y b p g [ ] , =
          SD: w m f c Tab Esc ' \ / ;


          01 12 23 01 12 23

          N: x z
          D: q
          S: k v j `

          Thumb:
          http://czlug.icis.pcz.pl/~timon/almostdatahand/Thumb%20dir.jpg
          Code: [Select]

          D:    Move mode
          U:    Alt
          NW:    Num mode
          SW:    Shift
          NE:    Ctrl
          SE:    Fn mode


          Ohh and I have S: x c v z when Ctrl is pressed... guess why;)

          The exact behaviour of the driver is a bit hard to explain, and honestly I don't exactly remember/know all of it myself so I'll just discuss the main characteristics.

          Ctrl, alt, shift act normally, so if you press shift it sends a shift_press, and any keys sent will be shifted, when you release it it sends a shift_release.
          The finger switches however send the actual key press and release to the system only when a switch is released, so just pressing a it results in nothing. When you press a switch, then press another one, and then release any of them the result will be a chord of the two switches.
          The mode switches if clicked (press and release) will just modify the next finger switch, so a click on Move, then a press and hold of alt, then a click of SD3 will result in alt+escape (which would be impossible without this behaviour on the current keymap).
          If you press a mode switch, then release a finger switch, it will be influenced by that mode and will also put the mode in a hold state which means that mode will also influence all keyreleases until the given mode switch is released.
          If you double click (no timer currently so just 2 clicks in a row are enough) a mode switch it will lock it so it influences all finger switches until any the same mode switch is pressed again (removes the mode) or a different mode is entered.
          There is currently no key repeat which is a major drawback in some cases, I'll work on it when it annoys me enough;)

          Experience:
          After using it a little I reached about 8-15wpm;p But I'm not used to it yet, and I make quite a few mistakes and often have to think where a letter is. So 20 should be no problem and I'm hoping I'll reach somewhere around 30-40. Which for me would be very useful since it completely frees the right hand and it makes certain operations a lot easier since no jumping around the keyboard is needed. By the way I type 50wpm on a normal keyboard (dvorak).

          At first my arm hurt but I was probably unconsciously tensing muscles, and the unit was on the desk, after a bit of use and holding it on my leg I don't feel uncomfortable though I haven't typed anything on it for longer periods of time.

          Feel, general mechanics:
          These switches are a bit too hard for my tastes, but then again they aren't that bad. The side switches for fingers would be awesome since that's 8 more non-chorded keys, but making them so you don't have to have the fingers 5cm apart is quite a bit harder (though possible since they are offset) and also the force required to press these kind of switches might make them a bit too tiring.
          I'm also thinking of bending the internals to lower the force a bit but that's troublesome and it also shortens the travel until a click.
          the first one is normal, the two middle ones are bended, and the right one is a different kind


          Not so exact dimensions:
          The switchpack is the most important:
          plate
          plate with switches
          plate with switches glued to lego (north is on the left)
          I may have placed the finger switches a bit too close as I sometimes press ND or SD instead of D. Then again placing them farther apart would make ND and SD harder to press and your finger could get stuck on the metal of N when pressing ND (longer fingernails solve the problem). Keep in mind I have small hands, so many people would probably need to make the switchpacks differently.

          General:
          width low
          width mid
          height right side
          The second switchpack from left should be a bit more to the left in my prototype but unfortunately lego is discrete;)


          Wiring:
          I just did a 2x6 grid for the fingers, and 1x6 for the thumb. The only important thing is to make sure each switch gives a single unique keycode, and they don't have any weird side-effects. You can check this with: evdev printer along with some initial experiments (WARNING might destroy your PC since it's very hackish code)
          It's very important for the thumb to be separate since you'll be making many chords/combos with it.

          Driver:
          This might also destroy your PC, since it's very very hackish code, it made my xorg segfault quite a bit at first but I haven't had any segfaults since I've "finished" it.
          You have the enum with keycodes at src/evdevmy.c:277, where you have to write the right ones for your unit. Also i use dvorak so you'll have to set the keymap to dvorak for it.
          I've got xorg 1.8.1 with linux 2.6.34. I've also had some problems with auto detecting of devices and the mouse scroll registering twice. I solved it more or less by specifying everything in xorg.conf and doing mv /dev/input/event3 to /dev/input/myevent3 before starting X.
          my xorg.conf
          Keyboard2 is the awesomehand.
          I'm sorry for this being soo hackish but I didn't want to waste too much time. I'll make this a bit more normal if I decide the device really is useful.
          xf86-input-evdevmy-2.4.0.tar.bz2

          Pictures, Movies:
          http://czlug.icis.pcz.pl/~timon/almostdatahand/
          « Last Edit: Fri, 18 February 2011, 09:47:01 by timon37 »

          Offline Input Nirvana

          • Posts: 3372
          • Location: Somewhere in the San Francisco Bay area
          • If I tell ya, I'll hafta kill ya
          Almost-A-Datahand
          « Reply #1 on: Sat, 22 May 2010, 21:06:42 »
          Thanks for posting your progress so far, interesting reading and idea path you are pursuing.
          Kinesis Advantage | RollerMouse Free 2 | Apple Magic Trackpad | Alphagrip | Colemak | all on Mac
          Evil Screaming Flying Door Monkeys From Hell
          Thanks much, Smallfry

          Offline Infinite north

          • Posts: 341
          Almost-A-Datahand
          « Reply #2 on: Sat, 22 May 2010, 22:47:40 »
          Looks like another unnamed forum member made it.
          « Last Edit: Sat, 22 May 2010, 22:50:20 by Infinite north »

          Offline didjamatic

          • Posts: 2443
          Almost-A-Datahand
          « Reply #3 on: Sat, 22 May 2010, 23:10:21 »
          That looks like a collaboration between Webwit and Ripster.

          IBM F :: IBM M :: Northgate :: Cherry G80 :: Realforce

          Offline timon37

          • Thread Starter
          • Posts: 24
          Almost-A-Datahand
          « Reply #4 on: Sun, 23 May 2010, 10:28:45 »
          If anyone wants me to make a photo from a certain angle or whatever tell me now since I only have the camera for a few days.

          Offline didjamatic

          • Posts: 2443
          Almost-A-Datahand
          « Reply #5 on: Sun, 23 May 2010, 10:50:58 »
          It's really cool, I love projects like this.
          IBM F :: IBM M :: Northgate :: Cherry G80 :: Realforce

          Offline (X "_____")

          • Posts: 24
          Almost-A-Datahand
          « Reply #6 on: Sun, 23 May 2010, 13:27:44 »
          Looks great, and nice work getting full functionality with so few switches. I've tried playing around with cherry MX blues to do something similar to no success. They're far too large and stiff to name just 2 problems.

          Offline timon37

          • Thread Starter
          • Posts: 24
          Almost-A-Datahand
          « Reply #7 on: Sun, 23 May 2010, 14:13:59 »
          This kind of switches is quite popular and very easy to build something with:) http://www.chordite.com/protophotos.htm
          You just have to be careful to not melt the plastic when soldering, as it can make the action hard (happened to me). Also some switches are harder than others so it might be a good idea to check each one and adjust a bit. For example the SW thumb switch was very hard and that's why I initially put it so close to the thumb http://czlug.icis.pcz.pl/~timon/almostdatahand/Picture%20026.jpg, but I adjusted it (an hour or so ago) and put it more to the left so it doesn't constantly press against my thumb. Btw I've added a picture of the internals.

          Offline Input Nirvana

          • Posts: 3372
          • Location: Somewhere in the San Francisco Bay area
          • If I tell ya, I'll hafta kill ya
          Almost-A-Datahand
          « Reply #8 on: Sun, 23 May 2010, 14:32:16 »
          A thought on pics:

          I use cameras to document projects in the field. I make a lot of specific photos. I also just click general ones here and there for no apparent reason. Months later, upon review for whatever reason (usually a dispute), the general, non-specific photos often have carried as much value, if not more, than the specific photos. It's because the general photos are of items that are not scrutinized as much and people tend to let non-crucial items slide. Also, the general photos help as points of reference, or as comparative value.

          Take lots of crazy photos.
          Kinesis Advantage | RollerMouse Free 2 | Apple Magic Trackpad | Alphagrip | Colemak | all on Mac
          Evil Screaming Flying Door Monkeys From Hell
          Thanks much, Smallfry

          Offline timon37

          • Thread Starter
          • Posts: 24
          Almost-A-Datahand
          « Reply #9 on: Sun, 23 May 2010, 18:01:58 »
          I forgot to mention the perfect mouse for this: http://warmouse.com/

          Offline timon37

          • Thread Starter
          • Posts: 24
          Almost-A-Datahand
          « Reply #10 on: Wed, 26 May 2010, 15:14:12 »
          Muhaha I think I know how to make a better one ]:->

          Offline Input Nirvana

          • Posts: 3372
          • Location: Somewhere in the San Francisco Bay area
          • If I tell ya, I'll hafta kill ya
          Almost-A-Datahand
          « Reply #11 on: Wed, 26 May 2010, 15:19:31 »
          You need one for each hand...
          Kinesis Advantage | RollerMouse Free 2 | Apple Magic Trackpad | Alphagrip | Colemak | all on Mac
          Evil Screaming Flying Door Monkeys From Hell
          Thanks much, Smallfry

          Offline Input Nirvana

          • Posts: 3372
          • Location: Somewhere in the San Francisco Bay area
          • If I tell ya, I'll hafta kill ya
          Almost-A-Datahand
          « Reply #12 on: Wed, 26 May 2010, 15:20:06 »
          Quote from: timon37;186133
          I forgot to mention the perfect mouse for this: http://warmouse.com/


          You need one for each hand...
          Kinesis Advantage | RollerMouse Free 2 | Apple Magic Trackpad | Alphagrip | Colemak | all on Mac
          Evil Screaming Flying Door Monkeys From Hell
          Thanks much, Smallfry

          Offline timon37

          • Thread Starter
          • Posts: 24
          Almost-A-Datahand
          « Reply #13 on: Wed, 02 June 2010, 11:03:56 »
          Unfortunately my friend needs the camera so I can't make a history of all the changes to the second prototype:( But in case anyone is wondering the thing is constantly evolving;) I'm not sure how I should go about this? Every once in a while update the article with more info, or post everything when I consider it done (will probably take quite a while), or give some small updates in the discussion and in the end writeup a larger piece?

          Offline Input Nirvana

          • Posts: 3372
          • Location: Somewhere in the San Francisco Bay area
          • If I tell ya, I'll hafta kill ya
          Almost-A-Datahand
          « Reply #14 on: Wed, 02 June 2010, 11:30:37 »
          I would like to be able to see the project as it comes along in real time. Whatever vehicle that is used wouldn't matter to me. Maybe someone else has a better idea on article vs. discussion.
          Kinesis Advantage | RollerMouse Free 2 | Apple Magic Trackpad | Alphagrip | Colemak | all on Mac
          Evil Screaming Flying Door Monkeys From Hell
          Thanks much, Smallfry

          Offline timon37

          • Thread Starter
          • Posts: 24
          Almost-A-Datahand
          « Reply #15 on: Wed, 02 June 2010, 14:27:19 »
          Ok guess I'll use the discussion for now since that encourages feedback, makes a clearer history and moves the article up in the list;p
          At the moment I write at about 16wpm, and again with lots of mistakes (which I always correct) so it'll get better hopefully.
          I have considerably raised the hand's resting position and the thumb switches, and I used the top from a mouse as a palm pad. This helps a lot with the new finger switches, which don't require much force but require side movements. I also moved finger 2 a bit closer as it was too far away relative to other fingers. And I bent all the thumb switches to lower the resistance a bit.
          I also mounted the whole unit it to my chair using a few pieces of metal that were practically perfect for the job (lucky). The result has quite a few axes of freedom which is very important since your arm/hand is resting in that position quite a lot so it has to be a really good position. It also wobbles a bit unfortunately.
          I changed the driver to use time based chording (only for finger chords), this works by delaying the sending of the keypress by a 100ms and if another key was pressed in the meantime we treat it as a chord if not we just send the keypress. It works quite well and means autorepeat now works. The autorepeat functionality of the kernel evdev device is used for timing the chording (which is probably in the hardware).
          What I'll probably do next is lower the center switch or make the north higher, figure out the best relative positions and rotation of switchpacks, try to make the position of all the finger switches more easily adjustable (like in the datahand) and do something about the evil west switch finger 2 which often fails to register.
          And if anyone wants to make one themselves, do it, I'll help as much as I can through irc or jabber or whatever, note that the second prototype is much cheaper to make so a full datahand would cost about 14$ for the switches +/-50%:)

          Offline timon37

          • Thread Starter
          • Posts: 24
          Almost-A-Datahand
          « Reply #16 on: Sat, 05 June 2010, 11:00:31 »
          Modifying anything in this is a painful process as it is quite easy to unglue something else. But I managed to lowered the center keys by getting rid of the bottom lego brick,  and I also put the pinkie at an angle. The current positions of switches are more or less like this:

          Non gimped original:
          The green circles mark where I added screws with plastic pads so I can slightly reposition the relative positions of fingers without having to cut/clean the glue and reglue. It's all a bit better though it's still not what I'd like it to be, I hope webwit will have enough time to measure the relevant sizes of his datahand since that would help direct me. All in all I can reach about 22wpm atm (though it depends on the text a lot) with this test:
          http://www.typeonline.co.uk/typingspeed.php
          Also using this is becoming quite comfortable:)

          Offline Input Nirvana

          • Posts: 3372
          • Location: Somewhere in the San Francisco Bay area
          • If I tell ya, I'll hafta kill ya
          Almost-A-Datahand
          « Reply #17 on: Sat, 05 June 2010, 11:13:40 »
          You can also contact Lynn at Datahand, she is always extremely helpful and curious about peoples Datahand-like creations.

          By tilting the key, you gave me an idea for my project. Thanks for being so ergo-conscience!
          Kinesis Advantage | RollerMouse Free 2 | Apple Magic Trackpad | Alphagrip | Colemak | all on Mac
          Evil Screaming Flying Door Monkeys From Hell
          Thanks much, Smallfry

          Offline timon37

          • Thread Starter
          • Posts: 24
          Almost-A-Datahand
          « Reply #18 on: Sat, 05 June 2010, 18:35:23 »
          Quote from: webwit;189975
          I'll have the sizes for you soon. Although you are making it more difficult than it has to be. The DataHand is completely adjustable and has no standard sizes. I have three types of hand rests, finger to wrist distance and tilt are adjustable. The idea is you can fit it in the way you like most and gives you most comfort. So you should make your device to fit your hand and fingers, another device can't define these for you. But I'll get you those numbers so you can their design out and see if it helps you further.


          True true, but harder than it sounds since I can't easily position certain things the way I want and glue at the same time, also the right way isn't as obvious as I thought it would be since there are lots of ways you can move things. I'm trying to make it more adjustable to limit the amount of glue, and simplify finding the sweet spot. The sizes I could use the most are of the wells themselves since moding them is very painful and I don't want to do it more than 3 times, especially if I just reach the same thing they did;p Btw do you find that you would like to move a finger well a bit in relation to other wells or are the 4 knobs and different pads enough?

          Offline kriminal

          • Posts: 831
          Almost-A-Datahand
          « Reply #19 on: Sat, 05 June 2010, 18:48:03 »
          this is some impressive work...
          Geekhacked Filco FKBN87M/EB modified with Brown, black and blue cherries, doubleshot keycaps
          Deck KBA-BL82 with Black cherries
          Cherry G84-4100LCMDK-0 Cherry ML switches
          Cherry G80-8200hpdus-2 Brown cherries
          IBM Lexmark 51G8572 Model M Keyboard
          Geekhacked Siig Minitouch KB1948
          IBM Model M Mini 1397681

          Offline timon37

          • Thread Starter
          • Posts: 24
          Almost-A-Datahand
          « Reply #20 on: Tue, 08 June 2010, 09:51:39 »
          Ok I've managed to get the friend with the phone, so I got some pictures of the new chair mount/case.
          http://czlug.icis.pcz.pl/~timon/mount/
          The previous one was the whole lego unit (as in previous pictures) attached to angle bars. In the new one you can see that the metal parts are actually the main frame to which two lego groups are attached, one for the thumb switches and one for the finger switches. The whole thing is actually a bit too adjustable and annoying since things get lose while adjusting, but that's better than nothing. The pictures of the metal alone are of a second one I made so you can see better how it's built, though it lacks a single angle bar for the thumb switches. The finger switches are attached a bit "whatever" with the legos since I'll be mostly working on them now.

          Offline ricercar

          • * Elevated Elder
          • Posts: 3339
          • Location: Silicon Valley
          • mostly abides
          Almost-A-Datahand
          « Reply #21 on: Tue, 08 June 2010, 22:02:08 »
          Look what they've done to my song, Ma!



          Bold and daring. You're inspiring me to hack my second one up. Extra enclosures are $40 from Kinesis, you say? Have you ever inquired about complete Kinesis-height key sets?
          I trolled Geekhack and all I got was an eponymous SPOS.

          Offline Input Nirvana

          • Posts: 3372
          • Location: Somewhere in the San Francisco Bay area
          • If I tell ya, I'll hafta kill ya
          Almost-A-Datahand
          « Reply #22 on: Wed, 09 June 2010, 00:35:23 »
          I had asked about prices for many parts a year ago. I did check on keys, $30-35 I think. $25-30 for an expanded memory module.

          I only cut the top half of the keyboard, not the bottom yet. Cutting turned out to be a painless non-issue. Super easy. Right now, I can put the keyboard top halves onto the one-piece bottom, and have the original keyboard intact. I've seen others use Dremels, and other assorted methods to cut these. Bad news hack jobs. Right now, the keyboard looks like it came cut in two.

          I think a cost effective way of having Contour parts is to buy a unit on fleabay for under $80.
          Kinesis Advantage | RollerMouse Free 2 | Apple Magic Trackpad | Alphagrip | Colemak | all on Mac
          Evil Screaming Flying Door Monkeys From Hell
          Thanks much, Smallfry

          Offline Infinite north

          • Posts: 341
          Almost-A-Datahand
          « Reply #23 on: Wed, 09 June 2010, 01:01:21 »
          instead of using that mouse shell you should get a palm sized trackball mouse that you activate with a foot switch or left hand button. that way you wouldnt even need to move your hand to use the mouse. another possibility would be a track point\joystick for your thumb. you could bust apart an xbox controller or some pos pc controller from goodwill for the second idea.
          « Last Edit: Wed, 09 June 2010, 01:04:04 by Infinite north »

          Offline timon37

          • Thread Starter
          • Posts: 24
          Almost-A-Datahand
          « Reply #24 on: Wed, 09 June 2010, 08:04:13 »
          Hmm interesting ideas, there are lots of possibilities and I unfortunately won't be able to pursue most of them;p When building the finger wells at one point I had the N/S/W/E glued but not the center switch (it was loose inside the well) and when I tested it it was more like sliding the center switchc than pressing the N/S/W/E, it felt quite good so it might be reasonable to actually use a clickable analog stick with a concave top for the index finger (or all if it is better) that normally works as 5 keys and doubles for mouse movement in a different mode. Either way that requires the use of ADCs from what I know, the atmega32 has 8 channels so a single one is enough for 4 sticks, so it's all doable but quite a bit of work. A trackball might be hard to fit with the rest in a way that would be comfortable for both uses. For the moment I'm sticking with the relatively simple idea of a datahand and trying to make it cheap, easy to make, and good enough;)

          Offline timon37

          • Thread Starter
          • Posts: 24
          Almost-A-Datahand
          « Reply #25 on: Thu, 24 June 2010, 17:00:51 »
          Ok an update on current status. I've made a pcb for the switches (my first one) which gives me more or less datahand like features and it's easier to change the switches. I'm also experimenting with the sliding center key and it's not very good atm, but I didn't have much time to properly cut and file all the plastic parts, change some of the bad switches and get used to it. So I'm withholding my opinion on this until I fix some things. And a good palm pad would be very good since I can't find a good hand position:( I also made a controller for this based on the "rump" and "AVRUSBBoot" which is a bit of a failure since I missed that Mnemonix already did that:/. Either way no more drivers necessary and it can be the only keyboard. I'm also thinking of a few changes like integrating it a bit more with the mouse, e.g. side mouse key acts like a mode change or something like that (though the lag might be too big), also I'll get rid of finger chords and have only thumb chords and see how that works and maybe make 3 thumb switches send keys if they are pressed and released alone. Ohhh and I'm warming up to the idea of an analog stick for the thumb placed like on the warmouse since it can be normally used as 4 keys (or 5 or 8 if it's clickable) and as a joystick/mouse and should be quite comfortable.

          Offline timon37

          • Thread Starter
          • Posts: 24
          Almost-A-Datahand
          « Reply #26 on: Wed, 30 June 2010, 14:13:28 »
          Next update/teaser, I concluded the sliding center key was no good due to mechanical issues. I still consider the concept of using analog or digital sticks for fingers reasonable but I won't experiment with it in the forseeable future. After changing the keymap to get rid of finger chords (kjqvxz are simply in move mode), which btw I should have done immediately after making the 20 finger switches prototype, and changing the faulty switches I'm back to more normal (for this piece of garbage) speed which is 22-28 wpm avg, top is about 33 for a single sentence but I still make mistakes and often stutter so there's still much place for improvement. The teaser is that I decided to switch to a thumb trackball, and therefor I'm gonna make a right awesome hand with it integrated, the planned donor is http://www.trackballworld.com/40-160.html which I burrowed from a friend to test, in terms of internals it's perfect for moding, in terms of accuracy and quality it's not so good but at least it doesn't cost 100$. If anyone has a better idea for a donor trackball it's very welcome, the important part is that the pcb is not too large around the ball or the ball housing with sensor can be moved away from the rest.

          Offline timon37

          • Thread Starter
          • Posts: 24
          Almost-A-Datahand
          « Reply #27 on: Thu, 08 July 2010, 17:06:02 »
          Hehe borrowed the camera from my friend again, so pictures and movies are uploading (160mb) to http://czlug.icis.pcz.pl/~timon/new/ if you get a forbidden error on a file then I haven't changed permissions yet so just wait a bit. The pictures without a palm(mouse)pad are from yesterday.
          As you can see I added a joystick to the left (still only) unit, it's assigned as ctrl and shift on horizontal axis, move and num modes on vertical, so shift on numbers requires just moving into a corner which is very easy, the downside is that ctrl+shift is impossible. The click is unfortunately just a bit too hard to be very usable, even though I shortened the spring (movement also required too much force) and changed the tact switch to a weaker one:( The stick has a bit of trouble coming back to center from the low position (move mode) but it's not much of an issue.
          Most of the finger switches with plastic are from the old prototype I just changed the two north ones that are longer. The plan was to make the side keys from the black plastic which would make the center space smaller from 20mm to about 16mm but I didn't have enough time and willpower to do it. Btw I have trouble hitting west with the ring finger as it's just a bit too far away and my fingers are weird:p
          Either way in one of the movies you can see me typing about 23wpm or 153cpm, in that test my current best is 29wpm or 182cpm, usually I get about 27, keep in mind that it is only most frequent words so it should be more favorable for this device, but in practice I can actually get 30+ on http://www.typeonline.co.uk/typingspeed.php when typing about 2 lines since the average word length varies quite a bit etc. The movie is so short since there is free space on the card for only 26seconds so I had to start typing and hit rec when about 20sec was left, and good thing this is a one handed device since I could hold the camera with the right hand;)
          As for the right unit It'll take quite a bit of time before I make it since I've got a lot to do. I'm planing to use diodes to limit key rollover, the current pcb was done so I could do a 4x5 matrix or 4x10 to limit rollover but with two units diodes are the only reasonable way. Now if anyone has an idea how that sensor in the trackman wheel (pictures 527-534) works and whether it can be operated with an atmega32 tell me immediately since that would be absolutely perfect, unless I run out of iopins.

          Offline Input Nirvana

          • Posts: 3372
          • Location: Somewhere in the San Francisco Bay area
          • If I tell ya, I'll hafta kill ya
          Almost-A-Datahand
          « Reply #28 on: Fri, 09 July 2010, 19:10:10 »
          Compliment #1
          Thanks for all the pics, each one is definitely worth a thousand words
          Compliment #2
          You have done a nice job of keeping your development moving along, not getting hung up
          Compliment #3
          You've improved many items from your initial posting, really smoothed it out

          I'll spend an hour easy going over just a few of your photos to see how you have built "Legozilla".    :)
          Kinesis Advantage | RollerMouse Free 2 | Apple Magic Trackpad | Alphagrip | Colemak | all on Mac
          Evil Screaming Flying Door Monkeys From Hell
          Thanks much, Smallfry

          Offline timon37

          • Thread Starter
          • Posts: 24
          Almost-A-Datahand
          « Reply #29 on: Sat, 10 July 2010, 09:55:37 »
          Thnx:) Though I have to say that it's not tremendously better in use. I forgot to mention that the new center switches are linear and I hate them a bit since they are very intolerant to off center pressing, have a bit ragged travel, and I had to shorten the springs. Cherry mx should fit since they are 15.6mm on the side, but I didn't get my hands on any:( Also the joystick seems to have gotten a bit worse with the friction and returning to center, I'll try to apply some grease when I find any. Hmm I'll also make pictures of the internals of the joystick (a second one I have) and center switches and upload them into a subfolder, btw some pictures are crappy or of my room/desktop, sorry I didn't sort them;p