The KeyAT Manuals
To get the KeyAT-4 Manual press:
KeyAT-4 Manual
To get the KeyAT-4 4.0x5 Update Notes regarding some new command options:
KeyAT-4 4.0x5 Update Notes
To get the KeyAT FA1/FA1-E Manual press:
KeyAT FA1/FA1-E Manual
You will need an Adobe Acrobat reader to view or print the manuals above.
To get one press:
Get Adobe Acrobat Reader.
KeyAT-4 Firmware Update, Ver 4.0x7
To get the KeyAT-4 Update as a zip file archive:
KeyAT-4 Ver 4.0x7 Firmware Update
To get the KeyAT-4 Update as a self-extracting zip file:
KeyAT-4 Ver 4.0x7 Firmware Update
You will need Tera Term Pro Terminal emulator to update KeyAT-4 Firmware.
To get get this software, see the following links:
Host site in Japan with Japanese and English versions:
Tera Term Pro, Japan
Mirror site in North America:
Tera Term Pro, North America
KeyAT - Excerpts from Customer Support
Question:
How does the KeyAT handle function keys?
Answer:
Generally you would put it in 'DOS Scan Code Mode'
(~S command) and send the function scan codes:
ie. F1=59, F2=60 ...
The manual lists all the scan codes for you.
Question:
How does it handle key combinations, eg Ctrl F7?
Answer:
Put it into raw key code mode (~K command) and
send the RAW key codes: 14 83 F0 83 F0 14
where: 14 is the raw key code for the ctrl key
83 is the raw key code for the F7 key
F0 prefixes a release of that key
Question:
Can it handle non-standard PC keyboards? I'm particularly
interested in simulating the DEC LK450 which is a VT 420
terminal style keyboard attached to 486/pentium PC's using
terminal emulator software.
Answer:
Physically, it only emulates an AT style keyboard. Any key
remapping is really the burden of the software sending it
keystrokes. Since it will accept raw 'keycodes", you can
create any key that you AT compatible computer will accept.
ASCII and DOS Scan code sets are really for convenience, so
that you do not have to recreate every keycode sequence for
every key.
Question:
After sending the keyat keystrokes for the computer, how
do you know when the have been processed so that you can
send it more keystrokes?
Answer:
In RS-232 communications, the prompt is not returned until
the keys are processed. So it is best to have your application
look to receive the colon prompt before proceeding to send the
KeyAT more data.
Question:
Can you explain more about examples on page 9?
Answer:
They show a full-duplex terminal session between a host PC
and a KeyAT in 'non-addressed mode'. The characters shown are what
the user types except for the prompt, which is a carriage return
(Hex 0D), line feed (hex 0A) and a colon. As the user types, all
keys are echoed. An [ENTER] key completes the command, which
is acknowledged by the KeyAT by a new prompt.
Question:
What is the difference between carriage return (Hex 0D) and "^M"?
Answer:
A carriage return (hex 0D) or [ENTER] key is the character the
KeyAT uses to end a line in 'line turnaround mode'. That character
does not get sent through to the PC. To send a carriage return
on through to the PC you have to send it another way. One way is
to the caret character ^ followed by an M. The KeyAT interprets
that as a control M character, which is the same as a carriage return.
Question:
The data frame described on page 10 of the manual does not mention
parity. Is there a parity bit?
Answer:
There is no parity. The character frame is one stop bit, eight data
bits, and one stop bit.
Question:
What precisely does the receipt of a colon by the host mean in
non-addressed, Line Turnaround mode?
Answer:
It means that all of the keyboard scan codes have been sent to the
target PC. There is no way of knowing whether the target has processed
all of them. If the target has a ring keyboard buffer in RAM
(like most IBM style PCs), there is no way of knowing how full the
buffer is, or whether any characters were lost in a fast transmission.
Question:
Page 5 of the manual says "Characters are not echoed when the KeyAT
is addressed." What about when the KeyAT is in 'non-addressed mode'?
Answer:
In that 'non-addressed mode (DIP switch positions 1-6, open), all
characters are addressed.
Question:
In Immediate mode, how fast can data be sent to the KeyAT?
Answer:
That cannot be absolutely determined. It depends on many factors, such
as the speed of the PC, the BIOS being used and the application that is
running. Using line turnaround mode is a safer method to avoid
over-running the input buffer. In non-addressed mode, when the colon
returns you can send another line. In addressed mode, when you get a
response from the request status command, then you can send another
line.
Question:
Customer had trouble interfacing the KeyAT to a Symbol LT-1820 hand-held CCD
scanner. Somehow the KeyAT was not seeing the [CR] (carriage return)
character at the end of the scanned string.
Answer:
I don't know if you'll recall, but I spoke with you the other day regarding
a problem I was having with the KeyAT: it was buffering 30 characters
before passing them to the keyboard port even though one of the characters
it received was a [CR] Recall that I have a bar-code scanner attached to
RS-232 port (not a PC). You suggested that the KeyAT was probably getting
and misinterpreting a parity bit, although at the time I couldn't be
positive if parity was actually be used. Sure enough, the scanner was
programmed to use odd parity. There wasn't an option for no parity, so I
reprogrammed it to use "space" parity. This fixed the problem -- just
thought I'd let you know.
Question:
Do you provide a power supply for the KeyAT?
Answer:
We do provide supplies on special order. If you need a supply and can
solder you own connection, you might consider Part number T309-P6P-ND
from Digi-Key (Last price I checked was $8.10). A 6 pin Mini-DIN
connector from Digi-Key would be CP-2060-ND.
Question:
Do you do custom programming and hardware for the KeyAT?
Answer:
Yes we do. Let us know your requirements, and we will gladly quote on
either ci#Sustom hardware or software.
Question:
My KeyAT does not work correctly with my IBM Thinkpad. It works
OK on my other computers.
Answer:
You need a PS2 Mouse-Keyboard Y Adapter. IBM sells this as part
number 54G0441. L3 Systems also sells one. It is part number
CL0012. If you use the L3 Systems part, plug the KeyAT into
the connector labled "mouse". If you also have a mouse, plug
it into the connector labeled "keyboard".
Question:
Can the KeyAT work with a modem?
Answer:
The KeyAT offers no specific modem support. I suspect you
could get it to work with modem by:
- Use a "null modem adapter" or cross cable to connect the modem to the KeyAT
- Put the modem into a "dumb mode"
- Enable auto-answer
- Setting the baud rate to 9600 baud.
Question:
Does your keyat device work under NT. Basically I am running NT and need to
generate a space bar keycode on a target system. NT does not like giving
access to serial ports. Do you supply drivers for that??
Answer:
The KeyAT will work on a PC running NT, both on a keyboard port and
connecting with an RS-232 port. We do not provide drivers for NT,
and there really should not be any need for one. Writing to an NT
serial port can be as simple as opening a DOS shell, and doing the
following:
C> echo Hello> com2
C>
The above sends "Hello" to the port COM2. You can use the mode command to set the baud rate and bit patterns.
Since the echo command doesn't take space as a parameter to send, the way you get around that is to use the KeyAT sequence for accepting ASCII Hex data. A tilde (~) followed by two digits will cause the keyat to interpret those to digits as the hexadecimal representation of an ASCII character. Since the ASCII space character is 20 in hexadecimal, the following will instruct the KeyAT to send a space to the target machine:
C> echo ~20> com2
C>
Of course, you can put the above on a batch file, say SPACE.BAT, and then all you woould have to do is type the command "space".
For more sophisticated interaction, you might want to try using a terminal emulation program. Two which have pretty good scripting and that run on NT are Tera Term and Kermit, and you can download these for free. Also Visual Basic has capabilities for reading from and writing to serial ports, but we don't have the expertise here to advise on that process.
Question:
I have a keyat which I am trying to control
using Visual Basic. Now, the unit works fine with hyperterminal
but with VB it seems to hold the characters in a buffer somewhere.
I looked at all the VB manuals, but it seemed like it should send
the data rightaway. Any clues to this?
Answer:
Basically, if you send a string in Visual Basic to the serial
port you'll do this using the MSComm module.
So, say you want to send a string Hello world ending with a " Carriage Return character. In VB you might consider doing the following:
MSComm1.Output="Hello world"
MSComm1.Output="^M"
Unfortunately, the above example doesn't output the Carriage Return character. However, deep in the bowels of VB it says that you have to append a vbcarriage return to the results. Thus you need to do:
string="hello world ^M " & vbCR
MSComm1.Output=string
Only took me a few hours to figure that one out (Ed note: Both question and answer supplied by customer. We're not VB experts here!)
Question:
How do you send data to the KeyAT using QBASIC
Answer:
The following shows program statements to send "Hello" through a KeyAT
attached to the PC's com1 port.
open "com1:9600,N,8,1,ds,cs"for output as #1
print #1,"Hello"
The real undocumented trick with qbasic is how to print something without sending a "Carriage Return" at the end. The following sends the two characters ^M without the ending carriage return. Removing the semi-colon at the end of the PRINT statement will cause it to add the carriage return at the end.
Here's an example:
COMMON cr as STRING
OPEN "com1: 9600,8,n,1" FOR OUTPUT AS #1
cr = "^M"
PRINT #1, cr$;
Question:
What general hints do you have regarding connecting a KeyAT to a
barcode scanner.
Answer:
Here are a few points that generally apply to using the KeyAT
with a barcode scanner:
- If you have RS-232 cabling for the bar code scanner that works on a PC's RS-232 port, then this cable would have to have the transmit (pin 2) and the receive (pin 3) signals reversed when connecting to a KeyAT.
- The scanner RS-232 port should be configured to match the KeyAT. See page 8 of the KeyAT manual to see what settings are available. The default KeyAT setting is 9600 baud, 8 data bits and no parity.
-
I always suggest testing the KeyAT with a terminal emulator
program like Hyperterm, ProComm or Tera Term on a connected
PC computer. I happen to really like Tera Term, and it's free
to download and use. See:
http://hp.vector.co.jp/authors/VA002416/teraterm.html
- You need to set up the scanner to send a a carriage return character (hex 0D) at the end of the scan code data.
- The KeyAT does not normally send the carriage return character through to the PC. If your application also needs the [CR] character, the ~F command will tell the KeyAT to pass through the carraige return character.
- You can change the KeyAT configurationn to allow this. See page 8 of the manual. You would need to change the 4th parameter of the configuration string.
Question:
Can three key combo's such as the Windows login
sequence (CTRL-ALT-DEL) be created?
Answer:
Yes. Any key combination can be created.
To do CTRL-ALT-DEL, you can do the following:
:~+29~+56~:83~-56~-29[ENTER]
:
where:
~+29 Sends a CTRL key press
~+56 Sends an ALT key press
~:83 Sends a CTRL key press and release
~-56 Sends an ALT key release
~-29 Sends a CTRL key release
Question:
Do you have to switch modes to go from monitor to send?
Answer:
No. You can send while in monitor mode.
Question:
Do you know of any linux drivers / programs / front ends
for this or do you recommend just manually reading and writing to the
serial port?
Answer:
Minicom has some simple scripting, plus it would allow you to
monitor things. "Expect" provides pretty good serial
interface scripting, that is typically used by programs like
mgetty to converse with a modem. Of course, many true-blooded
Linux geeks would use Perl.
Question:
The Left or Right window scan codes (90 or 91) do not seem to work
correctly. I'm sending them using a ~:90 and ~:91 command. (Version 4.0x5)
Answer:
Version 4.0x7 fixes this problem. To get a new version, see the
links in the KeyAT Tech Info/Q&A section:
KeyAT Tech Info/Q@A
Question:
I'm having trouble sending a Control-C followed by some more
characters. (Version 4.0x5)
Answer:
Version 4.0x7 fixes this problem. To get a new version, see the
links in the KeyAT Tech Info/Q&A section:
KeyAT Tech Info/Q@A
Question:
The Keypad Enter scan code A0 does not seem to work when I send
a ~:A0 command. (Version 4.0x5)
Answer:
Version 4.0x7 fixes this problem. To get a new version, see the
links in the KeyAT Tech Info/Q&A section:
KeyAT Tech Info/Q@A