SerialKeys allows you to control keyboard and mouse functions through the serial port. This is done by sending the right series of letters and commands from the special input device to the computer's serial port. The regular keyboard and mouse can still be used while SerialKeys is being used. However, typing at the standard keyboard while simultaneously entering commands using SerialKeys may cause SerialKeys to loose track of the status of various keys on the standard keyboard.
The most commonly used special input device for SerialKeys is a communication aid: an electronic device often used by people who can't communicate by speech alone because of a physical disability that affects their speech. Using SerialKeys requires you to program specific key definitions into your special input device. You will need the manual for your device in order to carry out this programming.
The instructions below tell you how to set up SerialKeys with a device such as a communication aid (we just refer to the device as "the aid" in these instructions). These instructions tell you how to hook up your aid to the computer, how to set up SerialKeys on the computer, and what letters or commands to send so you can type any key on the keyboard and make any mouse movement you want from the aid. Follow the instructions step-by-step, and you should be successful in hooking up your aid and using SerialKeys.
NOTE: These instructions do NOT tell you how to program your own aid. You will need to consult the manual for your aid, or contact the manufacturer if you have questions.The steps in these instructions are numbered from 1 to 20; steps 1 through 10 discuss basic skills, and steps 11 through 20 discuss advanced topics. If you are the user of the aid, someone may need to assist you the first time you set up SerialKeys.
Step 1: Determine if your communication aid will work with SerialKeys
You need to make sure your aid will work with SerialKeys. You should be able to answer "yes" to all six questions: 1) Can you program selections on your aid to have unique words and sentences stored under them? Most electronic communication aids these days will let you program any series of characters (letter, numbers, symbols) you want for a particular selection. 2) Can your aid store at least 84 programmable selections? You will need at least one selection space for each key on the computer's keyboard, plus more if you want to use the mouse. There are 84 keys on the standard IBM AT keyboard, and now many keyboards have 101 keys. You don't need to be able to store all of the keys and mouse actions on the same level (or overlay) on your aid. You may, for instance, want to use one level for the keyboard and one for the mouse. 3) Does your aid have a serial port? This is the connection sometimes used to hook up a printer. It is sometimes called an RS-232 serial port. 4) Can you program selections on the aid so that when they are selected, they will automatically be sent to the serial port? Many aids have this capability, since it can be useful for printing messages. If you have a printer connected to your serial port, typing h-e-l-l-o on your aid and sending it out the serial port will make "hello" print out on the printer. If you have your aid's serial port connected to the computer's serial port, and you have SerialKeys working, typing h-e-l-l-o on your aid and sending it out the aid's serial port will cause the word "hello" to appear on the computer--just as if it had been typed on the computer's keyboard. 5) Does your computer have a serial port? This is sometimes called a "COM" port in computer jargon. If you don't have one, you can probably add one to your computer. If you have a serial port but you are using it for something else, such as connecting a printer or a modem, you will have to: - disconnect the printer or modem, OR - equip your computer with another serial port. 6) Can your communication aid send information through its serial port at the rate of 300 baud? (The term 300 baud refers to the speed at which characters are transmitted.) Most aids can send information at 300 baud, but check and make sure. Your aid may be able to send information faster than 300 baud as well, and that's OK. SerialKeys can "talk to" an aid that's sending information at 300, 600, 1200, 2400, 4800, or 9600 baud. However, 300 baud is the recommended speed setting. If your aid requires a higher baud rate, you will need to be aware of some additional operating features.Step 2: Connect your aid to your computer
Just plug one end of the serial cable into the serial port on your aid and the other end into the serial port on your computer. If you don't already have a serial cable, you will need to obtain it from the manufacturer of your aid.
NOTE: Your aid may require an adapter to match the connector on your computer. In addition, your aid may require a NULL modem adapter to talk properly with your computer.Step 3: Configure your aid for serial transmission
Your aid and SerialKeys must be talking to each other at the same speed (baud rate) for them to communicate at all. We recommend choosing a speed of 300 baud. You must also make sure your aid is configured correctly. It must be communicating at 300 baud, with the following format:
- 1 start bit - 8 data bits - 1 stop bit - no parity.You don't have to know what this means, you just have to make sure your aid is configured that way. Check the manual of your aid to find out how to do it. In addition, most aids have a special selection or a switch for causing the characters stored in your aid to be transmitted out the serial port. Make sure you "turn on" this function. Other aids may require you program special codes to set up the serial port. Again, please read your manual to find out how to do this.
Step 4: Activate SerialKeys
Before you can use SerialKeys, you need to make sure SerialKeys is active within Windows on your computer. Open the Access Utility window, and under the "Adjust" menu item, select SerialKeys. The SerialKeys dialog box will then open. Then select the Serial Port, either Com port 1, Com port 2, Com port 3, or Com port 4, and select the Baud Rate (suggest 300 baud to start). Then turn SerialKeys ON and exit the dialog box. You may also want to save this setting change under the "File" menu.
NOTE: Only version 3.0.a of the Access Utility provides the user with the option of choosing between Com ports 1 through 4. The Access Utility does not attempt to verify whether or not your computer hardware actually supports Com ports 1 through 4, but rather depends on Windows to make such a determination. Before attempting to connect your communication aid, you may want to review your computer manuals to be sure it supports your choice of either Com port 1, 2, 3, or 4.
The next series of steps will tell you how to program each different type of key or mouse movement, and give you examples which you can try programming. This way, you can check and make sure that your aid and computer are set up properly, and that you understand how to program the aid, before you program the complete set of keys and mouse movements. There are four basic types of SerialKeys actions you can program into any selection (position) on your aid:
1) basic keys, 2) special keys, 3) modifier keys, 4) mouse movements.Before you start typing keys, send three null characters from your aid to the computer. This resets SerialKeys. (The null character is different from a zero; usually it can be made on your aid by typing control-@.)
Step 5: Typing basic keys
Each key on your computer keyboard is given a keyname, and it is this keyname that you must program into your aid if you want to be able to type that key. Many of the keynames consist of a single character. These we are calling "basic keys."
` 1 2 3 4 5 6 7 8 9 0 - q w e r t y u i o p [ ] a s d f g h j k l ; ' z x c v b n m , . / \To type one of these keys, you just send that single character out the serial port of the aid. For example, to type the word "hello", you simply select the "h" keyname, the "e" keyname, the "l" keyname, another "l" keyname, and finally an "o" keyname. Most aids have all of these single character keynames programmed into them so there is no additional programming for you to do for these keys.
Step 6: Typing special keys
If you look at the computer keyboard, you will find that there are many keys that do not have single character keynames. For example, the Num Lock and the Enter key each have more than a single character name. We call these keys special keys since you have to do something different if you want to type them using your communication aid. To type special keys, you must program a sequence of characters into a single selection on your communication aid. The sequence for special keys is different for each key, but always follows two rules:
1) The sequence must begin with the Escape character. 2) The sequence must end with a period.The Escape character usually can be generated on your aid by selecting the Control function along with the left bracket ([). On some aids, this will appear as ^[. Check the instruction manual of your aid if you're unsure of how to make the Escape character on it. We will refer to the Escape character by putting "esc" between two angle brackets, like this:
To program the name of a special key into your aid, program the Escape character first, then the correct name for the special key, then a period. These should all be programmed as one word or selection on your aid. Then when you need the special keys, the entire string would be sent out to the serial port of the computer by only making one selection on your aid.
For example, to type the Enter key, the character sequence would be:
The escape character comes first, followed by the keyname for the key that you want to press, followed by a period (.). SerialKeys has official names for each of the special keys on your keyboard. Since the sequences for special keys are somewhat long, you will want to program an entire sequence for a special key into a single selection on your aid. Then you can label this selection (e.g. Enter) and have it ready for when you need to type the key. In fact, you will probably want to program the sequences for all the special keys on your computer keyboard into selections on your aid. The time spent doing this will be made up many times once you begin using your aid to access the computer. See Steps 9 and 10 to learn how to set up the complete keyboard, and for a table of all the keynames.
Step 7: Typing Modifier Keys (Shift, Control, Alt)
There are three special keys which have to be typed differently from the other special keys: Shift, Control (Ctrl), and Alternate (Alt). These three keys are called the modifier keys, since they don't do anything themselves but modify the action of another key. Shift, for instance, will make a small "a" into a capital "A.". On an ordinary keyboard, the modifier key is held down while the other key is pressed. SerialKeys imitates this action by using a command called "hold". Here's the sequence you have to type on your aid in order to type a modifier key:
1) The Escape character 2) Comma (,) 3) The word "hold" 4) Another comma (,) 5) The name for the modifier key (see Step 10, below) 6) Period (.) 7) The key you want to modify.The following command string would be used to send a capital A on your computer using SerialKeys.
,hold,shift. (holds the shift down) a (while you send the "a" key)
Most keyboards have two Shift keys, a right shift key and a left shift key. You can use different keynames (lshift and rshift) for the two keys to distinguish between them if you wish. Some keyboards also have right and left Control keys and right and left Alternate keys. SerialKeys also distinguishes between these. See Steps 9 and 10 to learn how to set up the complete keyboard, and for a table of all the keynames.
Step 8: Moving and clicking the mouse
If your computer is equipped to use a mouse (IBM PS/2 or Microsoft mouse), you can operate all the mouse functions from your aid as well, using SerialKeys. If you're not interested in performing mouse functions, skip over to Step 9 and 10.
Before you do any mouse functions through SerialKeys, you should send the "moureset" (mouse reset) command. This should be done whenever you start up an application program (such as a word processing program) that uses the mouse. Just send this command from your aid.
The mouse pointer should move to the upper left hand corner of the screen.
Moving the mouseYou can do the equivalent of moving the mouse by sending a "move" command from your aid to the computer. Here are the parts of a move command, in the proper order:
1) the Escape character (see Step 4 if you don't know what this is) 2) a comma 3) the word "move" 4) another comma 5) a plus or minus sign followed by a number (for horizontal movement) 6) another comma 7) another plus or minus sign followed by a number (for vertical movement) 8 a period.The move command takes two numbers after it: first the motion in the horizontal direction and then the motion in the vertical direction. There must be either a plus (+) or a minus (-) sign before each number, unless the number is a zero. Positive numbers move the mouse pointer to the right or down. Negative numbers move the mouse pointer left or up.
In order to click the button on a mouse, you use the "click" command. The commands should be typed as you see below. Remember,
,move,+10,-20. moves 10 units to right and 20 units up ,move,-10,+20. moves 10 units to left and 20 units down Clicking the Mouse
You can double-click the mouse using the same commands shown above, but with the command "dblclick" in place of the command "click":
,click,left. clicks the left button ,click,right. clicks the right button Double-clicking the mouse
SerialKeys lets you do the equivalent of holding the mouse button down while moving the mouse. This is done using the "moulock" (mouse lock) and "mourel" (mouse release) commands, together with the "move" command. If, for example, you want to select text in a word processing program that uses the mouse, you would:
,dblclick,left. Clicking and Dragging with the Mouse
1) Move the mouse to the beginning of the text you want to select, using the "move" command as described above. 2) To press the mouse button down and keep it down, give the "mouse lock" command:Step 9: Plan the layout for your aid
,moulock,left. 3) Move the mouse to the end of the text you want to select, using the "move" command as described above. 4) To release either button (or both), give the "mouse release" command: ,mourel.
Steps 5-8 above showed you what sequences of characters to send in order to type basic keys, special keys and modifier keys, and to do mouse actions. Now you will want to program a selection on your aid for each key or mouse action you want to use. But before you program all of the keys and mouse actions into your aid, you will probably want to decide how to lay out the selections on your aid. Look at the number of different keys you may want to have (see the table under Step 10). You will probably want mouse movements in addition? If your aid stores vocabulary in levels, decide if you want keyboard and mouse actions on separate "levels" in your aid. If you aid uses combinations of symbols to store vocabulary, what combinations will you want to use for keyboard and mouse functions?
Step 10: Programming your aid for keyboard and mouse functions
The following table lists character sequences you send from your aid to simulate the individual keyboard keys. In some cases there are several character sequences which all send simulate the same key.
In this table, the term "p/r" is used to indicate a key being pressed and immediately released. "Toggled" indicates that a key such as CAPS LOCK will be turned on if currently off, or turned off if currently on. "Pressed down" indicates that the key will be pressed and remain held down during the next key simulated.
Key name Send from aid Action(s) altStep 11: Troubleshooting
,hold,alt. alternate key pressed down backspace backspace. backspace key p/r bksp bksp. backspace key p/r capslk capslk. caps lock key toggled capslock capslock. caps lock key toggled comma comma. comma key p/r control ,hold,control. control key pressed down ctrl ,hold,ctrl. control key pressed down del del. numeric pad del key p/r, "." or "del" delete delete. delete key p/r divide divide. divide key p/r, "/" down down. down arrow key p/r end end. end key p/r enter enter. enter or return key p/r esc esc. escape key p/r escape escape. escape key p/r f1 f1. function 1 key p/r f2 f2. function 2 key p/r f3 f3. function 3 key p/r f4 f4. function 4 key p/r f5 f5. function 5 key p/r f6 f6. function 6 key p/r f7 f7. function 7 key p/r f8 f8. function 8 key p/r f9 f9. function 9 key p/r f10 f10. function 10 key p/r f11 f11. function 11 key p/r f12 f12. function 12 key p/r home home home key p/r ins ins. numeric pad ins key p/r, "0" or "ins" insert insert. insert key toggled kp* kp*. numeric pad star key p/r,"*" kp+ kp+. numeric pad plus key p/r, "+" kp- kp-. numeric pad minus key p/r, "-" kp/ kp/. numeric divide key p/r, "/" kp0 kp0. numeric pad 0 key p/r, "0" or "ins" kp1 kp1. numeric pad 1 key p/r, "1" or "end" kp2 kp2. numeric pad 2 key p/r, "2" or "down arrow" kp3 kp3. numeric pad 3 key p/r, "3" or "pgdn" kp4 kp4. numeric pad 4 key p/r, "4" or "left arrow" kp5 kp5. numeric pad 5 key p/r, "5" kp6 kp6. numeric pad 6 key p/r, "6" or "right arrow" kp7 kp7. numeric pad 7 key p/r, "7" or "home kp8 kp8. numeric pad 8 key p/r, "8" or "up arrow" kp9 kp9. numeric pad 9 key p/r, "9" or "pgup" kpdel kpdel. numeric pad . key p/r, "." or "del" kpdelete kpdelete. numeric pad . key p/r, "." or "delete" kpdivide kpdivide. numeric pad divide key p/r, "/" kpdown kpdown. numeric pad 2 key p/r, "2" or "down arrow" kpdp kpdp. numeric pad . key p/r, "." or "del" kpend kpend. numeric pad 1 key p/r, "1" or "end" kpenter kpenter. numeric pad enter key p/r kphome kphome. numeric pad 7 key p/r, "7" or "home" kpins kpins. numeric pad 0 key p/r, "0" or "ins" kpinsert kpinsert. numeric pad 0 key p/r, "0" or "ins" kpleft kpleft. numeric pad 4 key p/r, "4" or "left arrow" kpmidl kpmidl. numeric pad 5 key p/r, "5" kpminus kpminus. numeric pad minus key p/r, "-" kppagedown kppagedown. numeric pad 3 key p/r, "3" or "pgdn" kppageup kppageup. numeric pad 9 key p/r, "9" or "pgup" kppgdn kppgdn. numeric pad 3 key p/r, "3" or "pgdn" kppgup kppgup. numeric pad 9 key p/r, "9" or "pgup" kpplus kpplus. numeric pad plus key p/r, "+" kpright kpright. numeric pad 6 key p/r, "6" or "right arrow" kpslash kpslash. numeric pad divide key p/r, "/" kpstar kpstar. numeric pad star key p/r, "*" kptimes kptimes. numeric pad star key p/r, "*" kpup kpup. numeric pad 8 key p/r, "8" or "up arrow" lalt ,hold,lalt. left alternate key pressed down lcontrol ,hold,lcontrol. left control key pressed down lctrl ,hold,lctrl. left control key pressed down left left. left arrow key p/r leftalt ,hold,leftalt. left alternate key pressed down leftcontrol ,hold,leftcontrol. left control key pressed down leftctrl ,hold,leftctrl. left control key pressed down leftshift ,hold,leftshift. left shift key pressed down lshift ,hold,lshift. left shift key pressed down multiply multiply. star key p/r, "*" numlk numlk. num lock key toggled numlock numlock. num lock key toggled pagedown pagedown. page down key p/r pageup pageup. page up key p/r period period. period key p/r, "." pgdn pgdn. page down key p/r pgup pgup. page up key p/r ralt ,hold,ralt. right alternate key pressed down rcontrol ,hold,rcontrol. right control key pressed down rctrl ,hold,rctrl. right control key pressed down ret ret. return or enter key p/r return return. return or enter key p/r right right. right arrow key p/r rightalt ,hold,rightalt. right alternate key pressed down rightcontrol ,hold,rightcontrol. right control key pressed down rightctrl ,hold,rightctrl. right control key pressed down rightshift ,hold,rightshift. right shift key pressed down rshift ,hold,rshift. right shift key pressd down scroll scroll. scroll lock key toggled scrolllock scrolllock. scroll lock key toggled shift ,hold,shift. shift key pressed down space space. space key p/r tab tab. tab key p/r tilde tilde. tilde key p/r, "`" up up. up arrow key p/r
If you are using SerialKeys and your aid stops sending keys successfully, try:
1) Checking to make sure you included any necessary periods in your keynames. 2) Sending three null characters. (The null character is different from a zero; usually it can be made on your aid by typing control-@. 3) Resetting both the aid and SerialKeys to 300 baud. (If there is a communication difficulty, SerialKeys may automatically reset itself to 300 baud, making it unable to communicate with your aid if your aid is sending at a different rate.)Step 12: Advanced Topics
We recommend programming your aid to use the IBM Enhanced Keyboard (101 keys). Even if your computer does not have this keyboard, SerialKeys will function as the 101-key keyboard. This may be to your advantage, as some software packages will recognize the additional keys, enabling you to access additional features. If you choose to program the 83 or 84 key keyboard, there are a few exceptions you should be aware of:
1) To type the Break function, you would ordinarily hold the Control key and press the Scroll Lock key. For SerialKeys, hold the Control key and press the Pause key. 2) To type the Pause function you would ordinarily hold the Control key and press the Num Lock key. For SerialKeys, just press the Pause key.Step 13: Advanced Mouse Movements
It's a good idea to at least program some square or selection on your communication aid to move the mouse in the four directions by 1, by 10, and by 100 units. This will allow you to make small, fine movements and large, fast movements.
Step 14: Advanced Notes on Resetting SerialKeys
,move,+1,0. moves mouse cursor 1 unit right ,move,-1,0. moves mouse cursor 1 unit left ,move,0,+1. moves mouse cursor 1 unit down ,move,0,-1. moves mouse cursor 1 unit up ,move,+10,0. moves mouse cursor 10 units right ,move,-10,0. moves mouse cursor 10 units left ,move,0,+10. moves mouse cursor 10 units down ,move,0,-10. moves mouse cursor 10 units up ,move,+100,0. moves mouse cursor 100 units right ,move,-100,0. moves mouse cursor 100 units left ,move,0,+100. moves mouse cursor 100 units down ,move,0,-100. moves mouse cursor 100 units up
If you are using SerialKeys in a multi-user environment, the first command you send to SerialKeys should be the reset command. This will insure that SerialKeys will be at 300 baud and ready to accept your keyboard and mouse actions. The reset command consists of sending 3 Null (ASCII 0) characters with your aid configured to 300 baud. A Null character can usually be generated on your aid by selecting the control @ .
Step 15: Advanced Notes on using Lock and Release
This command can be used to hold a key down and lift it back up again as separate actions. Its primary usefulness is in using SerialKeys in combination with MouseKeys.
1) Turn on MouseKeys (see Help on MouseKeys). 2) Decide which direction you want to move the mouse. Find out what numeric keypad key moves the mouse in that direction in MouseKeys. 3) Send a lock command with that keyname. For example to move the mouse cursor to the right:You can program the "lock" part and the "release" part of this sequence each under a different selection on your aid, so you don't have to type them out in full each time you use them. Make sure to include the commas and periods.
,lock,kpright. or ,lock,kp6. 4) When the mouse pointer has moved as far as you want in that direction, send the release command: ,rel.
Note: MouseKeys also allows you to hold and release a mouse button or click a mouse button. See the "Help" menu section on MouseKeys if you want to use these features with SerialKeys.Step 16: Advanced Notes on using the Keyboard Combine Command
If you want to program a modifier key and some other key under a single selection on your aid, use the combine command to put several keystrokes under one selection on your aid. This can be useful for common multiple-key command combinations required by software. There must be commas between the keys and a period at the end. No more than five keys can be combined.
Example:Step 17: Advanced Notes on using the Mouse Goto Command
Moves the mouse to a specified location. You should send the "moureset" command first. Both the horizontal and vertical direction numbers require only a + sign. (See moving the mouse, Step 8 above.)
Step 18: Advanced Notes on using the Mouse Anchor Command
The mouse anchor command can be used to anchor the mouse cursor to a position within a Windows Application. An example of using the mouse anchor command to mark a current window position, go to a new location and click the mouse to select a new tool, go to another new location and click the mouse to select another color, and then return to the exact location you left to use that tool, is shown below. If you change the Active Window between setting the mouse anchor and returning to that anchor, the mouse anchor command will not work.
Step 19: Advanced Notes on using the Baudrate Command
,mouanchor. set the position or anchor the cursor ,goto,+10,+10. go to a new location ,click. click selects a new tool in this application at location 10,10 ,goto,+50,+10. go to a new location ,click. click selects a new color in this application at location 50,10 ,mouanchor. return to where you left from, anchor released
The baudrate command allows you to change the baud rate of SerialKeys from your aid. The possible baud rates are 300, 600, 1200, 2400, 4800, and 9600. This command is never absolutely necessary, since you can also set the baud rate of SerialKeys by going into the "Adjust" menu.
If you decide to run SerialKeys at a baud rate faster than 300 baud, you must be aware of the special automatic reset feature of SerialKeys. Whenever SerialKeys receives three consecutive characters with a transmission error, it will automatically reset to 300 baud. This is to enable users in a multi-user environment to put SerialKeys in a known state (300 baud). SerialKeys will signal any transmission problem with a short beep. If SerialKeys resets to 300 baud, it will make a long beep. SerialKeys will also signal a baudrate change with a long beep.
,baudrate,300. Using higher baud rates
Step 20: Additional Technical notes
1) SerialKeys uses hardware handshaking (DTR/RTS) and software (XON/OFF) handshaking to control the flow of characters from the aid. Characters may be lost if the aid ignores the handshaking signals. 2) SerialKeys allows Windows to manage the Com ports including the hardware interrupt lines. Windows may or may not allow another device to use or share the interrupt line that SerialKeys is using. This means that if for example, you have SerialKeys turned on using Com port 1, you probably can not use the Windows Terminal program on Com port 1. Also, if you have SerialKeys on Com 1, and another application is experiencing problems while using Com 3, you may need to move the application or SerialKeys to Com 2 or Com 4. See you computer manual for details on how Com 1/3 and Com 2/4 should be set, if your computer supports additional Com ports 3 and 4.