In honor of Instructables.com, this will be a collaboration. My goal is to arrive at a finished design, as a product of the collaboration. Several steps in this instructable are reserved for posting specific ideas, programming logic, flowcharts, or other ideas related to that particular step, which advance the original concept toward completion.
As we already know, this instructable will serve as a record of any development of the seed concept, as it takes place. There are four optional paths to expand upon, within this instructable (Steps 4 thru 7). Each of these optional steps can be developed independently. Each does not need to be analogous to any other. They can be appended on a first come first serve basis.
I am hoping to decide upon what would be considered (by the group) as the most favorable programming method for the finished product. For now, I am asking that the simple requirements presented here are observed.
I have initially supplied these optional steps as clean slates, so that anyone may start from scratch, if they so choose, as long as the specific operational requirements in a particular step are met.
There are no limitations as to how much relative credit any particular contributor would be entitled to.
NOTE: As is the case with any forum, one should avoid editing any post, after a comment or response has been made to it.
Step 1: Keyboard Fundementals
I've added this step to collect information relevant to any and all of the following control options. This is for discussion of hardware/firmware combinations for detecting key presses, switch denouncing options, software development for the alternate layout display, etc.
Keep in mind that it is best if the different control options are easily usable with the remainder of the system. This is to allow easy testing of different options, and provide for the possibility of others adding different control schemes.
This step added by nah.