Code CR900FD User manual

4/14/2016
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 1 of 106
© 2013-2016 The Code Corporation
12393 South Gateway Park Place Suite 600, Draper, UT 84020
(801) 495-2200
FAX (801) 495-0280
C005066
Interface Configuration Document For:
CR900FD
CR1000
CR1000XHD
CR1400
CR1400XHD
CR1428
CR2300
CR2600
CR2600XHD
CR3600
CR3600DPM
CR4405
CR5000
CR5000RTC
CR6000
CR8000
T500
Firmware build 1206 (for CR5000 & CR5000RTC)
Firmware build 5040 (for the T500)
Firmware build 1174 (for all others)

4/14/2016
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 2 of 106
© 2013-2016 The Code Corporation
12393 South Gateway Park Place Suite 600, Draper, UT 84020
(801) 495-2200
FAX (801) 495-0280
Table of Contents
1Keyword Table .......................................................................................................3
2Scope .....................................................................................................................6
3Notations ...............................................................................................................6
4Reader Command Overview...................................................................................6
4.1 Packetized Commands.......................................................................................7
4.2 Text Commands .................................................................................................7
4.3 Code Reader Batch (CRB) System.......................................................................7
4.4 Barcode Commands...........................................................................................7
5Communication Medium........................................................................................8
5.1 USB Enumeration PID ........................................................................................8
6Reader to Host Communication..............................................................................8
6.1 Raw Data ...........................................................................................................9
6.2 Packet Data........................................................................................................9
7Host to Reader Communication............................................................................13
7.1 Text Commands ...............................................................................................13
7.2 Packetized Commands.....................................................................................14
7.3 Command Types ..............................................................................................15
7.4 Prefix and Suffix Handling ................................................................................25
8File Installation.....................................................................................................25
8.1 Simple Protocol................................................................................................25
9Reader Settings ....................................................................................................26
9.1 Binary Dip Switch.............................................................................................26
9.2 Field of Interest................................................................................................27
9.3 Reader Setting Persistence ..............................................................................27
9.4 Docked State Settings ......................................................................................28
9.4.1 Overview.........................................................................................................................................28
9.4.2 H5 commands (CR5000 & CR5000RTC only) ..................................................................................29
9.5 Reader Settings Table ......................................................................................30
10 Radio Commands .................................................................................................98
10.1 Bluetooth® Commands ....................................................................................98
11 Symbology Detail Settings..................................................................................100
11.1 PharmaCode ..................................................................................................100
12 Appendix: Example CRC16 C Code ......................................................................101
13 Appendix: Example CRC14 C Code ......................................................................104
14 Appendix: Custom Keyboard XML File Formatting..............................................105

4/14/2016
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 3 of 106
© 2013-2016 The Code Corporation
12393 South Gateway Park Place Suite 600, Draper, UT 84020
(801) 495-2200
FAX (801) 495-0280
1Keyword Table
These keywords are used throughout the document to show relationships between settings.

4/14/2016
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 4 of 106
© 2013-2016 The Code Corporation
12393 South Gateway Park Place Suite 600, Draper, UT 84020
(801) 495-2200
FAX (801) 495-0280
Keyword
Description
#2Of5
All 2 of 5 symbologies
#AES
Settings or commands related to AES encryption
#AgeVerification
Settings related to the Age Verifications functions of some Code readers
#AIMId
Settings controlling the output of the AIM Identifier
#Aztec
Aztec symbology
#Battery
Settings for battery usage
#Beep
Settings that affect beep duration and intensity
#ButtonStayDownTime
Settings that affect how long the buttons stay engaged after being
pressed
#Cellphone
Settings related to cellphone reading
#Charger
Settings related to a charger base
#Charging
Settings related to charging a reader and/or phone
#Codabar
Codabar symbology
#Code39
Code 39 symbology
#Communications
Used in changing the communication mode of the reader
#CompositeBarcodes
Settings that affect reading of barcodes with more than one part
#DataMatrix
Data Matrix symbology
#DataRetention
Settings that determine the behavior of data saved on the reader
#DataEncoding
Settings that affect incoming/outgoing data
#DefaultEvent
Any settings that may affect default event behavior
#DPM
Settings related to Direct Part Mark
#DuplicateBlock
Settings related to blocking duplicate barcodes
#EAN/JAN
EAN/JAN symbology
#Encryption
Settings related to Bluetooth® encryption
#Foi0
Field of Interest 0
#Foi1
Field of Interest 1
#GoodReadRTS
Settings that affect the good read output on RTS
#GS1Databar
The GS1 DataBar family of symbologies
#HanXin
Han Xin symbology
#InterCharacterDelay
Settings controlling the USB keyboard inter-character delay
#Interleaved2Of5
Interleaved 2 of 5 symbology
#KeyboardMap
Settings related to changing the output keyboard map
#MotionDetection
Settings that affect the behavior of the motion detection feature
#PDF417
PDF417 symbology
#PharmaCode
PharmaCode symbology
#PictureSettings
Settings that affect pictures (JPG or PGM) captured by the reader
#Postal
Postal symbologies
#QR
QR Code symbology
#ReaderState
Settings that affect the transition from one state to another (i.e. Active
to Idle)

