Usb KB Sureswipe & Usb KB Swipe Reader: Technical Reference Manual
Usb KB Sureswipe & Usb KB Swipe Reader: Technical Reference Manual
Usb KB Sureswipe & Usb KB Swipe Reader: Technical Reference Manual
&
USB KB SWIPE READER
TECHNICAL REFERENCE MANUAL
JANUARY 2012
Information in this document is subject to change without notice. No part of this document may be
reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose,
without the express written permission of MagTek, Inc.
USB (Universal Serial Bus) Specification is Copyright© 1998 by Compaq Computer Corporation, Intel
Corporation, Microsoft Corporation, NEC Corporation.
Appendix A is taken from Universal Serial Bus HID Usage Tables, Version 1.12, Section 10,
Keyboard/Keypad Page (0x07) ©1996-2005 USB Implementers’ Forum
Appendix B is taken from Section 8.3 Report Format for Array Items, Device Class Definition for
Human Interface Devices (HID) Version 1.11, ©1996-2001 USB Implementers’ Forum,
[email protected]
REVISIONS
ii
LIMITED WARRANTY
MagTek warrants that the products sold pursuant to this Agreement will perform in accordance with MagTek’s
published specifications. This warranty shall be provided only for a period of one year from the date of the
shipment of the product from MagTek (the “Warranty Period”). This warranty shall apply only to the “Buyer”
(the original purchaser, unless that entity resells the product as authorized by MagTek, in which event this
warranty shall apply only to the first repurchaser).
During the Warranty Period, should this product fail to conform to MagTek’s specifications, MagTek will, at its
option, repair or replace this product at no additional charge except as set forth below. Repair parts and
replacement products will be furnished on an exchange basis and will be either reconditioned or new. All replaced
parts and products become the property of MagTek. This limited warranty does not include service to repair
damage to the product resulting from accident, disaster, unreasonable use, misuse, abuse, negligence, or
modification of the product not authorized by MagTek. MagTek reserves the right to examine the alleged
defective goods to determine whether the warranty is applicable.
Without limiting the generality of the foregoing, MagTek specifically disclaims any liability or warranty for
goods resold in other than MagTek’s original packages, and for goods modified, altered, or treated without
authorization by MagTek.
Service may be obtained by delivering the product during the warranty period to MagTek (1710 Apollo Court,
Seal Beach, CA 90740). If this product is delivered by mail or by an equivalent shipping carrier, the customer
agrees to insure the product or assume the risk of loss or damage in transit, to prepay shipping charges to the
warranty service location, and to use the original shipping container or equivalent. MagTek will return the
product, prepaid, via a three (3) day shipping service. A Return Material Authorization (“RMA”) number must
accompany all returns. Buyers may obtain an RMA number by contacting Technical Support at (888) 624-8350.
EACH BUYER UNDERSTANDS THAT THIS MAGTEK PRODUCT IS
OFFERED AS IS. MAGTEK MAKES NO OTHER WARRANTY, EXPRESS OR
IMPLIED, AND MAGTEK DISCLAIMS ANY WARRANTY OF ANY OTHER
KIND, INCLUDING ANY WARRANTY OF MERCHANTABILITY OR FITNESS
FOR A PARTICULAR PURPOSE.
IF THIS PRODUCT DOES NOT CONFORM TO MAGTEK’S SPECIFICATIONS, THE SOLE REMEDY
SHALL BE REPAIR OR REPLACEMENT AS PROVIDED ABOVE. MAGTEK’S LIABILITY, IF ANY,
SHALL IN NO EVENT EXCEED THE TOTAL AMOUNT PAID TO MAGTEK UNDER THIS
AGREEMENT. IN NO EVENT WILL MAGTEK BE LIABLE TO THE BUYER FOR ANY DAMAGES,
INCLUDING ANY LOST PROFITS, LOST SAVINGS, OR OTHER INCIDENTAL OR CONSEQUENTIAL
DAMAGES ARISING OUT OF THE USE OF, OR INABILITY TO USE, SUCH PRODUCT, EVEN IF
MAGTEK HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY
ANY OTHER PARTY.
LIMITATION ON LIABILITY
EXCEPT AS PROVIDED IN THE SECTIONS RELATING TO MAGTEK’S LIMITED WARRANTY,
MAGTEK’S LIABILITY UNDER THIS AGREEMENT IS LIMITED TO THE CONTRACT PRICE OF THIS
PRODUCT.
MAGTEK MAKES NO OTHER WARRANTIES WITH RESPECT TO THE PRODUCT, EXPRESSED OR
IMPLIED, EXCEPT AS MAY BE STATED IN THIS AGREEMENT, AND MAGTEK DISCLAIMS ANY
IMPLIED WARRANTY, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTY OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
MAGTEK SHALL NOT BE LIABLE FOR CONTINGENT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES TO PERSONS OR PROPERTY. MAGTEK FURTHER LIMITS ITS LIABILITY OF ANY KIND
WITH RESPECT TO THE PRODUCT, INCLUDING ANY NEGLIGENCE ON ITS PART, TO THE
CONTRACT PRICE FOR THE GOODS.
MAGTEK’S SOLE LIABILITY AND BUYER’S EXCLUSIVE REMEDIES ARE STATED IN THIS SECTION
AND IN THE SECTION RELATING TO MAGTEK’S LIMITED WARRANTY.
iii
FCC WARNING STATEMENT
This equipment has been tested and was found to comply with the limits for a Class B digital device pursuant to
Part 15 of FCC Rules. These limits are designed to provide reasonable protection against harmful interference
when the equipment is operated in a residential environment. This equipment generates, uses, and can radiate
radio frequency energy and, if not installed and used in accordance with the instruction manual, may cause
harmful interference with radio communications. However, there is no guarantee that interference will not occur
in a particular installation.
FCC COMPLIANCE STATEMENT
This device complies with Part 15 of the FCC Rules. Operation of this device is subject to the following two
conditions: (1) this device may not cause harmful interference, and (2) this device must accept any interference
received, including interference that may cause undesired operation.
CANADIAN DOC STATEMENT
This digital apparatus does not exceed the Class B limits for radio noise from digital apparatus set out in the
Radio Interference Regulations of the Canadian Department of Communications.
Le présent appareil numérique n’émet pas de bruits radioélectriques dépassant les limites applicables aux
appareils numériques de la classe B prescrites dans le Réglement sur le brouillage radioélectrique édicté par le
ministère des Communications du Canada.
iv
TABLE OF CONTENTS
vi
Figure 1-1. USB Swipe Reader
vii
SECTION 1. FEATURES AND SPECIFICATIONS
USB KB SWIPE READER
The USB (Universal Serial Bus) Keyboard Emulation Swipe Reader is a compact magnetic stripe
card reader with a single read head that conforms to ISO standards. The Reader is compatible
with any device with a USB interface. A card is read by sliding it, stripe down and facing the
LED side, through the slot either forward or backward.
A LED (Light Emitting Diode) indicator on the Reader panel provides the operator with
continuous status of the Reader operations.
The Reader emulates a USB Human Interface Device (HID) United States keyboard or optionally
all international keyboards using ALT ASCII code keypad key combinations or customizable key
maps. This allows host applications designed to acquire card data from keyboard input to
seamlessly acquire the card data from the USB swipe reader.
Caution
If another keyboard is connected to the same host as this device and a key
is pressed on the other keyboard while this device is transmitting, then the
data transmitted by this device may get corrupted.
Because of potential “data interleave” issues associated with the USB Keyboard interface,
MagTek recommends that the USB Keyboard Emulation MSR product should only be used if the
application requires magnetic stripe data to be provided via the keyboard input. If previous
applications were based upon RS-232 serial interface magnetic stripe readers, or if this is a brand
new development effort, it is recommended that you use the MagTek’s “standard version” of the
USB HID MSR. (Refer to Technical Manual 99875191 for further information regarding the
USB HID MSR.)
USB KB SURESWIPE
The USB KB SureSwipe is a card reader with two magnetic heads. The SureSwipe reader was
designed specifically to read any magnetic stripe card regardless of which way the magnetic stripe
is facing when swiped. The SureSwipe’s dual heads provide convenience for the user by
eliminating the confusion when swiping a card.
In all other regards, the SureSwipe reader is technically equivalent to the single-head USB KB
Swipe reader described above. All technical specifications described in this manual are applicable
to both types of readers.
The SureSwipe readers have specific part numbers and they are described in a table in the
“Hardware Configurations” section below.
1
USB Keyboard Emulation Swipe Reader
FEATURES
Note
New features have been added to the Keyboard Emulation Swipe Reader. The following
commands were added to most readers that are shipped after June 1, 2005:
ASCII TO KEYPRESS CONVERSION TYPE PROPERTY
INTERFACE TYPE PROPERTY
ACTIVE KEYMAP PROPERTY
PRE CARD STRING PROPERTY
POST CARD STRING PROPERTY
SS TK1 ISO ABA PROPERTY
SS TK2 ISO ABA PROPERTY
ES PROPERTY
RESET DEVICE COMMAND
GET KEYMAP ITEM COMMAND
SET KEYMAP ITEM COMMAND
SAVE CUSTOM KEYMAP COMMAND
In order to determine if these features are available, request the SOFTWARE ID property. If the
software ID string shows “21042804xxx”, the new features are NOT available. If the software
string shows “21042812xxx” or “21042818xxx”, then these new features are supported.
2
Section 1. Features and Specifications
HARDWARE CONFIGURATIONS
The hardware configurations for the USB KB Swipe Reader are as follows:
ACCESSORIES
REFERENCE DOCUMENTS
Axelson, Jan. USB Complete, Everything You Need to Develop Custom USB Peripherals, 1999.
Lakeview Research, 2209 Winnebago St., Madison WI 53704, 396pp., http://www.lvr.com.
Universal Serial Bus (USB): HID Usage Tables Version 1.12 (1/21/2005)
USB (Universal Serial Bus) Specification, Version 1.1, Copyright© 1998 by Compaq Computer
Corporation, Intel Corporation, Microsoft Corporation, NEC Corporation.
3
USB Keyboard Emulation Swipe Reader
SPECIFICATIONS
Table 1-1 lists the specifications for the USB Swipe Reader. Figure 1-2 shows the dimensions for
the standard product.
Reference Standards ISO 7810, ISO 7811, AAMVA and JIS X 6302*
Power Input 5V From USB bus
Recording Method Two-frequency coherent phase (F2F)
Message Format ASCII
Card Speed 3 to 60 ips (7.62 – 152.4 cm/s)
ELECTRICAL
Current
Normal Mode 15 mA
Suspend Mode 200 uA
MECHANICAL
Size
Length 3.94” (100.0mm)
Width 1.28” (32.5mm)
Height 1.23” (31.3mm)
Weight 4.5 oz. (127.57 g)
Cable length 6 ft. (1.8m)
Connector USB Type A plug
ENVIRONMENTAL
Temperature
o o o o
Operating -40 C to 70 C (-40 F to 158 F)
o o o o
Storage -40 C to 70 C (-40 F to 158 F)
Humidity
Operating 10% to 90% noncondensing
Storage 10% to 90% noncondensing
Altitude
Operating 0-10,000 ft. (0-3048 m.)
Storage 0-50,000 ft. (0-15240 m.)
* ISO (International Standards Organization) and AAMVA (American
Association of Motor Vehicle Administrators) and JIS (Japanese
Industrial Standard).
4
Section 1. Features and Specifications
5
USB Keyboard Emulation Swipe Reader
6
SECTION 2. INSTALLATION
This section describes the cable connection, the Windows Plug and Play Setup, and the physical
mounting of the unit.
USB CONNECTION
Connect the USB cable to a USB port on the host. The Reader, LED Indicator, and pin numbers
for the 4-pin connector are shown in Figure 2-1.
Pin numbers and signal descriptions for the cable shown in the illustration are listed in Table 2-1.
7
USB Keyboard Emulation Swipe Reader
On hosts with the Windows operating system, the first time the device is plugged into a specific
USB port, Windows will pop up a dialog box, which will guide you through the process of
installing a device driver for the device. After this process is completed once, Windows will no
longer request this process as long as the device is plugged into the same USB port. The device
driver that Windows will install for this device is the driver used for HID keyboard devices and it
is part of the Windows operating system. When the dialog box pops up, follow the instructions
given in the dialog box. Sometimes Windows will find all the files it needs. Other times
Windows will need to know the location of the files it needs. If Windows prompts for the file
locations, insert the CD that was used to install Windows on your PC and point Windows to the
root directory of the CD. Windows should find all the files it needs there.
MOUNTING
The Reader may be mounted with screws or fastening tape as described below.
Caution
• By two screws through the surface attached to the bottom of the unit and running the
cable on the top of the surface
• By two screws through the surface attached to the bottom of the unit and by drilling a
hole in the surface for the cable and running the cable through the hole
• By attaching the unit to the surface with fastening tape and running the cable on the
top of the surface.
Note
The two mounting inserts are 3mm diameter, 0.5mm pitch, 6.4mm
deep. The length of the screws used depends on the mounting
surface thickness and the thickness of washers (if used).
The mounting dimensions are shown in Figure 2-2. Determine the method of mounting
required.
8
Section 2. Installation
2. Ensure the Reader is positioned on a flat, accessible surface with at least 4 inches
clearance on either end for room to swipe a card. Orient the Reader so the side with the
LED is facing the direction of intended use.
If fastening tape is to be used, clean the area that the Reader will be mounted on with
isopropyl alcohol. Remove the adhesive protective cover on the fastening tape, and
position the Reader and push down firmly.
9
USB Keyboard Emulation Swipe Reader
10
SECTION 3. OPERATION
This section describes the LED Indicator and Card Read.
LED INDICATOR
The LED indicator will be either off, red, or green. When the device is not powered, the LED
will be off. When the device is first plugged in, the LED will be red. As soon as the device is
plugged in, the host will try to enumerate the device. Once the device is enumerated the LED
will turn green indicating that the device is ready for use. When a card is being swiped, the LED
will turn off temporarily until the swipe is completed. If there are no errors after decoding the
card data then the LED will turn green. If there are any errors after decoding the card data, the
LED will turn red for approximately two seconds to indicate that an error occurred and then turn
green. Anytime the host puts the device into suspend mode, the LED will turn off. Once the
host takes the device out of suspend mode, the LED will return to the state it was in prior to
entering suspend mode.
CARD READ
A card may be swiped through the Reader slot when the LED is green.
When using a USB KB Swipe Reader (with a single head), the magnetic stripe must face toward
the front (the side with the LED) and may be swiped in either direction.
When using a USB KB SureSwipe reader (with dual heads), the magnetic stripe can face toward
the front or the back, and may be swiped in either direction.
If there is data encoded on the card, the reader will attempt to decode the data and then send the
results to the host as if the data was being typed on a keyboard. After the results are sent to the
host, the device will be ready to read the next card.
11
USB Keyboard Emulation Swipe Reader
12
SECTION 4. USB COMMUNICATIONS
This device conforms to the USB specification revision 1.1. This device also conforms with the
Human Interface Device (HID) class specification version 1.1. The device communicates to the
host as a HID keyboard device. The latest versions of the Windows operating systems come
with a standard Windows USB HID keyboard driver.
This is a full speed USB device. This device has a number of programmable configuration
properties. These properties are stored in non-volatile memory. These properties can be
configured at the factory or by the end user. The device has an adjustable endpoint descriptor
polling interval value that can be set to any value in the range of 1ms to 255ms. This property
can be used to speed up or slow down the card data transfer rate. The device also has an
adjustable serial number descriptor. More details about these properties can be found later in this
document in the command section.
The device will go into suspend mode when directed to do so by the host. The device will wake
up from suspend mode when directed to do so by the host. The device does not support remote
wakeup.
This device is powered from the USB bus. The vendor ID is 0x0801 and the product ID is
0x0001.
HOST APPLICATIONS
This device can be used with existing applications that acquire card data via keyboard input.
Also, applications that communicate to this device can be easily developed. These applications
can be developed using compilers such as Microsoft’s Visual Basic or Visual C++. To
demonstrate this device’s card reading capabilities any application that accepts keyboard input
such as Window’s Notepad can be used.
CARD DATA
The card data is converted to ASCII and transmitted to the host as if it had been typed on a
keyboard. Any data with ASCII values 0 – 31 or 127 will be transmitted as their equivalent
control code combination. For example a carriage return value 13 (0x0D) will be sent as (^M)
where ^ represents the Ctrl key on the keyboard.
Caution
If another keyboard is connected to the same host as this device and a
key is pressed on the other keyboard while this device is transmitting,
then the data transmitted by this device may get corrupted.
13
USB Keyboard Emulation Swipe Reader
Because of potential “data interleave” issues associated with the USB Keyboard interface,
MagTek recommends that the USB Keyboard Emulation MSR product should only be used by
customers who have previously used MagTek’s Keyboard Wedge MSR, or who are interfacing
with an existing PC software application which gathers card data from the keyboard port. If
previous applications were based upon RS-232 serial interface MSRs, or if this is a brand new
development effort, it is recommended that you use the MagTek’s USB MSR (Non-Keyboard
Emulation Version). Refer to Technical Manual 99875191 for further information regarding the
USB HID reader.
The device’s programmable configuration options affect the format of the card data.
[Tk1 SS] [Tk1 Data] [ES] [Tk2 SS] [Tk2 Data] [ES] [Tk3 SS] [Tk3 Data] [ES] [CR]
where:
Tk1 SS = % (7-bit start sentinel)
Tk2 SS = ; (ISO/ABA 5-bit start sentinel)
@ (7-bit start sentinel)
DEL (0x7F) (JIS type 2 start sentinel)*
Tk3 SS = + (ISO/ABA start sentinel)
# (AAMVA start sentinel)
& (7-bit start sentinel)
ES = ? (end sentinel for all formats except JIS type 2)
DEL (0x7F) (JIS type 2 end sentinel)*
CR = (carriage return) (0x0D)
* Before the JIS type 2 encode type can be decoded, decoding must be enabled with the decode
enable property. The JIS type 2 decoding option was not added until firmware with software ID
21042812K01 was release in October 2008. Some applications may not work well with the JIS
type 2 format because this format allows ASCII characters in the non-printable range (0x00 – 0x1F
and 0x7F).
All data will be sent in upper case regardless of the state of the caps lock key on the keyboard. If
no data is detected on a track then nothing will be transmitted for that track. If an error is
detected on a track the ASCII character E will be sent in place of the track data to indicate an
error.
The card data format for all programmable configuration options is as follows:
[P18][P11] [P13] [Tk1 SS] [Tk1 Data] [ES] [LRC] [P14] [P5] [P13] [Tk2 SS] [Tk2 Data] [ES]
[LRC] [P14] [P5] [P13] [Tk3 SS] [Tk3 Data] [ES] [LRC] [P14] [P5] [P12][P19]
14
Section 4. USB Communications
where:
ES = P22 (end sentinel)
LRC = Longitudinal redundancy check character
P5 = Terminating character
P11 = Pre card character
P12 = Post card character
P13 = Pre track character
P14 = Post track character
P18 = Pre card string
P19 = Post card string
Tk1 SS= P20 (ISO/ABA start sentinel)
Tk2 SS= P21 (ISO/ABA 5-bit start sentinel)
P6 (7-bit start sentinel)
Tk3 SS= P8 (ISO/ABA start sentinel)
P9 (AAMVA start sentinel)
P10 (7-bit start sentinel)
All fields with the format P# are programmable configuration property numbers. They are
described in detail later in this document.
This device has a number of programmable configuration properties. These properties are stored
in non-volatile memory. These properties can be configured at the factory or by the end user
using a program supplied by MagTek. Programming these parameters requires low level
communications with the device. During normal device operation, the device acts like a USB
HID keyboard so the host operating system takes care of all low level communications with the
device so that the application developer is not burdened with these low level details. Details on
how to communicate with the device to change programmable configuration properties follows
in the next few sections. These details are included as a reference only. Most users will not need
to know these details because the device will be configured at the factory or by a program
supplied by MagTek. Most users may want to skip over the next few sections on low level
communications and continue with the details of the configuration properties.
It is strongly recommended that application software developers become familiar with the HID
specification the USB specification before attempting to communicate directly with this device.
This document assumes that the reader is familiar with these specifications. These specifications
can be downloaded free from www.usb.org.
15
USB Keyboard Emulation Swipe Reader
HID USAGES
HID devices send data in reports. Elements of data in a report are identified by unique identifiers
called usages. The structure of the device’s reports and the device’s capabilities are reported to
the host in a report descriptor. The host usually gets the report descriptor only once, right after
the device is plugged in. The report descriptor usages identify the devices capabilities and report
structures. For example, a device could be identified as a keyboard by analyzing the device’s
report descriptor. Usages are four byte integers. The most significant two bytes are called the
usage page and the least significant two bytes are called usage IDs. Usages that are related can
share a common usage page. Usages can be standardized or they can be vendor defined.
Standardized usages such as usages for mice and keyboards can be found in the HID Usage
Tables document and can be downloaded free at www.usb.org. Vendor defined usages must
have a usage page in the range 0xFF00 – 0xFFFF. All usages for this device use the standard
HID keyboard usages or vendor defined magnetic stripe reader usage page 0xFF00. The vendor
defined usage IDs for this device are defined in the following table. The usage types are also
listed. These usage types are defined in the HID Usage Tables document.
REPORT DESCRIPTOR
Item Value(Hex)
Usage Page (Generic Desktop) 05 01
Usage (Keyboard) 09 06
Collection (Application) A1 01
Usage Page (Key Codes) 05 07
Usage Minimum (224) 19 E0
Usage Maximum (231) 29 E7
Logical Minimum (0) 15 00
Logical Maximum (1) 25 01
Report Size (1) 75 01
Report Count (8) 95 08
Input (Data, Variable, Absolute) 81 02
Report Count (1) 95 01
Report Size (8) 75 08
Input (Constant) 81 03
Report Count (5) 95 05
Report Size (1) 75 01
Usage Page (LEDs) 05 08
Usage Minimum (1) 19 01
Usage Maximum (5) 29 05
16
Section 4. USB Communications
Item Value(Hex)
Output (Data, Variable, Absolute) 91 02
Report Count (1) 95 01
Report Size (3) 75 03
Output (Constant) 91 03
Report Count (6) 95 06
Report Size (8) 75 08
Logical Minimum (0) 15 00
Logical Maximum (101) 25 66
Usage Page (Key Codes) 05 07
Usage Minimum (0) 19 00
Usage Maximum (101) 29 66
Input (Data, Array) 81 00
Logical Maximum (255) 26 FF 00
Usage Page (vendor defined (MSR)) 06 00 FF
Usage (command data) 09 20
Report Count 95 18
Feature (Data, Variable, Absolute, Buffered Bytes) B2 02 01
End Collection C0
COMMANDS
Command requests and responses are sent to and received from the device using feature reports.
Command requests are sent to the device using the HID class specific request Set Report. The
response to a command is retrieved from the device using the HID class specific request Get
Report. These requests are sent over the default control pipe. When a command request is sent,
the device will Nak the Status stage of the Set Report request until the command is completed.
This insures that as soon as the Set Report request is completed, the Get Report request can be
sent to get the command response. The usage ID for the command message was shown
previously in the Usage Table.
The following table shows how the feature report is structured for command requests:
The following table shows how the feature report is structured for command responses.
17
USB Keyboard Emulation Swipe Reader
COMMAND NUMBER
This one-byte field contains the value of the requested command number. The following table
lists all the existing commands.
DATA LENGTH
This one-byte field contains the length of the valid data contained in the Data field.
DATA
This multi-byte field contains command data if any. Note that the length of this field is fixed at
22 bytes. Valid data should be placed in the field starting at offset 2. Any remaining data after
the valid data should be set to zero. This entire field must always be set even if there is no valid
data. The HID specification requires that Reports be fixed in length. Command data may vary
in length. Therefore, the Report should be filled with zeros after the valid data.
RESULT CODE
This one-byte field contains the value of the result code. There are two types of result codes:
generic result codes and command-specific result codes. Generic result codes always have the
most significant bit set to zero. Generic result codes have the same meaning for all commands
and can be used by any command. Command-specific result codes always have the most
significant bit set to one. Command-specific result codes are defined by the command that uses
them. The same code can have different meanings for different commands. Command-specific
result codes are defined in the documentation for the command that uses them. Generic result
codes are defined in the following table.
18
Section 4. USB Communications
The Get Property command gets a property from the device. The Get Property command
number is 0x00.
The Set Property command sets a property in the device. The Set Property command number
is 0x01.
The Get and Set Property command data fields for the requests and responses are structured as
follows:
The result codes for the Get and Set Property commands can be any of the codes list in the
generic result code table.
Property ID is a one-byte field that contains a value that identifies the property. The following
table lists all the current property ID values:
19
USB Keyboard Emulation Swipe Reader
The Property Value is a multiple-byte field that contains the value of the property. The number
of bytes in this field depends on the type of property and the length of the property. The
following table lists all of the property types and describes them.
SOFTWARE ID PROPERTY
20
Section 4. USB Communications
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
21
USB Keyboard Emulation Swipe Reader
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
22
Section 4. USB Communications
id 0 T3 T3 T2 T2 T1 T1
T# 00 – Track Disabled
01 – Track Enabled
10 – Track Enabled/Required (Error if blank)
This property is stored in non-volatile memory, so it will persist when the unit is
power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
23
USB Keyboard Emulation Swipe Reader
ICL SS ES LRC 0 LC Er Er
ICL 0 – Changing the state of the caps lock key will not affect the case of the data
1 – Changing the state of the caps lock key will affect the case of the data
Note that the LRC is the unmodified LRC from the track data. To verify the LRC
the track data needs to be converted back from ASCII to card data format and the
start sentinels that were modified to indicate the card encode type need to be
converted back to their original values.
Note that the state of the Caps Lock key on the host keyboard has no affect on
what case the card data is transmitted in unless the ICL bit in this property is set
to 1.
This property is stored in non-volatile memory, so it will persist when the unit is
power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
24
Section 4. USB Communications
mod c c c c c c c
This property is stored in non-volatile memory, so it will persist when the unit is
power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
25
USB Keyboard Emulation Swipe Reader
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
26
Section 4. USB Communications
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
27
USB Keyboard Emulation Swipe Reader
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
28
Section 4. USB Communications
If this device needs to be able to emulate all country’s keyboards then this
property should be set to 1 (ALT ASCII code). The tradeoff is that the ALT
ASCII code mode is slightly slower than keymap mode because more key
presses need to be transmitted. Some applications are not compatible with
ALT ASCII code mode.
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
29
USB Keyboard Emulation Swipe Reader
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
30
Section 4. USB Communications
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
31
USB Keyboard Emulation Swipe Reader
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
32
Section 4. USB Communications
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
ES PROPERTY
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
ES TK1 PROPERTY
33
USB Keyboard Emulation Swipe Reader
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
Note
This property only applies to swipe readers, not the SureSwipe readers.
ES TK2 PROPERTY
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
Note
This property only applies to swipe readers, not the SureSwipe readers.
ES TK3 PROPERTY
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
34
Section 4. USB Communications
Note
This property only applies to swipe readers, not the SureSwipe readers.
Bit
7 6 5 4 3 2 1 0
Position
Decode
Reserved Reserved Reserved Reserved Reserved Reserved Reserved JIS Type 2
Type
When a decode type bit is set to 1 (true), the decode type represented by that bit is
enabled. When a decode type bit is set to 0 (false), the decode type represented
by that bit is disabled. The reserved decode type bits should always be set to zero.
This property is stored in non-volatile memory, so it will persist when the unit is
power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
Note
The JIS type 2 decoding option was not added until firmware with software ID
21042812K01 was release in October 2008. Some applications may not work
well with the JIS type 2 format because this format allows ASCII characters in the
non-printable range (0x00 – 0x1F and 0x7F).
This property only applies to swipe readers, not the SureSwipe readers.
35
USB Keyboard Emulation Swipe Reader
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
Note
This property only applies to swipe readers, not the SureSwipe readers.
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
Note
This property only applies to swipe readers, not the SureSwipe readers.
36
Section 4. USB Communications
Description: When this property is set to 0, the reader data transmission will use the
standard mode of sending track information as described in SECTION 4.
When this value is set to non-zero, and Track 1 or Track 2 is determined to be
in a financial data format, the reader will transmit the PAN (Primary Account
Number), Name and Expiration date using the following format:
If Track 1 is available:
<PAN><TAB><Name><TAB><MM><TAB><YY><Termination Character>
Track 2 data will not be transmitted
If Track 1 and Track 2 are not in financial data format or cannot be decoded,
the reader will revert back to standard mode.
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
37
USB Keyboard Emulation Swipe Reader
Note
* This property was not added until firmware version 21042812L02. This
property only exists in swipe readers, not SureSwipe readers.
Bit 7 6 5 4 3 2 1 0
position
Track Reserved Reserved Reserved Reserved Reserved 3 2 1
The reserved track fields should always be set to zero. For example, to enable
all three tracks set this property to 0x07. To enable only track 1 set this
property to 0x01.
This property is stored in non-volatile memory, so it will persist when the unit
is power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
Note
This property was not added until firmware version 21042812L02.
This property only exists in swipe readers, not SureSwipe readers.
38
Section 4. USB Communications
The host poll timeout was added around the year 2010 because if a USB
suspend occurred while the reader was in the middle of transmitting card data
to the host, the reader would no longer be able to read cards until power
cycled. It was given a fixed value of 2 seconds. If a USB suspend now
occurred while the reader was transmitting card data, this timeout would occur
and the remainder of the card data would be discarded and the reader would
be ready to read the next card once it got a USB resume signal. Getting a
USB suspend while transmitting card data is not an event that would be
expected to occur under normal operating conditions, however a customer was
seeing this occur due to abnormal USB bus activity from other devices on the
bus.
Around the year 2012, starting with firmware part number 21042886 Revision
C.01, this timeout was made adjustable with this property so that it could be
disabled or adjusted. This property was added because some printers, made
by HP and used as a host in this application, were occasionally ceasing to poll
the reader for more than two seconds which would cause a timeout to occur
which would in turn cause the host application to have problems. The timeout
was disabled to resolve this problem. The printer was not behaving properly
in this case. This problem would not be expected to occur on an error free
USB Bus.
Not all readers contain this timeout and not all readers contain this property to
adjust it.
This property is stored in non-volatile memory, so it will persist when the unit is
power cycled. When this property is changed, the unit must be reset (see
Command Number 2) or power cycled to have these changes take effect.
39
USB Keyboard Emulation Swipe Reader
40
Section 4. USB Communications
combined with the left ALT key modifier, last keypad ‘3’ is sent combined
with the left ALT key modifier.
Data structure:
Request Data:
Offset Field Name Description
0 ASCII value Value of the ASCII character to be
retrieved from the key map. This can be
any value between 0 and 127 (0x7F). For
example, to retrieve the key map item for
ASCII character ‘?’ (card data end
sentinel) use the ASCII value of ‘?’ which
is 63 (0x3F).
Response Data:
Offset Field Name Description
0 Key Usage ID The value of the USB key usage ID that is
mapped to the given ASCII value. For
example, for the United States keyboard
map, usage ID 56 (0x38) (keyboard / and
?) is mapped to ASCII character ‘?’.
1 Key Modifier Byte The value of the USB key modifier byte
that is mapped to the given ASCII value.
For example, for the United States
keyboard map, modifier byte 0x02 (left
shift key) is mapped to ASCII character ‘?’.
41
USB Keyboard Emulation Swipe Reader
42
Section 4. USB Communications
Data structure:
Request Data:
Offset Field Name Description
0 ASCII value Value of the ASCII character to be set in
the key map. This can be any value
between 0 and 127 (0x7F). For example,
to set the key map item for ASCII
character ‘?’ (card data end sentinel) use
the ASCII value of ‘?’ which is 63 (0x3F).
1 Key Usage ID The value of the USB key usage ID that is
to be mapped to the given ASCII value.
For example, for the United States
keyboard map, usage ID 56 (0x38)
(keyboard / and ?) is mapped to ASCII
character ‘?’. To change this to the ASCII
character ‘>‘ use usage ID 55 (0x37)
(keyboard . and >).
2 Key Modifier Byte The value of the USB key modifier byte
that is to be mapped to the given ASCII
value. For example, for the United States
keyboard map, modifier byte 0x02 (left
shift key) is mapped to ASCII character ‘?’.
To change this to the ASCII character ‘>‘
use modifier byte 0x02 (left shift key).
The following example maps the card ASCII data end sentinel character ‘?’ to the ‘>‘ keyboard
key.
43
USB Keyboard Emulation Swipe Reader
44
SECTION 5. DEMO PROGRAM
The purpose of this demo program is not to demonstrate card reading with this Keyboard
Emulation device. Use a text editor application such as Windows Notepad to demonstrate card
reading for this keyboard emulation device. Any application that allows user input from a
keyboard should be sufficient to demonstrate card reading for this device.
The primary purpose of the demo program, when used with this keyboard emulation device, is to
allow users to change the device’s programmable configuration properties. This is accomplished
by sending commands to the device with the demo program. The demo program also comes
with source code that can be used as a guide for application developers who what to change the
device’s programmable configuration properties in an application. However, it is unlikely that
application developers will want to change these properties in an application since these
properties only need to be set once and can be set at the factory. This program is written in
Visual Basic.
Demo programs, version 1.2.0 and newer work on Windows 98, Me, 2000 and XP. Older
versions do not support the HID keyboard emulation device on Windows 2000 or XP. These
older versions only work on Windows 98 and Me.
When the demo program is run, a button for reading cards is displayed along with a button for
sending commands. The card reading option is not supported for this keyboard emulation
device. Use a text editor application such as Windows Notepad to demonstrate card reading for
this keyboard emulation device.
The part numbers for the demo program can be found in this document in Section 1 under
Accessories.
INSTALLATION
To install the demo program, run the setup.exe file and follow the instructions given on the
screen.
OPERATION
45
USB Keyboard Emulation Swipe Reader
• Enter a command in the Message edit box. All data entered should be in hexadecimal bytes
with a space between each byte. Enter the command number followed by the command data
if there is any. The application will automatically calculate and send the command data
length for you. For example, to send the GET PROPERTY command for property
SOFTWARE ID enter 00 00.
• Press Enter or click on Send message to send the command and receive the result.
• The command request and the command result will be displayed in the Communications
Dialog edit box.
• The Clear Dialog button clears the Communication Dialog edit box.
SOURCE CODE
Source code is included with the demo program. It can be used as a guide for application
development. It is described in detail, with comments, to assist developers. The book USB
Complete by Jan Axelson is also a good guide for application developers, especially the chapter
on Human Interface Device Host Applications (see “Reference Documents” in Section 1).
46
APPENDIX A. USAGE ID DEFINITIONS
This appendix is from the following document found on www.usb.org: Universal Serial Bus HID Usage
Tables, Version 1.12 and specifically for this manual, Section 10, Keyboard/Keypad Page (0x07).
Ref:
Usage ID Usage ID Typical
PC-AT
Usage Name Boot
UNIX
(Dec) (Hex) AT-101
Mac
Position
0 00 Reserved (no event indicated)
9
N/A √ √ √ 4/101/104
1 01 Keyboard ErrorRollOver
9
N/A √ √ √ 4/101/104
2 02 Keyboard POSTFail
9
N/A √ √ √ 4/101/104
3 03 Keyboard ErrorUndefined
9
N/A √ √ √ 4/101/104
4 04 Keyboard a and A
4
31 √ √ √ 4/101/104
5 05 Keyboard b and B 50 √ √ √ 4/101/104
6 06 Keyboard c and C
4
48 √ √ √ 4/101/104
7 07 Keyboard d and D 33 √ √ √ 4/101/104
8 08 Keyboard e and E 19 √ √ √ 4/101/104
9 09 Keyboard f and F 34 √ √ √ 4/101/104
10 0A Keyboard g and G 35 √ √ √ 4/101/104
11 0B Keyboard h and H 36 √ √ √ 4/101/104
12 0C Keyboard i and I 24 √ √ √ 4/101/104
13 0D Keyboard j and J 37 √ √ √ 4/101/104
14 0E Keyboard k and K 38 √ √ √ 4/101/104
15 0F Keyboard l and L 39 √ √ √ 4/101/104
16 10 Keyboard m and M 52 √ √ √ 4/101/104
17 11 Keyboard n and N 51 √ √ √ 4/101/104
18 12 Keyboard o and O
4
25 √ √ √ 4/101/104
19 13 Keyboard p and P
4
26 √ √ √ 4/101/104
47
USB Keyboard Emulation Swipe Reader
Ref:
Usage ID Usage ID Typical
PC-AT
Usage Name Boot
UNIX
(Dec) (Hex) AT-101
Mac
Position
20 14 Keyboard q and Q
4
27 √ √ √ 4/101/104
21 15 Keyboard r and R 20 √ √ √ 4/101/104
22 16 Keyboard s and S
4
32 √ √ √ 4/101/104
23 17 Keyboard t and T 21 √ √ √ 4/101/104
24 18 Keyboard u and U 23 √ √ √ 4/101/104
25 19 Keyboard v and V 49 √ √ √ 4/101/104
26 1A Keyboard w and W
4
18 √ √ √ 4/101/104
27 1B Keyboard x and X
4
47 √ √ √ 4/101/104
28 1C Keyboard y and Y
4
22 √ √ √ 4/101/104
29 1D Keyboard z and Z
4
46 √ √ √ 4/101/104
30 1E Keyboard 1 and !
4
2 √ √ √ 4/101/104
31 1F Keyboard 2 and !
4
3 √ √ √ 4/101/104
32 20 Keyboard 3 and #
4
4 √ √ √ 4/101/104
33 21 Keyboard 4 and $
4
5 √ √ √ 4/101/104
34 22 Keyboard 5 and %
4
6 √ √ √ 4/101/104
35 23 Keyboard 6 and ^
4
7 √ √ √ 4/101/104
36 24 Keyboard 7 and &
4
8 √ √ √ 4/101/104
37 25 Keyboard 8 and *
4
9 √ √ √ 4/101/104
38 26 Keyboard 9 and (
4
10 √ √ √ 4/101/104
39 27 Keyboard 0 and )
4
11 √ √ √ 4/101/104
40 28 Keyboard Return (ENTER)
5
43 √ √ √ 4/101/104
41 29 Keyboard ESCAPE 110 √ √ √ 4/101/104
42 2A Keyboard DELETE (Backspace) 15 √ √ √ 4/101/104
43 2B Keyboard Tab 16 √ √ √ 4/101/104
44 2C Keyboard Spacebar 61 √ √ √ 4/101/104
45 2D Keyboard - and (underscore)
4
12 √ √ √ 4/101/104
46 2E Keyboard = and +
4
13 √ √ √ 4/101/104
47 2F Keyboard [ and {
4
27 √ √ √ 4/101/104
48 30 Keyboard ] and }
4
28 √ √ √ 4/101/104
49 31 Keyboard \ and | 29 √ √ √ 4/101/104
50 32 Keyboard Non-US # and ~
2
42 √ √ √ 4/101/104
51 33 Keyboard ; and :
4
40 √ √ √ 4/101/104
52 34 Keyboard ‘ and “
4
41 √ √ √ 4/101/104
53 35 Keyboard Grave Accent and Tilde
4
1 √ √ √ 4/101/104
54 36 Keyboard, and <
4
53 √ √ √ 4/101/104
55 37 Keyboard. and >
4
54 √ √ √ 4/101/104
56 38 Keyboard / and ? 55 √ √ √ 4/101/104
57 39 Keyboard Caps Lock
11
30 √ √ √ 4/101/104
58 3A Keyboard F1 112 √ √ √ 4/101/104
59 3B Keyboard F2 113 √ √ √ 4/101/104
48
Universal Serial Bus HID Tables
Ref:
Usage ID Usage ID Typical
PC-AT
Usage Name Boot
UNIX
(Dec) (Hex) AT-101
Mac
Position
60 3C Keyboard F3 114 √ √ √ 4/101/104
61 3D Keyboard F4 115 √ √ √ 4/101/104
62 3E Keyboard F5 116 √ √ √ 4/101/104
63 3F Keyboard F6 117 √ √ √ 4/101/104
64 40 Keyboard F7 118 √ √ √ 4/101/104
65 41 Keyboard F8 119 √ √ √ 4/101/104
66 42 Keyboard F9 120 √ √ √ 4/101/104
67 43 Keyboard F10 121 √ √ √ 4/101/104
68 44 Keyboard F11 122 √ √ √ 101/104
69 45 Keyboard F12 123 √ √ √ 101/104
70 46 Keyboard PrintScreen
1
124 √ √ √ 101/104
71 47 Keyboard Scroll Lock
11
125 √ √ √ 4/101/104
72 48 Keyboard Pause
1
126 √ √ √ 101/104
73 49 Keyboard Insert
1
75 √ √ √ 101/104
74 4A Keyboard Home
1
80 √ √ √ 101/104
75 4B Keyboard PageUp
1
85 √ √ √ 101/104
76 4C Keyboard Delete Forward
1;14
76 √ √ √ 101/104
77 4D Keyboard End
1
81 √ √ √ 101/104
78 4E Keyboard PageDown
1
86 √ √ √ 101/104
79 4F Keyboard RightArrow
1
89 √ √ √ 101/104
80 50 Keyboard LeftArrow
1
79 √ √ √ 101/104
81 51 Keyboard DownArrow
1
84 √ √ √ 101/104
82 52 Keyboard UpArrow
1
83 √ √ √ 101/104
83 53 Keypad Num Lock and Clear1
1
90 √ √ √ 101/104
84 54 Keypad /
1
95 √ √ √ 101/104
85 55 Keypad * 100 √ √ √ 4/101/104
86 56 Keypad - 105 √ √ √ 4/101/104
87 57 Keypad + 106 √ √ √ 4/101/104
88 58 Keypad ENTER5 108 √ √ √ 101/104
89 59 Keypad 1 and End 93 √ √ √ 4/101/104
90 5A Keypad 2 and Down Arrow 98 √ √ √ 4/101/104
91 5B Keypad 3 and PageDn 103 √ √ √ 4/101/104
92 5C Keypad 4 and Left Arrow 92 √ √ √ 4/101/104
93 5D Keypad 4 and Left Arrow 97 √ √ √ 4/101/104
94 5E Keypad 4 and Left Arrow 102 √ √ √ 4/101/104
95 5F Keypad 7 and Home 91 √ √ √ 4/101/104
96 60 Keypad 8 and Up Arrow 96 √ √ √ 4/101/104
97 61 Keypad 9 and PageUp 101 √ √ √ 4/101/104
98 62 Keypad 0 and Insert 99 √ √ √ 4/101/104
49
USB Keyboard Emulation Swipe Reader
Ref:
Usage ID Usage ID Typical
PC-AT
Usage Name Boot
UNIX
(Dec) (Hex) AT-101
Mac
Position
99 63 Keypad . and Delete 104 √ √ √ 4/101/104
100 64 Keyboard Non-US \ and |
3;6
45 √ √ √ 4/101/104
101 65 Keyboard Application
10
129 √ √ 104
102 66 Keyboard Power =
9
√ √
103 67 Keypad = √
104 68 Keyboard F13 62 √
105 69 Keyboard F14 63 √
106 6A Keyboard F15 64 √
107 6B Keyboard F16 65
107 6C Keyboard F17
109 6D Keyboard F18
110 6E Keyboard F19
111 6F Keyboard F20
112 70 Keyboard F21
113 71 Keyboard F22
114 72 Keyboard F23
115 73 Keyboard F24
116 74 Keyboard Execute √
117 75 Keyboard Help √
118 76 Keyboard Menu √
119 77 Keyboard Select √
120 78 Keyboard Stop √
121 79 Keyboard Again √
122 7A Keyboard Undo √
123 7B Keyboard Cut √
124 7C Keyboard Copy √
125 7D Keyboard Paste √
126 7E Keyboard Find √
127 7F Keyboard Mute √
128 80 Keyboard Volume Up √
129 81 Keyboard Volume Down √
130 82 Keyboard Locking Caps Lock
12
√
131 83 Keyboard Locking Num Lock
12
√
132 84 Keyboard Locking Scroll Lock
12
√
27
133 85 Keypad Comma 107
29
134 86 Keypad Equal Sign
15-28
135 87 Keyboard International1 56
16
136 88 Keyboard International2
17
137 89 Keyboard International3
18
138 8A Keyboard International4
50
Universal Serial Bus HID Tables
Ref:
Usage ID Usage ID Typical
PC-AT
Usage Name Boot
UNIX
(Dec) (Hex) AT-101
Mac
Position
19
139 8B Keyboard International5
20
140 8C Keyboard International6
21
141 8D Keyboard International7
22
142 8E Keyboard International8
22
143 8F Keyboard International9
25
144 90 Keyboard Lang1
26
145 91 Keyboard Lang2
30
146 92 Keyboard Lang3
31
147 93 Keyboard Lang4
32
148 94 Keyboard Lang5
8
149 95 Keyboard Lang6
8
150 96 Keyboard Lang7
8
151 97 Keyboard Lang8
8
152 98 Keyboard Lang9
7
153 99 Keyboard Alternate Erase
1
154 9A Keyboard Sys/Req Attention
155 9B Keyboard Cancel
156 9C Keyboard Clear
157 9D Keyboard Prior
158 9E Keyboard Return
159 9F Keyboard Separator
160 A0 Keyboard Out
161 A1 Keyboard Oper
162 A2 Keyboard Clear/Again
163 A3 Keyboard Cr/Sel/Props
164 A4 Keyboard Ex Sel
165-175 A5-CF Reserved
176 B0 Keypad 00
177 B1 Keypad 000
33
178 B2 Thousands Separator
33
179 B3 Decimal Separator
34
180 B4 Currency Unit
34
181 B5 Currency Sub-unit
182 B6 Keypad (
183 B7 Keypad )
184 B8 Keypad {
185 B9 Keypad}
186 BA Keypad Tab
187 BB Keypad Backspace
51
USB Keyboard Emulation Swipe Reader
Ref:
Usage ID Usage ID Typical
PC-AT
Usage Name Boot
UNIX
(Dec) (Hex) AT-101
Mac
Position
188 BC Keypad A
189 BD Keypad B
190 BE Keypad C
191 BF Keypad D
192 C0 Keypad E
193 C1 Keypad F
194 C2 Keypad XOR
195 C3 Keypad ^
196 C4 Keypad %
197 C5 Keypad <
198 C6 Keypad >
199 C7 Keypad &
200 C8 Keypad &&
201 C9 Keypad |
202 CA Keypad ||
203 CB Keypad :
204 CC Keypad #
205 CD Keypad Space
206 CE Keypad @
207 CF Keypad !
208 D0 Keypad Memory Store
209 D1 Keypad Memory Recall
210 D2 Keypad Memory Clear
211 D3 Keypad Memory Add
212 D4 Keypad Memory Subtract
213 D5 Keypad Memory Multiple
214 D6 Keypad Memory Divide
215 D7 Keypad +/-
216 D8 Keypad Clear
217 D9 Keypad Clear Entry
218 DA Keypad Binary
219 DB Keypad Octal
220 DC Keypad Decimal
221 DD Keypad Hexadecimal
222-223 DE-DF Reserved
224 E0 Keyboard LeftControl 58 √ √ √
225 E1 Keyboard LeftShift 44 √ √ √
226 E2 Keyboard LeftA;t 60 √ √ √
227 E3 Keyboard Left GUI
10;23
127 √ √ √
228 E4 Keyboard RightControl 64 √ √ √
52
Universal Serial Bus HID Tables
Ref:
Usage ID Usage ID Typical
PC-AT
Usage Name Boot
UNIX
(Dec) (Hex) AT-101
Mac
Position
229 E5 Keyboard RightShift 57 √ √ √
230 E6 Keyboard RightAlt 62 √ √ √
231 E7 Keyboard Right GUI
10;24
128 √ √ √
232 – E8-FFFF Reserved
65535
Footnotes
1. Usage of keys is not modified by the state of the Control, Alt, Shift or Num Lock keys. That is, a key does not send extra
codes to compensate for the state of any Control, Alt, Shift or Num Lock keys.
2. Typical language mappings: US: \| Belg: µ`£ FrCa: <}> Dan:’* Dutch: <> Fren:*µ Ger: #’ Ital: ù§ LatAm: }`] Nor:,* Span:
}Ç Swed: ,* Swiss: $£ UK: #~.
3. Typical language mappings: Belg:<\> FrCa:«°» Dan:<\> Dutch:]|[ Fren:<> Ger:<|> Ital:<> LatAm:<> Nor:<> Span:<>
Swed:<|> Swiss:<\> UK:\| Brazil: \|.
4. Typically remapped for other languages in the host system.
5. Keyboard Enter and Keypad Enter generate different Usage codes.
6. Typically near the Left-Shift key in AT-102 implementations.
7. Example, Erase-Eaze™ key.
8. Reserved for language-specific functions, such as Front End Processors and Input Method Editors.
9. Reserved for typical keyboard status or keyboard errors. Sent as a member of the keyboard array. Not a physical key.
10. Windows key for Windows 95, and “Compose.”
11. Implemented as a non-locking key; sent as member of an array.
12. Implemented as a locking key; sent as a toggle button. Available for legacy support; however, most systems should use the
non-locking version of this key.
13. Backs up the cursor one position, deleting a character as it goes.
14. Deletes one character without changing position.
15-20. See additional foot notes in Universal Serial Bus HID Usage Tables, Copyright © 1996-2005, USB Implementers
Forum.
21. Toggle Double-Byte/Single-Byte mode.
22. Undefined, available for other Front End Language Processors.
23. Windowing environment key, examples are Microsoft Left Win key, Mac Left Apple key, Sun Left Meta key
24. Windowing environment key, examples are Microsoft® RIGHT WIN key, Macintosh® RIGHT APPLE key, Sun® RIGHT
META key.
25. Hangul/English toggle key. This usage is used as an input method editor control key on a Korean language keyboard.
26. Hanja conversion key. This usage is used as an input method editor control key on a Korean language keyboard.
27. Keypad Comma is the appropriate usage for the Brazilian keypad period (.) key. This represents the closest possible match,
and system software should do the correct mapping based on the current locale setting.
28. Keyboard International1 should be identified via footnote as the appropriate usage for the Brazilian forward-slash (/) and
question-mark (?) key. This usage should also be renamed to either "Keyboard Non-US / and ?" or to "Keyboard
International1" now that it's become clear that it does not only apply to Kanji keyboards anymore.
29. Used on AS/400 keyboards.
30. Defines the Katakana key for Japanese USB word-processing keyboards.
31. Defines the Hiragana key for Japanese USB word-processing keyboards.
32. Usage 0x94 (Keyboard LANG5) "Defines the Zenkaku/Hankaku key for Japanese USB word-processing keyboards.
33. The symbol displayed will depend on the current locale settings of the operating system. For example, the US thousands
separator would be a comma, and the decimal separator would be a period.
34. The symbol displayed will depend on the current locale settings of the operating system. For example the US currency unit
would be $ and the sub-unit would be ¢.
53
USB Keyboard Emulation Swipe Reader
54
APPENDIX B. MODIFIER BYTE DEFINITIONS
This appendix is from the following document found on www.usb.org: Device Class Definition
for Human Interface Devices (HID) Version 1.11, and specifically for this manual, Section 8.3
Report Format for Array Items.
Bit Key
0 LEFT CTRL
1 LEFT SHIFT
2 LEFT ALT
3 LEFT GUI
4 RIGHT CTRL
5 RIGHT SHIFT
6 RIGHT ALT
7 RIGHT GUI
55
USB Keyboard Emulation Swipe Reader
56