Sunday, January 24, 2016

Turn! Turn! Turn!

I was just looking over the Styra Project blog this weekend and was shocked to see that it has been two months since our last update.  Where does the time go?  The holidays were an incredible amount of fun and we had the opportunity to visit many friends and family, but the time was also tinged with sadness as my Grandpa Jerry passed away in mid December.  Annie and I debated the best way to catch up, whether to have a series of small posts or just one large post.  I’ve opted for one large post, and as there has been a lot going on; I guess I’d better get started.


In September and October I had started working on a new prototype I call Mystique.  Mystique has the same 16 button browser navigation controller that we have been using all along, but in more of an arch shape.  The unique feature of Mystique is that it is the first prototype to incorporate two Styra Controller boards into the same prototype.  The second controller board allows additional buttons to be added.  For Mystique, the additional buttons are used to store username, email address, and a password.  

Mystique

Mystique also is the first prototype to utilize the i2c eeprom chip for storing keyboard configurations. Configurations can be created and modified using a simple text editor on the workstations and uploaded to the keyboard using a python-based command-line tool I wrote for just that purpose. What this allows is that each button can have a macro action of up to 64 bytes and each keyboard can have up to 512 macro actions defined.  These macros can be updated from the host workstation without the need to modify code on the keyboard.  


32KB i2c thumb drive
In November, I was able to take two weeks off from work to travel the Pacific Northwest visiting family.  Annie, Geddy, and I set off on our adventures loaded down with supplies for the trip AND four Styra keyboard prototypes.  The first stop on the trip was to see my cousin Andrew.  This was Andrew’s first opportunity to use the prototypes we’ve been developing and we spent two days working with him and my aunt Jonell on the physical constraints of workstation layout in addition to giving Andrew a chance to play with the prototypes.


Annie and I chose not to try taking any pictures of Andrew using the keyboards because this is private and he has been gracious in allowing us to share his story on this blog.  Working with Andrew in person was incredibly helpful in understanding the limitations that he faces every day.  No amount of wrapping my hand and using one arm can compare.  The following are just a few of the notes from seeing him use the prototypes:


  • Trackball might work for left and right motion, but Andrew is not able to roll the ball forward and back.  The joystick controller worked, but will require a lot of practice before it will be a usable solution.
  • Andrew tends to push the buttons on the edges rather than in the center.  The cheap buttons I originally purchased do not always make great contact when pressed in this manner and results in missed button presses.  I think that higher quality buttons might help.
  • When Andrew presses a button, it is generally very slowly.  Sometimes his hand will jerk with the effort of controlled motion.  This generates bounces that are well outside the 25ms of the hardware debounce period.  I am able to reproduce this and I think that adding a new macro action type that only registers a button press once per second would help with the physical bouncing (as opposed to electrical bouncing).
  • Navigation keyboard prototypes—all of them—are a bit too complicated for Andrew to use. For someone who is familiar with surfing the Internet, they are just a little inconvenient until you learn where the buttons are to do what you want to do.  For someone who has NEVER surfed the Internet on his own, the navigation keyboards are overwhelming.  Combine that with the fact that websites are not keyboard navigation friendly and it is a real problem.  Some websites have hundreds of fields that take forever to ‘tab’ through.  Others have popup adds that simply cannot be cleared with keyboard shortcuts.


For Andrew, position is everything.  To get the keyboard close to his wheelchair, a desk wouldn’t work.  He needs to have the keyboard come to him and have it adjusted for height, angle-positioned for his left hand.  To complicate matters, as he becomes tired, he needs to adjust his position and therefore the keyboard position needs to be adjusted on the fly.  For our testing I brought a music stand and strapped each keyboard to it.  We could then move it around his wheelchair, raise, lower and tilt the keyboard to best fit his needs.  One option I am going to play with is drilling a VESA mount pattern on the back of the keyboard and mount it to an adjustable monitor arm.  This could be a really good solution but will require some experimentation.


Probably the biggest learning experience for me from my time working with Andrew came as we were wrapping the first day of testing.  I know from personal experience that for me to be successful at something, I need to be able to find a way to make it fun.   This could be exercising, studying, whatever…  So I was asking Andrew what he did for fun on the computer and he just looked at me like I was crazy.  There is NOTHING fun about using a computer!  And then it hit me.  His only experience with a computer has been for school work or various exercises.  My aunt and uncle will help him look up sports teams / players and read him articles, but actually using it for fun?  No…  For Andrew, using a computer was more like weeding the garden.  The Styra keyboard wasn’t opening a door, it was giving him a better tool for weeding.  I could see his point.  <Completely off topic, but in Oregon and Washington I wonder if kids are now going to be sent out to weed the weed. :) >


So…  That night I searched for puzzle / strategy games that could be controlled from a keyboard. The next morning I stripped down the ShadowCat prototype and built a much simpler keyboard specifically for playing one game: Entanglement.  This really showed the power of how customizable the Styra Keyboard design is…  This complete rebuild of a keyboard only required 30 minutes. Andrew would play until he was too tired to sit up.  After some rest, he would come back and play some more.  This was great for me because it gave me a chance to see what worked and what didn’t with the Styra keyboard prototypes.  And it was cool for Andrew because for the first time he wasn’t just weeding the garden.  We left the prototype for Andrew to play with while we traveled some more and then we picked it up again on our return trip.  
Modified version of the ShadowCat Prototype



In December, Balihoo graciously awarded us a second grant to continue our work on the Styra Project.  This is a breakdown of the goals for the next stage in the process.


  • Experiment with a variety of buttons to identify a good quality button
  • Construct four new prototype keyboards, each with an integrated pointer control
  • Build a list of games and websites that can easily be navigated using the prototypes
  • Documentation.  Create tutorials and possibly YouTube videos describing how to construct the prototype keyboards.



2 comments:

  1. I am typically to running a blog and i actually admire your content. The article has really peaks my interest. I am going to bookmark your site and preserve checking for new information. https://royalcbd.com/product/cbd-oil-1000mg/

    ReplyDelete
  2. The healthier and more lush your grass is, the less room there is for weeds. garden weeds

    ReplyDelete