4/14/2016
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 5 of 106
© 2013-2016 The Code Corporation
12393 South Gateway Park Place Suite 600, Draper, UT 84020
(801) 495-2200
FAX (801) 495-0280
#SerialComm
Settings related to serial communications mode
#SettingsLock
Settings that affect the enhanced Settings Lock feature
#SimpleAV
Settings that affect the Simple Age Verification feature on the CR5000
#Stand
Settings that affect reader behavior in a Stand
#StandDetect
Settings related to detecting the Stand, or table, or the charging base as
a Stand
#StandModes
Settings that change based on entering or leaving the Stand/table
#T500
Information and settings that relate to the T500 Reader Accessory
#Telepen
Telepen symbology
#TextCommands
Settings relating to the reader accepting text commands
#UPC
UPC symbology
#Vibration
Settings that affect vibration in readers with a vibration motor

4/14/2016
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 6 of 106
© 2013-2016 The Code Corporation
12393 South Gateway Park Place Suite 600, Draper, UT 84020
(801) 495-2200
FAX (801) 495-0280
2Scope
This Interface Configuration Document (ICD) specifies the communication protocol between the Code
Reader™ 900FD (CR900FD), Code Reader™ 1000 (CR1000), Code Reader™ 1000 XHD (CR1000XHD),
Code Reader™ 1400 (CR1400), Code Reader™ 1400 XHD (CR1400XHD), Code Reader™ 1428 (CR1428),
Code Reader™ 2300 (CR2300), Code Reader™ 2600 (CR2600), Code Reader™ 2600 XHD (CR2600XHD),
Code Reader™ 3600 (CR3600), Code Reader™ 3600 DPM (CR3600DPM), Code Reader™ 4405 (CR4405),
Code Reader™ 5000 (CR5000) , Code Reader™ 5000 RTC (CR5000RTC), Code Reader™ 6000 (CR6000),
Code Reader™ 8000 (CR8000), or Code T500 Reader Accessory (T500) hardware and application
software that runs on the Host computer, specific Reader commands, examples of a variety of ways to
communicate and send data to the Reader (i.e. RS232, USB) and command/communication types.
Make sure to use the latest released firmware for default values listed in Section 9.
3Notations
The interface protocol is described as a set of grammars, indicated by different type styles and
symbols. These indications are listed in the table below.
Example
Indication
Grammar
Text-
Command
Italic type
Syntactic categories (non-terminals)
space
Bold type
Terminal symbols
0xFF
0x prefix indicating
hexadecimal
Literal byte values
‘X’
Single quotes
Literal ASCII characters
SOH
All caps
Non-printable ASCII characters
PageUp
Key name
key press-release sequence
shift
Key plus down arrow
Key-down only
shift
Key plus up arrow
Key-up only
esc | tab
Vertical bar
Alternatives (this or that)
dataopt
opt. (opt subscript)
Optional terminals and non-terminals
packet-typenz
nz (nz subscript)
Applies to all packets except ztype packets
crc16nr
nr (nr subscript)
Applies to packets sent in “non-raw” mode, i.e. in
“packet” mode
4Reader Command Overview
This section is intended to introduce developers/users to the methods used to send commands to the
Reader. There are two ways to send a command to the Reader: from a Host computer, or by scanning
a barcode containing a command sequence. When sending commands from the host, there are two
formats that can be used: packetized commands and text commands.

