Technical information
10/29/2014
Page 5 of 72
© 2014 The Code Corporation
12393 South Gateway Park Place Suite 600, Draper, UT 84020
(801) 495-2200
FAX (801) 495-0280
Note: USB keyboard communications are one-way, from the Reader to Host only. A special sequence is
available to switch the Reader from keyboard to HID communication mode. See register 1B.
4.1 USB Enumeration PID (VID=11FA)
200 – KBD Mode
201 – IBM Handheld
202 – HID_Native
203 – Not used
204 – HID_VCOM
205 – CodeXML Modem HID Keyboard
206 – HID POS
207 – Bootloader
208 – CodeXML Modem HIDPOS
209 – CodeXML Modem HID Bulk
1009 - DFU
5 Reader to Host Communication
The Reader may be configured in raw mode, where no packet framing or check characters are sent,
and packet mode (See sections 3.1 and 3.2) The Reader may also be configured to expect an
acknowledgement from the Host after each packet and automatic retry when no acknowledgement is
received. Standard “one-way” mode of operation uses raw packets, no expected response from Host,
and no automatic retry. Standard “two-way” mode of operation uses packets with framing and checks
characters, expects a response from the Host, and automatically resends. If no Acknowledgement is
received (ACK), three (3) attempts to resend are made.
5.1 Raw Data
Reader to Host communication consists of decoded raw data having no framing or check characters.
Raw data is sent with no “end of packet” data (crc16), expects no response from Host and no data is
resent.
5.2 Packet Data
Data from the Reader to the Host consist of packets as specified below. Packetized data is sent using
ACK/NAK protocols with framing and check characters. Packets are delivered asynchronously as
barcodes are read and in response to Host to Reader commands. For keyboard communication (USB
keyboard), all ASCII-characters are transmitted as keyboard-sequences. For all other communication
ports, all ASCII-characters are transmitted as ASCII-bytes.
Note: Even though the data size field allows up to 65535 bytes of data in a packet, the actual size of a
packet either in raw or in packet mode including data and packet overhead is a maximum of 16384
bytes.
packet: start packet-type
nz
data
opt
end
start: packet-start
nr
| codeXML-start
nz
packet-start: SOH ‘X’ ‘R’ protocol-version Reader-id packet-number timestamp data-size
protocol-version: ‘1’
Reader-id: big-endian 32-bit number
packet-number: data-packet-number | cmd-packet-number