4/14/2016
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 7 of 106
© 2013-2016 The Code Corporation
12393 South Gateway Park Place Suite 600, Draper, UT 84020
(801) 495-2200
FAX (801) 495-0280
4.1 Packetized Commands
Packetized commands are the most reliable way to communicate to the Reader. The packet consists of
a prefix and a suffix. The prefix contains the amount of data to be transmitted and the suffix contains
error detection. Unlike text commands, packetized commands are always enabled. (See Section 7.2)
4.2 Text Commands
Text commands are provided as an easy way to send a command to a Reader but they lack the
reliability of packetized commands. In addition, text commands must be enabled. Text commands can
easily be sent from a terminal program and use a %xx (similar to URL encoding) to translate an escape
sequence containing a 2-digit hex value corresponding to the single 8-bit ASCII character. This allows
non-printable ASCII characters to be entered via the terminal program. Text commands can be sent via
the RS232, USB Virtual COM (VCOM) or USB HID mode by using appropriate communication software.
4.3 Code Reader Batch (CRB) System
The Code Reader Batch (CRB) system is a convenient method for creating and maintaining a set of
commands that can be sent to the Reader. The commands in the CRB file are immediately processed
by the reader.
These CRB files can be created in any text editor with the file extension of .crb. The CRB system accepts
all of the valid text commands. There should be one command per line. The CRB file may contain
empty lines and comments (prefixed with the semicolon (;) character) as well.
The CRB files can be sent directly to the Reader using the normal file transfer. As CRB files are just a list
of text commands, they can also be sent by a serial terminal program. Note: if using a serial terminal
program the Reader will first need to be commanded in to “text command mode”; see Section 7.1.
CRB files can also be encoded in barcode form using Code’s CortexTools® utility to be processed by
scanning the barcode with a Code reader.
Pre-made Configuration barcodes can be found on Code’s web site (http://codecorp.com), and
4.4 Barcode Commands
The Reader will recognize the following sequence within a barcode as a command to the Reader:
SOH ‘X’ GS STX Text-Command EOT (Packet does not contain spaces)
The Text-Command portion contains a text command as described above.
Because the Barcode Command is terminated with ASCII EOT, the Text-Command may not contain EOT.
If the Text-Command needs to contain EOT, encode it as %04. Multiple commands can be contained in
a single barcode.

4/14/2016
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 8 of 106
© 2013-2016 The Code Corporation
12393 South Gateway Park Place Suite 600, Draper, UT 84020
(801) 495-2200
FAX (801) 495-0280
5Communication Medium
The Reader communicates with the Host via USB (keyboard/HID/VCOM), RS232, or Bluetooth®. The
Host includes appropriate hooks and/or drivers to enable two-way communication with the Reader.
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.
5.1 USB Enumeration PID
The following Product ID (PID) are used by Code to identify their products when connected to a PC. All
Code products use the same Vendor ID (VID) of 11FA
PID
Product
family
Description
0x0200
Reader
Keyboard
0x0201
Reader
IBM POS (also known as IBM Handheld)
0x0202
Reader
HID Native (also known as Downloader)
0x0204
Reader
Code VCOM
0x0205
M3 Modem
Keyboard
0x0206
Reader
HID POS
0x0207
M3 Modem
DFU
0x0208
M3 Modem
HID POS
0x0209
M3 Modem
Keyboard + bulk interface
0x020A
T500 Cable
Keyboard (Used to communicate with CortexTools®)
0x0214
M3 Modem
Code VCOM + HID
0x0215
Reader
CDC
0xFFFF
M3 Modem
Modem bootloader
6Reader 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 4.1 and 4.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.

4/14/2016
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 9 of 106
© 2013-2016 The Code Corporation
12393 South Gateway Park Place Suite 600, Draper, UT 84020
(801) 495-2200
FAX (801) 495-0280
6.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.
6.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.
Note: The following acronyms from the ASCII character definitions are used below:
SOH –Start of Heading (0x01)
STX –Start of Text (0x02)
EOT –End of Transmission (0x04)
RS –Record Separator (0x1E)
Language Part
Definition
packet
start packet-typenz dataopt end
start
packet-startnr | codeXML-startnz
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
data-packet-
number
any byte value in the range [0,7f]; increments with each packet; does not increment with
resends; used with zand apackets only
cmd-packet-
number
any byte value in the range [80-ff]; increments with each packet; does not increment with
resends; used with all packets other than zand a
timestamp
big-endian 32-bit number, indicates timestamp in seconds (relative to Reader power-up)
(For all but zpackets, the timestamp represents the time the packet was sent to the Host;
for zpackets, the time the barcode was read.)
data-size
big-endian 16-bit number indicating size of the data field (in bytes)
codeXML-start
SOH ‘X’ RS tag_response ‘/’
tag_response
‘ap’
packet-type
Single ASCII-character in table below

4/14/2016
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 10 of 106
© 2013-2016 The Code Corporation
12393 South Gateway Park Place Suite 600, Draper, UT 84020
(801) 495-2200
FAX (801) 495-0280
data
character | data character
character
byte|keyboard-sequence
byte
any byte value in range [0x00,0xFF]
keyboard-
sequence
key|shiftkey shift|altdecimal-code alt
key
~| 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| ,| . | /|space| esc | tab | shift
| alt | ctrl | enter | backspace| f1 | f2 | f3 | f4 | f5 | f6 | f7 | f8 | f9 | f10 | f11 | f12|
insert | delete | home | end | pageup | pagedown| left | right | up | down |
keypadenter| digit
decimal-code
digit | digit digit | digit digit digit (range [0,255])
digit
keypad0 |keypad1 | keypad2 | keypad3 | keypad4| keypad5 | keypad6 | keypad7 |
keypad8 | keypad9
end
codeXML-endnz crc16nr
codeXML-end
EOT
crc16
big-endian 16-bit number representing crc16 of the packet, calculated over the entire
packet, excluding the crc16 itself. See source files crc16.[hc] in
Appendix: Example CRC16 C Code for details on the crc16 algorithm and polynomials to
be used.
The following packet-types are defined:
a
Append decode data; indicates that data contains the first part of the decode data. A sequence
of ‘a’ packets always ends with a ‘z’ packet. The data of all ‘a’ packets in a group and the final
‘z’ packet should be concatenated by the Host.
d
Done response; command and its associated data were successfully received; data optionally
contains a null-terminated text message.
e
Error response; command was not successfully received; data optionally contains a null-
terminated text message.
g
Start of a group of ‘z’ packets to follow, terminated by a ‘d’ or ‘e’ packet (‘d’ for complete
group, ‘e’ for incomplete group)

4/14/2016
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 11 of 106
© 2013-2016 The Code Corporation
12393 South Gateway Park Place Suite 600, Draper, UT 84020
(801) 495-2200
FAX (801) 495-0280
i
indicates that data contains the zero-terminated Reader information string (of printable ASCII
characters and TAB) in the following format:
iVVVVWWWWXXXXSSSSSSSSSSAOODYYYYHHIIIIJJJJKKKKLLLL<TAB>Z…Z
where:
i indicates ‘I’ string output
VVVV is the application firmware version number;
WWWW is the core application firmware version number;
XXXX is reserved;
SSSSSSSSSS is the Reader’s serial number (ten digits);
A is the current execution state:
“A” means core is running
OO is the OEM identifier;
D is the display type:
“0” is no display device.
YYYY is reserved;
HH is the hardware revision;
IIII is the hardware type identifier (value in register 21B);
JJJJ is the boot application version;
KKKK is the operating system kernel version;
LLLL is the root file-system version;
<TAB> is the ASCII TAB character;
Z…Z is the OEM decoder version: a null terminated string of printable ASCII characters.
m
Message response; data contains a message (comment). ‘m’ packets are not sent when the
Reader is in “raw” mode.
r
Read barcode failure; decoder attempted but failed to read a barcode.
z
Decoded data from a barcode; data contains the data decoded from the barcode.
In “raw” mode (as opposed to “packet” mode), type mpackets are not sent, only the decoded data is
sent for type zpackets, and all other packets are sent without the packet-start and crc16 fields. In
“packet-mode,” the packet-start and crc16 fields are always sent. (See Figure 1)

4/14/2016
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 12 of 106
© 2013-2016 The Code Corporation
12393 South Gateway Park Place Suite 600, Draper, UT 84020
(801) 495-2200
FAX (801) 495-0280
Raw Mode
‘z’ (data) packet:
Data
(non-z) packet:example ‘i'
CodeXML® ‘i’ response example
CodeXML-start
packet-type
data
CodeXML-end
SOH
‘X’
RS
‘ap/’
‘i’
VVV…
EOT
Packet Mode
‘z’ (data) packet:
packet-start
Data
packet-end
SOH
‘X’
‘R’
‘1’
Reader ID
(4 bytes)
packet
number
(1 byte)
time
stamp
(4 bytes)
data size
(2 bytes)
data
crc16
(2 bytes)
(non-z) packet:example ‘i’
packet-start
CodeXML® ‘i’ response
packet-end
SOH
‘X’
‘R’
‘1’
Reader ID
(4 bytes)
packet
number
(1 byte)
time
stamp
(4 bytes)
data size
(2 bytes)
SOH
‘X’
RS
‘ap/’
‘i’
VVV…
EOT
crc16
(2 bytes)
Figure 1: Example 'z' and 'i' Packets in Raw and Packet Modes
Optionally, whenever the Host receives a packet, the Host will respond by sending a Yor R packet
(defined in the Host to Reader Communication section) to the Reader. If the ‘expect response’ option is
enabled in the Reader configuration, the Reader will repeatedly retransmit the packet (a configurable
number of times) until it receives a Ypacket.
If a packet received by the Host has a packet-type that is not any of the valid types listed above or has
the same packet-number as the last processed packet of the corresponding type (command or data),
the entire packet –up to and including end or until timeout –should be discarded by the Host. If the
Host had requested a response, it should reissue the request.

4/14/2016
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 13 of 106
© 2013-2016 The Code Corporation
12393 South Gateway Park Place Suite 600, Draper, UT 84020
(801) 495-2200
FAX (801) 495-0280
If a packet received by the Host from the Reader fails its CRC, the Host should send an Rpacket to the
Reader to request that the packet be resent.
7Host to Reader Communication
Commands and data from the Host to the Reader are sent in the form of commands as specified in this
section.
Commands are normally sent in USB Native, VCOM, or RS232 modes. Commands may not be sent via
keyboard modes.
Two command formats are supported: text-command and packetized-command. Text-command
format is applicable to RS232 and VCOM modes but only if the Reader is configured to accept this
format. Packetized-command format is applicable to all interfaces.
text-command: See Section 7.1.
packetized-command: See Section 7.2.
The command types are explained in Section 7.3.
After the Host sends each complete command, it should wait for a response packet from the Reader.
Expected responses are specified along with the command types in section 7.3. If the Reader responds
with an ‘e’ packet or doesn’t respond within a reasonable timeout period, the Host should resend the
command a reasonable number of times.
7.1 Text Commands
Keywords: #TextCommands
Text commands may be sent to the Reader in RS232 or VCOM mode using any serial communications
software (e.g., HyperTerminal).
Encoded-data is decoded by the Reader by replacing %xx by a single byte with the value specified by
the two hex-digits xx- (e.g., %25 would be replaced by character number 0x25, which is ASCII ‘%’).
Language Part
Definition
text-command
command-type encoded-dataopt carriage-return
command-type
Single ASCII character in the set defined in Section 7.3
encoded-data
encoded-datum | encoded-data encoded-datum
encoded-datum
printable-character | %hex-digit hex-digit
printable-
character
any byte value in the range [0x20,0x7E]
hex-digit
‘0’ |‘1’ |‘2’ |‘3’ |‘4’ |‘5’ |‘6’ |‘7’ |‘8’ |‘9’| ‘A’ |‘B’ |‘C’ |‘D’ |‘E’ |‘F’| ‘a’ |‘b’
|‘c’ |‘d’ |‘e’ |‘f’
carriage-return
0x0D

4/14/2016
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 14 of 106
© 2013-2016 The Code Corporation
12393 South Gateway Park Place Suite 600, Draper, UT 84020
(801) 495-2200
FAX (801) 495-0280
In order to eliminate inadvertent commanding of the Reader, Text Commands are disabled by
default.
To enable Text Commands requires an initial sequence: ;>PAx where xis as defined in section 9,
register 41. (Note: ‘A’ is the ASCII character that corresponds to 41 HEX.)
For example, to send the Reader commands by typing commands in HyperTerminal:
;>PA1
P(xx)yy
P(xx)yy
W
PA8
Where ;>PA1 enables text commands with echo and command responses, P%xxyy can be any desired
commands, Wsaves the settings just sent by the P command, and PA8 turns text commands back off
(except for the initial sequence). (Note: ‘A’ is the ASCII character that corresponds to 41 hex, thus
P%418 would be equivalent.)
Note: ;>PA1 is used for interactive text commands. If the commands are to be saved in a file and sent
non-interactively, use ;>PA7 instead; this enables text commands but disables echo and command
responses. (See Section 7.3, Section 9, and Section 10 for additional information.)
With text commands enabled, the following two examples can be sent to a Reader in RS232 mode
from HyperTerminal by just typing the example text.
Example 1 - Make the Reader beep/vibrate 3 times (Note: Readers with a vibration motor are the
CR1400, CR1400XHD, CR1428, CR2600, CR2600XHD, CR3600, CR3600DPM and CR6000.):
#%03 Expected output: should make Reader beep/vibrate 3 times
Example 2 - Set Reader to continuous-read, High Density field (FOI 0) only:
P(C4)5 Expected output: should set Reader to continuous-read, High Density field (FOI 0) only
7.2 Packetized Commands
Packetized commands consist of packetized data sent from Host to Reader to configure and cause the
Reader to perform certain functionalities (e.g. CodeXML®rules, and settings). Packetized commands
are always enabled, unlike text commands. In addition, they include error detection data, making them
more robust than text commands.
Language Part
Definition
normal-
command
prefix command-type data-size dataopt reserved crc14
prefix
0xEE 0xEE 0xEE 0xEE
command-type
Single ASCII character in the set defined in section 7.3
data-size
byte value in range [0,240], which indicates size of data (in bytes)

4/14/2016
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 15 of 106
© 2013-2016 The Code Corporation
12393 South Gateway Park Place Suite 600, Draper, UT 84020
(801) 495-2200
FAX (801) 495-0280
data
datum |data datum
datum
any byte value in the range [0,255]
reserved
0x00
crc14
Two consecutive bytes, each in range [0,127], representing the crc16 value &
with the value 0x7F7F, most significant byte first. The packet crc16 is calculated
over the entire packet, excluding the prefix and the crc14 itself. (See source files
in
Appendix: Example CRC16 C Code and Appendix: Example CRC14 C Code for
details on the crc16 algorithm and polynomials to be used, as well as how to
implement appropriately for crc14 transmission.)
7.3 Command Types
#
Causes the Reader to beep and vibrate the specified number of times; data contains the number as a
single character in the range [0,127].
(The Reader will respond with dor e.)
Example –beep three times: #%03
Note: Behavior is defined per platform.
CR900FD/CR1000/CR1000XHD/CR2300/CR5000/CR5000RTC/CR8000 –Beep three times.
CR1400/CR1400XHD/ CR1428/CR2600/CR2600XHD/CR3600/CR3600DPM/ CR6000 –Beep and vibrate
three times.
Note: Readers with a vibration motor are the CR1400, CR1400XHD, CR1428, CR2600, CR2600XHD,
CR3600, CR3600DPM and CR6000.
$
Posts an event to the Reader; data contains the event number as a single character. See register C4 in
Section 9 for a list of the event numbers.
(The Reader will respond with dor e.)
Keywords: #DefaultEvent
(
Causes the Reader to upload any logged error messages (no data)
(The Reader will respond with a gpacket, zero or more zpackets, and a final dor e. Each zpacket
contains a portion of the requested data in its data field.
Note: This is very similar to the response to the X command; however, ppackets are not applicable
and the gand d/epackets are not suppressed even in raw mode.)
)
Causes the Reader to erase its log of error messages (no data)
(The Reader will respond with dor e.)
,
Causes the Reader to send a list of current Reader settings (no data)
(The Reader will respond with dcontaining a space-separated list of all setting values (in order,
expressed as hexadecimal ASCII characters) or with e.)

4/14/2016
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 16 of 106
© 2013-2016 The Code Corporation
12393 South Gateway Park Place Suite 600, Draper, UT 84020
(801) 495-2200
FAX (801) 495-0280
(see ‘<’ command for saved Reader settings)
/
Toggle a bit (or bits) in a Reader setting; data contains a printable ASCII string in the following format:
hexadecimal register number in parentheses followed by a 32-bit signed integer value, expressed in
ASCII hexadecimal characters (with optional minus sign) or ASCII decimal characters preceded by the
‘#’ character, e.g., /(2e)1000 or /(2e)#4096; the specified integer is XOR’ed with the existing setting
value.
The way a / command is handled is equivalent to a P command –the effects are immediate but won’t
survive a reboot. If you want the setting to be set after a reboot, issue a / then W or use the newer C/
combination.
(The Reader will respond with dor e.)
Note: see Section 9 for possible Reader settings.
1
Indicates the start of a file download; data is empty. This command is followed by a sequence of 2
commands containing the file data and a download-end command (e.g., 5).
(The Reader will respond with dor e.)
2
Indicates a continuation of a file download; data contains the next portion of the file data.
(The Reader will not send any response.)
5
Indicates the end of a regular file download; data contains the name of the file, which is from 1 to 200
letters, digits, periods, hyphens, and underscores, terminated with ASCII NUL.
(The Reader will respond with d, e, or f.)
9
Requests the Reader to delete a file from its storage; data contains the file name, terminated with
ASCII NUL.
;
Reserved (no operation –treated as a comment)
<
Causes the Reader to send a list of saved Reader settings (no data)
(The Reader will respond with dcontaining a space-separated list of all setting values (in order,
expressed as hexadecimal ASCII characters) or with e.)(see ‘,’command for current Reader settings)
=
Puts setting directly to Reader’s non-volatile memory so that it will take effect upon next reboot; data
is as defined in the /command; the specified integer replaces the existing setting value.
Note: this command can be used to set communication modes without losing communication during
the process.
(The Reader will respond with dor e.)
Note: The = command does not save changes immediately but those settings will be applied after a
reboot. If you issue an =(2B)0 command to change the value of register 2B from 1, then until you
reboot the value of 2B will still be 1. After you reboot the reader, the value of the 2B register will be 0
when the reader is ready again. In order to have that setting be immediate and survive a reboot you
must either issue a P then a W command or use the newer C command. C(2B)0 is the same as these
two commands combined: P(2B)0, W

4/14/2016
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 17 of 106
© 2013-2016 The Code Corporation
12393 South Gateway Park Place Suite 600, Draper, UT 84020
(801) 495-2200
FAX (801) 495-0280
The = command is most useful to ‘pre-set’ a new communication mode that will become active after a
reboot.
(The Reader will respond with d or e.)
Note: Also see commands O, P, Q, /, =, W. See Section 9 for possible Reader settings.
>
Causes the Reader to send a string of text to the Host as a zpacket;
data contains the text to send.
(The Reader will respond with a zpacket containing the text.)
@
Causes the Reader to reset its internal date/timestamp to the specified time; data contains the date
and/or time in one of the following formats.
yyyy-mm-dd hh:mm:ss
yyyy-mm-dd hh:mm
hh:mm:ss
hh:mm
Note: the separators are optional; only digits are significant.
(The Reader will respond with dor e.)
Examples:
Set to midnight: @00:00
Set to Sept 1, 2005 11:52:02 PM: @2005-09-01 23:52:02
A
Notifies the Reader that the previously sent data were rejected for one of the following reasons:
The packet was encrypted and the decryption failed.
The Host (CodeXML®Modem) is locked to a different Reader.
The Reader should indicate to the user that the packet has been rejected; e.g., it may sound error
beeps. See related register 12F: notify-of-packet-rejection.
(The Reader will not respond to the Host.)
C
Apply a value to a register on the reader and save the value; data is in one of the following formats:
C(XXX)YYY where XXX is the register number and YYY is the setting value, both in ASCII hex. This will
change the value in the register and save it. For example C(26)64 will change the value of register 26
to 0x64 and save this setting.
C/(XXX)YYY where XXX is the register number and YYY is the setting value, both in ASCII hex. This will
toggle the bits in YYY and then save the resulting value (see / command). For example C/(1F7)40 will
toggle bit 6 of register 1F7 and save this setting.
CO(XXX)YYY where XXX is the register number and YYY is the setting value, both in ASCII hex. This will
set the bits in YYY (change those bits to 1s) for register XXX (see O command). For example CO(1F7)40
will set bit 6 of register 1F7 high and save this setting.
CQ(XXX)YYY where XXX is the register number and YYY is the setting value, both in ASCII hex. This will
clear the bits in YYY (change those bits to 0s) for register XXX (see Q command). For example
CQ(1F7)40 will clear bit 6 of register 1F7 and save this setting.

4/14/2016
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 18 of 106
© 2013-2016 The Code Corporation
12393 South Gateway Park Place Suite 600, Draper, UT 84020
(801) 495-2200
FAX (801) 495-0280
Note: The C command can be used to set prefixes and suffixes. Please refer to section 7.4 for more
information.
Note: The C command saves changes immediately and those settings will survive a reboot. It is
equivalent to issuing a P and =, then a W command. C(2B)0 is the same as these three commands
combined: P(2B)0, =(2B)0, W
(The Reader will respond with d or e.)
Note: Also see commands O, P, Q, /, =, W. See Section 9 for possible Reader settings.
G
Get setting from Reader if followed by a register number in parenthesis.
G([prefix|suffix]) will return the prefix or suffix text.
(The Reader will respond with d and the setting value or with e. The setting value, if numeric, will be
in hexadecimal, padded to 8 digits.)
Note: see Section 9 for possible Reader settings.
H
Requires subcommand. See below.
$ –Lock
$
Commands to lock and unlock the reader with a PIN.
Lock and Unlock the reader using the CR5000AV Configurator section of the Web
Configuration Guide.
By default, commands can be sent to the reader from a host (such as CortexTools or
CortexMobile) even if the reader is locked. Commands can also be sent to a locked reader by
embedding them in a Keyed Configuration Code. These Keyed Configuration Codes are
generated by the Web Configuration Guide for CR5000AV commands, and will soon be
generated by CortexTools and CortexMoble for general commands.
Sub-Commands:
Command
Description
R
Reset PIN
and Unlock
Reader
If this command is sent to the reader via barcode the read must be
triggered by a physical button press. The reader can not be in
Continuous Scan or Motion Detection modes to read the barcode.
The reader must be rebooted within 30 seconds of receiving this
command in order to actually reset the reader. If the reader is not
rebooted within 30 seconds, the reader will error beep and return to
its previous, locked state.
Example: H$R
Keyword: #Lock
5 –CR5000 & CR5000RTC on-counter (In-Stand) or off-counter (Out-of-Stand) modes

4/14/2016
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 19 of 106
© 2013-2016 The Code Corporation
12393 South Gateway Park Place Suite 600, Draper, UT 84020
(801) 495-2200
FAX (801) 495-0280
5
Configures in on-counter (In-Stand) or off-counter (Out-of-Stand) behavior of the CR5000 &
CR5000RTC to the specified mode. These codes are designed to configure complex modes in
a single command, even if Code adds or changes some of the underlying commands at a later
date.
Format: H5(in|out)<mode>
in|out
oin –configures the reader’s on-counter (In-Stand) behavior
oout –configures the reader’s off-counter (Out-Of-Stand) behavior
mode
#
Mode
Description
0
Trigger
Scan on trigger press, use targeting LEDs otherwise. Does not block
duplicate barcodes.
1
Pick List
Scan on trigger press, use targeting LEDs otherwise. The barcode must
be near the center of the reader’s field of view to be decoded. Does not
block duplicate barcodes.
2
Detect
Barcode
Continuous scanning with IR illumination. If a barcode is detected,
switch to red illumination. Will not output the barcode a second time
while it remains in the field of view.
3
Detect
Motion
Continuous scanning with IR illumination. If motion is detected, switch
to red illumination. Will not output the barcode a second time while it
remains in the field of view.
4
Always On
Continuous scanning with dim red illumination. If a barcode is detected,
switch to normal red illumination. Will not output the barcode a second
time while it remains in the field of view.
For example, to configure the reader for Trigger mode when handheld, use the H5(out)1
command. To configure the reader for Always On mode when on the counter, use the
H5(in)4 command.
Keywords: #Stand
A –Encryption Commands

4/14/2016
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 20 of 106
© 2013-2016 The Code Corporation
12393 South Gateway Park Place Suite 600, Draper, UT 84020
(801) 495-2200
FAX (801) 495-0280
A
Defines commands that are used with the wireless packet data encryption feature (256 Bit
AES). Packet data encryption between a reader and modem can only occur on the M2
modem with firmware 0187+. When this feature is enabled, it will encrypt the data portion
of the reader packet sent to the modem. Please reference the Code knowledge base (search
“AES Setup” at http://www.codecorp.com/knowledge-database.php) for detailed setup
instructions.
Format: HA<sub-command>
Sub-Commands:
Command
Description
e
Enable
Encryption
Feature
Enables Packet data encryption. Command will fail if reader is not
connected to a modem. If the operation is successful, BOTH the reader
and modem will blink the same pattern (on the wireless indicator for the
reader). The pattern is two short blinks, one long, one short and a three
second pause. A short blink is approximately 0.5 seconds and a long
blink is 1 second.
Example: HAe
d
Disable
Encryption
Feature
Disables packet data encryption. In order for modem encryption mode
to be disabled, reader needs to be connected to the modem when this
command is issued.
Example: HAd
Keywords: #AES
T –T500 Commands
T
Defines commands sent from the Reader to the T500 Bluetooth® Cable. There must be a
T500 connected to a reader in order for these commands to have any effect. These
commands induce the T500 to perform actions.
Format: HT<sub-command>
Sub-Commands:
Command
Description
c
Connect
Passes QuickConnect Code™ data from the host reader to the T500,
which in turn attempts to connect to the specified Bluetooth® address.
Format: HTc<Bluetooth®_Address>
Where <Bluetooth®_Address> is the target Bluetooth® address
represented in 12 hexadecimal characters.
Example: HTcAC220B48F040
Other manuals for CR900FD
4
This manual suits for next models
16
Table of contents
Other Code Barcode Reader manuals

Code
Code CR7010 Series User manual

Code
Code CR900FD User manual

Code
Code CR2 User manual

Code
Code Code Reader CR3500 User manual

Code
Code CR1400 User manual

Code
Code CR3600 User manual

Code
Code CR3 User manual

Code
Code 2600 Quick setup guide

Code
Code CR4405 User manual

Code
Code Code Reader CR3500 User manual

Code
Code CR4400 Operator's manual

Code
Code 2600 Quick setup guide

Code
Code CR1000 User manual

Code
Code CR1500-K10 Series User manual

Code
Code 900FD User manual

Code
Code CR2700 User manual

Code
Code CR4900Android User manual

Code
Code CR1000 User manual

Code
Code CR8200 User manual

Code
Code CR1500 Operating instructions