Programming Guide For ZPL II, ZBI 2, Set Get Do, Mirror, WML (en) MP Zbi2 Pm En

User Manual: MP

Open the PDF directly: View PDF PDF.
Page Count: 1524

DownloadProgramming Guide For ZPL II, ZBI 2, Set-Get-Do, Mirror, WML (en) MP Zpl-zbi2-pm-en
Open PDF In BrowserView PDF
Programming Guide
ZPL II
ZBI 2
Set-Get-Do
Mirror
WML

© 2018 ZIH Corp. All rights reserved. ZEBRA and the stylized Zebra head are trademarks of ZIH
Corp., registered in many jurisdictions worldwide. All other trademarks are the property of their
respective owners.
Information in this document is subject to change without notice.
For further information regarding legal and proprietary statements, please go to:
COPYRIGHTS: www.zebra.com/copyright
WARRANTY: www.zebra.com/warranty
END USER LICENSE AGREEMENT: www.zebra.com/eula
SOFTWARE: www.zebra.com/linkoslegal

Terms of Use
Proprietary Statement This manual contains proprietary information of Zebra Technologies Corporation

and its subsidiaries (“Zebra Technologies”). It is intended solely for the information and use of parties
operating and maintaining the equipment described herein. Such proprietary information may not be used,
reproduced, or disclosed to any other parties for any other purpose without the express, written permission
of Zebra Technologies.

Product Improvements Continuous improvement of products is a policy of Zebra Technologies. All
specifications and designs are subject to change without notice.

Liability Disclaimer Zebra Technologies takes steps to ensure that its published Engineering
specifications and manuals are correct; however, errors do occur. Zebra Technologies reserves the right to
correct any such errors and disclaims liability resulting therefrom.
Limitation of Liability In no event shall Zebra Technologies or anyone else involved in the creation,
production, or delivery of the accompanying product (including hardware and software) be liable for any
damages whatsoever (including, without limitation, consequential damages including loss of business
profits, business interruption, or loss of business information) arising out of the use of, the results of use of,
or inability to use such product, even if Zebra Technologies has been advised of the possibility of such
damages. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential
damages, so the above limitation or exclusion may not apply to you.

P1099958-001

1

Programming Guide

1/31/18

Contents

Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Functional List of ZPL Commands . . . . . . . . 15
Alphabetical List of ZBI Commands . . . . . . . 19
Alphabetical List of Set/Get/Do Commands

21

About This Document . . . . . . . . . . . . . . . . . . 27
Contact Zebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Who Should Use This Document . . . . . . . . . . . . . . . . . . . 28
How This Document Is Organized . . . . . . . . . . . . . . . . . . 29

ZPL Commands . . . . . . . . . . . . . . . . . . . . . . . 31
Basic ZPL Exercises and Examples . . . . . . . . . . . . . . . . 32
Allowed Characters in File Names . . . . . . . . . . . . . . . . . . 41
^A Scalable/Bitmapped Font . . . . . . . . . . . . . . . . . . . . . 42
^A@ Use Font Name to Call Font . . . . . . . . . . . . . . . . . 44
^B0 Aztec Bar Code Parameters . . . . . . . . . . . . . . . . . . . 46
^B1 Code 11 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . 48
^B2 Interleaved 2 of 5 Bar Code . . . . . . . . . . . . . . . . . . 50
^B3 Code 39 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . 52
^B4 Code 49 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . 56
^B5 Planet Code bar code . . . . . . . . . . . . . . . . . . . . . . . . 60
^B7 PDF417 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . 61
^B8 EAN-8 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
^B9 UPC-E Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
^BA Code 93 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . 68
^BB CODABLOCK Bar Code . . . . . . . . . . . . . . . . . . . . . 72
^BC Code 128 Bar Code (Subsets A, B, and C) . . . . . . . 76
^BD UPS MaxiCode Bar Code . . . . . . . . . . . . . . . . . . . . 87
^BE EAN-13 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . 89
^BF MicroPDF417 Bar Code . . . . . . . . . . . . . . . . . . . . . . 91
^BI Industrial 2 of 5 Bar Codes . . . . . . . . . . . . . . . . . . . . 93
^BJ Standard 2 of 5 Bar Code . . . . . . . . . . . . . . . . . . . . . 95
1/31/18

^BK ANSI Codabar Bar Code . . . . . . . . . . . . . . . . . . . . . 96
^BL LOGMARS Bar Code . . . . . . . . . . . . . . . . . . . . . . . . 98
^BM MSI Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
^BO Aztec Bar Code Parameters . . . . . . . . . . . . . . . . . 102
^BP Plessey Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . 104
^BQ QR Code Bar Code . . . . . . . . . . . . . . . . . . . . . . . . 106
^BR GS1 Databar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
^BS UPC/EAN Extensions . . . . . . . . . . . . . . . . . . . . . . 115
^BT TLC39 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . 118
^BU UPC-A Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . 120
^BX Data Matrix Bar Code . . . . . . . . . . . . . . . . . . . . . . 122
^BY Bar Code Field Default . . . . . . . . . . . . . . . . . . . . . 126
^BZ POSTAL Bar Code . . . . . . . . . . . . . . . . . . . . . . . . 127
^CC ~CC Change Caret . . . . . . . . . . . . . . . . . . . . . . . 129
^CD ~CD Change Delimiter
. . . . . . . . . . . . . . . . . . . 130
^CF Change Alphanumeric Default Font . . . . . . . . . . 131
^CI Change International Font/Encoding . . . . . . . . . . . 132
^CM Change Memory Letter Designation . . . . . . . . . 136
^CN Cut Now . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
^CO Cache On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
^CP Remove Label . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
^CT ~CT Change Tilde . . . . . . . . . . . . . . . . . . . . . . . . 142
^CV Code Validation . . . . . . . . . . . . . . . . . . . . . . . . . . 143
^CW Font Identifier . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
~DB Download Bitmap Font . . . . . . . . . . . . . . . . . . . . 147
~DE Download Encoding . . . . . . . . . . . . . . . . . . . . . . 149
^DF Download Format . . . . . . . . . . . . . . . . . . . . . . . . 151
~DG Download Graphics . . . . . . . . . . . . . . . . . . . . . . 152
~DN Abort Download Graphic . . . . . . . . . . . . . . . . . . 155
~DS Download Intellifont (Scalable Font) . . . . . . . . . . 156
~DT Download Bounded TrueType Font . . . . . . . . . . 157
~DU Download Unbounded TrueType Font . . . . . . . . 158
~DY Download Objects . . . . . . . . . . . . . . . . . . . . . . . . 159
~EG Erase Download Graphics . . . . . . . . . . . . . . . . . 162
^FB Field Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
^FC Field Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

Programming Guide

P1099958-001

4

Contents

^FD Field Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
^FH Field Hexadecimal Indicator . . . . . . . . . . . . . . . . . 168
^FL Font Linking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
^FM Multiple Field Origin Locations . . . . . . . . . . . . . . . 172
^FN Field Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
^FO Field Origin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
^FP Field Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . 177
^FR Field Reverse Print . . . . . . . . . . . . . . . . . . . . . . . 178
^FS Field Separator . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
^FT Field Typeset . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
^FV Field Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
^FW Field Orientation . . . . . . . . . . . . . . . . . . . . . . . . . 183
^FX Comment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
^GB Graphic Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
^GC Graphic Circle . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
^GD Graphic Diagonal Line . . . . . . . . . . . . . . . . . . . . . 189
^GE Graphic Ellipse . . . . . . . . . . . . . . . . . . . . . . . . . . 190
^GF Graphic Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
^GS Graphic Symbol . . . . . . . . . . . . . . . . . . . . . . . . . . 193
~HB Battery Status . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
~HD Head Diagnostic . . . . . . . . . . . . . . . . . . . . . . . . . . 195
^HF Host Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
^HG Host Graphic
. . . . . . . . . . . . . . . . . . . . . . . . . . . 197
^HH Configuration Label Return . . . . . . . . . . . . . . . . . . 198
~HI Host Identification
. . . . . . . . . . . . . . . . . . . . . . . . 199
~HM Host RAM Status . . . . . . . . . . . . . . . . . . . . . . . . 200
~HQ Host Query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
~HS Host Status Return . . . . . . . . . . . . . . . . . . . . . . . 207
^HT Host Linked Fonts List . . . . . . . . . . . . . . . . . . . . . . 210
~HU Return ZebraNet Alert Configuration . . . . . . . . . . . 211
^HV Host Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
^HW Host Directory List . . . . . . . . . . . . . . . . . . . . . . . 213
^HY Upload Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . 215
^HZ Display Description Information . . . . . . . . . . . . . . 216
^ID Object Delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
^IL Image Load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
^IM Image Move . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
^IS Image Save . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
~JA Cancel All . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
^JB Initialize Flash Memory . . . . . . . . . . . . . . . . . . . . . 224
~JB Reset Optional Memory . . . . . . . . . . . . . . . . . . . . 225
~JC Set Media Sensor Calibration . . . . . . . . . . . . . . . 226
~JD Enable Communications Diagnostics . . . . . . . . . . 227
~JE Disable Diagnostics . . . . . . . . . . . . . . . . . . . . . . . 228
~JF Set Battery Condition . . . . . . . . . . . . . . . . . . . . . . 229
~JG Graphing Sensor Calibration . . . . . . . . . . . . . . . . . 230
^JH Early Warning Settings . . . . . . . . . . . . . . . . . . . . . 231
^JI Start ZBI (Zebra BASIC Interpreter) . . . . . . . . . . . . 234
~JI Start ZBI (Zebra BASIC Interpreter) . . . . . . . . . . . . 236
^JJ Set Auxiliary Port . . . . . . . . . . . . . . . . . . . . . . . . . . 237
~JL Set Label Length . . . . . . . . . . . . . . . . . . . . . . . . . . 239
^JM Set Dots per Millimeter . . . . . . . . . . . . . . . . . . . . 240
~JN Head Test Fatal . . . . . . . . . . . . . . . . . . . . . . . . . . 241
~JO Head Test Non-Fatal . . . . . . . . . . . . . . . . . . . . . . 242
~JP Pause and Cancel Format
. . . . . . . . . . . . . . . . . 243

P1099958-001

~JQ Terminate Zebra BASIC Interpreter . . . . . . . . . . 244
~JR Power On Reset . . . . . . . . . . . . . . . . . . . . . . . . . 245
^JS Sensor Select . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
~JS Change Backfeed Sequence . . . . . . . . . . . . . . . . 247
^JT Head Test Interval . . . . . . . . . . . . . . . . . . . . . . . . 248
^JU Configuration Update . . . . . . . . . . . . . . . . . . . . . 249
^JW Set Ribbon Tension . . . . . . . . . . . . . . . . . . . . . . . 250
~JX Cancel Current Partially Input Format . . . . . . . . . 251
^JZ Reprint After Error . . . . . . . . . . . . . . . . . . . . . . . . . 252
~KB Kill Battery (Battery Discharge Mode) . . . . . . . . . 253
^KD Select Date and Time Format (for Real Time Clock)
254

^KL Define Language . . . . . . . . . . . . . . . . . . . . . . . . .
^KN Define Printer Name . . . . . . . . . . . . . . . . . . . . . .
^KP Define Password . . . . . . . . . . . . . . . . . . . . . . . . .
^KV Kiosk Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
^LF List Font Links . . . . . . . . . . . . . . . . . . . . . . . . . . . .
^LH Label Home . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
^LL Label Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
^LR Label Reverse Print . . . . . . . . . . . . . . . . . . . . . . .
^LS Label Shift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
^LT Label Top . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
^MA Set Maintenance Alerts . . . . . . . . . . . . . . . . . . . . .
^MC Map Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
^MD Media Darkness . . . . . . . . . . . . . . . . . . . . . . . . .
^MF Media Feed . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
^MI Set Maintenance Information Message . . . . . . . . .
^ML Maximum Label Length . . . . . . . . . . . . . . . . . . . .
^MM Print Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
^MN Media Tracking . . . . . . . . . . . . . . . . . . . . . . . . . .
^MP Mode Protection . . . . . . . . . . . . . . . . . . . . . . . . .
^MT Media Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
^MU Set Units of Measurement . . . . . . . . . . . . . . . . .
^MW Modify Head Cold Warning . . . . . . . . . . . . . . . . .
^NC Select the Primary Network Device . . . . . . . . . . .
~NC Network Connect . . . . . . . . . . . . . . . . . . . . . . . .
^ND Change Network Settings . . . . . . . . . . . . . . . . . . .
^NI Network ID Number . . . . . . . . . . . . . . . . . . . . . . .
~NR Set All Network Printers Transparent . . . . . . . . .
^NS Change Wired Networking Settings . . . . . . . . . . .
~NT Set Currently Connected Printer Transparent . . .
^PA Advanced Text Properties . . . . . . . . . . . . . . . . . . .
^PF Slew Given Number of Dot Rows . . . . . . . . . . . . .
^PH ~PH Slew to Home Position . . . . . . . . . . . . . . . .
~PL Present Length Addition . . . . . . . . . . . . . . . . . . . .
^PM Printing Mirror Image of Label . . . . . . . . . . . . . .
^PN Present Now . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
^PO Print Orientation . . . . . . . . . . . . . . . . . . . . . . . . . .
^PP ~PP Programmable Pause . . . . . . . . . . . . . . . . .
^PQ Print Quantity . . . . . . . . . . . . . . . . . . . . . . . . . . .
~PR Applicator Reprint . . . . . . . . . . . . . . . . . . . . . . . .
^PR Print Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
~PS Print Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
^PW Print Width . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
~RO Reset Advanced Counters . . . . . . . . . . . . . . . . . .

Programming Guide

255
256
257
258
262
263
264
265
266
267
268
270
271
272
273
274
275
277
278
280
281
282
283
284
285
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
303
304
305

1/31/18

Contents

^SC Set Serial Communications . . . . . . . . . . . . . . . . . 306
~SD Set Darkness . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
^SE Select Encoding Table . . . . . . . . . . . . . . . . . . . . . . 308
^SF Serialization Field (with a Standard ^FD String) . . 309
^SI Set Sensor Intensity . . . . . . . . . . . . . . . . . . . . . . . . 312
^SL Set Mode and Language (for Real-Time Clock) . . 313
^SN Serialization Data . . . . . . . . . . . . . . . . . . . . . . . . . 315
^SO Set Offset (for Real-Time Clock) . . . . . . . . . . . . . . 317
^SP Start Print . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
^SQ Halt ZebraNet Alert . . . . . . . . . . . . . . . . . . . . . . . . 319
^SR Set Printhead Resistance . . . . . . . . . . . . . . . . . . 320
^SS Set Media Sensors . . . . . . . . . . . . . . . . . . . . . . . . 321
^ST Set Date and Time (for Real-Time Clock) . . . . . . 323
^SX Set ZebraNet Alert . . . . . . . . . . . . . . . . . . . . . . . . . 324
^SZ Set ZPL Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
~TA Tear-off Adjust Position . . . . . . . . . . . . . . . . . . . . . 327
^TB Text Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
^TO Transfer Object . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
~WC Print Configuration Label . . . . . . . . . . . . . . . . . . . 331
^WD Print Directory Label . . . . . . . . . . . . . . . . . . . . . . 332
~WQ Write Query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
^XA Start Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
^XB Suppress Backfeed . . . . . . . . . . . . . . . . . . . . . . . . 340
^XF Recall Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
^XG Recall Graphic . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
^XS Set Dynamic Media Calibration . . . . . . . . . . . . . . . 343
^XZ End Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
^ZZ Printer Sleep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345

ZPL RFID Commands . . . . . . . . . . . . . . . . . . 347
RFID Command Overview . . . . . . . . . . . . . . . . . . . . . . . 348
Printer and Firmware Compatibility . . . . . . . . . . . . . . . . 349
^HL or ~HL Return RFID Data Log to Host . . . . . . . . . . 353
^HR Calibrate RFID Tag Position . . . . . . . . . . . . . . . . . 354
^RA Read AFI or DSFID Byte . . . . . . . . . . . . . . . . . . . . 361
^RB Define EPC Data Structure . . . . . . . . . . . . . . . . . . 362
^RE Enable/Disable E.A.S. Bit . . . . . . . . . . . . . . . . . . . 364
^RF Read or Write RFID Format . . . . . . . . . . . . . . . . . . 365
^RI Get RFID Tag ID . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
^RL Lock/Unlock RFID Tag Memory . . . . . . . . . . . . . . . 370
^RM Enable RFID Motion . . . . . . . . . . . . . . . . . . . . . . . 372
^RN Detect Multiple RFID Tags in Encoding Field . . . . 373
^RQ Quick Write EPC Data and Passwords . . . . . . . . . 374
^RR Specify RFID Retries for a Block or Enable Adaptive
Antenna Selection . . . . . . . . . . . . . . . . . . . . . . 376
^RS Set Up RFID Parameters . . . . . . . . . . . . . . . . . . . . 378
^RT Read RFID Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
^RU Read Unique RFID Chip Serialization . . . . . . . . . . 385
~RV Report RFID Encoding Results . . . . . . . . . . . . . . . 387
^RW Set RF Power Levels for Read and Write . . . . . . . 388
^RZ Set RFID Tag Password and Lock Tag . . . . . . . . . 392
^WF Encode AFI or DSFID Byte . . . . . . . . . . . . . . . . . . 395
^WT Write (Encode) Tag . . . . . . . . . . . . . . . . . . . . . . . . 396
^WV Verify RFID Encoding Operation . . . . . . . . . . . . . . 398

1/31/18

ZPL Wireless Commands . . . . . . . . . . . . . . 401
^KC Set Client Identifier (Option 61) . . . . . . . . . . . . . . . 402
^NB Search for Wired Print Server during
Network Boot . . . . . . . . . . . . . . . . . . . . . . . . . 403
404
405
406
407
408
409
411
412
413
414
415
416
417
419

^NN Set SNMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
^NP Set Primary/Secondary Device . . . . . . . . . . . . . . .
^NT Set SMTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
^NW Set Web Authentication Timeout Value . . . . . . . .
^WA Set Antenna Parameters . . . . . . . . . . . . . . . . . . .
^WE Set WEP Mode . . . . . . . . . . . . . . . . . . . . . . . . . . .
^WI Change Wireless Network Settings . . . . . . . . . . . .
^WL Set LEAP Parameters . . . . . . . . . . . . . . . . . . . . . .
~WL Print Network Configuration Label . . . . . . . . . . . .
^WP Set Wireless Password . . . . . . . . . . . . . . . . . . . .
^WR Set Transmit Rate . . . . . . . . . . . . . . . . . . . . . . . .
~WR Reset Wireless Radio Card and Print Server . . .
^WS Set Wireless Radio Card Values . . . . . . . . . . . . .
^WX Configure Wireless Securities . . . . . . . . . . . . . . .

ZBI Commands . . . . . . . . . . . . . . . . . . . . . . . 427
Introduction to Zebra Basic Interpreter (ZBI) . . . . . . . . .
Command and Function Reference Format . . . . . . . . .
Section Organization . . . . . . . . . . . . . . . . . . . . . . . . . . .
Editing Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NEW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
REM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
! (EXCLAMATION MARK) . . . . . . . . . . . . . . . . . . . . . . .
LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUTONUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RENUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ECHO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Running and Debugging Commands . . . . . . . . . . . . . .
RUN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CTRL-C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RESTART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
STEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DEBUG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TRACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
BREAK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ADDBREAK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DELBREAK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ZPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Base Types and Expressions . . . . . . . . . . . . . . . . . . . .
LET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Control and Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IF Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DO Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FOR Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
GOTO/GOSUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
EXIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
END . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Input and Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
OPEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CLOSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DATAREADY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SERVERSOCKET . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SERVERCLOSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CLIENTSOCKET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Programming Guide

428
429
430
431
433
434
435
436
437
438
439
439
441
442
443
444
445
446
447
448
449
450
450
454
459
461
462
463
464
465
466
467
467
469
470
471
472
473
474

P1099958-001

5

6

Contents

ACCEPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
INPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
PRINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
OUTBYTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
INBYTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
READ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
WRITE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
SEARCHTO$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
File System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
STORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
LOAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
DIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
DELETE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
Comma Separated Values (CSV) . . . . . . . . . . . . . . . . . 493
CSVLOAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
CSVSTORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
TXTLOAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
TXTSTORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
REGISTEREVENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
UNREGISTEREVENT . . . . . . . . . . . . . . . . . . . . . . . . . . 506
HANDLEEVENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
TRIGGEREVENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
ISERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
ISWARNING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
SLEEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
SETERR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
CLRERR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
ON ERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
AUXPORT_STEALPIN . . . . . . . . . . . . . . . . . . . . . . . . . 517
AUXPORT_SETPIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
AUXPORT_GETPIN . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
AUXPORT_RELEASEPIN . . . . . . . . . . . . . . . . . . . . . . . 520
String Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
LCASE$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
CHR$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
LTRIM$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
REPEAT$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524
RTRIM$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
SPLIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526
SPLITCOUNT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530
UCASE$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
EXTRACT$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532
ORD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
POS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
LEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536
Math Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536
STR$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
MAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
MIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
MAXNUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
MOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
VAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
INTTOHEX$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
HEXTOINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
Array Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
REDIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
INSERTROW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
DELROW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
ROWSIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549
COLUMNSIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
P1099958-001

FIND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Time and Date Functions . . . . . . . . . . . . . . . . . . . . . . .
DATE$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TIME$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Set/Get/Do Interactions . . . . . . . . . . . . . . . . . . . . . . . . .
SETVAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
GETVAR$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . .

551
552
554
555
556
557
557
558
559
559

SGD Printer Commands . . . . . . . . . . . . . . . . 571
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Command Structure . . . . . . . . . . . . . . . . . . . . . . . . . . .
JSON (JavaScript Object Notation) . . . . . . . . . . . . . . . .
alerts.add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
alerts.conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
alerts.configured . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
alerts.destinations
...........................
alerts.http.authentication.add . . . . . . . . . . . . . . . . . . .
alerts.http.authentication.entries . . . . . . . . . . . . . . . . .
alerts.http.authentication.remove . . . . . . . . . . . . . . . . .
alerts.http.logging.clear
.......................
alerts.http.logging.entries . . . . . . . . . . . . . . . . . . . . . .
alerts.http.logging.max_entries
.................
alerts.http.proxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
alerts.tracked_settings.clear_log . . . . . . . . . . . . . . . . .
alerts.tracked_settings.log_tracked . . . . . . . . . . . . . . . .
alerts.tracked_settings.max_log_entries . . . . . . . . . . . .
alerts.tracked_sgds.log
.......................
alerts.tracked_sgds.max_log_entries . . . . . . . . . . . . . .
alerts.tracked_sgds.zbi_notified . . . . . . . . . . . . . . . . .
apl.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
apl.framework_version . . . . . . . . . . . . . . . . . . . . . . . .
apl.version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
appl.link_os_version . . . . . . . . . . . . . . . . . . . . . . . . . .
appl.option_board_version . . . . . . . . . . . . . . . . . . . . . .
appl.bootblock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
appl.date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
appl.name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
capture.channel1.count . . . . . . . . . . . . . . . . . . . . . . .
capture.channel1.data.mime . . . . . . . . . . . . . . . . . . .
capture.channel1.data.raw . . . . . . . . . . . . . . . . . . . . .
capture.channel1.delimiter . . . . . . . . . . . . . . . . . . . . .
capture.channel1.max_length
..................
capture.channel1.port
........................
CISDFCRC16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Download Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
comm.baud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
comm.halt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
comm.pnp_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
comm.type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
comm.parity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
comm.stop_bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
cradle.comm.baud . . . . . . . . . . . . . . . . . . . . . . . . . . . .
cradle.comm.handshake . . . . . . . . . . . . . . . . . . . . . . .
cutter.clean_cutter . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
device.applicator.data_ready . . . . . . . . . . . . . . . . . . . .
device.applicator.end_print . . . . . . . . . . . . . . . . . . . . . .
device.applicator.feed . . . . . . . . . . . . . . . . . . . . . . . . . .
device.applicator.media_out . . . . . . . . . . . . . . . . . . . . .

Programming Guide

572
573
574
577
578
579
580
581
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
609
611
612
613
614
615
616
617
618
619
620
621
622
623

1/31/18

Contents

device.applicator.pause . . . . . . . . . . . . . . . . . . . . . . . . . 624
device.applicator.reprint . . . . . . . . . . . . . . . . . . . . . . . . . 625
device.applicator.rfid_void . . . . . . . . . . . . . . . . . . . . . . . 626
device.applicator.ribbon_low . . . . . . . . . . . . . . . . . . . . . 627
device.applicator.ribbon_out . . . . . . . . . . . . . . . . . . . . . 628
device.applicator.service_required . . . . . . . . . . . . . . . . . 629
device.applicator.start_print . . . . . . . . . . . . . . . . . . . . . . 630
device.bluetooth_installed . . . . . . . . . . . . . . . . . . . . . . 631
device.command_override.active . . . . . . . . . . . . . . . . . 632
device.command_override.add . . . . . . . . . . . . . . . . . . . 633
device.command_override.clear . . . . . . . . . . . . . . . . . . 634
device.command_override.list . . . . . . . . . . . . . . . . . . . . 635
device.company_contact . . . . . . . . . . . . . . . . . . . . . . . . 636
device.configuration_number . . . . . . . . . . . . . . . . . . . . 637
device.cpcl_synchronous_mode . . . . . . . . . . . . . . . . . . 638
device.cutter_installed . . . . . . . . . . . . . . . . . . . . . . . . . . 639
device.download_connection_timeout . . . . . . . . . . . . . . 640
device.epl_legacy_mode . . . . . . . . . . . . . . . . . . . . . . . . 641
device.feature.bluetooth_le . . . . . . . . . . . . . . . . . . . . . 643
device.feature.mcr . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644
device.feature.nfc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
device.feature.ribbon_cartridge . . . . . . . . . . . . . . . . . . 646
device.friendly_name . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
device.frontpanel.feedenabled . . . . . . . . . . . . . . . . . . . . 648
device.frontpanel.key_press . . . . . . . . . . . . . . . . . . . . . 649
device.frontpanel.line1 . . . . . . . . . . . . . . . . . . . . . . . . . . 650
device.frontpanel.line2 . . . . . . . . . . . . . . . . . . . . . . . . . . 651
device.frontpanel.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . 652
device.host_identification . . . . . . . . . . . . . . . . . . . . . . . . 653
device.host_status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654
device.idle_display_format . . . . . . . . . . . . . . . . . . . . . . 657
device.idle_display_value . . . . . . . . . . . . . . . . . . . . . . 658
device.internal_wired_setting_location . . . . . . . . . . . . . 659
device.jobs_print . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660
device.languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661
device.light.cover_open_brightness . . . . . . . . . . . . . . . . 662
device.light.head_open_brightness . . . . . . . . . . . . . . . . 663
device.location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664
device.ltu_installed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665
device.orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666
device.pause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667
device.pnp_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668
device.pmcu.revision . . . . . . . . . . . . . . . . . . . . . . . . . . 669
device.position.accuracy . . . . . . . . . . . . . . . . . . . . . . . . 670
device.position.altitude . . . . . . . . . . . . . . . . . . . . . . . . . . 671
device.position.latitude . . . . . . . . . . . . . . . . . . . . . . . . . . 672
device.position.longitude . . . . . . . . . . . . . . . . . . . . . . . . 673
device.print_2key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
device.print_reprogram_2key . . . . . . . . . . . . . . . . . . . . 675
device.product_name_submodel . . . . . . . . . . . . . . . . . 676
device.prompted_network_reset . . . . . . . . . . . . . . . . . 677
device.reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678
device.restore_defaults . . . . . . . . . . . . . . . . . . . . . . . . . 679
device.rewinder_installed . . . . . . . . . . . . . . . . . . . . . . . 680
device.save_2key . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
device.sensor_select . . . . . . . . . . . . . . . . . . . . . . . . . . 682
device.serial_number.option_board_date . . . . . . . . . . 683
device.serial_numbers.control_panel_date . . . . . . . . . 684
device.serial_numbers.mlb_date . . . . . . . . . . . . . . . . . 685
device.serial_numbers.processor . . . . . . . . . . . . . . . . . 686
device.set_clock_to_build_date . . . . . . . . . . . . . . . . . . . 687
device.slot_1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688

1/31/18

device.slot_2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
device.super_host_status . . . . . . . . . . . . . . . . . . . . . .
device.syslog.clear_log . . . . . . . . . . . . . . . . . . . . . . . . .
device.syslog.configuration . . . . . . . . . . . . . . . . . . . . . .
device.syslog.enable . . . . . . . . . . . . . . . . . . . . . . . . . . .
device.syslog.entries . . . . . . . . . . . . . . . . . . . . . . . . . .
device.syslog.log_max_file_size . . . . . . . . . . . . . . . . . .
device.syslog.save_local_file . . . . . . . . . . . . . . . . . . . .
device.applicator.data_ready_activation . . . . . . . . . . . .
device.applicator.error_on_pause . . . . . . . . . . . . . . . . .
device.applicator.start_print_mode . . . . . . . . . . . . . . . .
device.applicator.voltage . . . . . . . . . . . . . . . . . . . . . . . .
device.unique_id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
device.unpause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
device.uptime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
device.user_p1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
device.user_p2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
device.user_vars.set_range . . . . . . . . . . . . . . . . . . . .
device.user_vars.create . . . . . . . . . . . . . . . . . . . . . . .
device.xml.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
device.feature.lighted_arrows . . . . . . . . . . . . . . . . . . . .
device.light.ribbon_path_brightness . . . . . . . . . . . . . . .
device.light.media_path_brightness . . . . . . . . . . . . . . .
display.backlight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
display.backlight_on_time . . . . . . . . . . . . . . . . . . . . . . .
display.batch_counter . . . . . . . . . . . . . . . . . . . . . . . . . .
display.language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
display.load_card . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
display.password.level . . . . . . . . . . . . . . . . . . . . . . . .
display.root_wml . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
display.text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
file.capture_response.destination . . . . . . . . . . . . . . . . .
head.resolution.in_dpi . . . . . . . . . . . . . . . . . . . . . . . . . .
ezpl.head_close_action . . . . . . . . . . . . . . . . . . . . . . . . .
ezpl.label_length_max . . . . . . . . . . . . . . . . . . . . . . . . .
ezpl.label_sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ezpl.manual_calibration . . . . . . . . . . . . . . . . . . . . . . . .
ezpl.media_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ezpl.power_up_action . . . . . . . . . . . . . . . . . . . . . . . . . .
ezpl.print_method . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ezpl.print_width . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ezpl.reprint_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ezpl.take_label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ezpl.tear_off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
file.delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
file.dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
file.dir_format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
file.type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
file.run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
formats.cancel_all . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
head.darkness_switch_enable . . . . . . . . . . . . . . . . . . .
head.darkness_switch . . . . . . . . . . . . . . . . . . . . . . . . . .
head.element_test . . . . . . . . . . . . . . . . . . . . . . . . . . . .
head.latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
input.capture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
interface.network.active.arp_interval . . . . . . . . . . . . . . .
interface.network.active.cable_type . . . . . . . . . . . . . . .
interface.network.active.dhcp_received_host_name . .
interface.network.active.gateway . . . . . . . . . . . . . . . . .
interface.network.active.ip_addr . . . . . . . . . . . . . . . . . .
interface.network.active.mac_addr . . . . . . . . . . . . . . . .
interface.network.active.mac_raw . . . . . . . . . . . . . . . . .

Programming Guide

689
690
691
692
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
743
744
745
746
747
748
749
750
751
752
753

P1099958-001

7

8

Contents

interface.network.active.netmask . . . . . . . . . . . . . . . . . . 754
interface.network.active.protocol . . . . . . . . . . . . . . . . . . 755
interface.network.active.protocol_error . . . . . . . . . . . . . 756
interface.network.active.rx_errors . . . . . . . . . . . . . . . . . 757
interface.network.active.rx_packets . . . . . . . . . . . . . . . . 758
interface.network.active.server_address . . . . . . . . . . . . 759
interface.network.active.protocol_error . . . . . . . . . . . . . 760
interface.network.active.speed . . . . . . . . . . . . . . . . . . . 761
interface.network.active.tx_errors . . . . . . . . . . . . . . . . . 762
interface.network.active.tx_packets . . . . . . . . . . . . . . . . 763
interface.network.active.wins_addr . . . . . . . . . . . . . . . . 764
interface.network.settings_require_reset . . . . . . . . . . . 765
ip.firewall.whitelist_in . . . . . . . . . . . . . . . . . . . . . . . . . . . 766
ip.https.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768
ip.https.port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
ip.ping_gateway_interval . . . . . . . . . . . . . . . . . . . . . . . . 770
ip.pop3.print_body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771
ip.pop3.print_headers . . . . . . . . . . . . . . . . . . . . . . . . . . 772
ip.pop3.save_attachments . . . . . . . . . . . . . . . . . . . . . . . 773
ip.pop3.verbose_headers . . . . . . . . . . . . . . . . . . . . . . . 774
ip.tls.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775
ip.tls.port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777
ip.tls.port_json_config . . . . . . . . . . . . . . . . . . . . . . . . . . 778
log.reboot.code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779
log.reboot.codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 780
log.reboot.reason . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781
log.reboot.report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782
mcr.crypt.enabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783
mcr.cancel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784
mcr.crypt.key_mgmt . . . . . . . . . . . . . . . . . . . . . . . . . . . 785
mcr.crypt.algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786
mcr.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787
mcr.revision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 788
media.bar_location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 789
media.cartridge.part_number . . . . . . . . . . . . . . . . . . . . . 790
media.cut_now . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791
media.darkness_mode . . . . . . . . . . . . . . . . . . . . . . . . . . 792
media.draft_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793
media.feed_skip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 794
media.media_low.external . . . . . . . . . . . . . . . . . . . . . . . 795
media.media_low.warning . . . . . . . . . . . . . . . . . . . . . . . 796
media.part_number . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797
media.present.cut_amount . . . . . . . . . . . . . . . . . . . . . . 798
media.present.eject . . . . . . . . . . . . . . . . . . . . . . . . . . . . 799
media.present.length_addition . . . . . . . . . . . . . . . . . . . . 800
media.present.loop_length . . . . . . . . . . . . . . . . . . . . . . . 801
media.present.loop_length_max . . . . . . . . . . . . . . . . . . 802
media.present.cut_margin . . . . . . . . . . . . . . . . . . . . . . . 803
media.present.present_timeout . . . . . . . . . . . . . . . . . . . 804
media.present.present_type . . . . . . . . . . . . . . . . . . . . . 805
media.printmode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806
media.speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 808
media.serial_number . . . . . . . . . . . . . . . . . . . . . . . . . . . 809
memory.flash_free . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 810
memory.flash_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811
memory.ram_free . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812
memory.ram_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813
netmanage.avalanche.agent_addr . . . . . . . . . . . . . . . . 814
netmanage.avalanche.available_agent . . . . . . . . . . . . . 815
netmanage.avalanche.available_port . . . . . . . . . . . . . . 816
netmanage.avalanche.encryption_type . . . . . . . . . . . . . 817
netmanage.avalanche.interval . . . . . . . . . . . . . . . . . . . 818

P1099958-001

netmanage.avalanche.interval_update . . . . . . . . . . . . .
netmanage.avalanche.model_name . . . . . . . . . . . . . . .
netmanage.avalanche.set_property . . . . . . . . . . . . . . .
netmanage.avalanche.startup_update . . . . . . . . . . . . .
netmanage.avalanche.tcp_connection_timeout . . . . . .
netmanage.avalanche.terminal_id . . . . . . . . . . . . . . .
netmanage.avalanche.text_msg.beep . . . . . . . . . . . . .
netmanage.avalanche.text_msg.display . . . . . . . . . . .
netmanage.avalanche.text_msg.print . . . . . . . . . . . . .
netmanage.avalanche.udp_timeout . . . . . . . . . . . . . . .
netmanage.error_code . . . . . . . . . . . . . . . . . . . . . . . .
netmanage.state_code . . . . . . . . . . . . . . . . . . . . . . . .
netmanage.status_code . . . . . . . . . . . . . . . . . . . . . . .
odometer.cut_marker_count . . . . . . . . . . . . . . . . . . . .
odometer.headclean . . . . . . . . . . . . . . . . . . . . . . . . . . .
odometer.headnew . . . . . . . . . . . . . . . . . . . . . . . . . . . .
odometer.label_dot_length . . . . . . . . . . . . . . . . . . . . . .
odometer.media_marker_count . . . . . . . . . . . . . . . . .
odometer.media_marker_count1 . . . . . . . . . . . . . . . . .
odometer.media_marker_count2 . . . . . . . . . . . . . . . . .
odometer.retracts_count . . . . . . . . . . . . . . . . . . . . . . . .
odometer.rfid.valid_resettable . . . . . . . . . . . . . . . . . . . .
odometer.rfid.void_resettable . . . . . . . . . . . . . . . . . . . .
odometer.total_cuts . . . . . . . . . . . . . . . . . . . . . . . . . .
odometer.total_print_length . . . . . . . . . . . . . . . . . . . . .
odometer.total_label_count . . . . . . . . . . . . . . . . . . . . .
odometer.user_label_count . . . . . . . . . . . . . . . . . . . . .
odometer.user_label_count[1|2] . . . . . . . . . . . . . . . . . .
odometer.latch_open_count . . . . . . . . . . . . . . . . . . . . .
parallel_port.mode . . . . . . . . . . . . . . . . . . . . . . . . . . . .
parallel_port.present . . . . . . . . . . . . . . . . . . . . . . . . . . .
power.average_current . . . . . . . . . . . . . . . . . . . . . . . . .
power.battery_led_blink_rate . . . . . . . . . . . . . . . . . . .
power.battery_led_enable . . . . . . . . . . . . . . . . . . . . . .
power.battery_led_off_duration . . . . . . . . . . . . . . . . . .
power.battery_led_on_duration . . . . . . . . . . . . . . . . . .
power.battery_replacement_cyclecount_threshold . . .
power.dtr_power_off . . . . . . . . . . . . . . . . . . . . . . . . . . .
power.energy_star.enable . . . . . . . . . . . . . . . . . . . . . . .
power.energy_star.timeout . . . . . . . . . . . . . . . . . . . . . .
power.label_queue.shutdown . . . . . . . . . . . . . . . . . . .
power.power_on_mode . . . . . . . . . . . . . . . . . . . . . . . . .
power.shutdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
print.tone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
print.troubleshooting_label_print . . . . . . . . . . . . . . . . . .
rfid.adaptive_antenna . . . . . . . . . . . . . . . . . . . . . . . . . .
rfid.antenna_sweep . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DNP - rfid.calibration_maximum_power . . . . . . . . . . . .
rfid.country_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
rfid.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
rfid.error.response . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
rfid.hop_table_version . . . . . . . . . . . . . . . . . . . . . . . . . .
rfid.position.program . . . . . . . . . . . . . . . . . . . . . . . . . . .
rfid.reader_1.antenna_port . . . . . . . . . . . . . . . . . . . . . .
rfid.reader_1.power.read . . . . . . . . . . . . . . . . . . . . . . . .
rfid.reader_1.power.write . . . . . . . . . . . . . . . . . . . . . . . .
rfid.reader_1.power.single_power . . . . . . . . . . . . . . . . .
rfid.reader_1.firmware_version . . . . . . . . . . . . . . . . . . .
rfid.reader_1.hardware_version . . . . . . . . . . . . . . . . . .
rfid.reader_1.model . . . . . . . . . . . . . . . . . . . . . . . . . . . .
rfid.recipe_version . . . . . . . . . . . . . . . . . . . . . . . . . . . .
rfid.region_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Programming Guide

819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
851
852
853
854
855
856
857
859
861
862
863
864
865
866
867
868
869
870
871
872
873
874
876
879
880
881
882
883
884
885
886

1/31/18

Contents

rfid.tag.calibrate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 887
rfid.tag.data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 888
rfid.tag.read.content . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889
rfid.tag.read.execute . . . . . . . . . . . . . . . . . . . . . . . . . . . 890
rfid.tag.read.result_line1 . . . . . . . . . . . . . . . . . . . . . . . . 891
rfid.tag.read.result_line2 . . . . . . . . . . . . . . . . . . . . . . . . 892
rfid.tag.read.result_line1_alternate . . . . . . . . . . . . . . . . 893
rfid.tag.read.result_line2_alternate . . . . . . . . . . . . . . . . 894
rfid.tag.test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895
rfid.tag.test.content . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896
rfid.tag.test.execute . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897
rfid.tag.test.result_line1 . . . . . . . . . . . . . . . . . . . . . . . . . 898
rfid.tag.test.result_line2 . . . . . . . . . . . . . . . . . . . . . . . . . 899
rfid.tag.type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 900
ribbon.serial_number . . . . . . . . . . . . . . . . . . . . . . . . . . . 903
ribbon.part_number . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904
rtc.timezone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 905
sensor.cover_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 907
sensor.paper_supply . . . . . . . . . . . . . . . . . . . . . . . . . . 908
sensor.peeler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 909
sensor.self_adjusting_enable . . . . . . . . . . . . . . . . . . . . . 911
usb.device.device_id_string . . . . . . . . . . . . . . . . . . . . . . 912
usb.device.device_unique_id . . . . . . . . . . . . . . . . . . . . 913
usb.device.device_version . . . . . . . . . . . . . . . . . . . . . . . 914
usb.device.manufacturer_string . . . . . . . . . . . . . . . . . . . 915
usb.device.product_id . . . . . . . . . . . . . . . . . . . . . . . . . . 916
usb.device.product_string . . . . . . . . . . . . . . . . . . . . . . . 917
usb.device.serial_string . . . . . . . . . . . . . . . . . . . . . . . . . 918
usb.device.vendor_id . . . . . . . . . . . . . . . . . . . . . . . . . . . 919
usb.halt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 920
usb.host.fn_field_data . . . . . . . . . . . . . . . . . . . . . . . . . . 921
usb.host.fn_last_field . . . . . . . . . . . . . . . . . . . . . . . . . . . 922
usb.host.hid_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 923
usb.host.keyboard_input . . . . . . . . . . . . . . . . . . . . . . . . 924
usb.host.lock_out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925
usb.host.mass_storage_count . . . . . . . . . . . . . . . . . . . . 926
usb.host.read_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927
usb.host.read_list_print_delay . . . . . . . . . . . . . . . . . . . . 928
usb.host.template_list . . . . . . . . . . . . . . . . . . . . . . . . . . 929
usb.host.template_print_amount . . . . . . . . . . . . . . . . . . 930
usb.host.write_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931
usb.mirror.appl_path . . . . . . . . . . . . . . . . . . . . . . . . . . . 932
usb.mirror.auto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 933
usb.mirror.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934
usb.mirror.enabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935
usb.mirror.error_retry . . . . . . . . . . . . . . . . . . . . . . . . . . . 936
usb.mirror.feedback.auto . . . . . . . . . . . . . . . . . . . . . . . . 937
usb.mirror.feedback.odometer . . . . . . . . . . . . . . . . . . . . 938
usb.mirror.feedback.path . . . . . . . . . . . . . . . . . . . . . . . . 939
usb.mirror.fetch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 940
usb.mirror.last_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . 941
usb.mirror.last_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942
usb.mirror.path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943
usb.mirror.reset_delay . . . . . . . . . . . . . . . . . . . . . . . . . . 944
usb.mirror.success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 945
usb.mirror.success_time . . . . . . . . . . . . . . . . . . . . . . . . 946
zbi.control.add_breakpoint . . . . . . . . . . . . . . . . . . . . . . . 947
zbi.control.break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948
zbi.control.clear_breakpoints . . . . . . . . . . . . . . . . . . . . . 949
zbi.control.delete_breakpoint . . . . . . . . . . . . . . . . . . . . . 950
zbi.control.line_number . . . . . . . . . . . . . . . . . . . . . . . . . 951
zbi.control.restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 952

1/31/18

zbi.control.run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
zbi.control.step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
zbi.control.terminate . . . . . . . . . . . . . . . . . . . . . . . . . . .
zbi.control.variable_name . . . . . . . . . . . . . . . . . . . . . . .
zbi.control.variable_value . . . . . . . . . . . . . . . . . . . . . . .
zbi.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
zbi.key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
zbi.last_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
zbi.program_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
zbi.reseller_key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
zbi.revision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
zbi.running_program_name . . . . . . . . . . . . . . . . . . . . .
zbi.start_info.execute . . . . . . . . . . . . . . . . . . . . . . . . . .
zbi.start_info.file_name . . . . . . . . . . . . . . . . . . . . . . . . .
zbi.start_info.memory_alloc . . . . . . . . . . . . . . . . . . . . .
zbi.state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
zpl.caret . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
zpl.control_character . . . . . . . . . . . . . . . . . . . . . . . . . . .
zpl.delimiter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
zpl.label_length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
zpl.left_position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
zpl.system_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
zpl.system_status . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
zpl.zpl_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
zpl.zpl_override . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
zpl.relative_darkness . . . . . . . . . . . . . . . . . . . . . . . . . .

953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
976
979
980
981

SGD Wired Commands . . . . . . . . . . . . . . . . . 983
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 985
Command Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . 986
external_wired.check . . . . . . . . . . . . . . . . . . . . . . . . . . 987
external_wired.ip.addr . . . . . . . . . . . . . . . . . . . . . . . . . . 988
external_wired.ip.arp_interval . . . . . . . . . . . . . . . . . . . . 989
external_wired.ip.default_addr_enable . . . . . . . . . . . . . 990
external_wired.ip.dhcp.cid_all . . . . . . . . . . . . . . . . . . . . 991
external_wired.ip.dhcp.cid_enable . . . . . . . . . . . . . . . . 992
external_wired.ip.dhcp.cid_prefix . . . . . . . . . . . . . . . . . 993
external_wired.ip.dhcp.cid_suffix . . . . . . . . . . . . . . . . . 994
external_wired.ip.dhcp.cid_type . . . . . . . . . . . . . . . . . . 995
external_wired.ip.gateway . . . . . . . . . . . . . . . . . . . . . . . 996
external_wired.ip.netmask . . . . . . . . . . . . . . . . . . . . . . 997
external_wired.ip.port . . . . . . . . . . . . . . . . . . . . . . . . . . 998
external_wired.ip.protocol . . . . . . . . . . . . . . . . . . . . . . 999
external_wired.ip.timeout.enable . . . . . . . . . . . . . . . . 1000
external_wired.ip.timeout.value . . . . . . . . . . . . . . . . . . 1001
external_wired.ip.v6.addr . . . . . . . . . . . . . . . . . . . . . . 1002
external_wired.ip.v6.gateway . . . . . . . . . . . . . . . . . . . 1003
external_wired.ip.v6.prefix_length . . . . . . . . . . . . . . . . 1004
external_wired.mac_addr . . . . . . . . . . . . . . . . . . . . . . 1005
external_wired.mac_raw . . . . . . . . . . . . . . . . . . . . . . . 1006
internal_wired.8021x.password . . . . . . . . . . . . . . . . . . 1007
internal_wired.8021x.peap.validate_server_certificate 1008
internal_wired.8021x.peap.anonymous_identity . . . . . 1009
internal_wired.8021x.private_key_password . . . . . . . 1010
internal_wired.8021x.security . . . . . . . . . . . . . . . . . . . 1011
internal_wired.8021x.ttls_tunnel . . . . . . . . . . . . . . . . . 1012
internal_wired.8021x.username . . . . . . . . . . . . . . . . . 1013
internal_wired.activity_led . . . . . . . . . . . . . . . . . . . . . 1014
internal_wired.auto_switchover . . . . . . . . . . . . . . . . . 1015
internal_wired.enable . . . . . . . . . . . . . . . . . . . . . . . . . 1016
internal_wired.installed . . . . . . . . . . . . . . . . . . . . . . . 1017
internal_wired.ip.addr . . . . . . . . . . . . . . . . . . . . . . . . . 1018

Programming Guide

P1099958-001

9

10

Contents

internal_wired.ip.arp_interval . . . . . . . . . . . . . . . . . . . . 1019
internal_wired.ip.default_addr_enable . . . . . . . . . . . . . 1020
internal_wired.ip.dhcp.arp_verify . . . . . . . . . . . . . . . . 1021
internal_wired.ip.dhcp.cache_ip . . . . . . . . . . . . . . . . . . 1022
internal_wired.ip.dhcp.cid_all . . . . . . . . . . . . . . . . . . . . 1023
internal_wired.ip.dhcp.cid_enable . . . . . . . . . . . . . . . . 1024
internal_wired.ip.dhcp.cid_prefix . . . . . . . . . . . . . . . . . 1025
internal_wired.ip.dhcp.cid_suffix . . . . . . . . . . . . . . . . . 1026
internal_wired.ip.dhcp.cid_type . . . . . . . . . . . . . . . . . . 1027
internal_wired.ip.dhcp.lease.last_attempt . . . . . . . . . . 1028
internal_wired.ip.dhcp.lease.length . . . . . . . . . . . . . . . 1029
internal_wired.ip.dhcp.lease.server . . . . . . . . . . . . . . . 1030
internal_wired.ip.dhcp.lease.time_left . . . . . . . . . . . . . 1031
internal_wired.ip.dhcp.option12 . . . . . . . . . . . . . . . . . 1032
internal_wired.ip.dhcp.option12_format . . . . . . . . . . . 1033
internal_wired.ip.dhcp.option12_value . . . . . . . . . . . . 1034

internal_wired.ip.dhcp.requests_per_session 1035
internal_wired.ip.dns.servers . . . . . . . . . . . . . . . . . . . . 1036
internal_wired.ip.gateway . . . . . . . . . . . . . . . . . . . . . . 1037
internal_wired.ip.netmask . . . . . . . . . . . . . . . . . . . . . . 1038
internal_wired.ip.port . . . . . . . . . . . . . . . . . . . . . . . . . . 1039
internal_wired.ip.port_alternate . . . . . . . . . . . . . . . . . . 1040
internal_wired.ip.port_json_config . . . . . . . . . . . . . . . 1041
internal_wired.ip.protocol . . . . . . . . . . . . . . . . . . . . . . 1042
internal_wired.ip.timeout.enable . . . . . . . . . . . . . . . . . 1043
internal_wired.ip.timeout.value . . . . . . . . . . . . . . . . . . 1044
internal_wired.ip.wins.addr . . . . . . . . . . . . . . . . . . . . 1045
internal_wired.ip.wins.permanent_source . . . . . . . . . 1046
internal_wired.mac_addr . . . . . . . . . . . . . . . . . . . . . . . 1047
internal_wired.mac_raw . . . . . . . . . . . . . . . . . . . . . . . . 1048

SGD Wireless Commands . . . . . . . . . . . . . 1051
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1052
Command Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . 1053
bluetooth.address . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054
bluetooth.afh_map . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1055
bluetooth.afh_map_curr . . . . . . . . . . . . . . . . . . . . . . . . 1056
bluetooth.afh_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 1057
bluetooth.authentication . . . . . . . . . . . . . . . . . . . . . . . . 1058
bluetooth.bluetooth_pin . . . . . . . . . . . . . . . . . . . . . . . . 1059
bluetooth.clear_bonding_cache . . . . . . . . . . . . . . . . . 1060
bluetooth.date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061
bluetooth.discoverable . . . . . . . . . . . . . . . . . . . . . . . . . 1062
bluetooth.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1063
bluetooth.enable_reconnect . . . . . . . . . . . . . . . . . . . . . 1064
bluetooth.friendly_name . . . . . . . . . . . . . . . . . . . . . . . . 1065
bluetooth.json_config_channel_enable . . . . . . . . . . . . 1066
bluetooth.le.controller_mode . . . . . . . . . . . . . . . . . . . 1067
bluetooth.le.minimum_security . . . . . . . . . . . . . . . . . 1068
bluetooth.local_name . . . . . . . . . . . . . . . . . . . . . . . . . . 1069
bluetooth.minimum_security_mode . . . . . . . . . . . . . . 1070
bluetooth.radio_auto_baud . . . . . . . . . . . . . . . . . . . . . 1071
bluetooth.radio_version . . . . . . . . . . . . . . . . . . . . . . . . 1072
bluetooth.short_address . . . . . . . . . . . . . . . . . . . . . . . 1073
bluetooth.version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074
card.mac_addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075
card.inserted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1076
ip.active_network . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1077
ip.addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078
ip.arp_interval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1079
ip.bootp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1080
ip.dhcp.arp_verify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1081
P1099958-001

ip.dhcp.auto_provision_enable . . . . . . . . . . . . . . . . . . 1082
ip.dhcp.cache_ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1083
ip.dhcp.cid_all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1084
ip.dhcp.cid_enable . . . . . . . . . . . . . . . . . . . . . . . . . . . 1085
ip.dhcp.cid_prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1086
ip.dhcp.cid_suffix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1087
ip.dhcp.cid_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1088
ip.dhcp.cid_value . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1089
ip.dhcp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090
ip.dhcp.lease.last_attempt . . . . . . . . . . . . . . . . . . . . . 1091
ip.dhcp.lease.server . . . . . . . . . . . . . . . . . . . . . . . . . . 1092
ip.dhcp.lease.time_left . . . . . . . . . . . . . . . . . . . . . . . . 1093
ip.dhcp.ntp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . 1094
ip.dhcp.ntp.received_servers . . . . . . . . . . . . . . . . . . 1095
ip.dhcp.option12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1096
ip.dhcp.option12_format . . . . . . . . . . . . . . . . . . . . . . . 1097
ip.dhcp.option12_value . . . . . . . . . . . . . . . . . . . . . . . 1098
ip.dhcp.request_timeout . . . . . . . . . . . . . . . . . . . . . . . 1099
ip.dhcp.requests_per_session . . . . . . . . . . . . . . . . . . 1100
ip.dhcp.session_interval . . . . . . . . . . . . . . . . . . . . . . . 1101
ip.dhcp.user_class_id . . . . . . . . . . . . . . . . . . . . . . . . 1102
ip.dhcp.vendor_class_id . . . . . . . . . . . . . . . . . . . . . . . 1103
ip.dns.domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1104
ip.dns.servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1105
ip.ftp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1106
ip.ftp.execute_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107
ip.ftp.request_password . . . . . . . . . . . . . . . . . . . . . . . 1108
ip.gateway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1109
ip.http.admin_name . . . . . . . . . . . . . . . . . . . . . . . . . . . .1110
ip.http.admin_password . . . . . . . . . . . . . . . . . . . . . . . .1111
ip.http.custom_link_name . . . . . . . . . . . . . . . . . . . . . . .1112
ip.http.custom_link_url . . . . . . . . . . . . . . . . . . . . . . . . .1113
ip.http.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1114
ip.http.faq_url . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1115
ip.http.port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1116
ip.lpd.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1117
ip.mac_raw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1118
ip.mirror.appl_path . . . . . . . . . . . . . . . . . . . . . . . . . . . .1119
ip.mirror.auto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1120
ip.mirror.error_retry . . . . . . . . . . . . . . . . . . . . . . . . . . 1121
ip.mirror.feedback.auto . . . . . . . . . . . . . . . . . . . . . . . . 1122
ip.mirror.feedback.freq . . . . . . . . . . . . . . . . . . . . . . . . 1123
ip.mirror.feedback.odometer . . . . . . . . . . . . . . . . . . . 1124
ip.mirror.feedback.path . . . . . . . . . . . . . . . . . . . . . . . . 1125
ip.mirror.fetch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1126
ip.mirror.freq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1127
ip.mirror.freq_hours . . . . . . . . . . . . . . . . . . . . . . . . . . 1128
ip.mirror.interface . . . . . . . . . . . . . . . . . . . . . . . . . . . 1129
ip.mirror.last_error . . . . . . . . . . . . . . . . . . . . . . . . . . . 1130
ip.mirror.last_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1131
ip.mirror.mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1132
ip.mirror.password . . . . . . . . . . . . . . . . . . . . . . . . . . . 1133
ip.mirror.path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1134
ip.mirror.reset_delay . . . . . . . . . . . . . . . . . . . . . . . . . . 1135
ip.mirror.server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1136
ip.mirror.success . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1137
ip.mirror.success_time . . . . . . . . . . . . . . . . . . . . . . . . 1138
ip.mirror.username . . . . . . . . . . . . . . . . . . . . . . . . . . . 1139
ip.mirror.version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1140
ip.netmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141
ip.ntp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1142
ip.ntp.log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1143

Programming Guide

1/31/18

Contents

ip.ntp.servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1144
ip.pop3.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1145
ip.pop3.password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1146
ip.pop3.poll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1147
ip.pop3.server_addr . . . . . . . . . . . . . . . . . . . . . . . . . . . 1148
ip.pop3.username . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1149
ip.port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1150
ip.port_alternate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1151
ip.port_json_config . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1152
ip.port_single_conn . . . . . . . . . . . . . . . . . . . . . . . . . . 1153
ip.port_single_conn_idle_timeout . . . . . . . . . . . . . . . 1154
ip.primary_network . . . . . . . . . . . . . . . . . . . . . . . . . . . 1155
ip.smtp.domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1156
ip.smtp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1157
ip.smtp.server_addr . . . . . . . . . . . . . . . . . . . . . . . . . . . 1158
ip.snmp.get_community_name . . . . . . . . . . . . . . . . . . 1159
ip.snmp.set_community_name . . . . . . . . . . . . . . . . . . 1160
ip.snmp.trap_community_name . . . . . . . . . . . . . . . . . . 1161
ip.snmp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162
ip.tcp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1163
ip.telnet.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1164
ip.tcp.nagle_algorithm . . . . . . . . . . . . . . . . . . . . . . . . 1165
ip.udp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1166
weblink.cloud_connect.enable . . . . . . . . . . . . . . . . . . . 1167
weblink.enable
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1168
weblink.ip.conn[1|2].authentication.add . . . . . . . . . . . 1169
weblink.ip.conn[1|2].authentication.entries . . . . . . . . 1171
weblink.ip.conn[1|2].authentication.remove . . . . . . . . . 1172
weblink.ip.conn[1|2].location
. . . . . . . . . . . . . . . . . . 1173
weblink.ip.conn[1|2].num_connections
. . . . . . . . . . 1174

weblink.ip.conn[1|2].maximum_simultaneous_
connections 1175
weblink.ip.conn[1|2].proxy
. . . . . . . . . . . . . . . . . . . 1176
weblink.ip.conn[1|2].retry_interval . . . . . . . . . . . . . . . 1178
weblink.ip.conn[1|2].test.location
. . . . . . . . . . . . . . 1179
weblink.ip.conn[1|2].test.retry_interval
. . . . . . . . . . . 1181
weblink.ip.conn[1|2].retry_interval_random_max . . . . . 1182
weblink.ip.conn[1|2].test.test_on . . . . . . . . . . . . . . . . 1184
weblink.logging.clear
. . . . . . . . . . . . . . . . . . . . . . . 1185
weblink.logging.entries
. . . . . . . . . . . . . . . . . . . . . 1186
weblink.logging.max_entries
. . . . . . . . . . . . . . . . . 1187
weblink.printer_reset_required
. . . . . . . . . . . . . . . . 1188
weblink.restore_defaults
. . . . . . . . . . . . . . . . . . . . 1189
weblink.zebra_connector.authentication.add
. . . . . . 1190
weblink.zebra_connector.authentication.entries . . . . 1192
weblink.zebra_connector.authentication.remove
. . . 1193
weblink.zebra_connector.enable . . . . . . . . . . . . . . . . . 1194
weblink.zebra_connector.proxy . . . . . . . . . . . . . . . . . . 1195
weblink.zebra_connector.version . . . . . . . . . . . . . . . . 1197
wlan.11ac.80mhz_enable . . . . . . . . . . . . . . . . . . . . . . . 1199
wlan.11d.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1200
wlan.11n.20mhz_only . . . . . . . . . . . . . . . . . . . . . . . . . . 1201
wlan.11n.aggregation . . . . . . . . . . . . . . . . . . . . . . . . . . 1202
wlan.11n.greenfield . . . . . . . . . . . . . . . . . . . . . . . . . . . 1203
wlan.11n.rifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1204
wlan.11n.short_gi_40mhz . . . . . . . . . . . . . . . . . . . . . . 1205
wlan.11n.short_gi_20mhz . . . . . . . . . . . . . . . . . . . . . . 1206
wlan.8021x.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1207
wlan.8021x.validate_peap_server_certificate . . . . . . . 1208
wlan.active_channels . . . . . . . . . . . . . . . . . . . . . . . . . . 1209
wlan.adhoc_last_channel . . . . . . . . . . . . . . . . . . . . . . 1210
wlan.authenticated . . . . . . . . . . . . . . . . . . . . . . . . . . . 1211

1/31/18

wlan.authentication_error . . . . . . . . . . . . . . . . . . . . .
wlan.available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.allowed_band . . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.adhocautomode . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.adhocchannel . . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.associated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.auth_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.bssid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.channel_mask . . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.country_code . . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.current_tx_rate . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.encryption_index . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.encryption_key[1|2|3|4]1 . . . . . . . . . . . . . . . . . . .
wlan.encryption_mode . . . . . . . . . . . . . . . . . . . . . . . .
wlan.essid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.firmware_version . . . . . . . . . . . . . . . . . . . . . . . .
wlan.ip.addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.ip.arp_interval . . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.ip.default_addr_enable . . . . . . . . . . . . . . . . . . . .
wlan.ip.dhcp.arp_verify . . . . . . . . . . . . . . . . . . . . . . .
wlan.ip.dhcp.cache_ip . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.ip.dhcp.cid_all . . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.ip.dhcp.cid_enable . . . . . . . . . . . . . . . . . . . . . . .
wlan.ip.dhcp.cid_prefix . . . . . . . . . . . . . . . . . . . . . . . .
wlan.ip.dhcp.cid_suffix . . . . . . . . . . . . . . . . . . . . . . . .
wlan.ip.dhcp.cid_type . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.ip.dhcp.lease.last_attempt . . . . . . . . . . . . . . . . .
wlan.ip.dhcp.lease.length . . . . . . . . . . . . . . . . . . . . . .
wlan.ip.dhcp.lease.server . . . . . . . . . . . . . . . . . . . . . .
wlan.ip.dhcp.lease.time_left . . . . . . . . . . . . . . . . . . . .
wlan.ip.dhcp.option12 . . . . . . . . . . . . . . . . . . . . . . . .
wlan.ip.dhcp.option12_format . . . . . . . . . . . . . . . . . .
wlan.ip.dhcp.option12_value . . . . . . . . . . . . . . . . . . .
wlan.ip.dhcp.request_timeout . . . . . . . . . . . . . . . . . . .
wlan.ip.dhcp.requests_per_session . . . . . . . . . . . . . .
wlan.ip.dhcp.session_interval . . . . . . . . . . . . . . . . . . .
wlan.ip.dns.servers . . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.ip.gateway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.ip.netmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.ip.port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.ip.port_alternate . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.ip.port_json_config . . . . . . . . . . . . . . . . . . . . . .
wlan.ip.protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.ip.timeout.enable . . . . . . . . . . . . . . . . . . . . . . . .
wlan.ip.timeout.value . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.ip.wins.addr . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.ip.wins.permanent_source . . . . . . . . . . . . . . . .
wlan.keep_alive.enable . . . . . . . . . . . . . . . . . . . . . . . .
wlan.keep_alive.timeout . . . . . . . . . . . . . . . . . . . . . . .
wlan.kerberos.kdc . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.kerberos.mode . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.kerberos.password . . . . . . . . . . . . . . . . . . . . . . .
wlan.kerberos.realm . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.kerberos.username . . . . . . . . . . . . . . . . . . . . . . .
wlan.leap_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.leap_password . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.leap_username . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.mac_addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.mac_raw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wlan.operating_mode . . . . . . . . . . . . . . . . . . . . . . . . .

Programming Guide

1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273

P1099958-001

11

12

Contents

wlan.password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274
wlan.permitted_channels . . . . . . . . . . . . . . . . . . . . . . . 1275
wlan.poor_signal_threshold . . . . . . . . . . . . . . . . . . . . . 1276
wlan.preamble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1277
wlan.private_key_password . . . . . . . . . . . . . . . . . . . . . 1278
wlan.region_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1279
wlan.roam.interchannel_delay . . . . . . . . . . . . . . . . . . . 1280
wlan.roam.interval . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1281
wlan.roam.max_chan_scan_time . . . . . . . . . . . . . . . . 1282
wlan.roam.max_fail . . . . . . . . . . . . . . . . . . . . . . . . . . . 1283
wlan.roam.rssi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1284
wlan.roam.signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1285
wlan.rts_cts_enabled . . . . . . . . . . . . . . . . . . . . . . . . . 1286
wlan.security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1287
wlan.signal_noise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1294
wlan.signal_quality . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1295
wlan.signal_strength . . . . . . . . . . . . . . . . . . . . . . . . . . 1296
wlan.station_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1297
wlan.tx_power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1298
wlan.tx_rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1299
wlan.user_channel_list . . . . . . . . . . . . . . . . . . . . . . . . . 1300
wlan.username . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1301
wlan.waveagent.enable . . . . . . . . . . . . . . . . . . . . . . . . 1302
wlan.waveagent.udp_port . . . . . . . . . . . . . . . . . . . . . . 1303
wlan.wep.auth_type . . . . . . . . . . . . . . . . . . . . . . . . . . . 1304
wlan.wep.index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1305
wlan.wep.key1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1306
wlan.wep.key2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1307
wlan.wep.key3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1308
wlan.wep.key4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1309
wlan.wpa.psk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1310
wlan.wep.key_format . . . . . . . . . . . . . . . . . . . . . . . . . . 1311
wlan.wpa.timecheck . . . . . . . . . . . . . . . . . . . . . . . . . . . 1315
wlan.wpa.wpa_version . . . . . . . . . . . . . . . . . . . . . . . . 1316

Zebra Code Pages . . . . . . . . . . . . . . . . . . . 1317
Zebra Code Page 850 — Latin Character Set . . . . . . . 1317
Zebra Code Page 1250 — Central and Eastern European
Latin Character Set . . . . . . . . . . . . . . . . . . . . . . . . . . . 1320
Zebra Code Page 1252— Latin Character Set . . . . . . 1322
Zebra Code Page 1253 — Modern Greek Character Set . .
1324
Zebra Code Page 1254 — Turkish Character Set . . . . 1326
Zebra Code Page 1255 — Hebrew Character Set . . . 1328

ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1331
ASCII Code Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1332

Fonts and Bar Codes . . . . . . . . . . . . . . . . . 1335
Standard Printer Fonts . . . . . . . . . . . . . . . . . . . . . . . . . 1336
Proportional and Fixed Spacing . . . . . . . . . . . . . . . . . . 1338
Scalable Versus Bitmapped Fonts . . . . . . . . . . . . . . . . 1339
Font Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1341
Bar Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343

Mod 10 and Mod 43 Check Digits . . . . . . . 1349
Mod 10 Check Digit . . . . . . . . . . . . . . . . . . . . . . . . . . . 1349
Mod 43 Check Digit . . . . . . . . . . . . . . . . . . . . . . . . . . . 1350

Error Detection Protocol . . . . . . . . . . . . . . 1353
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1355
Request Packet Formats from the Host Computer . . . 1356
Response From the Zebra Printer . . . . . . . . . . . . . . . . 1358

ZB64 Encoding and Compression . . . . . . . 1365
Introduction to B64 and Z64 . . . . . . . . . . . . . . . . . . . . 1366
B64 and Z64 Encoding . . . . . . . . . . . . . . . . . . . . . . . . 1367

Field Interactions . . . . . . . . . . . . . . . . . . . . 1369
Normal Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . .
Rotated Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bottom Up Orientation . . . . . . . . . . . . . . . . . . . . . . . . .
Inverted Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . .

1370
1371
1372
1373

Real Time Clock . . . . . . . . . . . . . . . . . . . . . 1375
Control Panel Programming . . . . . . . . . . . . . . . . . . . . 1376
RTC General Information . . . . . . . . . . . . . . . . . . . . . . 1378
ZPL II Samples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1383

ZBI Character Set . . . . . . . . . . . . . . . . . . . . 1389
Character Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1389

SGD Command Support . . . . . . . . . . . . . . . 1393
Printer and Firmware Compatibility . . . . . . . . . . . . . . . 1393

Firmware Features . . . . . . . . . . . . . . . . . . . 1435
Firmware x.17
Firmware x.16
Firmware x.15
Firmware x.14

...............................
...............................
...............................
...............................

1435
1436
1437
1439

Mirror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1443
Mirror Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Professional Services for Mirror Configuration . . . . . .
Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Mirror Works . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating ZPL Files for Use in the
"/files" Directory . . . . . . . . . . . . . . . . . .
Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The Feedback.get File . . . . . . . . . . . . . . . . . . . . . . . .
How to Set Up and Use Mirror . . . . . . . . . . . . . . . . . .
Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1444
1445
1445
1447
1449
1452
1452
1455
1457

Wireless Markup Language (WML) . . . . . . 1461
WML Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WML Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Supported Printers . . . . . . . . . . . . . . . . . . . . . . . . . . .
Professional Services for WML Content Creation . . . .
WML Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using WML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WML Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Troubleshooting Scenarios . . . . . . . . . . . . . . . . . . . . .

1462
1463
1464
1465
1466
1467
1472
1480

Using Weblink . . . . . . . . . . . . . . . . . . . . . . . 1483
P1099958-001

Programming Guide

1/31/18

Contents

When Should Weblink be Used? . . . . . . . . . . . . . . . . . 1483
Configuring Weblink . . . . . . . . . . . . . . . . . . . . . . . . . . . 1484
SSL/TLS Certificate Errors . . . . . . . . . . . . . . . . . . . . . . 1487
Other Typical Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . 1489
Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1490
HTTP Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1491

HTTP POST Alerts . . . . . . . . . . . . . . . . . . . 1493
Configuring Alerts
Where the Alert Destination is HTTP POST . . . . . . . . . 1493
How to Parse via PHP . . . . . . . . . . . . . . . . . . . . . . . . . 1495
Basic Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . 1495
Enabling Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1497
Navigating the Log Output . . . . . . . . . . . . . . . . . . . . . . 1498
Understanding Errors in the Alerts HTTP Log . . . . . . . 1498
Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1498
HTTP Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1499

Advanced Techniques . . . . . . . . . . . . . . . . 1501
Special Effects for Print Fields . . . . . . . . . . . . . . . . . . . 1502
Serialized Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1502
Variable Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1503
Stored Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1503
Control Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . 1504
Changing Delimiters and Command Prefixes . . . . . . . 1508
Communication Diagnostics Commands . . . . . . . . . . . 1509
Graphic Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . 1509
Memory, Flash Cards, and Font Cards . . . . . . . . . . . . 1513

Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . 1519

1/31/18

Programming Guide

P1099958-001

13

14

Contents

P1099958-001

Programming Guide

1/31/18

Functional List of
ZPL Commands

Abort Download Graphic . . . . . . . . . . . . . . . . . . . . . . . 155
Advanced Text Properties . . . . . . . . . . . . . . . . . . . . . . . 291
ANSI Codabar Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . 96
Applicator Reprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Aztec Bar Code Parameters . . . . . . . . . . . . . . . . . . . . . 102
Aztec Bar Code Parameters . . . . . . . . . . . . . . . . . . . . . . 46
Bar Code Field Default . . . . . . . . . . . . . . . . . . . . . . . . . 126
Battery Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Cache On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Calibrate RFID Tag Position . . . . . . . . . . . . . . . . . . . . . 354
Cancel All . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Cancel Current Partially Input Format . . . . . . . . . . . . . . 251
Change Alphanumeric Default Font . . . . . . . . . . . . . . 131
Change Backfeed Sequence . . . . . . . . . . . . . . . . . . . . 247
Change Caret . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Change Delimiter
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Change International Font/Encoding . . . . . . . . . . . . . . 132
Change Memory Letter Designation
. . . . . . . . . . . . . 136
Change Network Settings . . . . . . . . . . . . . . . . . . . . . . . 285
Change Tilde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Change Wired Networking Settings . . . . . . . . . . . . . . . . 289
Change Wireless Network Settings . . . . . . . . . . . . . . . . 411
CODABLOCK Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . 72
Code 11 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Code 128 Bar Code (Subsets A, B, and C) . . . . . . . . . . 76
Code 39 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Code 49 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Code 93 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Code Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Comment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Configuration Label Return . . . . . . . . . . . . . . . . . . . . . . 198
Configuration Update
. . . . . . . . . . . . . . . . . . . . . . . . . 249
Configure Wireless Securities . . . . . . . . . . . . . . . . . . . . 419
Cut Now . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Data Matrix Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Define EPC Data Structure . . . . . . . . . . . . . . . . . . . . . . 362
Define Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Define Password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Define Printer Name . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Detect Multiple RFID Tags in Encoding Field . . . . . . . . 373
Disable Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
1/31/18

Display Description Information . . . . . . . . . . . . . . . . . 216
Download Bitmap Font . . . . . . . . . . . . . . . . . . . . . . . . 147
Download Bounded TrueType Font . . . . . . . . . . . . . . 157
Download Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Download Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
Download Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Download Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Download Intellifont (Scalable Font) . . . . . . . . . . . . . . 156
Download Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Download Unbounded TrueType Font . . . . . . . . . . . . 158
EAN-13 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
EAN-8 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Early Warning Settings . . . . . . . . . . . . . . . . . . . . . . . . . 231
Enable Communications Diagnostics . . . . . . . . . . . . . 227
Enable RFID Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
Enable/Disable E.A.S. Bit . . . . . . . . . . . . . . . . . . . . . . . 364
Encode AFI or DSFID Byte . . . . . . . . . . . . . . . . . . . . . . 395
End Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
Erase Download Graphics . . . . . . . . . . . . . . . . . . . . . 162
Field Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Field Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Field Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Field Hexadecimal Indicator . . . . . . . . . . . . . . . . . . . . . 168
Field Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Field Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Field Origin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Field Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Field Reverse Print . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Field Separator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Field Typeset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Field Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Font Identifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Font Linking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Get RFID Tag ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
Graphic Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Graphic Circle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Graphic Diagonal Line . . . . . . . . . . . . . . . . . . . . . . . . . 189
Graphic Ellipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Graphic Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Graphic Symbol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Graphing Sensor Calibration . . . . . . . . . . . . . . . . . . . . 230

Programming Guide

P1099958-001

16

Functional List of ZPL Commands

GS1 Databar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Halt ZebraNet Alert . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Head Diagnostic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Head Test Fatal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Head Test Interval . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
Head Test Non-Fatal . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Host Directory List . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Host Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Host Graphic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Host Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Host Linked Fonts List . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Host Query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Host RAM Status
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Host Status Return . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Host Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Image Load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Image Move . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Image Save . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Industrial 2 of 5 Bar Codes . . . . . . . . . . . . . . . . . . . . . . . 93
Initialize Flash Memory . . . . . . . . . . . . . . . . . . . . . . . . 224
Interleaved 2 of 5 Bar Code . . . . . . . . . . . . . . . . . . . . . . 50
Kill Battery (Battery Discharge Mode) . . . . . . . . . . . . . 253
Kiosk Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Label Home . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Label Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Label Reverse Print . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Label Shift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Label Top . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
List Font Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
Lock/Unlock RFID Tag Memory . . . . . . . . . . . . . . . . . . . 370
LOGMARS Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Map Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Maximum Label Length . . . . . . . . . . . . . . . . . . . . . . . . 274
Media Darkness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Media Feed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
Media Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Media Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
MicroPDF417 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Mode Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Modify Head Cold Warning . . . . . . . . . . . . . . . . . . . . . . 282
MSI Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Multiple Field Origin Locations . . . . . . . . . . . . . . . . . . . 172
Network Connect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Network ID Number . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Object Delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Pause and Cancel Format
. . . . . . . . . . . . . . . . . . . . . 243
PDF417 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Planet Code bar code . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Plessey Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
POSTAL Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Power On Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
Present Length Addition . . . . . . . . . . . . . . . . . . . . . . . . . 294
Present Now . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Print Configuration Label . . . . . . . . . . . . . . . . . . . . . . . . 331
Print Directory Label . . . . . . . . . . . . . . . . . . . . . . . . . . 332
Print Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Print Network Configuration Label . . . . . . . . . . . . . . . . . 413
Print Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Print Quantity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
Print Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Print Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Print Width
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304

P1099958-001

Printer Sleep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Printing Mirror Image of Label . . . . . . . . . . . . . . . . . . 295
Programmable Pause . . . . . . . . . . . . . . . . . . . . . . . . . 298
QR Code Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Quick Write EPC Data and Passwords . . . . . . . . . . . . . 374
Read AFI or DSFID Byte . . . . . . . . . . . . . . . . . . . . . . . . 361
Read or Write RFID Format . . . . . . . . . . . . . . . . . . . . . 365
Read RFID Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
Read Unique RFID Chip Serialization . . . . . . . . . . . . . . 385
Recall Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Recall Graphic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
Remove Label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Report RFID Encoding Results . . . . . . . . . . . . . . . . . . . 387
Reprint After Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Reset Advanced Counters . . . . . . . . . . . . . . . . . . . . . . 305
Reset Optional Memory . . . . . . . . . . . . . . . . . . . . . . . 225
Reset Wireless Radio Card and Print Server . . . . . . . . 416
Return RFID Data Log to Host . . . . . . . . . . . . . . . . . . . 353
Return ZebraNet Alert Configuration . . . . . . . . . . . . . . . 211
Scalable/Bitmapped Font . . . . . . . . . . . . . . . . . . . . . . . . 42
Search for Wired Print Server during
Network Boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
Select Date and Time Format (for Real Time Clock) . 254
Select Encoding Table . . . . . . . . . . . . . . . . . . . . . . . . . 308
Select the Primary Network Device . . . . . . . . . . . . . . . . 283
Sensor Select . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Serialization Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Serialization Field (with a Standard ^FD String) . . . . . . 309
Set All Network Printers Transparent . . . . . . . . . . . . . 288
Set Antenna Parameters . . . . . . . . . . . . . . . . . . . . . . . . 408
Set Auxiliary Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Set Battery Condition . . . . . . . . . . . . . . . . . . . . . . . . . 229
Set Client Identifier (Option 61) . . . . . . . . . . . . . . . . . . . 402
Set Currently Connected Printer Transparent . . . . . . . 290
Set Darkness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Set Date and Time (for Real-Time Clock) . . . . . . . . . . 323
Set Dots per Millimeter . . . . . . . . . . . . . . . . . . . . . . . . 240
Set Dynamic Media Calibration . . . . . . . . . . . . . . . . . . . 343
Set Label Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Set LEAP Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . 412
Set Maintenance Alerts . . . . . . . . . . . . . . . . . . . . . . . . . 268
Set Maintenance Information Message . . . . . . . . . . . . . 273
Set Media Sensor Calibration
. . . . . . . . . . . . . . . . . . 226
Set Media Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Set Mode and Language (for Real-Time Clock) . . . . . 313
Set Offset (for Real-Time Clock) . . . . . . . . . . . . . . . . . 317
Set Primary/Secondary Device . . . . . . . . . . . . . . . . . . . 405
Set Printhead Resistance . . . . . . . . . . . . . . . . . . . . . . 320
Set RF Power Levels for Read and Write . . . . . . . . . . . 388
Set RFID Tag Password and Lock Tag . . . . . . . . . . . . . 392
Set Ribbon Tension . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
Set Sensor Intensity . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Set Serial Communications . . . . . . . . . . . . . . . . . . . . . 306
Set SMTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Set SNMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
Set Transmit Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
Set Units of Measurement . . . . . . . . . . . . . . . . . . . . . . 281
Set Up RFID Parameters . . . . . . . . . . . . . . . . . . . . . . . 378
Set Web Authentication Timeout Value . . . . . . . . . . . . 407
Set WEP Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
Set Wireless Password . . . . . . . . . . . . . . . . . . . . . . . . . 414
Set Wireless Radio Card Values . . . . . . . . . . . . . . . . . . 417

Programming Guide

1/31/18

Functional List of ZPL Commands

Set ZebraNet Alert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
Set ZPL Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
Slew Given Number of Dot Rows . . . . . . . . . . . . . . . . . 292
Slew to Home Position . . . . . . . . . . . . . . . . . . . . . . . . . 293
Specify RFID Retries for a Block or Enable Adaptive Antenna
Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
Standard 2 of 5 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . 95
Start Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
Start Print . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
Start ZBI (Zebra BASIC Interpreter) . . . . . . . . . . . . . . . 234
Start ZBI (Zebra BASIC Interpreter) . . . . . . . . . . . . . . . . 236
Suppress Backfeed . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
Tear-off Adjust Position . . . . . . . . . . . . . . . . . . . . . . . . . 327

1/31/18

Terminate Zebra BASIC Interpreter . . . . . . . . . . . . . . 244
Text Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
TLC39 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Transfer Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
UPC/EAN Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . 115
UPC-A Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
UPC-E Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Upload Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
UPS MaxiCode Bar Code . . . . . . . . . . . . . . . . . . . . . . . 87
Use Font Name to Call Font . . . . . . . . . . . . . . . . . . . . . 44
Verify RFID Encoding Operation . . . . . . . . . . . . . . . . . . 398
Write (Encode) Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
Write Query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333

Programming Guide

P1099958-001

17

18

Functional List of ZPL Commands

P1099958-001

Programming Guide

1/31/18

Alphabetical List of
ZBI Commands

! (EXCLAMATION MARK) . . . . . . . . . . . . . . . . . . . . . . . 435
ACCEPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
ADDBREAK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
AUTONUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
AUXPORT_GETPIN . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
AUXPORT_RELEASEPIN . . . . . . . . . . . . . . . . . . . . . . . 520
AUXPORT_SETPIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
AUXPORT_STEALPIN . . . . . . . . . . . . . . . . . . . . . . . . . 517
BREAK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
CHR$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
CLIENTSOCKET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
CLOSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
CLRERR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
COLUMNSIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
CSVLOAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
CSVSTORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
CTRL-C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
DATAREADY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
DATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
DATE$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
DEBUG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
DELBREAK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
DELETE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
DELROW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
DIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
DO Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
ECHO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
END . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
EXIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
EXTRACT$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532
FIND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
FOR Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
GETVAR$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
GOTO/GOSUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
HANDLEEVENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
HEXTOINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
IF Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
INBYTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
INPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
INSERTROW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
INTTOHEX$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
1/31/18

ISERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ISWARNING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LCASE$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LOAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LTRIM$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MAXNUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NEW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ON ERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
OPEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ORD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
OUTBYTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
POS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PRINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
READ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
REDIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
REGISTEREVENT . . . . . . . . . . . . . . . . . . . . . . . . . . . .
REM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RENUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
REPEAT$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RESTART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ROWSIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RTRIM$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RUN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SEARCHTO$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SERVERCLOSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SERVERSOCKET . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SETERR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SETVAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SLEEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SPLIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SPLITCOUNT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
STEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
STORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
STR$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Programming Guide

511
512
521
536
454
436
491
523
538
540
539
541
433
516
469
534
478
535
477
480
546
504
434
438
524
443
549
525
441
482
473
472
514
558
513
526
530
444
490
537
465

P1099958-001

20

Alphabetical List of ZBI Commands

TIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
TIME$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
TRACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
TRIGGEREVENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
TXTLOAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
TXTSTORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
UCASE$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
UNREGISTEREVENT . . . . . . . . . . . . . . . . . . . . . . . . . . 506
VAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
WRITE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
ZPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450

P1099958-001

Programming Guide

1/31/18

Alphabetical List of
Set/Get/Do
Commands

alerts.add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577
alerts.conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
alerts.configured . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
alerts.destinations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
alerts.http.authentication.add . . . . . . . . . . . . . . . . . . . 581
alerts.http.authentication.entries . . . . . . . . . . . . . . . . . . 583
alerts.http.authentication.remove . . . . . . . . . . . . . . . . . 584
alerts.http.logging.clear . . . . . . . . . . . . . . . . . . . . . . . . 585
alerts.http.logging.entries . . . . . . . . . . . . . . . . . . . . . . 586
alerts.http.logging.max_entries . . . . . . . . . . . . . . . . . . 587
alerts.http.proxy
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588
alerts.tracked_settings.clear_log . . . . . . . . . . . . . . . . . 589
alerts.tracked_settings.log_tracked . . . . . . . . . . . . . . . . 590
alerts.tracked_settings.max_log_entries . . . . . . . . . . . . 591
alerts.tracked_sgds.log . . . . . . . . . . . . . . . . . . . . . . . . 592
alerts.tracked_sgds.max_log_entries . . . . . . . . . . . . . . 593
alerts.tracked_sgds.zbi_notified . . . . . . . . . . . . . . . . . 594
apl.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595
apl.framework_version . . . . . . . . . . . . . . . . . . . . . . . . . 596
apl.version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597
appl.bootblock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600
appl.date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601
appl.link_os_version . . . . . . . . . . . . . . . . . . . . . . . . . . 598
appl.name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602
appl.option_board_version . . . . . . . . . . . . . . . . . . . . . . . 599
bluetooth.address . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054
bluetooth.afh_map . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1055
bluetooth.afh_map_curr . . . . . . . . . . . . . . . . . . . . . . . . 1056
bluetooth.afh_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 1057
bluetooth.authentication . . . . . . . . . . . . . . . . . . . . . . . . 1058
bluetooth.bluetooth_pin . . . . . . . . . . . . . . . . . . . . . . . . 1059
bluetooth.clear_bonding_cache . . . . . . . . . . . . . . . . . 1060
bluetooth.date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061
bluetooth.discoverable . . . . . . . . . . . . . . . . . . . . . . . . . 1062
bluetooth.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1063
bluetooth.enable_reconnect . . . . . . . . . . . . . . . . . . . . . 1064
bluetooth.friendly_name . . . . . . . . . . . . . . . . . . . . . . . . 1065
bluetooth.json_config_channel_enable . . . . . . . . . . . . 1066
bluetooth.le.controller_mode . . . . . . . . . . . . . . . . . . . 1067
bluetooth.le.minimum_security . . . . . . . . . . . . . . . . . 1068
bluetooth.local_name . . . . . . . . . . . . . . . . . . . . . . . . . . 1069
1/31/18

bluetooth.minimum_security_mode . . . . . . . . . . . . . 1070
bluetooth.radio_auto_baud . . . . . . . . . . . . . . . . . . . . . 1071
bluetooth.radio_version . . . . . . . . . . . . . . . . . . . . . . . . 1072
bluetooth.short_address . . . . . . . . . . . . . . . . . . . . . . . 1073
bluetooth.version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074
capture.channel1.count . . . . . . . . . . . . . . . . . . . . . . . 603
capture.channel1.data.mime . . . . . . . . . . . . . . . . . . . 604
capture.channel1.data.raw . . . . . . . . . . . . . . . . . . . . . 605
capture.channel1.delimiter . . . . . . . . . . . . . . . . . . . . . 606
capture.channel1.max_length
. . . . . . . . . . . . . . . . . . 607
capture.channel1.port
. . . . . . . . . . . . . . . . . . . . . . . . 608
card.inserted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1076
card.mac_addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075
CISDFCRC16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
comm.baud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611
comm.halt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612
comm.parity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615
comm.pnp_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
comm.stop_bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616
comm.type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614
cradle.comm.baud . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617
cradle.comm.handshake . . . . . . . . . . . . . . . . . . . . . . . 618
cutter.clean_cutter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
device.applicator.data_ready . . . . . . . . . . . . . . . . . . . . 620
device.applicator.data_ready_activation . . . . . . . . . . . . 698
device.applicator.end_print . . . . . . . . . . . . . . . . . . . . . . 621
device.applicator.error_on_pause . . . . . . . . . . . . . . . . . 699
device.applicator.feed . . . . . . . . . . . . . . . . . . . . . . . . . . 622
device.applicator.media_out . . . . . . . . . . . . . . . . . . . . . 623
device.applicator.pause . . . . . . . . . . . . . . . . . . . . . . . . 624
device.applicator.reprint . . . . . . . . . . . . . . . . . . . . . . . . 625
device.applicator.rfid_void . . . . . . . . . . . . . . . . . . . . . . . 626
device.applicator.ribbon_low . . . . . . . . . . . . . . . . . . . . . 627
device.applicator.ribbon_out . . . . . . . . . . . . . . . . . . . . . 628
device.applicator.service_required . . . . . . . . . . . . . . . . 629
device.applicator.start_print . . . . . . . . . . . . . . . . . . . . . 630
device.applicator.start_print_mode . . . . . . . . . . . . . . . . 700
device.applicator.voltage . . . . . . . . . . . . . . . . . . . . . . . . 701
device.bluetooth_installed . . . . . . . . . . . . . . . . . . . . . . 631
device.command_override.active . . . . . . . . . . . . . . . . . 632
device.command_override.add . . . . . . . . . . . . . . . . . . . 633

Programming Guide

P1099958-001

22

Alphabetical List of Set/Get/Do Commands

device.command_override.clear . . . . . . . . . . . . . . . . . . 634
device.command_override.list . . . . . . . . . . . . . . . . . . . . 635
device.company_contact . . . . . . . . . . . . . . . . . . . . . . . . 636
device.configuration_number . . . . . . . . . . . . . . . . . . . . 637
device.cpcl_synchronous_mode . . . . . . . . . . . . . . . . . . 638
device.cutter_installed . . . . . . . . . . . . . . . . . . . . . . . . . . 639
device.download_connection_timeout . . . . . . . . . . . . . . 640
device.epl_legacy_mode . . . . . . . . . . . . . . . . . . . . . . . . 641
device.feature.bluetooth_le . . . . . . . . . . . . . . . . . . . . . 643
device.feature.lighted_arrows . . . . . . . . . . . . . . . . . . . . 711
device.feature.mcr . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644
device.feature.nfc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
device.feature.ribbon_cartridge . . . . . . . . . . . . . . . . . . 646
device.friendly_name . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
device.frontpanel.feedenabled . . . . . . . . . . . . . . . . . . . . 648
device.frontpanel.key_press . . . . . . . . . . . . . . . . . . . . . 649
device.frontpanel.line1 . . . . . . . . . . . . . . . . . . . . . . . . . . 650
device.frontpanel.line2 . . . . . . . . . . . . . . . . . . . . . . . . . . 651
device.frontpanel.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . 652
device.host_identification . . . . . . . . . . . . . . . . . . . . . . . . 653
device.host_status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654
device.idle_display_format . . . . . . . . . . . . . . . . . . . . . . 657
device.idle_display_value . . . . . . . . . . . . . . . . . . . . . . 658
device.internal_wired_setting_location . . . . . . . . . . . . . 659
device.jobs_print . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660
device.languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661
device.light.cover_open_brightness . . . . . . . . . . . . . . . . 662
device.light.head_open_brightness . . . . . . . . . . . . . . . . 663
device.light.media_path_brightness . . . . . . . . . . . . . . . . 713
device.light.ribbon_path_brightness . . . . . . . . . . . . . . . 712
device.location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664
device.ltu_installed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665
device.orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666
device.pause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667
device.pmcu.revision . . . . . . . . . . . . . . . . . . . . . . . . . . 669
device.pnp_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668
device.position.accuracy . . . . . . . . . . . . . . . . . . . . . . . . 670
device.position.altitude . . . . . . . . . . . . . . . . . . . . . . . . . . 671
device.position.latitude . . . . . . . . . . . . . . . . . . . . . . . . . . 672
device.position.longitude . . . . . . . . . . . . . . . . . . . . . . . . 673
device.print_2key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
device.print_reprogram_2key . . . . . . . . . . . . . . . . . . . . 675
device.product_name_submodel . . . . . . . . . . . . . . . . . 676
device.prompted_network_reset . . . . . . . . . . . . . . . . . 677
device.reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678
device.restore_defaults . . . . . . . . . . . . . . . . . . . . . . . . . 679
device.rewinder_installed . . . . . . . . . . . . . . . . . . . . . . . 680
device.save_2key . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
device.sensor_select . . . . . . . . . . . . . . . . . . . . . . . . . . 682
device.serial_number.option_board_date . . . . . . . . . . 683
device.serial_numbers.control_panel_date . . . . . . . . . 684
device.serial_numbers.mlb_date . . . . . . . . . . . . . . . . . 685
device.serial_numbers.processor . . . . . . . . . . . . . . . . . 686
device.set_clock_to_build_date . . . . . . . . . . . . . . . . . . . 687
device.slot_1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688
device.slot_2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689
device.super_host_status . . . . . . . . . . . . . . . . . . . . . . . 690
device.syslog.clear_log . . . . . . . . . . . . . . . . . . . . . . . . . 691
device.syslog.configuration . . . . . . . . . . . . . . . . . . . . . . 692
device.syslog.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . 694
device.syslog.entries . . . . . . . . . . . . . . . . . . . . . . . . . . 695
device.syslog.log_max_file_size . . . . . . . . . . . . . . . . . . 696

P1099958-001

device.syslog.save_local_file . . . . . . . . . . . . . . . . . . . . 697
device.unique_id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702
device.unpause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703
device.uptime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704
device.user_p1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705
device.user_p2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706
device.user_vars.create . . . . . . . . . . . . . . . . . . . . . . . 708
device.user_vars.set_range . . . . . . . . . . . . . . . . . . . . 707
device.xml.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710
display.backlight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714
display.backlight_on_time . . . . . . . . . . . . . . . . . . . . . . . 715
display.batch_counter . . . . . . . . . . . . . . . . . . . . . . . . . . 716
display.language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717
display.load_card . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718
display.password.level . . . . . . . . . . . . . . . . . . . . . . . . 719
display.root_wml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720
display.text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
DNP - rfid.calibration_maximum_power . . . . . . . . . . . . 869
external_wired.check . . . . . . . . . . . . . . . . . . . . . . . . . . 987
external_wired.ip.addr . . . . . . . . . . . . . . . . . . . . . . . . . . 988
external_wired.ip.arp_interval . . . . . . . . . . . . . . . . . . . . 989
external_wired.ip.default_addr_enable . . . . . . . . . . . . . 990
external_wired.ip.dhcp.cid_all . . . . . . . . . . . . . . . . . . . . 991
external_wired.ip.dhcp.cid_enable . . . . . . . . . . . . . . . . 992
external_wired.ip.dhcp.cid_prefix . . . . . . . . . . . . . . . . . 993
external_wired.ip.dhcp.cid_suffix . . . . . . . . . . . . . . . . . 994
external_wired.ip.dhcp.cid_type . . . . . . . . . . . . . . . . . . 995
external_wired.ip.gateway . . . . . . . . . . . . . . . . . . . . . . . 996
external_wired.ip.netmask . . . . . . . . . . . . . . . . . . . . . . 997
external_wired.ip.port . . . . . . . . . . . . . . . . . . . . . . . . . . 998
external_wired.ip.protocol . . . . . . . . . . . . . . . . . . . . . . 999
external_wired.ip.timeout.enable . . . . . . . . . . . . . . . . 1000
external_wired.ip.timeout.value . . . . . . . . . . . . . . . . . . 1001
external_wired.ip.v6.addr . . . . . . . . . . . . . . . . . . . . . . 1002
external_wired.ip.v6.gateway . . . . . . . . . . . . . . . . . . . 1003
external_wired.ip.v6.prefix_length . . . . . . . . . . . . . . . . 1004
external_wired.mac_addr . . . . . . . . . . . . . . . . . . . . . . 1005
external_wired.mac_raw . . . . . . . . . . . . . . . . . . . . . . . 1006
ezpl.head_close_action . . . . . . . . . . . . . . . . . . . . . . . . . 724
ezpl.label_length_max . . . . . . . . . . . . . . . . . . . . . . . . . 725
ezpl.label_sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
ezpl.manual_calibration . . . . . . . . . . . . . . . . . . . . . . . . 727
ezpl.media_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728
ezpl.power_up_action . . . . . . . . . . . . . . . . . . . . . . . . . . 729
ezpl.print_method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730
ezpl.print_width . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
ezpl.reprint_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732
ezpl.take_label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733
ezpl.tear_off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734
file.capture_response.destination . . . . . . . . . . . . . . . . . 722
file.delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735
file.dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736
file.dir_format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737
file.run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739
file.type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738
formats.cancel_all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740
head.darkness_switch . . . . . . . . . . . . . . . . . . . . . . . . . . 743
head.darkness_switch_enable . . . . . . . . . . . . . . . . . . . 741
head.element_test . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744
head.latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745
head.resolution.in_dpi . . . . . . . . . . . . . . . . . . . . . . . . . . 723
input.capture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746

Programming Guide

1/31/18

Alphabetical List of Set/Get/Do Commands

interface.network.active.arp_interval . . . . . . . . . . . . . . . 747
interface.network.active.cable_type . . . . . . . . . . . . . . . . 748
interface.network.active.dhcp_received_host_name . . . 749
interface.network.active.gateway . . . . . . . . . . . . . . . . . . 750
interface.network.active.ip_addr . . . . . . . . . . . . . . . . . . 751
interface.network.active.mac_addr . . . . . . . . . . . . . . . . 752
interface.network.active.mac_raw . . . . . . . . . . . . . . . . . 753
interface.network.active.netmask . . . . . . . . . . . . . . . . . . 754
interface.network.active.protocol . . . . . . . . . . . . . . . . . . 755
interface.network.active.protocol_error . . . . . . . . . . . . . 756
interface.network.active.protocol_error . . . . . . . . . . . . . 760
interface.network.active.rx_errors . . . . . . . . . . . . . . . . . 757
interface.network.active.rx_packets . . . . . . . . . . . . . . . . 758
interface.network.active.server_address . . . . . . . . . . . . 759
interface.network.active.speed . . . . . . . . . . . . . . . . . . . 761
interface.network.active.tx_errors . . . . . . . . . . . . . . . . . 762
interface.network.active.tx_packets . . . . . . . . . . . . . . . . 763
interface.network.active.wins_addr . . . . . . . . . . . . . . . . 764
interface.network.settings_require_reset . . . . . . . . . . . 765
internal_wired.8021x.password . . . . . . . . . . . . . . . . . . 1007
internal_wired.8021x.peap.anonymous_identity . . . . . 1009
internal_wired.8021x.peap.validate_server_certificate 1008
internal_wired.8021x.private_key_password . . . . . . . . 1010
internal_wired.8021x.security . . . . . . . . . . . . . . . . . . . 1011
internal_wired.8021x.ttls_tunnel . . . . . . . . . . . . . . . . . 1012
internal_wired.8021x.username . . . . . . . . . . . . . . . . . . 1013
internal_wired.activity_led . . . . . . . . . . . . . . . . . . . . . 1014
internal_wired.auto_switchover . . . . . . . . . . . . . . . . . . 1015
internal_wired.enable . . . . . . . . . . . . . . . . . . . . . . . . . . 1016
internal_wired.installed . . . . . . . . . . . . . . . . . . . . . . . 1017
internal_wired.ip.addr . . . . . . . . . . . . . . . . . . . . . . . . . . 1018
internal_wired.ip.arp_interval . . . . . . . . . . . . . . . . . . . . 1019
internal_wired.ip.default_addr_enable . . . . . . . . . . . . . 1020
internal_wired.ip.dhcp.arp_verify . . . . . . . . . . . . . . . . 1021
internal_wired.ip.dhcp.cache_ip . . . . . . . . . . . . . . . . . . 1022
internal_wired.ip.dhcp.cid_all . . . . . . . . . . . . . . . . . . . . 1023
internal_wired.ip.dhcp.cid_enable . . . . . . . . . . . . . . . . 1024
internal_wired.ip.dhcp.cid_prefix . . . . . . . . . . . . . . . . . 1025
internal_wired.ip.dhcp.cid_suffix . . . . . . . . . . . . . . . . . 1026
internal_wired.ip.dhcp.cid_type . . . . . . . . . . . . . . . . . . 1027
internal_wired.ip.dhcp.lease.last_attempt . . . . . . . . . . 1028
internal_wired.ip.dhcp.lease.length . . . . . . . . . . . . . . . 1029
internal_wired.ip.dhcp.lease.server . . . . . . . . . . . . . . . 1030
internal_wired.ip.dhcp.lease.time_left . . . . . . . . . . . . . 1031
internal_wired.ip.dhcp.option12 . . . . . . . . . . . . . . . . . 1032
internal_wired.ip.dhcp.option12_format . . . . . . . . . . . 1033
internal_wired.ip.dhcp.option12_value . . . . . . . . . . . . 1034
internal_wired.ip.dhcp.requests_per_session . . . . . . . 1035
internal_wired.ip.dns.servers . . . . . . . . . . . . . . . . . . . . 1036
internal_wired.ip.gateway . . . . . . . . . . . . . . . . . . . . . . 1037
internal_wired.ip.netmask . . . . . . . . . . . . . . . . . . . . . . 1038
internal_wired.ip.port . . . . . . . . . . . . . . . . . . . . . . . . . . 1039
internal_wired.ip.port_alternate . . . . . . . . . . . . . . . . . . 1040
internal_wired.ip.port_json_config . . . . . . . . . . . . . . . 1041
internal_wired.ip.protocol . . . . . . . . . . . . . . . . . . . . . . 1042
internal_wired.ip.timeout.enable . . . . . . . . . . . . . . . . . 1043
internal_wired.ip.timeout.value . . . . . . . . . . . . . . . . . . 1044
internal_wired.ip.wins.addr . . . . . . . . . . . . . . . . . . . . 1045
internal_wired.ip.wins.permanent_source . . . . . . . . . 1046
internal_wired.mac_addr . . . . . . . . . . . . . . . . . . . . . . . 1047
internal_wired.mac_raw . . . . . . . . . . . . . . . . . . . . . . . . 1048
ip.active_network . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1077

1/31/18

ip.addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078
ip.arp_interval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1079
ip.bootp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1080
ip.dhcp.arp_verify . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1081
ip.dhcp.auto_provision_enable . . . . . . . . . . . . . . . . . . 1082
ip.dhcp.cache_ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1083
ip.dhcp.cid_all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1084
ip.dhcp.cid_enable . . . . . . . . . . . . . . . . . . . . . . . . . . . 1085
ip.dhcp.cid_prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1086
ip.dhcp.cid_suffix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1087
ip.dhcp.cid_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1088
ip.dhcp.cid_value . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1089
ip.dhcp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090
ip.dhcp.lease.last_attempt . . . . . . . . . . . . . . . . . . . . . 1091
ip.dhcp.lease.server . . . . . . . . . . . . . . . . . . . . . . . . . . 1092
ip.dhcp.lease.time_left . . . . . . . . . . . . . . . . . . . . . . . . 1093
ip.dhcp.ntp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . 1094
ip.dhcp.ntp.received_servers . . . . . . . . . . . . . . . . . . 1095
ip.dhcp.option12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1096
ip.dhcp.option12_format . . . . . . . . . . . . . . . . . . . . . . . 1097
ip.dhcp.option12_value . . . . . . . . . . . . . . . . . . . . . . . 1098
ip.dhcp.request_timeout . . . . . . . . . . . . . . . . . . . . . . . 1099
ip.dhcp.requests_per_session . . . . . . . . . . . . . . . . . . 1100
ip.dhcp.session_interval . . . . . . . . . . . . . . . . . . . . . . . 1101
ip.dhcp.user_class_id . . . . . . . . . . . . . . . . . . . . . . . . 1102
ip.dhcp.vendor_class_id . . . . . . . . . . . . . . . . . . . . . . . 1103
ip.dns.domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1104
ip.dns.servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1105
ip.firewall.whitelist_in . . . . . . . . . . . . . . . . . . . . . . . . . . . 766
ip.ftp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1106
ip.ftp.execute_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107
ip.ftp.request_password . . . . . . . . . . . . . . . . . . . . . . . 1108
ip.gateway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1109
ip.http.admin_name . . . . . . . . . . . . . . . . . . . . . . . . . . . 1110
ip.http.admin_password . . . . . . . . . . . . . . . . . . . . . . . 1111
ip.http.custom_link_name . . . . . . . . . . . . . . . . . . . . . . 1112
ip.http.custom_link_url . . . . . . . . . . . . . . . . . . . . . . . . 1113
ip.http.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1114
ip.http.faq_url . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115
ip.http.port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1116
ip.https.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768
ip.https.port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
ip.lpd.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1117
ip.mac_raw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1118
ip.mirror.appl_path . . . . . . . . . . . . . . . . . . . . . . . . . . . 1119
ip.mirror.auto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1120
ip.mirror.error_retry . . . . . . . . . . . . . . . . . . . . . . . . . . 1121
ip.mirror.feedback.auto . . . . . . . . . . . . . . . . . . . . . . . 1122
ip.mirror.feedback.freq . . . . . . . . . . . . . . . . . . . . . . . . 1123
ip.mirror.feedback.odometer . . . . . . . . . . . . . . . . . . . 1124
ip.mirror.feedback.path . . . . . . . . . . . . . . . . . . . . . . . 1125
ip.mirror.fetch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1126
ip.mirror.freq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1127
ip.mirror.freq_hours . . . . . . . . . . . . . . . . . . . . . . . . . . 1128
ip.mirror.interface . . . . . . . . . . . . . . . . . . . . . . . . . . . 1129
ip.mirror.last_error . . . . . . . . . . . . . . . . . . . . . . . . . . . 1130
ip.mirror.last_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1131
ip.mirror.mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1132
ip.mirror.password . . . . . . . . . . . . . . . . . . . . . . . . . . . 1133
ip.mirror.path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1134
ip.mirror.reset_delay . . . . . . . . . . . . . . . . . . . . . . . . . 1135
ip.mirror.server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1136

Programming Guide

P1099958-001

23

24

Alphabetical List of Set/Get/Do Commands

ip.mirror.success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1137
ip.mirror.success_time . . . . . . . . . . . . . . . . . . . . . . . . 1138
ip.mirror.username . . . . . . . . . . . . . . . . . . . . . . . . . . . 1139
ip.mirror.version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1140
ip.netmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141
ip.ntp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1142
ip.ntp.log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1143
ip.ntp.servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1144
ip.ping_gateway_interval . . . . . . . . . . . . . . . . . . . . . . . . 770
ip.pop3.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1145
ip.pop3.password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1146
ip.pop3.poll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1147
ip.pop3.print_body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771
ip.pop3.print_headers . . . . . . . . . . . . . . . . . . . . . . . . . . 772
ip.pop3.save_attachments . . . . . . . . . . . . . . . . . . . . . . . 773
ip.pop3.server_addr . . . . . . . . . . . . . . . . . . . . . . . . . . . 1148
ip.pop3.username . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1149
ip.pop3.verbose_headers . . . . . . . . . . . . . . . . . . . . . . . 774
ip.port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1150
ip.port_alternate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1151
ip.port_json_config . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1152
ip.port_single_conn . . . . . . . . . . . . . . . . . . . . . . . . . . 1153
ip.port_single_conn_idle_timeout . . . . . . . . . . . . . . . 1154
ip.primary_network . . . . . . . . . . . . . . . . . . . . . . . . . . . 1155
ip.smtp.domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1156
ip.smtp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1157
ip.smtp.server_addr . . . . . . . . . . . . . . . . . . . . . . . . . . . 1158
ip.snmp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162
ip.snmp.get_community_name . . . . . . . . . . . . . . . . . . 1159
ip.snmp.set_community_name . . . . . . . . . . . . . . . . . . 1160
ip.snmp.trap_community_name . . . . . . . . . . . . . . . . . . 1161
ip.tcp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1163
ip.tcp.nagle_algorithm . . . . . . . . . . . . . . . . . . . . . . . . 1165
ip.telnet.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1164
ip.tls.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775
ip.tls.port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777
ip.tls.port_json_config . . . . . . . . . . . . . . . . . . . . . . . . . . 778
ip.udp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1166
log.reboot.code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779
log.reboot.codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 780
log.reboot.reason . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781
log.reboot.report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782
mcr.cancel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784
mcr.crypt.algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . 786
mcr.crypt.enabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783
mcr.crypt.key_mgmt . . . . . . . . . . . . . . . . . . . . . . . . . . . 785
mcr.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787
mcr.revision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 788
media.bar_location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 789
media.cartridge.part_number . . . . . . . . . . . . . . . . . . . . . 790
media.cut_now . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791
media.darkness_mode . . . . . . . . . . . . . . . . . . . . . . . . . . 792
media.draft_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793
media.feed_skip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 794
media.media_low.external . . . . . . . . . . . . . . . . . . . . . . . 795
media.media_low.warning . . . . . . . . . . . . . . . . . . . . . . . 796
media.part_number . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797
media.present.cut_amount . . . . . . . . . . . . . . . . . . . . . . 798
media.present.cut_margin . . . . . . . . . . . . . . . . . . . . . . . 803
media.present.eject . . . . . . . . . . . . . . . . . . . . . . . . . . . . 799
media.present.length_addition . . . . . . . . . . . . . . . . . . . . 800
media.present.loop_length . . . . . . . . . . . . . . . . . . . . . . . 801

P1099958-001

media.present.loop_length_max . . . . . . . . . . . . . . . . . .
media.present.present_timeout . . . . . . . . . . . . . . . . . . .
media.present.present_type . . . . . . . . . . . . . . . . . . . . .
media.printmode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
media.serial_number . . . . . . . . . . . . . . . . . . . . . . . . . . .
media.speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
memory.flash_free . . . . . . . . . . . . . . . . . . . . . . . . . . . .
memory.flash_size . . . . . . . . . . . . . . . . . . . . . . . . . . . .
memory.ram_free . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
memory.ram_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
netmanage.avalanche.available_port . . . . . . . . . . . . .
netmanage.avalanche.startup_update . . . . . . . . . . . . .
netmanage.avalanche.agent_addr . . . . . . . . . . . . . . . .
netmanage.avalanche.available_agent . . . . . . . . . . . . .
netmanage.avalanche.encryption_type . . . . . . . . . . . .
netmanage.avalanche.interval . . . . . . . . . . . . . . . . . . .
netmanage.avalanche.interval_update . . . . . . . . . . . . .
netmanage.avalanche.model_name . . . . . . . . . . . . . . .
netmanage.avalanche.set_property . . . . . . . . . . . . . . .
netmanage.avalanche.tcp_connection_timeout . . . . . .
netmanage.avalanche.terminal_id . . . . . . . . . . . . . . .
netmanage.avalanche.text_msg.beep . . . . . . . . . . . . .
netmanage.avalanche.text_msg.display . . . . . . . . . . .
netmanage.avalanche.text_msg.print . . . . . . . . . . . . .
netmanage.avalanche.udp_timeout . . . . . . . . . . . . . . .
netmanage.error_code . . . . . . . . . . . . . . . . . . . . . . . .
netmanage.state_code . . . . . . . . . . . . . . . . . . . . . . . .
netmanage.status_code . . . . . . . . . . . . . . . . . . . . . . .
odometer.cut_marker_count . . . . . . . . . . . . . . . . . . . .
odometer.headclean . . . . . . . . . . . . . . . . . . . . . . . . . .
odometer.headnew . . . . . . . . . . . . . . . . . . . . . . . . . . .
odometer.label_dot_length . . . . . . . . . . . . . . . . . . . . . .
odometer.latch_open_count . . . . . . . . . . . . . . . . . . . . .
odometer.media_marker_count . . . . . . . . . . . . . . . . .
odometer.media_marker_count1 . . . . . . . . . . . . . . . . .
odometer.media_marker_count2 . . . . . . . . . . . . . . . . .
odometer.retracts_count . . . . . . . . . . . . . . . . . . . . . . . .
odometer.rfid.valid_resettable . . . . . . . . . . . . . . . . . . . .
odometer.rfid.void_resettable . . . . . . . . . . . . . . . . . . . .
odometer.total_cuts . . . . . . . . . . . . . . . . . . . . . . . . . .
odometer.total_label_count . . . . . . . . . . . . . . . . . . . . .
odometer.total_print_length . . . . . . . . . . . . . . . . . . . . .
odometer.user_label_count . . . . . . . . . . . . . . . . . . . . .
odometer.user_label_count[1|2] . . . . . . . . . . . . . . . . . .
parallel_port.mode . . . . . . . . . . . . . . . . . . . . . . . . . . . .
parallel_port.present . . . . . . . . . . . . . . . . . . . . . . . . . . .
power.average_current . . . . . . . . . . . . . . . . . . . . . . . . .
power.battery_led_blink_rate . . . . . . . . . . . . . . . . . . .
power.battery_led_enable . . . . . . . . . . . . . . . . . . . . . .
power.battery_led_off_duration . . . . . . . . . . . . . . . . . .
power.battery_led_on_duration . . . . . . . . . . . . . . . . . .
power.battery_replacement_cyclecount_threshold . . .
power.dtr_power_off . . . . . . . . . . . . . . . . . . . . . . . . . . .
power.energy_star.enable . . . . . . . . . . . . . . . . . . . . . . .
power.energy_star.timeout . . . . . . . . . . . . . . . . . . . . . .
power.label_queue.shutdown . . . . . . . . . . . . . . . . . . .
power.power_on_mode . . . . . . . . . . . . . . . . . . . . . . . . .
power.shutdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
print.tone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
print.troubleshooting_label_print . . . . . . . . . . . . . . . . . .
rfid.adaptive_antenna . . . . . . . . . . . . . . . . . . . . . . . . . .
rfid.antenna_sweep . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Programming Guide

802
804
805
806
809
808
810
811
812
813
816
822
814
815
817
818
819
820
821
823
824
825
826
827
828
829
830
831
832
833
834
835
847
836
837
838
839
840
841
842
844
843
845
846
848
849
851
852
853
854
855
856
857
859
861
862
863
864
865
866
867
868

1/31/18

Alphabetical List of Set/Get/Do Commands

rfid.country_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 870
rfid.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 871
rfid.error.response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872
rfid.hop_table_version . . . . . . . . . . . . . . . . . . . . . . . . . . 873
rfid.position.program . . . . . . . . . . . . . . . . . . . . . . . . . . . 874
rfid.reader_1.antenna_port . . . . . . . . . . . . . . . . . . . . . . 876
rfid.reader_1.firmware_version . . . . . . . . . . . . . . . . . . . 882
rfid.reader_1.hardware_version . . . . . . . . . . . . . . . . . . . 883
rfid.reader_1.model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884
rfid.reader_1.power.read . . . . . . . . . . . . . . . . . . . . . . . . 879
rfid.reader_1.power.single_power . . . . . . . . . . . . . . . . . 881
rfid.reader_1.power.write . . . . . . . . . . . . . . . . . . . . . . . . 880
rfid.recipe_version . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885
rfid.region_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 886
rfid.tag.calibrate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 887
rfid.tag.data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 888
rfid.tag.read.content . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889
rfid.tag.read.execute . . . . . . . . . . . . . . . . . . . . . . . . . . . 890
rfid.tag.read.result_line1 . . . . . . . . . . . . . . . . . . . . . . . . 891
rfid.tag.read.result_line1_alternate . . . . . . . . . . . . . . . . 893
rfid.tag.read.result_line2 . . . . . . . . . . . . . . . . . . . . . . . . 892
rfid.tag.read.result_line2_alternate . . . . . . . . . . . . . . . . 894
rfid.tag.test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895
rfid.tag.test.content . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896
rfid.tag.test.execute . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897
rfid.tag.test.result_line1 . . . . . . . . . . . . . . . . . . . . . . . . . 898
rfid.tag.test.result_line2 . . . . . . . . . . . . . . . . . . . . . . . . . 899
rfid.tag.type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 900
ribbon.part_number . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904
ribbon.serial_number . . . . . . . . . . . . . . . . . . . . . . . . . . . 903
rtc.timezone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 905
sensor.cover_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . 907
sensor.paper_supply . . . . . . . . . . . . . . . . . . . . . . . . . . 908
sensor.peeler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 909
sensor.self_adjusting_enable . . . . . . . . . . . . . . . . . . . . 911
usb.device.device_id_string . . . . . . . . . . . . . . . . . . . . . . 912
usb.device.device_unique_id . . . . . . . . . . . . . . . . . . . . 913
usb.device.device_version . . . . . . . . . . . . . . . . . . . . . . . 914
usb.device.manufacturer_string . . . . . . . . . . . . . . . . . . . 915
usb.device.product_id . . . . . . . . . . . . . . . . . . . . . . . . . . 916
usb.device.product_string . . . . . . . . . . . . . . . . . . . . . . . 917
usb.device.serial_string . . . . . . . . . . . . . . . . . . . . . . . . . 918
usb.device.vendor_id . . . . . . . . . . . . . . . . . . . . . . . . . . . 919
usb.halt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 920
usb.host.fn_field_data . . . . . . . . . . . . . . . . . . . . . . . . . . 921
usb.host.fn_last_field . . . . . . . . . . . . . . . . . . . . . . . . . . . 922
usb.host.hid_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 923
usb.host.keyboard_input . . . . . . . . . . . . . . . . . . . . . . . . 924
usb.host.lock_out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925
usb.host.mass_storage_count . . . . . . . . . . . . . . . . . . . . 926
usb.host.read_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927
usb.host.read_list_print_delay . . . . . . . . . . . . . . . . . . . . 928
usb.host.template_list . . . . . . . . . . . . . . . . . . . . . . . . . . 929
usb.host.template_print_amount . . . . . . . . . . . . . . . . . . 930
usb.host.write_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931
usb.mirror.appl_path . . . . . . . . . . . . . . . . . . . . . . . . . . . 932
usb.mirror.auto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 933
usb.mirror.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934
usb.mirror.enabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935
usb.mirror.error_retry . . . . . . . . . . . . . . . . . . . . . . . . . . . 936
usb.mirror.feedback.auto . . . . . . . . . . . . . . . . . . . . . . . . 937
usb.mirror.feedback.odometer . . . . . . . . . . . . . . . . . . . . 938

1/31/18

usb.mirror.feedback.path . . . . . . . . . . . . . . . . . . . . . . . 939
usb.mirror.fetch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 940
usb.mirror.last_error . . . . . . . . . . . . . . . . . . . . . . . . . . . 941
usb.mirror.last_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942
usb.mirror.path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943
usb.mirror.reset_delay . . . . . . . . . . . . . . . . . . . . . . . . . 944
usb.mirror.success . . . . . . . . . . . . . . . . . . . . . . . . . . . . 945
usb.mirror.success_time . . . . . . . . . . . . . . . . . . . . . . . . 946
weblink.cloud_connect.enable . . . . . . . . . . . . . . . . . . 1167
weblink.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1168
weblink.ip.conn[1|2].authentication.add . . . . . . . . . . 1169
weblink.ip.conn[1|2].authentication.entries
. . . . . . . 1171
weblink.ip.conn[1|2].authentication.remove . . . . . . . . 1172
weblink.ip.conn[1|2].location
. . . . . . . . . . . . . . . . . 1173
weblink.ip.conn[1|2].maximum_simultaneous_
connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1175
weblink.ip.conn[1|2].num_connections
. . . . . . . . . 1174
weblink.ip.conn[1|2].proxy
. . . . . . . . . . . . . . . . . . . 1176
weblink.ip.conn[1|2].retry_interval
. . . . . . . . . . . . . . 1178
weblink.ip.conn[1|2].retry_interval_random_max . . . . 1182
weblink.ip.conn[1|2].test.location
. . . . . . . . . . . . . . 1179
weblink.ip.conn[1|2].test.retry_interval
. . . . . . . . . . 1181
weblink.ip.conn[1|2].test.test_on
. . . . . . . . . . . . . . . 1184
weblink.logging.clear
. . . . . . . . . . . . . . . . . . . . . . 1185
weblink.logging.entries
. . . . . . . . . . . . . . . . . . . . . 1186
weblink.logging.max_entries
. . . . . . . . . . . . . . . . 1187
weblink.printer_reset_required
. . . . . . . . . . . . . . . . 1188
weblink.restore_defaults
. . . . . . . . . . . . . . . . . . . . 1189
weblink.zebra_connector.authentication.add . . . . . . 1190
weblink.zebra_connector.authentication.entries
. . . 1192
weblink.zebra_connector.authentication.remove . . . 1193
weblink.zebra_connector.enable . . . . . . . . . . . . . . . . 1194
weblink.zebra_connector.proxy . . . . . . . . . . . . . . . . . 1195
weblink.zebra_connector.version . . . . . . . . . . . . . . . . 1197
wlan.11ac.80mhz_enable . . . . . . . . . . . . . . . . . . . . . . 1199
wlan.11d.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1200
wlan.11n.20mhz_only . . . . . . . . . . . . . . . . . . . . . . . . . 1201
wlan.11n.aggregation . . . . . . . . . . . . . . . . . . . . . . . . . 1202
wlan.11n.greenfield . . . . . . . . . . . . . . . . . . . . . . . . . . . 1203
wlan.11n.rifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1204
wlan.11n.short_gi_20mhz . . . . . . . . . . . . . . . . . . . . . . 1206
wlan.11n.short_gi_40mhz . . . . . . . . . . . . . . . . . . . . . . 1205
wlan.8021x.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . 1207
wlan.8021x.validate_peap_server_certificate . . . . . . . 1208
wlan.active_channels . . . . . . . . . . . . . . . . . . . . . . . . . 1209
wlan.adhoc_last_channel . . . . . . . . . . . . . . . . . . . . . 1210
wlan.adhocautomode . . . . . . . . . . . . . . . . . . . . . . . . . 1215
wlan.adhocchannel . . . . . . . . . . . . . . . . . . . . . . . . . . . 1216
wlan.allowed_band . . . . . . . . . . . . . . . . . . . . . . . . . . . 1214
wlan.associated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1217
wlan.auth_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1218
wlan.authenticated . . . . . . . . . . . . . . . . . . . . . . . . . . 1211
wlan.authentication_error . . . . . . . . . . . . . . . . . . . . . 1212
wlan.available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1213
wlan.bssid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1219
wlan.channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220
wlan.channel_mask . . . . . . . . . . . . . . . . . . . . . . . . . . . 1221
wlan.country_code . . . . . . . . . . . . . . . . . . . . . . . . . . . 1222
wlan.current_tx_rate . . . . . . . . . . . . . . . . . . . . . . . . . . 1223
wlan.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1224
wlan.encryption_index . . . . . . . . . . . . . . . . . . . . . . . . . 1225
wlan.encryption_key[1|2|3|4]1 . . . . . . . . . . . . . . . . . . . 1226

Programming Guide

P1099958-001

25

26

Alphabetical List of Set/Get/Do Commands

wlan.encryption_mode . . . . . . . . . . . . . . . . . . . . . . . . . 1227
wlan.essid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1228
wlan.firmware_version . . . . . . . . . . . . . . . . . . . . . . . . . 1229
wlan.ip.addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1230
wlan.ip.arp_interval . . . . . . . . . . . . . . . . . . . . . . . . . . . 1231
wlan.ip.default_addr_enable . . . . . . . . . . . . . . . . . . . . 1232
wlan.ip.dhcp.arp_verify . . . . . . . . . . . . . . . . . . . . . . . 1233
wlan.ip.dhcp.cache_ip . . . . . . . . . . . . . . . . . . . . . . . . . 1234
wlan.ip.dhcp.cid_all . . . . . . . . . . . . . . . . . . . . . . . . . . . 1235
wlan.ip.dhcp.cid_enable . . . . . . . . . . . . . . . . . . . . . . . . 1236
wlan.ip.dhcp.cid_prefix . . . . . . . . . . . . . . . . . . . . . . . . . 1237
wlan.ip.dhcp.cid_suffix . . . . . . . . . . . . . . . . . . . . . . . . . 1238
wlan.ip.dhcp.cid_type . . . . . . . . . . . . . . . . . . . . . . . . . . 1239
wlan.ip.dhcp.lease.last_attempt . . . . . . . . . . . . . . . . . . 1240
wlan.ip.dhcp.lease.length . . . . . . . . . . . . . . . . . . . . . . . 1241
wlan.ip.dhcp.lease.server . . . . . . . . . . . . . . . . . . . . . . 1242
wlan.ip.dhcp.lease.time_left . . . . . . . . . . . . . . . . . . . . . 1243
wlan.ip.dhcp.option12 . . . . . . . . . . . . . . . . . . . . . . . . . 1244
wlan.ip.dhcp.option12_format . . . . . . . . . . . . . . . . . . . 1245
wlan.ip.dhcp.option12_value . . . . . . . . . . . . . . . . . . . . 1246
wlan.ip.dhcp.request_timeout . . . . . . . . . . . . . . . . . . . 1247
wlan.ip.dhcp.requests_per_session . . . . . . . . . . . . . . . 1248
wlan.ip.dhcp.session_interval . . . . . . . . . . . . . . . . . . . 1249
wlan.ip.dns.servers . . . . . . . . . . . . . . . . . . . . . . . . . . . 1250
wlan.ip.gateway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1251
wlan.ip.netmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1252
wlan.ip.port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1253
wlan.ip.port_alternate . . . . . . . . . . . . . . . . . . . . . . . . . . 1254
wlan.ip.port_json_config . . . . . . . . . . . . . . . . . . . . . . 1255
wlan.ip.protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1256
wlan.ip.timeout.enable . . . . . . . . . . . . . . . . . . . . . . . . . 1257
wlan.ip.timeout.value . . . . . . . . . . . . . . . . . . . . . . . . . . 1258
wlan.ip.wins.addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1259
wlan.ip.wins.permanent_source . . . . . . . . . . . . . . . . . 1260
wlan.keep_alive.enable . . . . . . . . . . . . . . . . . . . . . . . . 1261
wlan.keep_alive.timeout . . . . . . . . . . . . . . . . . . . . . . . . 1262
wlan.kerberos.kdc . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1263
wlan.kerberos.mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 1264
wlan.kerberos.password . . . . . . . . . . . . . . . . . . . . . . . 1265
wlan.kerberos.realm . . . . . . . . . . . . . . . . . . . . . . . . . . . 1266
wlan.kerberos.username . . . . . . . . . . . . . . . . . . . . . . . 1267
wlan.leap_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1268
wlan.leap_password . . . . . . . . . . . . . . . . . . . . . . . . . . 1269
wlan.leap_username . . . . . . . . . . . . . . . . . . . . . . . . . . 1270
wlan.mac_addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1271
wlan.mac_raw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1272
wlan.operating_mode . . . . . . . . . . . . . . . . . . . . . . . . . . 1273
wlan.password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274
wlan.permitted_channels . . . . . . . . . . . . . . . . . . . . . . . 1275
wlan.poor_signal_threshold . . . . . . . . . . . . . . . . . . . . . 1276
wlan.preamble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1277
wlan.private_key_password . . . . . . . . . . . . . . . . . . . . . 1278
wlan.region_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1279
wlan.roam.interchannel_delay . . . . . . . . . . . . . . . . . . . 1280
wlan.roam.interval . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1281
wlan.roam.max_chan_scan_time . . . . . . . . . . . . . . . . 1282
wlan.roam.max_fail . . . . . . . . . . . . . . . . . . . . . . . . . . . 1283

P1099958-001

wlan.roam.rssi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1284
wlan.roam.signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1285
wlan.rts_cts_enabled . . . . . . . . . . . . . . . . . . . . . . . . . 1286
wlan.security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1287
wlan.signal_noise . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1294
wlan.signal_quality . . . . . . . . . . . . . . . . . . . . . . . . . . . 1295
wlan.signal_strength . . . . . . . . . . . . . . . . . . . . . . . . . . 1296
wlan.station_name . . . . . . . . . . . . . . . . . . . . . . . . . . . 1297
wlan.tx_power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1298
wlan.tx_rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1299
wlan.user_channel_list . . . . . . . . . . . . . . . . . . . . . . . . 1300
wlan.username . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1301
wlan.waveagent.enable . . . . . . . . . . . . . . . . . . . . . . . . 1302
wlan.waveagent.udp_port . . . . . . . . . . . . . . . . . . . . . . 1303
wlan.wep.auth_type . . . . . . . . . . . . . . . . . . . . . . . . . . 1304
wlan.wep.index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1305
wlan.wep.key_format . . . . . . . . . . . . . . . . . . . . . . . . . 1311
wlan.wep.key1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1306
wlan.wep.key2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1307
wlan.wep.key3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1308
wlan.wep.key4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1309
wlan.wpa.psk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1310
wlan.wpa.timecheck . . . . . . . . . . . . . . . . . . . . . . . . . . 1315
wlan.wpa.wpa_version . . . . . . . . . . . . . . . . . . . . . . . 1316
zbi.control.add_breakpoint . . . . . . . . . . . . . . . . . . . . . . 947
zbi.control.break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948
zbi.control.clear_breakpoints . . . . . . . . . . . . . . . . . . . . 949
zbi.control.delete_breakpoint . . . . . . . . . . . . . . . . . . . . 950
zbi.control.line_number . . . . . . . . . . . . . . . . . . . . . . . . . 951
zbi.control.restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 952
zbi.control.run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 953
zbi.control.step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 954
zbi.control.terminate . . . . . . . . . . . . . . . . . . . . . . . . . . . 955
zbi.control.variable_name . . . . . . . . . . . . . . . . . . . . . . . 956
zbi.control.variable_value . . . . . . . . . . . . . . . . . . . . . . . 957
zbi.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 958
zbi.key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 959
zbi.last_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 960
zbi.program_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 961
zbi.reseller_key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 962
zbi.revision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 963
zbi.running_program_name . . . . . . . . . . . . . . . . . . . . . 964
zbi.start_info.execute . . . . . . . . . . . . . . . . . . . . . . . . . . 965
zbi.start_info.file_name . . . . . . . . . . . . . . . . . . . . . . . . . 966
zbi.start_info.memory_alloc . . . . . . . . . . . . . . . . . . . . . 967
zbi.state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 968
zpl.caret . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 969
zpl.control_character . . . . . . . . . . . . . . . . . . . . . . . . . . . 970
zpl.delimiter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 971
zpl.label_length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 972
zpl.left_position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 973
zpl.relative_darkness . . . . . . . . . . . . . . . . . . . . . . . . . . 981
zpl.system_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974
zpl.system_status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976
zpl.zpl_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 979
zpl.zpl_override . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 980

Programming Guide

1/31/18

About This
Document

This section provides an overview of the entire document, contact information, and details on
document structure and organization.

Contents
Contact Zebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Who Should Use This Document. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
How This Document Is Organized . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

1/31/18

Programming Guide

P1099958-001

28

About This Document
Contact Zebra

Contact Zebra
To contact Zebra or for technical support, visit www.zebra.com/contact.

Introduction
This guide is the unabridged, alphabetical reference of programming commands supported in the
firmware. This includes all ZPL commands and SGD commands.

Important • These are important points to note when using ZPL and SGD commands:
•
•

ZPL and SGD commands should be sent to the printer as separate files.
Certain settings can be controlled by both ZPL and SGD. Configuration changes made in ZPL
can affect configuration changes made in SGD.

Firmware You can get the printer’s firmware version by printing out a configuration label. For
instructions to do so, see your printer’s user guide.

Note • For firmware upgrades go to: www.zebra.com.
Important • These are important points to note when using a Zebra G-Series printer:
•

•

You can send instructions to the printer using multiple programming languages: EPL, ZPL, or
SGD. EPL and ZPL commands configure the printer, print labels, and get device status
information. SGD commands set and get configuration details. These three languages can be
used without the need to send the printer instructions to switch from one language to another.
EPL, ZPL, and SGD commands must be sent to the printer as separate files. They cannot be
used together in one format, or set of commands. For example, if you send a series of SGD
commands to the printer and they are followed by a printable format, this needs to be done
using separate files.

Many text editors and word processors can recreate most examples in this guide in ASCII format.
However, for other encodings such as Unicode, a text editor such as Microsoft Notepad is needed.
If there are any terms used in this guide that you need clarification on, see the Glossary
on page 1519.

Who Should Use This Document
This Programming Guide is for programmers who are familiar working with programming languages.

P1099958-001

Programming Guide

1/31/18

About This Document
How This Document Is Organized

How This Document Is Organized
The Programming Guide is set up as follows:

1/31/18

Section

Description

About This Document

Provides a high-level overview about this guide and
Zebra Programming Language (ZPL).

ZPL Commands

Provides an alphabetical, detailed description of each
ZPL command.

ZPL RFID Commands

Provides an alphabetical, detailed description of each
ZPL RFID command, and some examples of how to
use them.

ZPL Wireless Commands

Provides new and modified ZPL commands for the
wireless print server.

ZBI Commands

Provides details about the Zebra Basic Interpreter, its
commands, descriptions, formats, and parameters.

SGD Printer Commands

Provides a high-level overview of printer setting
Set / Get / Do (SGD) commands.

SGD Wired Commands

Provides a high-level overview of the wired
Set / Get / Do (SGD) commands.

SGD Wireless Commands

Provides a high-level overview of the wireless
Set / Get / Do (SGD) commands.

Appendixes

The appendixes include:
Zebra Code Pages
ASCII
Fonts and Bar Codes
Mod 10 and Mod 43 Check Digits
Error Detection Protocol
ZB64 Encoding and Compression
Field Interactions
Real Time Clock
ZBI Character Set
SGD Command Support
Firmware Features
Mirror
Wireless Markup Language (WML)
Using Weblink
HTTP POST Alerts
Advanced Techniques

Glossary

Glossary of terms.

Programming Guide

P1099958-001

29

30

About This Document
How This Document Is Organized

P1099958-001

Programming Guide

1/31/18

ZPL Commands

This section contains the complete alphabetical listing of ZPL II commands.
The first paragraph(s) provides an explanation of how the command is used, what it is capable of,
and any defining characteristics it has.
The format explains how the command is syntactically arranged and what parameters it contains.
For example, the ^B8 command prints a EAN-8 bar code. The format of the ^B8 command is:
^B8o,h,f,g. It is arranged with the caret symbol (^), the command code (B8), and the parameters
and are replaced with supported values.
In the parameters table, if a command has values that can be defined to make its function more
specific, these are outlined as parameters.
Still using the ^B8 example, the h parameter is defined as:

h = bar code height
(in dots)

Values: 1 to 32000
Default: value set by ^BY

If the command has no parameters – for example ~JA (Cancel All) – the parameter heading is
removed, indicating that the format of the command (~JA) is acceptable ZPL II code.
Example: When the command is best clarified in context, an example of the
ZPL II code is provided. Text indicating exact code entered is printed in an easily recognizable
Courier font. An example of code using the ^B8 command looks like this:

^XA
^FO50,50
^B8N,100,Y,N
^FD1234567^FS
^XZ
Notice that the ^B8 parameter letters have been replaced with real values that apply to the
command. In this example N,100,Y,N have been entered.
A Comments section (if used) will show notes that are of value to a programmer, warnings of
potential command interactions, or command-specific information that should be taken into
consideration.

1/31/18

Programming Guide

P1099958-001

32

ZPL Commands
Basic ZPL Exercises and Examples

Example:

This command works only when the printer is idle, or This command
is ignored if a value exceeds the parameter limits.
Comments are also included next to parameters if they apply directly to a particular setting.

Basic ZPL Exercises and Examples
The purpose of these exercises is to introduce basic ZPL commands to novice ZPL users.

Make sure this checklist is complete:
 Load the printer with labels that are big enough to give you ample space to work
with.
 Print a configuration label (CANCEL test).
 Look at the configuration label and make sure that the LEFT POSITION is set to 000
and LABEL TOP is set to 000.
 Determine the printer’s resolution. It is listed on the configuration label. 8/MM =
200 dpi, 12/MM = 300 dpi and 24/MM = 600 dpi.

Tips
These are some tips when using ZPL:

•

Use the DOS text editor to write ZPL files.

•

Save the file as a .txt file and copy it to the printer from DOS command line.

Before you begin
Some things that are important to understand before you begin are:
• 200 dpi means the resolution of the printhead is 200 dots per inch. If you program the printer to
draw a line 100 dots long that equals a half inch. 100 dots on a
300 dpi printer prints a line 1/3 inch long.
• The home position that all your coordinates are referencing is at the left-hand trailing edge of
the label as the label comes out of the printer. (There are some exceptions to this.)

Exercises
The exercises start simple and gradually progress to give you an opportunity to try a variety of
commonly used ZPL commands. Not all commands are covered, but this should be a good core of
commands to learn. Some commands may not be supported due to the firmware version in your
printer.

Exercise 1

This exercise shows you how to specify a location for an entered name.
1. Print your name on the label.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
Basic ZPL Exercises and Examples

2. Start by printing just your name on the label. Use this format as a model:

Important • Your name goes where you see xxxxxxxxxxx in the second line of code.

3. Send this format to the printer:

1

^XA
^FO50,50^ADN,36,20^FDxxxxxxxxxxx
^FS
^XZ
5

2
3
4
1
2
3
4
5

Every format starts with the ^XA command
^FO (field origin) command
^FS (field separator) command
Every format ends with the ^XZ command
^FD (field data) command

4. When the label prints correctly, alter the first number after the ^FOx. See how that

change affects the print position. Alter the second number after the ^FO50,x and see
how that the print position.

Font instruction
^ADN

1. Alter the numbers after the ^ADN,x,x command.

•

18,10 is the smallest size you can make the D font.

•

The first number is the height of the font in dots. The second number is the width in
dots.

•

You can use direct multiples up to ten times that size as a maximum.
Example: 180,100 is the largest you can make the D font.

•

25,18 would not be a valid size. The printer rounds to the next recognizable size.

2. Check the font matrices tables for other fonts to try. See Fonts and Bar Codes

on page 1335.
3. Try the zero scalable font ^A0N,x,x.

This font is scalable, and you can choose any height and width.

Rotation Commands
1. Change ^ADN to ^ADR, and then ^ADI, and then ^ADB.

See how the print position changes.
2. Add more fields.

1/31/18

Programming Guide

P1099958-001

33

34

ZPL Commands
Basic ZPL Exercises and Examples

3. Add two more fields to print directly under your name using the ^ADN,36,20 font and

size:
Your street address
Your city, state, zip
4. You must add two more lines of code that start off with:

^XA
^FO50,50^ADN,36,20^FDxxxxxxxxxxx^FS
^FO
(fill in the rest)
^FO
(fill in the rest)
^XZ
Make sure all these fields print in the same font and size and left side of fields has same vertical
alignment.

Your name
1200 W Main Street
Anytown, Il 60061

Special Effects commands
The Graphic Box or ^GB command or is used in some of the speical effects commands.

Reverse Printing a Field
1. Write the following format and send to the printer:

^XA
^PR1
^FO100,100
^GB70,70,70,,3^FS
^FO200,100
^GB70,70,70,,3^FS
^FO300,100
^GB70,70,70,,3^FS
^FO400,100
^GB70,70,70,,3^FS
^FO107,110^CF0,70,93
^FR^FDREVERSE^FS
^XZ
2. To see the effects, remove:

^FR^FDREVERSE^FS
3. To see the effects, try removing one of the ^GB lines of code.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
Basic ZPL Exercises and Examples

Label Reverse Print
1. Write the following format and send to the printer:

^XA^LRY
^FO100,50
^GB195,203,195^FS
^FO180,110^CFG
^FDLABEL^FS
^FO130,170
^FDREVERSE^FS
^XZ
2. To see the effects, remove:

^GB195,203,195^FS

Mirror Image of Label
1. Write the following format and send to the printer:

^XA^PMY
^FO100,100
^CFG
^FDMIRROR^FS
^FO100,160
^FDIMAGE^FS
^XZ
2. To see the effects, in the first line of code change ^PMY to ^PMN.

Print Orientation
1. Write the following format and send to the printer:

^XA^CFD
^POI
^LH330,10
^FO50,50
^FDZEBRA TECHNOLOGIES^FS
^FO50,75
^FDVernon Hills, IL^FS
^XZ
2. To see the effects, in the second line of code change ^POI to ^PON.

1/31/18

Programming Guide

P1099958-001

35

36

ZPL Commands
Basic ZPL Exercises and Examples

Exercise 2

Boxes and lines
1. Use the address format from Exercise 1.
2. Add this new line to your existing format:

^FO50,200^GB200,200,2^FS
This prints a box one wide by one inch long and the thickness of the line is 2 dots.
3. Reposition and resize the square so that it goes around the name and address uniformly.
4. Print a line by adding:

^FO50,300^GB400,1,4,^FS
This prints a horizontal line two inches wide by 4 dots thick.
5. Print a vertical line using this code:

^FO100,50^GB1,400,4^FS

Exercise 3

Bar codes — ^B3 code 39 bar code
1. Write the following format and send to the printer:

^XA
^FO50,50^B3N,N,100,Y,N^FD123456^FS
^XZ
2. Try changing each of the parameters in the ^B3 string so you can see the effects.

^B3o,e,h,f,g
^BY
Important • For valid parameter choices, see ^B3 on page 52.
3. Insert the ^BY command just before the ^B3 to see how the narrow bar width can be

altered.
^FO50,50^BY2^B3..etc ^BYx, acceptable values for x are 1 through
10
4. Alter the ratio of the narrow to wide bar.

^FO50,50^BY2,3^B3..etc ^BY2,x acceptable values for x are 2.1
through 3 in .1 increments
5. Print out a ^B3 bar code with the interpretation line on top of the bar code and the bar

code rotated 90 degrees.
6. Add a ^PQ just before the ^XZ to print several labels.

^PQ4
^XZ
^PR Print rate (in inches per second)

P1099958-001

Programming Guide

1/31/18

ZPL Commands
Basic ZPL Exercises and Examples

7. Add a ^PR command after the ^XA at the beginning of the format to change the print rate

(print speed).
^XA
^PR4 then try ^PR6 ^PRx acceptable values for x are 2 through 12
(check printer specs)
See how the print speed affects the print quality of the bar code. You may need to
increase the printer darkness setting at higher print speeds.

Exercise 4

^SN — Serial Number command
1. Send this format to the printer:

^XA
^FO100,100^ADN,36,20^SN001,1,Y^FS
^PQ3
^XZ
To vary the ^SNv,n,z to exercise increment/decrement and leading zeros functions,
consult this guide.
If your serial number contains alpha and numeric characters, you can increment or
decrement a specific segment of the data even if it is in the middle, as this sample
sequence shows:
ABCD1000EFGH, ABCD1001EFGH, ABCD1002EFGH
2. Send this file to the printer and to see how it increments the serial number. The ^SF

command can also work with alpha characters.
^XA
^FO100,100^ADN,36,20^FDABCD1000EFGH^SF%%%%dddd%%%%,10000^FS
^PQ15
^XZ
Notice how the field data character position aligns with the ^SF data string:
^
^

F
S

D
F

A
%

B
%

C
%

D
%

1
d

0
d

0
d

0
d
1
2
3

E
%
0
0
0

F
%
0
0
0

G
%
0
0
0

H
%
0
0
0

1

0

1

4

0

0

0

0

And on through…

The last label prints ABCD1014EFGH.
The % is placed in positions that you do not want to increment or decrement,
d = decimal, 10000 = increment value.
For more details on ^SF, see ^SF on page 309.

1/31/18

Programming Guide

P1099958-001

37

38

ZPL Commands
Basic ZPL Exercises and Examples

Exercise 5

Saving a template to memory. ^IS and image save and image load.

Note • This exercise helps you troubleshoot your code against the errors you see on your labels.

1. Send this format to the printer:

^XA
^FO20,30^GB750,1100,4^FS
^FO20,30^GB750,200,4^FS
^FO20,30^GB750,400,4^FS
^FO20,30^GB750,700,4^FS
^FO20,226^GB325,204,4^FS
^FO30,40^ADN,36,20^FDShip to:^FS
^FO30,260^ADN,18,10^FDPart number #^FS
^FO360,260^ADN,18,10^FDDescription:^FS
^FO30,750^ADN,36,20^FDFrom:^FS
^ISR:SAMPLE.GRF^FS
^XZ
2. Send this format:

^XA
^ILR:SAMPLE.GRF^FS
^FO150,125^ADN,36,20^FDAcme Printing^FS
^FO60,330^ADN,36,20^FD14042^FS
^FO400,330^ADN,36,20^FDScrew^FS
^FO70,480^BY4^B3N,,200^FD12345678^FS
^FO150,800^ADN,36,20^FDMacks Fabricating^FS
^XZ
In this way the template only needs to be sent one time to the printer’s memory. Subsequent formats
can be sent recalling the template and merging variable data into the template. In this exercise, the
file was saved in the printers R: memory, which is volatile.

Exercise 6

^DF and ^XF — Download format and recall format
Similar concept to ^IS and ^IL command. ^IS and ^IL processes faster in the printer than ^DF
and ^XF.
This is how the ^DF and ^XF format structure produces a label similar to the ^IS/^IL sample you
just tried.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
Basic ZPL Exercises and Examples

Figure 1 • Download and Recall Format
1

ZPL II CODE

GENERATED LABEL

^XA
^DFR:SAMPLE.GRF^FS
^FO20,30^GB750,1100,4^FS
^FO20,30^GB750,200,4^FS
^FO20,30^GB750,400,4^FS
^FO20,30^GB750,700,4^FS
^FO20,226^GB325,204,4^FS
^FO30,40^ADN,36,20^FDShip to:^FS
^FO30,260^ADN,18,10^FDPart number #^FS
^FO360,260^ADN,18,10^FDDescription:^FS
^FO30,750^ADN,36,20^FDFrom:^FS
^FO150,125^ADN,36,20^FN1^FS (ship to)
^FO60,330^ADN,36,20^FN2^FS(part num)
^FO400,330^ADN,36,20^FN3^FS(description)
^FO70,480^BY4^B3N,,200^FN4^FS(barcode)
^FO150,800^ADN,36,20^FN5^FS (from)
^XZ
^XA
^XFR:SAMPLE.GRF
^FN1^FDAcme Printing^FS
^FN2^FD14042^FS
^FN3^FDScrew^FS
^FN4^FD12345678^FS
^FN5^FDMacks Fabricating^FS
^XZ

2

1
2

Exercise 7

Download format code
Recall format call that generates the generated label in Figure 1.

Asian and Unicode Encodings
This exercise works in printers with firmware version V60.14, V50.14, or later.

In each of the following examples, the format is saved in the corresponding encoding before being
sent down to the printer and the ZPL script was made in Microsoft Notepad, a basic text editor. The
characters were inserted from the character map in Windows or typed from the keyboard.

1/31/18

Programming Guide

P1099958-001

39

40

ZPL Commands
Basic ZPL Exercises and Examples

Example: This is an example of using an Asian encoding, such as UHANGUL, with ASCII text.
Using the CI26 command tells the printer to recognize any byte less than 7F as ASCII text and
every byte above as the first byte of UHANGUAL encoding:

ZPL II CODE

GENERATED LABEL

Example: This is an example of using the Unicode encoding, UTF-8:

ZPL II CODE

GENERATED LABEL

P1099958-001

Programming Guide

1/31/18

ZPL Commands
Allowed Characters in File Names

Allowed Characters in File Names
Files on the internal printer drives (R:, E:, etc.) can be created or accessed using several different
commands (for example, ^DF, ^XF, ^TO, etc.). The names of the file can contain ONLY the
characters shown in Table 1.
Shaded areas indicate characters which cannot be used. The command and control characters
(normally ^ and ~) cannot be used unless the control characters are changed to something else
using the ^CC ~CC ZPL command.

Table 1 •
Char.

DEC

OCT

HEX

Char.

DEC

OCT

HEX

Char.

DEC

OCT

HEX

(sp)

32

0040

0x20

@

64

0100

0x40

`

96

0140

0x60

!

33

0041

0x21

A

65

0101

0x41

a

97

0141

0x61

"

34

0042

0x22

B

66

0102

0x42

b

98

0142

0x62

#

35

0043

0x23

C

67

0103

0x43

c

99

0143

0x63

$

36

0044

0x24

D

68

0104

0x44

d

100

0144

0x64

%

37

0045

0x25

E

69

0105

0x45

e

101

0145

0x65

&

38

0046

0x26

F

70

0106

0x46

f

102

0146

0x66

'

39

0047

0x27

G

71

0107

0x47

g

103

0147

0x67

(

40

0050

0x28

H

72

0110

0x48

h

104

0150

0x68

)

41

0051

0x29

I

73

0111

0x49

i

105

0151

0x69

*

42

0052

0x2a

J

74

0112

0x4a

j

106

0152

0x6a

+

43

0053

0x2b

K

75

0113

0x4b

k

107

0153

0x6b

,

44

0054

0x2c

L

76

0114

0x4c

l

108

0154

0x6c

-

45

0055

0x2d

M

77

0115

0x4d

m

109

0155

0x6d

.

46

0056

0x2e

N

78

0116

0x4e

n

110

0156

0x6e

/

47

0057

0x2f

O

79

0117

0x4f

o

111

0157

0x6f

0

48

0060

0x30

P

80

0120

0x50

p

112

0160

0x70

1

49

0061

0x31

Q

81

0121

0x51

q

113

0161

0x71

2

50

0062

0x32

R

82

0122

0x52

r

114

0162

0x72

3

51

0063

0x33

S

83

0123

0x53

s

115

0163

0x73

4

52

0064

0x34

T

84

0124

0x54

t

116

0164

0x74

5

53

0065

0x35

U

85

0125

0x55

u

117

0165

0x75

6

54

0066

0x36

V

86

0126

0x56

v

118

0166

0x76

7

55

0067

0x37

W

87

0127

0x57

w

119

0167

0x77

8

56

0070

0x38

X

88

0130

0x58

x

120

0170

0x78

9

57

0071

0x39

Y

89

0131

0x59

y

121

0171

0x79

:

58

0072

0x3a

Z

90

0132

0x5a

z

122

0172

0x7a

;

59

0073

0x3b

[

91

0133

0x5b

{

123

0173

0x7b

<

60

0074

0x3c

\

92

0134

0x5c

124

0174

0x7c

=

61

0075

0x3d

]

93

0135

0x5d

}

125

0175

0x7d

>

62

0076

0x3e

^

94

0136

0x5e

~

126

0176

0x7e

?

63

0077

0x3f

_

95

0137

0x5f

(del)

127

0177

0x7f

1/31/18

Programming Guide

P1099958-001

41

42

ZPL Commands
^A

^A – Scalable/Bitmapped Font
The ^A command specifies the font to use in a text field. ^A designates the font for the current ^FD
statement or field. The font specified by ^A is used only once for that ^FD entry. If a value for ^A is
not specified again, the default ^CF font is used for the next ^FD entry.

Format:
Parameter

Details

f = font name

Values: A through Z, and 0 to 9
Any font in the printer (downloaded, EPROM, stored fonts, fonts A through Z and
0 to 9).

o = field
orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated 90 degrees (clockwise)
inverted 180 degrees
read from bottom up, 270 degrees

Default: the last accepted ^FW value or the ^FW default

h = Character
Height (in
dots)

Scalable
Values: 10 to 32000
Default: last accepted ^CF

Bitmapped
Values: multiples of height from 1 to 10 times the standard height, in increments of
1
Default: last accepted ^CF

w = width (in
dots)

Scalable
Values: 10 to 32000
Default: last accepted ^CF

Bitmapped
Values: multiples of width from 1 to 10 times the standard width, in increments of
1
Default: last accepted ^CF

Important • Parameter f is required. If f is omitted it defaults to the last value of the ^CF
command.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^A

Scalable Font Command
Example: This is an example of a scalable font command:

ZPL II Code

Generated Label

^XA
^FO50,50
^A0,32,25
^FDZEBRA^FS
^FO50,150
^A0,32,25
^FDPROGRAMMING^FS
^FO50,250
^A0,32,25^FDLANGUAGE^FS

Bitmap Font Command
Example: This is an example of a bitmap font command:

ZPL II Code

Generated Label

^XA
^FO50,50
^ADN,36,20
^FDZEBRA^FS
^FO50,150
^ADN,36,20
^FDPROGRAMMING^FS
^FO50,250
^ADN,36,20^FDLANGUAGE^FS
For reference, see Standard Printer Fonts on page 1336, Zebra Code Page 850 — Latin Character
Set on page 1317, Fonts and Bar Codes on page 1335, and ASCII on page 1331.

Comments Fonts are built using a matrix that defines standard height-to-width ratios. If you
specify only the height or width value, the standard matrix for that font automatically determines the
other value. If the value is not given or a 0 (zero) is entered, the height or width is determined by the
standard font matrix.

This command interacts with the justification parameters of ^FO and ^FT and with the field
direction parameter of ^FP. For output and examples, see Field Interactions on page 1369.

1/31/18

Programming Guide

P1099958-001

43

44

ZPL Commands
^A@

^A@ – Use Font Name to Call Font
The ^A@ command uses the complete name of a font, rather than the character designation used in
^A. Once a value for ^A@ is defined, it represents that font until a new font name is specified by ^A@.
Format: ^A@o,h,w,d:f.x

Parameter

Details

o = field orientation

Values:

N
R
I
B

=
=
=
=

normal
rotates 90 degrees (clockwise)
inverted 180 degrees
read from bottom up, 270 degrees

Default: N or the last ^FW value

h = character height
(in dots)

Default:
Specifies magnification by w (character width) or the last accepted ^CF value. Uses
the base height if none is specified.
• Scalable
The value is the height in dots of the entire character block. Magnification factors
are unnecessary, because characters are scaled.
• Bitmapped
The value is rounded to the nearest integer multiple of the font’s base height,
then divided by the font’s base height to give a magnification nearest limit.

w = width (in dots)

Default: Specifies magnification by h (height) or the last accepted ^CF value.
Specifies the base width is used if none is specified.
• Scalable
The value is the width in dots of the entire character block. Magnification factors
are unnecessary, because characters are scaled.
• Bitmapped
The value rounds to the nearest integer multiple of the font’s base width, then
divided by the font’s base width to give a magnification nearest limit.

d = drive location of
font

Values: R:, E:, B:, and A:

f = font name

Default: R:
Values: any valid font
Default: if an invalid or no name is entered, the default set by ^CF is used If no font
has been specified in ^CF, font A is used.

The font named carries over on all subsequent ^A@ commands
without a font name.
x = extension

Values:

.FNT = font
.TTF = TrueType Font
.TTE = TrueType Extension

.TTE is only supported in
firmware version V60.14.x,
V50.14.x, or later.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^A@

Example: This example identifies the purpose of each line of code for this label:

ZPL II Code
1
2
3
4
5
6
7
8

1
2
3
4
5
6
7
8

Generated Label

^XA
^A2N,50,50,B:CYRI_UB.FNT
^FO100,100
^FDZebra Printer Fonts^FS
^A2N,40,40
^F0100,150
^FDThis uses B:CYRI_UB.FNT^FS
^XZ

Starts the label format.
Searches non-volatile printer memory (B:) for CYRI_UB.FNT. When the
font is found, the ^A@ command sets the print orientation to normal and the
character size to 50 dots by 50 dots.
Sets the field origin at 100,100.
Prints the field data, Zebra Printer Fonts on the label.
Calls the font again and character size is decreased to 40 dots by 40 dots.
Sets the new field origin at 100,150.
Prints the field data, This uses the B:CYRI_UB.FNT on the label.
Ends the label format.

For reference, see Zebra Code Page 850 — Latin Character Set on page 1317, Fonts and Bar
Codes on page 1335, and ASCII on page 1331.

1/31/18

Programming Guide

P1099958-001

45

46

ZPL Commands
^B0

^B0 – Aztec Bar Code Parameters
The ^B0 command creates a two-dimensional matrix symbology made up of square modules
arranged around a bulls-eye pattern at the center.

Note • The Aztec bar code works with firmware version V60.13.0.11A and V50.13.2 or later.
Format:

^B0a,b,c,d,e,f,g

Parameters

Details

a = orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated
inverted 180 degrees
read from bottom up, 270 degrees

Default: current ^FW value

b = magnification
factor

c = extended channel
interpretation
code indicator

Values: 1 to 10
Default:
1 on 150 dpi printers
2 on 200 dpi printers
3 on 300 dpi printers
6 on 600 dpi printers
Values:

Y = if data contains ECICs
N = if data does not contain ECICs
Default: N

d = error control and
symbol size/type
indicator

Values:

0 = default error correction level
01 to 99 = error correction percentage (minimum)
101 to 104 = 1 to 4-layer compact symbol
201 to 232 = 1 to 32-layer full-range symbol
300 = a simple Aztec “Rune”
Default: 0

e = menu symbol
indicator

Values:

Y = if this symbol is to be a menu (bar code reader initialization) symbol
N = if it is not a menu symbol
Default: N

f = number of symbols
for structured
append
g = optional ID field
for structured
append

P1099958-001

Values: 1 through 26
Default: 1
The ID field is a text string with 24-character maximum
Default: no ID

Programming Guide

1/31/18

ZPL Commands
^B0

Example: This is an example of the ^B0 command:

ZPL II CODE

GENERATED LABEL

^XA
^B0R,7,N,0,N,1,0
^FD 7. This is testing label 7^FS
^XZ

1/31/18

Programming Guide

P1099958-001

47

48

ZPL Commands
^B1

^B1 – Code 11 Bar Code
The ^B1 command produces the Code 11 bar code, also known as USD-8 code. In a Code 11 bar
code, each character is composed of three bars and two spaces, and the character set includes 10
digits and the hyphen (-).
• ^B1 supports print ratios of 2.0:1 to 3.0:1.
• Field data (^FD) is limited to the width (or length, if rotated) of the label.

Important • If additional information about the Code 11 bar code is required, go to
www.aimglobal.org.
Format: ^B1o,e,h,f,g

Parameters

Details

o = orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated 90 degrees (clockwise)
inverted 180 degrees
read from bottom up, 270 degrees

Default: current ^FW value

e = check digit

Values:

Y = 1 digit
N = 2 digits
Default: N

h = bar code height
(in dots)

Values: 1 to 32000

f = print
interpretation
line

Values:

Default: Value set by ^BY

Y = yes
N = no
Default: Y

g = print
interpretation
line above code

Values:

Y = yes
N = no
Default: N

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^B1

Example: This is an example of the Code 11 bar code:

ZPL II CODE

CODE 11 BAR CODE

^XA
^FO100,100^BY3
^B1N,N,150,Y,N
^FD123456^FS
^XZ

CODE 11 BAR CODE CHARACTERS
0

1

2

3

4

5

6

7

8

9

-

Internal Start/Stop Character:
When used as a stop character:
is used with 1 check digit
is used with 2 check digits

1/31/18

Programming Guide

P1099958-001

49

50

ZPL Commands
^B2

^B2 – Interleaved 2 of 5 Bar Code
The ^B2 command produces the Interleaved 2 of 5 bar code, a high-density, self-checking,
continuous, numeric symbology.
Each data character for the Interleaved 2 of 5 bar code is composed of five elements: five bars or
five spaces. Of the five elements, two are wide and three are narrow. The bar code is formed by
interleaving characters formed with all spaces into characters formed with all bars.
• ^B2 supports print ratios of 2.0:1 to 3.0:1.
• Field data (^FD) is limited to the width (or length, if rotated) of the label.

Important • If additional information about the Interleaved 2 of 5 bar code is required, go to
www.aimglobal.org.
Format:

^B2o,h,f,g,e,j

Parameters

Details

o = orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated 90 degrees (clockwise)
inverted 180 degrees
read from bottom up, 270 degrees

Default: current ^FW value

h = bar code height
(in dots)
f = print
interpretation
line

Values: 1 to 32000
Default: value set by ^BY
Values:

Y = yes
N = no

Default: Y

g = print
interpretation
line above code

Values:

Y = yes
N = no

Default: N

e = calculate and
print Mod 10
check digit

Values:

Y = yes
N = no

Default: N

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^B2

Example: This is an example of an Interleaved 2 of 5 bar code:

ZPL II CODE

INTERLEAVED 2 OF 5 BAR CODE

^XA
^FO100,100^BY3
^B2N,150,Y,N,N
^FD123456^FS
^XZ

INTERLEAVED 2 OF 5 BAR CODE CHARACTERS
0

1

2

3

4

5

6

7

8

9

Start/Stop (internal)

Comments The total number of digits in an Interleaved 2 of 5 bar code must be even. The
printer automatically adds a leading 0 (zero) if an odd number of digits is received.
The Interleaved 2 of 5 bar code uses the Mod 10 check-digit scheme for error checking. For more
information on Mod 10 check digits, see Mod 10 Check Digit on page 1349.

1/31/18

Programming Guide

P1099958-001

51

52

ZPL Commands
^B3

^B3 – Code 39 Bar Code
The Code 39 bar code is the standard for many industries, including the U.S. Department of
Defense. It is one of three symbologies identified in the American National Standards Institute
(ANSI) standard MH10.8M-1983. Code 39 is also known as USD-3 Code and 3 of 9 Code.
Each character in a Code 39 bar code is composed of nine elements: five bars, four spaces, and an
inter-character gap. Three of the nine elements are wide; the six remaining elements are narrow.
• ^B3 supports print ratios of 2.0:1 to 3.0:1.
• Field data (^FD) is limited to the width (or length, if rotated) of the label.
• Code 39 automatically generates the start and stop character (*).
• Asterisk (*) for start and stop character prints in the interpretation line, if the interpretation line is
turned on.
• Code 39 is capable of encoding the full 128-character ASCII set.

Important • If additional information about the Code 39 bar code is required, go to
www.aimglobal.org.
Format:

^B3o,e,h,f,g

Parameters

Details

o = orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated 90 degrees (clockwise)
inverted 180 degrees
read from bottom up, 270 degrees

Default: current ^FW value

e = Mod-43 check
digit

Values:

Y = yes
N = no

Default: N

h = bar code height
(in dots)
f = print
interpretation
line

Values: 1 to 32000
Default: value set by ^BY
Values:

Y = yes
N = no

Default: Y

g = print
interpretation
line above code

Values:

Y = yes
N = no

Default: N

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^B3

Example 1: This is an example of a Code 39 bar code:
ZPL II CODE

CODE 39 BAR CODE

^XA
^FO100,100^BY3
^B3N,N,100,Y,N
^FD123ABC^FS
^XZ

CODE 39 BAR CODE CHARACTERS
0
1
2
3
4
5
6
7
8
9
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
.
$
/
+
% Space

Comments Extended ASCII is a function of the scanner, not of the bar code. Your scanner
must have extended ASCII enabled for this feature to work. To enable extended ASCII in the
Code 39, you must first encode +$ in your ^FD statement. To disable extended ASCII, you
must encode -$ in your ^FD statement.
Example 2: This example encodes a carriage return with line feed into a Code 39 bar code:
ZPL II CODE

GENERATED LABELS

^XA
^FO20,20
^B3N,N,100,Y
^FDTEST+$$M$J-$^FS
^XZ

Full ASCII Mode for Code 39
Code 39 can generate the full 128-character ASCII set using paired characters as shown in these
tables:

1/31/18

Programming Guide

P1099958-001

53

54

ZPL Commands
^B3

Table 2 •
ASCII
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
HT
LF
VT
FF
CR
SO
SI
DLE
DC1
DC2
DC3
DC4
NAK
SYN
ETB
CAN
EM
SUB
ESC
FS
FS
RS
US

P1099958-001

Code 39

ASCII
SP
!
“
#
$
%
&
‘
(
)
*
++
,
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?

$A
$B
$C
$D
$E
$F
$G
$H
$I
$J
$K
$L
$M
$N
$O
$P
$Q
$R
$S
$T
$U
$V
$W
$X
$Y
$Z
%A
%B
%C
%D
%E

Programming Guide

Code 39
Space
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
.
/O
O
1
2
3
4
5
6
7
8
9
/Z
%F
%G
%H
%I
%J

1/31/18

ZPL Commands
^B3

Table 3 •

1/31/18

ASCII

Code 39

ASCII

Code 39

@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_

%V
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
%K
%L
%M
%N
%O

‘
a
b
c
d
e
f
g
h
I
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
DEL

%W
+A
+B
+C
+D
+E
+F
+G
+H
+I
+J
+K
+L
+M
+N
+O
+P
+Q
+R
+S
+T
+U
+V
+W
+X
+Y
+Z
%P
%Q
%R
%S
%T, %X

Programming Guide

P1099958-001

55

56

ZPL Commands
^B4

^B4 – Code 49 Bar Code
The ^B4 command creates a multi-row, continuous, variable-length symbology capable of encoding
the full 128-character ASCII set. It is ideally suited for applications requiring large amounts of data in
a small space.
The code consists of two to eight rows. A row consists of a leading quiet zone, four symbol
characters encoding eight code characters, a stop pattern, and a trailing quiet zone. A separator bar
with a height of one module separates each row. Each symbol character encodes two characters
from a set of Code 49 characters.
• ^B4 has a fixed print ratio.
• Rows can be scanned in any order.

Important • For additional information about the Code 49 bar code is required, go to
www.aimglobal.org.
Format:

^B4o,h,f,m

Parameters

Details

o = orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated 90 degrees (clockwise)
inverted 180 degrees
read from bottom up, 270 degrees

Default: current ^FW value

h = height multiplier
of individual
rows
f = print
interpretation
line

Values: 1 to height of label
Default: value set by ^BY
This number multiplied by the module equals the height of the individual rows in
dots. 1 is not a recommended value.
Values:

N = no line printed
A = print interpretation line above code
B = print interpretation line below code

Default: N
When the field data exceeds two rows, expect the interpretation line to extend
beyond the right edge of the bar code symbol.

m = starting mode

Values:

Regular Alphanumeric Mode
Multiple Read Alphanumeric
Regular Numeric Mode
Group Alphanumeric Mode
Regular Alphanumeric Shift 1
Regular Alphanumeric Shift 2
Automatic Mode. The printer determines the starting mode by analyzing
the field data.

0
1
2
3
4
5
A

=
=
=
=
=
=
=

Default: A

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^B4

Example 1: This is an example of a Code 49 bar code:
ZPL II CODE

CODE 49 BAR CODE

^XA
^FO150,100^BY3
^B4N,20,A,A
^FD12345ABCDE^FS
^XZ

1/31/18

Programming Guide

P1099958-001

57

58

ZPL Commands
^B4

Table 4 •
Field Data
Set

Unshifted
Character Set

Shift 1
Character Set

Shift 2
Character Set

0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
.
SPACE
$
/
++
%
< (Shift 1)
> (Shift 2)
: (N.A.)
; (N.A.)
? (N.A.)
= (Numeric Shift)

0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
.
SPACE
$
/
++
%

’
ESC
FS
GS
RS
US
!
“
#
&
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
HT
LF
VT
FF
CR
SO
SI
DLE
DC1
DC2
DC3
DC4
NAK
SYN
ETB
CAN
EM
SUB
(
)
Null
*
,
:
reserved

;
<
=
>
?
@
[
\
]
a
b
c
d
e
f
g
h
I
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
_
‘
DEL
{
|
}
~

Code 49 Shift 1 and 2 Character Substitutions

Code 49 Field Data Character Set
The ^FD data sent to the printer when using starting modes 0 to 5 is based on the
Code 49 Internal Character Set. This is shown in the first column of the Code 49 table on the
previous page. These characters are Code 49 control characters:

: ; < = > ?
Valid field data must be supplied when using modes 0 to 5. Shifted characters are sent as a twocharacter sequence of a shift character followed by a character in the unshifted character set.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^B4

Example 2: To encode a lowercase a, send a > (Shift 2) followed by an uppercase A. If
interpretation line printing is selected, a lowercase a prints in the interpretation line. This
reflects what the output from the scanner reads. Code 49 uses uppercase alphanumeric
characters only.
If an invalid sequence is detected, the Code 49 formatter stops interpreting field data and prints a
symbol with the data up to the invalid sequence. These are examples of invalid sequences:

•

Terminating numeric mode with any characters other than 0 to 9 or a Numeric Space.

•

Starting in Mode 4 (Regular Alphanumeric Shift 1) and the first field data character is
not in the Shift 1 set.

•

Starting in Mode 5 (Regular Alphanumeric Shift 2) and the first field data character is
not in the Shift 2 set.

•

Sending Shift 1 followed by a character not in the Shift 1 set.

•

Sending Shift 2 followed by a character not in the Shift 2 set.

•

Sending two Shift 1 or Shift 2 control characters.

Advantages of Using the Code 49 Automatic Mode
Using the default (Automatic Mode) completely eliminates the need for selecting the starting mode
or manually performing character shifts. The Automatic Mode analyzes the incoming ASCII string,
determines the proper mode, performs all character shifts, and compacts the data for maximum
efficiency.
Numeric Mode is selected or shifted only when five or more continuous digits are found. Numeric
packaging provides no space advantage for numeric strings consisting of fewer than eight
characters.

1/31/18

Programming Guide

P1099958-001

59

60

ZPL Commands
^B5

^B5 – Planet Code bar code
The ^B5 command is supported in all printers as a resident bar code.

Note • Accepted bar code characters are 0 - 9.
Format:

^B5o,h,f,g

Parameters

Details

o = orientation code

Values:

N
R
I
B

=
=
=
=

normal
rotated
inverted 180 degrees
read from bottom up, 270 degrees

Default: current ^FW value

h = bar code height
(in dots)

Values: 1 to 9999
Default: value set by ^BY
Values:

f = interpretation
line

N = no
Y = yes

Default: N

g = determines if the
interpretation
line is printed
above the bar
code

Values:

N = no
Y = yes

Default: N

Example: This is an example of a Planet Code bar code:

ZPL II CODE

GENERATED LABEL

^XA
^FO150,100^BY3
^B5N,100,Y,N
^FD12345678901^FS
^XZ

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^B7

^B7 – PDF417 Bar Code
The ^B7 command produces the PDF417 bar code, a two-dimensional, multirow, continuous,
stacked symbology. PDF417 is capable of encoding over 1,000 characters per bar code. It is ideally
suited for applications requiring large amounts of information at the time the bar code is read.
The bar code consists of three to 90 stacked rows. Each row consists of start and stop patterns and
symbol characters called code-words. A code-word consists of four bars and four spaces. A three
code-word minimum is required per row.
The PDF417 bar code is also capable of using the structured append option (^FM), which allows you
to extend the field data limitations by printing multiple bar codes. For more information on using
structured append, see ^FM on page 172.

•

PDF417 has a fixed print ratio.

•

Field data (^FD) is limited to 3K of character data.

Format:

^B7o,h,s,c,r,t

Parameters

Details

o = orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated 90 degrees (clockwise)
inverted 180 degrees
read from bottom up, 270 degrees

Default: current ^FW value

h = bar code height
for individual
rows (in dots)

Values: 1 to height of label

s = security level

Values: 1 to 8 (error detection and correction)

Default: value set by ^BY
This number multiplied by the module equals the height of the individual rows in
dots. If this number is not specified, the overall bar code height, divided by the
number of rows, equals the height of the individual rows in dots, where the
overall bar code height is defined by the ^BY command. 1 is not a
recommended value.
Default: 0 (error detection only)
This determines the number of error detection and correction code-words to be
generated for the symbol. The default level provides only error detection without
correction. Increasing the security level adds increasing levels of error correction
and increases the symbol size.

c = number of data
columns to
encode

Values: 1 to 30

r = number of rows to
encode

Values: 3 to 90

1/31/18

Default: 1:2 (row-to-column aspect ratio)
You can specify the number of code-word columns giving control over the width
of the symbol.
Default: 1:2 (row-to-column aspect ratio)
You can specify the number of symbol rows giving control over the height of the
symbol. For example, with no row or column values entered, 72 code-words
would be encoded into a symbol of six columns and 12 rows. Depending on
code-words, the aspect ratio is not always exact.

Programming Guide

P1099958-001

61

62

ZPL Commands
^B7

Parameters

Details

t = truncate right
row indicators
and stop pattern

Values:

N = no truncation
Y = perform truncation

Default: N

Example 1: This is an example of a PDF417 bar code:
ZPL II CODE

PDF417 BAR CODE

^XA
^BY2,3
^FO10,10^B7N,5,5,,83,N
^FDZebra Technologies
Corporation strives to be
the expert supplier of
innovative solutions to
speciality demand labeling
and ticketing problems of
business and government.
We will attract and retain
the best people who will
understand our customer's
needs and provide them with
systems, hardware, software,
consumables and service
offering the best value,
high quality, and reliable
performance, all delivered
in a timely manner.
^FS^XZ

Example 2: This is an example of a PDF417 without and with truncation selected:

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^B7

Example 3: This example shows the ^B7 command used with field hex (^FH) characters:
ZPL II CODE

GENERATED LABEL

^XA
^FO50,50^BY3,3.0^B7N,8,5,7,21,N
^FH_^FD[)>_1E06_1DP12345678_1DQ160
_1D1JUN123456789A2B4C6D8E_1D20LA6-987
_1D21L54321 ZES_1D15KG1155
_1DBSC151208_1D7Q10GT_1E_04^FS
^XZ

Comments Noted in this bulleted list:
• If both columns and rows are specified, their product must be less than 928.
• No symbol is printed if the product of columns and rows is greater than 928.
• No symbol is printed if total code-words are greater than the product of columns and rows.
• Serialization is not allowed with this bar code.
• The truncation feature can be used in situations where label damage is not likely. The right row
indicators and stop pattern is reduced to a single module bar width. The difference between a
non truncated and a truncated bar code is shown in the previous examples.

Special Considerations for ^BY When Using PDF417
When used with ^B7, the parameters for the ^BY command are:

w

= module width (in dots)

Values: 2 to 10
Default: 2

r

= ratio

Fixed Value: 3 (ratio has no effect on PDF417)
h = height of bars (in dots)
Values: 1 to 32000
Default: 10

PDF417 uses this only when row height is not specified in the ^B7 h parameter.

Special Considerations for ^FD When Using PDF417
The character set sent to the printer with the ^FD command includes the full ASCII set, except for
those characters with special meaning to the printer.
See Zebra Code Page 850 — Latin Character Set on page 1317, ^CC ~CC on page 129, and ^CT
~CT on page 142.
• CR and LF are also valid characters for all ^FD statements. This scheme is used:

\& = carriage return/line feed
\\ = backslash (\)
• ^CI13 must be selected to print a backslash (\).

1/31/18

Programming Guide

P1099958-001

63

64

ZPL Commands
^B8

^B8 – EAN-8 Bar Code
The ^B8 command is the shortened version of the EAN-13 bar code. EAN is an acronym for
European Article Numbering. Each character in the EAN-8 bar code is composed of four elements:
two bars and two spaces.
• ^B8 supports a fixed ratio.
• Field data (^FD) is limited to exactly seven characters. ZPL II automatically pads or truncates on
the left with zeros to achieve the required number of characters.
• When using JAN-8 (Japanese Article Numbering), a specialized application of EAN-8, the first
two non-zero digits sent to the printer are always 49.

Important • If additional information about the EAN-8 bar code is required, go to
www.aimglobal.org.
Format: ^B8o,h,f,g

Parameters

Details

o = orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated 90 degrees (clockwise)
inverted 180 degrees
read from bottom up, 270 degrees

Default: current ^FW value

h = bar code height
(in dots)
f = print
interpretation
line

Values: 1 to 32000
Default: value set by ^BY
Values:

N = no
Y = yes

Default: Y

g = print
interpretation
line above code

Values:

N = no
Y = yes

Default: N

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^B8

Example: This is an example of an EAN-8 bar code:

ZPL II CODE

EAN-8 BAR CODE

^XA
^FO100,100^BY3
^B8N,100,Y,N
^FD1234567^FS
^XZ

EAN-8 BAR CODE CHARACTERS
0

1/31/18

1

2

3

4

Programming Guide

5

6

7

8

9

P1099958-001

65

66

ZPL Commands
^B9

^B9 – UPC-E Bar Code
The ^B9 command produces a variation of the UPC symbology used for number system 0. It is a
shortened version of the UPC-A bar code, where zeros are suppressed, resulting in codes that
require less printing space. The 6 dot/mm, 12 dot/mm, and 24 dot/mm printheads produce the UPC
and EAN symbologies at 100 percent of their size. However, an 8 dot/mm printhead produces the
UPC and EAN symbologies at a magnification factor of 77 percent.
Each character in a UPC-E bar code is composed of four elements: two bars and two spaces. The

^BY command must be used to specify the width of the narrow bar.
• ^B9 supports a fixed ratio.
• Field data (^FD) is limited to exactly 10 characters, requiring a five-digit manufacturer’s code
and five-digit product code.
• When using the zero-suppressed versions of UPC, you must enter the full
10-character sequence. ZPL II calculates and prints the shortened version.

Important • If additional information about the UPC-E bar code is required, go to
www.aimglobal.org.
Format: ^B9,h,f,g,e

Parameters

Details

o = orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated 90 degrees (clockwise)
inverted 180 degrees
read from bottom up, 270 degrees

Default: current ^FW value

h = bar code height
(in dots)

Values: 1 to 32000

f = print
interpretation
line

Values:

Default: value set by ^BY

N = no
Y = yes

Default: Y

g = print
interpretation
line above code

Values:

N = no
Y = yes

Default: N

e = print check digit

Values:

N = no
Y = yes

Default: Y

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^B9

Example: This is an example of a UPC-E bar code:

UPC-E BAR CODE

ZPL II CODE
^XA
^FO150,100^BY3
^B9N,100,Y,N,Y
^FD1230000045^FS
^XZ

UPC-E BAR CODE CHARACTERS
0

1

2

3

4

5

6

7

8

9

Rules for Proper Product Code Numbers
• If the last three digits in the manufacturer’s number are 000, 100, or 200, valid product code
numbers are 00000 to 00999.
• If the last three digits in the manufacturer’s number are 300, 400, 500, 600, 700, 800, or 900,
valid product code numbers are 00000 to 00099.
• If the last two digits in the manufacturer’s number are 10, 20, 30, 40, 50, 60, 70, 80, or 90, valid
product code numbers are 00000 to 00009.
• If the manufacturer’s number does not end in zero (0), valid product code numbers are 00005 to
00009.

1/31/18

Programming Guide

P1099958-001

67

68

ZPL Commands
^BA

^BA – Code 93 Bar Code
The ^BA command creates a variable length, continuous symbology. The Code 93 bar code is used
in many of the same applications as Code 39. It uses the full 128-character ASCII set. ZPL II,
however, does not support ASCII control codes or escape sequences. It uses the substitute
characters shown below.

Control Code

ZPL II Substitute

Ctrl $

&

Ctrl %

‘

Ctrl /

(

Ctrl +

)

Each character in the Code 93 bar code is composed of six elements: three bars and three spaces.
Although invoked differently, the human-readable interpretation line prints as though the control
code has been used.
• ^BA supports a fixed print ratio.
• Field data (^FD) is limited to the width (or length, if rotated) of the label.

Important • If additional information about the Code 93 bar code is required, go to
www.aimglobal.org.
Format:

^BAo,h,f,g,e

Parameters

Details

o = orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated 90 degrees (clockwise)
inverted 180 degrees
read from bottom up, 270 degrees

Default: current ^FW value

h = bar code height
(in dots)

Values: 1 to 32000

f = print
interpretation
line

Values:

Default: value set by ^BY

N = no
Y = yes

Default: Y

g = print
interpretation
line above code

Values:

N = no
Y = yes

Default: N

e = print check digit

Values:

N = no
Y = yes

Default: N

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^BA

Example: This is an example of a Code 93 bar code:

ZPL II CODE

CODE 93 BAR CODE

^XA
^FO100,75^BY3
^BAN,100,Y,N,N
^FD12345ABCDE^FS
^XZ

CODE 93 BAR CODE CHARACTERS
0
1
2
3
4
5
6
7
8
9
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
.
$
/
+
%
&
’ (
)
SPACE
Denotes an internal start/stop character that must precede and follow
every bar code message.

Comments All control codes are used in pairs. Code 93 is also capable of encoding the full
128-character ASCII set.

Full ASCII Mode for Code 93
Code 93 can generate the full 128-character ASCII set using paired characters as shown in the
following tables.

1/31/18

Programming Guide

P1099958-001

69

70

ZPL Commands
^BA

Table 5 •

ASCII
NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
HT
LF
VT
FF
CR
SO
SI
DLE
DC1
DC2
DC3
DC4
NAK
SYN
ETB
CAN
EM
SUB
ESC
FS
FS
RS
US

P1099958-001

Code 93

ASCII
SP
!
“
#
$
%
&
‘
(
)
*
++
,
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?

‘U
&A
&B
&C
&D
&E
&F
&G
&H
&I
&J
&K
&L
&M
&N
&O
&P
&Q
&R
&S
&T
&U
&V
&W
&X
&Y
&Z
‘A
‘B
‘C
‘D
‘E

Programming Guide

Code 93
Space
(A
(B
(C
(D
(E
(F
(G
(H
(I
(J
++
(L
.
/
O
1
2
3
4
5
6
7
8
9
(Z
‘F
‘G
‘H
‘I
‘J

1/31/18

ZPL Commands
^BA

Table 6 •

1/31/18

ASCII

Code 93

ASCII

Code 93

@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_

‘V
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
‘K
‘L
‘M
‘N
‘O

‘
a
b
c
d
e
f
g
h
I
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
DEL

‘W
)A
)B
)C
)D
)E
)F
)G
)H
)I
)J
)K
)L
)M
)N
)O
)P
)Q
)R
)S
)T
)U
)V
)W
)X
)Y
)Z
‘P
‘Q
‘R
‘S
‘T

Programming Guide

P1099958-001

71

72

ZPL Commands
^BB

^BB – CODABLOCK Bar Code
The ^BB command produces a two-dimensional, multirow, stacked symbology. It is ideally suited for
applications that require large amounts of information.
Depending on the mode selected, the code consists of one to 44 stacked rows. Each row begins and
ends with a start and stop pattern.

•

CODABLOCK A supports variable print ratios.

•

CODABLOCK E and F support only fixed print ratios.

Important • If additional information about the CODABLOCK bar code is required, go to
www.aimglobal.org.
Format:

^BBo,h,s,c,r,m

Parameters

Details

o = orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated 90 degrees (clockwise)
inverted 180 degrees
read from bottom up, 270 degrees

Default: N

h = bar code height
for individual
rows (in dots)

Values: 2 to 32000

s = security level

Values:

Default: 8
This number, multiplied by the module, equals the height of the individual row in
dots.

N = no
Y = yes

Default: Y
Security level determines whether symbol check-sums are generated and added
to the symbol. Check sums are never generated for single-row symbols. This
can be turned off only if parameter m is set to A.

c = number of
characters per
row (data
columns)

P1099958-001

Values: 2 to 62 characters
This is used to encode a CODABLOCK symbol. It gives the you control over the
width of the symbol.

Programming Guide

1/31/18

ZPL Commands
^BB

Parameters

Details

r = number of rows to
encode

Values:
for CODABLOCK A: 1 to 22
for CODABLOCK E and F: 2 to 4

•

If values for c and r are not specified, a single row is produced.

•

If a value for r is not specified, and c exceeds the maximum range, a
single row equal to the field data length is produced.

•

If a value for c is not specified, the number of characters per row is
derived by dividing the field data by the value of r.

•

If the s parameter is set to the default of Y, then the checksum
characters that are included count as two data characters .
For example, if c = 6, r is set to 3 and s is set to N, then up to 18
characters can be used (6 x 3). However, if s is set to Y, then only 16
character can be used.

•

m = mode

If the data field contains primarily numeric data, fewer than the
specified rows might be printed. If the field data contains several shift
and code-switch characters, more than the specified number of rows
might be printed.

Values: A, E, F
CODABLOCK A uses the Code 39 character set.
CODABLOCK F uses the Code 128 character set.
CODABLOCK E uses the Code 128 character set and automatically adds FNC1.
Default: F

1/31/18

Programming Guide

P1099958-001

73

74

ZPL Commands
^BB

Example: This is an example of a CODABLOCK bar code:

ZPL II CODE
^XA
^BY2,3
^FO10,10^BBN,30,,30,44,E
^FDZebra Technologies
Corporation strives to be
the expert supplier of
innovative solutions to
speciality demand labeling
and ticketing problems of
business and government.
We will attract and retain
the best people who will
understand our customer's
needs and provide them with
systems, hardware, software,
consumables and service
offering the best value,
high quality, and reliable
performance, all delivered
in a timely manner.^FS
^XZ

CODABLOCK BAR CODE

Special Considerations for the ^BY Command When Using ^BB
The parameters for the ^BYw,r,h command, when used with a ^BB code, are as follows:

w = module width (in dots)
Values: 2 to 10 (CODABLOCK A only)
Default: 2

r = ratio

Fixed Value: 3 (ratio has no effect on CODABLOCK E or F)
h = height of bars (in dots)
Values: 1 to 32,32000
Default: 10

CODABLOCK uses this as the overall symbol height only when the row height is not
specified in the ^BB h parameter.

Special Considerations for ^FD Character Set When Using ^BB
The character set sent to the printer depends on the mode selected in parameter m.

CODABLOCK A: CODABLOCK A uses the same character set as Code 39. If any other
character is used in the ^FD statement, either no bar code is printed or an error message
is printed (if ^CV is active).
CODABLOCK E: The Automatic Mode includes the full ASCII set except for those
characters with special meaning to the printer. Function codes or the
Code 128 Subset A  character can be inserted using of the ^FH command.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^BB

 = 80 hex

 = 82 hex

 = 81 hex

 = 83 hex

 = 84 hex

For any other character above 84 hex, either no bar code is printed or an error message is
printed (if ^CV is active).
CODABLOCK F: CODABLOCK F uses the full ASCII set, except for those characters with
special meaning to the printer. Function codes or the Code 128 Subset A  character
can be inserted using of the ^FH command.
 = 80 hex

 = 82 hex

 = 81 hex

 = 83 hex

 = 84 hex

1/31/18

Programming Guide

P1099958-001

75

76

ZPL Commands
^BC

^BC – Code 128 Bar Code (Subsets A, B, and C)
The ^BC command creates the Code 128 bar code, a high-density, variable length, continuous,
alphanumeric symbology. It was designed for complexly encoded product identification.
Code 128 has three subsets of characters. There are 106 encoded printing characters in each set,
and each character can have up to three different meanings, depending on the character subset
being used. Each Code 128 character consists of six elements: three bars and three spaces.
• ^BC supports a fixed print ratio.
• Field data (^FD) is limited to the width (or length, if rotated) of the label.

Important • If additional information about the Code 128 bar code is required, go to
www.aimglobal.org.
Format: ^BCo,h,f,g,e,m

Parameters

Details

o = orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated 90 degrees (clockwise)
inverted 180 degrees
read from bottom up, 270 degrees

Default: current ^FW value

h = bar code height
(in dots)

Values: 1 to 32000

f = print
interpretation
line

Values: Y (yes) or N (no)

g = print
interpretation
line above code

Values: Y (yes) or N (no)

e = UCC check digit

Values: Y (turns on) or N (turns off)

Default: value set by ^BY
Default: Y
The interpretation line can be printed in any font by placing the font command
before the bar code command.
Default: N

Mod 103 check digit is always there. It cannot be turned on or off. Mod 10
and 103 appear together with e turned on.
Default: N

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^BC

Parameters

Details

m = mode

Values:

N = no selected mode
U = UCC Case Mode

•

More than 19 digits in ^FD or ^SN are eliminated.

•

Fewer than 19 digits in ^FD or ^SN add zeros to the right to bring the
count to 19. This produces an invalid interpretation line.
A = Automatic Mode
This analyzes the data sent and automatically determines the best
packing method. The full ASCII character set can be used in the ^FD
statement — the printer determines when to shift subsets. A string of
four or more numeric digits causes an automatic shift to Subset C.
D = UCC/EAN Mode (x.11.x and newer firmware)
This allows dealing with UCC/EAN with and without chained
application identifiers. The code starts in the appropriate subset
followed by FNC1 to indicate a UCC/EAN 128 bar code. The printer
automatically strips out parentheses and spaces for encoding, but
prints them in the human-readable section. The printer automatically
determines if a check digit is required, calculate it, and print it.
Automatically sizes the human readable.
Default: N

Example 1: This is an example of a Code 128 bar code:

ZPL II CODE

CODE 128 BAR CODE

^XA
^FO100,100^BY3
^BCN,100,Y,N,N
^FD123456^FS
^XZ

Code 128 Subsets
The Code 128 character subsets are referred to as Subset A, Subset B, and Subset C. A subset can
be selected in these ways:
• A special Invocation Code can be included in the field data (^FD) string associated with that bar
code.
• The desired Start Code can be placed at the beginning of the field data. If no Start Code is
entered, Subset B are used.
To change subsets within a bar code, place the Invocation Code at the appropriate points within the
field data (^FD) string. The new subset stays in effect until changed with the Invocation Code. For
example, in Subset C, >7 in the field data changes the Subset to A.
Table 7 shows the Code 128 Invocation Codes and Start Characters for the three subsets.

1/31/18

Programming Guide

P1099958-001

77

78

ZPL Commands
^BC

Table 7 • Code 128 Invocation Characters
Invocation
Code
><
>0
>=
>1
>2
>3
>4
>5
>6
>7
>8

Decimal
Value
62
30
94
95
96
97
98
99
100
101
102

Start Characters
103
>9
104
>:
105
>;

Subset A
Character

Subset B
Character

Subset C
Character

>

>
~
DEL
FNC 3
FNC 2
SHIFT
CODE C
FNC 4
CODE A
FNC 1

CODE B
CODE A
FNC 1

USQ
FNC 3
FNC 2
SHIFT
CODE C
CODE B
FNC 4
FNC 1

Start Code A
Start Code B
Start Code C

(Numeric Pairs give Alpha/Numerics)
(Normal Alpha/Numeric)
(All numeric (00 - 99)

Table 8 shows the character sets for Code 128:

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^BC

Table 8 •

Value
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52

1/31/18

Code A
SP
!
''
#
$
%
&
'
(
)
*
+
,
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T

Code B
SP
!
''
#
$
%
&
'
(
)
*
+
,
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T

Code C
00
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52

Programming Guide

Value
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105

Code A
U
V
W
X
Y
Z
[
\
]
^
_
NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
HT
LF
VT
FF
CR
SO
SI
DLE
DC1
DC2
DC3
DC4
NAK
SYN
ETB
CAN
EM
SUB
ESC
FS
GS
RS
US
FNC3
FNC2
SHIFT
Code C
Code B
FNC4
FNC1

Code B
U
V
W
X
Y
Z
[
\
]
^
_
.
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
DEL
FNC3
FNC2
SHIFT
Code C
FNC4
Code A
FNC1
START (Code A)
START (Code B)
START (Code C)

Code C
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
Code B
Code A
FNC1

P1099958-001

79

80

ZPL Commands
^BC

Example 2: Figures A and B are examples of identical bar codes, and Figure C is an example of
switching from Subset C to B to A, as follows:

^XA
^FO100,75
^BCN,100,Y,N,N
^FDCODE128^FS
^XZ
Figure A: Subset B with no start character

^XA
^FO100,75
^BCN,100,Y,N,N
^FD>:CODE128^FS
^XZ
Figure B: Subset B with start character
Because Code 128 Subset B is the most commonly used subset, ZPL II defaults to Subset B if no
start character is specified in the data string.

^XA
^FO50,50
^BY3^BCN,100,Y,N,N
^FD>;382436>6CODE128>752375152^FS
^XZ
Figure C: Switching from Subset C to B to A

How ^BC Works Within a ZPL II Script
^XA – the first command starts the label format.
^FO100,75 – the second command sets the field origin at 100 dots across the x-axis and 75 dots
down the y-axis from the upper-left corner.
^BCN,100,Y,N,N – the third command calls for a Code 128 bar code to be printed with no rotation
(N) and a height of 100 dots. An interpretation line is printed (Y) below the bar code (N). No UCC
check digit is used (N).
^FDCODE128^FS (Figure A) ^FD>:CODE128^FS (Figure B) – the field data command specifies the
content of the bar code.
^XZ – the last command ends the field data and indicates the end of the label.
The interpretation line prints below the code with the UCC check digit turned off.
The ^FD command for Figure A does not specify any subset, so Subset B is used. In Figure B, the
^FD command specifically calls Subset B with the >: Start Code. Although ZPL II defaults to Code B,
it is good practice to include the Invocation Codes in the command.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^BC
Code 128 – Subset B is programmed directly as ASCII text, except for values greater than 94
decimal and a few special characters that must be programmed using the invocation codes. Those
characters are:

^ > ~

Example 3: Code 128 – Subsets A and C
Code 128, Subsets A and C are programmed in pairs of digits, 00 to 99, in the field data string. For
details, see Table 7 on page 78.
In Subset A, each pair of digits results in a single character being encoded in the bar code; in Subset
C, characters are printed as entered. Figure E below is an example of Subset A (>9 is the Start Code
for Subset A).
Nonintegers programmed as the first character of a digit pair (D2) are ignored. However, nonintegers
programmed as the second character of a digit pair (2D) invalidate the entire digit pair, and the pair
is ignored. An extra unpaired digit in the field data string just before a code shift is also ignored.
Figure D and Figure E below are examples of Subset C. Notice that the bar codes are identical. In
the program code for Figure F, the D is ignored and the 2 is paired with the 4.

^XA
^FO100,75^BY3
^BCN,100,Y,N,N
^FD>;382436^FS
^XZ
Figure D: Subset C with normal data
^XA
^FO100,75^BY3
^BCN,100,Y,N,N
^FD>;38D2436^FS
^XZ
Figure E: Subset C with ignored alpha character

^XA
^FO100,75^BY3
^BCN,100,Y,N,N
^FD>935473637171824^FS
^XZ
Figure F: Subset A

The UCC/EAN-128 Symbology
The symbology specified for the representation of Application Identifier data is UCC/EAN-128, a
variant of Code 128, exclusively reserved to EAN International and the Uniform Code Council
(UCC).

Note • It is not intended to be used for data to be scanned at the point of sales in retail outlets.

1/31/18

Programming Guide

P1099958-001

81

82

ZPL Commands
^BC
UCC/EAN-128 offers several advantages. It is one of the most complete, alphanumeric, onedimensional symbologies available today. The use of three different character sets (A, B and C),
facilitates the encoding of the full 128 ASCII character set. Code 128 is one of the most compact
linear bar code symbologies. Character set C enables numeric data to be represented in a double
density mode. In this mode, two digits are represented by only one symbol character saving valuable
space. The code is concatenated. That means that multiple AIs and their fields may be combined
into a single bar code. The code is also very reliable. Code 128 symbols use two independent selfchecking features which improves printing and scanning reliability.
UCC/EAN-128 bar codes always contain a special non-data character known as function 1 (FNC 1),
which follows the start character of the bar code. It enables scanners and processing software to
auto-discriminate between UCC/EAN-128 and other bar code symbologies, and subsequently only
process relevant data.
The UCC/EAN-128 bar code is made up of a leading quiet zone, a Code 128 start character A, B, or
C, a FNC 1 character, Data (Application Identifier plus data field), a symbol check character, a stop
character, and a trailing quiet zone.
UCC/EAN, UCC/128 are a couple of ways you'll hear someone refer to the code. This just indicates
that the code is structured as dictated by the application identifiers that are used.
SSCC (Serial Shipping Container Code) formatted following the data structure layout for Application
Identifier 00. See Table 9, UCC/EAN Application Identifier on page 85. It could be 00 which is the
SSCC code. The customer needs to let us know what application identifiers are used for their bar
code so we can help them.
There are several ways of writing the code to print the code to Application Identifier '00' structure.

Using N for the mode (m) parameter
Example 1: This example shows with application identifier 00 structure:
ZPL II CODE

N FOR THE M PARAMETER

^XA
^FO90,200^BY4
^BCN,256,Y,N,Y,N
^FD>;>80012345123451234512^FS
^XZ

P1099958-001

•

>;>8' sets it to subset C, function 1

•

'00' is the application identifier followed by '17 characters', the check digit is selected
using the 'Y' for the (e) parameter to automatically print the 20th character.

•

you are not limited to 19 characters with mode set to N

Programming Guide

1/31/18

ZPL Commands
^BC

Using U for the mode (m) parameter
Example 1: The example shows the application identifier 00 format:
ZPL II CODE

U FOR THE M PARAMETER

^XA
^FO90,200
^BY4^BC,256,Y,N,,U
^FD0012345123451234512^FS
^XZ

UCC Case Mode

•

Choosing U selects UCC Case mode. You will have exactly 19 characters available in
^FD.

•

Subset C using FNC1 values are automatically selected.

•

Check digit is automatically inserted.

Using D for the mode (m) parameter
Example 1: This example shows application identifier 00 format ((x.11.x or later):
ZPL II CODE

D FOR THE M PARAMETER

^XA
^FO50,200^BCN,150,Y,N,,D
^FD(00)10084423 7449200940^FS
^XZ

(0 at end of field data is a bogus character that is inserted as a place holder for the check digit the
printer will automatically insert.

1/31/18

•

Subset C using FNC1 values are automatically selected.

•

Parentheses and spaces can be in the field data. '00' application identifier, followed
by 17 characters, followed by bogus check digit place holder.

•

Check digit is automatically inserted. The printer will automatically calculate the
check digit and put it into the bar code and interpretation line.

•

The interpretation line will also show the parentheses and spaces but will strip them
out from the actual bar code.

Programming Guide

P1099958-001

83

84

ZPL Commands
^BC

Printing the Interpretation Line
Example 1: This example shows printing the interpretation in a different font with firmware
x.11.x or later:
ZPL II CODE

INTERPRETATION LINE

^XA
^FO50,200
^A0N,40,30^BCN,150,Y,N,Y
^FD>;>80012345123451234512^FS
^XZ

The font command (^A0N,40,30) can be added and changed to alter the font and size of the
interpretation line.

With firmware version later than x.10.x
•

A separate text field needs to be written.

•

The interpretation line needs to be turned off.

•

^A0N,50,40 is the font and size selection for the separate text field.

•

You have to make sure you enter the correct check digit in the text field.

•

Creating a separate text field allows you to format the interpretation line with
parentheses and spaces.

ZPL II CODE

FIRMWARE OLDER THAN X.10.X

^XA
^FO25,25
^BCN,150,N,N,Y
^FD>;>80012345123451234512^FS
^FO100,190
^A0N,50,40
^FD(00) 1 2345123 451234512 0^FS
^XZ

Application Identifiers — UCC/EAN APPLICATION IDENTIFIER
An Application Identifier is a prefix code used to identify the meaning and the format of the data that
follows it (data field).
There are AIs for identification, traceability, dates, quantity, measurements, locations, and many
other types of information.
For example, the AI for batch number is 10, and the batch number AI is always followed by an
alphanumeric batch code not to exceed 20-characters.
The UCC/EAN Application Identifiers provide an open standard that can be used and understood by
all companies in the trading chain, regardless of the company that originally issued the codes.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^BC

I

Table 9 • UCC/EAN Application Identifier
AI

Plus The Following Data
Structure

Serial Shipping Container Code (SSCC)

00

exactly 18 digits

Shipping Container Code

01

exactly 14 digits

Batch Numbers

10

up to 20 alpha numerics

Production Date (YYMMDD)

11

exactly 6 digits

Packaging Date (YYMMDD)

13

exactly 6 digits

Sell By Date (YYMMDD)

15

exactly 6 digits

Expiration Date (YYMMDD)

17

exactly 6 digits

Product Variant

20

exactly 2 digits

Serial Number

21

up to 20 alpha numerics

HIBCC Quantity, Date, Batch and Link

22

up to 29 alpha numerics

23 a

up to 19 alpha numerics

Data Content

Lot Number
Quantity Each

30

Net Weight (Kilograms)

310 b

exactly 6 digits

Length, Meters

311 b

exactly 6 digits

Width or Diameter (Meters)

312 b

exactly 6 digits

Depths (Meters)

313 b

exactly 6 digits

Area (Sq. Meters)

314 b

exactly 6 digits

Volume (Liters)

315 b

exactly 6 digits

Volume (Cubic Meters)

316 b

exactly 6 digits

Net Weight (Pounds)

320 b

exactly 6 digits

Customer PO Number

400

up to 29 alpha numerics

Ship To (Deliver To) Location Code using EAN 13 or DUNS
Number with leading zeros

410

exactly 13 digits

Bill To (Invoice To) Location Code using EAN 13 or DUNS
Number with leading zeros

411

exactly 13 digits

Purchase from

412

exactly 13 digits

Ship To (Deliver To) Postal Code within single postal authority

420

up to 9 alpha numerics

Ship To (Deliver To) Postal Code with 3-digit ISO Country Code
Prefix

421

3 digits plus up to 9 alpha numerics

Roll Products - width, length, core diameter, direction and splices

8001

exactly 14 digits

Electronic Serial number for cellular mobile phone

8002

up to 20 alpha numerics

a. Plus one digit for length indication.
b. Plus one digit for decimal point indication.

Note • Table 9 is a partial table showing the application identifiers. For more current and complete
information, search the Internet for UCC Application Identifier.
1/31/18

Programming Guide

P1099958-001

85

86

ZPL Commands
^BC
For date fields that only need to indicate a year and month, the day field is set to 00.

Chaining several application identifiers (firmware x.11.x or later)
The FNC1, which is invoked by >8, is inserted just before the AI's so that the scanners reading the
code sees the FNC1 and knows that an AI follows.

Example 1: This is an example with the mode parameter set to A (automatic):
^XA
^BY2,2.5,193
^FO33,400
^BCN,,N,N,N,A
^FD>;>80204017773003486100008535>8910001>837252^FS
^FT33,625^AEN,0,0^FD(02)04017773003486(10)0008535(91)0001(37)2
52^FS
^XZ
Example 2: This is an example with the mode parameter set to U:
^XA
^BY3,2.5,193
^FO33,200
^BCN,,N,N,N,U
^FD>;>80204017773003486>8100008535>8910001>837252^FS
^FT33,455^A0N,30,30^FD(02)04017773003486(10)0008535(91)0001(37
)252^FS
^XZ
Example 3: This is an example with the mode parameter set to D*:
^XA
^PON
^LH0,0
^BY2,2.5,145
^FO218,343
^BCB,,Y,N,N,D
^FD(91)0005886>8(10)0000410549>8(99)05^FS
^XZ
D* — When trying to print the last Application Identifier with an odd number of characters, a problem
existed when printing EAN128 bar codes using Mode D. The problem was fixed in firmware version
V60.13.0.6.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^BD

^BD – UPS MaxiCode Bar Code
The ^BD command creates a two-dimensional, optically read (not scanned) code. This symbology
was developed by UPS (United Parcel Service).
Notice that there are no additional parameters for this code and it does not generate an
interpretation line. The ^BY command has no effect on the UPS MaxiCode bar code. However, the
^CV command can be activated.
Format:

^BDm,n,t

Parameters

Details

m = mode

Values:

n = symbol number

Values: 1 to 8 can be added in a structured document

2 = structured carrier message: numeric postal code (U.S.)
3 = structured carrier message: alphanumeric postal code (non-U.S.)
4 = standard symbol, secretary
5 = full EEC
6 = reader program, secretary
Default: 2

Default: 1

t = total number of
symbols

Values: 1 to 8, representing the total number of symbols in this sequence
Default: 1

Example: This is an example of UPS MAXICODE - MODE 2 bar code:

ZPL II CODE
^XA
^FO50,50
^CVY
^BD^FH^FD001840152382802
[)>_1E01_1D961Z00004951_1DUPSN_
1D_06X610_1D159_1D1234567_1D1/1_
1D_1DY_1D634 ALPHA DR_
1DPITTSBURGH_1DPA_1E_04^FS
^FO30,300^A0,30,30^FDMode2^FS
^XZ

UPS MAXICODE - MODE 2

Special Considerations for ^FD when Using ^BD
The ^FD statement is divided into two parts: a high priority message (hpm) and a low priority
message (lpm). There are two types of high priority messages. One is for a U.S. Style Postal Code;
the other is for a non-U.S. Style Postal Code. The syntax for either of these high priority messages
must be exactly as shown or an error message is generated.
Format:

1/31/18

^FD 

Programming Guide

P1099958-001

87

88

ZPL Commands
^BD

Parameters

Details

 = high priority
message
(applicable only
in Modes 2 and
3)

Values: 0 to 9, except where noted
U.S. Style Postal Code (Mode 2)
 = aaabbbcccccdddd
aaa = three-digit class of service
bbb = three-digit country zip code
ccccc = five-digit zip code
dddd = four-digit zip code extension (if none exists, four zeros (0000) must be
entered)

non-U.S. Style Postal Code (Mode 3)

aaa
bbb
ccccc
 = low priority
message (only
applicable in
Modes 2 and 3)

= aaabbbcccccc
= three-digit class of service
= three-digit country zip code
= six-digit zip code (A through Z or 0 to 9)

GS is used to separate fields in a message (0x1D). RS is used to separate format
types (0x1E). EOT is the end of transmission characters.
Message Header [)>RS
Transportation Data
Format Header01GS96
Tracking Number*
SCAC*GS
UPS Shipper NumberGS
Julian Day of PickupGS
Shipment ID NumberGS
Package n/xGS
Package WeightGS
Address ValidationGS
Ship to Street AddressGS
Ship to CityGS
Ship to StateGS
RSRS
End of MessageEOT
(* Mandatory Data for UPS)

Comments
• The formatting of  and  apply only when using Modes 2 and 3.
Mode 4, for example, takes whatever data is defined in the ^FD command and places it in the
symbol.
• UPS requires that certain data be present in a defined manner. When formatting MaxiCode data
for UPS, always use uppercase characters. When filling in the fields in the  for UPS,
follow the data size and types specified in Guide to Bar Coding with UPS.
• If you do not choose a mode, the default is Mode 2. If you use non-U.S. Postal Codes, you
probably get an error message (invalid character or message too short). When using non-U.S.
codes, use Mode 3.
• ZPL II doesn’t automatically change your mode based on the zip code format.
• When using special characters, such as GS, RS, or EOT, use the ^FH command to tell ZPL II to
use the hexadecimal value following the underscore character ( _ ).

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^BE

^BE – EAN-13 Bar Code
The ^BE command is similar to the UPC-A bar code. It is widely used throughout Europe and Japan
in the retail marketplace.
The EAN-13 bar code has 12 data characters, one more data character than the UPC-A code. An
EAN-13 symbol contains the same number of bars as the UPC-A, but encodes a 13th digit into a
parity pattern of the left-hand six digits. This 13th digit, in combination with the 12th digit, represents
a country code.
• ^BE supports fixed print ratios.
• Field data (^FD) is limited to exactly 12 characters. ZPL II automatically truncates or pads on
the left with zeros to achieve the required number of characters.
• When using JAN-13 (Japanese Article Numbering), a specialized application of EAN-13, the
first two non-zero digits sent to the printer must be 49.

Note • Use Interleaved 2 of 5 for UCC and EAN 14.

Important • If additional information about the EAN-13 bar code is required, go to
www.aimglobal.org.
Format:

^BEo,h,f,g

Parameters

Details

o = orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated 90 degrees (clockwise)
inverted 180 degrees
read from bottom up, 270 degrees

Default: current ^FW value

h = bar code height
(in dots)

Values: 1 to 32000

f = print
interpretation
line

Values:

Default: value set by ^BY

N = no
Y = yes

Default: Y

g = print
interpretation
line above code

Values:

N = no
Y = yes

Default: N

1/31/18

Programming Guide

P1099958-001

89

90

ZPL Commands
^BE

Example: This is an example of an EAN-13 bar code:

EAN-13 BAR CODE

ZPL II CODE
^XA
^FO100,100^BY3
^BEN,100,Y,N
^FD12345678^FS
^XZ

EAN-13 BAR CODE CHARACTERS
0

1

2

3

4

5

6

7

8

9

Comments The EAN-13 bar code uses the Mod 10 check-digit scheme for error checking.
For more information on Mod 10, see Mod 10 Check Digit on page 1349.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^BF

^BF – MicroPDF417 Bar Code
The ^BF command creates a two-dimensional, multi-row, continuous, stacked symbology identical
to PDF417, except it replaces the 17-module-wide start and stop patterns and left/right row
indicators with a unique set of 10-module-wide row address patterns. These reduce overall symbol
width and allow linear scanning at row heights as low as 2X.
MicroPDF417 is designed for applications with a need for improved area efficiency but without the
requirement for PDF417’s maximum data capacity. It can be printed only in specific combinations of
rows and columns up to a maximum of four data columns by 44 rows.
Field data (^FD) and field hexadecimal (^FH) are limited to:
• 250 7-bit characters
• 150 8-bit characters
• 366 4-bit numeric characters
Format:

^BFo,h,m

Parameters

Details

o = orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated 90 degrees (clockwise)
inverted 180 degrees
read from bottom up, 270 degrees

Default: current ^FW value

h = bar code height
(in dots)

Values: 1 to 9999

m = mode

Values: 0 to 33 (see Table 10, MicroPDF417 Mode on page 92)

Default: value set by ^BY or 10 (if no ^BY value exists).
Default: 0 (see Table 10)

Example: This is an example of a MicroPDF417 bar code:

ZPL II CODE

MICRO-PDF417 BAR CODE

^XA
^FO100,100^BY6
^BFN,8,3
^FDABCDEFGHIJKLMNOPQRSTUV^FS
^XZ

To encode data into a MicroPDF417 bar code, complete these steps:
1. Determine the type of data to be encoded (for example, ASCII characters, numbers, 8-bit

data, or a combination).
2. Determine the maximum amount of data to be encoded within the bar code (for

example, number of ASCII characters, quantity of numbers, or quantity of 8-bit data
characters).

1/31/18

Programming Guide

P1099958-001

91

92

ZPL Commands
^BF

3. Determine the percentage of check digits that are used within the bar code. The higher

the percentage of check digits that are used, the more resistant the bar code is to
damage — however, the size of the bar code increases.
4. Use Table 10 with the information gathered from the questions above to select the mode

of the bar code.

Table 10 • MicroPDF417 Mode
Mode
(M)

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

P1099958-001

Number Number
of Data of Data
Columns Rows

1
1
1
1
1
1
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4

Programming Guide

11
14
17
20
24
28
8
11
14
17
20
23
26
6
8
10
12
15
20
26
32
38
44
6
8
10
12
15
20
26
32
38
44
4

% of
Max
Cws for
Alpha
EC
Characters

64
50
41
40
33
29
50
41
32
29
28
28
29
67
58
53
50
47
43
41
40
39
38
50
44
40
38
35
33
31
30
29
28
50

6
12
18
22
30
38
14
24
36
46
56
64
72
10
18
26
34
46
66
90
114
138
162
22
34
46
58
76
106
142
178
214
250
14

Max
Digits

8
17
26
32
44
55
20
35
52
67
82
93
105
14
26
38
49
67
96
132
167
202
237
32
49
67
85
111
155
208
261
313
366
20

1/31/18

ZPL Commands
^BI

^BI – Industrial 2 of 5 Bar Codes
The ^BI command is a discrete, self-checking, continuous numeric symbology. The Industrial 2 of 5
bar code has been in use the longest of the 2 of 5 family of bar codes. Of that family, the Standard 2
of 5 (^BJ) and Interleaved 2 of 5 (^B2) bar codes are also available in ZPL II.
With Industrial 2 of 5, all of the information is contained in the bars. Two bar widths are employed in
this code, the wide bar measuring three times the width of the narrow bar.

•

^BI supports a print ratio of 2.0:1 to 3.0:1.

•

Field data (^FD) is limited to the width (or length, if rotated) of the label.

Important • If additional information about the Industrial 2 of 5 bar code, go to
www.aimglobal.org.
Format:

^BIo,h,f,g

Parameters

Details

o = orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated 90 degrees (clockwise)
inverted 180 degrees
read from bottom up, 270 degrees

Default: current ^FW value

h = bar code height
(in dots)

Values: 1 to 32000

f = print
interpretation
line

Values:

Default: value set by ^BY

N = no
Y = yes

Default: Y

g = print
interpretation
line above code

Values:

N = no
Y = yes

Default: N

1/31/18

Programming Guide

P1099958-001

93

94

ZPL Commands
^BI

Example: This is an example of an Industrial 2 of 5 bar code:

INDUSTRIAL 2 OF 5 BAR CODE

ZPL II CODE
^XA
^FO100,100^BY3
^BIN,150,Y,N
^FD123456^FS
^XZ

INDUSTRIAL 2 OF 5 BAR CODE CHARACTERS
0

1

2

3

4

5

6

7

8

9

Start/Stop (internal)

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^BJ

^BJ – Standard 2 of 5 Bar Code
The ^BJ command is a discrete, self-checking, continuous numeric symbology.
With Standard 2 of 5, all of the information is contained in the bars. Two bar widths are employed in
this code, the wide bar measuring three times the width of the narrow bar.

•

^BJ supports a print ratio of 2.0:1 to 3.0:1.

•

Field data (^FD) is limited to the width (or length, if rotated) of the label.

Important • If additional information about the Standard 2 of 5 bar code is required, go to
www.aimglobal.org.
Format:

^BJo,h,f,g

Parameters

Details

o = orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated 90 degrees (clockwise)
inverted 180 degrees
read from bottom up, 270 degrees

Default: current ^FW value

h = bar code height
(in dots)

Values: 1 to 32000

f = print
interpretation
line

Values:

Default: value set by ^BY

N = no
Y = yes

Default: Y

g = print
interpretation
line above code

Values:

N = no
Y = yes

Default: N

Example: This is an example of a Standard 2 of 5 bar code:

ZPL II CODE

STANDARD 2 OF 5 BAR CODE

^XA
^FO100,100^BY3
^BJN,150,Y,N
^FD123456^FS
^XZ

STANDARD 2 OF 5 BAR CODE CHARACTERS
0

1

2

3

4

5

6

7

8

9

Start/Stop (automatic)

1/31/18

Programming Guide

P1099958-001

95

96

ZPL Commands
^BK

^BK – ANSI Codabar Bar Code
The ANSI Codabar bar code is used in a variety of information processing applications such as
libraries, the medical industry, and overnight package delivery companies. This bar code is also
known as USD-4 code, NW-7, and 2 of 7 code. It was originally developed for retail price labeling.
Each character in this code is composed of seven elements: four bars and three spaces. Codabar
bar codes use two character sets, numeric and control (start and stop) characters.

•

^BK supports a print ratio of 2.0:1 to 3.0:1.

•

Field data (^FD) is limited to the width (or length, if rotated) of the label.

Important • If additional information about the ANSI Codabar bar code is required, go to
www.aimglobal.org.
Format:

^BKo,e,h,f,g,k,l

Parameters

Details

o = orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated 90 degrees (clockwise)
inverted 180 degrees
read from bottom up, 270 degrees

Default: current ^FW value

e = check digit

Fixed Value:

N

h = bar code height
(in dots)

Values: 1 to 32000

f = print
interpretation
line

Values:

Default: value set by ^BY

N = no
Y = yes

Default: Y

g = print
interpretation
line above code

Values:

N = no
Y = yes

Default: N
Values: A,B, C, D

k = designates a
start character

Default: A

l = designates stop
character

Default: A

P1099958-001

Values: A,B, C, D

Programming Guide

1/31/18

ZPL Commands
^BK

Example: This is an example of an ANSI Codabar bar code:

ZPL II CODE

ANSI CODABAR BAR CODE

^XA
^FO100,100^BY3
^BKN,N,150,Y,N,A,A
^FD123456^FS
^XZ

ANSI CODABAR BAR CODE CHARACTERS
0

1

2

3

4

5

6

7

8

9

Control Characters

-

:

.

$

/

+

Start/Stop Characters

A

1/31/18

B

Programming Guide

C

D

P1099958-001

97

98

ZPL Commands
^BL

^BL – LOGMARS Bar Code
The ^BL command is a special application of Code 39 used by the Department of Defense.
LOGMARS is an acronym for Logistics Applications of Automated Marking and Reading Symbols.

•

^BL supports a print ratio of 2.0:1 to 3.0:1.

•

Field data (^FD) is limited to the width (or length, if rotated) of the label. Lowercase
letters in the ^FD string are converted to the supported uppercase LOGMARS
characters.

Important • If additional information about the LOGMARS bar code is required, go to
www.aimglobal.org.
Format:

^BLo,h,g

Parameters

Details

o = orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated 90 degrees (clockwise)
inverted 180 degrees
read from bottom up, 270 degrees

Default: current ^FW value

h = bar code height
(in dots)

Values: 1 to 32000

g = print
interpretation
line above code

Values:

Default: value set by ^BY

N = no
Y = yes

Default: N

Example: This is an example of a LOGMARS bar code:

LOGMARS BAR CODE

ZPL II CODE
^XA
^FO100,75^BY3
^BLN,100,N
^FD12AB^FS
^XZ

LOGMARS BAR CODE CHARACTERS
0
1
2
3
4
5
6
7
8
9
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
.
$
/
+
%
SPACE

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^BL

Comments The LOGMARS bar code produces a mandatory check digit using
Mod 43 calculations. For further information on the Mod 43 check digit, see
Mod 10 Check Digit on page 1349.

1/31/18

Programming Guide

P1099958-001

99

100

ZPL Commands
^BM

^BM – MSI Bar Code
The ^BM command is a pulse-width modulated, continuous, non-self- checking symbology. It is a
variant of the Plessey bar code (^BP).
Each character in the MSI bar code is composed of eight elements: four bars and four adjacent
spaces.

•

^BM supports a print ratio of 2.0:1 to 3.0:1.

•

For the bar code to be valid, field data (^FD) is limited to 1 to 14 digits when
parameter e is B, C, or D. ^FD is limited to 1 to 13 digits when parameter e is A, plus a
quiet zone.

Important • If additional information about the MSI bar code is required, go to
www.aimglobal.org.
Format:

^BMo,e,h,f,g,e2

Parameters

Details

o = orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated 90 degrees (clockwise)
inverted 180 degrees
read from bottom up, 270 degrees

Default: current ^FW value

e = check digit
selection

Values:

A
B
C
D

=
=
=
=

no check digits
1 Mod 10
2 Mod 10
1 Mod 11 and 1 Mod 10

Default: B

h = bar code height
(in dots)

Values: 1 to 32000

f = print
interpretation
line

Values:

Default: value set by ^BY

N = no
Y = yes

Default: Y

g = print
interpretation
line above code

Values:

N = no
Y = yes

Default: N

e2 = inserts check
digit into the
interpretation
line

P1099958-001

Values:

N = no
Y = yes

Default: N

Programming Guide

1/31/18

ZPL Commands
^BM

Example: This is an example of a MSI bar code:

MSI BAR CODE

ZPL II CODE
^XA
^FO100,100^BY3
^BMN,B,100,Y,N,N
^FD123456^FS
^XZ

MSI BAR CODE CHARACTERS
1

1/31/18

2

3

4

5

Programming Guide

6

7

8

9

P1099958-001

101

102

ZPL Commands
^BO

^BO – Aztec Bar Code Parameters
The ^BO command creates a two-dimensional matrix symbology made up of square modules
arranged around a bulls-eye pattern at the center.

Note • The Aztec bar code works with firmware version V60.13.0.11A and V50.13.2 or later.
Format:

^BOa,b,c,d,e,f,g

Parameters

Details

a = orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated
inverted 180 degrees
read from bottom up, 270 degrees

Default: current ^FW value

b = magnification
factor

Values: 1 to 10

c = extended channel
interpretation
code indicator

Values:

d = error control and
symbol size/type
indicator

Values:

Default:
1 on 150 dpi printers
2 on 200 dpi printers
3 on 300 dpi printers
6 on 600 dpi printers

Y = if data contains ECICs
N = if data does not contain ECICs.
Default: N
0 = default error correction level
01 to 99 = error correction percentage (minimum)
101 to 104 = 1 to 4-layer compact symbol
201 to 232 = 1 to 32-layer full-range symbol
300 = a simple Aztec “Rune”

Default: 0

e = menu symbol
indicator

Values:

Y = if this symbol is to be a menu (bar code reader initialization) symbol
N = if it is not a menu symbol
Default: N

f = number of symbols
for structured
append

Values: 1 through 26

g = optional ID field
for structured
append

The ID field is a text string with 24-character maximum

P1099958-001

Default: 1

Default: no ID

Programming Guide

1/31/18

ZPL Commands
^BO

Example: This is an example of the ^B0 command:

ZPL II CODE

GENERATED LABEL

^XA
^B0R,7,N,0,N,1,0
^FD 7. This is testing label 7^FS
^XZ

1/31/18

Programming Guide

P1099958-001

103

104

ZPL Commands
^BP

^BP – Plessey Bar Code
The ^BP command is a pulse-width modulated, continuous, non-self- checking symbology.
Each character in the Plessey bar code is composed of eight elements: four bars and four adjacent
spaces.

•

^BP supports a print ratio of 2.0:1 to 3.0:1.

•

Field data (^FD) is limited to the width (or length, if rotated) of the label.

Important • If additional information about the Plessey bar code is required, go to
www.aimglobal.org.
Format:

^BPo,e,h,f,g

Parameters

Details

o = orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated 90 degrees (clockwise)
inverted 180 degrees
read from bottom up, 270 degrees

Default: current ^FW value

e = print check digit

Values:

N = no
Y = yes

Default: N

h = bar code height
(in dots)

Values:

N = no
Y = yes

Default: N

f = print
interpretation
line

Values:

N = no
Y = yes

Default: Y

g = print
interpretation
line above code

Values:

N = no
Y = yes

Default: N

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^BP

Example: This is an example of a Plessey bar code:

ZPL II CODE

PLESSEY BAR CODE

^XA
^FO100,100^BY3
^BPN,N,100,Y,N
^FD12345^FS
^XZ

PLESSEY BAR CODE CHARACTERS
0

1

2

3
A

1/31/18

4
B

C

Programming Guide

5
D

6
E

7

8

9

F

P1099958-001

105

106

ZPL Commands
^BQ

^BQ – QR Code Bar Code
The ^BQ command produces a matrix symbology consisting of an array of nominally square
modules arranged in an overall square pattern. A unique pattern at three of the symbol’s four
corners assists in determining bar code size, position, and inclination.
A wide range of symbol sizes is possible, along with four levels of error correction. User-specified
module dimensions provide a wide variety of symbol production techniques.
QR Code Model 1 is the original specification, while QR Code Model 2 is an enhanced form of the
symbology. Model 2 provides additional features and can be automatically differentiated from Model
1.
Model 2 is the recommended model and should normally be used.
This bar code is printed using field data specified in a subsequent ^FD string.
Encodable character sets include numeric data, alphanumeric data, 8-bit byte data, and Kanji
characters.

Important • If additional information about the QR Code bar code is required, go to
www.aimglobal.org.
Format:

^BQa,b,c,d,e

Parameters

Details

a = field orientation

Values: normal (^FW has no effect on rotation)

b = model

Values: 1 (original) and 2 (enhanced – recommended)
Default: 2

c = magnification
factor

Values: 1 to 10

d = error correction

Values:

Default:
1 on 150 dpi printers
2 on 200 dpi printers
3 on 300 dpi printers
6 on 600 dpi printers

H
Q
M
L

=
=
=
=

ultra-high reliability level
high reliability level
standard level
high density level

Default:

Q = if empty
M = invalid values
e = mask value

Values: 0 - 7
Default: 7

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^BQ

Example 1: This is an example of a QR Code bar code:
ZPL II CODE

QR CODE BAR CODE

^XA
^FO100,100
^BQN,2,10
^FDMM,AAC-42^FS
^XZ

On the pages that follow are specific commands for formatting the ^BQ command with the ^FD
statements that contain the information to be coded.

QR Switches (formatted into the ^FD field data)
There are 4 switch fields that are allowed, some with associated parameters and some without. Two
of these fields are always present, one is optional, and one’s presence depends on the value of
another. The switches are always placed in a fixed order. The four switches, in order are:

Mixed mode iijjxx,Optional (note that this switch ends with a comma “,”)
Error correction level Mandatory
Data input ,Mandatory (note that this switch ends with a comma “,”)
Character Mode Conditional (present if data input is M)

Mixed mode (Optional)
= D - allows mixing of different types of character modes in one code.
ii = code No. – a 2 digit number in the range 01 to 16
Value = subtracted from the Nth number of the divided code (must be two digits).
jj = No. of divisions – a 2 digit number in the range 02 to 16
Number of divisions (must be two digits).
xx = parity data – a 2 digit hexadecimal character in the range 00 to FF
Parity data value is obtained by calculating at the input data (the original input data before
divided byte-by-byte through the EX-OR operation).
, = the mixed mode switch, when present, is terminated with a comma

Error correction level (Required)
= H, Q, M, or L

H = ultra-high reliability level
Q = high reliability level
M = standard level (default)
L = high density level

1/31/18

Programming Guide

P1099958-001

107

108

ZPL Commands
^BQ

Data input (Required)
= A or M followed by a comma
A = Automatic Input (default). Character Mode is not specified.
Data character string JIS8 unit, Shift JIS. When the input mode is Automatic Input, the binary codes
of 0x80 to 0x9F and 0xE0 to 0xFF cannot be set.
M = Manual Input. Character Mode must be specified.
Two types of data input mode exist: Automatic (A) and Manual (M). If A is specified, the
character mode does not need to be specified. If M is specified, the character mode must be
specified.
Character Mode (Required when data input = M)
= N, A, Bxxxx, or K
N = numeric: digits 0 – 9
A = alphanumeric: digits 0 – 9, upper case letters A – Z, space, and $%*+-./:) (45 characters)
Bxxxx = 8-bit byte mode. The ‘xxxx’ is the number of characters and must be exactly 4 decimal
digits.
This handles the 8-bit Latin/Kana character set in accordance with JIS X 0201 (character values
0x00 to 0xFF).
K = Kanji — handles only Kanji characters in accordance with the Shift JIS system based on JIS X
0208. This means that all parameters after the character mode K should be 16-bit characters. If
there are any 8-bit characters (such as ASCII code), an error occurs.
The data to be encoded follows immediately after the last switch.

Considerations for ^FD When Using the QR Code:
QR Switches (formatted into the ^FD field data)
mixed mode 

D = allows mixing of different types of character modes in one code.

code No. <01 16>
Value = subtracted from the Nth number of the divided code (must be two digits).
No. of divisions <02 16>

Number of divisions (must be two digits).
parity data <1 byte>

Parity data value is obtained by calculating at the input data (the original input data
before divided byte-by-byte through the EX-OR operation).
error correction level 

H
Q
M
L

P1099958-001

=
=
=
=

ultra-high reliability level
high reliability level
standard level (default)
high density level

Programming Guide

1/31/18

ZPL Commands
^BQ
character Mode 

N = numeric
A = alphanumeric
Bxxxx = 8-bit byte mode. This handles the 8-bit Latin/Kana character set in accordance

with JIS X 0201 (character values 0x00 to 0xFF).
xxxx = number of data characters is represented by two bytes of BCD code.
K = Kanji — handles only Kanji characters in accordance with the Shift JIS system based
on JIS X 0208. This means that all parameters after the character mode K should be 16-bit
characters. If there are any 8-bit characters (such as ASCII code), an error occurs.
data character string 

Follows character mode or it is the last switch in the ^FD statement.
data input 

A = Automatic Input (default). Data character string JIS8 unit, Shift JIS. When the input

mode is Automatic Input, the binary codes of 0x80 to 0x9F and 0xE0 to 0xFF cannot be
set.
M = Manual Input
Two types of data input mode exist: Automatic (A) and Manual (M). If A is specified, the character
mode does not need to be specified. If M is specified, the character mode must be specified.

^FD Field Data (Normal Mode)
Automatic Data Input (A) with Switches
^FD
A,

^FS

Example 1: QR Code, normal mode with automatic data input.
^XA
^FO20,20^BQ,2,10^FDQA,0123456789ABCD 2D code^FS
^XZ

1

1
2
3

2

3

Q = error correction level
A, = automatic setting
data string character

Manual Data Input (M) with Switches
^FD
M,

^FS

1/31/18

Programming Guide

P1099958-001

109

110

ZPL Commands
^BQ

Example 1: QR Code, normal mode with manual data input:
ZPL II CODE

GENERATED LABEL

^XA
^FO20,20^BQ,2,10
^FDHM,N123456789012345^FS
^XZ

1

2

3

1
2
3
4

4

H = error correction level (ultra-high reliability level
M, = input mode (manual input)
N = character mode (numeric data)
data character string

Example 2: QR Code, normal mode with standard reliability and manual data input:
ZPL II CODE

GENERATED LABEL

^XA
^FO20,20^BQ,2,10^FDMM,AAC-42^FS
^XZ

1
1
2
3
4

P1099958-001

2 3

4

M = error correction level (standard-high reliability level
M, = manual input
A = alphanumeric data
AC-42 = data character string

Programming Guide

1/31/18

ZPL Commands
^BQ

^FD Field Data (Mixed Mode – requires more switches)
Automatic Data Input (A) with Switches
^FD
  ,
 A,
,
,
< : >,

^FS

Manual Data Input (M) with Switches
^FD
  ,
 M,
 ,
 ,
< : > < : >,
 
^FS
n** up to 200 in mixed mode
Example: QR Code, mixed mode with manual data input:

GENERATED LABEL

ZPL II CODE
^XA
^FO,20,20^BQ,2,10
^FDD03048F,LM,N0123456789,A12AABB,B0006qrcode^FS
^XZ



D

(mixed)



M

(code number)



D

(divisions)



M

(0x0C)

‘



L

(high-density level)



M

(manual input)

‘



1/31/18

Programming Guide

N

(numeric data)

P1099958-001

111

112

ZPL Commands
^BQ

0123456789


‘
A



(alphanumeric data)
12AABB



B

(8-bit byte data)

0006

(number of bytes)
qrcode



Example: This is an example of QR Code, mixed mode with automatic data input:

^XA
^FO20,20^BQ,2,10
^FDD03040C,LA,012345678912AABBqrcode^FS
^XZ



D

D (mixed)



M

03 (code number)



D

04 (divisions)



M

0C (0x0C)



L

L (high-density level)



A

A (automatic input)



012345678912AABBqrcode

For proper functionality, when encoding Kanji characters in ^CI28-30 (Unicode) be sure
the JIS.DAT table is loaded on the printer and specified.
Example: This is a Unicode example:

ZPL II CODE

P1099958-001

Programming Guide

GENERATED LABEL

1/31/18

ZPL Commands
^BR

^BR – GS1 Databar
(formerly Reduced Space Symbology)
The ^BR command is bar code types for space-constrained identification from EAN International and
the Uniform Code Council, Inc.
Format:

^BRa,b,c,d,e,f

Parameters

Details

a = orientation

Values:

N
R
I
B

=
=
=
=

Normal
Rotated
Inverted
Bottom-up

Default: R

b = symbology type in
the GS1 DataBar
family

Values:

1
2
3
4
5
6
7
8
9
10
11
12

=
=
=
=
=
=
=
=
=
=
=
=

GS1 DataBar Omnidirectional
GS1 DataBar Truncated
GS1 DataBar Stacked
GS1 DataBar Stacked Omnidirectional
GS1 DataBar Limited
GS1 DataBar Expanded
UPC-A
UPC-E
EAN-13
EAN-8
UCC/EAN-128 and CC-A/B
UCC/EAN-128 and CC-C

Default: 1

c = magnification
factor

Values: 1 to 10

d = separator height

Values: 1 or 2

Default:
24 dot = 6, 12 dot is 3, 8 dot and lower is 2
12 dot = 6, > 8 dot is 3, 8 dot and less is 2
Default: 1

e = bar code height

The bar code height only affects the linear portion of the bar code. Only UCC/EAN
and CC-A/B/C.
Values: 1 to 32000 dots
Default: 25

f = the segment width
(GS1 DataBar
Expanded only)

1/31/18

Values: 2 to 22, even numbers only, in segments per line
Default: 22

Programming Guide

P1099958-001

113

114

ZPL Commands
^BR

Example 1: This is an example of Symbology Type 7 - UPC-A:
ZPL II CODE

GENERATED LABEL

^XA
^FO10,10^BRN,7,5,2,100
^FD12345678901|this is composite info^FS
^XZ

Example 2: This is an example of Symbology Type 1 - GS1 DataBar Omnidirectional:
ZPL II CODE

GENERATED LABEL

^XA
^FO10,10^BRN,1,5,2,100
^FD12345678901|this is composite info^FS
^XZ

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^BS

^BS – UPC/EAN Extensions
The ^BS command is the two-digit and five-digit add-on used primarily by publishers to create bar
codes for ISBNs (International Standard Book Numbers). These extensions are handled as separate
bar codes.
The ^BS command is designed to be used with the UPC-A bar code (^BU) and the UPC-E bar code
(^B9).

•

^BS supports a fixed print ratio.

•

Field data (^FD) is limited to exactly two or five characters. ZPL II automatically
truncates or pads on the left with zeros to achieve the required number of
characters.

Important • If additional information about the UPC/EAN bar code is required, go to
www.aimglobal.org.
Format:

^BSo,h,f,g

Parameters

Details

o = orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated 90 degrees (clockwise)
inverted 180 degrees
read from bottom up, 270 degrees

Default: current ^FW value

h = bar code height
(in dots)

Values: 1 to 32000

f = print
interpretation
line

Values:

Default: value set by ^BY

N = no
Y = yes

Default: Y

g = print
interpretation
line above code

Values:

N = no
Y = yes

Default: Y

1/31/18

Programming Guide

P1099958-001

115

116

ZPL Commands
^BS

Example 1: This is an example of a UPC/EAN Two-digit bar code:
ZPL II CODE

UPC/EAN 2-DIGIT BAR CODE

^XA
^FO100,100^BY3
^BSN,100,Y,N
^FD12^FS
^XZ

UPC/EAN 2-DIGIT BAR CODE CHARACTERS
0

1

2

3

4

5

6

7

8

9

Example 2: This is an example of a UPC/EAN Five-digit bar code:
ZPL II CODE

UPC/EAN 5-DIGIT BAR CODE

^XA
^FO100,100^BY3
^BSN,100,Y,N
^FD12345^FS
^XZ

UPC/EAN 5-DIGIT BAR CODE CHARACTERS
0

1

2

3

4

5

6

7

8

9

Care should be taken in positioning the UPC/EAN extension with respect to the
UPC-A or UPC-E code to ensure the resulting composite code is within the UPC specification.
For UPC codes, with a module width of 2 (default), the field origin offsets for the extension are:

Example 3: This is an example of a UPC-A:
Supplement Origin
X - Offset

Adjustment
Y - Offset

Normal

209 Dots

21 Dots

Rotated

0

209 Dots

Supplement Origin
X - Offset

Adjustment
Y - Offset

Normal

122 Dots

21 Dots

Rotated

0

122 Dots

This is an example of a UPC-E:

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^BS

Additionally, the bar code height for the extension should be 27 dots (0.135 inches) shorter than that
of the primary code. A primary UPC code height of 183 dots (0.900 inches) requires an extension
height of 155 dots (0.765 inches).

Example 4: This example illustrates how to create a normal UPC-A bar code for the value
7000002198 with an extension equal to 04414:
ZPL II CODE

UPC-A BAR CODE WITH EXTENSION

^XA
^FO100,100^BY3
^BUN,137
^FD07000002198^FS
^FO400,121
^BSN,117
^FD04414^FS
^XZ

1/31/18

Programming Guide

P1099958-001

117

118

ZPL Commands
^BT

^BT – TLC39 Bar Code
The ^BT bar code is the standard for the TCIF can tag telecommunications equipment.
The TCIF CLEI code, which is the MicroPDF417 bar code, is always four columns. The firmware
must determine what mode to use based on the number of characters to be encoded.
Format: ^BTo,w1,r1,h1,w2,h2

Parameters

Details

o = orientation

Values:

N
R
I
B
w1 = width of the
Code 39 bar code

=
=
=
=

normal
rotated
inverted
bottom up

Values: (in dots): 1 to 10
Default: (600 dpi printers): 4
Default: (200- and 300 dpi printer): 2

r1 = wide to narrow
bar width ratio
the Code 39 bar
code

Values: 2.0 to 3.0(increments of 0.1)

h1 = height of the
Code 39 bar code

Values: (in dots): 1 to 9999

Default: 2.0

Default: (600 dpi printer): 120
Default: (300 dpi printer): 60
Default: (200 dpi printer): 40

h2 = row height of
the MicroPDF417
bar code

Values: (in dots): 1 to 255

w2 = narrow bar width
of the
MicroPDF417 bar
code

Values: (in dots): 1 to 10

P1099958-001

Default: (600 dpi printer): 8
Default: (200- and 300 dpi printers): 4
Default: (600 dpi printer): 4
Default: (200- and 300 dpi printers): 2

Programming Guide

1/31/18

ZPL Commands
^BT

Example: TLC39 Bar Code
This is an example on how to print TLC39 bar code. The callouts identify the key components and
are followed by a detailed description below:
Use the command defaults to get results that are in compliance with TCIF industry standards;
regardless of printhead density.

1

2

3

1

ECI Number. If the seventh character is not a comma, only Code 39 prints. This means if
more than 6 digits are present, Code 39 prints for the first six digits (and no Micro-PDF
symbol is printed).

•
•
•

2

Serial number. The serial number can contain up to 25 characters and is variable length.
The serial number is stored in the Micro-PDF symbol. If a comma follows the serial
number, then additional data is used below.

•

3

Must be 6 digits.
Firmware generates invalid character error if the firmware sees anything but
6 digits.
This number is not padded.

If present, must be alphanumeric (letters and numbers, no punctuation).

This value is used if a comma follows the ECI number.
Additional data. If present, it is used for things such as a country code.
Data cannot exceed 150 bytes. This includes serial number commas.

•

•

Additional data is stored in the Micro-PDF symbol and appended after the
serial number. A comma must exist between each maximum of 25 characters
in the additional fields.
Additional data fields can contain up to 25 alphanumeric characters per
field.

The result is:

ZPL II CODE

GENERATED LABEL

^XA^FO100,
100^BT^FD123456,
ABCd12345678901234,
5551212,
88899
^FS^XZ

1/31/18

Programming Guide

P1099958-001

119

120

ZPL Commands
^BU

^BU – UPC-A Bar Code
The ^BU command produces a fixed length, numeric symbology. It is primarily used in the retail
industry for labeling packages. The UPC-A bar code has 11 data characters. The 6 dot/mm, 12
dot/mm, and 24 dot/mm printheads produce the UPC-A bar code (UPC/EAN symbologies) at 100
percent size. However, an 8 dot/mm printhead produces the UPC/EAN symbologies at a
magnification factor of 77 percent.

•

^BU supports a fixed print ratio.

•

Field data (^FD) is limited to exactly 11 characters. ZPL II automatically truncates or
pads on the left with zeros to achieve required number of characters.

Important • If additional information about the UPC-A bar code is required, go to
www.aimglobal.org.
Format:

^BUo,h,f,g,e

Parameters

Details

o = orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated 90 degrees (clockwise)
inverted 180 degrees
read from bottom up, 270 degrees

Default: current ^FW value

h = bar code height
(in dots)

Values: 1 to 9999

f = print
interpretation
line

Values:

Default: value set by ^BY

N = no
Y = yes

Default: Y

g = print
interpretation
line above code

Values:

N = no
Y = yes

Default: N

e = print check digit

Values:

N = no
Y = yes

Default: Y
The font style of the interpretation line depends on the modulus (width of narrow bar) selected in
^BY:

Note • Zero is not allowed.
• 6 dot/mm printer: a modulus of 2 dots or greater prints with an OCR-B interpretation line; a
modulus of 1 dot prints font A.
• 8 dot/mm printer: a modulus of 3 dots or greater prints with an OCR-B interpretation line; a
modulus of 1 or 2 dots prints font A.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^BU
• 12 dot/mm printer: a modulus of 5 dots or greater prints with an OCR-B interpretation line; a
modulus of 1, 2, 3, or 4 dots prints font A.
• 24 dot/mm printer: a modulus of 9 dots or greater prints with an OCR-B interpretation line; a
modulus of 1 to 8 dots prints font A.
Example: This is an example of a UPC-A bar code with extension:

ZPL II CODE

UPC-A BAR CODE WITH EXTENSION

^XA
^FO100,100^BY3
^BUN,137
^FD07000002198^FS
^FO400,121
^BSN,117
^FD04414^FS
^XZ

Comments The UPC-A bar code uses the Mod 10 check digit scheme for error checking. For
further information on Mod 10, see Mod 10 Check Digit on page 1349.

1/31/18

Programming Guide

P1099958-001

121

122

ZPL Commands
^BX

^BX – Data Matrix Bar Code
The ^BX command creates a two-dimensional matrix symbology made up of square modules
arranged within a perimeter finder pattern.
Format:

^BXo,h,s,c,r,f,g,a

Parameters

Details

o = orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated 90 degrees (clockwise)
inverted 180 degrees
read from bottom up, 270 degrees

Default: current ^FW value

h = dimensional
height of
individual
symbol elements

Values: 1 to the width of the label

s = quality level

Values: 0, 50, 80, 100, 140, 200

The individual elements are square — this parameter specifies both
module and row height. If this parameter is zero (or not given), the h
parameter (bar height) in ^BY is used as the approximate symbol height.
Default: 0

Quality refers to the amount of data that is added to the symbol for error
correction. The AIM specification refers to it as the ECC value. ECC 50, ECC
80, ECC 100, and ECC 140 use convolution encoding; ECC 200 uses ReedSolomon encoding. For new applications, ECC 200 is recommended. ECC
000-140 should be used only in closed applications where a single party
controls both the production and reading of the symbols and is
responsible for overall system performance.
c = columns to encode

Values: 9 to 49
Odd values only for quality 0 to 140 (10 to 144); even values only for quality 200.

Odd values only for quality 0 to 140 (10 to 144); even values only for
quality 200. The number of rows and columns in the symbol is
automatically determined. You might want to force the number of rows
and columns to a larger value to achieve uniform symbol size. In the
current implementation, quality 0 to 140 symbols are square, so the larger
of the rows or columns supplied are used to force a symbol to that size. If
you attempt to force the data into too small of a symbol, no symbol is
printed. If a value greater than 49 is entered, the rows or columns value is
set to zero and the size is determined normally. If an even value is
entered, it generates INVALID-P (invalid parameter). If a value less than 9
but not 0, or if the data is too large for the forced size, no symbol prints; if
^CV is active, INVALID-L prints.
r = rows to encode

P1099958-001

Values: 9 to 49

Programming Guide

1/31/18

ZPL Commands
^BX

Parameters

Details

f = format ID (0 to
6) — not used
with quality set
at 200

Values:

1 = field data is numeric + space (0..9,”) – No \&’’
2 = field data is uppercase alphanumeric + space (A..Z,’’) – No \&’’
3 = field data is uppercase alphanumeric + space, period, comma, dash,

and slash (0..9,A..Z,“.-/”)
4 = field data is upper-case alphanumeric + space (0..9,A..Z,’’) – no \&’’
5 = field data is full 128 ASCII 7-bit set
6 = field data is full 256 ISO 8-bit set
Default: 6

g = escape sequence
control
character

a = aspect ratio

Values: any character
Default: ~ (tilde)

This parameter is used only if quality 200 is specified. It is the escape
character for embedding special control sequences within the field data.
Important • A value must always be specified when using the escape
sequence control character. If no value is entered, the command is ignored.
The g parmeter will continue to be underscore (_) for anyone with
firmware version: V60.13.0.12, V60.13.0.12Z, V60.13.0.12B,
V60.13.0.12ZB, or later.
Values:

1 = square
2 = rectangular
Default: 1

The a parameter is only
supported in V60.16.5Z
and V53.16.5Z or later.

Table 11 •
ECC
LEVEL

ID = 1

ID = 2

ID = 3

ID = 4

ID = 5

ID = 6

0

596

452

394

413

310

271

50

457

333

291

305

228

200

80

402

293

256

268

201

176

100

300

218

190

200

150

131

140

144

105

91

96

72

63

Maximum Field Sizes

1/31/18

Programming Guide

P1099958-001

123

124

ZPL Commands
^BX

Example 1: This is an example of a square Data Matrix bar code:
ZPL II CODE

DATA MATRIX BAR CODE

^XA
^FO100,100
^BXN,10,200
^FDZEBRA TECHNOLOGIES CORPORATION
333 CORPORATE WOODS PARKWAY
VERNON HILLS, IL
60061-3109^FS
^XZ

Example 2: This is an example of a rectangle Data Matrix bar code:
ZPL II CODE

DATA MATRIX BAR CODE

^XA
^FO100,100
^BXN,10,200,,,,,2
^FDZEBRA TECHNOLOGIES CORPORATION
333 CORPORATE WOODS PARKWAY
^FS
^XZ

a1

Effects of ^BY on ^BX
w = module width (no effect)
r = ratio (no effect)
h = height of symbol

If the dimensions of individual symbol elements are not specified in the ^BY command,
the height of symbol value is divided by the required rows/columns, rounded, limited to a
minimum value of one, and used as the dimensions of individual symbol elements.

Field Data (^FD) for ^BX
Quality 000 to 140
• The \& and || can be used to insert carriage returns, line feeds, and the backslash, similar to the
PDF417. Other characters in the control character range can be inserted only by using ^FH.
Field data is limited to 596 characters for quality 0 to 140. Excess field data causes no symbol to
print; if ^CV is active, INVALID-L prints. The field data must correspond to a user-specified
format ID or no symbol prints; if ^CV is active, INVALID-C prints.
• The maximum field sizes for quality 0 to 140 symbols are shown in the table in the g parameter.

Quality 200
• If more than 3072 bytes are supplied as field data, it is truncated to 3072 bytes. This limits the
maximum size of a numeric Data Matrix symbol to less than the 3116 numeric characters that
the specification would allow. The maximum alphanumeric capacity is 2335 and the maximum
8-bit byte capacity is 1556.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^BX
• If ^FH is used, field hexadecimal processing takes place before the escape sequence
processing described below.
• The underscore is the default escape sequence control character for quality 200 field data. A
different escape sequence control character can be selected by using parameter g in the ^BX
command.
The information that follows applies to firmware version: V60.13.0.12, V60.13.0.12Z, V60.13.0.12B,
V60.13.0.12ZB, or later. The input string escape sequences can be embedded in quality 200 field
data using the ASCII 95 underscore character ( _ ) or the character entered in parameter g:
• _X is the shift character for control characters (e.g., _@=NUL,_G=BEL,_0 is PAD)
• _1 to _3 for FNC characters 1 to 3 (explicit FNC4, upper shift, is not allowed)
• FNC2 (Structured Append) must be followed by nine digits, composed of three-digit numbers
with values between 1 and 254, that represent the symbol sequence and file identifier (for
example, symbol 3 of 7 with file ID 1001 is represented by _2214001001)
• 5NNN is code page NNN where NNN is a three-digit code page value (for example, Code Page
9 is represented by _5009)
• _dNNN creates ASCII decimal value NNN for a code word (must be three digits)
• _ in data is encoded by __ (two underscores)
The information that follows applies to all other versions of firmware. The input string escape
sequences can be embedded in quality 200 field data using the ASCII 7E tilde character (~) or the
character entered in parameter g:
• ~X is the shift character for control characters (e.g., ~@=NUL,~G=BEL,~0 is PAD)
• ~1 to ~3 for FNC characters 1 to 3 (explicit FNC4, upper shift, is not allowed)
• FNC2 (Structured Append) must be followed by nine digits, composed of three-digit numbers
with values between 1 and 254, that represent the symbol sequence and file identifier (for
example, symbol 3 of 7 with file ID 1001 is represented by ~2214001001)
• 5NNN is code page NNN where NNN is a three-digit code page value (for example, Code Page
9 is represented by ~5009)
• ~dNNN creates ASCII decimal value NNN for a code word (must be three digits)
• ~ in data is encoded by a ~ (tilde)

1/31/18

Programming Guide

P1099958-001

125

126

ZPL Commands
^BY

^BY – Bar Code Field Default
The ^BY command is used to change the default values for the module width (in dots), the wide bar
to narrow bar width ratio and the bar code height (in dots). It can be used as often as necessary
within a label format.
Format:

^BYw,r,h

Parameters

Details

w = module width (in
dots)

Values: 1 to 10

r = wide bar to
narrow bar width
ratio

Values: 2.0 to 3.0, in 0.1 increments
This parameter has no effect on fixed-ratio bar codes.

h = bar code height
(in dots)

Initial Value at Power Up: 2

Default: 3.0

Initial Value at Power Up: 10

For parameter r, the actual ratio generated is a function of the number of dots in parameter w,
module width. See Table 12 on page 126. Module width and height (w and h) can be changed at
anytime with the ^BY command, regardless of the symbology selected.
Example: Set module width (w) to 9 and the ratio (r) to 2.4. The width of the narrow bar is 9 dots
wide and the wide bar is 9 by 2.4, or 21.6 dots. However, since the printer rounds out to the nearest
dot, the wide bar is actually printed at 22 dots. This produces a bar code with a ratio of 2.44 (22
divided by 9). This ratio is as close to 2.4 as possible, since only full dots are printed.

Table 12 • Shows Module Width Ratios in Dots
Ratio
Module Width in Dots (w)

Selected
(r)
1

2

3

4

5

6

7

8

9

10

2.0

2:1

2:1

2:1

2:1

2:1

2:1

2:1

2:1

2:1

2:1

2.1

2:1

2:1

2:1

2:1

2:1

2:1

2:1

2:1

2:1

2.1:1

2.2

2:1

2:1

2:1

2:1

2.2:1

2.16:1

2.1:1

2.12:1

2.1:1

2.2:1

2.3

2:1

2:1

2.3:1

2.25:1

2.2:1

2.16:1

2.28:1

2.25:1

2.2:1

2.3:1

2.4

2:1

2:1

2.3:1

2.25:1

2.4:1

2.3:1

2.28:1

2.37:1

2.3:1

2.4:1

2.5

2:1

2.5:1

2.3:1

2.5:1

2.4:1

2.5:1

2.4:1

2.5:1

2.4:1

2.5:1

2.6

2:1

2.5:1

2.3:1

2.5:1

2.6:1

2.5:1

2.57:1

2.5:1

2.5:1

2.6:1

2.7

2:1

2.5:1

2.6:1

2.5:1

2.6:1

2.6:1

2.57:1

2.65:1

2.6:1

2.7:1

2.8

2:1

2.5:1

2.6:1

2.75:1

2.8:1

2.6:1

2.7:1

2.75:1

2.7:1

2.8:1

2.9
3.0

2:1
3:1

2.5:1
3:1

2.6:1
3:1

2.75:1
3:1

2.8:1
3:1

2.8:1
3:1

2.85:1
3:1

2.87:1
3:1

2.8:1
3:1

2.9:1
3:1

Comments Once a ^BY command is entered into a label format, it stays in effect until
another ^BY command is encountered.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^BZ

^BZ – POSTAL Bar Code
The POSTAL bar code is used to automate the handling of mail. POSTAL codes use a series of tall
and short bars to represent the digits.

•

^BZ supports a print ratio of 2.0:1 to 3.0:1.

•

Field data (^FD) is limited to the width (or length, if rotated) of the label and by the
bar code specification.

Format:

^BZo,h,f,g,t

Important • If additional information about the POSTAL and PLANET bar code is required, go
to www.aimglobal.org, or contact the United States Postal Service http://pe.usps.gov. If
additional information about the INTELLIGENT MAIL bar code is required, see:
http://ribbs.usps.gov/OneCodeSolution.
Parameters

Details

o = orientation

Values:

N
R
I
B

=
=
=
=

normal
rotated 90 degrees (clockwise)
inverted 180 degrees
read from bottom up, 270 degrees

Default: current ^FW value

h = bar code height
(in dots)

Values: 1 to 32000

f = print
interpretation
line

Values:

Default: value set by ^BY

N = no
Y = yes
Default:

g = print
interpretation
line above code

Values:

N = no
Y = yes
Default:

t = Postal code type

N

Values:
Postnet bar code
Plant Bar Code
Reserved
USPS Intelligent Mail bar code
Default: 0

0
1
2
3

1/31/18

N

=
=
=
=

Programming Guide

P1099958-001

127

128

ZPL Commands
^BZ

Example 1: This is an example of a POSTNET bar code:
ZPL II CODE

POSTNET BAR CODE

^XA
^FO100,100^BY3
^BZN,40,Y,N
^FD12345^FS
^XZ

POSTNET BAR CODE CHARACTERS
0

1

2

3

4

5

6

7

8

9

Example 2: This is an example of a USPS Intelligent Mail bar code:
ZPL II CODE

USPS INTELLIGENT MAIL BAR CODE

^XA
^FO100,040^BZ,40,,,3
^FD00123123456123456789^FS
^XZ

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^CC ~CC

^CC ~CC – Change Caret
The ^CC command is used to change the format command prefix. The default prefix is the caret (^).
Format: ^CCx or ~CCx

Parameters

Details

x = caret character
change

Values: any ASCII character
Default: a parameter is required. If a parameter is not entered, the next character
received is the new prefix character.

Example: This is an example of how to change the format prefix to / from a ::

^XA
^CC/
/XZ
The forward slash (/) is set at the new prefix. Note the /XZ ending tag uses the new designated
prefix character (/).

Example: This is an example of how to change the format prefix from ~ to a /:

~CC/
/XA/JUS/XZ

1/31/18

Programming Guide

P1099958-001

129

130

ZPL Commands
^CD ~CD

^CD ~CD – Change Delimiter
The ^CD and ~CD commands are used to change the delimiter character. This character is used to
separate parameter values associated with several ZPL II commands. The default delimiter is a
comma (,).
Format:

^CDa or ~CDa

Parameters

Details

a = delimiter
character change

Values: any ASCII character
Default: a parameter is required. If a parameter is not entered, the next character
received is the new prefix character.

Example: This shows how to change the character delimiter to a semi-colon (;):

^XA
^FO10,10
^GB10,10,3
^XZ
^XA
^CD;
^FO10;10
^GB10;10;3
^XZ
•

To save, the JUS command is required. Here is an example using JUS:
~CD;
^XA^JUS^XZ

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^CF

^CF – Change Alphanumeric Default Font
The ^CF command sets the default font used in your printer. You can use the ^CF command to
simplify your programs.
Format:

^CFf,h,w

Parameters

Details

f = specified default
font

Values: A through Z and 0 to 9

h = individual
character height
(in dots)

Values: 0 to 32000

w = individual
character width
(in dots)

Values: 0 to 32000

Initial Value at Power Up: A
Initial Value at Power Up: 9

Initial Value at Power Up: 5 or last permanent saved value

Parameter f specifies the default font for every alphanumeric field. Parameter h is the default height
for every alphanumeric field, and parameter w is the default width value for every alphanumeric field.
The default alphanumeric font is A. If you do not change the alphanumeric default font and do not
use any alphanumeric field command (^AF) or enter an invalid font value, any data you specify
prints in font A.
Defining only the height or width forces the magnification to be proportional to the parameter
defined. If neither value is defined, the last ^CF values given or the default ^CF values for height and
width are used.
Example: This is an example of ^CF code and the result of the code:

ZPL II CODE

GENERATED LABEL

^XA
^CF0,89
^FO20,50
^FDA GUIDE TO^FS
^FO20,150
^FDTHE ZPL II^FS
^FO20,250
^FDPROGRAMMING^FS
^FO20,350
^FDLANGUAGE^FS
^XZ

Comments Any font in the printer, including downloaded fonts, EPROM stored fonts, and
fonts A through Z and 0 to 9, can also be selected with ^CW.

1/31/18

Programming Guide

P1099958-001

131

132

ZPL Commands
^CI

^CI – Change International Font/Encoding
Zebra printers can print fonts using international character sets: U.S.A.1, U.S.A.2, UK, Holland,
Denmark/Norway, Sweden/Finland, Germany, France 1, France 2, Italy, Spain, and several other
sets, including the Unicode character set.
The ^CI command enables you to call up the international character set you want to use for printing.
You can mix character sets on a label.
A character within a font can be remapped to a different numerical position.

In x.14 version of firmware and later, this command allows character remapping when
parameter a = 0-13.
Format:

^CIa,s1,d1,s2,d2,...

Parameters

Details

a = desired character
set

Accepted values are 0 - 12 are Zebra Code Page 850 with specific character
replacements. For details, see International Character Sets on page 134 and/or
Zebra Code Page 850 — Latin Character Set on page 1317.
Values:

Note • These
parameters are only
valid when
parameter
a = 1 - 13

0 = Single Byte Encoding - U.S.A. 1 Character Set
1 = Single Byte Encoding - U.S.A. 2 Character Set
2 = Single Byte Encoding - U.K. Character Set
3 = Single Byte Encoding - Holland Character Set
4 = Single Byte Encoding - Denmark/Norway Character Set
5 = Single Byte Encoding - Sweden/Finland Character Set
6 = Single Byte Encoding - Germany Character Set
7 = Single Byte Encoding - France 1 Character Set
8 = Single Byte Encoding - France 2 Character Set
9 = Single Byte Encoding - Italy Character Set
10 = Single Byte Encoding - Spain Character Set

(parameter details continued on next page)

c. The encoding is controlled by the conversion table (*.DAT). The correct table must be present for the conversion to
function. The table generated by ZTools™ is the TrueType fonts internal encoding (Unicode).
d. Shift-JIS encoding converts Shift-JIS to JIS and then looks up the JIS conversion in JIS.DAT. This table must be present for
Shift-JIS to function.
e. Supports ASCII transparency for Asian encodings. 7F and less are treated as single byte characters. 80 to FE is treated as the
first byte of a 2 byte character 8000 to FEFF in the encoding table for Unicode.
f. The ^CI17 command has been deprecated, along with the ^F8 and ^F16 commands that are required for the ^CI17
command to function. The recommended replacement is the ^CI28-30 commands.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^CI

Parameters
a = desired character
set
(continued)

Values 28 to 30 are only
supported in firmware
version V60.14.x, V50.14.x,
or later.

Values 31 to 36 are only
supported in firmware
version x.16.x or later.

Details
11 = Single Byte Encoding - Miscellaneous Character Set
12 = Single Byte Encoding - Japan (ASCII with Yen symbol) Character Set
13 = Zebra Code Page 850 (see page 1317)
14 = Double Byte Asian Encodings c
15 = Shift-JIS d
16 = EUC-JP and EUC-CN c
17 = Deprecated - UCS-2 Big Endian f
18 to 23 = Reserved
24 = Single Byte Asian Encodings c
25 = Reserved
26 = Multibyte Asian Encodings with ASCII Transparency c and e
27 = Zebra Code Page 1252 (see page 1322)
28 = Unicode (UTF-8 encoding) - Unicode Character Set
29 = Unicode (UTF-16 Big-Endian encoding) - Unicode Character Set
30 = Unicode (UTF-16 Little-Endian encoding) - Unicode Character Set
31 = Zebra Code Page 1250 (see page 1320) is supported for scalable

fonts, such as Font 0, or a downloaded TrueType font. Bitmapped
fonts (including fonts A-H) do not fully support Zebra Code Page
1250. This value is supported only on Zebra G-Series™ printers.
33 = Code Page 1251
34 = Code page 1253
35 = Code Page 1254
36 = Code Page 1255
Initial Value at Power Up: 0

s1 = source 1
(character
output image)

Values: decimals 0 to 255

d1 = destination 1
(character
input)

Values: decimals 0 to 255

s2 = source 2
(character
output image)

Values: decimals 0 to 255

d2 = destination 2
(character
input)

Values: decimals 0 to 255

c. The encoding is controlled by the conversion table (*.DAT). The correct table must be present for the conversion to
function. The table generated by ZTools™ is the TrueType fonts internal encoding (Unicode).
d. Shift-JIS encoding converts Shift-JIS to JIS and then looks up the JIS conversion in JIS.DAT. This table must be present for
Shift-JIS to function.
e. Supports ASCII transparency for Asian encodings. 7F and less are treated as single byte characters. 80 to FE is treated as the
first byte of a 2 byte character 8000 to FEFF in the encoding table for Unicode.
f. The ^CI17 command has been deprecated, along with the ^F8 and ^F16 commands that are required for the ^CI17
command to function. The recommended replacement is the ^CI28-30 commands.

1/31/18

Programming Guide

P1099958-001

133

134

ZPL Commands
^CI

Parameters

Details

… = continuation of
pattern

Up to 256 source and destination pairs can be entered in this command.

c. The encoding is controlled by the conversion table (*.DAT). The correct table must be present for the conversion to
function. The table generated by ZTools™ is the TrueType fonts internal encoding (Unicode).
d. Shift-JIS encoding converts Shift-JIS to JIS and then looks up the JIS conversion in JIS.DAT. This table must be present for
Shift-JIS to function.
e. Supports ASCII transparency for Asian encodings. 7F and less are treated as single byte characters. 80 to FE is treated as the
first byte of a 2 byte character 8000 to FEFF in the encoding table for Unicode.
f. The ^CI17 command has been deprecated, along with the ^F8 and ^F16 commands that are required for the ^CI17
command to function. The recommended replacement is the ^CI28-30 commands.

80 to FF could mean quad byte in GB18030. The ^CI26 command can also be used to
support the GB 18030 and Big5 HKSCS encodings. The GB 18030 uses the GB18030.DAT
encoding table and BIG5 HKSCS uses the BIG5HK.DAT encoding table.
The ^CI17 command has been deprecated, along with the ^F8 and ^F16 commands that are
required for the ^CI17 command to function. The recommended replacement is the ^CI28-30
commands.

We recommend that a ^CI command (or Unicode BOM) is included at the beginning of each
ZPL script. This is important when ZPL scripts with different encodings are being sent to a
single printer. To assist in the interleaving of encoding schemes, the printer maintains two
encoding states (^CI0 - 28 and ^CI29 - 30). It automatically acknowledges when it should
switch encoding states, allowing it to distinguish between encodings, and maintains a ^CI
for each, but endianess is shared.
Example: This example remaps the Euro symbol (21) decimal to the dollar sign value (36) decimal.
When the dollar sign character is sent to the printer, the Euro symbol prints:

ZPL II CODE

GENERATED LABEL

^XA
^CI0,21,36
^FO100,200^A0N50,50^FD$0123^FS
^XZ

The font selected determines the shape and resolution of the printed symbol.

International Character Sets

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^CI

Note • ^CI 13 = US keyboard

Comments The space character cannot be remapped for any font.

1/31/18

Programming Guide

P1099958-001

135

136

ZPL Commands
^CM

^CM – Change Memory Letter Designation
The ^CM command allows you to reassign a letter designation to the printer’s memory devices. If a
format already exists, you can reassign the memory device to the corresponding letter without
forcing, altering, or recreating the format itself.
Using this command affects every subsequent command that refers to specific memory locations.
Format:

^CMa,b,c,d

Parameters

Details

a = memory alias for
B:

Default: B:

b = memory alias for
E:

Default: E:

c = memory alias for
R:

Values: B:, E:,R:, A:, and NONE
Values: B:, E:,R:, A:, and NONE
Values: B:, E:,R:, A:, and NONE
Default: R:
Values: B:, E:,R:, A:, and NONE

d = memory alias for
A:

Default: A:

e = multiple alias

Values: M, or no value
Default: no value
• This parameter is supported on Xi4 and ZM400/ZM600 printers using firmware
V53.17.7Z or later.
• This parameter is supported on G-Series printers using firmware versions
v56.17.7Z and v61.17.7Z or later.
• This parameter is supported on printers using firmware V60.17.7Z or later.

Comments Unless the e (multiple alias) parameter is used, when two or more parameters
specify the same letter designator, all letter designators are set to their default values.
It is recommended that after entering the ^CM command, ^JUS is entered to save changes to
EEPROM. Any duplicate parameters entered will reset the letter designations back to the default.
If any of the parameters are out of specification, the command is ignored.

Example 1: This example designates letter E: to point to the B: memory device, and the letter
B: to point to the E:memory device.
^XA
^CME,B,R,A
^JUS
^XZ
Example 2: This example designates that content sent to, or read from the B: or E: memory
locations will be sent to or read from the E: memory location.
^XA
^CME,E,R,A,M
^JUS
^XZ
P1099958-001

Programming Guide

1/31/18

ZPL Commands
^CM

Example 3: This example designates that content sent to, or read from the A: or E: memory
locations will be sent to or read from the E: memory location.
^XA
^CMB,E,R,E,M
^JUS
^XZ
Example 4: This example designates that content sent to, or read from the A:, B: or E:
memory locations will be sent to or read from the E: memory location.
^XA
^CME,E,R,E,M
^JUS
^XZ

Note • Examples 2, 3 and 4 are the only valid uses of the multiple alias parameter.

1/31/18

Programming Guide

P1099958-001

137

138

ZPL Commands
^CN

^CN – Cut Now
The ^CN causes the printer to cycle the media cutter.

Important • This command works only when the printer is in Print Mode Kiosk (^MMk).
If the printer is not in Print Mode Kiosk, then using this command has no effect. See ^MM
on page 275.
Supported Devices
• KR403
Format:

^CNa

Parameters

Details

a = Cut Mode Override

Values:
0 = Use the “kiosk cut amount” setting from ^KV
1 = Ignore “kiosk cut amount” from ^KV and do a full cut
Default: none
The command is ignored if parameters are missing or invalid.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^CO

^CO – Cache On
The ^CO command is used to change the size of the character cache. By definition, a character
cache (referred to as cache) is a portion of the DRAM reserved for storing scalable characters. All
printers have a default 40K cache that is always turned on. The maximum single character size that
can be stored, without changing the size of the cache, is 450 dots by 450 dots.
There are two types of fonts used in Zebra printers: bitmapped and scalable. Letters, numbers, and
symbols in a bitmapped font have a fixed size (for example: 10 points, 12 points, 14 points). By
comparison, scalable fonts are not fixed in size.
Because their size is fixed, bitmapped fonts can be moved quickly to the label. In contrast, scalable
fonts are much slower because each character is built on an as-needed basis before it is moved to
the label. By storing scaled characters in a cache, they can be recalled at a much faster speed.
The number of characters that can be stored in the cache depends on two factors: the size of the
cache (memory) and the size of the character (in points) being saved. The larger the point size, the
more space in the cache it uses. The default cache stores every scalable character that is requested
for use on a label. If the same character, with the same rotation and size is used again, it is quickly
retrieved from cache.
It is possible that after a while the print cache could become full. Once the cache is full, space for
new characters is obtained by eliminating an existing character from the print cache. Existing
characters are eliminated by determining how often they have been used. This is done
automatically. For example, a 28-point Q that was used only once would be a good candidate for
elimination from the cache.
Maximum size of a single print cache character is 1500 dots by 1500 dots. This would require a
cache of 274K. When the cache is too small for the desired style, smaller characters might appear
but larger characters do not. If possible, increase the size of the cache.
Format:

^COa,b,c

Parameters

Details

a = cache on

Values:

N = no
Y = yes

Default: Y

b = amount of
additional
memory to be
added to cache
(in K)

Values: 1 to 9999

c = cache type

Values:

Default: 40

0 = cache buffer (normal fonts)
1 = internal buffer (recommended for Asian fonts)

Default: 0
Example: To resize the print cache to 62K, assuming a 22K existing cache:

^COY,40
To resize the print cache to 100K, assuming a 22K existing cache:

^COY,78

1/31/18

Programming Guide

P1099958-001

139

140

ZPL Commands
^CO

Print Cache Performance
For printing large characters, memory added to the cache by the ^CO command is not physically
added to the 22K cache already in the printer. In the second example above, the resulting 100K
cache is actually two separate blocks of memory, 22K and 78K.
Because large characters need contiguous blocks of memory, a character requiring a cache of 90K
would not be completely stored because neither portion of the 100K cache is big enough. Therefore,
if large characters are needed, the ^CO command should reflect the actual size of the cache you
need.
Increasing the size of the cache improves the performance in printing scalable fonts. However, the
performance decreases if the size of the cache becomes large and contains too many characters.
The performance gained is lost because of the time involved searching the cache for each character.

Comments The cache can be resized as often as needed. Any characters in the cache when
it is resized are lost. Memory used for the cache reduces the space available for label bitmaps,
graphic, and fonts.
Some Asian fonts require an internal working buffer that is much larger than the normal cache. Since
most fonts do not require this larger buffer, it is now a selectable configuration option. Printing with
the Asian fonts greatly reduces the printer memory available for labels, graphics, fonts, formats, and
label bitmaps.

Note • If you have firmware x.12 or greater this command is not required because the printer
firmware automatically expands the size of the character cache as needed.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^CP

^CP – Remove Label
The ^CP command causes the printer to move a printed label out of the presenter area in one of
several ways.

Supported Devices
• KR403
Format:

^CPa

Parameters

Details

a = kiosk present
mode

Values:
0 = Eject presented page
1 = Retracts presented page
2 = Takes the action defined by c parameter of ^KV command.
Default: none
The command is ignored if parameters are missing or invalid.

1/31/18

Programming Guide

P1099958-001

141

142

ZPL Commands
^CT ~CT

^CT ~CT – Change Tilde
The ^CT and ~CT commands are used to change the control command prefix. The default prefix is
the tilde (~).
Format:

^CTa or ~CTa

Parameters

Details

a = change control
command
character

Values: any ASCII character
Default: a parameter is required. If a parameter is not entered, the next character
received is the new control command character.

Example: This is an example of how to change the control command prefix from a ^ to a +:

^XA
^CT+
^XZ
+HS

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^CV

^CV – Code Validation
The ^CV command acts as a switch to turn the code validation function on and off. When this
command is turned on, all bar code data is checked for these error conditions:
• character not in character set
• check-digit incorrect
• data field too long (too many characters)
• data field too short (too few characters)
• parameter string contains incorrect data or missing parameter
When invalid data is detected, an error message and code is printed in reverse image in place of the
bar code. The message reads INVALID - X where X is one of these error codes:

character not in character set
check-digit incorrect
data field too long
data field too short
parameter string contains incorrect data
(occurs only on select bar codes)

C
E
L
S
P

=
=
=
=
=

Once turned on, the ^CV command remains active from format to format until turned off by another
^CV command or the printer is turned off. The command is not permanently saved.
Format:

^CVa

Parameters

Details

a = code validation

Values:

N = no
Y = yes
Default: N

1/31/18

Programming Guide

P1099958-001

143

144

ZPL Commands
^CV

Example: The examples below show the error labels ^CVY generates when incorrect field data is
entered. Compare the letter following INVALID – to the listing on the previous page.

ZPL II CODE
^XA
^CVY
^FO50,50
^BEN,100,Y,N
^FD97823456 890^FS
^XZ

GENERATED LABEL

^XA
^CVY
^FO50,50
^BEN,100,Y,N
^FD9782345678907^FS
^XZ
^XA
^CVY
^FO50,50
^BEN,100,Y,N
^FD97823456789081^FS
^XZ
^XA
^CVY
^FO50,50
^BEN,100,Y,N
^FD97823456789^FS
^XZ
^XA
^CVY
^FO50,50
^BQN2,3
^FDHM,BQRCODE-22^FS
^XZ

Comments If more than one error exists, the first error detected is the one displayed.
The ^CV command tests the integrity of the data encoded into the bar code. It is not used for (or to
be confused with) testing the scan-integrity of an image or bar code.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^CW

^CW – Font Identifier
All built-in fonts are referenced using a one-character identifier. The ^CW command assigns a single
alphanumeric character to a font stored in DRAM, memory card, EPROM, or Flash.
If the assigned character is the same as that of a built-in font, the downloaded font is used in place of
the built-in font. The new font is printed on the label wherever the format calls for the built-in font. If
used in place of a built-in font, the change is in effect only until power is turned off.
If the assigned character is different, the downloaded font is used as an additional font. The
assignment remains in effect until a new command is issued or the printer is turned off.
Format:

^CWa,d:o.x

Parameters

Details

a = letter of
existing font to
be substituted,
or new font to
be added

Values: A through Z and 0 to 9

d = device to store
font in
(optional)

Values: R:, E:, B:, and A:
Default: R:

o = name of the
downloaded font
to be
substituted for
the built-in, or
as an additional
font

Values: any name up to 8 characters

x = extension

Values:

.TTE is only supported in

Default: a one-character entry is required

Default: if a name is not specified, UNKNOWN is used

.FNT = Font
.TTF = TrueType Font
.TTE = TrueType Extension

firmware version V60.14.x,
V50.14.x, or later.

1/31/18

Programming Guide

P1099958-001

145

146

ZPL Commands
^CW

Example: These examples show how to use:
• MYFONT.FNT stored in DRAM whenever a format calls for Font A:

•

•

^XA
^CWA,R:MYFONT.FNT
^XZ
MYFONT.FNT stored in DRAM additionally as Font Q:
^XA
^CWQ,R:MYFONT.FNT
^XZ
NEWFONT.FNT stored in DRAM whenever a format calls for font F:
^XA
^CWF,R:NEWFONT.FNT
^XZ

Label Listing Before Assignment

P1099958-001

Programming Guide

Label Listing After Assignment

1/31/18

ZPL Commands
~DB

~DB – Download Bitmap Font
The ~DB command sets the printer to receive a downloaded bitmap font and defines native cell size,
baseline, space size, and copyright.
This command consists of two portions, a ZPL II command defining the font and a structured data
segment that defines each character of the font.
Format:

~DBd:o.x,a,h,w,base,space,#char,©,data

Parameters

Details

d = drive to store
font

Default: R:

Values: R:, E:, B:, and A:

o = name of font

Values: 1 to 8 alphanumeric characters
Default: if a name is not specified, UNKNOWN is used

x = extension

Format:

a = orientation of
native font

Fixed Value:

h = maximum height of
cell (in dots)

Values: 1 to 32000

w = maximum width of
cell (in dots)

Values: 1 to 32000

base = dots from top
of cell to
character
baseline

Values: 1 to 32000

space = width of
space or
non-existent
characters

Values: 1 to 32000

#char = number of
characters in
font

Values: 1 to 256 (must match the characters being downloaded)

© = copyright holder

Values: 1 to 63 alphanumeric characters

.FNT
normal

Default: a value must be specified
Default: a value must be specified
Default: a value must be specified

Default: a value must be specified

Default: a value must be specified

Default: a value must be specified

data = structured
ASCII data that
defines each
character in the
font

1/31/18

The # symbol signifies character code parameters, which are separated with
periods. The character code is from 1 to 4 characters to allow for large international
character sets to be downloaded to the printer.
The data structure is:
#xxxx.h.w.x.y.i.data
#xxxx = character code
h = bitmap height (in dot rows)
w = bitmap width (in dot rows)
x = x-offset (in dots)
y = y-offset (in dots)
i = typesetting motion displacement (width, including
inter character gap of a particular character in the font)
data = hexadecimal bitmap description

Programming Guide

P1099958-001

147

148

ZPL Commands
~DB

Example: This is an example of how to use the ~DB command. It shows the first two characters of
a font being downloaded to DRAM.

~DBR:TIMES.FNT,N,5,24,3,10,2,ZEBRA 1992,
#0025.5.16.2.5.18.
OOFF
OOFF
FFOO
FFOO
FFFF
#0037.4.24.3.6.26.
OOFFOO
OFOOFO
OFOOFO
OOFFOO

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~DE

~DE – Download Encoding
The standard encoding for TrueType Windows® fonts is always Unicode. The ZPL II field data must
be converted from some other encoding to Unicode that the Zebra printer understands. The required
translation tables are provided with font packs. Some tables can be downloaded from
www.zebra.com.
Format:

~DEd:o.x,s,data

Parameters

Details

d = location of table

Values: R:, E:, B:, and A:
Default: R:

o = name of table

Values: any valid name, up to 8 characters
Default: if a name is not specified, UNKNOWN is used

x = extension

Format:

s = table size

Values: the number of memory bytes required to hold the Zebra downloadable
format of the font
Default: if an incorrect value or no value is entered, the command is ignored

data = data string

Values: a string of ASCII hexadecimal values
Default: if no data is entered, the command is ignored

.DAT

Example: This is an example of how to download the required translation table:
~DER:JIS.DAT,27848,300021213001...
(27848 two-digit hexadecimal values)

Comments For more information on ZTools or ZebraNet Bridge, see the program
documentation included with the software.
For assistance with editing or adding mappings to .DAT tables, ZebraNet Bridge includes a
.DAT table editor in the font wizard.
Encoding scheme for the data sent to the printer is the second four character and the encoding
scheme for the font is the first four characters throughout the .DAT file. The data must be ordered by
the second four characters (the encoding table).
Example: This is an example of a .DAT table. The table below the example identifies the elements:
~DEE:EXAMPLE.DAT,16,
00310041
00320042

1
2

00330043
00340044

3
4

1/31/18

Programming Guide

P1099958-001

149

150

ZPL Commands
~DE

1
2
3
4

Input stream with 0041 will be mapped to
0031. The printer prints "1".
Input stream with 0042 will be mapped to
0032. The printer prints "2".
Input stream with 0043 will be mapped to
0033. The printer prints "3".
Input stream with 0044 will be mapped to
0034. The printer prints "4".

Data must have 0041, 0042, 0043, and 0044 in order. Multiple pairs can be on the same line.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^DF

^DF – Download Format
The ^DF command saves ZPL II format commands as text strings to be later merged using ^XF with
variable data. The format to be stored might contain field number (^FN) commands to be referenced
when recalled.
While use of stored formats reduces transmission time, no formatting time is saved—this command
saves ZPL II as text strings formatted at print time.
Enter the ^DF stored format command immediately after the ^XA command, then enter the format
commands to be saved.
Format:

^DFd:o.x

Parameters

Details

d = device to store
image

Default: R:

Values: R:, E:, B:, and A:

o = image name

Values: 1 to 16 alphanumeric characters with a file type of 1 to 3 alphanumeric
characters separated by a "."
Default: if a name is not specified, UNKNOWN is used.

x = extension

Format:

.ZPL

For a complete example of the ^DF and ^XF command, see ^DF and ^XF — Download format and
recall format on page 38.
Example: This example is generated using the ^XF command to recall this format:

ZPL II CODE

GENERATED LABEL

^XA
^DFR:STOREFMT.ZPL^FS
^FO25,25
^AD,36,20^FN1^FS
^FO165,25
^AD,36,20^FN2^FS
^FO25,75
^AB,22,14^FDBUILT BY^FS
^FO25,125
^AE,28,15^FN1
^XZ
^XA
^XFR:STOREFMT.ZPL^FS
^FN1^FDZEBRA^FS
^XZ

1/31/18

Programming Guide

P1099958-001

151

152

ZPL Commands
~DG

~DG – Download Graphics
The ~DG command downloads an ASCII Hex representation of a graphic image. If .GRF is not the
specified file extension, .GRF is automatically appended.
For more saving and loading options when downloading files, see ~DY on page 159.
Format:

~DGd:o.x,t,w,data

Parameters

Details

d = device to store
image

Values: R:, E:, B:, and A:
Default: R:

o = image name

Values: 1 to 8 alphanumeric characters
Default: if a name is not specified, UNKNOWN is used

x = extension

Format:

.GRF

t = total number of
bytes in graphic

See the formula in the examples below.

w = number of bytes
per row

See the formula in the examples below.

data = ASCII
hexadecimal
string defining
image

The data string defines the image and is an ASCII hexadecimal representation of
the image. Each character represents a horizontal nibble of four dots.

This is the key for the examples that follow:

x
y
z
8

P1099958-001

= width of the graphic in millimeters
= height of the graphic in millimeters
= dots/mm = print density of the printer being programmed
= bits/byte

Programming Guide

1/31/18

ZPL Commands
~DG

Examples: These are some example related to the ~DG command:
To determine the t parameter use this formula:

xz
----- × yz = totalbytes
8
To determine the correct t parameter for a graphic 8 mm wide, 16 mm high, and a print density of 8
dots/mm, use this formula:

8 × 128 = 1024
t = 1024
Raise any portion of a byte to the next whole byte.
To determine the w parameter (the width in terms of bytes per row) use this formula:

xz
----- = ( totalbytes ) ⁄ ( row )
8
w = 8
To determine the correct w parameter for a graphic 8 mm wide and a print density of 8 dots/mm, use
this formula:

8----------× 8- = 8bytes
8
w = 8

Raise any portion of a byte to the next whole byte.
Parameter w is the first value in the t calculation.
The data parameter is a string of hexadecimal numbers sent as a representation of the graphic
image. Each hexadecimal character represents a horizontal nibble of four dots. For example, if the
first four dots of the graphic image are white and the next four black, the dot-by-dot binary code is
00001111. The hexadecimal representation of this binary value is 0F. The entire graphic image is
coded in this way, and the complete graphic image is sent as one continuous string of hexadecimal
values.

This is an example of using the ~DG command to load a checkerboard pattern into DRAM. The name
used to store the graphic is SAMPLE.GRF:

ZPL II CODE

GENERATED LABEL

~DGR:SAMPLE.GRF,00080,010,
FFFFFFFFFFFFFFFFFFFF
8000FFFF0000FFFF0001
8000FFFF0000FFFF0001
8000FFFF0000FFFF0001
FFFF0000FFFF0000FFFF
FFFF0000FFFF0000FFFF
FFFF0000FFFF0000FFFF
FFFFFFFFFFFFFFFFFFFF
^XA
^FO20,20^XGR:SAMPLE.GRF,1,1^FS
^XZ

1/31/18

Programming Guide

P1099958-001

153

154

ZPL Commands
~DG

Comments Do not use spaces or periods when naming your graphics. Always use different
names for different graphics.
If two graphics with the same name are sent to the printer, the first graphic is erased and replaced by
the second graphic.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~DN

~DN – Abort Download Graphic
After decoding and printing the number of bytes in parameter t of the ~DG command, the printer
returns to normal Print Mode. Graphics Mode can be aborted and normal printer operation resumed
by using the ~DN command.
Format:

~DN

Comments If you need to stop a graphic from downloading, you should abort the
transmission from the host device. To clear the ~DG command, however, you must send a ~DN
command.

1/31/18

Programming Guide

P1099958-001

155

156

ZPL Commands
~DS

~DS – Download Intellifont (Scalable Font)
The ~DS command is used to set the printer to receive a downloadable scalable font and defines the
size of the font in bytes.
The ~DS command, and its associated parameters, is the result of converting a vendor-supplied font
for use on a Zebra printer. To convert this font use the ZTools utility.
Format:

~DSd:o.x,s,data

Parameters

Details

d = device to store
image

Default: R:

o = image name

Values: 1 to 8 alphanumeric characters

Values: R:, E:, B:, and A:

Default: if a name is not specified, UNKNOWN is used

x = extension

Fixed Value:

.FNT

s = size of font in
bytes

Fixed Value: this number is generated by ZTools and should
not be changed

data = ASCII
hexadecimal
string that
defines font

Fixed Value: this number is generated by ZTools and should
not be changed

Example: This example shows the first three lines of a scalable font that was converted using the
ZTools program and is ready to be downloaded to the printer. If necessary, the destination and object
name can be changed.

~DSB:CGTIMES.FNT,37080,
OOFFOOFFOOFFOOFF
FFOAECB28FFFOOFF

Comments Downloaded scalable fonts are not checked for integrity. If they are corrupt,
they cause unpredictable results at the printer.
If you are using a TrueType font use these commands: ~DT, ~DU, and ~DY. To determine
when to use the noted commands, see ~DT on page 157, ~DU on page 158, and ~DY
on page 159.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~DT

~DT – Download Bounded TrueType Font
Use ZTools to convert a TrueType font to a Zebra-downloadable format. that has less than 256
characters in it. To convert a font that has more than 256 characters, see ~DU on page 158. ZTools
creates a downloadable file that includes a ~DT command. For information on converting and
downloading Intellifont information, see ~DS on page 156.
Format:

~DTd:o.x,s,data

Parameters

Details

d = font location

Values: R:, E:, B:, and A:
Default: R:

o = font name

Values: any valid TrueType name, up to 8 characters
Default: if a name is not specified, UNKNOWN is used

x = extension

Fixed Value:

s = font size

Values: the number of memory bytes required to hold the Zebra-downloadable
format of the font
Default: if an incorrect value or no value is entered, the command is ignored

data = data string

Values: a string of ASCII hexadecimal values (two hexadecimal digits/byte). The
total number of two-digit values must match parameter s.

.DAT

Default: if no data is entered, the command is ignored
Example: This is an example of how to download a true type font:

~DTR:FONT,52010,00AF01B0C65E...
(52010 two-digit hexadecimal values)

1/31/18

Programming Guide

P1099958-001

157

158

ZPL Commands
~DU

~DU – Download Unbounded TrueType Font
Some international fonts, such as Asian fonts, have more than
256 printable characters. These fonts are supported as large TrueType fonts and are downloaded to
the printer with the ~DU command. Use ZTools to convert the large TrueType fonts to a Zebradownloadable format.
The Field Block (^FB) command cannot support the large TrueType fonts.
Format:

Parameters

~DUd:o.x,s,data

Details

d = font location

Values: R:, E:, B:, and A:
Default: R:

o = font name

Values: 1 to 8 alphanumeric characters
Default: if a name is not specified, UNKNOWN is used

x = extension

Format:

s = font size

Values: the number of memory bytes required to hold the Zebra-downloadable
format of the font
Default: if no data is entered, the command is ignored

data = data string

Values: a string of ASCII hexadecimal values (two hexadecimal digits/byte). The
total number of two-digit values must match parameter s.

.FNT

Default: if no data is entered, the command is ignored
Example: This is an example of how to download an unbounded true type font:

~DUR:KANJI,86753,60CA017B0CE7...
(86753 two-digit hexadecimal values)

For similar commands, see ~DS on page 156, ~DT on page 157, and ~DY on page 159.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~DY

~DY – Download Objects
The ~DY command downloads to the printer graphic objects or fonts in any supported format. This
command can be used in place of ~DG for more saving and loading options. ~DY is the preferred
command to download TrueType fonts on printers with firmware later than X.13. It is faster than ~DU.
The ~DY command also supports downloading wireless certificate files.

Note • When using certificate files, your printer supports:
• Using Privacy Enhanced Mail (PEM) formatted certificate files.
• Using the client certificate and private key as two files, each downloaded separately.
• Using exportable PAC files for EAP-FAST.
• Zebra recommends using Linear style memory devices for storing larger objects.
Format:

~DYd:f,b,x,t,w,data

Parameters
d = file location

Details
Values: R:, E:, B:, and A:
Default: R:

.NRD and .PAC files reside
on E: in firmware versions
V60.15.x, V50.15.x, or later.
f = file name

Values: 1 to 8 alphanumeric characters
Default: if a name is not specified, UNKNOWN is used

b = format downloaded
in data field

Values:

.TTE and .TTF are only
supported in firmware
versions V60.14.x, V50.14.x,
or later.

Default: a value must be specified

x = extension of
stored file

Values:

.TTE and .OTF are only
supported in firmware
versions V60.14.x, V50.14.x,
or later.

.NRD and .PAC are only
supported in firmware
versions V60.15.x, V50.15.x,
or later.

1/31/18

A
B
C
P

=
=
=
=

B =
E =
G =
P =
T =
X =
NRD
PAC
C =
F =
H =

uncompressed (ZB64, ASCII)
uncompressed (.TTE, .TTF, binary)
AR-compressed (used only by Zebra’s BAR-ONE® v5)
portable network graphic (.PNG) - ZB64 encoded

bitmap
TrueType Extension (.TTE)
raw bitmap (.GRF)
store as compressed (.PNG)
TrueType (.TTF) or OpenType (.OTF)
Paintbrush (.PCX)
= Non Readable File (.NRD)
= Protected Access Credential (.PAC)
User defined menu file (WML)
User defined webpage file (HTM)
Printer feedback file (GET)

Default: a value other than the accepted values defaults to .GRF

Programming Guide

P1099958-001

159

160

ZPL Commands
~DY

Parameters

Details

t = total number of
bytes in file

Values:
.BMP

This parameter refers to the actual size of the file, not the amount of
disk space.
.GRF images: the size after decompression into memory

This parameter refers to the actual size of the file, not the amount of
disk space.
.PCX

This parameter refers to the actual size of the file, not the amount of
disk space.
.PNG images:

This parameter refers to the actual size of the file, not the amount of
disk space.
.TTF

.TTE is only supported in
firmware versions V60.14.x,
V50.14.x, or later.

This parameter refers to the actual size of the file, not the amount of
disk space.
.TTE

This parameter refers to the actual size of the file, not the amount of
disk space.
w = total number of
bytes per row

.TTE is only supported in
firmware version V60.14.x,
V50.14.x, or later.

Values:

.GRF images: number of bytes per row
.PNG images: value ignored
.TTF images: value ignored
.TTE images: value ignored
.NRD images: value ignored
.PAC images: value ignored

.NRD and .PAC files are
supported in firmware
version V60.15.x, V50.15.x,
or later.
data = data

ASCII hexadecimal encoding, ZB64, or binary data, depending on b.
A, P = ASCII hexadecimal or ZB64
B, C = binary
When binary data is sent, all control prefixes and flow control characters are ignored
until the total number of bytes needed for the graphic format is received.

Note • When transmitting fonts or graphics, the ~DY command and the binary content can be sent
as two separate data streams. In cases where the ~DY command and data content are sent
separately, the connection to the printer must be maintained until both the command and data
content have been sent. If the command and data content are sent separately, the data light on the
printer will remain lit until it receives all the data called for in the ~DY command. The download will
be considered complete when the number of bytes called out in the ~DY command have been
received.
For best results, graphic files must be monochrome (black and white) or dithered.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~DY

Example: This is an example of how to download a binary TrueType Font file of Size bytes using
the name fontfile.ttf and storing it to permanent flash memory on the printer:
~DYE:FONTFILE.TTF,B,T,SIZE,,

Examples: These examples show:
• that when the ^IM command is used with the ^FO command, the ^IM command (see ^IM
on page 220) moves the logo.png file from a storage area to the 0,0 position on the label.
This is the ZPL code:

^XA
^FO0,0^IMR:LOGO.PNG^FS
^XZ
• that when the ^IL command (see ^IL on page 219) is used at the beginning of a label format, it
loads a stored image (logo.png) of a format and merges it with additional data. It is
automatically positioned at the 0,0 position of the label and does not require the ^FO command.
This is the ZPL code:

^XA
^ILR:LOGO.PNG
^XZ

Comments For more information on ZB64 encoding and compression, see
ZB64 Encoding and Compression on page 1365.
These are some important things to know about this command in firmware version
V60.14.x, V50.14.x, or later:

1/31/18

•

ZebraNet Bridge can be used to download fonts and graphics with this command.

•

OpenType tables are only supported when downloading the font with this
command

•

OpenType fonts (.OTF) are supported if they are downloaded as a TrueType font. In
the printer .OTF fonts have the .TTF extension.

Programming Guide

P1099958-001

161

162

ZPL Commands
~EG

~EG – Erase Download Graphics
See ^ID on page 217.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^FB

^FB – Field Block
The ^FB command allows you to print text into a defined block type format. This command formats
an ^FD or ^SN string into a block of text using the origin, font, and rotation specified for the text
string. The ^FB command also contains an automatic word-wrap function.
Format:

^FBa,b,c,d,e

Parameters

Details

a = width of text
block line (in
dots)

Values: 0 to the width of the label

b = maximum number of
lines in text
block

Values: 1 to 9999

c = add or delete
space between
lines (in dots)

Values: -9999 to 9999

d = text
justification

Values:

Default: 0
If the value is less than font width or not specified, text does not print.
Default: 1
Text exceeding the maximum number of lines overwrites the last line. Changing
the font size automatically increases or decreases the size of the block.
Default: 0
Numbers are considered to be positive unless preceded by a minus sign.
Positive values add space; negative values delete space.

L
C
R
J

=
=
=
=

left
center
right
justified

Default: L
If J is used the last line is left-justified.

e = hanging indent
(in dots) of the
second and
remaining lines

1/31/18

Values: 0 to 9999
Default: 0

Programming Guide

P1099958-001

163

164

ZPL Commands
^FB

Example: These are examples of how the ^FB command affects field data.

ZPL II CODE

GENERATED LABEL

^XA
^CF0,30,30^FO25,50
^FB250,4,,
^FDFD command that IS\&
preceded by an FB \&command.
^FS
^XZ

^XA
^CF0,30,30^FO25,50
^FDFD command that IS NOT
preceded by an FB command.^FS
^XZ

Comments
This scheme can be used to facilitate special functions:

\& = carriage return/line feed
\(*) = soft hyphen (word break with a dash)
\\ = backslash (\)
Item 1: ^CI13 must be selected to print a backslash (\).
Item 2: If a soft hyphen escape sequence is placed near the end of a line, the hyphen is printed. If it
is not placed near the end of the line, it is ignored.

(*) = any alphanumeric character
• If a word is too long to print on one line by itself (and no soft hyphen is specified), a hyphen is
automatically placed in the word at the right edge of the block. The remainder of the word is on
the next line. The position of the hyphen depends on word length, not a syllable boundary. Use
a soft hyphen within a word to control where the hyphenation occurs.
• Maximum data-string length is 3K, including control characters, carriage returns, and line feeds.
• Normal carriage returns, line feeds, and word spaces at line breaks are discarded.
• When using ^FT (Field Typeset), ^FT uses the baseline origin of the last possible line of text.
Increasing the font size causes the text block to increase in size from bottom to top. This could
cause a label to print past its top margin.
• When using ^FO (Field Origin), increasing the font size causes the text block to increase in size
from top to bottom.
• ^FS terminates an ^FB command. Each block requires its own ^FB command.
While the ^FB command has a text justification parameter that defines the justification of the text
within the block, it also interacts with the justification of ^FO and ^FT that define the justification of
the origin.
The ^FB command does not support soft hyphens as a potential line break point. However, soft
hyphen characters are always printed as if they were a hyphen.
The ^FB command does not support complex text. For complex text support, use ^TB.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^FB

1/31/18

Programming Guide

P1099958-001

165

166

ZPL Commands
^FC

^FC – Field Clock
The ^FC command is used to set the clock-indicators (delimiters) and the clock mode for use with
the Real-Time Clock hardware. This command must be included within each label field command
string each time the Real-Time Clock values are required within the field.
Format: ^FCa,b,c

Parameters

Details

a = primary clock
indicator
character

Values: any ASCII character
Default: %

b = secondary clock
indicator
character

Values: any ASCII character
Default: none—this value cannot be the same as a or c

c = third clock
indicator
character

Values: any ASCII character
Default: none—this value cannot be the same as a or b

Example: Entering these ZPL commands sets the primary clock indicator to %, the secondary clock
indicator to {, and the third clock indicator to #. The results are printed on a label with Primary,
Secondary, and Third as field data.

ZPL II CODE

GENERATED LABEL

^XA
^FO10,100^A0N,50,50
^FC%,{,#
^FDPrimary: %m/%d/%y^FS
^FO10,200^A0N,50,50
^FC%,{,#
^FDSecondary: {m/{d/{y^FS
^FO10,300^A0N,50,50
^FC%,{,#
^FDThird: #m/#d/#y^FS
^XZ

Comments The ^FC command is ignored if the Real Time Clock hardware is not present. As
of V60.13.0.10, (^SN) functions with (^FC) capabilities.
For more details on the Real Time Clock, see Real Time Clock on page 1375.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^FD

^FD – Field Data
The ^FD command defines the data string for a field. The field data can be any printable character
except those used as command prefixes (^ and ~).
In RFID printers, it can also be used to specify passwords to write to tags.
Format:

^FDa

Parameters

Details

a =
• data to be printed (all

Values: any data string up to 3072 bytes
Default: none—a string of characters must be entered

•

printers), or
a password to be written
to a RFID tag (rfid
printers)

Comments The ^ and ~ characters can be printed by changing the prefix characters—see
^CD ~CD on page 130 and ^CT ~CT on page 142. The new prefix characters cannot be printed.
Characters with codes above 127, or the ^ and ~ characters, can be printed using the ^FH and ^FD
commands.
• ^CI13 must be selected to print a backslash (\).
For information on using soft hyphens, see Comments on the ^FB command on page 164.

1/31/18

Programming Guide

P1099958-001

167

168

ZPL Commands
^FH

^FH – Field Hexadecimal Indicator
The ^FH command allows you to enter the hexadecimal value for any character directly into the ^FD
statement. The ^FH command must precede each ^FD command that uses hexadecimals in its
field.
Within the ^FD statement, the hexadecimal indicator must precede each hexadecimal value. The
default hexadecimal indicator is _ (underscore). There must be a minimum of two characters
designated to follow the underscore. The a parameter can be added when a different hexadecimal
indicator is needed.
This command can be used with any of the commands that have field data (that is ^FD, ^FV (Field
Variable), and ^SN (Serialized Data)).
Valid hexadecimal characters are:
0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f
Format:

^FHa

Parameters

Details

a = hexadecimal
indicator

Values: any character except current format and control prefix (^ and ~ by default)
Default: _ (underscore)

Example: This is an example of how to enter a hexadecimal value directly into a ^FD statement:
This is an example for ascii data using ^CI0.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^FH

Examples: These are examples of how ^FH works with UTF-8 and UTF-16BE:

UTF-8
ZPL II CODE

GENERATED LABEL

^XA
^CI28
^LL500
^FO100,100
^AA,20,20
^FH^FDU+00A1 in UTF8 = _C2_A1^FS
^XZ

UTF-16BE
ZPL II CODE

GENERATED LABEL

^XA
^CI29
^LL500
^FO100,100
^AA,20,20
^FH^FDU+00A1 in UTF16BE = _00_A1^FS
^XZ

1/31/18

Programming Guide

P1099958-001

169

170

ZPL Commands
^FL

^FL

– Font Linking
The ^FL command provides the ability to link any TrueType font, including private character fonts, to
associated fonts.
If the base font does not have a glyph for the required character, the printer looks to the linked fonts
for the glyph. The font links are user-definable. The font linking remains until the link is broken or the
printer is turned off. To permanently save the font linking, use the ^JUS command.

Note • For assistance in setting up the font links, use the font wizard in ZebraNet Bridge.
Format:

^FL,,

Parameters

Details



This is the fully-qualified filename of the extension. This file name does not accept
wildcards.
The supported extensions for this parameter are: .TTF and .TTE. The format for
this parameter is the memory device followed by the font name with the extension,
as follows:

E:SWISS721.TTF


This is the filename of the base font(s). The base font can be any of the following
types:

.FNT
.TTF or
.TTE
From these font types you can only link to a .TTF or .TTE.
The name of the base font can be expressed as a wild card; doing so will define
multiple base fonts. The result will be that all base font files so defined will be linked
to the file defined in the  parameter.
The filename does not have to match a file that is currently defined on the printer. A
specification of *.TTF results in all *.TTF font files loaded on the printer currently
or in the future to be linked with the specified  font extension.



This is an indicator that determines if the extension is to be linked with the base, or
unlinked from the base, as follows:
Values:

0 =  is to be unlinked (disassociated) from the file(s) specified in

1 =  is to be linked (associated) with the file(s) specified by 
Default: must be an accepted value or it is ignored

Comments A font can have up to five fonts linked to it. The printer resident font, 0.FNT is
always the last font in the list of font links, but is not included in the five link maximum. It can
also be placed anywhere in the font links list.
The default glyph prints when a glyph cannot be found in any of the fonts in the link list. The
advanced layout command ^PA determines if the default glyph is a space character or the default
glyph of the base font, which is typically a hollow box.
The list of font links can be printed by using the ^LF command or retrieved with the ^HT command.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^FL

Examples: These examples show the code and output for no font linking and for font linking:
No Font Linking
In the no font linking example, the Swiss721 font does not have the Asian glyphs, which is why
Asian glyphs do not print.

ZPL II CODE

GENERATED LABEL

Font Linking
In the font linking example, this code is sent down to link the ANMDJ.TTF font to
SWISS721.TTF font:

^XA
^FLE:ANMDJ.TTF,E:SWISS721.TTF,1^FS
^XZ
When the label reprints, the Asian characters are printed using the ANMDJ.TTF font, rather than
the SWISS721.TTF font.

ZPL II CODE

1/31/18

Programming Guide

GENERATED LABEL

P1099958-001

171

172

ZPL Commands
^FM

^FM – Multiple Field Origin Locations
The ^FM command allows you to control the placement of bar code symbols.
It designates field locations for the PDF417 (^B7) and MicroPDF417 (^BF) bar codes when the
structured append capabilities are used. This allows printing multiple bar codes from the same set of
text information.
The structured append capability is a way of extending the text printing capacity of both bar codes. If
a string extends beyond what the data limitations of the bar code are, it can be printed as a series: 1
of 3, 2 of 3, 3 of 3. Scanners read the information and reconcile it into the original, unsegmented text.
The ^FM command triggers multiple bar code printing on the same label with ^B7 and ^BF only.
When used with any other commands, it is ignored.
Format:

^FMx1,y1,x2,y2,...

Parameters

Details

x1 = x-axis location
of first symbol
(in dots)

Values:
0 to 32000
e = exclude this bar code from printing
Default: a value must be specified

y1 = y-axis location
of first symbol
(in dots)

Values:
0 to 32000
e = exclude this bar code from printing
Default: a value must be specified

x2 = x-axis location
of second symbol
(in dots)

Values:
0 to 32000
e = exclude this bar code from printing
Default: a value must be specified

y2 = y-axis location
of second symbol
(in dots)

Values:
0 to 32000
e = exclude this bar code from printing
Default: a value must be specified

… = continuation of
X,Y pairs

P1099958-001

Maximum number of pairs: 60

Programming Guide

1/31/18

ZPL Commands
^FM

Example: This example shows you how to generate three bar codes with the text “Zebra
Technologies Corporation strives to be…” would need to be repeated seven times, which includes
2870 characters of data (including spaces) between ^FD and ^FS:

ZPL II CODE

GENERATED LABEL

^XA
^FM100,100,100,600,100,1200
^BY2,3
^B7N,5,5,9,83,N
^FDZebra Technologies
Corporation strives to be
the expert supplier of
innovative solutions to
specialty demand labeling
and ticketing problems of
business and government.
We will attract and retain
the best people who will
understand our customer's
needs and provide them with
systems, hardware, software,
consumables and service
offering the best value,
high quality, and reliable
performance, all delivered
in a timely manner
…
^FS^XZ

1

1

1/31/18

The ellipse is not part of the code. It indicates that the text needs to be repeated
seven times, as mentioned in the example description.

Programming Guide

P1099958-001

173

174

ZPL Commands
^FM

Example: This example assumes a maximum of three bar codes, with bar code 2 of 3 omitted:

ZPL II CODE

GENERATED LABEL

^XA
^FM100,100,e,e,100,1200
^BY2,3
^B7N,5,5,9,83,N
^FDZebra Technologies
Corporation strives to be
the expert supplier of
innovative solutions to
specialty demand labeling
and ticketing problems of
business and government.
We will attract and retain
the best people who will
understand our customer's
needs and provide them with
systems, hardware, software,
consumables and service
offering the best value,
high quality, and reliable
performance, all delivered
in a timely manner
…
^FS^XZ

1

1

The ellipse is not part of the code. It indicates that the text needs to be repeated
seven times, as mentioned in the example description.

Comments Subsequent bar codes print once the data limitations of the previous bar code
have been exceeded. For example, bar code 2 of 3 prints once 1 of 3 has reached the
maximum amount of data it can hold. Specifying three fields does not ensure that three bar
codes print; enough field data to fill three bar code fields has to be provided.
The number of the x,y pairs can exceed the number of bar codes generated. However, if too few
are designated, no symbols print.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^FN

^FN – Field Number
The ^FN command numbers the data fields. This command is used in both ^DF (Store Format) and
^XF (Recall Format) commands.
In a stored format, use the ^FN command where you would normally use the ^FD (Field Data)
command. In recalling the stored format, use ^FN in conjunction with the ^FD command.
The optional "a" parameter can be used with the KDU Plus to cause prompts to be displayed on the
KDU unit. Also, when the Print on Label link is selected on the Directory page of ZebraLink enabled
printers the field prompt displays.

The number of fields and data that can be stored is dependent in the available printer
memory.
Note • The maximum number of ^FN commands that can be used depends on the amount of data
that is placed in the fields on the label. It is recommended to use 400 or fewer fields.
Format:

^FN#"a"

Parameters

Details

# = number to be
assigned to the
field

Values: 0 to 9999

"a" = optional
parameter*

Values: 255 alphanumeric characters maximum
(a-z,A-Z,1-9 and space)
Default: optional parameter

Default: 0

* This parameter is only available on printers with firmware V50.13.2, V53.15.5Z, V60.13.0.1, or
later. For a complete example of the ^DF and ^XF command, see ^DF and ^XF — Download format
and recall format on page 38.

Comments
• The same ^FN value can be stored with several different fields.
• If a label format contains a field with ^FN and ^FD, the data in that field prints for any other field
containing the same ^FN value.
• For the "a" parameter to function as a prompt the characters used in the "a" parameter must
be surrounded by double quotes (see example).
Example: The ^FN1"Name" would result in "Name" being used as the prompt on the
KDU unit.

1/31/18

Programming Guide

P1099958-001

175

176

ZPL Commands
^FO

^FO – Field Origin
The ^FO command sets a field origin, relative to the label home (^LH) position. ^FO sets the upperleft corner of the field area by defining points along the x-axis and y-axis independent of the rotation.
Format:

^FOx,y,z

Parameters

Details

x = x-axis location
(in dots)

Values: 0 to 32000

y = y-axis location
(in dots)

Values: 0 to 32000

z = justification

Values:

The z parameter is only
supported in firmware
versions V60.14.x, V50.14.x,
or later.

Default: last accepted ^FW value or ^FW default

Default: 0
Default: 0

0 = left justification
1 = right justification
2 = auto justification (script dependent)

Comments If the value entered for the x or y parameter is too high, it could position the
field origin completely off the label.
This command interacts with the field direction parameter of ^FP and with the rotation parameter of
^A. For output and examples, see Field Interactions on page 1369.

The auto justification option might cause unexpected results if variable fields or
bidirectional text are used with ^FO. For the best results with bidirectional text and/or
variable fields, use either the left of right justification option.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^FP

^FP – Field Parameter
The ^FP command allows vertical and reverse formatting of the font field, commonly used for
printing Asian fonts.
Format:

^FPd,g
.

Parameters

Details

d = direction

Values:

H = horizontal printing (left to right)
V = vertical printing (top to bottom)
R = reverse printing (right to left)

Default: H

g = additional
inter-character
gap (in dots)

Values: 0 to 9999
Default: 0 if no value is entered

Example: This is an example of how to implement reverse and vertical print:

For vertical and reverse printing directions, combining semantic clusters are used to place
characters.
This command interacts with the justification parameters of ^FO and ^FT and with the rotation
parameter of ^A. For output and examples, see Field Interactions on page 1369.

1/31/18

Programming Guide

P1099958-001

177

178

ZPL Commands
^FR

^FR – Field Reverse Print
The ^FR command allows a field to appear as white over black or black over white. When printing a
field and the ^FR command has been used, the color of the output is the reverse of its background.
Format:

^FR

Example: In this example, the ^GB command creates areas of black allowing the printing to appear
white:

ZPL II CODE

GENERATED LABEL

^XA
^PR1
^FO100,100
^GB70,70,70,,3^FS
^FO200,100
^GB70,70,70,,3^FS
^FO300,100
^GB70,70,70,,3^FS
^FO400,100
^GB70,70,70,,3^FS
^FO107,110^CF0,70,93
^FR^FDREVERSE^FS
^XZ

Comments The ^FR command applies to only one field and has to be specified each time.
When multiple ^FR commands are going to be used, it might be more convenient to use the
^LR command.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^FS

^FS – Field Separator
The ^FS command denotes the end of the field definition. Alternatively, ^FS command can also be
issued as a single ASCII control code SI (Control-O, hexadecimal 0F).
Format:

1/31/18

^FS

Programming Guide

P1099958-001

179

ZPL Commands
^FT

^FT – Field Typeset
The ^FT command sets the field position, relative to the home position of the label designated by the
^LH command. The typesetting origin of the field is fixed with respect to the contents of the field and
does not change with rotation.

Note • The ^FT command is capable of concantination of fields.
Format:

^FTx,y,z

Parameters

Details

x = x-axis location
(in dots)

Values: 0 to 32000

y = y-axis location
(in dots)

Values: 0 to 32000

z = justification

Values:

Default: position after last formatted text field
Default: position after last formatted text field

0 = left justification
1 = right justification
2 = auto justification (script dependent)

Default: last accepted ^FW value or ^FW default
The z parameter is only
supported in firmware
version V60.14.x, V50.14.x,
or later.

The auto justification option may cause unexpected results if variable fields or
bidirectional text are used with ^FT. For best results with bidirectional text and/or
variable fields, use either the left of right justification options.

Left
Justified

Table 13 • Typeset Justification

Right
Justified

180

P1099958-001

Text

For examples, see Field Interactions on page 1369.

Bar Codes

Origin is base of bar code, at left edge

Graphic Boxes

Origin is bottom-left corner of the box

Images

Origin is bottom-left corner of the image area

Text

For examples, see Field Interactions on page 1369.

Bar Codes

Origin is base of bar code, at right edge

Graphic Boxes

Origin is bottom-right corner of the box

Images

Origin is bottom-right corner of the image area

Programming Guide

1/31/18

ZPL Commands
^FT

Example: This is an example of the ^FT command and concatenation:

When a coordinate is missing, the position following the last formatted field is assumed. This
remembering simplifies field positioning with respect to other fields. Once the first field is positioned,
other fields follow automatically.
There are several instances where using the ^FT command without specifying x and y parameters
is not recommended:
• when positioning the first field in a label format
• at any time with the ^FN (Field Number) command
• following an ^SN (Serialization Data) command
• variable data
• bidirectional text

The right typeset justified is available only for printers with firmware version V60.14.x,
V50.14.x, or later.
This command interacts with the field direction parameters of ^FP and with the rotation parameter
of ^A. For output and code examples, see Field Interactions on page 1369

1/31/18

Programming Guide

P1099958-001

181

182

ZPL Commands
^FV

^FV – Field Variable
^FV replaces the ^FD (field data) command in a label format when the field is variable.
Format:

^FVa

Parameters

Details

a = variable field
data to be
printed

Values: 0 to 3072 byte string
Default: if no data is entered, the command is ignored

Example: This is an example of how to use the ^MC and ^FV command:

ZPL II CODE

GENERATED LABEL

^XA
^FO40,40
^GB300,203,8^FS
^FO55,60^CF0,25
^FVVARIABLE DATA #1^FS
^FO80,150
^FDFIXED DATA^FS
^MCN
^XZ

^XA
^FO55,60^CF0,25
^FVVARIABLE DATA #2^FS
^MCY
^XZ

Comments ^FV fields are always cleared after the label is printed. ^FD fields are not
cleared.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^FW

^FW – Field Orientation
The ^FW command sets the default orientation for all command fields that have an orientation
(rotation) parameter (and in x.14 sets the default justification for all commands with a justification
parameter). Fields can be rotated 0, 90, 180, or 270 degrees clockwise by using this command. In
x.14, justification can be left, right, or auto.
The ^FW command affects only fields that follow it. Once you have issued a ^FW command, the
setting is retained until you turn off the printer or send a new ^FW command to the printer.
Format:

^FWr,z

Parameters

Details

r = rotate field

Values:

N
R
I
B

=
=
=
=

normal
rotated 90 degrees
inverted 180 degrees
bottom-up 270 degrees, read from bottom up

Initial Value at Power Up: N
z = justification

Values:

The z parameter is available
only with printers with
firmware version V60.14.x,
V50.14.x, or later.

Default: auto for ^TB and left for all other commands

0 = left justification
1 = right justification
2 = auto justification (script dependent)

Example: This example shows how ^FW rotation works in conjunction with ^FO. In this example,
note that:

•
•

the fields using A0N print the field in normal rotation
the fields with no rotation indicated (A0) follow the rotation used in the ^FW command
(^FWR).
ZPL II CODE

GENERATED LABEL

^XA
^FWR
^FO150,90^A0N,25,20^FDZebra Technologies^FS
^FO115,75^A0,25,20^FD0123456789^FS
^FO150,115^A0N,25,20^FD333 Corporate Woods
Parkway^FS
^FO400,75^A0,25,20^FDXXXXXXXXX^FS
^XZ

Comments ^FW affects only the orientation in commands where the rotation parameter
has not been specifically set. If a command has a specific rotation parameter, that value is
used.

1/31/18

Programming Guide

P1099958-001

183

184

ZPL Commands
^FW

^FW affects only the justification in commands where the parameter has not been set. If a

command has a specific justification parameter that value is used .

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^FX

^FX – Comment
The ^FX command is useful when you want to add non-printing informational comments or
statements within a label format. Any data after the ^FX command up to the next caret (^) or tilde (~)
command does not have any effect on the label format. Therefore, you should avoid using the caret
(^) or tilde (~) commands within the ^FX statement.
Format:

^FXc

Parameters

Details

c = non printing
comment

Creates a non-printable comment.

Example: This is an example of how to use the ^FX command effectively:

ZPL II CODE

GENERATED LABEL

^XA
^LH100,100^FS
^FXSHIPPING LABEL^FS
^FO10,10^GB470,280,4^FS
^FO10,190^GB470,4,4^FS
^FO10,80^GB240,2,2^FS
^FO250,10^GB2,100,2^FS
^FO250,110^GB226,2,2^FS
^FO250,60^GB226,2,2^FS
^FO156,190^GB2,95,2^FS
^FO312,190^GB2,95,2^FS
^XZ

Comments Correct usage of the ^FX command includes following it with the ^FS
command.

1/31/18

Programming Guide

P1099958-001

185

186

ZPL Commands
^GB

^GB – Graphic Box
The ^GB command is used to draw boxes and lines as part of a label format. Boxes and lines are
used to highlight important information, divide labels into distinct areas, or to improve the
appearance of a label. The same format command is used for drawing either boxes or lines.
Format:

^GBw,h,t,c,r

Parameters

Details

w = box width (in
dots)

Default: value used for thickness (t) or 1

h = box height (in
dots)

Values: value of t to 32000
Values: value of t to 32000
Default: value used for thickness (t) or 1

t = border thickness
(in dots)

Values: 1 to 32000

c = line color

Values:

Default: 1

B = black
W = white
Default: B

r = degree of cornerrounding

Values: 0 (no rounding) to 8 (heaviest rounding)
Default: 0

For the w and h parameters, keep in mind that printers have a default of 6, 8, 12, or
24 dots/millimeter. This comes out to 153, 203, 300, or 600 dots per inch. To determine the values
for w and h, calculate the dimensions in millimeters and multiply by 6, 8, 12, or 24.
If the width and height are not specified, you get a solid box with its width and height as specified by
value t.
The roundness-index is used to determine a rounding-radius for each box. Formula:

rounding-radius = (rounding-index / 8) * (shorter side / 2)
where the shorter side is the lesser of the width and height (after adjusting for minimum and default
values).

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^GB

Examples: Here are a few examples of graphic boxes:
Width: 1.5 inch; Height: 1 inch; Thickness: 10; Color: default; Rounding: default
ZPL II CODE

GENERATED LABEL

^XA
^FO50,50
^GB300,200,10^FS
^XZ

Width: 0 inch; Height: 1 inch; Thickness: 20; Color: default; Rounding: default:
ZPL II CODE

GENERATED LABEL

^XA
^FO50,50
^GB0,203,20^FS
^XZ

Width: 1 inch; Height: 0 inch; Thickness: 30; Color: default; Rounding: default
ZPL II CODE

GENERATED LABEL

^XA
^FO50,50
^GB203,0,20^FS
^XZ

Width: 1.5 inch; Height: 1 inch; Thickness: 10; Color: default; Rounding: 5
ZPL II CODE

GENERATED LABEL

^XA
^FO50,50
^GB300,200,10,,5^FS
^XZ

1/31/18

Programming Guide

P1099958-001

187

188

ZPL Commands
^GC

^GC – Graphic Circle
The ^GC command produces a circle on the printed label. The command parameters specify the
diameter (width) of the circle, outline thickness, and color. Thickness extends inward from the
outline.
Format: ^GCd,t,c

Parameters

Details

d = circle diameter
(in dots)

Values: 3 to 4095 (larger values are replaced with 4095)

t = border thickness
(in dots)

Values: 2 to 4095

c = line color

Values:

Default: 3
Default: 1

B = black
W = white
Default: B
Example: This is an example of how to create a circle on the printed label:

ZPL II CODE

GENERATED LABEL

^XA
^FO50,50
^GC250,10,B^FS
^XZ

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^GD

^GD – Graphic Diagonal Line
The ^GD command produces a straight diagonal line on a label. This can be used in conjunction with
other graphic commands to create a more complex figure.
Format:

^GDw,h,t,c,o

Parameters

Details

w = box width (in
dots)

Values: 3 to 32000

h = box height (in
dots)

Values: 3 to 32000

t = border thickness
(in dots)

Values: 1 to 32000
Default: 1

c = line color

Values:

Default: value of t (thickness) or 3
Default: value of t (thickness) or 3

B = black
W = white
Default: B

o = orientation
(direction of
the diagonal)

Values:

R (or /) = right-leaning diagonal
L (or \) = left-leaning diagonal

Default: R

Example: This is an example of how to create a diagonal line connecting one corner with the
opposite corner of a box on a printed label:

ZPL II CODE

GENERATED LABEL

^XA
^FO150,100
^GB350,203,10^FS
^FO155,110
^GD330,183,10,,R^FS
^XZ

1/31/18

Programming Guide

P1099958-001

189

190

ZPL Commands
^GE

^GE – Graphic Ellipse
The ^GE command produces an ellipse in the label format.
Format:

^GEw,h,t,c

Parameters

Details

w = ellipse width (in
dots)

Values: 3 to 4095 (larger values are replaced with 4095)
Default: value used for thickness (t) or 1

h = ellipse height
(in dots)

Values: 3 to 4095
Default: value used for thickness (t) or 1

t = border thickness
(in dots)

Values: 2 to 4095
Default: 1

c = line color

Values:

B = black
W = white
Default: B
Example: This is an example of how to create a ellipse on a printed label:

ZPL II CODE

GENERATED LABEL

^XA
^FO100,100
^GE300,100,10,B^FS
^XZ

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^GF

^GF – Graphic Field
The ^GF command allows you to download graphic field data directly into the printer’s bitmap
storage area. This command follows the conventions for any other field, meaning a field orientation
is included. The graphic field data can be placed at any location within the bitmap space.
Format:

^GFa,b,c,d,data

Parameters

Details

a = compression type

Values:

A = ASCII hexadecimal (follows the format for other download

commands)
B = binary (data sent after the c parameter is strictly binary)
C = compressed binary (data sent after the c parameter is in
compressed binary format. The data is compressed on the host side
using Zebra’s compression algorithm. The data is then
decompressed and placed directly into the bitmap.)
Default: A

b = binary byte count

Values: 1 to 99999
This is the total number of bytes to be transmitted for the total image or the total
number of bytes that follow parameter d. For ASCII download, the parameter
should match parameter c. Out-of-range values are set to the nearest limit.
Default: command is ignored if a value is not specified

c = graphic field
count

Values: 1 to 99999
This is the total number of bytes comprising the graphic format (width x height),
which is sent as parameter d. Count divided by bytes per row gives the number
of lines in the image. This number represents the size of the image, not
necessarily the size of the data stream (see d).
Default: command is ignored if a value is not specified

d = bytes per row

Values: 1 to 99999
This is the number of bytes in the downloaded data that comprise one row of the
image.
Default: command is ignored if a value is not specified

data = data

Values:
ASCII hexadecimal data: 00 to FF
A string of ASCII hexadecimal numbers, two digits per image byte. CR and LF
can be inserted as needed for readability. The number of two-digit number pairs
must match the above count. Any numbers sent after count is satisfied are
ignored. A comma in the data pads the current line with 00 (white space),
minimizing the data sent. ~DN or any caret or tilde character prematurely aborts
the download.
Binary data: Strictly binary data is sent from the host. All control prefixes are
ignored until the total number of bytes needed for the graphic format is sent.
Example: This example downloads 8,000 total bytes of data and places the graphic data at location
100,100 of the bitmap. The data sent to the printer is in ASCII form.
^FO100,100^GFA,8000,8000,80,ASCII data

1/31/18

Programming Guide

P1099958-001

191

192

ZPL Commands
^GF

Example: This example downloads 8,000 total bytes of data and places the graphic data at location
100,100 of the bitmap. The data sent to the printer is in binary form.
^FO100,100^GFB,8000,8000,80,Binary data

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^GS

^GS – Graphic Symbol
The ^GS command enables you to generate the registered trademark, copyright symbol, and other
symbols.
Format:

^GSo,h,w

Parameters

Details

o = field orientation

Values:

N
R
I
B

=
=
=
=

normal
rotate 90 degrees clockwise
inverted 180 degrees
bottom-up, 270 degrees

Default: N or last ^FW value

h = character height
proportional to
width (in dots)

Values: 0 to 32000
Default: last ^CF value

w = character width
proportional to
height (in dots)

Values: 0 to 32000
Default: last ^CF value

Example: Use the ^GS command followed by ^FD and the appropriate character (A through E)
within the field data to generate the desired character:

ZPL II CODE

GENERATED LABEL

^XA^CFD
^FO50,50
^FDZEBRA PROGRAMMING^FS
^FO50,75
^FDLANGUAGE II (ZPL II )^FS
^FO280,75
^GS^FDC^FS
^XZ

1/31/18

Programming Guide

P1099958-001

193

194

ZPL Commands
~HB

~HB – Battery Status
When the ~HB command is sent to the printer, a data string is sent back to the host. The string starts
with an  control code sequence and terminates by an  control code
sequence.

Important • This command only responds to mobile printers.
Format:

~HB

Parameters: when the printer receives the command, it returns:

bb.bb,hh.hh,bt

bb.bb
hh.hh
bt




=
=
=
=
=
=
=

ASCII start-of-text character
current battery voltage reading to the nearest 1/4 volt
current head voltage reading to the nearest 1/4 volt
battery temperature in Celsius
ASCII end-of-text character
ASCII carriage return
ASCII line feed character

Comments This command is used for the power-supply battery of the printer and should
not be confused with the battery backed-up RAM.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~HD

~HD – Head Diagnostic
The ~HD command echoes printer status information that includes the power supply and head
temperature using the terminal emulator.
Format:

~HD

Example: This is an example of the ~HD command:

1/31/18

Programming Guide

P1099958-001

195

196

ZPL Commands
^HF

^HF – Host Format
The ^HF command sends stored formats to the host.
Format:

^HFd,o,x

Parameters

Details

d = device to recall
image

Values: R:, E:, B:, and A:
Default: R:

o = image name

Values: 1 to 8 alphanumeric characters
Default: if a name is not specified, UNKNOWN is used

x = extension

Fixed Value:

.ZPL

Example: This example shows the sequence and results.
Using a terminal emulator, you download this code to the printer:
^XA
^DFB:FILE1.ZPL
^FO100,100^A0,100
^FDTEST^FS
^XZ
Then you send this code to the printer:

^XA
^HFB:FILE1.ZPL
^XZ
The terminal emulator returns this code:
^XA^DFFILE1,
^FO100,100^A0,100^FDTEST^FS
^XZ

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^HG

^HG – Host Graphic
The ^HG command is used to upload graphics to the host. The graphic image can be stored for
future use, or it can be downloaded to any Zebra printer.
Format:

^HGd:o.x

Parameters

Details

d = device
location of
object

Default: search priority

o = object name

Values: 1 to 8 alphanumeric characters

Values: R:, E:, B:, and A:

Default: if a name is not specified, UNKNOWN is used

x = extension

Fixed Value:

.GRF

Comments For more information on uploading graphics, see ^HY on page 215.

1/31/18

Programming Guide

P1099958-001

197

198

ZPL Commands
^HH

^HH – Configuration Label Return
The ^HH command echoes printer configuration back to the host, using a terminal emulator.
Format:

^HH

Example: This is an example of what is returned to the host when ^XA^HH^XZ is sent to the printer:

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~HI

~HI – Host Identification
The ~HI command is designed to be sent from the host to the Zebra printer to retrieve information.
Upon receipt, the printer responds with information on the model, software version, dots-permillimeter setting, memory size, and any detected options.
Format:

~HI

When the printer receives this command, it returns:

XXXXXX,V1.0.0,dpm,000KB,X

XXXXXX = model of Zebra printer
V1.0.0 = version of software
dpm = dots/mm
6, 8, 12, or 24 dots/mm printheads
000KB = memory
512KB = 1/2 MB
1024KB = 1 MB
2048KB = 2 MB
4096KB = 4 MB
8192KB = 8 MB
x = recognizable options
only options specific to printer are shown (cutter, options, et cetera.)

1/31/18

Programming Guide

P1099958-001

199

200

ZPL Commands
~HM

~HM – Host RAM Status
Sending ~HM to the printer immediately returns a memory status message to the host. Use this
command whenever you need to know the printer’s RAM status.
When ~HM is sent to the Zebra printer, a line of data containing information on the total amount,
maximum amount, and available amount of memory is sent back to the host.
Format:

~HM

Example: This example shows when the ~HM is sent to the printer, a line of data containing three
numbers are sent back to the host. Each set of numbers is identified and explained in the table that
follows:

2
1

1
2
3

1024,0780,0780

3

The total amount of RAM (in kilobytes) installed in the printer. In this
example, the printer has 1024K RAM installed.
The maximum amount of RAM (in kilobytes) available to the user. In
this example, the printer has a maximum of 780K RAM available.
The amount of RAM (in kilobytes) currently available to the user. In
this example, there is 780K of RAM in the printer currently available
to the user.

Comments Memory taken up by bitmaps is included in the currently available memory
value (due to ^MCN).
Downloading a graphic image, fonts, or saving a bitmap affects only the amount of RAM. The total
amount of RAM and maximum amount of RAM does not change after the printer is turned on.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~HQ

~HQ – Host Query
The ~HQ command group causes the printer to send information back to the host.

Supported Devices
• Xi4, RXi4
• ZM400/ZM600 with v53.17.1Z or later, RZ400/RZ600
• S4M with v53.17.1Z or later
• G-Series with v56.16.5 or later
or
G-Series with v61.16.5 or later
Format: ~HQquery-type

Parameter

Details

query-type

For detailed examples of these parameters, see ~HQ Examples on page 202.
Values:

ES = requests the printer’s status - see Table 14 on page 201 and Table 15
HA
JT
MA
MI
OD
PH
PP
SN
UI

=
=
=
=
=
=
=
=
=

on page 202
hardware address of the internal wired print server
requests a summary of the printer’s printhead test results
maintenance alert settings
maintenance information
odometer
printhead life history
printer’s Plug and Play string
printer’s serial number
USB product ID and BDC release version

Default: must be an accepted value or the command is ignored

Comments The response to the ~HQ command starts with STX, a CR LF is inserted between
each line, and the response ends with ETX.
Table 14 • Error Flags (~HQES)
Group 2
Error Flags

Flag

Group 1

(X = Value can be any hexadecimal number [0-9, A-F])

Nibbles16-9

Nibble
8

Nibble
7

Nibble
6

Nibble
5

Nibble
4

Nibble
3

Nibble
2

Nibble
1

No Error

0

00000000

0

0

0

0

0

0

0

0

Error Present

1

00000000

X

X

X

X

X

X

X

X

Printhead Thermistor Open

1

00000000

X

X

X

X

X

2

X

X

Invalid Firmware Config.

1

00000000

X

X

X

X

X

1

X

X

Printhead Detection Error

1

00000000

X

X

X

X

X

X

8

X

Bad Printhead Element

1

00000000

X

X

X

X

X

X

4

X

Motor Over Temperature

1

00000000

X

X

X

X

X

X

2

X

Printhead Over Temperature

1

00000000

X

X

X

X

X

X

1

X

g. This error flag is supported only on KR403 printers.

1/31/18

Programming Guide

P1099958-001

201

202

ZPL Commands
~HQ

Table 14 • Error Flags (~HQES)
Group 2
Error Flags

Flag

Group 1

(X = Value can be any hexadecimal number [0-9, A-F])

Nibbles16-9

Nibble
8

Nibble
7

Nibble
6

Nibble
5

Nibble
4

Nibble
3

Nibble
2

Nibble
1

Cutter Fault

1

00000000

X

X

X

X

X

X

X

8

Head Open

1

00000000

X

X

X

X

X

X

X

4

Ribbon Out

1

00000000

X

X

X

X

X

X

X

2

1

00000000

X

X

X

X

X

X

X

1

00000000

X

X

X

X

8

X

X

X

00000000

X

X

X

X

4

X

X

X

X

X

X

Media Out

g

Clear Paper Path Failed
Paper Feed Error

1

g

1

Presenter Not Running

g

Paper Jam during Retract

1

g

1

Black Mark Calabrate Error
Retract Function timed out
Paused

1

g

Black Mark not Found

g
g

g

1
1
1

g
g
g
g
g
g
g
g

00000000

X

X

X

X

00000000

X

X

X

00000000

X

X

X

8

00000000

X

X

X

4

00000000
00000000

X
X

X

X

X

X

X

2
1

g
g
g
g

2
1

g
g
g
g

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

g. This error flag is supported only on KR403 printers.

Table 15 • Warning Flags (~HQES)
Group 2
Error Flags

Flag
Nibbles16-9

Group 1
Nibble
8

Nibble
7

(X = Value can be any hexadecimal number [0-9, A-F])
Nibble
6

Nibble
5

Nibble
4

Nibble
3

Nibble
2

Nibble
1

No Warning

0

00000000

0

0

0

0

0

0

0

0

Warning Present

1

00000000

X

X

X

X

X

X

X

X

00000000

X

X

X

X

X

X

X

Paper-near-end Sensor

h

1

h

8

h

Replace Printhead

1

00000000

X

X

X

X

X

X

X

4

Clean Printhead

1

00000000

X

X

X

X

X

X

X

2

Need to Calibrate Media

1

00000000

X

X

X

X

X

X

X

1
X

Sensor 1 (Paper before head)
h
Sensor 2 (Black mark)

h

1

Sensor 3 (Paper after head)
Sensor 4 (loop ready)
Sensor 5 (presenter)

Sensor 7 (in retract)
Sensor 8 (at bin)

h

h

h

h
1
h
1

h

Sensor 6 (retract ready)

h
1

h
1
h

h

h

1

h

h
1
1

h

00000000

X

X

X

X

X

X

h
1

00000000

X

X

X

X

X

X

2

X

h
4

X

X

X

h
8

X

X

X

X

X

X

X

X

X

00000000

X

00000000

X

X
X

X
X

X
X

X

00000000

X

X

X

X

X

h
1

00000000

X

X

X

X

X

2

X

h
4

00000000

X

00000000

X

X
X

X
X

X
X

X

8

h

h

h

X

h. This error flag is supported only on KR403 printers.

~HQ Examples
This section provides detail examples of all the available parameters.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~HQ

Example 1: This example shows how to request the printer’s status.
a. To request the printer’s status, type ~HQES
The printer responds with data similar to this:

PRINTER STATUS
ERRORS:
WARNINGS:

1 00000000 00000005
1 00000000 00000002

In this example, the Printer Status resolves to these conditions:
• The cover/printhead is open (value = 4).
• Media is out or not loaded into the printer (value = 1).
• The printhead needs to be cleaned (value = 2).
• Error nibble 1 is equal to 5 when the error status values are added together (4 + 1).
This illustration identifies the printer status definitions:

3

1

PRINTER STATUS
ERRORS:
WARNINGS:

1 00000000 00000005
1 00000000 00000002
2

1
2
3
4
5
6

5

4 6

Flag
Nibble 16-9
Nibble 8-4
Nibble 3
Nibble 2
Nibble 1

Example 2: This example shows how the printer responds when the printer receives the
~HQES command:
a. To see how the printer responds, type ~HQES

The printer responds with data similar to this:
PRINTER STATUS
ERRORS:
1 00000000 0000000B
WARNINGS: 0 00000000 00000000
In this example, the printer status resolves to the following conditions:
• The cutter has a fault (value = 8).
• Ribbon is out or not loaded into the printer (value = 2).
• Media is out or not loaded into the printer (value = 1).
• Error byte 1 is equal to B when the error status values are added together
(8 + 2 + 1 = hexadecimal B).

1/31/18

Programming Guide

P1099958-001

203

204

ZPL Commands
~HQ

Example 3: This is an example of how to retrieve the hardware address of the internal wired
print server.
a. To get the hardware address of the internal wired print server, type ~HQHA

The printer responds with data similar to this:
MAC ADDRESS
00:07:4d:2c:e0:7a

Example 4: This is an example of how to request a summary of the printer’s printhead test
results.
The ^JT command is used to initiate printhead testing, set the testing interval, and set the element
range to be tested. For more details see, ^JT on page 248.

a. To request a summary of the printer’s printhead test, type ~HQJT

The printer responds with data similar to this:
PRINT HEAD TEST RESULTS
0,A,0000,0000,0000
When the printer has printed enough labels to trigger a printhead test, the initial data
changes.
b. To request a summary of the printer’s printhead test, type ~HQJT
The printer responds with data similar to this:
PRINT HEAD TEST RESULTS:
0,A,0015,0367,0000
This illustration identifies the printhead test field definitions:

0,A,0000,0000,0000

1 2

1
2
3
4
5

P1099958-001

3

4

5

Element failure
Manual (M) or automatic (A) range
First test element
Last test element
Failure count

Programming Guide

1/31/18

ZPL Commands
~HQ

Example 5: This is an example of how to use the maintenance alert query for the ~HQ
command.
a. To get the current settings, type ~HQMA
The printer responds with data similar to this:

~HQMA

MAINTENANCE ALERT SETTINGS
HEAD REPLACEMENT INTERVAL:
HEAD REPLACEMENT FREQUENCY:
HEAD CLEANING INTERVAL:
HEAD CLEANING FREQUENCY:
PRINT REPLACEMENT ALERT:
PRINT CLEANING ALERT:
UNITS:

1
0
0
0

km
M
M
M
NO
NO
C

Example 6: This is an example of how to use the maintenance information query for the ~HQ
command. Note that the message is controlled by the ^MI command.
a. To get the current settings, type ~HQMI
The printer responds with data similar to this:

MAINTENANCE ALERT MESSAGES

CLEAN: PLEASE CLEAN PRINT HEAD
REPLACE: PLEASE REPLACE PRINT HEAD

Example 7: This is an example of how to use the odometer query for the ~HQ command. Note
that the units of measure are controlled by the ^MA command. Also, if the "Early Warning
Maintenance State" is turned "ON" the printer response would also list LAST CLEANED and
CURRENT PRINTHEAD LIFE counters.
a. To get the current settings, type ~HQOD

The printer responds with data similar to this:
PRINT METERS

TOTAL NONRESETTABLE:
8560 "
USER RESETTABLE CNTR1:
9 "
USER RESETTABLE CNTR2:
8560 "
The units of measure are set to inches.
b. To change the units of measure to centimeters, type:
^XA^MA,,,,C
^XZ
The units of measure are set to centimeters.
c. To check the settings, type ~HQOD
The printer responds with data similar to this:

PRINT METERS

TOTAL NONRESETTABLE:
USER RESETTABLE CNTR1:
USER RESETTABLE CNTR2:

1/31/18

21744 cm
24 cm
21744 cm

Programming Guide

P1099958-001

205

206

ZPL Commands
~HQ

Example 8: This is an example of how to use the printhead life query for the ~HQ command.
Note that the units of measure are controlled by the ^MA command.
a. To get the current settings, type ~HQPH
The printer responds with data similar to this:

LAST CLEANED: 257 "
HEAD LIFE HISTORY

#
1:
2:
3:

DISTANCE
257 "
1489 "
7070 "

1
2

The current life of the print head.
Line items 2 through 10 (the example only shows 2 through 3)
tracks the measurement for each time the print head is
changed.

Example 9: This is an example of how to request the printer’s Plug and Play string.
a. To request the printer’s Plug and Play string, type ~HQPP
The printer responds with data similar to this:

PLUG AND PLAY MESSAGES
MFG: Zebra Technologies
CMD: ZPL
MDL: GX420t
Example 10: This is an example of how to retrieve the printer’s serial number.
a. To get the printer’s serial number, type ~HQSN
The printer responds with data similar to this:

SERIAL NUMBER
41A06440023
1

Example 11: This is an example of how to retrieve the printer’s USB product
ID and BCD
2
release version.
a. To get the printer’s USB product ID and BCD release version, type ~HQUI
The printer responds with data similar to this:

USB INFORMATION
PID:
RELEASE VERSION:

P1099958-001

Programming Guide

0085
15.01

1/31/18

ZPL Commands
~HS

~HS – Host Status Return
When the host sends ~HS to the printer, the printer sends three data strings back. Each string starts
with an  control code and is terminated by an  control code sequence. To
avoid confusion, the host prints each string on a separate line.

Note • When a ~HS command is sent the printer will not send a response to the host if the printer
is in one of these conditions:
•
•
•
•
•

MEDIA OUT
RIBBON OUT
HEAD OPEN
REWINDER FULL
HEAD OVER-TEMPERATURE

String 1 aaa,b,c,dddd,eee,f,g,h,iii,j,k,l
aaa
b
c
dddd
eee
f
g
h
iii
j
k
l

=

communication (interface) settingsa

=

paper out flag (1 = paper out)

=

pause flag (1 = pause active)

=

label length (value in number of dots)

=

number of formats in receive buffer

=

buffer full flag (1 = receive buffer full)

=

communications diagnostic mode flag (1 = diagnostic mode active)

=

partial format flag (1 = partial format in progress)

=

unused (always 000)

=

corrupt RAM flag (1 = configuration data lost)

=

temperature range (1 = under temperature)

=

temperature range (1 = over temperature)

i. This string specifies the printer’s baud rate, number of data bits, number of stop bits, parity
setting, and type of handshaking. This value is a three-digit decimal representation of an eightbit binary number. To evaluate this parameter, first convert the decimal number to a binary
number.
The nine-digit binary number is read according to this table:

1/31/18

Programming Guide

P1099958-001

207

208

ZPL Commands
~HS

aaa = a8 a7 a6 a5 a 4 a3 a2 a1 a0
a 7 = Handshake
0 = Xon/Xoff
1 = DTR

a 8 a 2 a 1 a 0 = Baud

6

a = Parity Odd/Even
0 = Odd
1 = Even
a 5 = Disable/Enable
0 = Disable
1 = Enable
a 4 = Stop Bits
0 = 2 Bits
1 = 1 Bit

0 000 = 110
0 001 = 300
0 010 = 600
0 011 = 1200
0 100 = 2400
0 101 = 4800
0 110 = 9600
0 111 = 19200
1 000 = 28800 (available only on certain printer models)
1 001 = 38400 (available only on certain printer models)
1 010 = 57600 (available only on certain printer models)
1 011 = 14400

a 3 = Data Bits
0 = 7 Bits
1 = 8 Bits

String 2 mmm,n,o,p,q,r,s,t,uuuuuuuu,v,www
mmm

=

function settings j

n
o
p
q
r

=
=
=
=
=

unused
head up flag (1 = head in up position)
ribbon out flag (1 = ribbon out)
thermal transfer mode flag (1 = Thermal Transfer Mode selected)
Print Mode
0 = Rewind
1 = Peel-Off
2 = Tear-Off
3 = Cutter
4 = Applicator
5 = Delayed cut
6 = Linerless Peel
7 = Linerless Rewind
8 = Partial Cutter
9 = RFID
K = Kiosk
S = Stream
print width mode
label waiting flag (1 = label waiting in Peel-off Mode)
labels remaining in batch
format while printing flag (always 1)
number of graphic images stored in memory

Values 4 to 5 are only
supported in firmware
version V60.14.x,
V50.14.x, V53. 15.x, or
later.

s
t
uuuuuuuu
v
www

=
=
=
=
=

j. This string specifies the printer’s media type, sensor profile status, and communication diagnostics
status. As in String 1, this is a three-digit decimal representation of an eight-bit binary number. First,
convert the decimal number to a binary number.
k. These values are only supported on the ZE500, Xi4, RXi4, ZM400/ZM600, and RZ400/RZ600 printers.
The eight-digit binary number is read according to this table:

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~HS

mmm = m7 m6 m5 m4 m3 m2 m1 m0
m7 = Media Type
0 = Die-Cut
1 = Continuous

m4 m3 m2 m1 = Unused
0 = Off
1 = On

m6 = Sensor Profile
0 = Off

m0 = Print Mode
0 = Direct Thermal
1 = Thermal Transfer

m5 = Communications Diagnostics
0 = Off
1 = On

String 3 xxxx,y
xxxx

=

password

y

=

0 (static RAM not installed)
1 (static RAM installed)

1/31/18

Programming Guide

P1099958-001

209

210

ZPL Commands
^HT

^HT

– Host Linked Fonts List
This command is available only for printers with firmware version V60.14.x, V50.14.x, or
later.
The ^HT command receives the complete list of font links over a communication port.
Example: The SWISS.721.TTF is the base font, ANMDJ.TTF is the first linked font, and
MSGOTHIC.TTF is the second linked font:

ZPL II CODE

DATA RETURNED
LIST OF FONT LINKS
E:SWISS721.TTF
E:ANMDJ.TTF
E:MSGOTHIC.TTF

^XA
^HT
^XZ

This is the code that was used to establish the font links:

^XA
^FLE:ANMDJ.TTF,E:SWISS721.TTF,1^FS
^FLE:MSGOTHIC.TTF,E:SWISS721.TTF,1^FS
^XZ

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~HU

~HU – Return ZebraNet Alert Configuration
This command returns the table of configured ZebraNet Alert settings to the host.
Format:

~HU

Example: If the ~HU command is sent to the printer with existing Alert messages set to go to e-mail
and SNMP traps, the data returned would look something like the information below. See ^SX
on page 324 for complete information on the individual parameter settings.

B,C,Y,Y,ADMIN@COMPANY.COM,0
J,F,Y,Y,,0
C,F,Y,Y,,0
D,F,Y,Y,,0
E,F,Y,N,,0
F,F,Y,N,,0
H,C,Y,N,ADMIN@COMPANY.COM,0
N,C,Y,Y,ADMIN@COMPANY.COM,0
O,C,Y,Y,ADMIN@COMPANY.COM,0
P,C,Y,Y,ADMIN@COMPANY.COM,0

Important • If there are no ^SX (alerts) set, the printer will not respond to the ~HU
command.
The first line indicates that condition B (ribbon out) is routed to destination C (e-mail address).
The next two characters, Y and Y, indicate that the condition set and condition clear options have
been set to yes.
The following entry is the destination that the Alert e-mail should be sent to; in this example it is

admin@company.com.
The last figure seen in the first line is 0, which is the port number.
Each line shows the settings for a different Alert condition as defined in the ^SX command.

1/31/18

Programming Guide

P1099958-001

211

212

ZPL Commands
^HV

^HV – Host Verification
Use this command to return data from specified fields, along with an optional ASCII header, to the
host computer. You can use this command with any field that has been assigned a number with the
^RT command or with the ^FN and ^RF commands.
Format:

^HV#,n,h,t,a

Parameters

Details

# = field number
specified with
another command

The value assigned to this parameter should be the same as the
one used in another command.
Values: 0 to 9999
Default: 0

n = number of bytes
to be returned

Values: 1 to 256

h = header to be
returned with
the data

Delimiter characters terminate the string. This field is Field Hex
(^FH) capable.
Values: 0 to 3072 bytes

Default: 64

Default: no header

t = termination

This field is Field Hex (^FH) capable.
Values: 0 to 3072 characters

a = command applies
to

When ^PQ is greater than 1 or if a void label occurs, send one
response for a label format or one for every label printed.
Values:

F = Format
L = Label
Default: F
Example: The following code:

^XA
.
.
.
^FH_^HV0,8,EPC[,]_0D_0A,L^FS
^PQ2
^XZ
Would return data similar to this:

EPC[12345678]
EPC[55554444]

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^HW

^HW – Host Directory List
^HW is used to transmit a directory listing of objects in a specific memory area (storage device) back
to the host device. This command returns a formatted ASCII string of object names to the host.
Each object is listed on a line and has a fixed length. The total length of a line is also fixed. Each line
listing an object begins with the asterisk (*) followed by a blank space. There are eight spaces for the
object name, followed by a period and three spaces for the extension. The extension is followed by
two blank spaces, six spaces for the object size, two blank spaces, and three spaces for option flags
(reserved for future use). The format looks like this:


DIR R: 
*Name.ext(2sp.)(6 obj. sz.)(2sp.)(3 option flags)
*Name.ext(2sp.)(6 obj. sz.)(2sp.)(3 option flags)

-xxxxxxx bytes free


 = start of text
 = carriage return/line feed
 = end on text
The command might be used in a stand-alone file to be issued to the printer at any time. The printer
returns the directory listing as soon as possible, based on other tasks it might be performing when
the command is received.
This command, like all ^ (caret) commands, is processed in the order that it is received by the
printer.
Format:

^HWd:o.x

Parameters

Details

d = location to
retrieve object
listing

Values: R:, E:, B:, A:and Z:
Default: R:

o = object name

Values: 1 to 8 alphanumeric characters
Default: asterisk (*). A question mark (?) can also be used.

x = extension

Values: any extension conforming to Zebra conventions
Default: asterisk (*). A question mark (?) can also be used.

f = format

Values:

c = column format
d = default format
Default: d
The f parameter is only
supported in firmware
version V60.16.0Z and
V53.16.0Z or later.
Example: Listed is an example of the ^HW command to retrieve from information R:

^XA
^HWR:*.*
^XZ

1/31/18

Programming Guide

P1099958-001

213

214

ZPL Commands
^HW

Example: The printer returned this information as the Host Directory Listing:-DIR R:*.*

*R:ARIALN1.FNT 49140
*R:ARIALN2.FNT 49140
*R:ARIALN3.FNT 49140
*R:ARIALN4.FNT 49140
*R:ARIALN.FNT 49140
*R:ZEBRA.GRF 8420
-794292 bytes free R:RAM

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^HY

^HY – Upload Graphics
The ^HY command is an extension of the ^HG command. ^HY is used to upload graphic objects from
the printer in any supported format.
Format:

^HYd:o.x

Parameters

Details

d = location of
object

Default: search priority

o = object name

Values: 1 to 8 alphanumeric characters

Values: R:, E:, B:, and A:

Default: an object name must be specified

x = extension

Values:

G = .GRF (raw bitmap format)
P = .PNG (compressed bitmap format)

Default: format of stored image

Comments The image is uploaded in the form of a ~DY command. The data field of the
returned ~DY command is always encoded in the ZB64 format.

1/31/18

Programming Guide

P1099958-001

215

216

ZPL Commands
^HZ

^HZ – Display Description Information
The ^HZ command is used for returning printer description information in XML format. The printer
returns information on format parameters, object directories, individual object data, and print status
information.
Format:

^HZb

Parameters

Details

b = display
description to
return

Values:

a
f
l
o
r

=
=
=
=
=

display all information
display printer format setting information
display object directory listing information
display individual object data information
display printer status information

Default: if the value is missing or invalid, the command is ignored
Format:

^HZO,d:o.x,l

Parameters

Details

d = location of
stored object

Default: R:

o = object name

Values: R:, E:, B:, and A:
Values: 1 to 8, or 1 to 16 alphanumeric characters based on parameter l.
Default: if a name is not specified, UNKNOWN is used.

x = extension

Supported extensions for objects (parameter o) include:

.FNT — font
.GRF — graphic
.PNG — compressed graphic
.ZPL — stored format
.DAT — encoding table
.ZOB — downloadable object
.STO — Alert data file
l = long filename
support

Values:

Y = Yes
If Y, the object data stores the filename as 16 characters. The data is

only compatible with firmware version V60.13.0.5, or later.
N = No

If N, the object data stores the filename as 8 characters. The data is
forward and backward compatible with all versions of firmware.
Default: N
Example: This example shows the object data information for the object SAMPLE.GRF located on
R:.

^XA
^HZO,R:SAMPLE.GRF
^XZ

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^ID

^ID – Object Delete
The ^ID command deletes objects, graphics, fonts, and stored formats from storage areas. Objects
can be deleted selectively or in groups. This command can be used within a printing format to delete
objects before saving new ones, or in a stand-alone format to delete objects.
The image name and extension support the use of the asterisk (*) as a wild card. This allows you to
easily delete a selected groups of objects.
Format:

^IDd:o.x

Parameters

Details

d = location of
stored object

Default: R:

o = object name

Values: any 1 to 8 character name

Values: R:, E:, B:, and A:

Default: if a name is not specified, UNKNOWN is used

x = extension

Values: any extension conforming to Zebra conventions
Default: .GRF

Example 1: To delete stored formats from DRAM:
^XA
^IDR:*.ZPL^FS
^XZ

Example 2: To delete formats and images named SAMPLE from DRAM, regardless of the
extension:
^XA
^IDR:SAMPLE.*^FS
^XZ

Example 3: To delete the image SAMPLE1.GRF prior to storing SAMPLE2.GRF:
^XA
^FO25,25^AD,18,10
^FDDelete^FS
^FO25,45^AD,18,10
^FDthen Save^FS
^IDR:SAMPLE1.GRF^FS
^ISR:SAMPLE2.GRF^FS^XZ

Example 4: In this the * is a wild card, indicating that all objects with the .GRF extension are
deleted:
^XA
^IDR:*.GRF^FS
^XZ

1/31/18

Programming Guide

P1099958-001

217

218

ZPL Commands
^ID

Comments When an object is deleted from R:, the object can no longer be used and
memory is available for storage. This applies only to R:memory. With the other memory
types (A:, B:, E:) the deleted object is no longer available. The memory space recovers when
an automatic defragmentation or initialization occurs.
The ^ID command also frees up the uncompressed version of the object in DRAM.
If the name is specified as *.ZOB, all downloaded bar code fonts (or other objects) are deleted.
If the named downloadable object cannot be found in the R:, E:, B:, and A: device, the ^ID
command is ignored.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^IL

^IL – Image Load
The ^IL command is used at the beginning of a label format to load a stored image of a format and
merge it with additional data. The image is always positioned at ^FO0,0.

Important • See ^IS on page 221.
Using this technique to overlay the image of constant information with variable data greatly
increases the throughput of the label format.
Format:

^ILd:o.x

Parameters

Details

d = location of
stored object

Values: R:, E:, B:, and A:
Default: R:

o = object name

Values: 1 to 8 alphanumeric characters
Default: if a name is not specified, UNKNOWN is used

x = extension

Fixed Value:

.GRF, .PNG

Example: This example recalls the stored image SAMPLE2.GRF from DRAM and overlays it with
the additional data. The graphic was stored using the ^IS command. For the stored label format,
see the ^IS on page 221 command.

ZPL II CODE

GENERATED LABEL

^XA
^ILR:SAMPLE2.GRF^FS
^CFD,36,20
^FO15,210
^FD900123^FS
^FO218,210
^FDLINE 12^FS
^FO15,360^AD
^FDZEBRA THERMAL^FS
^FO15,400^AD
^FDTRANSFER PRINTER^FS
^FO15,540
^FD54321^FS
^FO220,530
^FDZ58643^FS
^FO15,670^A0,27,18
^FDTesting Stored Graphic^FS
^FO15,700^A0,27,18
^FDLabel Formats!!^FS
^XZ

1/31/18

Programming Guide

P1099958-001

219

220

ZPL Commands
^IM

^IM – Image Move
The ^IM command performs a direct move of an image from storage area into the bitmap. The
command is identical to the ^XG command (Recall Graphic), except there are no sizing parameters.
Format:

^IMd:o.x

Parameters

Details

d = location of
stored object

Values: R:, E:, B:, and A:
Default: search priority
Values: 1 to 8 alphanumeric characters

o = object name

Default: if a name is not specified, UNKNOWN is used

Fixed Value: .GRF, .PNG

x = extension

Example: This example moves the image SAMPLE.GRF from DRAM and prints it in several
locations in its original size.

^XA
^FO100,100^IMR:SAMPLE.GRF^FS
^FO100,200^IMR:SAMPLE.GRF^FS
^FO100,300^IMR:SAMPLE.GRF^FS
^FO100,400^IMR:SAMPLE.GRF^FS
^FO100,500^IMR:SAMPLE.GRF^FS
^XZ

Comments By using the ^FO command, the graphic image can be positioned anywhere on
the label.
The difference between ^IM and ^XG: ^IM does not have magnification, and therefore might require
less formatting time. However, to take advantage of this, the image must be at a 8-, 16-, or 32-bit
boundary.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^IS

^IS – Image Save
The ^IS command is used within a label format to save that format as a graphic image, rather than
as a ZPL II script. It is typically used toward the end of a script. The saved image can later be
recalled with virtually no formatting time and overlaid with variable data to form a complete label.
Using this technique to overlay the image of constant information with the variable data greatly
increases the throughput of the label format.
\

Important • See ^IL on page 219.
Format:

^ISd:o.x,p

Parameters

Details

d = location of
stored object

Values: R:, E:, B:, and A:

o = object name

Default: R:
Values: 1 to 8 alphanumeric characters
Default: if a name is not specified, UNKNOWN is used

x = extension

Values: .GRF or .PNG
Default: .GRF

p = print image after
storing

1/31/18

Values:

N = no
Y = yes
Default: Y

Programming Guide

P1099958-001

221

222

ZPL Commands
^IS

Example: This is an example of using the ^IS command to save a label format to DRAM. The
name used to store the graphic is SAMPLE2.GRF.

ZPL II CODE

GENERATED LABEL

^XA
^LH10,15^FWN^BY3,3,85^CFD,36
^GB430,750,4^FS
^FO10,170^GB200,144,2^FS
^FO10,318^GB410,174,2^FS
^FO212,170^GB206,144,2^FS
^FO10,498^GB200,120,2^FSR
^FO212,498^GB209,120,2^FS
^FO4,150^GB422,10,10^FS
^FO135,20^A0,70,60
^FDZEBRA^FS
^FO80,100^A0,40,30
^FDTECHNOLOGIES CORP^FS
^FO15,180^CFD,18,10^FS
^FDARTICLE#^FS
^FO218,180
^FDLOCATION^FS
^FO15,328
^FDDESCRIPTION^FS
^FO15,508
^FDREQ.NO.^FS
^FO220,508
^FDWORK NUMBER^FS
^FO15,630^AD,36,20
^FDCOMMENTS:^FS
^ISR:SAMPLE2.GRF,Y
^XZ

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~JA

~JA – Cancel All
The ~JA command cancels all format commands in the buffer. It also cancels any batches that are
printing.
The printer stops after the current label is finished printing. All internal buffers are cleared of data
and the DATA LED turn off.
Submitting this command to the printer scans the buffer and deletes only the data before the ~JA in
the input buffer — it does not scan the remainder of the buffer for additional ~JA commands.
Format:

1/31/18

~JA

Programming Guide

P1099958-001

223

224

ZPL Commands
^JB

^JB – Initialize Flash Memory
The ^JB command is used to initialize various types of Flash memory available in the Zebra
printers.
Format:

^JBa

Parameters

Details

a = device to
initialize

Values:
A = Option Flash memory
B = Flash card (PCMCIA)
E = internal Flash memory
Default: a device must be specified

Example: This is an example of initializing the different types of flash memory:

^JBA – initializes initial Compact Flash memory when installed in the printer.
^JBB – initializes the optional Flash card when installed in the printer.
^JBE – initializes the optional Flash memory when installed in the printer.

Note • Initializing memory can take several minutes. Be sure to allow sufficient time for the
initialization to complete before power cycling the printer.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~JB

~JB – Reset Optional Memory
The ~JB command is used for these conditions:
• The ~JB command must be sent to the printer if the battery supplying power to the battery
powered memory card fails and is replaced. A bad battery shows a battery dead condition on
the Printer Configuration Label.
• The ~JB command can also be used to intentionally clear (reinitialize) the B: memory card. The
card must not be write protected.
Format:

~JB

Comments If the battery is replaced and this command is not sent to the printer, the
memory card cannot function.

1/31/18

Programming Guide

P1099958-001

225

226

ZPL Commands
~JC

~JC – Set Media Sensor Calibration
The ~JC command is used to force a label length measurement and adjust the media and ribbon
sensor values.
Format:

~JC

Comments In Continuous Mode, only the media and ribbon sensors are calibrated.
This command is ignored on the HC100™ printer.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~JD

~JD – Enable Communications Diagnostics
The ~JD command initiates Diagnostic Mode, which produces an ASCII printout (using current label
length and full width of printer) of all characters received by the printer. This printout includes the
ASCII characters, the hexadecimal value, and any communication errors.
Format:

1/31/18

~JD

Programming Guide

P1099958-001

227

228

ZPL Commands
~JE

~JE – Disable Diagnostics
The ~JE command cancels Diagnostic Mode and returns the printer to normal label printing.
Format:

P1099958-001

~JE

Programming Guide

1/31/18

ZPL Commands
~JF

~JF – Set Battery Condition
There are two low battery voltage levels sensed by the PA/PT400™ printers. When battery voltage
goes below the first level, the green LED begins flashing as a warning but printing continues. When
this warning occurs, it is recommended to recharge the battery.
As printing continues, a second low voltage level is reached. At this point, both green and orange
LEDs flash as a warning, and printing automatically pauses.
When pause on low voltage is active (~JFY) and the battery voltage level falls below the second low
voltage level, printing pauses and an error condition is displayed as an indication that the printer
should be plugged into the battery charger. By pressing FEED, printing continues on a label-bylabel basis, but there is a high risk of losing label format information due to the continued decrease
of battery voltage.
When pause on low voltage is not active (~JFN), and the battery voltage level falls below the second
low voltage level, printing continues and the orange LED remains off. If the battery voltage continues
to decrease, label information could be lost and cause the printer to stop operating. This option
should be selected only when the printer is connected to the Car Battery Adapter. From time to time
the printer might sense that battery voltage is below the first low voltage level, but due to the
continuous recharging of the car battery, further loss of battery voltage is not a concern and printing
continues.
If this option is not selected when using the Car Battery Adapter, you might need to press FEED to
take the printer out of Pause Mode and print each label.
Format:

~JFp

Parameters

Details

p = pause on low
voltage

Values: Y (pause on low voltage) or N (do not pause)
N is suggested when the printer is powered by the Car Battery Adapter.
Default: Y

1/31/18

Programming Guide

P1099958-001

229

230

ZPL Commands
~JG

~JG – Graphing Sensor Calibration
The ~JG command prints a graph (media sensor profile) of the sensor values.
Format:

~JG

Example: Sending the ~JG command to a printer configured for thermal transfer produces a series
of labels resembling this image:

GENERATED LABELS

Comments The HC100™ printer does not perform a calibration, but does print a sensor profile
label.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^JH

^JH

– Early Warning Settings
The ^JH command configures the early warning messages that appear on the LCD.

Supported Devices
• ZE500 series
• XiIII, XiIIIPlus, Xi4, RXi4
• PAX3, PAX4
• ZM400, ZM600, RZ400, RZ600
• S4M
• G-Series (“f” parameter only)
Format:

^JHa,b,c,d,e,f,g,h,i,j

Parameter

Details

a = early warning
media
a = supplies
warning
(Xi4 and RXi4
printers
only)

This parameter is for XiIIIPlus, Xi4, RXi4, PAX3, and PAX4 printers only.
Values:
E = enable
D = disable

b = labels per
roll

This parameter is for XiIIIPlus, PAX3, and PAX4 printers only.
Values: 100 to 9999

Default: D

Default: 900

c = media replaced

This parameter is for XiIIIPlus, PAX3, and PAX4 printers only.
Values:
Y = yes
N = no
Default: N

1/31/18

Programming Guide

P1099958-001

231

232

ZPL Commands
^JH

Parameter

Details

d = ribbon length

This parameter is for XiIIIPlus, PAX3, PAX4, and ZE500 printers only.
Values:
XiIIIPlus series printers:

N
0
1
2
3

=
=
=
=
=

0M

100M
150M
200M
250M

4
5
6
7

=
=
=
=

300M
350M
400M
450M

PAX series printers:
N
0
1
2
3
4
5
6

=
=
=
=
=
=
=
=

7 = 450M
10 = 600M
11 = 650M
12 = 700M
13 = 750M
14 = 800M
15 = 850M
16 = 900M

0M

100M
150M
200M
250M
300M
350M
400M

ZE500 series printers:
N
0
1
2
3

=
=
=
=
=

4 = 300M
5 = 350M
6 = 400M
7 = 450M
10 = 600M

0M

100M
150M
200M
250M

Default:
1 - for 96XiIIIPlus
7 - for all other printers

e = ribbon
replaced

This parameter is for XiIIIPlus, PAX3, and PAX4 printers only.
Values:
Y = yes
N = no
Default: N

f = early warning
maintenance

This parameter is for Xi4, RXi4, PAX4, ZM400, ZM600, RZ400, RZ600, and S4M
printers only.
Values:
E = enabled
D = disabled
Default: D

Important • On G-Series printers, this parameter must be enabled for
the ^MA driven system to work.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^JH

Parameter

Details

g = head cleaning
interval

Accepted value exceptions: accepted values for XiIII printer are 100M through
450M; accepted values for 600 dpi XiIII printers are 100M through 150M; accepted
values for PAX4 series printers are up to 900M by increments of 50M; accepted
values for ZM400/ZM600, RZ400/RZ600, and S4M printers are 0M through 450M.
Values:

0 =
1 =
2 =
3 =
4 =
5 =
6 =
7 =
8 =
9 =
10=

100M
150M
200M
250M
300M
350M
400M
450M
500M
550M
600M

11
12
13
14
15
16

=
=
=
=
=
=

650M
700M
750M
800M
850M
900M

Default:
1 - for 96XiIIIPlus
7 - for all other printers

h = head clean

Values:

N = No
Y = Yes

Default: N

i = head life
threshold

Values:
0 – 0 in or off
100-3500000 in
Default: 1000000

j = head replaced

Values:

N = no
Y = yes

Default: N

Comments To permanently save the changes to the ^JH command, send ^XA^JUS^XZ.

1/31/18

Programming Guide

P1099958-001

233

234

ZPL Commands
^JI

^JI – Start ZBI (Zebra BASIC Interpreter)
Identifies features that are available in printers with firmware version V60.16.2Z, V53.16.2Z,
or later.
^JI works much like the ~JI command. Both commands are sent to the printer to initialize the
Zebra BASIC Interpreter.
In interactive mode, ^JI can be sent through one of the communication ports (serial, parallel, or
Ethernet) to initialize the printer to receive ZBI commands. This command can be sent from one of
the Zebra software utilities, such as ZTools, or from a terminal emulation program.
When the command is received, the printer responds by sending a ZBI header back to the console,
along with the program version number. This indicates that the interpreter is active.
Format:

^JId:o.x,b,c,d

Parameters

Details

d = location of

Values: R:, E:, B:, and A:

program to
run after
initializatio
n

o = name of
program to
run after
initializatio
n

x = extension of

Default: location must be specified

Values: any valid program name
Default: name must be specified

Fixed Value: .BAS, .BAE

program to
run after
initializatio
n

.BAE is only supported in firmware version
V60.16.0Z or later

Values:

b = console

Y = console on
N = console off
Default: Y

control

Values:

c = echoing

Y = echo on
N = echo off
Default: Y

control

Values: 20K to 1024K

d = memory
allocation
for ZBI *

Default: 50K

* This parameter is only available on printers with firmware V60.12.0.x or earlier.

Comments When the printer is turned on, it can receive ZPL II commands and label formats.
However, for the printer to recognize ZBI commands and programs, it must be initialized using ^JI
or ~JI.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^JI
Only one ZBI interpreter can be active in the printer at a time. If a second ^JI or ~JI command is
received while the interpreter is running, the command is ignored.
The interpreter is deactivated by entering one of two commands:

ZPL at the ZBI prompt
~JQ at an active ZPL port

1/31/18

Programming Guide

P1099958-001

235

236

ZPL Commands
~JI

~JI

– Start ZBI (Zebra BASIC Interpreter)
Identifies features that are available in printers with firmware version V60.16.2Z, V53.16.2Z,
or later.
~JI works much like the ^JI command. Both commands are sent to the printer to initialize the
Zebra BASIC Interpreter.
In interactive mode, ~JI can be sent through one of the communication ports (serial, parallel, or
Ethernet) to initialize the printer to receive ZBI commands. This command can be sent from one of
the Zebra software utilities, such as ZTools, or from a standard PC program, such as Hyper terminal.
When the command is received, the printer responds by sending a ZBI header back to the console,
along with the program version number. This indicates that the interpreter is active.
Format:

~JI

Comments While receiving commands, the printer echoes the received characters back to the
source. This can be toggled on and off with the ZBI ECHO command.
When the printer is turned on, it can receive ZPL II commands and label formats. However, for the
printer to recognize ZBI commands and formats, it must be initialized using ^JI or ~JI.
Only one ZBI interpreter can be active in the printer at a time. If a second ~JI or ^JI command is
received while the interpreter is running, the command is ignored.
The interpreter is deactivated by entering one of these commands:

ZPL at the ZBI prompt
~JQ at an active ZPL port

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^JJ

^JJ – Set Auxiliary Port
The ^JJ command allows you to control an online verifier or applicator device.
Format:

^JJa,b,c,d,e,f

Parameters

Details

a = operational mode
for auxiliary
port

Values:

0 = off
1 = reprint on error—the printer stops on a label with a verification error.
When PAUSE is pressed, the label reprints (if ^JZ is set to reprint).

If a bar code is near the upper edge of a label, the label feeds out far
enough for the bar code to be verified and then backfeeds to allow
the next label to be printed and verified.
2 = maximum throughput—the printer stops when a verification error is
detected. The printer starts printing the next label while the verifier
is still checking the previous label. This mode provides maximum
throughput, but does not allow the printer to stop immediately on a
label with a verification error.
Default: 0

b = application mode

Values:

0 = off
1 = End Print signal normally high, and low only when the printer is

moving the label forward.
2 = End Print signal normally low, and high only when the printer is
moving the label forward.
3 = End Print signal normally high, and low for 20 ms when a label has
been printed and positioned.
4 = End Print signal normally low, and high for 20 ms when a label has
been printed and positioned.
Default: 0

Note • The Set/Get/Do command device.applicator.end_print on page 621
controls the same setting as the b parameter.

c = application mode
start signal
print

Values:

p = Pulse Mode – Start Print signal must be de-asserted before it can be

asserted for the next label.
l = Level Mode – Start Print signal does not need to be de-asserted to
print the next label. As long as the Start Print signal is low and a
label is formatted, a label prints.
Default: 0

d = application label
error mode

Values:

e = error mode—the printer asserts the Service Required signal (svce_req

- pin 10) on the application port, enters into Pause Mode, and
displays an error message on the LCD.
f = Feed Mode—a blank label prints when the web is not found where
expected to sync the printer to the media.
Default: f

1/31/18

Programming Guide

P1099958-001

237

238

ZPL Commands
^JJ

Parameters

Details

e = reprint mode

Values:

e = enabled—the last label reprints after the signal is asserted. If a label

is canceled, the label to be reprinted is also canceled. This mode
consumes more memory because the last printed label is not
released until it reprints.
d = disabled—printer ignores the Reprint signal.
Default: d
f = ribbon low mode

Values:

e = enabled – printer warning issued when ribbon low.
d = disabled – printer warning not issued when ribbon low.
Default: e

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~JL

~JL – Set Label Length
The ~JL command is used to set the label length. Depending on the size of the label, the printer
feeds one or more blank labels.
Format:

1/31/18

~JL

Programming Guide

P1099958-001

239

240

ZPL Commands
^JM

^JM – Set Dots per Millimeter
The ^JM command lowers the density of the print—24 dots/mm becomes 12, 12 dots/mm becomes
6, 8 dots/mm becomes 4, and 6 dots/mm becomes 3. ^JM also affects the field origin (^FO)
placement on the label (see example below).
When sent to the printer, the ^JM command doubles the format size of the label. Depending on the
printhead, normal dot-per-millimeter capabilities for a Zebra printer are 12 dots/mm (304 dots/inch),
8 dots/mm (203 dots/inch) or 6 dots/mm (153 dots/inch).
This command must be entered before the first ^FS command in a format. The effects of ^JM are
persistent.
Format:

^JMn

Parameters

Details

n = set dots per
millimeter

Values:

A = 24 dots/mm, 12 dots/mm, 8 dots/mm or 6 dots/mm
B = 12 dots/mm, 6 dots/mm, 4 dots/mm or 3 dots/mm
Default: A

Example: This example of the affects of alternating the dots per millimeter:

ZPL II CODE

GENERATED LABEL

^XA
^JMA^FS
^FO100,100
^B2N,50,Y,N,N
^FD1234567890^FS
^XZ

^XA
^JMB^FS
^FO100,100
^B2N,50,Y,N,N
^FD1234567890^FS
^XZ

Comments If ^JMB is used, the UPS MaxiCode bar code becomes out of specification.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~JN

~JN – Head Test Fatal
The ~JN command turns on the head test option. When activated, ~JN causes the printer to halt
when a head test failure is encountered.
Once an error is encountered the printer remains in error mode until the head test is turned off (~JO)
or power is cycled.
Format:

~JN

Comments If the communications buffer is full, the printer is not able to receive data. In
this condition, the ~JO command is not received by the printer.

1/31/18

Programming Guide

P1099958-001

241

242

ZPL Commands
~JO

~JO – Head Test Non-Fatal
The ~JO command configures the printer to run the head test with error reporting enabled. When
~JO is used an error will be displayed and printing will stop if the head test fails. The user can push
the PAUSE button on the printer to bypass the error. This command differs from the ~JN (Head Test
Fatal) command in that a power cycle is not required in the event of a head test failure.

~JO is the default print head test condition. This setting is changed when the printer receives a ~JN
(Head Test Fatal) command.
Format:

P1099958-001

~JO

Programming Guide

1/31/18

ZPL Commands
~JP

~JP – Pause and Cancel Format
The ~JP command clears the format currently being processed and places the printer into Pause
Mode.
The command clears the next format that would print, or the oldest format from the buffer. Each
subsequent ~JP command clears the next buffered format until the buffer is empty. The DATA
indicator turns off when the buffer is empty and no data is being transmitted.
Issuing the ~JP command is identical to using CANCEL on the printer, but the printer does not have
to be in Pause Mode first.
Format:

1/31/18

~JP

Programming Guide

P1099958-001

243

244

ZPL Commands
~JQ

~JQ – Terminate Zebra BASIC Interpreter
Identifies features that are available in printers with firmware version V60.16.2Z, V53.16.2Z,
or later.
The ~JQ command is used when Zebra BASIC Interpreter is active. Sending ~JQ to the printer
terminates the ZBI session.
Format:

~JQ

Comments Entering ZPL at the command prompt also terminates a ZBI session.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~JR

~JR – Power On Reset
The ~JR command resets all of the printer’s internal software, performs a power-on self-test
(POST), clears the buffer and DRAM, and resets communication parameters and default values.
Issuing a ~JR command performs the same function as a manual power-on reset.
Format:

1/31/18

~JR

Programming Guide

P1099958-001

245

246

ZPL Commands
^JS

^JS – Sensor Select
Format:

^JSa

Note • This command is ignored on Zebra ZM400/ZM600 and RZ400/RZ600 printers. This
command is only for use with the S4M and Z Series printers (with the exception of the
ZM400/ZM600/RZ400/RZ600).

Parameters

Details

a = sensor selection

Values:

A = auto select
R = reflective sensor
T = transmissive sensor

Default:
Z series = A
S4M = R

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~JS

~JS – Change Backfeed Sequence
The ~JS command is used to control the backfeed sequence. This command can be used on
printers with or without built-in cutters.
These are the primary applications:

•

to allow programming of the rest point of the cut edge of continuous media.

•

provide immediate backfeed after peel-off when the printer is used in a print/apply
application configuration.

This command stays in effect only until the printer is turned off, a new ~JS command is sent, or the
setting is changed on the control panel. When a ~JS command is encountered, it overrides the
current control panel setting for the Backfeed Sequence.
The most common way of eliminating backfeed is to operate in Rewind Mode. Rewind Mode does
not backfeed at all. After a label prints, the leading edge of the next label is placed at the print line.
This eliminates the need to backfeed and does not introduce a non printable area at the leading
edge or bottom of the label. It also does not allow the label to be taken from the printer because it is
not fed out from under the printhead.
Running in another mode with backfeed turned off allows the label to be removed and eliminates the
time-reduction of the backfeed sequence.
Format: ~JSb

Parameters

Details

b = backfeed order in
relation to
printing

Values:

A = 100 percent backfeed after printing and cutting
B = 0 percent backfeed after printing and cutting, and
100 percent before printing the next label
N = normal — 90 percent backfeed after label is printed
O = off — turn backfeed off completely
10 to 90 = percentage value

The value entered must be a multiple of 10. Values not divisible by 10 are
rounded to the nearest acceptable value. For example, ~JS55 is accepted
as 50 percent backfeed.
Default: N

Comments When using a specific value, the difference between the value entered and 100
percent is calculated before the next label is printed. For example, a value of 40 means 40
percent of the backfeed takes place after the label is cut or removed. The remaining 60
percent takes place before the next label is printed.
The value for this command is also reflected in the Backfeed parameter on the printer configuration
label.

For ~JSN — the Backfeed parameter is listed as DEFAULT
For ~JSA — or 100% the Backfeed parameter is listed as AFTER
For ~JSB — or 0% the Backfeed parameter is listed as BEFORE
For ~JS10 — 10% of the backfeed takes place after the label is cut or removed. The
remaining 90% takes place before the next label is printed.
This command is ignored on the HC100™ printer.

1/31/18

Programming Guide

P1099958-001

247

248

ZPL Commands
^JT

^JT – Head Test Interval
The ^JT command allows you to change the printhead test interval from every 100 labels to any
desired interval. With the ^JT command, the printer is allowed to run the test after printing a label.
When a parameter is defined, the printer runs the test after printing a set amount of labels.
The printer’s default head test state is off. Parameters for running the printhead test are defined by
the user.
Format:

^JT####,a,b,c

Parameters

Details

#### = four-digit
number of labels
printed between
head tests

Values: 0000 to 9999
If a value greater than 9999 is entered, it is ignored.

a = manually select
range of
elements to test

Values:

Default: 0000 (off)

N = no
Y = yes

Initial Value at Power Up: N

b = first element to
check when
parameter a is Y

Values: 0 to 9999

c = last element to
check when
parameter a is Y

Values: 0 to 9999

Initial Value at Power Up: 0

Initial Value at Power Up: 9999

Comments The ^JT command supports testing a range of print elements. The printer
automatically selects the test range by tracking which elements have been used since the
previous test.
^JT also turns on Automatic Mode to specify the first and last elements for the head test. This
makes it possible to select any specific area of the label or the entire print width.
If the last element selected is greater than the print width selected, the test stops at the selected print
width.
Whenever the head test command is received, a head test is performed on the next label unless the
count is set to 0 (zero).

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^JU

^JU – Configuration Update
The ^JU command sets the active configuration for the printer.
Format:

^JUa

Parameters

Details

a = active
configuration

Values:

F = reload factory settings
N = reload factory network settings
These values are lost at power-off if not saved with ^JUS.
R = recall last saved settings
S = save current settings
These values are used at power-on.

Default: a value must be specified

1/31/18

Programming Guide

P1099958-001

249

250

ZPL Commands
^JW

^JW – Set Ribbon Tension
^JW sets the ribbon tension for the printer it is sent to.
Format:

^JWt

Parameters

Details

t = tension

Values:

L = low
M = medium
H = high

Default: a value must be specified

Comments ^JW is used only for PAX series printers.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~JX

~JX – Cancel Current Partially Input Format
The ~JX command cancels a format currently being sent to the printer. It does not affect any formats
currently being printed, or any subsequent formats that might be sent.
Format:

1/31/18

~JX

Programming Guide

P1099958-001

251

252

ZPL Commands
^JZ

^JZ – Reprint After Error
The ^JZ command reprints a partially printed label caused by a Ribbon Out , Media Out , or
Head Open error condition. The label is reprinted as soon as the error condition is corrected.
This command remains active until another ^JZ command is sent to the printer or the printer is
turned off.
Format:

^JZa

Parameters

Details

a = reprint after
error

Values:

N = no
Y = yes

Initial Value at Power Up: Y

Comments ^JZ sets the error mode for the printer. If ^JZ changes, only labels printed after
the change are affected.
If the parameter is missing or incorrect, the command is ignored.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~KB

~KB – Kill Battery (Battery Discharge Mode)
To maintain performance of the rechargeable battery in the portable printers, the battery must be
fully discharged and recharged regularly. The ~KB command places the printer in battery discharge
mode. This allows the battery to be drained without actually printing.
Format:

~KB

Comments While the printer is in Discharge Mode, the green power LED flashes in groups
of three flashes.
Discharge Mode might be terminated by sending a printing format to the printer or by pressing either
of the control panel keys.
If the battery charger is plugged into the printer, the battery is automatically recharged once the
discharge process is completed.

1/31/18

Programming Guide

P1099958-001

253

254

ZPL Commands
^KD

^KD – Select Date and Time Format (for Real Time
Clock)

The ^KD command selects the format that the Real-Time Clock’s date and time information presents
as on a configuration label. This is also displayed on the Printer Idle LCD control panel display, and
displayed while setting the date and time.
Format:

^KDa

Parameters

Details

a = value of date and
time format

Values:

0
1
2
3
4

=
=
=
=
=

normal, displays Version Number of firmware
MM/DD/YY (24-hour clock)
MM/DD/YY (12-hour clock)
DD/MM/YY (24-hour clock)
DD/MM/YY (12-hour clock)

Default: 0

Comments If the Real-Time Clock hardware is not present, Display Mode is set to 0 (Version
Number).
If Display Mode is set to 0 (Version Number) and the Real-Time Clock hardware is present, the date
and time format on the configuration label is presented in format 1.
If Display Mode is set to 0 (Version Number) and the Real-Time Clock hardware is present, the date
and time format on the control panel display is presented in format 1.
For more details on select date and time format for the Real Time Clock, see Real Time Clock
on page 1375.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^KL

^KL – Define Language
The ^KL command selects the language displayed on the control panel.
Format:

^KLa

Parameters

Details

a = language

Values:

1 = English
2 = Spanish
3 = French
4 = German
5 = Italian
6 = Norwegian
7 = Portuguese
8 = Swedish
9 = Danish
10 = Spanish2
11 = Dutch
12 = Finnish
13 = Japanese
14 = Korean l
15 = Simplified Chinese l
16 = Traditional Chinese l
17 = Russian l
18 = Polish l
19 = Czech l
20 = Romanian l

Default: 1
l. These values are only supported on the ZT200 Series, ZE500 Series, Xi4, RXi4, ZM400/ ZM600, and RZ400/RZ600 printers.

1/31/18

Programming Guide

P1099958-001

255

256

ZPL Commands
^KN

^KN – Define Printer Name
The printer’s network name and description can be set using the ^KN command. ^KN is designed to
make your Zebra printer easy for users to identify. The name the administrator designates is listed
on the configuration label and on the Web page generated by the printer.
Format:

^KNa,b

Note • If you issue the command ^KN, (without the a and b parameters) you are setting the
printer name and description to a blank string.
To cause the printer name and printer description settings controlled by the ^KN command to be
saved, you must issue the ^JUS command.

Parameters

Details

a = printer name

Values: up to 16 alphanumeric characters
Default:
• If no printer name is specified in a printer with a MAC address, the printer name
will default to "ZBRxxx," where xxx is the last three octets of the MAC address
converted into ASCII text.
• For printers without a MAC address, if a value is not entered, the current stored
value is erased.
If more than 16 characters are entered, only the first 16 are used.

b = printer
description

Values: up to 35 alphanumeric characters
Default: if a value is not entered, the current stored value is erased
If more than 35 characters are entered, only the first 35 are used.
Note • The value of this parameter will be displayed on the printer’s web page in
parentheses.

Example: This is an example of how to change the printer’s network name and description:
This shows how a configuration looks before using this command and after using this command:

^XA
^KNZebra1,desk_printer
^XZ

Before using this command:

P1099958-001

Programming Guide

After using this command:

1/31/18

ZPL Commands
^KP

^KP – Define Password
The ^KP command is used to define the password that must be entered to access the control panel
switches and LCD Setup Mode.
Format:

^KPa,b

Parameters

Details

a = mandatory fourdigit password

Values: any four-digit numeric sequence
Default: 1234

b = password level

Values: 1, 2, 3, 4
Default: 3
Note • The b parameter applies only to the S4M printers.

Example 1: This example shows how to set a new control panel password:
^XA
^KP5678
^XZ

Example 2: This example shows how to set a new control panel password (5678) at a specific
password level (level 2) (applicable to the S4M printer only):
^XA
^KP5678,2
^XZ

Comments If you forget your password, the printer can be returned to a default Setup
Mode and the default password 1234 is valid again. Caution should be used, however — this
also sets the printer configuration values back to their defaults.
To return the printer to the default factory settings using ZPL, send this:

^XA
^JUF
^XZ
To return the printer to the default factory settings using the control panel keys, see your printer’s
User Guide for the procedure.

1/31/18

Programming Guide

P1099958-001

257

258

ZPL Commands
^KV

^KV – Kiosk Values
The ^KV command sets several parameters that affect the printers operation when ^MM is set to K Kiosk mode

Supported Devices
• KR403
Format:

^KVa,b,c,d,e

Parameters

Details

a = kiosk cut amount

Values:
0 = normal cut
10-60 = partial cut, value = mm of media left uncut
Default: 0
This parameter is ignored if it is missing or invalid. The current value of the
parameter remains unchanged.

b = kiosk cut margin

Values:
2 - 9 = mm of distance
Default:
9 = mm of distance
This parameter is ignored if it is missing or invalid. The current value of the
parameter remains unchanged.

c = kiosk present type

Values:
0 = Eject page when new page is printed
1 = Retract page when new page is printed
2 = Do nothing when new page is printed
Default: 0
This parameter is ignored if it is missing or invalid. The current value of the
parameter remains unchanged.

d = kiosk present timeout

Values:
0–300 = If label is not taken, retract label when timeout expires. Timeout is in
seconds. Zero (0) indicates that there is no timeout. The label will stay presented
until removed manually or a new label is printed.
Default: 0
This parameter is ignored if it is missing or invalid. The current value of the
parameter remains unchanged.

e = presenter loop length

Values:
0 = paper is fed straight through the presenter
3-1023 = loop length in mm.
Default: 400
400= gives a loop of approximately 400mm
This parameter is ignored if it is missing or invalid. The current value of the
parameter remains unchanged. . If this is greater than loop_length_max (see
SGD media.present.loop_length_max) then it will be set equal to
loop_length_max.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^KV

Kiosk Printing Examples
The following examples demonstrate the use of the ^KV, ^CN, ^PN and ^CP commands with 80mm
wide continuous media and the printer set to Kiosk Mode (^MMK).

Example 1: In this example, the ^KV command is set to the following:
•
•
•
•
•

Cut - Full Cut
Cut Margin - 9 mm
Present Type - Eject page when the next page is printed
Present Timeout - 6 seconds after printing, if the document is not taken, it will be retracted
Presenter Loop Length - No loop

^XA
^MMK
^KV0,9,0,6,0
^FO50,50^A0N,50,50^FDZebra Technologies^FS
^CN1
^PN0
^XZ
Note • The ^CN1 command (Cut Now) is included to ensure that a full cut is done. The ^PN0
(Present Now) command is included to ensure that the media is ejected when the user pulls on the
leading edge of the media. In this example, if the user does not pull on the leading edge of the
second document, it will be retracted.

Example 2: This example contains only one change from the Example 1 - the Presenter Loop
Length is now 100mm, and two documents will be printed instead of one.
^XA
^MMK
^KV0,9,2,6,100
^FO50,50^A0N,50,50^FDZebra Technologies^FS
^CN1^PN0
^PQ2
^XZ

Example 3: In this example, two documents will be printed, each one will be ejected from the
printer.
^XA
^MMK
^KV0,9,2,6,100
^FO50,50^A0N,50,50^FDZebra Technologies^FS
^CN1^CP0
^PQ2
^XZ

1/31/18

Programming Guide

P1099958-001

259

260

ZPL Commands
^KV

Example 4: In this example, two documents, with partial cuts, will be printed, and a third
document, with a full cut, will be printed.
^XA
^MMK
^KV50,9,0,0,0
^FO50,50^A0N,50,50^FDPartial Cut^FS
^CN0^PN0
^PQ2
^XZ
^XA
^MMK
^KV0,9,2,6,0
^FO50,50^A0N,50,50^FDFull Cut^FS
^CN1^CP0
^XZ

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^KV

Example 5: In this example, four documents will be printed – three with a partial cut and the
fourth with a full cut. Additionally, the document length is set to 406 dots and the Media
Tracking mode is set to "Continuous Media, Variable Length". The third document contains
fields that are positioned outside of the 406 dot length – however, because the printer is set
to “Continuous Media, Variable Length" Media Tracking mode, the printer will automatically
adjust the document length to compensate.
^XA
^MMK
^LL406
^KV20,9,0,0,0
^FO50,50^A0N,50,50^FDPartial Cut^FS
^CN0^PN0
^PQ2
^XZ
^XA
^MMK
^MNV
^KV20,9,0,0,0
^FO50,50^A0N,50,50^FDPartial Cut^FS
^FO50,150^A0N,50,50^FDPrinting Line 1^FS
^FO50,250^A0N,50,50^FDPrinting Line 2^FS
^FO50,350^A0N,50,50^FDPrinting Line 3^FS
^FO50,450^A0N,50,50^FDPrinting Line 4^FS
^FO50,550^A0N,50,50^FDPrinting Line 5^FS
^FO50,650^A0N,50,50^FDPrinting Line 6^FS
^FO50,750^A0N,50,50^FDPrinting Line 7^FS
^FO50,850^A0N,50,50^FDPrinting Line 8^FS
^FO50,950^A0N,50,50^FDPrinting Line 9^FS
^FO50,1050^A0N,50,50^FDPrinting Line 10^FS
^FO50,1150^A0N,50,50^FDPrinting Line 11^FS
^FO50,1250^A0N,50,50^FDPrinting Line 12^FS
^FO50,1350^A0N,50,50^FDPrinting Line 13^FS
^FO50,1450^A0N,50,50^FDPrinting Line 14^FS
^FO50,1550^A0N,50,50^FDPrinting Line 15^FS
^CN0^PN0
^XZ
^XA
^MMK
^KV0,9,0,0,0
^FO50,50^A0N,50,50^FDFull Cut^FS
^CN0^PN1^CP0
^PQ1
^XZ

1/31/18

Programming Guide

P1099958-001

261

262

ZPL Commands
^LF

^LF – List Font Links
This command is available only for printers with firmware version V60.14.x, V50.14.x, or
later.
The ^LF command prints out a list of the linked fonts.
Example: This example shows that SWISS721.TTF is the based font. ANMDJ.TTF is the first
linked font, and MSGOTHIC.TTF is the second linked extension:

ZPL II CODE

GENERATED LABEL

^XA
^LF
^XZ

This is the code that established the font links:

^XA
^FLE:ANMDJ.TTF,E:SWISS721.TTF,1^FS
^FLE:MSGOTHIC.TTF,E:SWISS721.TTF,1^FS
^XZ

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^LH

^LH – Label Home
The ^LH command sets the label home position.
The default home position of a label is the upper-left corner (position 0,0 along the x and y axis). This
is the axis reference point for labels. Any area below and to the right of this point is available for
printing. The ^LH command changes this reference point. For instance, when working with
preprinted labels, use this command to move the reference point below the preprinted area.
This command affects only fields that come after it. It is recommended to use ^LH as one of the first
commands in the label format.
Format:

^LHx,y

Parameters

Details

x = x-axis position
(in dots)

Values: 0 to 32000

y = y-axis position
(in dots)

Values: 0 to 32000

Initial Value at Power Up: 0 or last permanently saved value
Initial Value at Power Up: 0 or last permanently saved value

Depending on the printhead used in your printer, use one of these when figuring the values for x and
y:

6 dots = 1 mm, 152 dots = 1 inch
8 dots = 1 mm, 203 dots = 1 inch
11.8 dots = 1 mm, 300 dots = 1 inch
24 dots = 1 mm, 608 dots = 1 inch

Comments To be compatible with existing printers, this command must come before the
first ^FS (Field Separator) command. Once you have issued an ^LH command, the setting is
retained until you turn off the printer or send a new ^LH command to the printer.

1/31/18

Programming Guide

P1099958-001

263

264

ZPL Commands
^LL

^LL – Label Length
The ^LL command defines the length of the label. This command is necessary when using
continuous media (media not divided into separate labels by gaps, spaces, notches, slots, or holes).
To affect the current label and be compatible with existing printers, ^LL must come before the first
^FS (Field Separator) command. Once you have issued ^LL, the setting is retained until you turn off
the printer or send a new ^LL command.
Format:

^LLy

Parameters

Details

y = y-axis position
(in dots)

Values: 1 to 32000, not to exceed the maximum label size.
While the printer accepts any value for this parameter, the amount of memory
installed determines the maximum length of the label.
Default: typically set through the LCD (if applicable), or to the maximum label
length capability of the printer.

Comments These formulas can be used to determine the value of y:
For 6 dot/mm printheads...

Label length in inches x 152.4 (dots/inch) = y

For 8 dot/mm printheads...

Label length in inches x 203.2 (dots/inch) = y

For 12 dot/mm printheads...

Label length in inches x 304.8 (dots/inch) = y

For 24 dot/mm printheads...

Label length in inches x 609.6 (dots/inch) = y

Values for y depend on the memory size. If the entered value for y exceeds the acceptable limits,
the bottom of the label is cut off. The label also shifts down from top to bottom.
If multiple ^LL commands are issued in the same label format, the last ^LL command affects the
next label unless it is prior to the first ^FS.
This command is ignored on the HC100™ printer.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^LR

^LR – Label Reverse Print
The ^LR command reverses the printing of all fields in the label format. It allows a field to appear as
white over black or black over white.
Using the ^LR is identical to placing an ^FR command in all current and subsequent fields.
Format:

^LRa

Parameters

Details

a = reverse print all
fields

Values:

N = no
Y = yes

Initial Value at Power Up: N or last permanently saved value
Example: This is an example that shows printing white over black and black over white. The ^GB
command is used to create the black background.

ZPL II CODE

GENERATED LABEL

^XA^LRY
^FO100,50
^GB195,203,195^FS
^FO180,110^CFG
^FDLABEL^FS
^FO130,170
^FDREVERSE^FS
^XZ

Comments The ^LR setting remains active unless turned off by ^LRN or the printer is
turned off.
Note • ^GB needs to be used together with ^LR.
Only fields following this command are affected.

1/31/18

Programming Guide

P1099958-001

265

266

ZPL Commands
^LS

^LS – Label Shift
The ^LS command allows for compatibility with Z-130 printer formats that are set for less than full
label width. It is used to shift all field positions to the left so the same commands used on a Z-130 or
Z-220 Printer can be used on other Zebra printers.
To determine the value for the ^LS command, use this formula:

Z-130 and Z-220 values for ^LHx + ^FOx
(distance from edge of label) = printer value for ^LSa
If the print position is less than 0, set ^LS to 0.
Format:

^LSa

Important • The ability to save the ^LS command depends on the version of firmware.

Parameters

Details

a = shift left value
(in dots)

Values: -9999 to 9999

Initial Value at Power Up: 0

Comments When entering positive values, it is not necessary to use the + sign. The value is
assumed to be positive unless preceded by a negative sign (-).
To be compatible with existing Zebra printers, this command must come before the first ^FS (Field
Separator) command. Once you have issued an ^LS command, the setting is retained until you turn
off the printer or send a new ^LS command to the printer.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^LT

^LT – Label Top
The ^LT command moves the entire label format a maximum of
120 dot rows up or down from its current position, in relation to the top edge of the label. A negative
value moves the format towards the top of the label; a positive value moves the format away from
the top of the label.
This command can be used to fine-tune the position of the finished label without having to change
any of the existing parameters.

Important • For some printer models, it is possible to request a negative value large enough
to cause the media to backup into the printer and become unthreaded from the platen. This
condition can result in a printer error or unpredictable results.
Format:

^LTx

Parameters

Details

x = label top (in dot
rows)

Values:

HC100: 0 to 120
XiIIIPlus 600dpi: -240 to 240
All other Zebra printers: -120 to 120
Default: a value must be specified or the command is ignored

Comments The Accepted Value range for x might be smaller depending on the printer
platform.
The Label Top value shown on the front panel of the printer is double the value used in the ZPL
format.
The ^LT command does not change the media rest position.

1/31/18

Programming Guide

P1099958-001

267

268

ZPL Commands
^MA

^MA – Set Maintenance Alerts
This command is available only for printers with firmware version V60.15.x, V50.15.x, or
later.
The ^MA command controls how the printer issues printed maintenance alerts. Maintenance alerts
are labels that print with a warning that indicates the printhead needs to be cleaned or changed.

Supported Devices
• Xi4, RXi4
• ZM400/ZM600, RZ400/RZ600
• S4M with v53.15.5Z or later
• G-Series

Important • ^MA settings do not impact or effect the functionality of the Xi4 Supplies
Warning system.
Format:

^MAtype,print,printlabel_threshold,frequency,units

Parameters

Details

type = type of
alert

Values:

R = head replacement
C = head cleaning
Default: This parameter must be specified as R or C for print,
printlabel_threshold, and frequency to be saved. However, units will always
be set.

print = determines
if the alert
prints a
label

Values:

printlabel
threshold=
distance
where the
first alert
occurs

Values:

Y = print a label
N = do not print label
Default: N

R = head replacement (unit of measurement for head is km with a range

of 0 to 150 km)
C = clean head with a range of 100 to 2000 meters.
0 = off (when set to 0, the selected alert is disabled; otherwise it is

enabled.
Default: R = 50 km (1,968,500 inches) and C = 0 (off).

frequency =
distance
before
reissuing the
alert

P1099958-001

The unit of measurement is in meters. The range is 0 to 2000. The range for GSeries printers is 0 or 5 to 2000 meters.When set to 0, the alert label is only printed
on power-up or when the printer is reset.
Default: 0 (print on power-up).

Programming Guide

1/31/18

ZPL Commands
^MA

Parameters

Details

units = odometer
and printhead
maintenance
commands

The units parameter reports units of the odometer and printhead maintenance
commands, as follows: ~HQOD,~HQPH,~WQOD, ~WQPH.
Values:

C = centimeters (displays as: cm)
I = inches (displays as: ")
M = meters (displays as: M)
Default: I

Example: This example sets the printed head cleaning message to print after five meters and to
repeat every one meter after that until a ~ROC command is issued.
The Early Warning Maintenance setting must be ON. To enable the maintenance alert system on the
G-Series™ printer the ^JH command is used; on other Zebra printers the front panel can also be
used.

1. To set ^MA to print out a label flagging the need to clean the head, type:

^XA^MAC,Y,5,1^XZ

When the threshold is met a label will print indicating that the head needs to be clean.
2. For this example, the message on the label looks like this:

For details resetting the units of measure, see the ~HQ examples on page 202.

Comments Any values outside the specified range are ignored.
The intent of this command is to cause a label to print when the defined threshold is reached.

1/31/18

Programming Guide

P1099958-001

269

270

ZPL Commands
^MC

^MC – Map Clear
In normal operation, the bitmap is cleared after the format has been printed. The ^MC command is
used to retain the current bitmap. This applies to current and subsequent labels until cleared with
^MCY.
Format:

^MCa

Important • To produce a label template, ^MC must be used with ^FV.

Parameters

Details

a = map clear

Values: Y (clear bitmap) or N (do not clear bitmap)

Initial Value at Power Up: Y

Comments The ^MC command retains the image of the current label after formatting. It
appears in the background of the next label printed.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^MD

^MD – Media Darkness
The ^MD command adjusts the darkness relative to the current darkness setting.
Format:

^MDa

Parameters

Details

a = media darkness
level

Values: -30 to 30, depending on current value

Initial Value at Power Up: 0
If no value is entered, this command is ignored.

Example 1: These examples show setting the printer to different darkness levels:
•

If the current value (value on configuration label) is 16, entering the command ^MD-9 decreases
the value to 7.
• If the current value (value on configuration label) is 1, entering the command ^MD15 increases
the value to 16.
• If the current value (value on configuration label) is 25, entering the command ^MD10 increases
only the value to 30, which is the maximum value allowed.
Each ^MD command is treated separately in relation to the current value as printed on the
configuration label.

Note • On Zebra G-Series™ printers the value set with the ^MD command is persistent across
power cycles.

Important • The darkness setting range for the XiIIIPlus, Xi4, and RXi4 is 0 to 30 in
increments of 0.1.
The firmware is setup so that the ^MD and ~SD commands (ZPL darkness commands)
accepts that range of settings.
Example 2: These are examples of the XiIIIPlus, Xi4, and RXi4 Darkness Setting:
^MD8.3
~SD8.3

Example 3: For example, this is what would happen if two ^MD commands were received:
Assume the current value is 15. An ^MD-6 command is received that changes the current value to 9.
Another command, ^MD2, is received. The current value changes to 17.
The two ^MD commands are treated individually in relation to the current value of 15.

Comments The ~SD command value, if applicable, is added to the ^MD command.

1/31/18

Programming Guide

P1099958-001

271

272

ZPL Commands
^MF

^MF – Media Feed
The ^MF command dictates what happens to the media at power-up and at head-close after the
error clears.
Format:

^MFp,h

Parameters

Details

p = feed action at
power-up

Values:

F
C
L
N
S

=
=
=
=
=

feed to the first web after sensor
(see ~JC on page 226 definition)
(see ~JL on page 239 definition)
no media feed
short calibration m

Default: C

h = feed action after
closing
printhead

Values:

F
C
L
N
S

=
=
=
=
=

feed to the first web after sensor
(see ~JC on page 226 definition)
(see ~JL on page 239 definition)
no media feed
short calibration m

Default: C
m. These values are supported only on Xi4, RXi4, XiIIIPlus, PAX, ZM400/ZM600, RZ400/RZ600, and S4M printers.

Comments It is important to remember that if you choose the N setting, the printer
assumes that the media and its position relative to the printhead are the same as before
power was turned off or the printhead was opened. Use the ^JU command to save changes.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^MI

^MI – Set Maintenance Information Message
This command is available only for printers with firmware version V60.15.x, V50.15.x, or
later.
The ^MI command controls the content of maintenance alert messages, which are reminders
printed by the printer to instruct the operator to clean or replace the printhead.

Supported Devices
• Xi4, RXi4
• ZM400/ZM600m RZ400/RZ600
• S4M with v53.15.5Z or later
• G-Series
Format:

^MItype,message

Parameters

Details

type = identifies
the type of
alert

Values:

R = head replacement
C = head cleaning
Default: R

message = message
that prints
on the label
when a
maintenance
alert occurs

The maximum length of each message is 63 characters. All characters following the
comma and preceding the next tilde (~) or carat (^) define the message string.
Commas (,) are not allowed in the message.
Default:

HEAD CLEANING = please clean printhead
HEAD REPLACEMENT = please replace printhead

Example: This example sets the printhead (head) replacement warning message. Printing of this
message is controlled by the ^MA command.

1. To customize the text of this label, type something like this:

^XA^MIR,PRINT HEAD NEEDS REPLACEMENT - CALL EXT 1000^XZ

The label prints whatever you program it to say.
2. For this example, the message on the label looks like this:

1/31/18

Programming Guide

P1099958-001

273

274

ZPL Commands
^ML

^ML – Maximum Label Length
The ^ML command lets you adjust the maximum label length.

Note • This command does not apply when in continuous mode.
Format:

^MLa

Parameters

Details

a = maximum label
length (in dot
rows)

Values: the dpi of the printer multiplied by two, up to the maximum length of label
Default: last permanently saved value

Comments For calibration to work properly, you must set the maximum label length equal
to or greater than your actual label length.
This command is ignored on the HC100™ printer

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^MM

^MM – Print Mode
The ^MM command determines the action the printer takes after a label or group of labels has
printed.

Note • Refer to the User Guide for your printer to determine which print modes are supported by
your printer.
Format:

^MMa,b

Parameters

Details

a = desired mode

Values:

T
P
R
A
C
D
F
L
U
K

=
=
=
=
=
=
=
=
=
=

Tear-off n
Peel-off (not available on S-300) n
Rewind (depends on printer model)
Applicator (depends on printer model) n
Cutter (depends on printer model)
Delayed cutter n
RFID n
Reserved n, o
Reserved n, o
Kiosk p

Default:
The values available for parameter a depend on the printer being used and
whether it supports the option.
For RFID printers:
A = R110PAX4 print engines
F = other RFID printers

b = prepeel select

Values:

N = no
Y = yes
Default: N
The command is ignored if parameters are missing or invalid. The current value
of the command remains unchanged.

n. This value is not supported on the KR403 or ZD500R printer.
o. This value is supported only on the ZM400 and ZM600 printers.
p. This value is supported only the KR403 printer.
This list identifies the different modes of operation:
• Tear-off — after printing, the label advances so the web is over the tear bar. The label, with liner
attached, can be torn off manually.
• Peel-off — after printing, the label moves forward and activates a Label Available Sensor.
Printing stops until the label is manually removed from the printer.

Power Peel – liner automatically rewinds using an optional internal rewind spindle.
Value Peel – liner feeds down the front of the printer and is manually removed.
Prepeel – after each label is manually removed, the printer feeds the next label forward
to prepeel a small portion of the label away from the liner material. The printer then
backfeeds and prints the label. The prepeel feature assists in the proper peel operation of
some media types.

1/31/18

Programming Guide

P1099958-001

275

276

ZPL Commands
^MM
• Rewind — the label and liner are rewound on an (optional) external rewind device. The next
label is positioned under the printhead (no backfeed motion).
• Applicator — when used with an application device, the label move far enough forward to be
removed by the applicator and applied to an item. This applies only to printers that have
applicator ports and that are being used in a print-and-apply system.
• Cutter — after printing, the media feeds forward and is automatically cut into predetermined
lengths.
• Delayed cutter — When the printer is in the Delayed Cut PRINT MODE, it will cut the label when
it receives the ~JK (Delayed Cut) command. To activate the ~JK command, the printer's PRINT
MODE must be set to Delayed Cut and there must be a label waiting to be cut. When the printer
is not in the Delayed Cut PRINT MODE, the printer will not cut the label when it receives the
~JK command.

Note • Send ~JK in a separate file - it cannot be sent at the end of a set of commands.
The Delayed Cut feature can be activated:
•

through PRINT MODE on the printer’s control panel

•

with a ^MMD command

• RFID — increases throughput time when printing batches of RFID labels by eliminating
backfeed between labels.
• Kiosk — after printing, the media is moved in a presentation position, most applications
maintain a loop of media in the printer.

Comments Be sure to select the appropriate value for the print mode being used to avoid
unexpected results.
This command is ignored on the HC100™ printer.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^MN

^MN – Media Tracking
This command specifies the media type being used and the black mark offset in dots.
This bulleted list shows the types of media associated with this command:
• Continuous Media – this media has no physical characteristic (such as a web, notch,
perforation, black mark) to separate labels. Label length is determined by the ^LL command.
• Continuous Media, variable length – same as Continuous Media, but if portions of the printed
label fall outside of the defined label length, the label size will automatically be extended to
contain them. This label length extension applies only to the current label. Note that ^MNV still
requires the use of the ^LL command to define the initial desired label length.
• Non-continuous Media – this media has some type of physical characteristic (such as web,
notch, perforation, black mark) to separate the labels.
Format:

^MNa,b

Parameters

Details

a = media being used

Values:

N = continuous media
Y = non-continuous media web sensing q, r
W = non-continuous media web sensing q, r
M = non-continuous media mark sensing
A = auto-detects the type of media during calibration q, s
V = continuous media, variable length t

Default: a value must be entered or the command is ignored

b = black mark offset
in dots

This sets the expected location of the media mark relative to the point of separation
between documents. If set to 0, the media mark is expected to be found at the point
of separation. (i.e., the perforation, cut point, etc.)
All values are listed in dots. This parameter is ignored unless the a parameter is set
to M. If this parameter is missing, the default value is used.
Values:
-80 to 283 for direct-thermal only printers
-240 to 566 for 600 dpi printers
-75 to 283 for KR403 printers
-120 to 283 for all other printers
Default: 0

q.
r.
s.
t.

Provides the same result.
This value is not supported on the KR403 printer.
This parameter is supported only on G-series printers.
This parameter is supported only on the KR403 printer.

Comments This command is ignored on the HC100™ printer.

1/31/18

Programming Guide

P1099958-001

277

278

ZPL Commands
^MP

^MP – Mode Protection
The ^MP command is used to disable the various mode functions on the control panel. Once
disabled, the settings for the particular mode function can no longer be changed and the LED
associated with the function does not light.
Because this command has only one parameter, each mode must be disabled with an individual ^MP
command.
Format:

^MPa

Parameters

Details

a = mode to protect

Values:

D = disable Darkness Mode
P = disable Position Mode
C = disable Calibration Mode
E = enable all modes
S = disable all mode saves (modes can be adjusted but values are not

saved)
W
F
X
M

=
=
=
=

disable Pause
disable Feed
disable Cancel
disable menu changes

Default: a value must be entered or the command is ignored

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^MP

Example: This example shows the ZPL code that disables modes D and C. It also shows the
effects on the configuration label before and after the ZPL code is sent:

^XA
^MPD
^MPC
^XZ

Before

After

1/31/18

Programming Guide

P1099958-001

279

280

ZPL Commands
^MT

^MT – Media Type
The ^MT command selects the type of media being used in the printer.
These are the choices for this command:

•

Thermal Transfer Media – this media uses a high-carbon black or colored ribbon. The
ink on the ribbon is bonded to the media.

•

Direct Thermal Media – this media is heat sensitive and requires no ribbon.

Format:

^MTa

Parameters

Details

a = media type used

Values:

T = thermal transfer media
D = direct thermal media

Default: a value must be entered or the command is ignored

Comments This command is ignored on the HC100™ printer.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^MU

^MU – Set Units of Measurement
The ^MU command sets the units of measurement the printer uses. ^MU works on a field-by-field
basis. Once the mode of units is set, it carries over from field to field until a new mode of units is
entered.

^MU also allows for printing at lower resolutions — 600 dpi printers are capable of printing at 300,
200, and 150 dpi; 300 dpi printers are capable of printing at 150 dpi.
Format:

^MUa,b,c

Parameters

Details

a = units

Values:

b = format base in
dots per inch

Values: 150, 200, 300

c = desired dots-perinch conversion

Values: 300, 600

D = dots
I = inches
M = millimeters
Default: D

Default: a value must be entered or the command is ignored
Default: a value must be entered or the command is ignored

Example 1: This is an example of Setting Units:
Assume 8 dot/millimeter (203 dot/inch) printer.
Field based on dots:

^MUd^FO100,100^GB1024,128,128^FS
Field based on millimeters:

^MUm^FO12.5,12.5^GB128,16,16^FS
Field based on inches:

^MUi^FO.493,.493^GB5.044,.631,.631^FS
Example 2: This is an example of Converting dpi Values.
Convert a 150 dpi format to a 300 dpi format with a base in dots:

^MUd,150,300
Convert a 150 dpi format to a 600 dpi format with a base in dots:

^MUd,150,600
Convert a 200 dpi format to a 600 dpi format with a base in dots:

^MUd,200,600
To reset the conversion factor to the original format, enter matching values for parameters b and
c:

^MUd,150,150
^MUd,200,200
^MUd,300,300
^MUd,600,600
Comments This command should appear at the beginning of the label format to be in
proper ZPL II format. To turn the conversion off, enter matching values for parameter b and c.

1/31/18

Programming Guide

P1099958-001

281

282

ZPL Commands
^MW

^MW – Modify Head Cold Warning
The ^MW command allows you to set the head cold warning indicator based on the operating
environment.
Format:

^MWa

Parameters

Details

a = enable head cold
warning

Values:

Y = enable head cold warning
N = disable head cold warning

Important • When a parameter is not given, the instruction is ignored.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^NC

^NC – Select the Primary Network Device
The ^NC command selects the wired or wireless print server as the primary network device.

Supported Devices
• Xi4, RXi4
• ZM400/ZM600, RZ400/RZ600
The Xi4, RXi4, ZM400/ZM600, and RZ400/RZ600 printers support the simultaneous installation of
an internal, external, and a wireless print server. Even though all three print servers may be installed,
only one is connected to the network and is the active print server. Table 16 outlines priorities and
identifies which device becomes the active print server when multiple print servers are installed.

Table 16 • Effect of Primary Network Setting on Active Print Server
Installed and Connected to
a Live Ethernet Network

If the
Primary
Network is
set to:

Internal

External

Wireless u

X

X

X

Internal

X

X

External

X

Wireless

X

Wireless

Wired

Wireless

Then, the Active Print
Server will be:

X

X

X

X

Internal

X

External

u. A wireless option board must have an active radio that can properly associate to an access point.

Format: ^NCa

Parameters

Details

a = primary
network
device

Values:

1 = wired primary
2 = wireless primary
Default: 1
must be an accepted value or it is ignored

1/31/18

Programming Guide

P1099958-001

283

284

ZPL Commands
~NC

~NC – Network Connect
The ~NC command is used to connect a particular printer to a network by calling up the printer’s
network ID number.
Format:

~NC###

Parameters

Details

### = network ID
number assigned
(must be a
three-digit
entry)

Values: 001 to 999
Default: 000 (none)

Comments Use this command at the beginning of any label format to specify which printer
on the network is going to be used. Once the printer is established, it continues to be used
until it is changed by another ~NC command. This command must be included in the label
format to wake up the printer.
The commands ^MW, ~NC, ^NI, ~NR, and ~NT are used only with RS-422/485 printer
communications.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^ND

^ND – Change Network Settings
The ^ND command changes the network settings on supported printers.
For the external wired print server settings, the ^ND command is the same as the ^NS command.
For the wireless print server settings, the ^ND command is the same as the ^WI command.

Supported Devices
• Xi4 with firmware V53.17.1Z or later
• RXi4
• RZ400/RZ600 with firmware R53.15.xZ or later
• ZM400/ZM600 with firmware V53.15.xZ or later
• G-Series
Format:

^NDa,b,c,d,e,f,g,h,i,j

Parameters

Details

a = the device
that is being
modified

Values:

b = IP resolution

Values:

1 = external wired
2 = internal wired
3 = wireless

All
BOOTP
DHCP and BOOTP
DHCP
Gleaning only (Not recommended when the Wireless Print Server or
Wireless Plus Print Server is installed.)
R = RARP
P = Permanent
A
B
C
D
G

=
=
=
=
=

Default: A

c = IP address

Values: Any properly formatted IP address in the xxx.xxx.xxx.xxx format.

d = subnet mask

Values: Any properly formatted subnet mask in the xxx.xxx.xxx.xxx format.

e = default
gateway

Values: Any properly formatted gateway in the xxx.xxx.xxx.xxx format.

f = WINS server
address

Values: Any properly formatted WINS server in the xxx.xxx.xxx.xxx format.

g = connection
timeout
checking

Values:

Y = yes
N = no

Default: Y

h = timeout value

Time, in seconds, before the connection times out.
Values: 0 through 9999
Default: 300

i = ARP broadcast
interval

Time, in minutes, that the broadcast is sent to update the device’s ARP cache.
Values: 0 through 30
Default: 0 (no ARP sent)

1/31/18

Programming Guide

P1099958-001

285

286

ZPL Commands
^ND

Parameters

Details

j = base raw port
number

The port number that the printer should use for its RAW data.
Values: 1 through 65535
Default: 9100

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^NI

^NI – Network ID Number
The ^NI command is used to assign a network ID number to the printer. This must be done before
the printer can be used in a network.
Format:

^NI###

Parameters

Details

### = network ID
number assigned
(must be a
three-digit
entry)

Values: 001 to 999
Default: 000 (none)

Comments The last network ID number set is the one recognized by the system.
The commands ~NC, ^NI, ~NR, and ~NT are used only with RS-485 printer communications.

1/31/18

Programming Guide

P1099958-001

287

288

ZPL Commands
~NR

~NR – Set All Network Printers Transparent
The ~NR command sets all printers in the network to be transparent, regardless of ID or current
mode.
Format:

~NR

Comments The commands ~NC, ^NI, ~NR, and ~NT are used only with RS-485 printer
communications.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^NS

^NS – Change Wired Networking Settings
Use this command to change the wired print server network settings.
Format:

^NSa,b,c,d,e,f,g,h,i

Parameters

Details

a = IP resolution

Values:

A
B
C
D
G
R
P

=
=
=
=
=
=
=

ALL
BOOTP
DHCP AND BOOTP
DHCP
GLEANING ONLY
RARP
PERMANENT

Default: A
Use of GLEANING ONLY is not recommended when the Wireless Print Server or
Wireless Plus Print Server is installed.

b = IP address

Values: Any properly formatted IP address in the xxx.xxx.xxx.xxx format.

c = subnet mask

Values: Any properly formatted subnet mask in the xxx.xxx.xxx.xxx format.

d = default gateway

Values: Any properly formatted gateway in the xxx.xxx.xxx.xxx format.

e = WINS server
address

Values: Any properly formatted WINS server in the xxx.xxx.xxx.xxx format.

f = connection
timeout checking

Values:

Y = Yes
N = No

Default: Y

g = timeout value

Time, in seconds, before the connection times out.
Values: 0 through 9999
Default: 300

h = ARP broadcast
interval

Time, in minutes, that the broadcast is sent to update the device’s ARP cache.
Values: 0 through 30
Default: 0 (no ARP sent)

i = base raw port
number

The port number that the printer should use for its RAW data.
Values: 1 through 65535
Default: 9100

Example:

^XA
^NSa,192.168.0.1,255.255.255.0,192.168.0.2
^XZ

Comments For the Xi4, RXI4, ZM400/ZM600, and RZ400/RZ600 printers, Zebra recommends
that you use the ^ND command instead of the ^NS command.

1/31/18

Programming Guide

P1099958-001

289

290

ZPL Commands
~NT

~NT – Set Currently Connected Printer Transparent
The ~NT command sets the currently connected network printer to be transparent.
Format:

~NT

Comments With Z Series® printers, the ~NT command functions the same as the ~NR
command. All Z Series printers on a network receive the transmission.
The commands ~NC, ^NI, ~NR, and ~NT are used only with RS-485 printer communications.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^PA

^PA – Advanced Text Properties
This command is available only for printers with firmware version V60.14.x, V50.14.x, or
later.
The ^PA command is used to configure advanced text layout features.
Format:

^PAa,b,c,d

Parameters

Details

a = default glyph

This determines whether the default glyph is a space character or the default glyph
of the base font, which is typically a hollow box.
Values:

0 = off (space as default glyph)
1 = on (default glyph of font is used, often a hollow box, but depends on

the font.)
Default: 0

b = bidirectional
text layout

This determines whether the bidirectional text layout is turned on or off.
Values:

0 = off
1 = on
Default: 0

c = character shaping

This determines whether character shaping is turned on or off.
Values:

0 = off
1 = on
Default: 0
d = OpenType table
support

This determines whether the OpenType support is turned on or off.
Values:

0 = off
1 = on
Default: 0

1/31/18

Programming Guide

P1099958-001

291

292

ZPL Commands
^PF

^PF – Slew Given Number of Dot Rows
The ^PF command causes the printer to slew labels (move labels at a high speed without printing) a
specified number of dot rows from the bottom of the label. This allows faster printing when the
bottom portion of a label is blank.
Format:

^PF#

Parameters

Details

# = number of dots
rows to slew

Default: a value must be entered or the command is ignored

P1099958-001

Values: 0 to 32000

Programming Guide

1/31/18

ZPL Commands
^PH ~PH

^PH ~PH – Slew to Home Position
The ^PH or ~PH command causes the printer to feed one blank label.
The ~PH command feeds one label after the format currently being printed is done or when the
printer is placed in pause.
The ^PH command feeds one blank label after the current format prints.
Format:

1/31/18

^PH or ~PH

Programming Guide

P1099958-001

293

294

ZPL Commands
~PL

~PL – Present Length Addition
The ~PL command adds an additional amount to how far the paper is ejected during a present
cycle. A standard amount of 50mm is always added to clear the kiosk wall. This amount is added to
that 50mm. The total amount of media ejected when a ^PN is executed, then, is 50mm + ~PL value
+ ^PN value.

Supported Devices
• KR403
Format:

^PLa

Parameters

Details

a = additional eject length

Values:
000-255 = additional mm of media to eject
Default: 000
The command is ignored if parameters are missing or invalid.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^PM

^PM – Printing Mirror Image of Label
The ^PM command prints the entire printable area of the label as a mirror image. This command flips
the image from left to right.
Format:

^PMa

Parameters

Details

a = print mirror
image of entire
label

Values:

N = no
Y = yes
Default: N

Example: This is an example of printing a mirror image on a label:

ZPL II CODE

GENERATED LABEL

^XA^PMY
^FO100,100
^CFG
^FDMIRROR^FS
^FO100,160
^FDIMAGE^FS
^XZ

Comments If the parameter is missing or invalid, the command is ignored. Once entered,
the ^PM command remains active until ^PMN is received or the printer is turned off.

1/31/18

Programming Guide

P1099958-001

295

296

ZPL Commands
^PN

^PN – Present Now
The ^PN command causes the printer to run a Presenter cycle. The parameter defines the amount
of media ejected. The total amount of media ejected when a ^PN is executed, then, is 50mm + ~PL
value + ^PN value. (See ~PL on page 294).

Supported Devices
• KR403
Format:

^PNa

Parameters

Details

a = media eject
length

Values:
0-255 = additional mm of media to eject
Default: none
The command is ignored if parameters are missing or invalid.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^PO

^PO – Print Orientation
The ^PO command inverts the label format 180 degrees. The label appears to be printed upside
down. If the original label contains commands such as ^LL, ^LS, ^LT and ^PF, the inverted label
output is affected differently.
Format:

^POa

Parameters

Details

a = invert label
180 degrees

Values:

N = normal
I = invert
Default: N

Example: This is an example of printing a label at 180 degrees:

ZPL II CODE

GENERATED LABEL

^XA^CFD
^POI
^LH330,10
^FO50,50
^FDZEBRA TECHNOLOGIES^FS
^FO50,75
^FDVernon Hills, IL^FS
^XZ

The ^POI command inverts the x, y coordinates. All image placement is relative to these inverted
coordinates. Therefore, a different ^LH (Label Home) can be used to move the print back onto the
label.

Comments If multiple ^PO commands are issued in the same label format, only the last
command sent to the printer is used.
Once the ^PO command is sent, the setting is retained until another ^PO command is received or the
printer is turned off.
The N value for the a parameter is not supported on the HC100™ printer.

1/31/18

Programming Guide

P1099958-001

297

298

ZPL Commands
^PP ~PP

^PP ~PP – Programmable Pause
The ~PP command stops printing after the current label is complete (if one is printing) and places the
printer in Pause Mode.
The ^PP command is not immediate. Therefore, several labels might print before a pause is
performed. This command pauses the printer after the current format prints.
The operation is identical to pressing PAUSE on the control panel of the printer. The printer remains
paused until PAUSE is pressed or a ~PS (Print Start) command is sent to the printer.
Format:

P1099958-001

^PP or ~PP

Programming Guide

1/31/18

ZPL Commands
^PQ

^PQ – Print Quantity
The ^PQ command gives control over several printing operations. It controls the number of labels to
print, the number of labels printed before printer pauses, and the number of replications of each
serial number.
Format:

^PQq,p,r,o,e

Parameters

Details

q = total quantity of
labels to print

Values: 1 to 99,999,999

p = pause and cut
value (labels
between pauses)

Values: 1 to 99,999,999

r = replicates of
each serial
number

Values: 0 to 99,999,999 replicates

Default: 1
Default: 0 (no pause)

Default: : 0 (no replicates)

o = override pause
count

Values:

e = cut on error
label (RFID void
is an error
label)

Values:

N = no
Y = yes
Default: N
N = no - if a cutter is installed, a cut will be made after a voided RIFD label
ONLY if a cut would be made after the non-voided label and this was the last
retry.
Y = yes - if a cutter is installed, a cut will be made after ANY voided RFID label.

Default: Y
If the o parameter is set to Y, the printer cuts but does not pause, and the printer does not pause
after every group count of labels has been printed. With the o parameter set to N (default), the
printer pauses after every group count of labels has been printed.
Example: This example shows the control over print operations:

^PQ50,10,1,Y: This example prints a total of 50 labels with one replicate of each serial number. It
prints the total quantity in groups of 10, but does not pause after every group.
^PQ50,10,1,N: This example prints a total of 50 labels with one replicate of each serial number. It
prints the total quantity in groups of 10, pausing after every group.

1/31/18

Programming Guide

P1099958-001

299

300

ZPL Commands
~PR

~PR – Applicator Reprint
If the ~PR command is enabled (see ^JJ on page 237), the last label printed reprints, similar to the
applicator asserting the Reprint signal on the applicator port. This command is similar to
device.applicator.reprint on page 625.

Supported Devices
• ZE500
• XiIIIPlus
• Xi4 with firmware V53.17.1Z or later
• PAX2, PAX4
• S4M
• ZM400/ZM600
Format:

~PR

Comments Pressing PREVIOUS on the control panel also causes the last label to reprint.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^PR

^PR – Print Rate
The ^PR command determines the media and slew speed (feeding a blank label) during printing.
The printer operates with the selected speeds until the setting is reissued or the printer is turned off.
The print speed is application-specific. Because print quality is affected by media, ribbon, printing
speeds, and printer operating modes, it is very important to run tests for your applications.

Important • Some models go to default print speed when power is turned off.
Format:

^PRp,s,b

Parameters

Details

p = print speed

Values:

1 = 25.4 mm/sec. (1 inch/sec.) v
A or 2 = 50.8 mm/sec. (2 inches/sec.)
B or 3 = 76.2 mm/sec. (3 inches/sec.)
C or 4 = 101.6 mm/sec. (4 inches/sec.)
5 = 127 mm/sec.(5 inches/sec.)
D or 6 = 152.4 mm/sec. (6 inches/sec.)
7 = 177.8 mm/sec. (7 inches/sec.)
E or 8 = 203.2 mm/sec. (8 inches/sec.)
9 = 220.5 mm/sec. 9 inches/sec.)
10 = 245 mm/sec.(10 inches/sec.)
11 = 269.5 mm/sec.(11 inches/sec.)
12 = 304.8 mm/sec. 12 inches/sec.)
13 = 13 in/sec w
14 = 14 in/sec w

Default: A

s = slew speed

Values:

A or 2 = 50.8 mm/sec. (2 inches/sec.)
B or 3 = 76.2 mm/sec. (3 inches/sec.)
C or 4 = 101.6 mm/sec. (4 inches/sec.)
5 = 127 mm/sec. 5 inches/sec.)
D or 6 = 152.4 mm/sec. (6 inches/sec.)
7 = 177.8 mm/sec. (7 inches/sec.)
E or 8 = 203.2 mm/sec. (8 inches/sec.)
9 = 220.5 mm/sec. (9 inches/sec.)
10 = 245 mm/sec. (10 inches/sec.)
11 = 269.5 mm/sec. 11 inches/sec.)
12 = 304.8 mm/sec. 12 inches/sec.)
13 = 13 in/sec w
14 = 14 in/sec w
Default: D
v. This value is supported only on the 110Xi4-600dpi, 110XiIIIPlus-600dpi , and RXi printers.
w. This value is supported only on the Xi4 and RXi4 printers.

1/31/18

Programming Guide

P1099958-001

301

302

ZPL Commands
^PR

Parameters

Details

b = backfeed speed

Values:

A or 2 = 50.8 mm/sec. (2 inches/sec.)
B or 3 = 76.2 mm/sec. (3 inches/sec.)
C or 4 = 101.6 mm/sec. (4 inches/sec.)
5 = 127 mm/sec.(5 inches/sec.)
D or 6 = 152.4 mm/sec. (6 inches/sec.)
7 = 177.8 mm/sec. (7 inches/sec.)
E or 8 = 203.2 mm/sec. (8 inches/sec.)
9 = 220.5 mm/sec. 9 inches/sec.)
10 = 245 mm/sec. 10 inches/sec.)
11 = 269.5 mm/sec. 11 inches/sec.)
12 = 304.8 mm/sec. 12 inches/sec.)
13 = 13 in/sec w
14 = 14 in/sec w
Default: A
v. This value is supported only on the 110Xi4-600dpi, 110XiIIIPlus-600dpi , and RXi printers.
w. This value is supported only on the Xi4 and RXi4 printers.

Comments The speed setting for p, s, and b is dependent on the limitations of the printer.
If a particular printer is limited to a rate of 6 ips (inches per second), a value of 12 can be
entered but the printer performs only at a 6 ips rate. See your printer’s User Guide for
specifics on performance.
This command is ignored on the HC100 printer.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~PS

~PS – Print Start
The ~PS command causes a printer in Pause Mode to resume printing. The operation is identical to
pressing PAUSE on the control panel of the printer when the printer is already in Pause Mode.
Format:

1/31/18

~PS

Programming Guide

P1099958-001

303

304

ZPL Commands
^PW

^PW – Print Width
The ^PW command allows you to set the print width.
Format:

^PWa

Parameters

Details

a = label width (in
dots)

Values: 2, to the width of the label
If the value exceeds the width of the label, the width is set to the label’s
maximum size.
Default: last permanently saved value

Comments This command is ignored on the HC100™ printer.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~RO

~RO – Reset Advanced Counters
The ~RO command resets the advanced counters used by the printer to monitor label generation in
inches, centimeters, and number of labels.
Format: ~ROc

Parameters

Details

c = counter number

Values:

1
2
3
4
C
R

=
=
=
=

reset counter 1
reset counter 2
reset valid RFID label counter
reset voided RFID label counter
= reset head cleaned counter x
= reset head replaced counter and head cleaned counter x

Default: a value must be specified or the command is ignored
x. These values are supported only on Xi4, RXi4, ZM400/ZM600, RZ400/RZ600, S4M, and G-Series printers.

Example 1: This example shows how the counter portion of the printer configuration labels
looks when counter 1 is reset by sending ~RO1.
Before

After

1/31/18

Programming Guide

P1099958-001

305

306

ZPL Commands
^SC

^SC – Set Serial Communications
The ^SC command allows you to change the serial communications parameters you are using.
Format:

^SCa,b,c,d,e,f

Parameters

Details

a = baud rate

Values: 110 y; 300; 600; 1200; 2400; 4800; 9600; 14400; 19200; 28800; 38400; or
57600; 115200
Default: must be specified or the parameter is ignored

b = word length (in
data bits)

Values: 7 or 8

c = parity

Values: N (none), E (even), or O (odd)

Default: must be specified
Default: must be specified

d = stop bits

Values: 1 or 2
Default: must be specified

e = protocol mode

Values:

X
D
R
M

=
=
=
=

XON/XOFF
DTR/DSR
RTS
DTR/DSR XON/XOFF z

Default: must be specified

f = Zebra protocol

Values:
A = ACK/NAK
N = none
Z = Zebra
Default: must be specified

y. This value is not supported on Xi4, RXi4, ZM400/ZM600, RZ400/RZ600, and S4M printers.
z. This parameter is supported only on G-Series printers. Using the DTR/DSR XON/XOFF mode will cause the printer to respond
to either DTR/DSR or XON/XOFF, depending on which method is first received from the host device.

Comments If any of the parameters are missing, out of specification, not supported by a
particular printer, or have a ZPL-override DIP switch set, the command is ignored.
A ^JUS command causes the changes in Communications Mode to persist through power-up and
software resets.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~SD

~SD – Set Darkness
The ~SD command allows you to set the darkness of printing. ~SD is the equivalent of the darkness
setting parameter on the control panel display.
Format:

~SD##

Parameters

Details

## = desired darkness
setting (twodigit number)

Values: 00 to 30
Default: last permanently saved value

Important • The darkness setting range for the XiIIIPlus, Xi4, and RXi4 is 0 to 30 in
increments of 0.1. The firmware is setup so that the ^MD and ~SD commands (ZPL darkness
commands) accept that range of settings.
Example: These are examples of the XiIIIPlus, Xi4, and RXi4 Darkness Setting:
^MD8.3
~SD8.3

Comments The ^MD command value, if applicable, is added to the ~SD command.

1/31/18

Programming Guide

P1099958-001

307

308

ZPL Commands
^SE

^SE – Select Encoding Table
The ^SE command is used to select the desired ZPL or ZPL II encoding table.
Format:

^SEd:o.x

Parameters

Details

d = location of
encoding table

Values: R:, E:, B:, and A:

o = name of encoding
table

Values: 1 to 8 alphanumeric characters
Default: a value must be specified

x = extension

Fixed Value:

Default: R:

.DAT

The encoding tables are provided with the font card or downloaded in flash with the font. The
table appears as XXXXXXX.DAT in a directory label printed by the ZPL commands.
The most active encoding table is indicated by the * on the directory label.
Example:

^XA^WD*:*.*^XZ

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^SF

^SF – Serialization Field (with a Standard ^FD String)
The ^SF command allows you to serialize a standard ^FD string. The maximum size of the mask
and increment string is 3K combined.

In firmware version x.14 and later, strings are serialized from the last character in the
backing store with regard to the alignment of the mask and increment strings. For
combining semantic clusters that do not get incremented, the mask character % needs to be
added to the increment string.
Format:

^SFa,b

Parameters

Details

a = mask string

The mask string sets the serialization scheme. The length of the string mask defines
the number of characters (or in firmware version x.14 and later, combining semantic
clusters) in the current ^FD string to be serialized. The mask is aligned to the
characters (or in firmware version x.14 and later, combining semantic clusters) in
the ^FD string starting with the right-most (or in firmware x.14 and later, last) in the
backing store position.
Mask String placeholders:

D or d – Decimal numeric 0–9
H or h – Hexadecimal 0–9 plus a-f or A-F
O or o – Octal 0–7
A or a – Alphabetic A–Z or a–z
N or n – Alphanumeric 0–9 plus A–Z or a–z
% – Ignore character or skip
b = increment string

The increment string is the value to be added to the field on each label. The default
value is equivalent to a decimal value of one. The string is composed of any
characters (or in firmware version x.14 and later, combining semantic clusters)
defined in the serial string. Invalid characters (or in firmware version x.14 and later,
combining semantic clusters) are assumed to be equal to a value of zero in that
characters (or in firmware version x.14 and later, combining semantic clusters)
position.
The increment value for alphabetic strings start with ‘A’ or ‘a’ as the zero
placeholder. This means to increment an alphabetic character (or in firmware
version x.14 and later, combining semantic cluster) by one, a value of ‘B’ or ‘b’ must
be in the increment string.

For characters that do not get incremented, the % character needs to be added to the increment
string.

1/31/18

Programming Guide

P1099958-001

309

310

ZPL Commands
^SF

Example 1: This is an example of serializing a ^FD string. The ZPL II code generates three
separate labels as seen in Generated Labels:
ZPL II CODE

GENERATED LABELS

^XA
^FO100,100
^CF0,100
^FD12A^SFnnA,F^FS
^PQ3
^XZ

This mask has the first characters (or in firmware version x.14 and later, the first combining semantic
clusters) as alphanumeric (nn = 12) and the last digit as uppercase alphabetic (A). The decimal
value of the increment number is equivalent to 5 (F). The number of labels generated depends on
the number specified by the ^PQ command.
In a similar instance, the ^FD string could be replaced with either of the ^FD strings below to
generate a series of label, determined by ^PQ.

Using this ZPL code:
^FDBL0000^SFAAdddd,1
The print sequence on this series of labels is:
BL0000, BL0001,...BL0009, BL0010,...
BL0099, BL0100,...BL9999, BM0000...
Using this ZPL code:
^FDBL00-0^SFAAdd%d,1%1
The print sequence on this series of labels is:
BL00-0, BL01-1, BL02-2,...BL09-9,
BL11-0, BL12-1...
Important notes about masking for firmware version V60.14.x, V50.14.x, or later:
•

A single % masks an entire combining semantic cluster rather than a single code
point.

•

The mask string and increment string should be aligned at the last code point in
their respective backing stores.

•

Control and bidirectional characters do not require a mask and are ignored for
serialization purposes.

The following examples show the importance of capitalization and location within the mask.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^SF

Example 2: In this example, the printer cycles with every two printed labels and alternates
between H (position 18), and then Z (position 36). With n or N, the serial number increments
from 0 - 9 and a–z or A–Z (36 positions overall). With each completed cycle, the second
cluster (nn) increments one position (from 00, 01, 02 …) per cycle:
ZPL II CODE

GENERATED LABELS

^XA
^FO100,50^A0N,50,50^FDzzZ^SFnnN,I^FS
^PQ10
^XZ

Example 3: In this example, lower case i increments with a mask string of nnN. Nothing
changes because the first cluster (Z) never triggers the second cluster (zz) to change.
ZPL II CODE

GENERATED LABELS

^XA
^FO100,50^A0N,50,50^FDzzZ^SFnnN,i^FS
^PQ10
^XZ

1/31/18

Programming Guide

P1099958-001

311

312

ZPL Commands
^SI

^SI – Set Sensor Intensity
This command is available only for printers with firmware versions V53.15.x or later.

The ^SI command is used to change the values for the media sensors, which are also set during
the media calibration process. The media calibration process is described in your specific printer’s
user’s guide.

Supported Devices
• Xi4 with firmware V53.17.1Z or later
• RXi4 with firmware V53.17.7Z or later
• ZM400/ZM600 with firmware V53.15.xZ or later
• RZ400/RZ600 wtih firmware R53.15.xZ or later
Format:

^SIa,b

Parameters

Details

a = indicates the
setting to
modify

Values:

1 = transmissive sensor brightness setting
2 = transmissive sensor baseline setting

Default: must be an accepted value or the entire command is ignored

b = the value to use
for the sensor
being configured

P1099958-001

The ranges for this parameter are the same for the accepted values in parameter a.
Values: 0 to 196
Default: must be an accepted value or the entire command is ignored

Programming Guide

1/31/18

ZPL Commands
^SL

^SL – Set Mode and Language (for Real-Time Clock)
The ^SL command is used to specify the Real-Time Clock’s mode of operation and language for
printing information.

Important •
•
•

Time is read when the image is created. If the image stays in the queue longer than the
specified time the image will be recreated with a new time.
There are incidents when the same time or a larger space of time may be printed on labels.
This is due to the format complexity and print speed.

Format: ^SLa,b

Parameters

Details

a = mode

Values:

S = Start Time Mode. This is the time that is read from the Real-Time
Clock when label formatting begins (when ^XA is received). The first

label has the same time placed on it as the last label.
T = Time Now Mode. This is the time that is read from the Real-Time
Clock when the label to be printed is placed in print queue. Time
Now is similar to a serialized time or date field.
Numeric Value = With the Enhanced Real Time Clock (V60.13.0.10 or
later) a time accuracy tolerance can be specified. Range = 1 to 999
seconds, 0 = one second tolerance
Example: SL30,1 = Accuracy tolerance of 30 seconds and use English.
Default: S
Values:

b = language

Value 13 is only supported in
firmware versions V60.14.x,
V50.14.x, or later.

1 = English
2 = Spanish
3 = French
4 = German
5 = Italian
6 = Norwegian
7 = Portuguese
8 = Swedish
9 = Danish
10 = Spanish 2
11 = Dutch
12 = Finnish
13 = Japanese
14 = Korean aa
15 = Simplified Chinese aa
16 = Traditional Chinese aa
17 = Russian aa
18 = Polish aa

Default: the language selected with ^KL or the control panel
aa.These values are only supported on the Xi4, RXi4, ZM400/ZM600, and RZ400/RZ600 printers.

Comments These are some comments to be aware of:
• The ^SL command must be placed before the first ^FO command.

1/31/18

Programming Guide

P1099958-001

313

314

ZPL Commands
^SL

•

As of V60.13.0.10 all supported printers have Enhanced Real Time Clock capabilities the RTC
will not print time fields that are more than sixty seconds old, rather it will update the time prior to
printing (^SLT or ^SL60). To control time with increments other than sixty seconds the ^SL
command can be used with a numeric value (^SL30).
^SLS can keep times longer than sixty seconds.

For more details on set mode and language with the Real-Time Clock, see Real Time Clock
on page 1375.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^SN

^SN – Serialization Data
The ^SN command allows the printer to index data fields by a selected increment or decrement
value, making the data fields increase or decrease by a specified value each time a label is printed.
This can be performed on 100 to 150 fields in a given format and can be performed on both
alphanumeric and bar code fields. A maximum of 12 of the right- most integers are subject to
indexing.

In x.13 and earlier, the first integer found when scanning from right to left starts the
indexing portion of the data field.
In x.14 and later, the first integer found when scanning from end of the backing store
towards the beginning starts the indexing portion of the data field.
In x.13 and earlier, if the alphanumeric field to be indexed ends with an alpha character, the
data is scanned, character by character, from right to left until a numeric character is
encountered. Serialization takes place using the value of the first number found.
In x.14 and later, if the backing store of the alphanumeric field to be indexed ends with an
alpha character, the data is scanned, character by character, from the end of the backing
store until a numeric character is encountered. Serialization takes place using the value of
the first number found.
Format:

^SNv,n,z

Parameters

Details

v = starting value

Values: 12-digits maximum for the portion to be indexed
Default: 1

n = increment or
decrement value

Values: 12-digit maximum
Default: 1
To indicate a decrement value, precede the value with a minus (–) sign.

z = add leading zeros
(if needed)

Values:

1/31/18

N = no
Y = yes
Default: N

Programming Guide

P1099958-001

315

316

ZPL Commands
^SN

Example: This example shows incrementing by a specified value:

ZPL II CODE

GENERATED LABELS

^XA
^FO260,110
^CFG
^SN001,1,Y^FS
^PQ3
^XZ

Note: The ZPL II code above will generate
three separate labels, seen to the right.

Comments Incrementing and decrementing takes place for each serial-numbered field
when all replicates for each serial number have been printed, as specified in parameter r of
the ^PQ (print quality) command.
If, during the course of printing serialized labels, the printer runs out of either paper or ribbon, the
first label printed (after the media or ribbon has been replaced and calibration completed) has the
same serial number as the partial label printed before the out condition occurred. This is done in
case the last label before the out condition did not fully print. This is controlled by the ^JZ command.

Using Leading Zeros
In the ^SN command, the z parameter determines if leading zeros are printed or suppressed.
Depending on which value is used (Y = print leading zeros; N = do not print leading zeros), the
printer either prints or suppresses the leading zeros.
The default value for this parameter is N (do not print leading zeros).

Print Leading Zeros
In x.13 and earlier, the starting value consists of the right-most consecutive sequence of
digits.
In x.14 and later, the starting value consists of the first number working backwards in the backing
store consecutive sequence of digits.
The width (number of digits in the sequence) is determined by scanning from right to left until the
first non-digit (space or alpha character) is encountered. To create a specific width, manually place
leading zeros as necessary.

Suppressing Leading Zeros
In x.13 and earlier, the starting value consists of the right-most consecutive sequence of
digits, including any leading spaces.
In x.14 or later, the starting value consists of the first number working backwards in the
backing store consecutive sequence of digits, including any leading spaces.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^SO

^SO – Set Offset (for Real-Time Clock)
The ^SO command is used to set the secondary and the tertiary offset from the primary Real-Time
Clock.

Note • For each label only one SO2 command can be used. If more than one offset is required,
SO3 must be used.
Format:

^SOa,b,c,d,e,f,g

Parameters

Details

a = clock set

Values:

2 = secondary
3 = third

Default: value must be specified

b = months offset

Values: –32000 to 32000
Default: 0

c = days offset

Values: –32000 to 32000
Default: 0

d = years offset

Values: –32000 to 32000
Default: 0

e = hours offset

Values: –32000 to 32000
Default: 0

f = minutes offset

Values: –32000 to 32000
Default: 0

g = seconds offset

Values: –32000 to 32000
Default: 0

For more detail on set offset, see Real Time Clock on page 1375.

1/31/18

Programming Guide

P1099958-001

317

318

ZPL Commands
^SP

^SP – Start Print
The ^SP command allows a label to start printing at a specified point before the entire label has
been completely formatted. On extremely complex labels, this command can increase the overall
throughput of the print.
The command works as follows: Specify the dot row at which the ^SP command is to begin. This
creates a label segment. Once the ^SP command is processed, all information in that segment
prints. During the printing process, all of the commands after the ^SP continue to be received and
processed by the printer.
If the segment after the ^SP command (or the remainder of the label) is ready for printing, media
motion does not stop. If the next segment is not ready, the printer stops mid-label and wait for the
next segment to be completed. Precise positioning of the ^SP command requires a trial-and-error
process, as it depends primarily on print speed and label complexity.
The ^SP command can be effectively used to determine the worst possible print quality. You can
determine whether using the ^SP command is appropriate for the particular application by using this
procedure.
If you send the label format up to the first ^SP command and then wait for printing to stop before
sending the next segment, the printed label is a sample of the worst possible print quality. It drops
any field that is out of order.
If the procedure above is used, the end of the label format must be:

^SP#^FS

Comments ^SPa
Parameters

Details

a = dot row to start
printing

Values: 0 to 32000
Default: 0

Example: In this example, a label 800 dot rows in length uses ^SP500. Segment 1 prints while
commands in Segment 2 are being received and formatted.

Dot position 0

Label Segment 2

Dot position 500

Label Segment 1
Dot position 800

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^SQ

^SQ – Halt ZebraNet Alert
The ^SQ command is used to stop the ZebraNet Alert option.
Format:

^SQa,b,c

Parameters

Details

a = condition type

Values:

A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
Q
R
S
T
U
V
W
*

b = destination

Values:

A
B
C
D
E
F
*

c = halt messages

1/31/18

=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=

paper out
ribbon out
printhead over-temp
printhead under-temp
head open
power supply over-temp
ribbon-in warning (Direct Thermal Mode)
rewind full
cut error
printer paused
PQ job completed
label ready
head element out
ZBI (Zebra BASIC Interpreter) runtime error
ZBI (Zebra BASIC Interpreter) forced error
clean printhead
media low
ribbon low
replace head
battery low
RFID error (in RFID printers only)
all errors (in RFID printers only)
all errors (in non-RFID printers)
serial port
parallel port
e-mail address
TCP/IP
UDP/IP
SNMP trap
wild card to stop alerts for all destinations

Values:

Y = halt messages
N = start messages
Default: Y

Programming Guide

P1099958-001

319

320

ZPL Commands
^SR

^SR – Set Printhead Resistance
The ^SR command allows you to set the printhead resistance.
Format:

^SR####

Parameters

Details

#### = resistance
value (fourdigit numeric
value)

Values: 0488 to 1175
Default: last permanently saved value

Comments To avoid damaging the printhead, this value should be less than or equal to the
value shown on the printhead being used. Setting a higher value could damage the printhead.
Note • New printer models automatically set head resistance.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^SS

^SS – Set Media Sensors
The ^SS command is used to change the values for media, web, ribbon, and label length set during
the media calibration process. The media calibration process is described in your specific printer’s
user’s guide.
Format:

^SSw,m,r,l,m2,r2,a,b,c

Parameters

Details

w = web (three-digit
value)

Values: 000 to 100

m = media (threedigit value)

Values: 000 to 100

r = ribbon (threedigit value)

Values: 000 to 100

l = label length (in
dots, four-digit
value)

Values: 0001 to 32000

m2 = intensity of
media LED
(three-digit
value)

Values: 000 to 255

r2 = intensity of
ribbon LED
(three-digit
value)

Values: 000 to 255

a = mark sensing
(three-digit
value)

Values: 000 to 100

b = mark media
sensing (threedigit value)

Values: 000 to 100

c = mark LED sensing
(three-digit
value)

Values: 000 to 255

1/31/18

Default: value shown on the media sensor profile or configuration label
Default: value shown on the media sensor profile or configuration label
Default: value shown on the media sensor profile or configuration label
Default: value calculated in the calibration process

Default: value calculated in the calibration process

Default: value calculated in the calibration process

Default: value calculated in the calibration process

Default: value calculated in the calibration process

Default: value calculated in the calibration process

Programming Guide

P1099958-001

321

322

ZPL Commands
^SS

Example: Below is an example of a media sensor profile. Notice the numbers from 000 to 100 and
where the words WEB, MEDIA, and RIBBON appear in relation to those numbers. Also notice the
black vertical spike. This represents where the printer sensed the transition from media-to-web-tomedia.

The media and sensor profiles produced vary in appearance from printer to printer.

Comments The m2 and r2 parameters have no effect in Stripe® S-300 and S-500 printers.
This command is ignored on the HC100™ printer.
Maximum values for parameters depend on which printer platform is being used.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^ST

^ST – Set Date and Time (for Real-Time Clock)
The ^ST command sets the date and time of the Real-Time Clock.
Format: ^STa,b,c,d,e,f,g

Parameters

Details

a = month

Values: 01 to 12
Default: current month

b = day

Values: 01 to 31
Default: current day

c = year

Values: 1998 to 2097
Default: current year

d = hour

Values: 00 to 23
Default: current hour

e = minute

Values: 00 to 59
Default: current minute

f = second

Values: 00 to 59
Default: current second

g = format

Values:

A = a.m.
P = p.m.
M = 24-hour military
Default: M

For more details on set date and time, see Real Time Clock on page 1375.

1/31/18

Programming Guide

P1099958-001

323

324

ZPL Commands
^SX

^SX – Set ZebraNet Alert
The ^SX command is used to configure the ZebraNet Alert System.
Format:

^SXa,b,c,d,e,f

Note • The values in this table apply to firmware version V48.12.4 or later.

Parameters

Details

a = condition type

Values:

A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
*

=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=

paper out
ribbon out
printhead over-temp
printhead under-temp
head open
power supply over-temp
ribbon-in warning (Direct Thermal Mode)
rewind full
cut error
printer paused
PQ job completed
label ready
head element out
ZBI (Zebra BASIC Interpreter) runtime error
ZBI (Zebra BASIC Interpreter) forced error
power on
clean printhead
media low
ribbon low
replace head
battery low
RFID error (in RFID printers only)
all errors

Default: if the parameter is missing or invalid, the command is ignored

b = destination for
route alert

Values:

A = serial port
B* = parallel port
C = e-mail address
D = TCP/IP
E = UDP/IP
F = SNMP trap

Default: If this parameter is missing or invalid, the command is ignored.
* Requires bidirectional communication.

c = enable condition
set alert to
this destination

P1099958-001

Values:

N = no
Y = yes
Values: Y or previously configured value

Programming Guide

1/31/18

ZPL Commands
^SX

Parameters

Details

d = enable condition
clear alert to
this destination

Values:

N = no
Y = yes
Values: N or previously configured value
Parameters e and f are sub-options based on destination. If the sub-options are
missing or invalid, these parameters are ignored.

e = destination
setting

Values:
Internet e-mail address (e.g. user@company.com)
IP address (for example, 10.1.2.123)
SNMP trap
IP or IPX addresses

f = port number

Values:
TCP port # (0 to 65535)
UPD port # (0 to 65535)

Example: This is an example of the different (b) destinations that you can send for the condition
type (a):
Serial: ^SXA,A,Y,Y
Parallel: ^SXA,B,Y,Y
E-Mail: ^SXA,C,Y,Y,admin@company.com
TCP: ^SXA,D,Y,Y,123.45.67.89,1234
UDP: ^SXA,E,Y,Y,123.45.67.89,1234
SNMP Trap: ^SXA,F,Y,Y,255.255.255.255

Comments In the example above for SNMP Trap, entering 255.255.255.255 broadcasts the
notification to every SNMP manager on the network. To route the device to a single SNMP
manager, enter a specific address (123.45.67.89).

1/31/18

Programming Guide

P1099958-001

325

326

ZPL Commands
^SZ

^SZ – Set ZPL Mode
The ^SZ command is used to select the programming language used by the printer. This command
gives you the ability to print labels formatted in both ZPL and ZPL II.
This command remains active until another ^SZ command is sent to the printer or the printer is
turned off.
Format:

^SZa

Parameters

Details

a = ZPL version

Values:

1 = ZPL
2 = ZPL II
Default: 2

Comments If the parameter is missing or invalid, the command is ignored.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~TA

~TA – Tear-off Adjust Position
The ~TA command lets you adjust the rest position of the media after a label is printed, which
changes the position at which the label is torn or cut.
Format:

~TA###

Important • These are some important facts about this command:
• For 600 dpi printers, the step size doubles.
• If the number of characters is less than 3, the command is ignored.
Parameters

Details

### = change in media
rest position
(3-digit value
in dot rows must
be used.)

Values:

–120 to 120
0 to 120 (on the HC100)
Default: last permanent value saved

Comments If the parameter is missing or invalid, the command is ignored.

1/31/18

Programming Guide

P1099958-001

327

328

ZPL Commands
^TB

^TB – Text Blocks
This command is available only for printers with firmware version V60.14.x, V50.14.x, or
later.
The ^TB command prints a text block with defined width and height. The text block has an automatic
word-wrap function. If the text exceeds the block height, the text is truncated. This command
supports complex text layout features.

Note • ^TB is the preferred command for printing fields or blocks of text, instead of ^FB.
Format:

^TBa,b,c

Parameters

Details

a = block rotation

Values:

N
R
I
B

=
=
=
=

normal
rotate 90 degrees clockwise
invert 180 degrees
read from bottom up-270 degrees

Default: whatever was specified by the last ^A (which has the default of ^FW)
Values:

b = block width in
dots

1 to the width of the label in dots
Default: 1 dot

c = block height in
dots

Values:

1 to the length of the label in dots
Default: 1 dot

Comments Facts about the ^TB command:

P1099958-001

•

Justification of ^TB command comes from ^FO, ^FT, or ^FN command. If no
justification is determined then the default is auto justification.

•

Data between < and > is processed as an escape sequence; for example,
<< > will print < .

•

The ^TB command has an automatic word-wrap function. Soft hyphens do not print
and are not used as a line break position.

Programming Guide

1/31/18

ZPL Commands
^TO

^TO – Transfer Object
The ^TO command is used to copy an object or group of objects from one storage device to another.
It is similar to the copy function used in PCs.
Source and destination devices must be supplied and must be different and valid for the action
specified. Invalid parameters cause the command to be ignored.
The asterisk (*) can be used as a wild card for object names and extensions. For instance, ZEBRA.*
or *.GRF are acceptable forms for use with the ^TO command.
At least one source parameter (d, o, or x) and one destination parameter (s, o, or x) must be
specified. If only ^TO is entered, the command is ignored.
Format:

^TOs:o.x,d:o.x

Parameters

Details

s = source device of
stored object

Values: R:, E:, B:, and A:

o = stored object
name

Values: any existing object conforming to Zebra conventions
Default: if a name is not specified, * is used — all objects are selected

x = extension

Values: any extension conforming to Zebra conventions
Default: if an extension is not specified, * is used — all extensions are selected

d = destination
device of the
stored object

Values: R:, E:, B:, and A:

o = name of the
object at
destination

Values: up to 8 alphanumeric characters
Default: if a name is not specified, the name of the existing object is used

x = extension

Values: any extension conforming to Zebra conventions
Default: if an extension is not specified, the extension of the existing object is used

Default: if a drive is not specified, all objects are transferred to the drive set in
parameter s

Default: a destination must be specified

Comments Parameters o, x, and s support the use of the wild card (*).
If the destination device does not have enough free space to store the object being copied, the
command is canceled.
Zebra files (Z:*.*) cannot be transferred. These files are copyrighted by
Zebra Technologies.

Transferring Objects
These are some examples of using the ^TO command.

Example 1: To copy the object ZLOGO.GRF from DRAM to an optional Memory Card and
rename it ZLOGO1.GRF, write the following format:
^XA
^TOR:ZLOGO.GRF,B:ZLOGO1.GRF
^XZ

1/31/18

Programming Guide

P1099958-001

329

330

ZPL Commands
^TO

Example 2: To copy the object SAMPLE.GRF from an optional Memory Card to DRAM
and keep the same name, write this format:
^XA
^TOB:SAMPLE.GRF,R:SAMPLE.GRF
^XZ

Transferring Multiple Objects
The asterisk (*) can be used to transfer multiple object files (except *.FNT) from DRAM to the
Memory Card. For example, assume you have several object files that contain logos. These files are
named LOGO1.GRF, LOGO2.GRF, and LOGO3.GRF.
To transfer all these files to the memory card using the name NEW instead of LOGO, place an
asterisk after the names NEW and LOGO in the transfer command. This copies all files beginning
with LOGO in one command.

^XA
^TOR:LOGO*.GRF,B:NEW*.GRF
^XZ
During a multiple transfer, if a file is too big to be stored on the memory card, that file is skipped. All
remaining files attempt to be transferred. All files that can be stored within the space limitations are
transferred, while other files are ignored.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~WC

~WC – Print Configuration Label
The ~WC command is used to generate a printer configuration label. The printer configuration label
contains information about the printer setup, such as sensor type, network ID, ZPL mode, firmware
version, and descriptive data on the R:, E:, B:, and A: devices.
Format:

~WC

Comments This command works only when the printer is idle.

1/31/18

Programming Guide

P1099958-001

331

332

ZPL Commands
^WD

^WD – Print Directory Label
The ^WD command is used to print a label listing bar codes, objects stored in DRAM, or fonts.
For bar codes, the list shows the name of the bar code. For fonts, the list shows the name of the font,
the number to use with ^A command, and size. For objects stored in DRAM, the list shows the name
of the object, extension, size, and option flags. All lists are enclosed in a double-line box.
Format: ^WDd:o.x

Parameters

Details

d = source device
optional

—

o = object name —
optional
x = extension —
optional

.TTF and .TTE are only
supported in firmware
version V60.14.x, V50.14.x,
or later.

Values: R:, E:, B:, A: and Z:
Default: R:
Values: 1 to 8 alphanumeric characters
Default: *
The use of a ? (question mark) is also allowed.
Values: any extension conforming to Zebra conventions
.FNT = font
.BAR = bar code
.ZPL = stored ZPL format
.GRF = GRF graphic
.CO = memory cache
.DAT = font encoding
.BAS = ZBI encrypted program
.BAE = ZBI encrypted program
.STO = data storage
.PNG = PNG graphic
* = all objects
.TTF = TrueType Font
.TTE = True Type Extension
Default: *
The use of a ? (question mark) is also allowed.

Example 1: To print a label listing all objects in DRAM, enter:
^XA
^WDR:*.*
^XZ

Example 2: To print a label listing all resident bar codes, enter:
^XA
^WDZ:*.BAR
^XZ

Example 3: To print a label listing all resident fonts, enter:
^XA
^WDZ:*.FNT
^XZ

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~WQ

~WQ – Write Query
The ~WQ command triggers the printer to print a label with odometer, maintenance or alert, and
printhead history information.

Supported Devices
• Xi4 with firmware V53.17.1Z or later
• RXi4 with firmware V53.17.7Z or later
• ZM400/ZM600 with firmware V53.15.xZ or later
• RZ400/RZ600 with firmware R53.15.xZ or later
• S4M with firmware V53.15.4Z or later
• G-Series
Format: ~WQquery-type

Parameter

Details

query-type

For detailed examples of these parameters, see ~WQ Examples on page 334.
Values:

ES = requests the printer’s status. For details see, Table 17 on page 333
HA
JT
MA
MI
OD
PH
PP
SN
UI

=
=
=
=
=
=
=
=
=

and Table 18 on page 334.
hardware address of the internal wired print server
requests a summary of the printer’s printhead test results
maintenance alert settings
maintenance information
odometer
printhead life history
printer’s Plug and Play string
printer’s serial number
printer’s USB product ID and BCD release version

Default: must be an accepted value or the command is ignored

Table 17 • Error Flags (~WQES)
Group 2
Error Flags

Flag
Nibbles16-9

Group 1
Nibble
8

Nibble
7

(X = Value can be any hexadecimal number [0-9, A-F])
Nibble
6

Nibble
5

Nibble
4

Nibble
3

Nibble
2

Nibble
1

No Error

0

00000000

0

0

0

0

0

0

0

0

Error Present

1

00000000

X

X

X

X

X

X

X

X

Printhead Thermistor Open

1

00000000

X

X

X

X

X

2

X

X

Invalid Firmware Config.

1

00000000

X

X

X

X

X

1

X

X

Printhead Detection Error

1

00000000

X

X

X

X

X

X

8

X

Bad Printhead Element

1

00000000

X

X

X

X

X

X

4

X

Motor Over Temperature

1

00000000

X

X

X

X

X

X

2

X

Printhead Over Temperature

1

00000000

X

X

X

X

X

X

1

X

Cutter Fault

1

00000000

X

X

X

X

X

X

X

8

Head Open

1

00000000

X

X

X

X

X

X

X

4

ab.This error flag is supported only on KR403 printers.

1/31/18

Programming Guide

P1099958-001

333

334

ZPL Commands
~WQ

Table 17 • Error Flags (~WQES) (Continued)
Group 2
Error Flags

Flag

Ribbon Out
Media Out

ab

Clear Paper Path Failed
Paper Feed Error

1

ab

1

Presenter Not Running

ab

Paper Jam during Retract
Black Mark not Found

1

ab

ab

1
1

Black Mark Calabrate Error

1

Retract Function timed out
ab

1

ab

Paused

ab

1

Group 1

(X = Value can be any hexadecimal number [0-9, A-F])

Nibbles16-9

Nibble
8

Nibble
7

Nibble
6

Nibble
5

Nibble
4

Nibble
3

Nibble
2

Nibble
1

1

00000000

X

X

X

X

X

X

X

2

1

00000000

X

X

X

X

X

X

X

1

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

ab
ab
ab
ab
ab
ab
ab
ab

00000000

X

X

X

X

8

00000000

X

X

X

X

4

00000000

X

X

X

X

2

00000000
00000000

X
X

X

X

X

X

X
8

00000000

X

X

X

4

00000000

X

X

X

2

00000000

X

X

X

1

ab
ab
ab
ab

1

ab
ab
ab
ab

ab.This error flag is supported only on KR403 printers.

Table 18 • Warning Flags (~WQES)
Group 2
Error Flags

Flag

Group 1

(X = Value can be any hexadecimal number [0-9, A-F])

Nibbles16-9

Nibble
8

Nibble
7

Nibble
6

Nibble
5

Nibble
4

Nibble
3

Nibble
2

Nibble
1

No Warning

0

00000000

0

0

0

0

0

0

0

0

Warning Present

1

00000000

X

X

X

X

X

X

X

X

ac
Paper-near-end Sensor

ac

00000000

X

X

X

X

X

X

X

1

8

ac

Replace Printhead

1

00000000

X

X

X

X

X

X

X

4

Clean Printhead

1

00000000

X

X

X

X

X

X

X

2

Need to Calibrate Media

1

00000000

X

X

X

X

X

X

X

1
X

Sensor 1 (Paper before head)
ac
Sensor 2 (Black mark)

ac

Sensor 3 (Paper after head)
Sensor 4 (loop ready)
Sensor 5 (presenter)

ac

ac

Sensor 6 (retract ready)
Sensor 7 (in retract)
Sensor 8 (at bin)

ac

ac

ac
1
1

ac

ac

ac
1
1

ac

ac
1
ac

ac
1
ac
1
1

ac

00000000

X

X

X

X

X

X

ac
1

00000000

X

X

X

X

X

X

2

ac

X

00000000

X

X

X

X

X

X

ac
4

00000000

X

X

X

X

X

X

8

X

ac
1

X

X

X

ac
2

X

X

X

X

X

X

00000000

X

00000000

X

X
X

X
X

X
X

00000000

X

X

X

X

X

ac
4

00000000

X

X

X

X

X

8

ac

ac

X
X

ac.This error flag is supported only on KR403 printers.

~WQ Examples
This section provides detailed examples of all the available parameters.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
~WQ

Example 1: This example shows how to request the printer’s status.
1. To request the printer’s status, type ~WQES
A label similar to this prints out:

In this example, the Printer Status resolves to these conditions:
• The cover/printhead is open (value = 4).
• Media is out or not loaded into the printer (value = 1).
• The printhead needs to be cleaned (value = 2).
• Error nibble 1 is equal to 5 when the error status values are added together (4+1).
This illustration identifies the printer status definitions:

4 6

2

1
1
2
3
4
5
6

3

5

Flag
Nibble 16-9
Nibble 8-4
Nibble 3
Nibble 2
Nibble 1

Example 2: This example shows how to request the printer’s status.
1. To request the printer’s status, type ~WQES
A label similar to this prints out:

•
•
•
•

1/31/18

In the example shown above, the Printer Status resolves to the following conditions:
The cutter has a fault. (value = 8).
Ribbon is out or not loaded into the printer (value = 2).
Media is out or not loaded into the printer (value = 1).
Error byte 1 is equal to B when the error status values are added together
(8 + 2 + 1 = hexadecimal B).

Programming Guide

P1099958-001

335

336

ZPL Commands
~WQ

Example 3: This is an example of how to print the hardware address of the internal wired
print server.
1. To print the hardware address of the internal wired print server, type ~WQHA
A label similar to this prints out:

Example 4: This is an example of how to print a summary of the printer’s printhead test
results.
The ^JT command is used to initiate printhead testing, set the testing interval, and set the element
range to be tested. For more details see, ^JT on page 248.

1. To request a summary of the printer’s printhead test, type ~WQJT
A label similar to this prints out:

When the printer has printed enough labels to trigger a printhead test, the initial data
changes.
1. To request a summary of the printer’s printhead test, type ~WQJT
A label similar to this prints out:

This illustration identifies the printhead test field definitions:

1 2
1
2
3
4
5

P1099958-001

3

4

5

Element failure
Manual (M) or automatic (A) range
First test element
Last test element
Failure count

Programming Guide

1/31/18

ZPL Commands
~WQ

Example 5: This is an example of how to print the maintenance alert query for the ~WQ
command.
1. To get the current settings, type ~WQMA
A label similar to this prints out:

Example 6: This is an example of how to use the odometer query for the ~WQ command. Note
that the units of measure are controlled by the ^MA command. Also, if the "Early Warning
Maintenance State" is turned "ON" the printer response would also list LAST CLEANED and
CURRENT PRINTHEAD LIFE counters.
1. To get the current settings, type ~WQOD
A label similar to this prints out:

The units of measure are set to inches.

1. To change the units of measure to centimeters, type:

^XA^MA,,,,C
^XZ
The units of measure are set to centimeters.
2. To check the settings, type ~WQOD.
A label similar to this prints out:

Example 7: This is an example of how to print the maintenance information query for the
~WQ command. Note that the message is controlled by the ^MI command.
1. To get the current settings, type ~WQMI
A label similar to this prints out:

1/31/18

Programming Guide

P1099958-001

337

338

ZPL Commands
~WQ

Example 8: This is an example of how to print the printhead life query for the ~WQ command.
Note that the units of measure are controlled by the ^MA command.
1. To get the current settings, type ~WQPH
A label similar to this prints out:

1
2

1
2

The current life of the print head.
Line items 2 through 10 (the example only shows 2 through 3)
tracks the measurement for each time the print head is
changed.

Example 9: This is an example of how to print the printer’s Plug and Play string.
1. To print the printer’s Plug and Play string, type ~WQPP
A label similar to this prints out:

Example 10: This is an example of how to print the printer’s serial number.
1. To get the printer’s serial number, type ~WQSN
A label similar to this prints out:

Example 11: This is an example of how to print the printer’s USB product ID and BCD release
version.
1. To print the printer’s USB product ID and BCD release version, type ~WQUI
A label similar to this prints out:

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^XA

^XA – Start Format
The ^XA command is used at the beginning of ZPL II code. It is the opening bracket and indicates
the start of a new label format. This command is substituted with a single ASCII control character
STX (control-B, hexadecimal 02).
Format:

^XA

Comments Valid ZPL II format requires that label formats should start with the ^XA
command and end with the ^XZ command.

1/31/18

Programming Guide

P1099958-001

339

340

ZPL Commands
^XB

^XB – Suppress Backfeed
The ^XB command suppresses forward feed of media to tear-off position depending on the current
printer mode. Because no forward feed occurs, a backfeed before printing of the next label is not
necessary; this improves throughput. When printing a batch of labels, the last label should not
contain this command.
Format:

^XB

^XB in the Tear-off Mode
Normal Operation: backfeed, print, and feed to rest
^XB Operation: print (Rewind Mode)

^XB in Peel-off Mode
Normal Operation: backfeed, print, and feed to rest
^XB Operation: print (Rewind Mode)
Note • To prevent jamming in cutter mode, ^XB suppresses backfeed and cutting.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^XF

^XF – Recall Format
The ^XF command recalls a stored format to be merged with variable data. There can be multiple
^XF commands in one format, and they can be located anywhere within the code.
When recalling a stored format and merging data using the ^FN (Field Number) function, the calling
format must contain the ^FN command to merge the data properly.
While using stored formats reduces transmission time, no formatting time is saved. The ZPL II
format being recalled is saved as text strings that need to be formatted at print time.
Format:

^XFd:o.x

Parameters

Details

d = source device of
stored image

Values: R:, E:, B:, and A:

o = name of stored
image

Values: 1 to 8 alphanumeric characters
Default: if a name is not specified, UNKNOWN is used

x = extension l

Fixed Value: .ZPL

Default: search priority (R:, E:, B:, and A:)

For a complete example of the ^DF and ^XF command, see ^DF and ^XF — Download format and
recall format on page 38.

1/31/18

Programming Guide

P1099958-001

341

342

ZPL Commands
^XG

^XG – Recall Graphic
The ^XG command is used to recall one or more graphic images for printing. This command is used
in a label format to merge graphics, such as company logos and piece parts, with text data to form a
complete label.
An image can be recalled and resized as many times as needed in each format. Other images and
data might be added to the format.
Format:

^XGd:o.x,mx,my

Parameters

Details

d = source device of
stored image

Values: R:, E:, B:, and A:
Default: search priority (R:, E:, B:, and A:)
Values: 1 to 8 alphanumeric characters

o = name of stored
image

Default: if a name is not specified, UNKNOWN is used

x = extension l

Fixed Value:

mx = magnification
factor on the xaxis

Values: 1 to 10

my = magnification
factor on the yaxis

Values: 1 to 10

.GRF

Default: 1

Default: 1

Example: This is an example of using the ^XG command to recall the image SAMPLE.GRF from
DRAM and print it in five different sizes in five different locations on the same label:

^XA
^FO100,100^XGR:SAMPLE.GRF,1,1^FS
^FO100,200^XGR:SAMPLE.GRF,2,2^FS
^FO100,300^XGR:SAMPLE.GRF,3,3^FS
^FO100,400^XGR:SAMPLE.GRF,4,4^FS
^FO100,500^XGR:SAMPLE.GRF,5,5^FS
^XZ

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^XS

^XS – Set Dynamic Media Calibration
The ^XS command controls whether dynamic media calibration is performed to compensate for
variations in label length, position, transmissivity, and/or reflectance after a printer is powered-up or
the printer has been opened (for example to change or check the media).

Supported Devices
• G-Series
Format:

^XSlength,threshold

Parameters

Details

length = dynamic

Values:

length calibration

Y = enable
N = disable
Default: Y

threshold =
dynamic threshold
calibration

Values:

Y = enable
N = disable
Default: Y

gain = dynamic gain
calibration
(to be in a future
implementation)

1/31/18

Values:

Y = enable
N = disable
Default: Y

Programming Guide

P1099958-001

343

344

ZPL Commands
^XZ

^XZ – End Format
The ^XZ command is the ending (closing) bracket. It indicates the end of a label format. When this
command is received, a label prints. This command can also be issued as a single ASCII control
character ETX (Control-C, hexadecimal 03).
Format:

^XZ

Comments Label formats must start with the ^XA command and end with the ^XZ
command to be in valid ZPL II format.

P1099958-001

Programming Guide

1/31/18

ZPL Commands
^ZZ

^ZZ – Printer Sleep
The ^ZZ command places the printer in an idle or shutdown mode.
Format:

^ZZt,b

Parameters

Details

t = number of second
(idle time)
prior to
shutdown

Values: 0 to 999999 – setting 0 disables automatic shutdown

b = label status at
shutdown

Values:

Default: last permanently saved value or 0

Y = indicates to shutdown when labels are still queued
N = indicates all labels must be printed before shutting down
Default: N

Comments The ^ZZ command is only valid on the PA400 and PT400 battery-powered
printers.

1/31/18

Programming Guide

P1099958-001

345

346

ZPL Commands
^ZZ

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands

This section contains the ZPL II commands for RFID-specific applications.

For additional information, refer to the RFID Programming Guide for your printer. A copy is available
on the User CD provided with your printer and online at http://www.zebra.com/manuals.

1/31/18

Programming Guide

P1099958-001

348

ZPL RFID Commands
RFID Command Overview

RFID Command Overview
In addition to reading or encoding RFID tags, the RFID ZPL commands also provide for RFID
exception handling, such as setting the number of read/write retries before declaring a transponder
defective (set with ^RR, ^RT, and ^WT) or setting the number of labels that will be attempted if an
error occurs (set with ^RS).
For example, if an RFID label fails to program correctly or if the transponder cannot be detected, the
printer ejects the label and prints VOID across it. The printer will try to print another label with the
same data and format for the number of RFID labels specified by the ^RS command. If the problem
persists, the printer follows the error handling instructions specified by the ^RS command: the printer
may remove the problematic format from the print queue and proceed with the next format (if one
exists in the buffer), or it may place the printer in Pause or Error mode.
If a parameter is designated as not applicable for a particular printer, any value entered for the
parameter will be ignored, but the place holder for the field is required.

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands
Printer and Firmware Compatibility

Printer and Firmware Compatibility
Before using a particular command, verify that it is compatible with your printer and firmware
version. See the following tables:
• Table 19, ZD500R Series Printer Command and Firmware Compatibility on page 349
• Table 20, RXi Series Printer Command and Firmware Compatibility on page 350
• Table 21, RZ Series and R110PAX4 Printer Command and Firmware Compatibility on page 351
• Table 22, R4Mplus, RP4T, and R2844-Z Printer Command and Firmware Compatibility
on page 352

ZD500R

Table 19 • ZD500R Series Printer Command and Firmware Compatibility

Command

Function

all

Firmware

^HL or ~HL
on page 353

Return RFID Data Log to Host

*

^HR on page 354

Calibrate RFID Tag Position

*

^HV on page 212

Host Verification

*

^RA on page 361

Read AFI or DSFID Byte

—

^RB on page 362

Define EPC Data Structure

*

^RE on page 364

Enable/Disable E.A.S. Bit

—

^RF on page 365

Read or Write RFID Format

*

^RI on page 369

Get RFID Tag ID

—

^RL on page 370

Lock/Unlock RFID Tag Memory

*

^RM on page 372

Enable RFID Motion

—

^RN on page 373

Detect Multiple RFID Tags in Encoding Field

—

~RO on page 305

Reset Advanced Counters

*

^RQ on page 374

Quick Write EPC Data and Passwords

—

^RR on page 376

Specify RFID Retries for a Block or Enable Adaptive Antenna Selection

—

^RS on page 378

Set Up RFID Parameters

*

^RT on page 383

Read RFID Tag

—

^RU on page 385

Read Unique RFID Chip Serialization

*

~RV on page 387

Report RFID Encoding Results

—

^RW on page 388

Set RF Power Levels for Read and Write

*

^RZ on page 392

Set RFID Tag Password and Lock Tag

—

^WF on page 395

Encode AFI or DSFID Byte

—

^WT on page 396

Write (Encode) Tag

—

^WV on page 398

Verify RFID Encoding Operation

—

*
—
a.
b.

1/31/18

= Supported
= Not supported
Use the ^RF, ^RM, and ^RR commands rather than the ^RT command.
Use the ^RF, ^RM, ^RR, and ^WV commands rather than the ^WT command.

Programming Guide

P1099958-001

349

ZPL RFID Commands
Printer and Firmware Compatibility

Function

R110Xi
and R170Xi

Command

R110Xi HF

R110Xi4

Table 20 • RXi Series Printer Command and Firmware Compatibility

all

all

Firmware
all

350

^HL or ~HL
on page 353

Return RFID Data Log to Host

*

*

*

^HR on page 354

Calibrate RFID Tag Position

*

*

*

^RA on page 361

Read AFI or DSFID Byte

—

*

—

^RB on page 362

Define EPC Data Structure

*

*

*

^RE on page 364

Enable/Disable E.A.S. Bit

—

*

—

^RF on page 365

Read or Write RFID Format

*

*

*

^RI on page 369

Get RFID Tag ID

*

*

*
(R60.13.0.13ZD
or later)

^RL on page 370

Lock/Unlock RFID Tag Memory

—

—

—

^RM on page 372

Enable RFID Motion

*

*

*

^RN on page 373

Detect Multiple RFID Tags in Encoding Field

*

*

*
(R60.13.0.3
or later)

~RO on page 305

Reset Advanced Counters

*

*

*

^RQ on page 374

Quick Write EPC Data and Passwords

*

—

*
(R60.15.7Z
or later)

^RR on page 376

Specify RFID Retries for a Block or Enable Adaptive
Antenna Selection

*

*

*

^RS on page 378

Set Up RFID Parameters

*

*

*

^RT on page 383

Read RFID Tag

—

*a

*a

^RU on page 385

Read Unique RFID Chip Serialization

—

—

—

~RV on page 387

Report RFID Encoding Results

*

—

*

^RW on page 388

Set RF Power Levels for Read and Write

*

*

*

^RZ on page 392

Set RFID Tag Password and Lock Tag

*

—

*

^WF on page 395

Encode AFI or DSFID Byte

—

*

—

^WT on page 396

Write (Encode) Tag

—

*b

*b

^WV on page 398

Verify RFID Encoding Operation

—

—

*

*
—
a.
b.

= Supported
= Not supported
Use the ^RF, ^RM, and ^RR commands rather than the ^RT command.
Use the ^RF, ^RM, ^RR, and ^WV commands rather than the ^WT command.

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands
Printer and Firmware Compatibility

Command

Function

R110PAX4

RZ400 and RZ600

Table 21 • RZ Series and R110PAX4 Printer Command and Firmware Compatibility

V53.17.7Z
or later

R53.16.X

R62.X.X

R63.X.X

Firmware

^HL or ~HL
on page 353

Return RFID Data Log to Host

*

*

*

*

^HR on page 354

Calibrate RFID Tag Position

*

*

*

*

^RA on page 361

Read AFI or DSFID Byte

—

—

—

—

^RB on page 362

Define EPC Data Structure

*

*

*

*

^RE on page 364

Enable/Disable E.A.S. Bit

—

—

—

—

^RF on page 365

Read or Write RFID Format

*

*

*

*

^RI on page 369

Get RFID Tag ID

*

*

*
(R62.13.0.13ZC
or later)

*
(R63.13.0.11Z
or later)

^RL on page 370

Lock/Unlock RFID Tag Memory

—

—

—

—

^RM on page 372

Enable RFID Motion

*

*

*

*

^RN on page 373

Detect Multiple RFID Tags in Encoding Field

*

*

*

—

~RO on page 305

Reset Advanced Counters

*

*

*

*

^RQ on page 374

Quick Write EPC Data and Passwords

*

*

*
(R62.15.7Z
or later)

—

^RR on page 376

Specify RFID Retries for a Block or Enable Adaptive
Antenna Selection

*

*

*

*

^RS on page 378

Set Up RFID Parameters

*

*

*

*

^RT on page 383

Read RFID Tag

*a

*a

*a

*a

^RU on page 385

Read Unique RFID Chip Serialization

—

—

—

—

~RV on page 387

Report RFID Encoding Results

*

*

*

*

^RW on page 388

Set RF Power Levels for Read and Write

*

*

*

*

^RZ on page 392

Set RFID Tag Password and Lock Tag

*

*

*

*

^WF on page 395

Encode AFI or DSFID Byte

—

—

—

—

^WT on page 396

Write (Encode) Tag

*b

*b

*b

*b

^WV on page 398

Verify RFID Encoding Operation

*

*

*

*

*
—
a.
b.
c.

= Supported
= Not supported
Use the ^RF, ^RM, and ^RR commands rather than the ^RT command.
Use the ^RF, ^RM, ^RR, and ^WV commands rather than the ^WT command.
For parameter e, the only accepted value is N for No Action.

1/31/18

Programming Guide

P1099958-001

351

ZPL RFID Commands
Printer and Firmware Compatibility

R2844-Z

SP1056X

SP1082X

all

all

Firmware
SP1027X

Function
SP999X

Command

RP4T

R4Mplus

Table 22 • R4Mplus, RP4T, and R2844-Z Printer Command and Firmware Compatibility

SP994X

352

^HL or ~HL
on page 353

Return RFID Data Log to Host

*

*

*

*

*

*

—

^HR on page 354

Calibrate RFID Tag Position

*

*

*

*

*

*

—

^RA on page 361

Read AFI or DSFID Byte

—

—

—

—

—

—

—

^RB on page 362

Define EPC Data Structure

*

*

*

*

*

*

—

^RE on page 364

Enable/Disable E.A.S. Bit

—

—

—

—

—

—

*

^RF on page 365

Read or Write RFID Format

*

*

*

*

*

*

—

^RI on page 369

Get RFID Tag ID

*

*

*

*

*

*

*

^RL on page 370

Lock/Unlock RFID Tag Memory

^RM on page 372

Enable RFID Motion

*

*

*

*

*

*

—

^RN on page 373

Detect Multiple RFID Tags in Encoding Field

—

—

—

—

—

*

—

~RO on page 305

Reset Advanced Counters

*

*

*

*

*

*

—

^RQ on page 374

Quick Write EPC Data and Passwords

—

—

—

—

—

*

—

^RR on page 376

Specify RFID Retries for a Block or Enable Adaptive
Antenna Selection

*

*

*

*

*

*

—

^RS on page 378

Set Up RFID Parameters

*

*

*

*

*

*c

*

^RT on page 383

Read RFID Tag

*a

*a

*a

*a

*a

*a

*

^RU on page 385

Read Unique RFID Chip Serialization

—

—

—

—

—

—

—

~RV on page 387

Report RFID Encoding Results

*
(SP994J
or later)

*
(SP999C or
later)

*

*

*

*

—

^RW on page 388

Set RF Power Levels for Read and Write

*

*

*

*

*

*

—

^RZ on page 392

Set RFID Tag Password and Lock Tag

*

*

*

*

*

*

—

^WF on page 395

Encode AFI or DSFID Byte

—

—

—

—

—

—

—

^WT on page 396

Write (Encode) Tag

*b

*b

*b

*b

*b

*b

*

^WV on page 398

Verify RFID Encoding Operation

*

*

*

*

*

*

—

*
—
a.
b.
c.

= Supported
= Not supported
Use the ^RF, ^RM, and ^RR commands rather than the ^RT command.
Use the ^RF, ^RM, ^RR, and ^WV commands rather than the ^WT command.
For parameter e, the only accepted value is N for No Action.

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands
^HL or ~HL

^HL or ~HL – Return RFID Data Log to Host
The printer continually logs RFID data and stores it in the printer’s RAM. This command requests
that the RFID data log be returned to the host computer, to clear the current data log, and to restart
data recording. The ~HL command is processed immediately, while the ^HL command is processed
after all of the previous formats (^XA ... ^XZ) have been processed.
Format: ^HL or ~HL
In the log, RFID data displays in this format:

[RFID operation],[program position],[antenna element],
[read or write power],[RFID status],[data]
where

[RFID operation]
R = read
W = write
L = lock
S = RFID settings
E = log file reset
[program position],[antenna element],[read or write power]*

Additional information about the program position, the antenna, and the read or
write power follows the RFID operation.
Such as:
R,F1,D3,27,00000000,DATA

where F1 = the program position, D3 = the antenna, and 27 is the write power.
* With some older versions of firmware, these parameters do not display.
[RFID status]
#### or ######## = an RFID error code (See the RFID Programming Guide for your

printer for more information on error codes. A copy of the manual is located on the
User CD that came with your printer, or you can download a copy from
http://www.zebra.com/manuals.)
RPWR = read power
WPWR = write power
ANT = antenna
PPOS = program position
FFFFFFFF (or limited to length FFFF for some printers) = indicates that the log file
was reset
[data]

the data read or written

Comments
• Data is shown in the format specified by the ^RFW command (ASCII, Hex, or EPC).
• If the log exceeds 64K (approximately 1500 operations), the data log is cleared automatically,
and data recording restarts. When this happens, the following appears in the log:

E,FFFFFFFF,Logfile automatically reset
• If the printer loses power, the log is lost. If the log results are important to you, retrieve the
information frequently.

1/31/18

Programming Guide

P1099958-001

353

354

ZPL RFID Commands
^HR

^HR – Calibrate RFID Tag Position
Use this command to initiate tag calibration for RFID media. During the tag calibration process
(which can take up to 5 minutes on some printers, depending on the type of RFID inlay and the label
size) the printer moves the media, reads the tag’s TID to determine chip type, calibrates the RFID
tag position, and determines the optimal settings for the RFID media being used. Depending on the
printer, these settings include the programming position, the antenna element to use, and the
read/write power level to use.

Important • Consider the following before using this command:
•
•

•

This command is not supported by all printers or firmware. See Printer and Firmware
Compatibility on page 349 for the list of printers and firmware with which you can use this
command.
For the R110Xi4 and ZD500R printers, leave all transponders before and after the tag that is
being calibrated. This allows the printer to determine RFID settings which do not encode the
adjacent tag. Allow a portion of media to extend out the front of the printer to allow for backfeed
during the tag calibration procedure.
With some printers, you should not perform transponder calibration for RFID media that meets
the transponder placement specifications for your printer because doing so will slow the
printer’s throughput unnecessarily. For more information about tag calibration, refer to the RFID
Programming Guide for your printer. A copy of the manual is located on the User CD that came
with your printer, or you can download a copy from http://www.zebra.com/manuals.

Results of the ^HR tag calibration are returned to the host computer. The "run" option in the
rfid.tag.calibrate SGD command performs the same calibration but does not create a
results table.
To restore the printer’s default programming position at any time, use the "restore" option in the
rfid.tag.calibrate SGD command (see rfid.tag.calibrate on page 887).
Format:

^HRa,b,c,d,e

Parameters

Details

a = start string

This parameter specifies the user text to appear before the results table.
Values: any string less than 65 characters
Default: start

b = end string

This parameter specifies the user text to appear after the results table.
Values: any string less than 65 characters
Default: end

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands
^HR

Parameters

Details

c = start position

This parameter specifies the start position of the calibration range. All numeric
values are in millimeters. Forward or backward designations assume that the label's
initial position is with the leading edge at the print line.
Values:

Forward: F0 to Fxxx (where xxx is the label length in millimeters or 999,
whichever is less)
The printer feeds the label forward for the specified distance and
then begins transponder calibration.
Backward: B0 to B30 (Not valid on the RP4T printer.)
The printer backfeeds the label for the specified distance and then
begins transponder calibration. Allow at least 1.25 in. (32 mm) of
empty media liner to extend out of the front of the printer.
Default:

For the R110Xi4 and ZD500R: B20 —The printer backfeeds 20 mm before
starting transponder calibration.
For the ZT400 with RFID option: B30 —The printer backfeeds 30 mm
before starting transponder calibration.
For all other supported printers: F0—The printer moves the media to the
start position relative to the leading edge of the label and then
performs the RFID tag calibration.
d = end position

This parameter specifies the end position of the calibration range (last program
position to check). All numeric values are in millimeters. Forward or backward
designations assume that the label's initial position is with the leading edge at the
print line.
Values:

Forward: F0 to Fxxx (where xxx is the label length in millimeters or 999,
whichever is less)
The printer performs transponder calibration until it reaches the
specified end position and then ends the process.
Backward: B0 to B30 (Not valid on the RP4T printer.)
The printer performs transponder calibration until it reaches the
specified end position and then ends the process. Valid only with a
backward start position that is greater than the end position.
A = Automatic (Valid only on the R110Xi4 and ZD500R printers.)
The printer automatically ends the transponder calibration process
after successfully reading and encoding a consecutive range of
5 mm on the label. The ZD500R also ensures that no other tags can
be programmed at the programming positiion with the calibrationdetermined power levels.
Default:
For the R110Xi4 and ZD500R: A

For all other supported printers: Label length as shown on the printer
configuration label

1/31/18

Programming Guide

P1099958-001

355

356

ZPL RFID Commands
^HR

Parameters

Details

e = antenna and
read/write power
level detection

Note •
• This parameter is valid only on the R110Xi4, ZD500R, and ZT400 printers.
• The ZD500R printer has only one antenna, so this parameter applies only
to the read/write power level settings.
This parameter specifies whether to select the antenna and read/write
power levels automatically or manually.
Values:

A = Automatic. The printer automatically scans through the antennas

and read/write power during calibration.
M = Manual. The printer uses the current antenna and read/write power

level settings.
Default: A

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands
^HR

Example 1: When the printer is using Absolute mode and the following command is sent to
the printer:
^XA^HR^XZ
the printer starts the transponder calibration and returns a results table such as the following:
start
position=195
215, ,
214, ,
213, ,
212, ,
211, ,
210, ,W
209,R,
208, ,
207, ,
206, ,W
205,R,
204, ,
203, ,
202, ,W
201,R,W
200,R,W
199,R,W
198,R,W
197,R,W
196,R,W
195,R,W <---****
194,R,W
193,R,W
192,R,W
191,R,W
190,R,W
189,R,
188, ,
187, ,
186, ,
185, ,
.
.
.
end

Each line in the results table appears as:
Row, Read Result, Write Result

where
Row = the dot row where calibration occurred
Read Result = results of calibration (R = read, “ ” = unable to read)
Write Result = results of calibration (W = write, “ ” = unable to write)

The optimal programming position is 195. This is identified at the top of the table (position=195)
and with an the arrow (<---****) in the table.

1/31/18

Programming Guide

P1099958-001

357

358

ZPL RFID Commands
^HR

Example 2: When the printer is using Relative mode and the following command is sent to
the printer:
^HRstart,end,B20,F42,M

the printer starts the tag calibration and returns a results table such as the following:
start
position=F0 MM
leading edge
B20, ,
B19, ,
B18, ,
B17, ,
…
B8, ,
B7, ,
B6, ,
B5, ,
B4,R,W
B3,R,W
B2,R,W
B1,R,W
F0,R,W<---**** F0 MM
F1,R,W
F2,R,W
F3,R,W
F4, ,
F5, ,
F6, ,
F7, ,
F8, ,
F9, ,
F10, ,
…
F38, ,
F39, ,
F40, ,
F41, ,
F42, ,
trailing edge
end

Each line in the results table appears as:
Row, Read Result, Write Result

where
Row = the position from the leading edge of the label where calibration occurred
Read Result = results of calibration (R = read, “ ” = unable to read)
Write Result = results of calibration (W = write, “ ” = unable to write)

The optimal programming position is F0 (program with the leading edge of the label at the print line).
This is identified at the top of the table (position=F0 MM) and with an the arrow (<---****) in
the table.

Example 3: When the ^HR command is sent to the printer, the printer performs tag
calibration and returns a results table such as the following:

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands
^HR

start
position=B14 MM,A1,18,25
tid information=E200.3414:Alien
leading edge
Tag 1 ,Tag 2 ,Tag 3 ,Tag 4 ,Tag 5
EPC,7109
,BA29
,6FD0
,58AE
,9CDE
B30,A1,12,18,A1,29, ,A1, , ,A1, , ,A1, ,
B29,A1,13,18,A1,25, ,A1, , ,A1, , ,A1, ,
B28,A1,15,20,A1,23,29,A1, , ,A1, , ,A1, ,
B27,A1,17,22,A1,23,29,A1, , ,A1, , ,A1, ,
B26,A1,19,25,A1, , ,A1, , ,A1, , ,A1, ,
B25,A1,22,28,A1,22,27,A1, , ,A1, , ,A1, ,
B24,A1,26, ,A1,13,19,A1, , ,A1, , ,A1, ,
B23,A1, , ,A1,08,14,A1, , ,A1, , ,A1, ,
B22,A1, , ,A1,05,11,A1, , ,A1, , ,A1, ,
B21,A1, , ,A1,05,11,A1, , ,A1, , ,A1, ,
B20,A1, , ,A1,06,12,A1, , ,A1, , ,A1, ,
B19,A1, , ,A1,08,15,A1, , ,A1, , ,A1, ,
B18,A1, , ,A1,15,22,A1, , ,A1, , ,A1, ,
B17,A1, , ,A1,22,28,A1, , ,A1, , ,A1, ,
B16,A1, , ,A1,16,23,A1, , ,A1, , ,A1, ,
B15,A1, , ,A1,13,19,A1, , ,A1, , ,A1, ,
B14,A1, , ,A1,12,19,A1, , ,A1, , ,A1, ,
--****A1
B13,A1, , ,A1,14,20,A1,24,30,A1, , ,A1, ,
B12,A1, , ,A1,15,22,A1,22,29,A1, , ,A1, ,
B11,A1, , ,A1,18,25,A1,26, ,A1, , ,A1, ,
B10,A1, , ,A1,21,27,A1,26, ,A1, , ,A1, ,
B09,A1, , ,A1,24, ,A1,15,21,A1, , ,A1, ,
B08,A1, , ,A1,28, ,A1,09,15,A1, , ,A1, ,
B07,A1, , ,A1, , ,A1,06,11,A1, , ,A1, ,
B06,A1, , ,A1, , ,A1,05,11,A1, , ,A1, ,
B05,A1, , ,A1, , ,A1,05,11,A1, , ,A1, ,
B04,A1, , ,A1, , ,A1,08,14,A1, , ,A1, ,
B03,A1, , ,A1, , ,A1,12,18,A1, , ,A1, ,
B02,A1, , ,A1, , ,A1,20,26,A1, , ,A1, ,
B01,A1, , ,A1, , ,A1,18,24,A1, , ,A1, ,
F00,A1, , ,A1, , ,A1,14,21,A1, , ,A1, ,
F01,A1, , ,A1, , ,A1,13,19,A1, , ,A1, ,
F02,A1, , ,A1, , ,A1,13,19,A1,27, ,A1, ,
F03,A1, , ,A1, , ,A1,14,21,A1,26,29,A1, ,
F04,A1, , ,A1, , ,A1,17,24,A1,27, ,A1, ,
F05,A1, , ,A1, , ,A1,19,26,A1, , ,A1, ,
F06,A1, , ,A1, , ,A1,22,29,A1,23,26,A1, ,
F07,A1, , ,A1, , ,A1,26, ,A1,15,19,A1, ,
F08,A1, , ,A1, , ,A1, , ,A1,10,14,A1, ,
F09,A1, , ,A1, , ,A1, , ,A1,08,12,A1, ,
F10,A1, , ,A1, , ,A1, , ,A1,08,11,A1, ,
trailing edge
end

,Tag 1
,7109
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,

,Tag 2 ,Tag 3 ,Tag 4
,BA29
,6FD0
,58AE
,B1,17,24,B1, , ,B1, ,
,B1,14,19,B1, , ,B1, ,
,B1,09,15,B1, , ,B1, ,
,B1,08,14,B1, , ,B1, ,
,B1,09,15,B1,28, ,B1, ,
,B1,11,18,B1,26, ,B1, ,
,B1,15,21,B1,27, ,B1, ,
,B1,18,24,B1, , ,B1, ,
,B1,21,28,B1,19,24,B1, ,
,B1,25, ,B1,11,17,B1, ,
,B1,30, ,B1,07,13,B1, ,
,B1, , ,B1,05,11,B1, ,
,B1, , ,B1,05,10,B1, ,
,B1, , ,B1,05,11,B1, ,
,B1, , ,B1,07,13,B1, ,
,B1, , ,B1,13,20,B1, ,
,B1, , ,B1,18,23,B1, ,

,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,

,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,
,B1,

,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,

,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,

,Tag 5
,9CDE
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,
,B1, ,

,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,<-

,B1,10,16,B1, , ,B1, , ,
,B1,08,14,B1, , ,B1, , ,
,B1,08,14,B1, , ,B1, , ,
,B1,11,17,B1,26, ,B1, , ,
,B1,14,20,B1,25, ,B1, , ,
,B1,17,23,B1, , ,B1, , ,
,B1,20,26,B1,27,30,B1, , ,
,B1,24,30,B1,16,19,B1, , ,
,B1,28, ,B1,10,14,B1, , ,
,B1, , ,B1,07,11,B1, , ,
,B1, , ,B1,06,11,B1, , ,
,B1, , ,B1,06,10,B1, , ,
,B1, , ,B1,09,13,B1, , ,
,B1, , ,B1,12,17,B1, , ,
,B1, , ,B1,20,25,B1, , ,
,B1, , ,B1,16,20,B1, , ,
,B1, , ,B1,11,16,B1, , ,
,B1, , ,B1,11,15,B1, , ,
,B1, , ,B1,12,16,B1,25, ,
,B1, , ,B1,15,18,B1,23,28,
,B1, , ,B1,17,22,B1,23,29,
,B1, , ,B1,20,25,B1, , ,
,B1, , ,B1,24,28,B1,21,26,
,B1, , ,B1,27, ,B1,13,18,

In the results table, the tags visible to the antenna elements are numbered, and the EPC number
that is unique to each tag is displayed.
Each line in the results table gives a row number followed by readings associated with RFID tags
that are visible at that row. Multiple values on a line indicate that multiple tags were visible. The order
of the RFID tags is arbitrary.

[Row],[Antenna Element],[Min Read Power],[Min Write Power],
[Antenna Element],[Min Read Power],[Min Write Power] ...

1/31/18

Programming Guide

P1099958-001

359

360

ZPL RFID Commands
^HR
where
• Row = the position from the leading edge of the label where calibration occurred
• Antenna Element = the antenna used (the ZD500R only has A1)
• Minimum Read Power = calibration results (0 – 30) for a tag visible from that row
• Minimum Write Power = calibration results (0 – 30) for the same tag
The read and write power values are left empty (such as A1, , ,) when no tag is found.
In the sample results table for this example, at position B25 (25 mm behind the print line), two RFID
tags are visible to the printer at antenna A1. Tag 1 (EPC 7109) can be read at power level 22 and
written to at power level 28. Tag 2 (EPC BA29) can be read at power level 22 and written to at power
level 27. At that position, Tags 2 and 3 are visible to antenna B1 while Tag 1 is not.

Tag 1 ,Tag 2 ,Tag 3
EPC,7109
,BA29
,6FD0
...
B25,A1,22,28,A1,22,27,A1, ,
B24,A1,26, ,A1,13,19,A1, ,
B23,A1, , ,A1,08,14,A1, ,
B22,A1, , ,A1,05,11,A1, ,
B21,A1, , ,A1,05,11,A1, ,
...

,Tag 4
,58AE
,A1,
,A1,
,A1,
,A1,
,A1,

,
,
,
,
,

,Tag 5
,9CDE

,Tag 1
,7109

,Tag 2
,BA29

,A1,
,A1,
,A1,
,A1,
,A1,

,B1,
,B1,
,B1,
,B1,
,B1,

,B1,11,18,B1,26, ,B1,
,B1,15,21,B1,27, ,B1,
,B1,18,24,B1, , ,B1,
,B1,21,28,B1,19,24,B1,
,B1,25, ,B1,11,17,B1,

,
,
,
,
,

,
,
,
,
,

,Tag 3
,6FD0

,Tag 4
,58AE
,
,
,
,
,

,Tag 5
,9CDE

,
,

,B1,
,B1,
,B1,
,B1,
,B1,

,
,
,
,
,

,
,
,
,
,

At position B23, only Tag 2 is visible to antenna A1. Tag 1 is no longer visible.

Tag 1 ,Tag 2 ,Tag 3
EPC,7109
,BA29
,6FD0
...
B25,A1,22,28,A1,22,27,A1, ,
B24,A1,26, ,A1,13,19,A1, ,
B23,A1, , ,A1,08,14,A1, ,
B22,A1, , ,A1,05,11,A1, ,
B21,A1, , ,A1,05,11,A1, ,
...

,Tag 4
,58AE
,A1,
,A1,
,A1,
,A1,
,A1,

,
,
,
,
,

,Tag 5
,9CDE

,Tag 1
,7109

,A1,
,A1,
,A1,
,A1,
,A1,

,B1,
,B1,
,B1,
,B1,
,B1,

,
,
,
,
,

,Tag 2
,BA29
,
,
,
,
,

,Tag 3
,6FD0

,Tag 4
,58AE

,B1,11,18,B1,26, ,B1,
,B1,15,21,B1,27, ,B1,
,B1,18,24,B1, , ,B1,
,B1,21,28,B1,19,24,B1,
,B1,25, ,B1,11,17,B1,

,Tag 5
,9CDE
,
,
,
,
,

,B1,
,B1,
,B1,
,B1,
,B1,

,
,
,
,
,
,
,

,
,
,
,
,

At position B13, Tag 3 (EPC 6FD0) becomes visible to antenna A1 and can be read with at power
level 24 and written to at power level 30.

Tag 1
EPC,7109
...
B16,A1, ,
B15,A1, ,
B14,A1, ,
--****A1
B13,A1, ,
...

,Tag 2
,BA29

,Tag 3
,6FD0

,Tag 4
,58AE

,Tag 5
,9CDE

,Tag 1
,7109

,Tag 2
,BA29

,Tag 3
,6FD0

,Tag 4
,58AE

,Tag 5
,9CDE

,
,

,A1,16,23,A1, , ,A1, , ,A1, , ,B1, , ,B1, , ,B1,07,13,B1, , ,B1, , ,
,A1,13,19,A1, , ,A1, , ,A1, , ,B1, , ,B1, , ,B1,13,20,B1, , ,B1, , ,
,A1,12,19,A1, , ,A1, , ,A1, , ,B1, , ,B1, , ,B1,18,23,B1, , ,B1, , ,<,A1,14,20,A1,24,30,A1, , ,A1, , ,B1, , ,B1, , ,B1,10,16,B1, , ,B1, , ,

The arrow (<---****) in the table indicates that a valid program position and power levels were
found during calibration. The program position is identified at the top of the table as position=B14
MM (backfeed 14 millimeters). The optimal antenna element at that position is A1. The optimal read
power is 18, and the optimal write power is 25.

start
position=B14 MM,A1,18,25
tid information=E200.3414:Alien
leading edge
...
B14,A1, , ,A1,12,19,A1, , ,A1, , ,A1, , ,B1, , ,B1, , ,B1,18,23,B1, , ,B1, , ,<--****A1
...

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands
^RA

^RA – Read AFI or DSFID Byte
Important • This command is not supported by all printers or firmware. See Printer and
Firmware Compatibility on page 349 for the list of printers and firmware with which you can
use this command.
Use this command to read the AFI or DSFID byte. The data can be returned to the host via the ^HV
command.
Format:

^RA#,f,r,m,b

Parameters

Details

# = field number
specified with
another command

The value assigned to this parameter should be the same as the one used in the
^RT command.
Values: 0 to 9999
Default: 0

f = format

Values:

0 = ASCII
1 = Hexadecimal

Default: 0

r = number of
retries

Values: 0 to 10
Default: 0

m = motion

Values:

0 = Feed label after writing.
1 = No Feed after writing. Other ZPL may cause a feed.

Default: 0

b = type of byte to
read

Values:

A = AFI byte
D = DSFID byte

Default: A

Example 1: This example reads the AFI byte in ASCII format and returns AFI Byte:x to the
host. The printer will retry the command five times if necessary. A voided label is generated if
the read is unsuccessful after these retries. The data read will go into the ^FN1 location of the
recalled format.
^XA
^FO20,120^A0N,60^FN1^FS
^RA1,0,5,0^FS
^HV1,,AFI Byte:^FS
^XZ
Example 2: This example reads the DSFID byte in ASCII format and returns DSFID Byte:x
to the host. The printer will retry the command three times if necessary. A voided label is
generated if the read is unsuccessful after these retries. The data read will go into the ^FN1
location of the recalled format.
^XA
^FO20,120^A0N,60^FN1^FS
^RA1,0,3,0,D^FS
^HV1,,DSFID Byte:^FS
^XZ
1/31/18

Programming Guide

P1099958-001

361

362

ZPL RFID Commands
^RB

^RB – Define EPC Data Structure
Important • This command is not supported by all printers or firmware. See Printer and
Firmware Compatibility on page 349 for the list of printers and firmware with which you can
use this command.
Use this command to define the structure of EPC data, which can be read from or written to an RFID
tag. For more information about EPC specifications, refer to the EPC Global web site. All parameters
in this command are persistent and will be used in subsequent formats if not provided. The values
are initially set to the default values.
RFID tags can have different partitions defined. This command specifies the number of partitions
and how many bits are in each partition.
Format:

^RBn,p0,p1,p2, ..., p15

Parameters

Details

n = total bit size
of the
partitions

Specify the number of bits to include in the partitions.
Values: 1 to n, where n is the bit size of the tag.
Default: 96

p0 ... p15 =
partition sizes

Specify the number of bits to include in the individual partitions. The partition sizes
must add up to the bit size specified for the previous parameter. The largest
individual partition size is 64 bits.
Values: 1 to 64
Default: 1

Example 1: The following command specifies that there are 96 bits used with three fields.
Fields 1, 2, and 3 contain 10, 26, and 60 bits, respectively.
^RB96,10,26,60
The ZPL code to encode a tag with this format would look like this:

^RFW,E^FD1000.67108000.1122921504606846976^FS
When the tag is being encoded, the tag stores the data in the following way:
• Field 1 contains 1000. This value is stored in the first 10 bits
• Field 2 contains 67108000. This value is stored in the next 26 bits.
• Field 3 contains 1122921504606846976. This value is stored in the remaining 60 bits.

Example 2: The following command specifies that there are 64 bits used with eight 8-bit
fields.
^RB64,8,8,8,8,8,8,8,8^FS
The ZPL code to encode a tag with this format would look like this:

^RFW,E^FD1.123.160.200.249.6.1.0^FS
When writing to the tag, each set of data is written in its respective 8-bit field.

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands
^RB

Example 3: This example uses the SGTIN-96 standard, which defines 96-bit structure in the
following way:

SGTIN-96

Header

Filter Value

Partition

Company
Prefix Index

Item
Reference

Serial
Number

8 bits

3 bits

3 bits

20–40 bits

24 bits

38 bits

10
(binary value)

8
(decimal
capacity)

8
(decimal
capacity)

16,383
(decimal
capacity)

9 to 1,048,575
(decimal
capacity*)

33,554,431
(decimal
capacity)

* Capacity of Item Reference field varies with the length of the company prefix.
The ZPL code to encode a tag with this format would look like this:

^XA
^RB96,8,3,3,20,24,38^FS
^RFW,E^FD48,1,6,770289,10001025,1^FS
^XZ
These commands would put
• 48 in the header
• 1 as the filter value
• 6 as the partition (indicates a 20-bit prefix and 24-bit item reference)
• 770289 as the company prefix
• 10001025 as the item reference
• 1 as the serial number
To read this EPC data and print the results on the label, you would use the following code:

^XA
^RB96,8,3,3,20,24,38^FS
^FO50,50^A0N,40^FN0^FS
^FN0^RFR,E^FS
^XZ
The resulting label would look like this:
48.1.6.770289.10001025.1

1/31/18

Programming Guide

P1099958-001

363

364

ZPL RFID Commands
^RE

^RE – Enable/Disable E.A.S. Bit
Important • This command is not supported by all printers or firmware. See Printer and
Firmware Compatibility on page 349 for the list of printers and firmware with which you can
use this command.
Use this command to enable or disable the Electronic Article Surveillance (E.A.S.) bit that is
available in some ISO15693 tags (such as Philips). This command works only on those ISO15693
transponders and will be ignored if the tag does not support E.A.S.
Format:

^REt,r

Parameters

Details

t = Enable/disable
the E.A.S. bit
in the ISO15693
transponder

Values:

r = number of
retries

Values: 0 to 10
Default: 0

N = Disable E.A.S.
Y = Enable E.A.S.

Default: N

Example: This example enables the E.A.S. bit in the transponder. It will retry the command five
times if necessary.

^XA
^REy,5
^XZ

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands
^RF

^RF – Read or Write RFID Format
Use this command to read or write to (encode) an RFID tag or to specify the access password.
When using this command to read a tag, you may use a field variable to print the tag data on the
label or to return the data to the host. For more information on how memory is stored on a Gen 2 tag
or for examples that use a field variable, refer to the RFID Programming Guide for your printer. A
copy of the manual is located on the User CD that came with your printer, or you can download a
copy from http://www.zebra.com/manuals.
Format:

^RFo,f,b,n,m

Parameters

Details

o = operation

Specifies the action to be performed.
Values:

W = write to (encode) the tag
L = write with LOCK (if supported by tag type; Gen 2 tag type does not

use this locking function)
R = read the tag
P = read password (Gen 2 tag type only. Not supported on all Gen 2
printers, including the ZD500R printer.)
S = specify the access password
Default: W

f = format

Values:

A = ASCII
H = Hexadecimal
E = EPC (ensure proper setup with the ^RB command)
Default: H

1/31/18

Programming Guide

P1099958-001

365

366

ZPL RFID Commands
^RF

Parameters

Details

For Gen 2 tag type only:

For Gen 2 tag type only:

b = password
OR
b = starting block
number

What you specify for this parameter depends on what you enter for other
parameters.

For tag types other than
Gen 2:
b = starting block
number

If the
Operation
parameter
value is...

Then...

W

Note • When the memory bank parameter is set to
E (EPC 96-bit) or A (EPC and Auto adjust PC bits), this
value is always set to 2.
•

•

Values:

P, which indicates that an access password, a kill password,
or both follow in a ^FD command. Each password must be 8
hex characters. If the password is omitted, it is not written.
An access password is used in subsequent lock commands
in the format.
0 to n, which specifies the 16-bit starting block number,
where n is the maximum number of blocks for the bank
specified in the memory bank parameter.

Default: 0

R

Note • When the memory bank parameter is set to
E (EPC 96-bit) or A (EPC and Auto adjust PC bits), this
value is always set to 2.
•

Values:

0 to n, which specifies the 16-bit starting block number,
where n is the maximum number of blocks for the bank
specified in the memory bank parameter.

Default: 0

S

This parameter must be P and must be followed by the access
password in a ^FD command.

For tag types other than Gen 2:
Specifies the starting block number.
Values: 0 to n, where n is the maximum number of blocks for the tag.
Default: 0

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands
^RF

Parameters

Details

n = number of bytes
to read or write

Specifies the number of bytes to read or write.

For high-frequency (HF) printers:
Values: 1 to n, where n is the maximum number of bytes for the tag.
Default: 1

For Gen 2 tag type only:
When E or A is specified for the memory bank parameter, this value is not required.
Values: 1 to n, where n is the maximum number of bytes for the tag.
Default: 1

For all other printers and tag types:
This parameter applies only when the starting block number is 1.
Values: 1 to n, where n is the maximum number of bytes for the tag. For UCODE
EPC 1.19, n is 32.
Default: 1

m = Gen 2 memory
bank

Note • This parameter applies to Gen 2 tags only.
Specifies the Gen 2 memory bank. For more information about Gen 2 memory, refer
to the RFID Programming Guide for your printer.
Values:

E = EPC 96-bit (When writing data, this parameter performs the

A

0
1
2
3

operation on Gen 2 bit address 20h and accesses 12 bytes of the EPC
memory bank. When reading data, this parameter reads the
amount of data specified in the PC bits on the tag.)
= EPC and Auto adjust PC bits (When writing data, this parameter
performs the operation on Gen 2 bit address 20h of the EPC memory
bank and accesses the number of bytes specified in the ^FD. The PC
bits will be updated to match the amount of data written to the tag.
When reading data, this parameter reads the amount of data
specified in the PC bits on the tag.)
NOTE: This value is supported only by the ZD500R™ printer and
ZT400™ Series RFID printers.
= Reserved
= EPC
= TID (Tag ID)
= User

Default: E

Example 1: This example encodes 96-bit data in ASCII format. (The ^RS command can be
ommited for printers that use Gen 2 tag types only.)
^XA
^RS8
^RFW,A^FD00 my data^FS
^XZ

1/31/18

Programming Guide

P1099958-001

367

368

ZPL RFID Commands
^RF

Example 2: This example encodes 96-bit EPC data, as specified by the ^RB command.
^XA
^RB96,8,3,3,20,24,38
^RFW,E^FD16,3,5,78742,146165,1234567891^FS
^XZ
Example 3: This example encodes 4 bytes of hexadecimal formatted data, starting in block 3
of Gen 2 EPC bank 1. (The ^RS command can be omitted for printers that use Gen 2 tag types
only.)
^XA
^RS8
^RFW,H,3,4,1^FD11112222^FS
^XZ
Example 4: This example reads the extended Gen 2 tag ID (TID), which is not read by the ^RI
command, and returns the results to the host computer. The results are labeled with the
header “8-byte Tag ID Data.” (The ^RS command can be omitted for printers that use Gen 2
tag types only.)
^XA
^RS8
^RFR,H,0,8,2^FN1^FS^HV1,,8-byte Tag ID Data:^FS
^XZ
Example 5: This command writes and specifies both the access password (12345678) and
the kill password (88887777) separated by a comma.
^RFW,H,P^FD12345678,88887777^FS
This command writes the access password only:

^RFW,H,P^FD12345678^FS
This command writes the kill password only (a comma must be used before it to distinguish it from
an access password):

^RFW,H,P^FD,88887777^FS
See the examples for ^RL on page 370 for how this command would be used in a format.

Example 6: This command writes 1122334455667788 to the bit address 20h of the EPC
memory and updates the PC bits bit address 10h to 14h to reflect 8 bytes (4 words) of data.
^RFW,H,,,A^FD1122334455667788^FS
Example 7: This command specifies the access password for the tag, which will be used in
subsequent lock commands in the format. The access password specified must match the one
stored on the tag. This command does not write the password to the tag. See the examples
for ^RL on page 370 for how this command would be used in a format.
^RFS,H,P^FD12345678^FS

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands
^RI

^RI – Get RFID Tag ID
Important • This command is not supported by all printers or firmware. See Printer and
Firmware Compatibility on page 349 for the list of printers and firmware with which you can
use this command.
Use this command to get the unique serial number of the tag and return it in hexadecimal format.
The data can be sent back to the host via the ^HV command.
For Gen 2 tag types, this command returns the 32-bit tag ID (TID) for the tag. If your Gen 2 tag
supports TID data beyond 32 bits, see ^RF on page 365 to access the TID memory bank.
Format: ^RIa,b,c,d

Parameters

Details

a = number to be
assigned to the
field

Values: 0 to 9999
Default: 0

b = specify data
order

Note • This parameter applies only to the R110Xi HF and R2844-Z printers.
Values:

0 = Most significant byte first for Tag*It and PicoTag. Least significant

byte first for I*code and ISO15693.
1 = Reverse the data order
Default: 0

c = number of
retries

Values: 0 to 10
Default: 0

d = motion

Values:

0 = Feed label after writing
1 = No Feed after writing (other ZPL commands may cause a feed)
Default: 0
Example: This example reads a tag ID, prints it on a label, and sends string Tag ID:xxxxxxxx to
the host. The data read will go into the ^FN0 location of the format. The printer will retry the
command five times, if necessary.

^XA
^FO20,120^A0N,60^FN0^FS
^RI0,,5^FS
^HV0,,Tag ID:^FS
^XZ

1/31/18

Programming Guide

P1099958-001

369

370

ZPL Commands
^RL

^RL – Lock/Unlock RFID Tag Memory
The ^RL command has two distinct formats and functions:
• ^RLM – Lock/Unlock the Specified Memory Bank
Locks a password or an entire memory bank in a writeable or unwriteable state. These
locks/unlocks can be permanent or reversible.
• ^RLB – Permanently Lock Specified Memory Sections
Locks blocks of user memory in an unwriteable state.

^RLM – Lock/Unlock the Specified Memory Bank
The ^RLM command locks/unlocks the specified password or memory bank on an RFID tag. You can
use this command to do the following:
• lock individual passwords, thereby preventing or allowing subsequent reads or writes of that
password
• lock individual memory banks, thereby preventing or allowing subsequent writes to those banks
• Permanently lock (permalock) the lock status for a password or memory bank
Format: ^RLM,k,a,e,u

Parameters

Details

k = kill password
function

Values:

a = access password
function

Values:

e = EPC memory bank
function

Values:

u = USER memory bank
function

Values:

U
L
O
P
U
L
O
P
U
L
O
P
U
L
O
P

=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=

unlock the kill password*
lock the kill password*
permanently unlock (Open) the kill password
permanently lock (Protected) the kill password
unlock the access password*
lock the access password*
permanently unlock (Open) the access password
permanently lock (Protected) the access password
unlock the EPC memory bank*
lock the EPC memory bank*
permanently unlock (Open) the EPC memory bank
permanently lock (Protected) the EPC memory bank
unlock the USER memory bank*
lock the USER password bank*
permanently unlock (Open) the USER memory bank
permanently lock (Protected) the USER memory bank

* The access password must be set to something other than the default of 00000000 to use this value. See Example 4
on page 371 for an example.

^RLB – Permanently Lock Specified Memory Sections
The ^RLB command permanently locks (permalocks) one or more sections (individual sub-portions)
in a tag’s user memory. The section sizes for each tag is defined by the tag manufacturer.
P1099958-001

Programming Guide

1/31/18

ZPL Commands
^RL

Format:

^RLB,s,n

Parameters

Details

s = starting section

Specify the starting section of memory to lock.

n = number of
sections

Specify the number of sections to lock.

Example 1: The following command locks all memory banks using a previously specified
access password.
^RLM,L,L,L,L^FS
Example 2: The following command locks the user memory banks using a previously
specified access password.
^RLM,,,,L^FS
Example 3: The following command permalocks sections 0 to 4 of user memory using a
previously specified access password.
^RLB,0,4^FS
Example 4: This code does the following:
•
•
•
•

writes 12 bytes to user memory
writes “12345678” to the access password and “11223344” to the kill password
permalocks 6 sections of user memory using “12345678” as the access password
locks the kill and access passwords and permanently unlocks the EPC memory, using
“12345678” as the access password

^XA
^RFW,H,0,12,3^FD112233445566778899001122^FS
^RFW,H,P^FD12345678,11223344^FS
^RLB,0,6^FS
^RLM,L,L,O^FS
^XZ
Example 5: This code does the following:
•
•
•

writes 12 bytes to user memory
permalocks 6 sections of user memory using “00000000” as the access password
permalocks the kill password and access password using “00000000” as the access password

^XA
^RFW,H,0,12,3^FD112233445566778899001122^FS
^RLB,0,6^FS
^RLM,P,P^FS
^XZ

1/31/18

Programming Guide

P1099958-001

371

372

ZPL RFID Commands
^RM

^RM – Enable RFID Motion
Important • This command is not supported by all printers or firmware. See Printer and
Firmware Compatibility on page 349 for the list of printers and firmware with which you can
use this command.
Use this command to enable or disable RFID motion. By default, labels automatically print at the end
of the format. This command allows you to inhibit the label from actually moving when it reaches the
program position, which is useful for debugging, setup, and custom applications. This parameter is
not persistent (carried over from label to label).
Format:

^RMe

Parameters

Details

e = enable

Values:

Y = Yes, move the label
N = No, do not move the label

Default: Y

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands
^RN

^RN – Detect Multiple RFID Tags in Encoding Field
Important • This command is not supported by all printers or firmware. See Printer and
Firmware Compatibility on page 349 for the list of printers and firmware with which you can
use this command.
Use this command to enable or disable detection of multiple RFID tags in the encoding field. By
default, the printer checks for more than one tag in the field before attempting to read or write. If
more than one tag is found, the label over the antenna support is voided, and the RFID ERR
STATUS parameter on the control panel displays MULTIPLE TAGS. To speed up printing and
encoding by up to 200 ms, the check may be disabled.

Note • This parameter is persistent across labels (carried over from label to label), but is NOT
persistent across power cycles.
Format: ^RNe

Parameters

Details

e =

Values:

enable

Y = Yes, check for multiple tags
N = No, do not check for multiple tags

Default:

Y = Printers with firmware R60.13.0.5 and earlier
N = Printers with firmware R60.13.0.7 and later

Note • If an invalid parameter value is entered, the default value will be
used.

1/31/18

Programming Guide

P1099958-001

373

374

ZPL RFID Commands
^RQ

^RQ – Quick Write EPC Data and Passwords
Important • This command is not supported by all RFID tags, printers, or firmware. See
Printer and Firmware Compatibility on page 349 for the list of printers and firmware with
which you can use this command.
Use this command with an Alien Higgs RFID tag and appropriate firmware to write the EPC data,
access password, and kill password with one command. Doing so reduces the encoding time.

Note • The access password on the tag to be written to must be 00000000 prior to sending this
command.
Format:

^RQf,c,o[data]

Parameters

Details

f = format

Values:

A = ASCII
H = Hexadecimal
E = EPC
Default: H
Values: 0 (Higgs IC tag)

c = chip type

Default: 0
Values: 0 (write 96-bit EPC)

o = option

Default: 0

data = the EPC data,
access password,
and kill
password

Use the ^FD command to specify the passwords in the following format:

^FD[EPC],[access],[kill]
where:

EPC = the EPC data in the format specified by the f parameter. The data

should match what would be programmed with the ^RF command.
access = an optional access password in hexadecimal format. If this field is

left blank, 0x00000000 is written as the access password.
kill = an optional kill password in hexadecimal format. If this field is left
blank, 0x00000000 is written as the kill password.
Example 1: This example writes the EPC data to the tag in hexadecimal format. The
unspecified access and kill passwords are written as zeroes (0x00000000).
^XA^RQ^FD112233445566778899001122^XZ
Example 2: This example writes the EPC data to the tag in hexadecimal format. The access
password is written as 0xAAAAAAAA, and the kill password is written as 0xBBBBBBBB.
^XA^RQ^FD112233445566778899001122,AAAAAAAA,BBBBBBBB^XZ
Example 3: This example writes the EPC data to the tag in EPC format. The unspecified access
and kill passwords are written as zeroes (0x00000000).
^XA^RB96,30,30,30,6^RQE^FD1234.5678.9012.12^XZ

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands
^RQ

Example 4: This example writes the EPC data to the tag in hexadecimal format. The access
password is written as 0xAAAAAAAA, and the unspecified kill password is written as zeroes
(0x00000000).
^XA^RB96,30,30,30,6^RQE^FD1234.5678.9012.12,AAAAAAAA^XZ

1/31/18

Programming Guide

P1099958-001

375

376

ZPL RFID Commands
^RR

^RR – Specify RFID Retries for a Block or Enable
Adaptive Antenna Selection

Important • This command is not supported by all printers or firmware. See Printer and
Firmware Compatibility on page 349 for the list of printers and firmware with which you can
use this command.
Use this command for the following:
• to change the number of times that the printer attempts to read or write to a particular block of a
single RFID tag (Not applicable to printers with firmware V75.19.7Z or later.)
• to enable the adaptive antenna element selection feature
This command is persistent and will be used in subsequent formats if not provided.

Note • This command’s function is different than the “number of labels” parameter in the ^RS
command.
Format:

Parameters

^RRn,a

Details

n = number of
retries

Note • This parameter does not apply to the ZT400 printer.
Values: 0 to 10
Default: 6

a = adaptive antenna
element
selection

Note • This parameter is valid only on R110Xi4 and ZT400 printers with a
label that is 2 in. (51 mm) or longer.
If the printer cannot find RFID tags with the antenna element specified during the
number of retries specified (if applicable), the printer may try neighboring antenna
elements. If the printer is unsuccessful communicating with the RFID tag after trying
the neighboring antenna elements, the printer voids the label.

Note • Activating this parameter may slow throughput on damaged or weak
RFID tags.
Values: 0 or 1

0 = None. The printer uses only the current antenna element selection.
1 = Neighbors. The printer attempts to read the tag using the antenna

elements to the left/right and above/below the current antenna
element. The antenna element that is successful is used for all
subsequent RFID commands until the next unsuccessful attempt.
Default: 0

Example 1: This example sets the read block retries to 5.
^XA
^FN1^RR5^RFR,H^FS
^HV1^FS
^XZ

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands
^RR

Example 2: This example sets the write block retries to 2.
^XA
^RR2^RFW,H^FD1234^FS
^XZ
Example 3: On an R110Xi4 printer, this example sets the write retries to 2 and allows the
printer to try neighboring antennas in the event that the current antenna cannot write to the
RFID tag.
^XA
^RR2,1^RFW,H^FD1234^FS
^XZ

1/31/18

Programming Guide

P1099958-001

377

378

ZPL RFID Commands
^RS

^RS – Set Up RFID Parameters
Use this command to set up RFID parameters including tag type; programming position; and error
handlingIn addition to reading or encoding RFID tags, the RFID ZPL commands also provide for
RFID exception handling, such as setting the number of read/write retries before declaring a
transponder defective (set with ^RR, ^RT, and ^WT) or setting the number of labels that will be
attempted if an error occurs (set with ^RS).
For example, if an RFID label fails to program correctly or if the transponder cannot be detected, the
printer ejects the label and prints VOID across it. The printer will try to print another label with the
same data and format for the number of labels specified (parameter n). If the problem persists, the
printer follows the error handling instructions specified by the error handling parameter (parameter
e): the printer may remove the problematic format from the print queue and proceed with the next
format (if one exists in the buffer), or it may place the printer in Pause or Error mode.
Use care when using this command in combination with ^RT or ^RF for reading tag data. Problems
can occur if the data read from the tag is going to be printed on the label. Any data read from the
tag must be positioned to be printed above the read/write position. Failure to do this will prevent
read data from being printed on the label.
Format:

^RSt,p,v,n,e,a,c,s

Parameters

Details

t = tag type

Tells the printer/print engine which tag type you are using. If you specify a tag type
that is not supported by your printer or firmware, the printer uses its default value.
For the supported tag types and defaults, see Table 23 on page 381.
Values:

UHF Printers
0
1
2
3
4
5
6
7
8
9

=
=
=
=
=
=
=
=
=
=

None
EPC Class 0
EPC Class 0 Plus
EPC Class 1 64-bit
EPC Class 1 96-bit
UCODE EPC 1.19
Impinj Class 0 Plus
ISO 18000-06A
EPC Class 1, Generation 2 (Gen 2)
ISO 18000-06B

HF Printers
Note • Only the R110Xi HF printer (firmware version R65.X.X) supports the
use of letters for this parameter. All other printers use the numbers.
A or 0 = None
B or 1 = Auto detect (query tag to determine)
C or 2 = Tag*It (Texas Instruments Tagit tags)
D or 3 = I*code (Phillips Icode tags)
E or 4 = Pico Tag (Inside Technology’s)
F or 5 = ISO 15693
G or 6 = EPC tag (13.56 MHz)
H or 7 = UID Tag
I or 8 = Mifare UltraLight
Default: varies by printer (see Table 23 on page 381)

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands
^RS

Parameters

Details

p = read/write
position of the
tag (programming
position)

This parameter sets the read/write position of the tag.

Important • If a label format specifies a value for the programming
position, this value will be used for the programming position for all
labels until a new position is specified or until the tag calibration
procedure is run.
Values:

For the ZD500R only:
F0 to Fxxx (where xxx is the label length in millimeters or 999, whichever
is less)
The printer prints the first part of a label until it reaches the
specified distance and then begins programming. After
programming, the printer prints the remainder of the label.
B0 to B30
The printer backfeeds the label for the specified distance and then
begins programming. To account for the backfeed, allow empty
media liner to extend out of the front of the printer when using a
backward programming position.
up = move to the next value
down = move to the previous value
For other RFID printers:
Absolute Mode (all firmware versions):

xxxx = 0 to label length (in dot rows). Move the media to the specified
position xxxx on the label, measured in dot rows from the label top,
before encoding. Set to 0 (no movement) if the tag is already in the

effective area without moving the media.
Relative Mode (firmware versions V53.17.6 and later):

F0 to Fxxx (where xxx is the label length in millimeters or 999, whichever

is less)
The printer prints the first part of a label until it reaches the
specified distance and then begins programming. After
programming, the printer prints the remainder of the label.
B0 to B30 (Does not apply to the RP4T printer.)
The printer backfeeds the label for the specified distance and then
begins programming. To account for the backfeed, allow empty
media liner to extend out of the front of the printer when using a
backward programming position.
Default:

For the R2844-Z and RPAX: 0 (no movement)
For printers using V53.17.6, V74.19.6Z, and later: F0
(which moves the leading edge of the label to the print line)
For all other printers or firmware: label length minus 1 mm (1/16 in.)
v = length of void
printout

Sets the length of the void printout in vertical (Y axis) dot rows.
Values: 0 to label length
Default: label length

1/31/18

Programming Guide

P1099958-001

379

380

ZPL RFID Commands
^RS

Parameters

Details

n = number of labels
to try encoding

The number of labels that will be attempted in case of read/encode failure.
Values: 1 to 10
Default: 3

e = error handling

If an error persists after the specified number of labels are tried, perform this error
handling action.
Values:

N = No action (printer drops the label format causing the error and

moves to the next queued label)
P = Place printer in Pause mode (label format stays in the queue until

the user cancels)
E = Place printer in Error mode (label format stays in the queue until the

user cancels)
Default: N

Note • You can set the printer to send an error message to the host for
each failure. To enable or disable this unsolicited error message, refer to the

^SX and ^SQ ZPL commands. Use V for the condition type for an RFID
error.

a = signals on
applicator

Note • This parameter does not apply to the R2844-Z. For the R4Mplus,
this parameter applies only to printers with firmware version SP994X
(R4Mplus European version).

Single Signal Mode
In this mode, one start print signal starts printing. Then, at the program position
(parameter p), the printer automatically stops and encodes the tag. Printing
continues, and a single end print signal signifies the completion of the label.

Double Signal Mode
With RFID, when there is a non-zero program position, the label is logically split into
two parts. The first part is printed, the tag encodes, and then the second part prints.
If this parameter is set to “D,” then the label is split into two and requires both
portions of the label to be controlled by the applicator. This means that a start print
signal triggers the first portion of the label, and then when the printer reaches the
RFID program position (and the motor stops), an end print signal is provided. In this
mode, a second start print signal is required to print the rest of the label. When the
label is complete, a final end print signal is provided.
Note • If parameter p is zero, then single signal mode is used (parameter
ignored). If p is F0 (or B0) with backfeed-after, then single signal mode is
used (parameter ignored).
Values:

S = single signal
D = double signal (For the R110PAX4, Double mode will work only if the

read/write position is changed from the default of zero.)
Default: S

c = reserved
s = void print speed

Not applicable.

Note • This parameter does not apply to the R2844-Z printer. For the
R4Mplus printer, this parameter applies only to printers with firmware
version SP994X (R4Mplus European version).
If a label is voided, the speed at which “VOID” will be printed across the
label.
Values: any valid print speed
Default: the printer’s maximum print speed

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands
^RS

Supported Tag Types Table 23 shows the tag types supported by different RFID printers/print
engines and firmware versions. Depending on your country or on the firmware version that you are
using, your printer may not support all of the tag types listed. If you specify an unsupported tag type,
the printer uses the default value. If a tag type is shown as supported but does not work with your
printer, you may need to upgrade the printer’s firmware (see http://www.zebra.com/firmware).
Table 23 • Supported Tag Types and Default Values

R62.13.X

R62.15.X and later

R63.13.X

R63.15.X and later

SP994O, SP999E, SP1027E,
SP1082E, and earlier

SP994P, SP999F, SP1027F,
SP1082F, and later

SP1056D and earlier

SP1056E and later

R53.16.X and later

R65.13.X

R65.15.X and later

all

R2844-Z

R110Xi HF

R60.15.X and later

R4Mplus

R110PAX4

R60.13.X

R110Xi
R170Xi

V53.17.7 and later

R110Xi4

V74.19.6Z and later

ZD500R

Printer

HF Printers
RZ400/ RZ600

UHF Printers

None (no tag type specified)

—

—

*

*

*

*

—

—

—

—

—

—

—

—

—

—

EPC Class 0

—

—

*

*

*

*

—

—

—

—

—

—

—

—

—

—

EPC Class 0 Plus

—

—

*

*

*

*

—

—

—

—

—

—

—

—

—

—

EPC Class 1 64-bit

—

—

*

*

*

*

—

—

—

—

—

—

—

—

—

—

EPC Class 1 96-bit

—

—

#

*

#

*

—

*

*

*

—

—

—

—

—

—

UCODE EPC 1.19

—

—

*
a

*

—

*

#

*

#

*

#

*

—

—

—

—

Impinj Class 0 Plus

—

—

*

*

*

*

—

—

—

—

—

—

—

—

—

—

ISO 18000-06A

—

—

—

—

*

—

—

*

*

*

—

—

—

—

—

—

EPC Class 1, Generation 2 (Gen 2)

#

#

*

#

*

#

—

#

*

#

*

#

#

—

—

—

ISO 18000-06B

—

—

*

*

*

*

—

*

*

*

*

*

—

—

—

—

Auto-detect the tag type by
querying the tag

—

—

—

—

—

—

—

—

—

—

—

—

—

—

—

#

Tag*It (Texas Instruments
Tagit tags)

—

—

—

—

—

—

—

—

—

—

—

—

—

—

—

*

I*code (Phillips Icode tags)

—

—

—

—

—

—

—

—

—

—

—

—

—

—

—

*

Pico Tag (Inside Technology’s)

—

—

—

—

—

—

—

—

—

—

—

—

—

—

—

*

ISO 15693

—

—

—

—

—

—

—

—

—

—

—

—

—

#

#

*

EPC tag

—

—

—

—

—

—

—

—

—

—

—

—

—

—

—

*

UID Tag

—

—

—

—

—

—

—

—

—

—

—

—

—

—

—

—

Mifare UltraLight

—

—

—

—

—

—

—

—

—

—

—

—

—

*

*

—

Firmware Version

Tag Type
UHF Tag Types and Options

HF Tag Types and Options

# = Default value

* = Accepted value

— = Not supported

a. Requires R60.13.0.13ZD or later.

1/31/18

Programming Guide

P1099958-001

381

382

ZPL RFID Commands
^RS

Example 1: The following are examples of Absolute Mode and Relative Mode for the tag
position parameter (parameter p).
Absolute Mode
1. ^RS,520 sets the encode position at 520 dots from the top edge of the label.
2. ^RS,0 programs the tag without moving the media.
Relative Mode
1. ^RS,F1 sets the encode position 1 mm forward from the leading edge of the label.
2. ^RS,B10 sets the encode position 10 mm backwards from the leading edge of the label.
3. ^RS,F0 sets the encode position at the leading edge of the label.
4. ^RS,B0 sets the encode position at the leading edge of the label.

Example 2: The following shows the difference between absolute and relative programming
positions for the tag position parameter (parameter p) with a 6-inch (152-mm, 1216-dot)
label length. The end results are that the tag is programmed with the label in the same
position.
print direction

encoding area

1

print line
tear bar
2

1
2

P1099958-001

^RS,496, Absolute Mode, 496 dots from
the top of the label
^RS,F90, Relative Mode, 90 mm from
the leading edge of the label

Programming Guide

1/31/18

ZPL RFID Commands
^RT

^RT – Read RFID Tag
Note • The ^RT command is provided only for backward-compatibility with label formats that were
developed for older Zebra RFID printers. See Printer and Firmware Compatibility on page 349 for
the list of printers and firmware with which you should not use this command.
Use this command to tell the printer to read the current RFID tag data. The data can be returned to
the host via the ^HV command.
Format:

^RT#,b,n,f,r,m,s

Parameters

Details

# = number to be
assigned to the
field

Values: 0 to 9999
Default: 0

b = starting block
number

Values: 0 to n, where n is the maximum number of blocks for the tag.
Default: 0

n = number of
blocks/bytes
to read

Values: 1 to n, where n is the maximum number of blocks for the tag type minus
the starting block number. For example, if the tag has 8 blocks (starting with block 0)
and you start with block 6, n can be 2. This would return block 6 and block 7
information.
Default: 1

f = format

Values:

r = number of
retries

Changes the number of times that the printer attempts to read a particular block of a
single RFID tag. (Same retry rules as the ^RR command.)
Values: 0 to 10
Default: 0

m = motion

Enables or disables RFID motion for the current field.
Values:
0 = Feed label after writing.
1 = No feed after writing. Other ZPL may cause a feed.

0 = ASCII
1 = Hexadecimal

Default: 0

Default: 0

s = special mode

Note • This parameter is used only for the printers referenced here.
For R4Mplus printers with firmware version SP920X (U.S. version):
Specify actions for mismatched checksums. For EPC Class 1 (Alien reader) only.
Not applicable for EPC class 0.
Default: 0
Values:
0 = Do not read if mismatched checksum
1 = Read even if mismatched checksum

For R110Xi HF and R2844-Z printers:
Specify data order.
Default: 0
Values:
0 = least significant byte first
1 = most significant byte first

1/31/18

Programming Guide

P1099958-001

383

384

ZPL RFID Commands
^RT

Example 1: This example reads a tag, prints the data on a label, and sends the string
Tag Data:xxxxxxxx back to the host. The data read will go into the ^FN1 location of the
format. The printer will retry the command five times, if necessary.
^XA
^FO20,120^A0N,60^FN1^FS
^RT1,,,,5^FS
^HV1,,Tag Data:^FS
^XZ
Example 2: This example reads from a tag twice and prints the results on a label.
^XA
^FO20,120^A0N,60^FN1^FS
^FO20,100^A0N,20^FN2^FS
^RT1,7,3,,5^FS
^RT2,3,2,,5^FS
^XZ
The first ^RT command starts at block 7 and reads three blocks of data in ASCII format. The data
read will go into the ^FN1 location of the format. The printer will retry the command five times, if
necessary.
The second ^RT command starts at block 2 and reads two blocks of data in ASCII format. The data
read will go into the ^FN2 location of the format. The printer will retry the command five times, if
necessary.

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands
^RU

^RU – Read Unique RFID Chip Serialization
Use this command to read the TID (Tag ID) data from the current chip and format a unique 38-bit
serial number, which will be placed in the lower (least significant) 38 bits of the EPC code.
Format:

^RUa,b

Parameters

Details

a = prefix

Specifies the prefix in ASCII Binary
Values: Only ASCII characters 1 and 0 are accepted. Maximum of 38 characters.
The number of bits in the value specifies the length of the prefix. The prefix is placed
as the left-most (most significant) bits in the unique serial number.
If nothing is specified, the default value will be used.
Default: The MCS prefix is determined by the MDID in the TID of the chip read:
100 = EM Micro
Impinj = 101
Alien = 110
NXP = 111

•
•
•
•

b = special
character

Special character for serial number inclusion.
Values: Any ASCII character other than the current Command character, Control
character, Delimiter character, or any of the Real-Time Clock (RTC) characters.
Default: #

Note • Serial number inclusion:
One of several data elements can be included into any ^FD data string in the same way that Real
Time Clock data is included. Use any of the commands below to include a data pattern based on
the serial number. These are defined using the default value for the Special Character.

#S = include 38-bit serial number derived from TID in decimal form.
#H = include 38-bit serial number derived from TID in hexadecimal form.
#E = include the entire 96-bit EPC code, including the 38-bit serial
number derived from TID in decimal form.
#F = include the entire 96-bit EPC code, including the 38-bit serial
number derived from TID in hexadecimal form.
#P = include the entire 96-bit EPC code, but use the tag’s
preprogrammed, 38-bit SGTIN serial number in decimal form.*
#Q = include the entire 96-bit EPC code, but use the tag’s
preprogrammed, 38-bit SGTIN serial number in hexadecimal form.*
* If the EPC has been preprogrammed (typically by the manufacturer) with the chip-based RFID
serialization scheme, then the serialized data does not have to be written back to the EPC memory,
which saves time. #P and #Q simply format the data that is read from the EPC memory bank.

Example 1: Read the TID from the tag, create a serial number based on the tag type, write
12000000000000 to the 96-bit EPC field, and print the serial
number (in hex format) on the label.
^XA
^RU
^FO10,10^A0N,50,50^FDSerial Number: #H^FS
^RFW,H^FD12#H^FS
^XZ

1/31/18

Programming Guide

P1099958-001

385

386

ZPL RFID Commands
^RU

Example 2: Read the TID from the tag, create a serial number based on the tag type, write
the serial number to the EPC field (lower 38 bits) while maintaining the contents of the rest of
the EPC memory, print Serial Number:  on the label,
and return Serial Number:  to the host. Perform this
operation on three label formats.
^XA
^RU
^FO10,10^A0N,50,50^FN1^FS
^FN1^FDSerial Number: #H^FS
^FH^HV1,24, ,_0D_0A,L^FS
^RFW,H^FD#F^FS
^PQ3
^XZ
Example 3: Read the full EPC (already serialized) from the tag, print
Serial Number:  on the label, and return
Serial Number:  to the host.

^XA
^RU
^FO10,10^A0N,50,50^FN1^FS
^FN1^FDSerial Number: #P^FS
^FH^HV1,44, ,_0D_0A,L^FS
^XZ

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands
~RV

~RV – Report RFID Encoding Results
Important • This command is not supported by all printers or firmware. See Printer and
Firmware Compatibility on page 349 for the list of printers and firmware with which you can
use this command.
Use this command to tell the printer to send RFID encoding success or failure results to the host
computer after each label format completes.
Format: ~RVa

Parameters

Details

a =

Enables or disables the results reporting feature.
Values:
E = Enable
D = Disable

enable/disable

Default: D

Example 1: Assume that the following code is sent and that there is no RFID tag in the field.
~RVE
^XA
^RS8,0,,3
^RMY
^RFR,H
^XZ
The printer attempts to program a tag three times and then returns the following to the host:

_-,3_
The minus sign indicates that the programming attempt failed entirely and voided three labels.

Example 2: Assume that the same code is sent and that the first two attempts at
programming a tag are unsuccessful. The third attempt succeeds.
~RVE
^XA
^RS8,0,,3
^RMY
^RFR,H
^XZ
The printer attempts to program a tag three times and then returns the following to the host:

_+,2_
The plus sign indicates that the programming attempt was successful and voided two labels.

1/31/18

Programming Guide

P1099958-001

387

388

ZPL RFID Commands
^RW

^RW – Set RF Power Levels for Read and Write
Important • This command is not supported by all printers or firmware. See Printer and
Firmware Compatibility on page 349 for the list of printers and firmware with which you can
use this command.
Use this command to set the RFID read and write power levels if the desired levels are not achieved
through RFID tag calibration. If not enough power is applied, the tag may not have sufficient power
for programming, and tag data will fail to encode. If too much power is applied, the extra power may
cause data communication errors or may cause the wrong tag to be programmed.

Note • For the R110Xi4, ZT400, and ZD500R printers:
During RFID tag calibration, the printer automatically selects the best read/write power levels and
the best antenna element (not appllicable to the ZD500R) for the media being used. The R110Xi4
printer may also set the levels during an adaptive antenna sweep. Use the ~HL command (see ^HL
or ~HL on page 353) to view the antenna element and power settings being used.
Note • For the R110Xi4, ZT400, and ZD500R printers:
During RFID tag calibration, the printer automatically selects the best read/write power levels and
the best antenna element (not appllicable to the ZD500R) for the media being used. The R110Xi4
printer may also set the levels during an adaptive antenna sweep. Use the ~HL command (see ^HL
or ~HL on page 353) to view the antenna element and power settings being used.
Format: ^RWr,w,a

Parameters

Details

r =

This parameter sets the power level to match the desired output as calibrated in the
factory.

read power

R53.16.3, V53.17.5, and later:
Values: 0 to 30
Default: 16

R60.16.4, R62.16.4, R63.16.4, SP994Q, SP999G, SP1027G, SP1056F, SP1082G,
and later:
Values: 0 to 30, H (high), M (medium), L (low)
Default: L

R65.X and older versions of other firmware:
Values:

H = high
M = medium
L = low

Default: L

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands
^RW

Parameters
w =

Details

write power

Note • This parameter is ignored on the R110Xi HF printer (firmware
version R65.X) because read and write powers cannot be specified
separately. The printer uses the value that you specified for read power for
both the read and write power settings.
This parameter sets the power level to match the desired output as
calibrated in the factory.

R53.16.3, V53.17.5, and later:
Values: 0 to 30
Default: 16

R60.16.4, R62.16.4, R63.16.4, SP994Q, SP999G, SP1027G, SP1056F, SP1082G,
and later:
Values: 0 to 30, H (high), M (medium), L (low)
Default: L

Older versions of firmware:
Values:

H = high
M = medium
L = low

Default: L

1/31/18

Programming Guide

P1099958-001

389

390

ZPL RFID Commands
^RW

Parameters

Details

a =

ZD500R:

RFID antenna
element
selection

This printer only has one antenna element, so the value used is always A1.

ZT400:
This parameter selects an antenna element from the printer’s antenna array.
Values:
E1, E2, E3, E4
D1, D2, D3, D4
C1, C2, C3, C4
B1, B2, B3, B4
A1, A2, A3, A4

Default: A4

(Continued on next page)

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands
^RW

Parameters

Details

a =

(Continued from previous page)

RFID antenna
element
selection

R110Xi4 (V53.17.5 and later):
This parameter selects an antenna element from the printer’s antenna array.
Values:
A1, A2, A3, A4, B1, B2, B3, B4, C1, C2, C3, C4, D2, D3, D4, E2, E3, E4, F2, F3,
F4 (combinations D1, E1, and F1 are invalid)

Default: A4

R110Xi HF (R65.X):
This parameter selects the antenna port that provides the best results for reading
and writing.
Values:
1 = antenna port 1
2 = antenna port 2
Default: 1

Example 1: The following command selects the antenna at row D, column 3 on an R110Xi4
printer:
^RW,,D3
Example 2: The following command sets the read/write power level to Medium and selects
antenna 2 on an R110Xi HF printer:
^RWM,,2
Example 3: The following command sets the read and write power levels to High on an
R110PAX4 printer:
^RWH,H

1/31/18

Programming Guide

P1099958-001

391

392

ZPL RFID Commands
^RZ

^RZ – Set RFID Tag Password and Lock Tag
Important • This command is not supported by all printers or firmware. See Printer and
Firmware Compatibility on page 349 for the list of printers and firmware with which you can
use this command.
Use this command to define a password for a tag during writing.
With Gen 2 tags, you can lock a tag’s memory bank with an access password or define a kill
password that can be used to permanently disable the tag. If you do not set access or kill passwords
for a tag, the tag ignores any read or write commands that try to use these functions.

Note • The printer can set a kill password, but the printer cannot kill a tag.
Format:

^RZp,m,l

Parameters

Details

p = password

This parameter sets a password for the RFID tag.

For tag types other than Gen 2:
The password is 8 bits. The memory bank and lock style parameters are ignored.
The password must be 2 hexadecimal characters long.
Values: 00 to FF (hexadecimal)
Default: 00

For Gen 2 tag type only:
Gen 2 tags use a 32-bit password and specify the memory bank and lock style. The
password must be 8 hexadecimal characters long. Use ^RF on page 365 to read the
passwords.
Values: 00000000 to FFFFFFFF (hexadecimal)
Default: none

m = memory bank

Note • This parameter applies to Gen 2 tags only.
This parameter specifies the type of RFID tag password.
Values:

K
A
E
T
U

=
=
=
=
=

kill password
access password
EPC
tag identifier (TID)
user

Default: none

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands
^RZ

Parameters

Details

l = lock style

Note • This parameter applies to Gen 2 tags only.
This parameter specifies the RFID tag password status.
Values:

U
L
O
P
W

=
=
=
=
=

unlocked
locked
permanently unlocked (open)
permanently locked (protected)
write value (used only for the kill password memory bank)

Default: none

Example 1: On a tag that is not Gen 2, this example encodes 5A as the tag password.
^XA
^RZ5A^FS
^XZ
Example 2: On a Gen 2 tag, this example encodes EPC data 112233445566778899001122 to
the tag in Hex format, write protects the tag’s EPC data with password 1234ABCD, and leaves
the tag’s access password unlocked.
^XA
^RFW,H^FD112233445566778899001122^FS
^RZ1234ABCD,E,L^FS
^XZ
Example 3: On a Gen 2 tag, this example encodes EPC data 112233445566778899001122 to
the tag in Hex format, write protects the tag’s EPC data with password 1234ABCD, and makes
the tag’s access password unreadable.
^XA
^RFW,H^FD112233445566778899001122^FS
^RZ1234ABCD,E,L^FS
^RZ1234ABCD,A,L^FS
^XZ
The following code unprotects EPC data 112233445566778899001122 using the password
1234ABCD, encodes EPC data newdata to the tag in ASCII format, and then write protects the
tag’s new EPC data. The access password and its lock state are not changed, so the access
password remains unreadable.

^XA
^RZ1234ABCD,E,U^FS
^RFW,A^FDnewdata^FS
^RZ1234ABCD,E,L^FS
^xz

1/31/18

Programming Guide

P1099958-001

393

394

ZPL RFID Commands
^RZ

Example 4: This example unlocks the locked access password from the previous example.
^XA
^RZ1234ABCD,A,U^FS
^XZ

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands
^WF

^WF – Encode AFI or DSFID Byte
Use this command to encode the AFI or DSFID byte to a tag. Error handling is set by the ^RS
command.

Important • This command is not supported by all printers or firmware. See Printer and
Firmware Compatibility on page 349 for the list of printers and firmware with which you can
use this command.
Format:

^WFr,m,w,f,b

Parameters

Details

r = number of
retries

Values: 0 to 10
Default: 0

m = motion

Values:
0 = Feed label after writing.
1 = No Feed after writing. Other ZPL may cause a feed.
Default: 0

w = write protect

Values:
0 = Not write protected
1 = Write protect
Default: 0
Values:
0 = ASCII
1 = Hexadecimal

f = data format

Default: 0

b = type of byte to
read

Values:

A = AFI byte
D = DSFID byte

Default: A

Example 1: This example encodes data “R” (hex 52) as the AFI byte. The printer will try the
command up to five times, if necessary.
^XA
^WF5^FDR
^XZ
Example 2: This example encodes data hex 66 as the AFI byte. The printer will try the
command up to three times, if necessary.
^XA
^WF3,,,1^FD66
^XZ
Example 3: This example encodes data hex 77 as the DSFID byte. The printer will try the
command up to four times, if necessary.
^XA
^WF4,,,1,D^FD77
^XZ

1/31/18

Programming Guide

P1099958-001

395

396

ZPL RFID Commands
^WT

^WT – Write (Encode) Tag
Note • The ^WT command is provided only for backward-compatibility with label formats that were
developed for older Zebra RFID printers. See Printer and Firmware Compatibility on page 349 for
the list of printers and firmware with which you should not use this command.
Use this command to encode the current RFID tag. Check the amount of data memory available for
the tag that you will be using. If you send more data than the memory can hold, the printer truncates
the data.
Format:

^WTb,r,m,w,f,v

Parameters

Details

b = block number

Specifies the block number to encode. This parameter is tag-dependent.
• For most tags, use block 0.
• For EPC Class 0 Plus, block 0 is EPC data, and block 1 is user data.
• For the R4Mplus, this parameter does not apply to printers with firmware version
SP902X. With other versions of firmware in this printer, you can encode 12 bytes
(96 bits) to block 0, but you can encode only the first byte of block 1.
Values: 0 to n, where n is the maximum number of blocks for the tag.
Default: 0

r = number of
retries

Changes the number of times that the printer attempts to encode a particular block
of a single RFID tag. (Same function as the ^RR command.)
Values: 0 to 10
Default: 0

m = motion

Enables or disables RFID motion. (Same function as the ^RM command.)
Values:
0 = Feed label after writing
1 = No feed after writing (other ZPL may cause a feed)
Default: 0

w = write protect

Values:

0 = Not write protected
1 = Write protected

Default: 0

f = data format

Values:

0 = ASCII
1 = Hexadecimal

Default: 0

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands
^WT

Parameters

Details
This parameter is not used in the R2844-Z.

For the R110Xi HF:

For the R110Xi HF:

v = reverse the data
order

Reverses the data order.
Values:

N = Do not reverse the data order (Most significant byte first for Tag*It

and PicoTag. Last significant byte first for I*code and ISO 15693)
Y = Reverse the data order
Default: N

For other supported
printers:
v = verify valid
data

For other supported printers:
For reliability, some manufacturers encode tags with known data (such as A5A5).
This parameter flags whether the preprogrammed data is verified. (Same function
as the ^WV command.)
Values:
N = Do not verify
Y = Verify valid data before writing
Default: N

Example: This sample encodes data “RFIDRFID” and will try writing up to five times, if necessary.

^XA
^WT,5^FDRFIDRFID^FS
^XZ

1/31/18

Programming Guide

P1099958-001

397

398

ZPL RFID Commands
^WV

^WV – Verify RFID Encoding Operation
Important • This command is not supported by all printers or firmware. See Printer and
Firmware Compatibility on page 349 for the list of printers and firmware with which you can
use this command.
Use this command to enable or disable the write verify function. When write verify is enabled, this
command verifies the RFID encoding operation to ensure that the tag about to be programmed
contains the hex data “A5A5” in the first two bytes. This parameter is not persistent (carried over
from label to label).
Format:

^WVe

Parameters

Details

e = enable

Values: Y or N
Default: N

P1099958-001

Programming Guide

1/31/18

ZPL RFID Commands
^WV

1/31/18

Programming Guide

P1099958-001

399

400

ZPL RFID Commands
^WV

Notes • ____________________________________________________________________

__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________

P1099958-001

Programming Guide

1/31/18

ZPL Wireless
Commands

This section contains ZPL commands for the Wireless and Wireless Plus print servers.

1/31/18

Programming Guide

P1099958-001

402

ZPL Wireless Commands
^KC

^KC – Set Client Identifier (Option 61)
The ^KC command allows the print server to have its own client identifier (CID).

Format:

^KCa,b,c,d

Parameters

Details

a = enable or disable

Values:
0
1
2
3

=
=
=
=

disable (default)
enabled, use MAC address
enabled, ASCII value
enabled, HEX value

Default:
b = device

Values:
0
1
2
3

=
=
=
=

all devices
wireless
external wired ad
internal wired

Default:
c = prefix (optional)

0

Values:

1
11 ASCII characters or 22 hexadecimal values.

The prefix can be cleared by defaulting the network settings on the printer.

d = identifier

Values: 60 ASCII characters or 120 hexadecimal values.
Minimum field length is 2 bytes.
The suffix can be cleared by defaulting the network settings on the printer.

ad.This applies only to the Xi4, RXi4, ZM400, ZM600, RZ400, or RZ600 printers when it is used with the external ZebraNet
10/100 print server using firmware v1.1.5 or later.

P1099958-001

Programming Guide

1/31/18

ZPL Wireless Commands
^NB

^NB – Search for Wired Print Server during
Network Boot

Use this command to tell the printer whether to search for a wired print server at bootup. This
command is ignored on the Xi4, RXi4, ZM400, ZM600, RZ400, and RZ600 printers.

Note • Only one print server can be installed in the S4M at one time, so this check does not occur.
Table 24 identifies which device becomes the active print server under different conditions.

Table 24 • Results of Check for Wired Print Server
If the Check for
Wired Print
Server is set to:

Skip

Check

Installed and Connected to
a Live Ethernet Network

Then, the Active Print Server
will be:

Wired

Wireless ae

X

X

Wireless

X

—

Wired

—

X

Wireless

X

X

Wired

X

—

Wired

—

X

Wireless

ae.A wireless option board must have an active radio that can properly associate to an access point.

Format: ^NBa

Parameters

Details

a = check for wired
print server at
boot time

Values:
C = CHECK
S = SKIP CHECK
Default: S

1/31/18

Programming Guide

P1099958-001

403

404

ZPL Wireless Commands
^NN

^NN – Set SNMP
Use this command to set the Simple Network Management Protocol (SNMP) parameters.
Format: ^NNa,b,c,d,e,f

Parameters

Details

a = system name

Same as printer name.
Values: Up to 17 alphanumeric characters

b = system contact

Any contact information as desired (such as a name or phrase)
Values: Up to 50 alphanumeric characters

c = system location

The printer’s model information.
Values: Up to 50 alphanumeric characters

d = get community
name

Values: Up to 19 alphanumeric characters
Default: public

e = set community
name

Values: Up to 19 alphanumeric characters
Default: public

f = trap community
name

Values: Up to 20 alphanumeric characters
Default: public

P1099958-001

Programming Guide

1/31/18

ZPL Wireless Commands
^NP

^NP – Set Primary/Secondary Device
Use this command to specify whether to use the printer’s or the print server’s LAN/WLAN settings at
boot time. The default is to use the printer’s settings.
When the printer is set as the primary device, you can set it up using ZPL commands or the Wireless
Setup Wizard utility, and any wired print server inserted into the printer will use those settings.The
drawbacks to using the printer as primary are:
Any wired print server inserted into the printer will lose its original settings if the printer is set to
check for the wired print server and the Primary Device is set to PRINTER (see ^NB on page 403).
Format:

^NPa

Parameters

Details

a = device to use as
primary

Values:

P = printer
M = MPS/Printserver

Default: P

1/31/18

Programming Guide

P1099958-001

405

406

ZPL Wireless Commands
^NT

^NT – Set SMTP
Use this command to set the Simple Mail Transfer Protocol (SMTP) parameters. This allows you to
set the e-mail settings for alerts.
Format: ^NTa,b

Parameters

Details

a = SMTP server
address

Values: Any properly formatted server address in the xxx.xxx.xxx.xxx format

b = print server
domain

Values: Any properly formatted print server domain name. A domain name is one
or more labels separated by a period (“dot”), and a label consists of letters,
numbers, and hyphens. An example of a domain name is zebra.com

P1099958-001

Programming Guide

1/31/18

ZPL Wireless Commands
^NW

^NW – Set Web Authentication Timeout Value
Use this command to set the timeout value for the printer home page. The printer will prompt for the
printer password only the first time that certain screens are accessed until 1) the web authentication
timeout value is reached (default value is 5 minutes) or 2) the printer is reset. At that time, the printer
will prompt for the password again.
Format: ^NWa

Parameters

Details

a = timeout value

The timeout value in minutes for an IP address to be authenticated to the printer
web pages.
Values: 0 (no secure pages can be accessed without entering the printer
password) to 255 minutes
Default: 5

1/31/18

Programming Guide

P1099958-001

407

408

ZPL Wireless Commands
^WA

^WA – Set Antenna Parameters
Use this command to set the values for the receive and transmit antenna.
Format: ^WAa,b

Parameters

Details

a = receive antenna

Values:

D = diversity
L = left
R = right

Default: D

b = transmit antenna

Values:

D = diversity
L = left
R = right

Default: D

P1099958-001

Programming Guide

1/31/18

ZPL Wireless Commands
^WE

^WE – Set WEP Mode
Note • The ^WE command is provided only for backward-compatibility with printers using firmware
prior to V50.15.x, V53.15.x, or X60.15.x. For these firmware versions and later, use ^WX
on page 419 to set the security type and related parameters.
Use this command to command enable Wired Equivalent Privacy (WEP) mode and set WEP values.
WEP is a security protocol for wireless local area networks (WLANs).
Be careful to include the exact number of commas required for this command when setting
encryption keys (parameters e through h). A missing or extra comma will cause the keys to be
stored in the wrong slots and can prevent the printer from joining the wireless network.
Format: ^WEa,b,c,d,e,f,g,h

Parameters

Details

a = encryption mode

Values:
OFF

40 = 40-bit encryption
128 = 128-bit encryption
Default:

OFF

b = encryption index

Tells the printer which encryption key to use.
Values:
1 = Key 1
2 = Key 2
3 = Key 3
4 = Key 4
Default: 1

c = authentication
type

Values: O (Open System), S (Shared Key)
O = Open System
S = Shared Key
Default: O
Note • If you enable Shared Key authentication with Encryption Mode set
to OFF, this value resets to O (Open).

d = encryption key
storage

Values: H (Hex key storage), S (string key storage)
H = Hex key storage
S = String key storage
Default: H

e, f, g, h =
encryption keys
1 through 4

1/31/18

Values: The actual value for the encryption key
The encryption mode affects what can be entered for the encryption keys:
• For 40-bit, encryption keys can be set to any 5 hex pairs or any 10 alphanumeric
characters.
• For 128-bit, encryption keys can be set to any 13 hex pairs or any 26
alphanumeric characters.
Note • When using hex storage, do not add a leading 0x on the WEP key.

Programming Guide

P1099958-001

409

410

ZPL Wireless Commands
^WE

Example 1: This example sets encryption to 40-bit, activates encryption key 1, and sets
encryption key 1 to the string 12345.
^WE40,,,,12345
In this example, the Encryption Index, Authentication Type, and Encryption Key Storage parameters
are left blank with commas as placeholders for the fields. The printer uses the default values for
these parameters.

Example 2: This example sets encryption to 128-bit, activates encryption key 2, and sets
encryption keys 1 and 2 to hex values.
^WE128,2,,H,12345678901234567890123456,98765432109876543210987654
The value for encryption key 1 is stored and can be activated in the future by the following
command:

^WE128,1
Example 3: This example sets encryption to 128-bit, activates encryption key 4, and sets
encryption key 4 to a hex value.
^WE128,4,,H,,,,98765432109876543210987654
Values are not required for encryption keys 1 through 3 when setting encryption key 4. In this
example, commas are used as placeholders for the fields for encryption keys 1 through 3.
Any previously stored values for these encryption keys do not change.

Important • Make sure that you include the exact number of commas required to get
to the slot for encryption key 4 (parameter h).

P1099958-001

Programming Guide

1/31/18

ZPL Wireless Commands
^WI

^WI – Change Wireless Network Settings
Use this command to change the wireless network settings.
Zebra recommends using ^ND on page 285 for these settings if you have any of the following
printers:
• Xi4 printers with firmware V53.17.1Z or later
• RXi4 printers with firmware V53.17.7Z or later
• ZM400, ZM600, or S4M printers with firmware V53.15.xZ or later
• RZ400/RZ600 printers with firmware R53.16.x or later
Format:

^WIa,b,c,d,e,f,g,h,i

Parameters

Details

a = IP resolution

Values:

All
BOOTP
DHCP and BOOTP
DHCP
Gleaning only (Not recommended when the Wireless Print Server or
Wireless Plus Print Server is installed.)
R = RARP
P = Permanent
A
B
C
D
G

=
=
=
=
=

Default: A

b = IP address

Values: Any properly formatted IP address in the xxx.xxx.xxx.xxx format.
Default: 000.000.000.000

c = subnet mask

Values: Any properly formatted subnet mask in the xxx.xxx.xxx.xxx format.
Default: 000.000.000.000

d = default gateway

Values: Any properly formatted gateway in the xxx.xxx.xxx.xxx format.
Default: 000.000.000.000

e = WINS server
address

Values: Any properly formatted WINS server in the xxx.xxx.xxx.xxx format.
Default: 000.000.000.000

f = connection
timeout checking

Values:

Y = yes
N = no

Default: Y

g = timeout value

Time, in seconds, before the connection times out.
Values: 0 through 9999
Default: 300

h = ARP broadcast
interval

Time, in minutes, that the broadcast is sent to update the device’s ARP cache.
Values: 0 through 30
Default: 0 (no ARP sent)

i = base raw port
number

The port number that the printer should use for its RAW data.
Values: 1 through 65535
Default: 9100

1/31/18

Programming Guide

P1099958-001

411

412

ZPL Wireless Commands
^WL

^WL – Set LEAP Parameters
Note • The ^WL command is provided only for backward-compatibility with printers using
firmware prior to V50.15.x or X60.15.x. For these firmware versions and later, use ^WX
on page 419 to set the security type and related parameters.
Use this command to enable Cisco® Lightweight Extensible Authentication Protocol (LEAP) mode
and set parameters. LEAP is user authentication method that is available with some wireless radio
cards.
Format:

^WLa,b,c

Parameters

Details

a = mode

Values: OFF, ON
Default: OFF

b = user name

Values: Any 1 to 32 alphanumeric including special characters
Default: user

c = password

Values: Any 1 to 32 alphanumeric including special characters
Default: password

P1099958-001

Programming Guide

1/31/18

ZPL Wireless Commands
~WL

~WL – Print Network Configuration Label
Generates a network configuration label (Figure 2).
Format: ~WL

Figure 2 • Network Configuration Label
Wireless Print Server

Wireless Plus Print Server
and Internal Wireless Plus Print Server
Xi4, R110Xi4, ZM400, ZM600,
RZ400, RZ600

1/31/18

Programming Guide

Other Printers/
Print Engines

P1099958-001

413

414

ZPL Wireless Commands
^WP

^WP – Set Wireless Password
Note • This command does not apply to the S4M.
Use this command to set the four-digit wireless password (not the same as the general printer
password). If the wireless password is 0000, the Wireless and Wireless Plus print servers run in an
“unprotected” mode, which means that you do not need to enter the wireless password through the
control panel to view or modify wireless settings.
If a wireless password is set, the values for the following parameters will not appear through the
control panel until the wireless password is entered:
• MAC Address
• ESSID
• WLAN Security
• WEP Type
• WEP Index
• Reset Network
Format: ^WPa,b

Parameters

Details

a = old wireless
password

Values: 0000 through 9999
Default: 0000

b = new wireless
password

Values: 0000 through 9999
Default: 0000

P1099958-001

Programming Guide

1/31/18

ZPL Wireless Commands
^WR

^WR – Set Transmit Rate
Use this command to change the transmission rate for 802.11b wireless print servers.
Format:

^WRa,b,c,d,e

Parameters

Details

a = rate 1

Sets the 1 Mb/s transmit rate.
Values: Y (On), N (Off)

b = rate 2

Sets the 2 Mb/s transmit rate.
Values: Y (On), N (Off)

c = rate 5.5

Sets the 5.5 Mb/s transmit rate.
Values: Y (On), N (Off)

d = rate 11

Sets the 11 Mb/s transmit rate.
Values: Y (On), N (Off)

e = transmit power

Values: 1, 5, 20, 30, 50, 100

1/31/18

Programming Guide

P1099958-001

415

416

ZPL Wireless Commands
~WR

~WR – Reset Wireless Radio Card and Print Server
Use this command to reinitialize the wireless radio card and the print server (wired or wireless) when
the Wireless or Wireless Plus print server is running. The command also causes any wireless radio
card in the printer to reassociate to the wireless network.
Format: ~WR

P1099958-001

Programming Guide

1/31/18

ZPL Wireless Commands
^WS

^WS – Set Wireless Radio Card Values
Use this command to set the wireless radio card values for ESSID, Operating Mode, and Card
Preamble.
Format:

^WSe,o,p,h,i,j,k

Parameters

Details

e = ESSID value

Values: Any value up to 32 characters, including all ASCII and Extended ASCII
characters, including the space character. When this parameter is left blank, the
ESSID is not changed.
Default: 125

o = operating mode

Values: I (Infrastructure), A (Adhoc)
Default: I

p = wireless radio
card preamble

Values:

L = long
S = short
Default: L

h = wireless pulse

This parameter is supported
in firmware version V60.15.x,
V50.15.x, R6x.15.x,
R53.15.x, ZSPx, or later.

i = wireless pulse
interval

Adds a pulse to the network traffic generated by the printer. This pulse is necessary
with some network configurations to keep the printer online.
Values:

0 = disabled
1 = enabled
Default: 1
Sets the interval at which the wireless pulse is sent when the wireless pulse feature
is enabled.
Values: 5 to 300 seconds
Default: 15

This parameter is supported
in firmware version V60.15.x,
V50.15.x, R6x.15.x,
R53.15.x, ZSPx, or later.

j = channel mask

For commonly used channel masks, see Table 25.
Values: 4 Hexadecimal digits preceded by “0x” (0x0000 to 0xFFFF)
Default: 0x7FF

This parameter is supported
in firmware version X60.15.x,
V50.15.x, or later.

k = international
mode

In international mode, the printer uses the channel set by the access point.
Values: 0 (Disabled), 1 (Enabled)
Default: 0

This parameter is supported
in firmware version X60.15.x,
V50.15.x, or later.

1/31/18

Programming Guide

P1099958-001

417

418

ZPL Wireless Commands
^WS

Table 25 • Channel Mask Settings
Region

P1099958-001

Channel Mask

United States, Canada, Latin America

0x7FF

Europe, Middle East, Africa, other

0x1FFF

Japan

0x3FFF

Programming Guide

1/31/18

ZPL Wireless Commands
^WX

^WX – Configure Wireless Securities
Use this command to configure the wireless security settings for your printer. Values entered for this
command must match what is configured on your WLAN and must be supported by the wireless
radio card that you are using.
The ^WX command replaces individual ZPL commands for different security types.

Note • When using certificate files, your printer supports:
• Using Privacy Enhanced Mail (PEM) formatted certificate files.
• Using the client certificate and private key as two files, each downloaded separately.
• Using exportable PAC files for EAP-FAST.
• The supporting parameters that are required vary based on the security type that you
select. See Supporting Parameters for Different Security Types on page 421 for
instructions for each security type.
Important • When using certificate files, the time on the printer must be set correctly for
the websocket connection to succeed, as the time is used in the certificate validation.
Format:

^WXa,[zero or more supporting parameters]

Parameters

Details

a = security type

Enter the two-digit code for the security type that your WLAN uses. For which
supporting parameters (b through n) to use with the different security types, see
Supporting Parameters for Different Security Types on page 421.
Note • Configuring the printer for WPA also allows the printer to be used in
WPA2 environments.
Values: 01 to 15

01 = No wireless security is active09= WPA PSK (R6x15.x, R53.15.x, ZSPx,
02 =
03 =
04 =
05 =
06 =
07 =
08 =

and later.)
WEP 40-bit10= WPA EAP-TLS
WEP 128-bit11= WPA EAP-TTLS
EAP-TLS12= WPA EAP-FAST
EAP-TTLS13= WPA PEAP
EAP-FAST14= WPA LEAP
PEAP15=Kerberos
LEAP

Default: 01

b = WEP encryption
index*

Specifies which encryption key to use for WEP encryption. A value must be
specified if using WEP 40-bit or WEP 128-bit.
Values: 1, 2, 3, 4
Default: 1

c = WEP
authentication
type*

Enables the WEP key authentication type. A value must be specified if using
WEP 40-bit or WEP 128-bit.
Values: O

or S

O = open system
S = shared key
Default:

O

* Not used for all security types

1/31/18

Programming Guide

P1099958-001

419

420

ZPL Wireless Commands
^WX

Parameters

Details

d = WEP key type*

Specifies the format of the WEP key. A value must be specified if using WEP 40-bit
or WEP 128-bit.
Values: H or S

H = hex key storage
S = string key storage
Default: S

e,f,g,h =
WEP encryption
keys 1 through
4*

Specifies the actual values of any WEP encryption keys to be used. A value must be
specified for at least one WEP encryption key if you specify 40-bit or 128-bit WEP
encryption for the security type.

Important • Be careful to include the exact number of commas
required for this command when setting encryption keys (parameters
e through h). A missing or extra comma will cause the keys to be stored
in the wrong slots and can prevent the printer from joining the wireless
network.
The encryption mode affects what can be entered for the encryption keys:

•

For 40-bit, encryption keys can be set to any 5 hex pairs or any 10

•

alphanumeric characters.
For 128-bit, encryption keys can be set to any 13 hex pairs or any 26
alphanumeric characters.

Note • When using hex storage, do not add a leading 0x on the WEP key.
Values: The actual value for the encryption key
Default: None

i = user ID*

Specifies a user ID for security types that require one. A value must be
specified if using the following security types:

•
•
•
•
•
•
•

EAP-TTLS
LEAP
WPA LEAP
PEAP
WPA PEAP
WPA EAP-TTLS
Kerberos
Values: The actual value for the user ID.
Default: user

j = password*

Specifies a password for security types that require one. A value

specified if using the following security types:

must be

•
•
•
•
•
•
•

EAP-TTLS
LEAP
WPA LEAP
PEAP
WPA PEAP
WPA EAP-TTLS
Kerberos
Values: The actual value for the password.
Default: password
* Not used for all security types

P1099958-001

Programming Guide

1/31/18

ZPL Wireless Commands
^WX

Parameters

Details

k = optional private
key password*

value must be specified if using the following security types:

Specifies an optional private key password for security types that require one. A

•
•
•
•

EAP-TLS
EAP-FAST
WPA EAP-TLS
WPA EAP-FAST
Values: The actual value for the optional private key.
Default: None

l = realm*

Specifies the realm for security types that require it. A value must be specified if
using Kerberos.
Values: The actual value for the realm.
Default: kerberos

m = Key Distribution
Center (KDC)*

Specifies the KDC for security types that require it. A value must be specified if
using Kerberos.
Values: The actual value for the KDC.
Default: krbtgt"

n = Pre-Shared Key
(PSK) value*

Enter the PSK value. This value is calculated and must be the same for each device
on the WLAN. Use ZebraNet Bridge to generate the PSK value. A value must be
specified if using WPA PSK.

Important • Do not enter a pass phrase for this field in this command.
To use a pass phrase, use the ZebraNet Bridge Enterprise Wireless
Setup Wizard.
Values: a minimum of 64 hexadecimal digits
Default: None
* Not used for all security types

Supporting Parameters for Different Security Types
The supporting parameters required for this command vary based on the security type that you
select. You should not use all of the supporting parameters each time that you use this command,
nor will you use extra commas to separate unused fields. Follow the example and format for your
specific security type in this section, substituting your own wireless network data.

Security Type 01: No Wireless Security Active
Format:

^WX01

Example: This example turns off all wireless securities controlled under this command, but it does
not reset the printer’s wireless settings to their defaults.

^XA
^WX01
^JUS^XZ

1/31/18

Programming Guide

P1099958-001

421

422

ZPL Wireless Commands
^WX

Security Type 02: WEP 40-Bit
Format: ^WX02,b,c,d,e,f,g,h
Example: This example configures the printer for WEP 40-bit encryption using index key 1, open
authentication, and a hexadecimal WEP key with a value of “A1B2C3D4F5.”

^XA
^WX02,1,O,H,A1B2C3D4F5,,,
^JUS
^XZ

Security Type 03: WEP 128-Bit
Format: ^WX03,b,c,d,e,f,g,h
Example: This example configures the printer for WEP 128-bit encryption using index key 2, open
authentication, and four hexadecimal WEP keys.

^XA
^WX03,2,O,H,001122334455667788,112233445566778899,223344556677889
900,334455667788990011
^JUS
^XZ

Security Type 04: EAP-TLS
Format: ^WX04,k
Example: This example configures the printer for EAP-TLS authentication with an optional private
key password with a value of “private.”

^XA
^WX04,private
^JUS
^XZ

Security Type 05: EAP-TTLS
Format: ^WX05,i,j

P1099958-001

Programming Guide

1/31/18

ZPL Wireless Commands
^WX

Example: This example configures the printer for EAP-TTLS authentication, including a user ID of
“user” and a password of “password.”

^XA
^WX05,user,password
^JUS
^XZ

Security Type 06: EAP-FAST
Format:

^WX06,i,j,k

Example: This example configures the printer for EAP-FAST authentication, including a user ID of
“user,” a password of “password,” and an optional private key of “private.”

^XA
^WX06,user,password,private
^JUS
^XZ

Security Type 07: PEAP
Format: ^WX07,i,j
Example: This example configures the printer for PEAP authentication, including a user ID with a
value of “user” and a password with a value of “password.”

^XA
^WX07,user,password
^JUS
^XZ

Security Type 08: LEAP
Format: ^WX08,i,j
Example: This example configures the printer for LEAP authentication, including a user ID with a
value of “user” and a password with a value of “password.”

^XA
^WX08,user,password
^JUS
^XZ

1/31/18

Programming Guide

P1099958-001

423

424

ZPL Wireless Commands
^WX

Security Type 09: WPA PSK
Note • Configuring the printer for WPA also allows the printer to be used in WPA2 environments
(R6x15.x, R53.15.x, ZSPx, and later.)
Format:

^WX09,n

Example: This example configures the printer for WPA PSK authentication with a PSK value of all
zeroes (64 hexadecimal digits).

^XA
^WX09,00000000...
^JUS
^XZ

Security Type 10: WPA EAP-TLS
Note • Configuring the printer for WPA also allows the printer to be used in WPA2 environments.
Format: ^WX10,k
Example: This example configures the printer for WPA EAP-TLS authentication with an optional
private key password with a value of “private.”

^XA
^WX10,private
^JUS
^XZ

Security Type 11: WPA EAP-TTLS
Note • Configuring the printer for WPA also allows the printer to be used in WPA2 environments.
Format: ^WX11,i,j
Example: This example configures the printer for WPA EAP-TTLS authentication, including a user
ID with a value of “user” and a password with a value of “password.”

^XA
^WX11,user,password
^JUS
^XZ

P1099958-001

Programming Guide

1/31/18

ZPL Wireless Commands
^WX

Security Type 12: WPA EAP-FAST
Note • Configuring the printer for WPA also allows the printer to be used in WPA2 environments.
Format: ^WX12,i,j,k
Example: This example configures the printer for WPA EAP-FAST authentication, including a user
ID of “user,” a password of “password,” and an optional private key of “private.”

^XA
^WX12,user,password,private
^JUS
^XZ

Security Type 13: WPA PEAP
Note • Configuring the printer for WPA also allows the printer to be used in WPA2 environments.
Format: ^WX13,i,j
Example: This example configures the printer for WPA PEAP authentication, including a user ID
with a value of “user” and a password with a value of “password.”

^XA
^WX13,user,password
^JUS
^XZ

Security Type 14: WPA LEAP
Note • Configuring the printer for WPA also allows the printer to be used in WPA2 environments.
Format: ^WX14,i,j
Example: This example configures the printer for WPA LEAP authentication, including a user ID
with a value of “user” and a password with a value of “password.”

^XA
^WX14,user,password
^JUS
^XZ

1/31/18

Programming Guide

P1099958-001

425

426

ZPL Wireless Commands
^WX

Security Type 15: Kerberos
Format: ^WX15,i,j,l,m
Example: This example configures the printer for Kerberos encryption, including a Kerberos user
ID with a value of “user,” a Kerberos password with a value of “password,” a realm of “zebra,”
and a KDC of “krbtgt.”

^XA
^WX15,user,password,zebra,krbtgt
^JUS
^XZ

P1099958-001

Programming Guide

1/31/18

ZBI Commands

This section explains the Zebra Basic Interpreter, its commands, descriptions, formats, and
parameters.

Contents
Introduction to Zebra Basic Interpreter (ZBI) ............................................................................ 428
Command and Function Reference Format .............................................................................. 429
Section Organization ................................................................................................................. 430
Editing Commands..................................................................................................................... 431
Running and Debugging Commands ......................................................................................... 439
Base Types and Expressions ...................................................................................................... 450
Control and Flow ....................................................................................................................... 459
Input and Output....................................................................................................................... 467
File System................................................................................................................................. 488
Comma Separated Values (CSV) ................................................................................................ 493
Events ........................................................................................................................................ 498
Systems...................................................................................................................................... 509
String Functions......................................................................................................................... 520
Math Functions.......................................................................................................................... 536
Array Functions ......................................................................................................................... 544
Time and Date Functions........................................................................................................... 552
Set/Get/Do Interactions ............................................................................................................ 557
Example Programs..................................................................................................................... 559

1/31/18

Programming Guide

P1099958-001

428

ZBI Commands
Introduction to Zebra Basic Interpreter (ZBI)

Introduction to Zebra Basic Interpreter (ZBI)
What is ZBI and why is it for me?
ZBI is an "on-the-printer" programing language that offers many of the functions found in ANSI
BASIC. The ZBI language allows the user to create applications that are run on the printer to
manipulate data streams. By using ZBI, it is possible to have the printer perform the same functions
that a computer or programmable terminal might otherwise be used for.
With the connectivity options available on Zebra printers, you may not need a separate computer.
Simply load a ZBI program on your printers, add them to your network, and let the printers serve as
the gateway for moving data.
Here are some of the applications that can be written using ZBI:
• Connect a barcode scanner to the printer. Based on scanned data, reprint tags, verify printed
output, and manage a list of items.
• Connect a scale to the printer and print labels, tags, or receipts based on the weight of an item.
• Connect the printer to a PC-based database and send queries from the printer to retrieve or
upload data.
• Convert incoming data into the commands that can be used to print a label. This is useful for
replacing other brands of printers with new Zebra units.
• Provide fail-over to another printer when the target printer is in an error state.

Printers, ZBI Keys, & ZBI Versions
Information about ZBI 1.x and ZBI 2.x:

ZBI versions 1.0 through 1.5: ZBI 1.x was available on printers with X.10 or higher firmware
(such as V48.10.x). To determine if the printer supports ZBI version 1, check the firmware version
loaded on the printer. This can be determined by the absence of a “Z” in the firmware version
number (for example, firmware V60.13.0.12 supports ZBI version 1, while V60.13.0.12Z does not).
The following printers support the ZBI 1.x firmware:
• LP/TLP 284x-Z and 384x-Z
• S300/S400/S500/S600
• Z4000/Z6000
• Z4M/Z6M
• Z4Mplus/Z6Mplus
• 105SL
• PAX3
• XiII
• XiIII

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Command and Function Reference Format
ZBI-Developer can be used to create programs for use on printers that support ZBI version 1.x.,
however, the features that are only available in ZBI v2.x cannot be used with printers running ZBI
v1.x. For example, “on-printer” debugging advanced file encryption and commands added in ZBI 2
are not supported in printers running ZBI 1.x. If you do not have a printer that meets this
requirement, contact your reseller.

Note • Support for ZBI versions 1.0 through 1.5 is limited to syntax checking only. On-printer
debugging is not supported for ZBI versions 1.0 through 1.5.

ZBI versions 2.0 and higher: Printers with firmware versions X.16 or later (for
example, V60.16.x and V53.16.x) can support ZBI version 2.0 and later. The following
printers support the ZBI 2.x firmware:
• XiIII Plus
• Z4Mplus/Z6Mplus
• 105SL
• S4M
• PAX4
• ZM400/ZM600, RZ400/RZ600
• G-Series
• HC100
• Xi4, RXi4
• LP/TLP2824+
• KR403
These printers can be either ZBI-Ready or ZBI-Enabled, depending on whether or not a ZBI Key file
has been loaded on the printer. ZBI Keys can be loaded onto printers during manufacturing or later
purchased at www.zebrasoftware.com. A Downloader Utility/ZBI Key Manager software
utility is available to assist in the task of sending ZBI Keys to printers.
The ZBI.nrd file is required to be present on the printer for ZBI 2.0 to be enabled. The ZBI Key is
stored on the printer’s E: memory location with the name ZBI.nrd. The file is persistent. It cannot be
deleted even if the printer’s memory is initialized. For example, if the ^JB command is used to
initialize the location, the ZBI Key file will not be deleted.
When a printer is ZBI-Ready but not ZBI-Enabled, the firmware version will display a "Z" at the end
of the version string (for example, V60.16.0Z). Additionally, the printer’s configuration label will show
that the printer is not ZBI-Enabled.
When a printer is ZBI-Enabled, the firmware version will not display a "Z" at the end of the version
string (for example, V60.16.0Z). Additionally, the printer’s configuration label will show that the
printer is ZBI-Enabled.

Note • Each single ZBI Key can only be used once. When multiple printers are to be ZBI-Enabled
multiple Keys will be needed. The ZBI Key cannot retrieved from printer to a host system.

Command and Function Reference Format
This section describes how commands and functions are presented in this document.

1/31/18

Programming Guide

P1099958-001

429

430

ZBI Commands
Section Organization

Command/Function NAME
Describes how the command is used, its capabilities, and its characteristics.

Format The Format section explains how the command is arranged and its parameters. For
example, the AUTONUM command starts the auto-numbering option. The format for the command is
AUTONUM ,. The  and  are parameters of this command and are replaced with
values determined by the user.
For functions, parameters are enclosed within parentheses and separated by commas, such as

EXTRACT$(A$,START$,STOP$).
Numeric parameters are written as a name, while string parameters are written as a name followed
by a dollar sign.

Parameters If a command has parameters that make a command or function more specific, they
are listed under this heading. Still using the AUTONUM example, the  parameter is defined as:
 = number used to start the auto-numbering sequence

Return Value (functions only)
The return value is the result of evaluating the function or expression.

Example When a command is best clarified in a programming context, an example of the ZBI
code is provided. Text indicating parameters, exact code to be entered, or data returned from the
host is printed in the Courier font to be easily recognizable.
Example: An example of PRINT code is:

10 PRINT "HELLO WORLD"
RUN
HELLO WORLD
Comments This section is reserved for notes that are of value to a programmer, warnings of
potential command interactions, or command-specific information that should be taken into
consideration. An example comment could be: This is a program command and must be preceded
by a line number.

Function Rules
Functions built into this interpreter can be used in expressions only. The function names are not
case sensitive.
If input parameters exist, they are enclosed in parentheses. If no parameters exist, no parentheses
are used.
Variables referenced in the functions could be substituted by functions or expressions of the same
type. If the function name ends with a $, it returns a string value. Otherwise, it returns a numeric
value.

Section Organization
The sections in this guide are arranged based on programming topics. A brief description of the
sections is listed below.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Editing Commands

Editing Commands This section describes the commands which are used to manipulate the
interpreter and enter programs.
Running and Debugging Outlines the control commands used to run and debug programs.
Base Types and Expressions Fundamental structure for manipulating strings and
computing numeric and boolean values.
Control and Flow Commands to conditionally execute code and control the flow of the
program

Input and Output Outlines how to communicate with the physical ports, internal ports, and
network.

File System Shows how programs and formats can be saved and recalled
Comma Separated Values Identifies how to load and store comma separated data
Events Explains how to capture and trigger internal events in the printer
Systems Contains miscellaneous systems interface functions
String Functions Handles string manipulation
Math Functions Handles mathematical calculations
Array Functions Describes how to search, resize, and query arrays
Time and Date Functions Functions to access the real time clock option
Set/Get/Do Interface Functions to directly interface with the Set/Get/Do system
Example Programs More examples to give a head start in creating your applications

Writing ZBI Programs
There are two main ways to develop ZBI programs. The preferred method is to use the
ZBI-Developer application. ZBI-Developer allows you to create and test programs before a printer is
even turned on. In addition, many features of this program allow for quicker program creation and
more meaningful debugging. ZBI-Developer can be downloaded from the Zebra web site.
An alternate method for developing a program is through a direct connection to the printer using a
terminal emulation program.

Editing Commands
This section details the Editing Commands. This section describes the commands which are used to
manipulate the interpreter and enter programs. These commands are used while controlling the ZBI
environment from a console connection. Here is a quick list of these commands:

NEW – Clears out the program and variables currently in memory
REM and ! – Comment commands
1/31/18

Programming Guide

P1099958-001

431

432

ZBI Commands
Editing Commands

LIST – Lists the program currently in memory
AUTONUM – Automatically generates the next line number
RENUM – Renumbers the program currently in memory
ECHO – Controls whether characters received on the console are echoed back
If you are using ZBI-Developer, the commands that will be most useful are AUTONUM and REM/!.
The following example shows the use of Editing commands from within a console connection.

Preview:

Entered
automatically
when
AUTONUM is
used

NEW
AUTONUM 10,5
10 REM "Hello World" Application
15 PRINT "Hello World" ! comment...
20

A blank line stops
AUTONUM

LIST
10 REM "Hello World" Application
15 PRINT "Hello World"
NEW
LIST
Preview when viewed in ZBI-Developer

AUTONUM 10,5
REM "Hello World" Application
PRINT "Hello World" ! comment...

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Editing Commands

NEW
This command clears the interpreter’s memory, including the line buffer and variables, but not any
open ports. Use this command when creating code to restart the coding process or before resending
a program from a file to the interpreter.

Format NEW
Parameters N/A
Example: This is an example of how to use the NEW command:

10 PRINT "Hello World"
RUN
Hello World
LIST
10 PRINT "Hello World"
NEW
LIST
Comments This is an interactive command that takes effect as soon as it is received by the
printer.

1/31/18

Programming Guide

P1099958-001

433

434

ZBI Commands
Editing Commands

REM
A numbered remark line starts with REM and includes text in any form after it. This line is ignored by
the interpreter.

Format REM 
Parameters The comment string can contain any character and is terminated by a carriage
return.

Example 1: This is an example of how to use the REM command:
10 REM COMMAND LINES 20-100 PRINT A LABEL
Comments Remarks are used for program description and are included as a separate program
line. To append a comment to the end of a program line, use the exclamation mark (!).
A useful method to keep comments in a stored file (but not in the printer) is to always start the REM
line with the number 1. When all of the lines are sent to the printer, only the last REM line will stay
resident in the printer. This will require less RAM for large programs.

Example 2: This is an example of how to re-use the REM command:
1 REM MYPROGRAM COPYRIGHT ME Inc. 2008
1 REM While debugging a port may be left open
5 CLOSE ALL
1 REM Open the ports this program will use
10 OPEN #0: NAME: "SER" ! Restart the console

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Editing Commands

! (EXCLAMATION MARK)
The exclamation mark is the marker for adding comments to the end of numbered programming
lines. Any text following the ! is ignored when the line or command is processed.

Format !
Parameters The comment string can contain any character and is terminated by the carriage
return.
Example: This is an example of how to use the ! (comments) command:

10 LET A=10 ! Indicates number of labels to print
Comments None

1/31/18

Programming Guide

P1099958-001

435

436

ZBI Commands
Editing Commands

LIST
This command lists the program lines currently in memory.

Format
LIST
LIST 
LIST -

Parameters
default = lists all lines in memory
 = line to start listing the program
 = line to stop listing the program. If not specified, only the line at  will print.
Example: This is an example of how to use the LIST command:

1 REM MYPROGRAM COPYRIGHT ME Inc. 2008
1 REM While debugging a port may be left open
5 CLOSE ALL
1 rem Open the ports this program will use
10 OPEN #0: NAME: "SER" ! Restart the console
20 PRINT #0: "Hello World"
LIST
1 REM Open the ports this program will use
5 CLOSE ALL
10 OPEN #0: NAME: "SER" ! Restart the console
20 PRINT #0: "Hello World"
LIST 1
1 REM Open the ports this program will use
LIST 5-10
5 CLOSE ALL
10 OPEN #0: NAME: "SER" ! Restart the console
Comments The output of the LIST command may not match exactly what was entered. It is
based on how the program lines are stored in memory. Notice that the last comment line the REM is
entered in lower case characters. When it is listed, the REM is displayed in uppercase.
This is an interactive command that takes effect as soon as it is received by the printer.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Editing Commands

AUTONUM
This command automatically generates sequential program line numbers.

Format AUTONUM ,
Parameters
A = the number used to start the auto-numbering sequence
B = the automatic increment between the new line numbers
Example: This example shows specifying the starting line number in the increment between new
line number. Type the following at the prompt:

AUTONUM 10,5
SUB START
PRINT "HELLO WORLD"
GOTO START
LIST
Will produce:

AUTONUM 10,5
10 SUB START
15 PRINT "HELLO WORLD"
20 GOTO START
The three lines are automatically started with the AUTONUM parameters; in this case, the first line
starts with 10 and each subsequent line increments by 5.

Comments This feature is disabled by overwriting the current line number and entering the
desired interactive mode commands, or leaving the line blank.
Use of the SUB command allows for GOTO and GOSUB statements that do not require line numbers in
your program.
This is an interactive command that takes effect as soon as it is received by the printer.

1/31/18

Programming Guide

P1099958-001

437

438

ZBI Commands
Editing Commands

RENUM
This command renumbers the lines of the program being edited. RENUM can reorganize code when
line numbers become over- or under-spaced. The line references following GOTO and GOSUB
statements are renumbered if they are constant numeric values. Renumbering does not occur if the
line numbers are outside of the range limits of 1 to 10000.

Format RENUM ,
Parameters
 = the number to start the renumbering sequence
 = the automatic increment between the new line numbers
Example: This is an example of how to use the RENUM command:

LIST
13 LET A=6
15 LET B=10
17 GOTO 13
RENUM 10,5
LIST
10 LET A=6
15 LET B=10
20 GOTO 10

Note • The target of the GOTO command changes from 13 to 10 to reflect the renumbering.
Comments This is an interactive command that takes effect as soon as it is received by the
printer.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Running and Debugging Commands

ECHO
When Console Mode is enabled, this command controls whether the printer echoes the characters
back to the communications port. If ECHO ON is entered, keystroke results return to the screen. If
ECHO OFF is entered, keystroke results do not return to the screen.

Format
ECHO ON
ECHO OFF

Parameters
 = toggles the ECHO command on or off

Example N/A
Comments This can be an interactive command that takes effect as soon as it is received by the
printer, or a program command that is preceded by a line number.

Running and Debugging Commands
The following commands were written before the development of the ZBI-Developer application.
With that application, and when using ZBI version 1, the following commands are essentially
obsolete. However, for those who started developing ZBI applications before ZBI-Developer, the
following reference will be helpful.

RUN – Starts executing the program currently in memory at the first line of the program
CTRL-C Sends an end-of-transmission character, ETX , to the console to terminate the ZBI
program currently running.
RESTART – Starts executing the program currently in memory where it was last stopped
STEP – Executes one line of the program in memory where it was last stopped
DEBUG – This mode controls whether or not the TRACE and BREAK commands are processed
TRACE – Shows which lines have been executed and which variables have been changed
BREAK – Stops the currently running program
ADDBREAK – Adds a break to an existing line
DELBREAK – Deletes an existing break
ZPL Terminates and exits the ZBI environment.

1/31/18

Programming Guide

P1099958-001

439

440

ZBI Commands
Running and Debugging Commands
This example shows many of the Running and Debug Commands in practice.
Example: Preview:

ZBI Program

10 PRINT "TEN"
20 PRINT "TWENTY"
30 PRINT "THIRTY"
RUN
Runs the whole program
TEN
TWENTY
THIRTY
STEP
TEN
RESTART
TWENTY
THIRTY

Runs one line

Completes running the program
where STEP left off

Adds a breakpoint
on line 20

ADDBREAK 20
RUN
TEN
 on line: 20

Turn Trace On

P1099958-001

DEBUG ON
TRACE ON
RESTART
 20
TWENTY
 30
THIRTY

Programming Guide

1/31/18

ZBI Commands
Running and Debugging Commands

RUN
This command executes the current program, starting with the lowest line number. The interpreter
will continue to execute the program lines in order unless a control statement directs the flow to a
different point. When a higher line number does not exist or the END command is processed, the
RUN command will stop.

Format RUN
Parameters N/A
Example: This is an example of how to use the RUN command:

10 PRINT "ZBI"
20 PRINT "Programming"
RUN
ZBI
Programming
15 END
RUN
ZBI
Comments Ports that are open when the application is activated will remain open after the
application has terminated. Variables also remain after the application has terminated.
To execute programs when the printer is powered on, use the ^JI command in the Autoexec.zpl file.
This is an interactive command that takes effect as soon as it is received by the printer.

1/31/18

Programming Guide

P1099958-001

441

442

ZBI Commands
Running and Debugging Commands

CTRL-C
Sending an end-of-transmission character, ETX (3 in hex), to the console (port 0) terminates the ZBI
program currently running.

Format N/A
Parameters N/A
Example N/A
Comments In most terminal programs, you terminate the program using the Ctrl-C key
sequence. Another method is to store an ETX character in a file and have the terminal program send
the file to the console port.

Note • It is not recommended to use RESTART after using a CTRL-C because a command may
have been prematurely interrupted. Restarting will have an undefined result.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Running and Debugging Commands

RESTART
If a program was halted by a break point or the BREAK command, the RESTART command can be
used to reactivate the program at the point it stopped. RESTART functions similar to RUN, except the
program attempts to restart from the point where it was last terminated. It also works in conjunction
with the STEP command, picking up where the STEP command ended.

Format RESTART
Parameters N/A
Example: An example of the RESTART command:

10 PRINT "TEN"
20 PRINT "TWENTY"
30 PRINT "THIRTY"
RUN
TEN
TWENTY
THIRTY
STEP
TEN
RESTART
TWENTY
THIRTY
ADDBREAK 20
RUN
TEN
 on line: 20
DEBUG ON
TRACE ON
RESTART
 20
TWENTY
 30
THIRTY
Comments If the program has not been run or has finished, RESTART runs the program from the
beginning.
This is an interactive command that takes effect as soon as it is received by the printer.

1/31/18

Programming Guide

P1099958-001

443

444

ZBI Commands
Running and Debugging Commands

STEP
If a program was stopped by a BREAK command, STEP attempts to execute the program one line
from where it last ended. If the program has not been run or has been completed, this executes the
lowest numbered line.

Format STEP
Parameters N/A
Example: This is an example of how to use the STEP command:

10 PRINT "Hello World"
20 Print "TWENTY"
STEP
Hello World
STEP
TWENTY
Comments This is an interactive command that takes effect as soon as it is received by the
printer.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Running and Debugging Commands

DEBUG
DEBUG enables and disables the TRACE and BREAK commands.

Format
DEBUG ON
DEBUG OFF

Parameters
ON = turns the debug mode on enabling the TRACE and BREAK commands to be
processed.
OFF = turns the debug mode off. This disables the TRACE mode and causes BREAK
commands to be ignored.
Example: See TRACE on page 446 and BREAK on page 447.

Comments This command has no effect on the processing of break points in ZBI-Developer. It is
recommended that you avoid using the DEBUG command when writing programs in the
ZBI-Developer environment, instead use the Debug capabilities of ZBI-Developer.

1/31/18

Programming Guide

P1099958-001

445

446

ZBI Commands
Running and Debugging Commands

TRACE
This command enables you to debug an application by outputting the executed line numbers and
changed variables to the console.

Format
TRACE ON
TRACE OFF

Parameters
 = controls whether TRACE is active (ON) or disabled (OFF).
If DEBUG is activated and the TRACE command is on, trace details are displayed. When

any variables are changed, the new value displays as follows:
 Variable = New Value

Every line processed has its line number printed as follows:
 Line Number

Example: An example of TRACE command in use:

10 LET A=5
20 GOTO 40
30 PRINT "Error"
40 PRINT A
DEBUG ON
TRACE ON
RUN
 10
 A=5
 20
 40
5
Comments This can be an interactive command that takes effect as soon as it is received by the
printer, or a program command that is preceded by a line number.
It is recommended that you avoid using the TRACE command when writing programs in the
ZBI-Developer environment, instead use the Debug capabilities of ZBI-Developer.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Running and Debugging Commands

BREAK
This command allows you to stop the program when the program reaches this line.

Format BREAK
Parameters N/A
Example: An example of BREAK command in use:

10 LET A=5
20 BREAK
30 PRINT A
DEBUG ON
TRACE ON
RUN
 10
 A=5
 20

Comments This command is available only when the DEBUG function has been activated. When
DEBUG is on, BREAK halts processing. RUN starts the program from the beginning. RESTART allows
the program to continue from where it left off.
When using ZBI-Developer, this command will interfere with the debugging operations built into the
application.
This is a program command that must be preceded by a line number.

1/31/18

Programming Guide

P1099958-001

447

448

ZBI Commands
Running and Debugging Commands

ADDBREAK
Description This command allows you to stop the program when the program reaches a
specified line.
Format ADDBREAK 
Parameters
A = the line number to break on. If the number specified is not in the program, the
program will not break.
Example: An example of the ADDBREAK command.

10 LET A=5
20 PRINT A
ADDBREAK 20
RUN
 ON LINE:20
RESTART
5
Comments This command is available only when the DEBUG function has been activated.
When DEBUG is on, BREAK halts processing. RUN starts the program from the beginning.
RESTART allows the program to continue from where it left off.
This is the command used internally by ZBI-Developer when the user right-clicks over a program line
and adds a Breakpoint via the "Toggle Breakpoint" selection.
It is the recommended method for setting breakpoints in ZBI.
A maximum of 16 breakpoints can be set in an application.
This is an interactive command that takes effect as soon as it is received by the printer.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Running and Debugging Commands

DELBREAK
This command allows you to remove existing breakpoints.

Format DELBREAK 
Parameters A = the line number from which to remove the break. If 0 is specified, all break points
will be removed. If the number specified is not a breakpoint, the command will have no effect.
Example: An example of the DELBREAK command:

10 LET A=5
20 PRINT A
ADDBREAK 20
DEBUG ON
TRACE ON
RUN
 10
 A=5
 ON LINE:20
RESTART
 20
5
DELBREAK 20
RUN
 10
 A=5
 20
5
Comments This command is available only when the DEBUG function has been activated.
When DEBUG is on, BREAK halts processing, RUN starts the program from the beginning, and
RESTART allows the program to continue where it left off.
This is the command used internally by ZBI-Developer when the user right-clicks over a program line
and removes a Breakpoint via the "Toggle Breakpoint" selection.
A maximum of 16 breakpoints can be set in an application.
This is an interactive command that takes effect as soon as it is received by the printer.

1/31/18

Programming Guide

P1099958-001

449

450

ZBI Commands
Base Types and Expressions

ZPL
This command terminates and exits the ZBI environment.

Format ZPL
Parameters N/A
Example: An example of the ZPL command.

ZPL
ZBI TERMINATED
Comments This is an interactive command that takes effect as soon as it is received by the
printer.

Base Types and Expressions
There are two base types in the ZBI language. These types are Integers and Strings. Integers are
whole numbers that contain no fractional part. The range of values for integers is:

-2,147,483,648 to +2,147,483,647
Strings are character arrays. The string length is only limited by the amount of memory in the system
(version 2.0 and higher). Each character can have a value between 0 and 255 (version 2.0 and
higher).
The use of control characters (0-31) may be difficult to debug based on the handling of control
characters in different communications programs. In addition the ETX (3) will terminate a ZBI
application when it is received on the console port. Use the CHR$ function when control characters
must be placed into strings.

Note • In ZBI version 1.4 and lower, there was a string length limit of 255 characters.
This section is organized as follows:
• Variable Names
• Variable Declarations
• Constants
• Arrays
• Assignment
• Numeric Expressions
• String Concatenation (&)
• Sub-strings
• Boolean Expressions
• Combined Boolean Expressions

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Base Types and Expressions

Variable Names
To distinguish strings from integers, string variable names must end in a $. Variable names must
start with a letter and can include any sequence of letters, digits, and underscores. Function and
command names must not be used as a variable name. Variable names are not case sensitive and
are converted to uppercase by the interpreter.
A common mistake is to use a command or function name as a variable. To avoid using these
reserved words, ZBI-Developer can be a useful resource. Reserved words are highlighted making it
easier to spot this occurrence and thus, saving debugging time.

Valid variable names:
I, J, K, VARNAME, VARSTR$, MYSTR$,MY_STR9$

Invalid Names:
STR$ = Reserved word
ORD = Reserved word
VAL = Reserved word
W# = Invalid character (# )
9THSTR = Variable can not start with a number

Variable Declarations
ZBI will allow storage of up to 255 variables. If more variables are needed, consider using arrays to
store data. The base array will take up one of the 255 variable slots, but it can be declared to allow
for many indices.
Variables can be declared explicitly or implicitly. If a variable has not been used before, it will be
declared when used. The default value for an integer will be zero and the default value of a string will
be an empty string.
Explicit:

DECLARE NUMERIC 
DECLARE STRING 

If the variable existed before the DECLARE statement, it will be defaulted.
Implicit:

LET  = NUMERIC EXPRESSION
LET  = STRING EXPRESSION
The Interpreter is limited to 255 variables. If more variables are required, consider using arrays.

Constants
Integers are represented simply by numbers, such as 5, -10, 10000. Do not use commas in integer
constants. Strings are enclosed by quotes. If a quote is required in the string, use double quotes,
such as “Look here->””<-“ would result in the string – Look here->”<-.

1/31/18

Programming Guide

P1099958-001

451

452

ZBI Commands
Base Types and Expressions

Arrays
An array is a collection of string or integer values used by a program. Array indices are accessed
through parentheses. Array indices start at 1 and end at the length of an array (for example,
MyArray(3) returns the value in the third location of the variable array). One- and two-dimensional
arrays are allowed. Two-dimensional arrays are referenced with two indices in parentheses,
separated by a comma.
Arrays must be allocated through the use of the DECLARE command. Arrays can be re-dimensioned
by using DECLARE, however, this will replace the original array.
Array size is limited only by the size of the memory available.

Format
DECLARE STRING ()
DECLARE STRING (,)
DECLARE NUMERIC ()
DECLARE NUMERIC (,)

Parameters
 = number of entries in a single dimension array
 = number of rows in a two dimensional array
 = number of columns in a two dimensional array
Example: An example of ARRAY code is:

10 DECLARE STRING INARRAY$(3)
20 FOR I = 1 TO 3
30 PRINT "Name "; I; ": ";
40 INPUT INARRAY$(I)
50 NEXT I
60 PRINT INARRAY$(1); ", "; INARRAY$(2); ", and "; INARRAY$(3);
70 PRINT " went to the park"
RUN
Name 1: Jim
Name 2: Jose
Name 3: Jack
Jim, Jose, and Jack went to the park
Comments If you attempt to access an array outside of its allocated bounds, an error will occur.

Assignment
All lines must start with a command. In order to assign a value to a variable, use the LET command.
Multiple variables can be placed before the =. The variable types must match the expression type.
The right side of the assignment is always calculated completely before the assignment is made.
This allows a variable to be the target and source of the assignment.
When a value is assigned to a string variable with a sub-string qualifier, it replaces the value of the
sub-string qualifier. The length of the value of the string variable may change as a result of this
replacement.
P1099958-001

Programming Guide

1/31/18

ZBI Commands
Base Types and Expressions

Example: An ASSIGNMENT example:

10 LET A=5
20 LET B$="HELLO"
30 LET B$(5:5)=B$

1/31/18

Programming Guide

P1099958-001

453

454

ZBI Commands
Base Types and Expressions

LET
The LET command is used to assign value to a specific variable. The expression is evaluated and
assigned to each variable in the variable list. See Assignment on page 452.

Format
LET  [,]* = 

The variable types must match the expression type or an error message will be displayed.
Error: Poorly formed expression.

When a value is assigned to a string variable with a sub-string qualifier, it replaces the
value of the sub-string qualifier. The length of the value of the string variable may change
as a result of this replacement.
Parameters N/A
Example: This is an example of how to use the LET command:

10 LET A$= "1234"
15 LET A$(2:3)= "55" ! A$ NOW = 1554
20 LET A$(2:3)= "" ! A$ NOW = 14
10 LET A$= "1234"
15 LET A$(2:3)= A$(1:2) ! A$ NOW = 1124
10 LET A$= "1234"
15 LET A$(2:1)= "5" ! A$ NOW = 15234
Comments This can be an interactive command that takes effect as soon as it is received by the
printer, or a program command that is preceded by a line number.

Numeric Expressions
A base numerical expression can be either a constant, variable, or another numerical expression
enclosed in parentheses. The five types used (addition, subtraction, multiplication, division, and
exponentiation) are listed below. When evaluating an expression exceeding the maximum or
minimum values at any point creates an undefined result. (maximum value: 2,147,487,647;
minimum value: -2,147,483,648)
Floating point is not supported.
When using division, the number is always rounded down. For example, 5/2=2. Use MOD to
determine the remainder.

Format
1. + (addition) Addition expressions use this format:

+

5+2 result = 7
VAL ("25") +2 result =27

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Base Types and Expressions

2. – (subtraction) Subtraction expressions use this format:

-

5-2 result = 3
VAL ("25") -2 result =23
3. * (multiplication) Multiplication expressions use this format:

*

5*2 result = 10
VAL ("25") *2 result =50
4. / (division) Division expressions use this format:

/

5/2 result = 2
VAL ("25") /2 result =12
5. ^ (exponentiation) Exponentiation expressions use this format:

^

5^2 result = 25
VAL ("25") ^2 result =625

Order of Precedence
In mathematics, the order of precedence describes the sequence that items in an expression are
processed. All expressions have a predefined order of precedence.
The order of precedence is listed below:
Functions
Parenthetical Expressions ()
^
* and /
+ and The * and / have the same precedence, and the + and - have the same precedence. Items with the
same order of precedence are processed from left to right.
For example, this expression 5+(8+2)/5 is processed as 8+2=10, followed by 10/5=2, then 5+2 to
give a result of 7.
Functions and parenthetical expressions always have the highest order of precedence, meaning
that they are processed first.

1/31/18

Programming Guide

P1099958-001

455

456

ZBI Commands
Base Types and Expressions

String Concatenation (&)
The basic string expression may be either a constant or a variable, and concatenation (&) is
supported. Using the concatenation operator (&) adds the second string to the first string.

 & 
Example: This is an example of how to use the STRING

CONCATENATION (&) command:

10 LET A$= "ZBI-"
20 LET B$= "Programming"
30 LET C$= A$ & B$
40 PRINT C$
RUN
ZBI-Programming

Sub-strings
Using a sub-string operator on a string allows a specific portion of the string to be accessed. This
portion may be the target of an assignment operation or a reference to a portion of the string. To
determine the coordinates of the string portion to be used, count the characters from the beginning
to the end of the string, including spaces.

Format
LET (:)=
LET  = (:)

Parameters
 = the position of the first character in the desired string
 = the position of the last character in the desired string.
 = base string variable
If the A parameter is less than 1, it is automatically assigned a value of 1. Because the
string is calculated starting with 1, the A parameter cannot be less than 1.
If B is greater than the length of the string, it is replaced with the length of the string.
If A is greater than B, a NULL string (""), which points to the location of the smaller of A
or the end of the string, is returned. This is used when adding a string in the middle of
another string without removing a character.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Base Types and Expressions

Example 1: This is an example of a sub-string reference:
LET A$="Zebra Quality Printers"
LET B$=A$(1:13)
PRINT B$
Zebra Quality
This is an example of a sub-string assignment.

LET A$= "1234"
LET A$(2:3)= "55" ! A$ NOW = 1554
LET A$(2:3)= "" ! A$ NOW = 14
LET A$= "1234"
LET A$(2:3)= A$(1:2) ! A$ NOW = 1124
LET A$= "1234"
LET A$(2:1)= "5" ! A$ NOW = 15234
The best way to think of assignment to a sub-string is as follows: an assignment is like selecting a
word, and pasting over the selection with the new string.

Boolean Expressions
A Boolean expression holds 0 (zero) as false and non-zero as true.

Formats
  
  
NOT()

Parameters
 = a string variable, string constant or any combination with

concatenation
 = any mathematical operation

Comments A numeric expression cannot be compared to a string expression.
Numeric expressions can substitute a Boolean expression where a value of 0 (zero) represents false
and a non-zero value represents true.
Base Boolean expressions:

1. < (less than)

1/31/18

Expression

Result

1< 2

true

2<2

false

2<1

false

Programming Guide

P1099958-001

457

458

ZBI Commands
Base Types and Expressions

2. <= (less than or equal to)

Expression

Result

1<=2

true

2<=2

true

2<=1

false

3. > (greater than)

Expression

Result

1> 2

false

2>2

false

2>1

true

4. >= (greater than or equal to)

Expression

Result

1>=2

false

2>=2

true

2>=1

true

5. = (equal to)

Expression

Result

1=2

false

2=2

true

"A"="AA"

false

"A"="A"

true

6. <> (not equal to)

Expression

Result

1<>2

true

2<>2

false

"A"<>"AA"

true

"A"<>"A"

false

Combined Boolean Expressions
AND, OR, and NOT can be used in conjunction with base Boolean expressions to recreate expanded
Boolean expressions.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Control and Flow

1. NOT — Negate the target expression.

Expression

Result

NOT 1=2

true

NOT 1=1

false

2. AND — Both expressions must be true for a true result.

Expression

Result

1=2 AND 1=2

false

2=2 AND 1=2

false

1=2 AND 2=2

false

2=2 AND 2=2

true

3. OR — If either expression is true, the result will be true.

Expression

Result

1=2 OR 1=2

false

1=2 OR 2=2

true

2=2 OR 1=2

true

2=2 OR 2=2

true

Order of Precedence
The order of precedence is listed below:
Expressions and Functions
Parenthetical expressions ()
<, <=, <>, =, =>, >
NOT, AND, OR

Control and Flow
This section outlines the commands to conditionally execute code and control the flow of the
program. Here is a quick list of these commands:

IF Statements Executes or skips a sequence of statements, depending on the value of a
Boolean expression.
DO Loops Repeats instructions based on the results of a comparison.
FOR Loops A control flow statement which allows code to be executed iteratively.
GOTO/GOSUB Causes an unconditional jump or transfer of control from one point in a program
to another.

1/31/18

Programming Guide

P1099958-001

459

460

ZBI Commands
Control and Flow

SUB Allows you to “substitute” names instead of actual line numbers as the target of GOSUBs and
GOTOs.

EXIT Used to exit the DO and FOR loops.
END Terminates any program currently running.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Control and Flow

IF Statements
If the value of the  in an IF statement is true and a program line follows
the keyword THEN, this program line is executed. If the value of the Boolean expression is false and
a program line follows the keyword ELSE, this program line is executed. If ELSE is not present, then
execution continues in sequence, with the line following the END IF statement.
Nesting of blocks is permitted, subject to the same nesting constraints as DO-LOOPs (no
overlapping blocks).

ELSE IF statements are treated as an ELSE line followed by an IF line, with the exception that the
ELSE IF shares the END IF line of the original IF statement.

Format
IF  THEN
~~BODY~~
[ELSE IF  THEN
~~BODY~~]*
[ELSE
~~BODY~~]
END IF

Parameters N/A
Example: This is an example of how to use the IF statement command:

10
20
30
40
50
60
70
80
90

1/31/18

IF A$="0" THEN
PRINT "ZBI IS FUN"
ELSE IF A$="1" THEN
PRINT "ZBI IS EASY"
ELSE IF TIME=1 THEN
PRINT "It is one second past midnight"
ELSE
PRINT "X=0"
END IF

Programming Guide

P1099958-001

461

462

ZBI Commands
Control and Flow

DO Loops
Processing of the loop is controlled by a  expression located on the DO or LOOP
line.
Processing a WHILE statement is the same on either the DO or LOOP lines. The Boolean expression
is evaluated and if the statement is true, the LOOP continues at the line after the DO statement.
Otherwise, the line after the corresponding LOOP is the next line to be processed.
Processing an UNTIL statement is the same on either the DO or LOOP lines. The Boolean
expression is evaluated and if the statement is false, the LOOP continues at the line after the DO
statement. Otherwise, the line after the corresponding LOOP is the next to be processed.
If  is on the LOOP line, the BODY of the loop is executed before the Boolean
expression is evaluated.
If neither the DO or LOOP line has a  statement, the loop continues indefinitely.
Some notes about DO-LOOPs:
• can be nested
• cannot overlap
• have two formats

Format
DO [ ]
~~BODY~~
LOOP [ ]
Example: This is an example of how to use the DO-LOOP command with the conditional on the DO
line:

10 DO WHILE A$="70"
20 INPUT A$
30 LOOP

Example: This is an example of how to use the DO UNTIL LOOP command with conditional on the
LOOP line:

10 DO
20 INPUT A$
30 LOOP UNTIL A$="EXIT"
Comments This is a program command that is preceded by a line number.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Control and Flow

FOR Loops
FOR loops are an easy way to iterate through a range of values and run a body of code for each
value iterated.

Format
FOR  =  TO  [STEP ]
~~BODY~~
NEXT 

Parameters
 = indicates a numeric variable is used.  increments each time through the
FOR-LOOP.
 = the value assigned to  the first time through the loop
 = the last value through the loop
 = (Optional) the amount  increments each time through the loop
Values of I for the following situations:
Result

Statement

FOR I=1 TO 10

{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

FOR I=10 TO 1

{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}

FOR I=1 TO 10 STEP 2

{1, 3, 5, 7, 9}

FOR I=10 TO 1 STEP 2

{10, 8, 6, 4, 2}

FOR I=10 TO 1 STEP 2

{ } FOR LOOP skipped

Example: This is an example of how to use the FOR LOOP command:

10 FOR X=1 TO 10 STEP 1
20 PRINT X; ":ZBI IS FUN"
30 NEXT X
Comments FOR loops can be nested but cannot overlap. Variables cannot be reused by the
nested loops.

1/31/18

Programming Guide

P1099958-001

463

464

ZBI Commands
Control and Flow

GOTO/GOSUB
GOSUB is followed by a line number. The program will attempt to process the line the GOSUB
command points to rather than the next line of the program. Upon executing the GOSUB statement,
the interpreter continues running at the line number specified following GOSUB. If the line number
referenced does not exist, an error will occur.
Before executing the next line, the GOSUB command stores the line number of the GOSUB line. When
the RETURN statement is called, the program moves back to the next line following the GOSUB.
Executing a RETURN statement without a corresponding GOSUB statement causes an error.

GOSUB statements can be nested.
GOTO works the same way as GOSUB except that no return address will be stored.

Format
GOSUB 
RETURN

GOTO 
Parameters  = the program location executed immediately after the GOTO or GOSUB.
Example: This is an example of how to use the GOSUB command:

10 PRINT "Call Subroutine"
20 GOSUB 1000
30 PRINT "Returned from Subroutine"
40 END
1000 PRINT "In Subroutine"
1010 RETURN
Example: This is an example of how to use the GOTO command:

10 PRINT "Prepare to Jump!"
20 GOTO 1000
30 PRINT "Jump Missed..."
1000 PRINT "Jump Successful"
1010 END
Comments These are program commands and must be preceded by line numbers.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Control and Flow

SUB
This command allows you to use names instead of actual line numbers as the target of GOSUBs
and GOTOs. AUTONUM can be used at the beginning of a file and there is no need to compute the
line number where the jump will go.

Format 10 SUB 
Parameters  = the integer variable to use as a target for the GOTO/GOSUB
Example: This is an example of how to use the SUB command:

AUTONUM 1,1
GOSUB INITCOMM
DO
GOSUB GETINPUT
GOSUB PROCESSINPUT
LOOP
SUB INITCOMM
OPEN #1:NAME "SER"
RETURN
SUB GETINPUT
INPUT #1: A$
RETURN
SUB PROCESSINPUT
PRINT A$
RETURN
Comments  is a numeric variable. If this variable is changed in the program, any
GOSUB/GOTO to this variable may fail.

1/31/18

Programming Guide

P1099958-001

465

466

ZBI Commands
Control and Flow

EXIT
This command is used to exit the DO and FOR loops.

Format
EXIT DO
EXIT FOR

Parameters The specified loop type is exited. For the DO command, the program will continue
execution on the line following the next LOOP. Likewise for the FOR command, the program will
continue on the line after the next NEXT command.

Example N/A
Comments This is a program command that is preceded by a line number. To be explicit and
reduce errors, it is recommended to use GOTO instead of EXIT.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Input and Output

END
The END command terminates any program currently running. When the END command is received,
the interpreter returns to interpreting commands (>).

Format END
Parameters N/A
Example: This is an example of how to use the END command:

10 PRINT "THIS PROGRAM WILL TERMINATE"
20 PRINT "WHEN THE END COMMAND IS RECEIVED"
30 END
40 PRINT "THIS SHOULD NOT PRINT"
RUN
THIS PROGRAM WILL TERMINATE
WHEN THE END COMMAND IS RECEIVED
Comments This is a program command and is preceded by a line number.

Input and Output
This section oulines how to communicate with physical ports, internal ports, and the network.
ZBI allows access to the physical and network connections in the printer. Most ports are, by default,
connected to the ZPL processor. When a port is opened in ZBI, the port will be disconnected from
ZPL and connected into the interpreter. Depending on the type of connection, there are two methods
you may use to start the connection. For the static connections, the OPEN command should be used.
These are the connections that you open when starting your program and leave open for the
duration of your program. For dynamic connections, servers and clients are set up following the
"Sockets" model. On servers, the actual connections are started upon successful calls to ACCEPT.
Below are the available connections that can be made and the preferred accessors.

Available Ports
Port/Connection

ZBI
Name

Preferred Access Commands/Functions

Serial

"SER"

OPEN, CLOSE

Parallel

"PAR"

OPEN, CLOSE

USB

"USB"

OPEN, CLOSE

ZPL parser

"ZPL"

OPEN, CLOSE

TCP Server

"TCP",
"TCPX"

SERVERSOCKET, SERVERCLOSE, ACCEPT, CLOSE

TCP Client

"TCP"

CLIENTSOCKET, CLOSE

UDP Server

"UDP"

SERVERSOCKET, SERVERCLOSE, ACCEPT, CLOSE

Note: TCPx will not work on PS2 or PS100 print servers.

1/31/18

Programming Guide

P1099958-001

467

468

ZBI Commands
Input and Output

Port/Connection

ZBI
Name

Preferred Access Commands/Functions

UDP Client

"UDP"

CLIENTSOCKET, CLOSE

Email Sender

"EML"

OPEN, CLOSE

Bluetooth

"BLU"

OPEN, CLOSE

Note: TCPx will not work on PS2 or PS100 print servers.

Creating Connections
Here is a quick list of the commands in this section:

OPEN Opens a port for transmitting and receiving data.
CLOSE Closes specific ports that are in use.
DATAREADY Determines if there is data received on a specified port.
SERVERSOCKET Opens a listening socket for incoming UDP packets or TCP connections.
SERVERCLOSE Closes a listening server socket.
CLIENTSOCKET Creates an outgoing TCP connection or sets up UDP transmissions.
ACCEPT Accepts incoming TCP or UDP connections and assigns a channel for the connection.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Input and Output

OPEN
This command is used to open a port for transmitting and receiving data.

Format OPEN #: NAME 
Parameters
 = a number to use as a handle to the port for all future communications

Values: 0 to 9
Default: a port must be specified
 = port name to open. See Available Ports on page 467.
Example: This is an example of how to use the OPEN command:

10 OPEN #1: NAME "ZPL"
The port being opened no longer allows data to pass directly into its buffer, it disconnects, and the
interpreter now controls the data flow.
Data already in the buffer stays in the buffer.

Comments This can be an interactive command that takes effect as soon as it is received by the
printer, or a program command that is preceded by a line number.

1/31/18

Programming Guide

P1099958-001

469

470

ZBI Commands
Input and Output

CLOSE
This command is implemented to close specific ports that are in use. If a port is open on a channel
and the CLOSE command is entered, the port closes and returns to communicating with the ZPL
buffer.

Format
CLOSE #
CLOSE ALL

Parameters
 = Numeric value of port to close
Values: 0 through 9
All = closes all open ports and network connections
Note • CLOSE ALL will close the console.
Example: This example shows the closing of channel 1:

10 CLOSE #1
Comments This can be an interactive command that takes effect as soon as it is received by the
printer, or a program command that is preceded by a line number.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Input and Output

DATAREADY
This function is used to determine if there is data received on a specified port.

Format DATAREADY (A)
Parameters A = the port to check
Returns 1 if there is data, 0 if there is no data.
Example: This is an example of how to check if there is a data on a port:

10 PRINT DATAREADY(0)
RUN
The result, assuming no data is waiting, is:

0
Comments If this command follows the INPUT command, it may return 1 if the line received was
ended with a CRLF. In this case, INBYTE can be used to take the LF out of the buffer.

1/31/18

Programming Guide

P1099958-001

471

472

ZBI Commands
Input and Output

SERVERSOCKET
This function opens a listening socket for incoming UDP packets or TCP connections. It must be
used in conjunction with the ACCEPT function.

Format SERVERSOCKET (TYPE$,PORT)
Parameters
TYPE$ = listens for any of the following communication protocols:
"TCP" = TCP – PORT parameter is ignored. The current port will be used.
"TCPX" = TCP – any open port
"UDP" = UDP – any open port
Returns NUMERIC = returns the handle of the server upon success.
Example: See the examples for TCP Server on page 485 and UDP Server on page 487.

Comments When using TCPX, care needs to be taken not to use a port that is already open on
the printer. No error message will be returned until the ACCEPT function is called.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Input and Output

SERVERCLOSE
This function closes a listening server socket created by SERVERSOCKET.

Format SERVERCLOSE(SOCKET)
Parameters
SOCKET = the socket handle returned from a successful SERVERSOCKET invocation.
Returns Returns a 0 if the socket was already closed or a 1 if the socket was closed successfully.
Example: This example shows how to close a listening server socket.

10 LET SERVER_HANDLE = SERVERSOCKET("TCPX", 19100)
20 LET SCERR = SERVERCLOSE(SERVER_HANDLE)

1/31/18

Programming Guide

P1099958-001

473

474

ZBI Commands
Input and Output

CLIENTSOCKET
This function creates an outgoing TCP connection or sets up UDP transmissions. Once set up for
UDP, packets can be sent by printing to the socket. Packets are sent when the size limit is met or a
EOT character is written.

Format CLIENTSOCKET (TYPE$, IPADDR$, PORT)
Parameters
TYPE$ = set to "UDP" or "TCP".
IPADDR$ = connects to this address.
PORT = connects to this IP port.
Returns The port number assigned to the connection.
Example: See the examples for TCP Server on page 485 and UDP Server on page 487.

Comments Multiple communications connections can be made up to the maximum of 10. Each
protocol may have a different limit based on the support of the print server used. Test the worst case
situation based on your application’s needs or use ONERROR to recover from failed connection
attempts.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Input and Output

ACCEPT
This function will accept incoming TCP or UDP connections and assign a channel for the
connection. SERVERSOCKET must be used to set up the listening socket before ACCEPT can be
used.

Format ACCEPT (SERVER, CLIENT_INFO$)
Parameters
SERVER = the handle returned by the SERVERSOCKET call.
CLIENT_INFO$ = string variable will have the connecting client’s IP address and port
separated by a space when using UDP.
Returns The channel number to use to communicate with the client.
Example: See the examples for TCP Server on page 485 and UDP Server on page 487.

Comments It is best to poll this function at regular intervals. When there is no connection waiting,
this function will trigger an error. Follow this function with the ON ERROR command to divert to a
section of code that handles an unsuccessful connection.

ACCEPT can be called before closing a previous connection. This allows for processing multiple
incoming streams of data. There are limits on the number of simultaneous incoming connections
based on the print server model on the printer.
Connection closure can be detected when any input or output command to the port triggers an error.
These commands should be followed by an ON ERROR statement to send the program into a
recovery state and to shutdown the connection cleanly.

Reading and Writing
This manual has detailed various functions to read and write to all of the ports. The following section
gives an overview of the commands, functions, and when each should be used.
To start, it is important to understand the term "blocking". In communications code, a function or
command is "blocking" if it waits for all of the requested data to be received before it returns.

INPUT (blocking) Reads one line into each string specified.
PRINT (blocking) Simple method to write specified expressions out.
OUTBYTE (blocking) Writes one byte out.
INBYTE (blocking) Reads in one byte.
READ (non-blocking) Reads in all available data up to the maximum amount specified.
WRITE (non-blocking) Writes out as much data as possible up to a maximum specified
amount.

SEARCHTO$ (blocking) Reads in data (does not keep) until a search parameter is found.
Non-matching data can be redirected to another port.

1/31/18

Programming Guide

P1099958-001

475

476

ZBI Commands
Input and Output

INPUT
If the variable is numeric and the value entered cannot be converted to a number, it writes as 0. This
operation scans the data from left to right, shifting any number into the variable. It ignores any nonnumeric character except the return character, which terminates the input, or Ctrl-C (^C) which
terminates the program. The variable can be in string or numeric form.

Format
INPUT [:]  [,]*
INPUT [:] [,]*
If the [:] is omitted, the default port, 0, will be used.

Parameters
 = read data from this port. Default = 0.
 = variables to write.

When using multiple variables as targets, a corresponding number of lines are read.
String and numeric variables can be intermixed.
Example: This is an example of how to use the INPUT command:

10
20
30
40
50
60

OPEN #1: NAME "ZPL"
PRINT #1: "~HS"
FOR I = 1 TO 3
INPUT #1: A$
PRINT A$
NEXT I

In this example, a host status prints to the console after submitting the host status request ~HS to the
ZPL port. The Input/Output command of the ZBI interpreter is limited to the communications ports.
File I/O is not supported.

INPUT ends processing a line with a CR or LF. This leads to a tricky situation. There are many ways
different systems end a line: CR, CRLF, LF. If the ZBI program only uses INPUT, the next execution
of the INPUT command will remove the extra LF or CR, in case of LFCR. However, if the program
instead uses INBYTE, DATAREADY or the other commands, the extra LF will show up on the port.
Here’s a simple workaround to explicitly look for the CRLF that is in use:
SEARCHTO(,CHR$(13)&CHR$(10),)

Note • The INPUT command does not accept control characters or the delete character. If
these characters need to be processed, use the READ command.

Comments This can be an interactive command that takes effect as soon as it is received by the
printer, or a program command that is preceded by a line number.
If an invalid port is specified, Error: Invalid port is returned.
Example: This shows the input command reading in multiple lines.

10 INPUT A$,B,C,D$,E$
Five lines would be read in: 3 strings and 2 numbers.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Input and Output

PRINT
This command sends data to the printer to be printed.

Format PRINT [CHANNEL:]  [,or; ]* [;]
Parameters
 = write data to this port
 = the value to write
The expression can be either a string or a numeric expression.
Using a , to separate expressions adds a space between them.
Using a ; to separate expressions does not put a space between them.
Using a ; at the end of a line ends the print statement without adding a new line (CR/LF).
Example: This is an example of how to use the PRINT command:

10 LET A$ = "This is an example"
20 LET B$ = "of the PRINT Command."
30 PRINT A$, B$ ! adds a space between expressions
40 PRINT A$; B$ ! no space added
RUN
The result is:

This is an example of the PRINT Command.
This is an exampleof the PRINT Command.
Comments This can be an interactive command that takes effect as soon as it is received by the
printer, or a program command that is preceded by a line number.

1/31/18

Programming Guide

P1099958-001

477

478

ZBI Commands
Input and Output

OUTBYTE
This command outputs a byte to a port.

Format
OUTBYTE [:] 
OUTBYTE [:] 

Parameters
 = sends the byte to this port. Default = 0.
 = This is a numeric expression.

Values: 0 through 255. If it is not within that range, it is
truncated.
 = This is the string expression. The first character is used. In the case of a NULL
string, 0 is sent.
Example: This is an example of how to use the OUTBYTE command:

LET A$="Hello"
OUTBYTE A$
This would only print the H character to the console.
OUTBYTE 4
This would print the control character EOT to the console. See an ASCII table for a list of
the control characters.
Comments This can be an interactive command that takes effect as soon as it is received by the
printer, or a program command that is preceded by a line number.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Input and Output

INBYTE
This command forces the interpreter to pause until data is available. Use the DATAREADY function to
determine if there is data on the port.

Format
INBYTE [:] 
INBYTE [:] 

Parameters
 = reads from this port. Default = 0.
 = integer value is set to the byte received.
 = A single byte string is created with the byte received.The first character is used. In

the case of a NULL string, 0 is sent.
Example: This is an example of how to use the INBYTE to create an echo program:

10 INBYTE A$ !Takes one byte (char) from port #0
20 PRINT A$ !Prints the character to the console
30 GOTO 10
In this example, the interpreter pauses until the data is entered, then continues processing. This
command enters all bytes in a string or integer, including control codes.

Comments INBYTE will block until a byte is received on the specified port. This can be an
interactive command that takes effect as soon as it is received by the printer, or a program command
that is preceded by a line number.

1/31/18

Programming Guide

P1099958-001

479

480

ZBI Commands
Input and Output

READ
Description This is a non-blocking input function. It will read in all of the bytes available on the
specified port.

Format READ (, , )
Parameters
 = reads from this port. Default = 0.
 = the string where the data will be placed
 = the maximum number of bytes to read

Returns The number of bytes read.
Example: This is an example of the READ command:

1 CLOSE ALL
2 LET INPORT = CLIENTSOCKET("TCP","192.168.0.1",9100)
3 ON ERROR GOTO RECOVERY
4 LET WATERMARK = 5000
5 DO WHILE 1
6 IF LEN(DATA$) < WATERMARK THEN
7 LET BYTESREAD = READ(INPORT,DATA$,500)
8 ON ERROR GOTO RECOVERY
9 END IF
10 IF (LEN(DATA$) > 0) THEN
11 LET BYTES_WRITTEN = WRITE(INPORT,DATA$,LEN(DATA$))
12 ON ERROR GOTO RECOVERY
13 LET DATA$(1,BYTES_WRITTEN) = ""
14 END IF
15 IF BYTESREAD = 0 AND BYTESWRITTEN = 0 THEN
16 SLEEP 1 ! DON'T BOMBARD IF IDLE
17 END IF
18 LOOP
19 SUB RECOVERY
20 CLOSE #INPORT

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Input and Output

WRITE
Description This is a non-blocking output function. It will write as many bytes as the output
buffer can hold.

Format WRITE (, , )
Parameters
 = reads from this port. Default = 0.
 = the string to write out.
 = The number of bytes to write

Returns The number of bytes written.
Example: This is an example of WRITE command:

1 CLOSE ALL
2 LET INPORT = CLIENTSOCKET("TCP","192.168.0.1",9100)
3 ON ERROR GOTO RECOVERY
4 LET WATERMARK = 5000
5 DO WHILE 1
6 IF LEN(DATA$) < WATERMARK THEN
7 LET BYTESREAD = READ(INPORT,DATA$,500)
8 ON ERROR GOTO RECOVERY
9 END IF
10 IF (LEN(DATA$) > 0) THEN
11 LET BYTES_WRITTEN = WRITE(INPORT,DATA$,LEN(DATA$))
12 ON ERROR GOTO RECOVERY
13 LET DATA$(1,BYTES_WRITTEN) = ""
14 END IF
15 IF BYTESREAD = 0 AND BYTESWRITTEN = 0 THEN
16 SLEEP 1 ! DON'T BOMBARD IF IDLE
17 END IF
18 LOOP
19 SUB RECOVERY
20 CLOSE #INPORT

1/31/18

Programming Guide

P1099958-001

481

482

ZBI Commands
Input and Output

SEARCHTO$
This function performs a search until a specified string is found. The string the search yields is
displayed.

Format
SEARCHTO$(A,B$)
SEARCHTO$(A,B$,C)

SEARCHTO$(A$,B$)
SEARCHTO$(A$,B$,C$)
Parameters
A = port number (0 to 9) to which requested data is sent
A$ = string to search for B$
B$ = string variable or string array. If B$ is an array, this command searches for all
non-null strings in the B$ array.
C = a port in which the input is directed until B$ is found
C$ = a string in which the characters in A$ are directed until B$ is found
Returns The string found.
Example: This example shows how to use SEARCHTO to find a string on a port:

10 OPEN #1: NAME "SER"
20 LET A$ = SEARCHTO$(1,"^XA")
30 PRINT "FOUND:", A$

Example: This example shows how to search for an array of strings:

10
20
30
40
50
60
70

P1099958-001

OPEN #1: NAME "SER"
DECLARE STRING FIND$(3)
LET FIND$(1) = "ONE"
LET FIND$(2) = "TWO"
LET FIND$(3) = "THREE"
LET A$ = SEARCHTO$(1,FIND$)
PRINT "FOUND:", A$

Programming Guide

1/31/18

ZBI Commands
Input and Output

483

Example: This example shows unused data routed to a port.

10
20
30
40
50
60
70
80

OPEN #1: NAME "PAR"
OPEN #2: NAME "SER"
DECLARE STRING FIND$(3)
LET FIND$(1) = "ONE"
LET FIND$(2) = "TWO"
LET FIND$(3) = "THREE"
LET A$ = SEARCHTO$(1,FIND$,2)
PRINT "FOUND:", A$

Example: This example shows how to use SEARCHTO to find a string within a string and direct the
unused part of the string to another string:

10
20
30
40

LET A$ = "The faster you go, the shorter you are - Einstein"
LET B$ = SEARCHTO$(A$,"you", C$)
PRINT "FOUND:", B$
PRINT "DISCARDED:", C$

Comments SEARCHTO will block (wait) until the search string is found. If you want to be able to
run other code while doing something similar, consider using READ with POS.
When using SEARCHTO with ports, it will block (wait) until the search string is found. If you want to be
able to run other code while doing something similar, consider using READ to place data into a string.
That string can be passed to SEARCHTO for processing.

Port Usage Examples
Before diving into the syntax of all the commands, let’s look at some simple applications using the
different features of the communications systems in ZBI.

Physical Ports (Serial, Parallel, USB, Bluetooth®)
Though the types of devices interacting with the printer's ports may vary greatly, internal to the
printer, the ports are all handled in the same way. These ports are opened with the ZBI OPEN
command and closed with the ZBI CLOSE command. When one of these ports is opened, it is
disconnected from the ZPL parser and any data in the buffer will be redirected to the ZBI
environment.

1/31/18

Programming Guide

P1099958-001

484

ZBI Commands
Input and Output

Example: In the following example, "SER" could be replaced by "PAR", "USB", or "BLU" depending
on the application.

10
20
25
30
35
40
50
55
60
70

CLOSE ALL
LET INPORT = 1
SLEEP 1
OPEN #INPORT: NAME "SER"
ON ERROR GOTO 25
PRINT #INPORT: "Enter your name:";
INPUT #INPORT: YOURNAME$
ON ERROR GOTO 70
PRINT #INPORT: "You entered: "; YOURNAME$
CLOSE #INPORT

ZPL Parser
To make a ZBI program print, it is necessary to create a connection from the program to the ZPL
parser on the printer. The connection will function in the same way as a connection to a physical
port, except that the connection will not automatically terminate. The ZPL parser in the printer can
handle many incoming connections simultaneously. For example, a ZBI program could take control
of the serial port and send label formats to the ZPL parser, while the parallel port (unopened by ZBI)
could also be used to send label formats directly into the parser.

Note • The ZPL parser will lock onto one port once a format is started (via the ^XA command). So,
in some cases, is it desirable to start and stop your communications to ZPL in one continuous
sequence.
Another use of ZBI is to check printer status, while another application prints to another port.
Example: Here is how that can be done:

10
20
30
40
50
60

OPEN #1: NAME "ZPL"
PRINT #1: "~HS"
FOR I = 1 TO 3
INPUT #1: A$
PRINT A$
NEXT I

TCP Client
There are two methods for making a TCP connection to another server. The first method uses the
OPEN command while the second method uses the CLIENTSOCKET method.

CLIENTSOCKET is the preferred method.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Input and Output

Example: The following example demonstrates this method:

10 CLOSE ALL
20 LET INPORT = CLIENTSOCKET("TCP","192.168.0.1",9100)
40 LET OUTSTR$ = "REQUESTING SERVER NAME";
50 DO WHILE (LEN(OUTSTR$) > 0)
60 LET BYTES_WRITTEN = WRITE(INPORT,OUTSTR$,LEN(OUTSTR$))
70 ON ERROR GOTO RECOVERY
80 LET OUTSTR$ = OUTSTR$(1+BYTES_WRITTEN:LEN(OUTSTR$))
90 LOOP
100 INPUT #INPORT: YOURNAME$
110 PRINT #INPORT: "Server returned: "; YOURNAME$
120 CLOSE #INPORT
130 SUB RECOVERY
140 END

TCP Server
Setting up a listening server in the printer can be accomplished with the SERVERSOCKET function.
To connect to incoming TCP sessions, use the ACCEPT function.
When starting the application, call SERVERSOCKET. This function will create a handle for this
listening server. Check for incoming connections at regular intervals with the ACCEPT function. If
there are no pending sessions, the ACCEPT function will return with an error. Handle the error using
the ON ERROR command and continue looking for other sessions later.

1/31/18

Programming Guide

P1099958-001

485

486

ZBI Commands
Input and Output
Depending on how the program is set up, it is possible to handle one or more sessions at a time. If
the program is configured to allow only one session, the other connections will remain pending until
they are shut down by the requesting client or the ZBI program connects them.
Example: Here is an example of the SERVERSOCKET and ACCEPT commands:

10 CLOSE ALL
20 LET SERVER_HANDLE = SERVERSOCKET("TCPX",19100)
30 REM There are no connections yet we are just listening for them
40 REM Lets loop until we get a connection
50 SLEEP 1
60 LET INPORT = ACCEPT(SERVER_HANDLE,CLIENT_INFO$)
70 ON ERROR GOTO 50
80 PRINT #INPORT: "You have successfully connected!"
90 PRINT #INPORT: "Login:";
100 INPUT #INPORT: LOGIN$
110 PRINT #INPORT: "Password:";
120 INPUT #INPORT: PASSWORD$
130 REM We will not be nice and reject the connection
130 PRINT #INPORT: "Login failed"
140 CLOSE #INPORT
150 GOTO 60 ! Go look for the next connection
160 END

UDP Client
There are also two methods for making a UDP connection to another server. The first method uses
the OPEN command, while the second method uses the CLIENTSOCKET method. UDP is a one way
communication medium, thus, you can only use output commands. Because UDP is connectionless,
the output will be queued up until an EOT character is written or the maximum packet size is
exceeded. Once the EOT character is written, the packet is formatted and sent.
With UDP, it is important to be careful about understanding what the network being used will support.
In many cases, there will be a limit to the size of the packet that can be used, typically between 1000
and 1500 bytes, but some networks cut this down into the 500 to 600 byte range. To be safe, keep
your packets less than 500 bytes.
UDP does not guarantee transmission. See UDP specifications for more details.
Example: Since CLIENTSOCKET is the preferred method, an example is shown below.

10
20
30
40
50
60
70

P1099958-001

CLOSE ALL
LET INPORT = CLIENTSOCKET("UDP","192.168.0.1",22222)
LET EOT$ = CHR$(4)
PRINT #INPORT: "Packet #"; I; EOT$;
LET I = I + 1
SLEEP 1
GOTO 40

Programming Guide

1/31/18

ZBI Commands
Input and Output

UDP Server
Setting up a listening server in the printer can be accomplished with the SERVERSOCKET function.
Then, to connect to incoming UDP packets, use the function ACCEPT. When starting your
application, call SERVERSOCKET. This function will create a handle for this listening server. Check
for incoming packets at a regular interval with the ACCEPT function. If there are no pending sessions,
the ACCEPT function will return with an error. Just handle the error using the ON ERROR command
and continue looking for other sessions later. You will need to call ACCEPT for each incoming packet.
When the accept is successful, all of the data will be available. Call READ with a MAX string size of
2000 and you will have the whole packet in your string. Close the port and wait for the next packet.
You can only read in data using a UDP server.
Example: Here is an example of how to set up to receive UDP messages:

10 CLOSE ALL
20 LET ZPLPORT = 1
35 OPEN #ZPLPORT: NAME "ZPL"
40 LET SERVER_HANDLE = SERVERSOCKET("UDP",33333)
50 REM There are no connections yet: listening
60 REM Let’s loop until we get a connection
70 SLEEP 1
80 LET INPORT = ACCEPT(SERVER_HANDLE,CLIENT_INFO$)
90 IF INPORT = -1 THEN
92 GOTO 70
94 END IF
100 LET PACKET_SIZE = READ(INPORT,PACKET$,2000)
110 PRINT #ZPLPORT: "^XA^FO100,100^A0N,40,40^FDPACKET FROM:";
115 PRINT #ZPLPORT: CLIENT_INFO$; "^FS"
120 PRINT #ZPLPORT: "^FO100,150^A0N,40,40^FDPACKET SIZE:";
125 PRINT #ZPLPORT: PACKET_SIZE; "^FS"
130 PRINT #ZPLPORT: "^FO100,200^A0N,40,40^FDPACKET DATA:";
135 PRINT #ZPLPORT: PACKET$; "^FS^XZ"
140 CLOSE #INPORT
150 GOTO 60 ! go look for the next connection
160 END

E-mail
ZBI can be used to enhance the printer’s ability to send status via e-mail messages. The process is
simple: open the email port "EML", send the recipient list, send the header, and send the body of the
message.
The printer can only process a limited number of outgoing email messages at one time. For this
reason, error handling should be used when opening the connection to wait for the printer to be
ready to send the message. The EOT character is important for delimiting sections of the email
message. If it is left out, the message will not be sent properly.

1/31/18

Programming Guide

P1099958-001

487

488

ZBI Commands
File System
Before the following code will work, the email settings for the print server must be set up. Consult the
print server manual to learn how to configure the unit.
Example: Here is an example of how to send e-mails:

1 REM EOT$ this is used to denote end of transmission
5 LET EOT$ = CHR$(4)
1 REM Open a connection to the e-mail port and if it errors
1 REM try again until complete
10 OPEN #1: NAME "EML"
15 ON ERROR GOTO 10
1 REM Specify address to send message to then end signal end
1 REM of recipients with EOT$
1 REM To send to multiple addressees separate addressees by
1 REM space
20 PRINT #1: "youraddress@yourdomain.com";EOT$;
1 REM Fill in the message information
30 PRINT #1: "From: HAL"
40 PRINT #1: "To: Dave"
50 PRINT #1: "Subject: A message from HAL"
60 PRINT #1: ""
70 PRINT #1: "Dave, I am sorry I can not let you do that."
80 PRINT #1: i
1 REM Terminate message
90 PRINT #1: "";EOT$
1 REM You must close the port, each open port is only good
1 REM for sending one message
100 CLOSE #1

File System
This section shows how programs and formats can be saved and recalled. Here’s a quick list of
these commands:

STORE Saves the program currently in memory as the specified file name.
LOAD Transfers a program file previously stored in the printer’s memory and opens it in the ZBI
Program Memory.
DIR With no filter included, prompts the printer to list all of the ZBI programs residing in all printer
memory locations.
DELETE Removes a specified file from the printer’s memory.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
File System

Runtime Access
The following example is a method to store runtime data in the printer memory. The file system in the
printer is limited to writing one file at a time. Since only one component of the printer can have write
access to the file system, the ZPL parser is the component with this access. For ZBI to use the ZPL
parser as a gateway into printer memory, the ZPL comment command (^FX) is used.
Example:
AUTONUM 1,1
REM ******* TEST FOR SUBROUTINES **********************
LET ZPLPORT = 1 OPEN #ZPLPORT: NAME "ZPL"
LET SIZE = 5
LET FILENAME$ = "R:TESTSYS.ZPL"
DECLARE STRING DATAIN$(SIZE)
LET DATAIN$(1) = "ONE"
LET DATAIN$(2) = "TWO"
LET DATAIN$(3) = "THREE"
LET DATAIN$(4) = "FOUR"
LET DATAIN$(5) = "FIVE"
GOSUB STOREDATA
GOSUB GETDATA
FOR I = 1 TO SIZE
IF DATAIN$(I) <> DATAOUT$(I) THEN
PRINT #ZPLPORT: "^XA^FO100,100^A0N,50,50^FDERROR:";
PRINT #ZPLPORT: DATAOUT$(I);"^XZ"
END IF
NEXT I
END
REM **** SUBROUTINE STOREDATA **************************
REM INPUT: ZPLPORT, DATAIN$, SIZE, FILENAME$ ***********
SUB STOREDATA
PRINT #ZPLPORT: "^XA^DF" & FILENAME$ & "^FS"
PRINT #ZPLPORT: "^FX"; SIZE; "^FS"
FOR I = 1 TO SIZE
PRINT #ZPLPORT: "^FX" & DATAIN$(I) & "^FS"
NEXT I
PRINT #ZPLPORT: "^XZ"
RETURN
REM **** SUBROUTINE GETDATA - **************************
REM INPUT: ZPLPORT, FILENAME$ **************************
REM ** OUTPUT: DECLARES AND FILLS DATAOUT$ AND FILLS SIZE
SUB GETDATA
PRINT #ZPLPORT: "^XA^HF" & FILENAME$ & "^XZ"
SLEEP 1
LET RESULT$ = ""
FOR J = 1 TO 25
LET A = READ(ZPLPORT,TEMP$,5000)
LET RESULT$ = RESULT$ & TEMP$
IF POS(RESULT$,"^XZ") <> 0 THEN
EXIT FOR
END IF
SLEEP 1
NEXT J
LET RESULT$(1:POS(RESULT$,"^FX")+2) = ""
LET SIZE = VAL(EXTRACT$(RESULT$,"","^"))
DECLARE STRING DATAOUT$(SIZE)
FOR I = 1 TO SIZE
LET RESULT$(1:POS(RESULT$,"^FX")+2) = ""
LET DATAOUT$(I) = EXTRACT$(RESULT$,"","^")
NEXT I
LET RESULT$ = ""
LET TEMP$ = ""
RETURN

1/31/18

Programming Guide

P1099958-001

489

490

ZBI Commands
File System

STORE
This command saves the program currently in memory as the specified file name. The format listed
below is used.

Format STORE 
Parameters  = the name of the file to be stored. Drive location and file name
must be in quotation marks.
Example: This is an example of how to use the STORE command:

STORE "E:PROGRAM1.BAS"
Comments For a file name to be valid, it must conform to the 8.3 Rule: each file must have no
more than eight characters in the file name and have a three-character extension. Here the
extension is always .BAS (for example, MAXIMUM8.BAS).
This is an interactive command that takes effect as soon as it is received by the printer.
The ZBI-Developer IDE will take care of this for you with the SEND TO option on your program.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
File System

LOAD
This command transfers a program file previously stored in the printer’s memory and opens it in the
ZBI Program Memory.
If the program file does not exist, the ZBI Program Memory is cleared and no program is opened.

Format LOAD 
Parameters  = the file name to be loaded into memory. Drive location and file
name must be in quotation marks. If the drive location is not specified, all drives will be searched.
Example: Here are examples of how to use the LOAD command:

LOAD "PROGRAM1.BAS"
LOAD "E:PROGRAM1.BAS"
Comments This is an interactive command that takes effect as soon as it is received by the
printer.

1/31/18

Programming Guide

P1099958-001

491

492

ZBI Commands
File System

DIR
This command, with no filter included, prompts the printer to list all of the ZBI programs residing in all
printer memory locations.
Including a filter signals the printer to limit the search; including a drive location signals the printer to
search in only one location.
Asterisks (*) are used as wild cards. A wild card (*) finds every incidence of a particular request. The
example here, DIR "B:*.BAS", signals the printer to search for every file with a .BAS extension
in B: memory.

Format DIR []
Parameters [] = the name of the file to be accessed (optional). Drive location and
file name must be in quotation marks.
Default = "*:*.bas"
Important • Quotes must be around what you are doing. This shows you how to use the
wildcard (*) to search for all .BAS files in B: memory:

Quotes surrounding action
DIR "B:*.BAS"
memory

file type

wildcard

Example N/A
Comments This is an interactive command that takes effect as soon as it is received by the
printer.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Comma Separated Values (CSV)

DELETE
This command removes a specified file from the printer’s memory.

Format DELETE 
Parameters  = the name of the file to be deleted. Drive location and filename
must be in quotation marks.
Example: This is an example of deleting a specified file from printer memory:

DELETE "E:PROGRAM1.BAS"
Comments This is an interactive command that takes effect as soon as it is received by the
printer.

Comma Separated Values (CSV)
Accessing Comma Separated Value (CSV) and Text File Functions
This section describes the functions to access CSV files and ASCII plain-text files. Here is a quick
list of these commands:

CSVLOAD Loads the contents of a CSV file in a two dimensional string array.
CSVSTORE Stores the contents of a two dimensional string array in a CSV file.
TXTLOAD Loads the contents of an ASCII plain-text file into a string variable.
TXTSTORE Stores the contents of a string variable in an ASCII plain text file.

1/31/18

Programming Guide

P1099958-001

493

494

ZBI Commands
Comma Separated Values (CSV)

CSVLOAD
This function will load the delimited values from a CSV file, defined by FILENAME$, and store them
in the two-dimensional array, DEST$.

Format
CSVLOAD(DEST$, FILENAME$)
CSVLOAD(DEST$, FILENAME$, DELIM$)

Parameters
DEST$ = two dimensional array that will hold the rows and columns from the CSV file
specified by the FILENAME$ variable. If there is not enough room in DEST$, or if it has the
wrong size, it will be changed to fit the data from the file. The data originally in DEST$ will
be overwritten.
FILENAME$ = name of the file to load. Drive location and file name must be in quotation
marks. The file extension must be either ".CSV" or ".TXT".
DELIM$ = optional delimiter that is used in the CSV file instead of a comma. If DELIM$ is
not provided a comma will be used by default. The delimiter must be a single character
that is not a quote, carriage return, or newline.
Returns The number of elements in each row of the CSV file. The function will return 0 if errors
were detected in the CSV file, or if the file could not be read.
Example: This example shows how to print the values in a CSV file with a comma delimiter.

10
20
30
40
100
110
120
200
210
300

P1099958-001

DECLARE STRING CSVDB$(1,2)
LET FILENAME$ = "E:RECORDS.CSV"
LET NUMOFCOLS = CSVLOAD(CSVDB$, FILENAME$)
LET NUMOFROWS = ROWSIZE(CSVDB$)
FOR I = 1 TO NUMOFROWS STEP 1
FOR J = 1 TO NUMOFCOLS STEP 1
PRINT CSVDB$(I, J), " ";
NEXT J
PRINT ""
NEXT I

Programming Guide

1/31/18

ZBI Commands
Comma Separated Values (CSV)

Example: This example shows how to print the values in a CSV file that uses a '|' as a delimiter.

10
20
30
40
100
110
120
200
210
300

DECLARE STRING CSVDB$(1,2)
LET FILENAME$ = "E:EMPLOYEE.CSV"
LET NUMOFCOLS = CSVLOAD(CSVDB$, FILENAME$, "|")
LET NUMOFROWS = ROWSIZE(CSVDB$)
FOR I = 1 TO NUMOFROWS STEP 1
FOR J = 1 TO NUMOFCOLS STEP 1
PRINT CSVDB$(I, J), " ";
NEXT J
PRINT ""
NEXT I

Comments The maximum CSV file size supported will vary based upon available RAM within the
printer.

CSV File Information
The file format should follow the rules in IETF RFC 4180: http://tools.ietf.org/html/rfc4180
The maximum number of columns per row in a CSV file is 256.
Each row must be 2048 characters or less including the delimiter. The carriage return/line feed
(CRLF) does not count toward the limit.
Each row in the CSV file must have the same number of elements. If there are any missing elements
in the CSV file (indicated by two adjacent commas or a comma at the end of a row), they will be
represented as empty strings.
If an element in the CSV file contains a quote, it should be represented as two quotes. Additionally, if
an element contains a quote, a new line, a carriage return, or the delimiter character, the element
must be within quotes. For example, a value that is used to store a measurement in feet and inches
(4' 5") must be formatted as "4' 5""" within the CSV file.

1/31/18

Programming Guide

P1099958-001

495

496

ZBI Commands
Comma Separated Values (CSV)

CSVSTORE
This function will store the values of a two dimensional array into a CSV file on the file system.
Each element within the array is treated as a single value within the CSV file.

Format
CSVSTORE(SRC$, FILENAME$)
CSVSTORE(SRC$, FILENAME$, DELIM$)

Parameters
SRC$ = two dimensional array of strings to be written to a CSV file.
FILENAME$ = name of the file to store the array contents. Drive location and file name
must be in quotation marks. The file extension must be either ".CSV" or ".TXT".
DELIM$ = optional delimiter that is used in the CSV file instead of a comma. If DELIM$ is
not provided a comma will be used by default. The delimiter must be a single character
that is not a quote, carriage return, or newline.
Returns A 0 if there were no errors. A 1 is returned if SRC$ is not a string array, if the file could not
be written, or if SRC$ contains errors that prevent the file from being stored.
Example: This example shows how to convert a comma delimited CSV file into a "^" delimited TXT
file and print the contents.

10
20
30
40
50
100
110
120
200
210
300

DECLARE STRING CSVDB$(1,2)
LET NUMOFCOLS = CSVLOAD(CSVDB$, "E:RECORDS.CSV")
LET CSVERROR = CSVSTORE(CSVDB$, "E:NEWREC.TXT", "^")
LET NUMOFCOLS = CSVLOAD(CSVDB$, "E:NEWREC.TXT", "^")
LET NUMOFROWS = ROWSIZE(CSVDB$)
FOR I = 1 TO NUMOFROWS STEP 1
FOR J = 1 TO NUMOFCOLS STEP 1
PRINT CSVDB$(I, J), " ";
NEXT J
PRINT ""
NEXT I

Comments The elements of the array should follow the rules in IETF RFC 4180:
http://tools.ietf.org/html/rfc4180
There is no limit on the number of columns per row when storing to a CSV file. However, a file stored
with rows that exceed the column limit imposed by CSVLOAD will not be loaded by the CSVLOAD
function.
There is no limit on the size of a row when stored to a CSV file. However, a file stored with rows that
exceed the size limit imposed by CSVLOAD will not be loaded by the CSVLOAD function.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Comma Separated Values (CSV)

TXTLOAD
This function will read the contents of an ASCII text file into a ZBI string variable.

Format TXTLOAD(DEST$, FILENAME$)
Parameters
DEST$ = string to store the contents of FILENAME$.
FILENAME$ = name of the file to read. Drive location and file name must be in quotation
marks. The file extension must be either ".CSV" or ".TXT".
Returns The number of bytes read from the file. The function will return 0 if the file could not be
read.
Example: This example shows how to print out the contents of a file.

10 LET TXTSIZE = TXTLOAD(TXTDATA$, "E:MYDATA.TXT")
20 PRINT STR$(TXTSIZE), "bytes:", TXTDATA$
Comments The data originally in DEST$ will be overwritten upon completion of this function.

1/31/18

Programming Guide

P1099958-001

497

498

ZBI Commands
Events

TXTSTORE
This function will store the contents of a ZBI string in an ASCII text file.

Format TXTSTORE(SRC$, FILENAME$)
Parameters
SRC$ = string to store to FILENAME$.
FILENAME$ = name of the file to store. Drive location and file name must be in quotation
marks. The file extension must be either ".CSV" or ".TXT".
Returns Returns a 0 if there were no errors, otherwise a 1 is returned.
Example: This example shows how to append a text file.

10
11
20
30
40

LET TXTSIZE = TXTLOAD(TXTDATA$, "E:MYDATA.TXT")
REM Append a date/time stamp to the file
LET TXTDATA$ = TXTDATA$ & " " & DATE$ & " " & TIME$
LET TXTSIZE = TXTSTORE(TXTDATA$, "E:MYDATA.TXT")
PRINT TXTDATA$

Events
This section explains how to capture and trigger internal events in the printer. Here’s a quick list of
these commands:

Available Events A table that correlates a ZBI event with an identification number.
ZBI Key Names Details the names of each printer’s front panel buttons, ZBI names, and ZBI
event ID.

REGISTEREVENT Sets up the HANDLEEVENT function to receive notification when the
specified event has occurred.
UNREGISTEREVENT Allows events that are currently set to be captured by the program to no
longer be captured.

HANDLEEVENT Once events have been registered, this function is used to see what events
have occurred.

TRIGGEREVENT Allows for front panel buttons to be triggered programatically.
There are certain events in the printer that a ZBI 2.0 program can receive. To do this, the program
first registers for the event. On a regular basis, call a function to handle events. When an event
occurs that the program is registered for, the function will return the event’s identification number.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Events

Available Events
ZBI Event
ID

1/31/18

ZBI Event

1

menu key

2

pause key

3

feed key

4

cancel key

5

up arrow key

6

plus key

7

minus key

8

enter key

9

setup exit key

10

select key

11

cancel all event

12

config label

13

timer1

14

timer2

15

timer3

16

timer4

17

timer5

18

spare unused

19

previous key

20

next save key

21

calibrate key

22

paper out set

23

paper out clear

24

ribbon out set

25

ribbon out clear

26

head too hot set

27

head too hot clear

28

head cold set

29

head cold clear

30

head open set

31

head open clear

32

supply too hot set

33

supply too hot clear

34

ribbon in set

Programming Guide

P1099958-001

499

500

ZBI Commands
Events

ZBI Event
ID

P1099958-001

ZBI Event

35

ribbon in clear

36

rewind full set

37

rewind full clear

38

cutter jammed set

39

cutter jammed clear

40

paused set

41

paused clear

42

pq completed set

43

pq completed clear

44

label ready set

45

label ready clear

46

head element bad set

47

head element bad clear

48

basic runtime set

49

basic runtime clear

50

basic forced set

51

basic forced clear

52

power on set

53

power on clear

54

clean printhead set

55

clean printhead clear

56

media low set

57

media low clear

58

ribbon low set

59

ribbon low clear

60

replace head set

61

replace head clear

62

battery low set

63

battery low clear

64

rfid error set

65

rfid error clear

66

any messages set

67

any messages clear

68

auto baud

69

factory default

Programming Guide

1/31/18

ZBI Commands
Events

ZBI Event
ID

ZBI Event

70

networking default

71

networking factory

72

print width

73

darkness adjust

74

calibrate

75

scroll key

76

soft key 1

77

soft key 2

ZBI Key Names
This section details the names to use for each printer’s front panel buttons when creating ZBI 2.0
programs to capture the buttons.

ZT200/ZT400/ZD500/Qln

ZT2X0

ZBI Event
ID

ZBI Name

Left Soft button

76

soft key 1

Right Soft Button

77

soft key 2

ZT400

ZD500

Qln

Plus

Up Arrow

6

plus key

Minus

Down Arrow

7

minus key

Left Arrow

19

previous key

Right Arrow

20

next save key

OK

10

select key

no key

2

pause key

3

feed key

4

cancel key

Setup

OK

Check

Pause
Feed
Cancel

no key

Xi4/RXi4/XiIIIPlus/PAX4/105SL/ZE500
XiIIIPlus/PAX4/Xi4/RXi4/
ZE500/105SL Plus
Front Panel Key

105SL
Front Panel Key

ZBI Event
ID

Right Oval

Plus (+)

6

plus key

Left Oval

Minus (-)

7

minus key

19

previous key

Previous

1/31/18

Programming Guide

ZBI Name

P1099958-001

501

502

ZBI Commands
Events

XiIIIPlus/PAX4/Xi4/RXi4/
ZE500/105SL Plus
Front Panel Key

105SL
Front Panel Key

ZBI Event
ID

ZBI Name

Next/Save

20

next save key

Setup/Exit

9

setup exit key

Pause

2

pause key

Feed

3

feed key

Cancel

4

cancel key

Calibrate

21

calibrate key

HC100
ZBI Event
ID

ZBI Name

Pause

2

pause key

Feed

3

feed key

Front Panel Key

Eject

eject key

ZM400/ZM600/RZ400/RZ600/Z4Mplus/Z6Mplus
Front Panel Key

ZBI Event
ID

ZBI Name

Feed

3

feed key

Pause

2

pause key

Cancel

4

cancel key

Setup/Exit

9

setup exit key

Select

10

select key

Plus (+)

6

plus key

Minus (-)

7

minus key

S4M
Front Panel Key

P1099958-001

ZBI Event
ID

ZBI Name

Menu

1

menu key

Enter

8

enter key

Cancel

4

cancel key

Programming Guide

1/31/18

ZBI Commands
Events

Front Panel Key

ZBI Event
ID

ZBI Name

Feed

3

feed key

Pause

2

pause key

Left Arrow

4

cancel key

Right Arrow

3

feed key

Up Arrow

5

up arrow key

Down Arrow

2

pause key

ZBI Event
ID

ZBI Name

G-Series
Front Panel Key

Feed key

3

Feed key

Select key

10

Select key

Scroll key

75

Scroll key

ZBI Event
ID

ZBI Name

KR403 / 2824 Plus Series
Front Panel Key

Feed key

1/31/18

3

Feed key

Programming Guide

P1099958-001

503

504

ZBI Commands
Events

REGISTEREVENT
Description This function will set up the HANDLEEVENT function to receive notification when
the specified event has occurred. Events can be registered for one time or until the program is
exited.

Important • If an event occurs twice or more before the HANDLEEVENT function is called,
only one event will be received.
Format
REGISTEREVENT(X)
REGISTEREVENT(X,Y)
REGISTEREVENT(X,Y,Z)

Parameters
(X) = This is the ID of the event being registered for.
(Y) = If Y=1: the event happens once; If Y=0: the event stays registered for the duration
of the program, or until it is unregistered.
(Z) = For System Events: if Z=0, the event will still be handled by the printer. If Z=1, then
only ZBI will receive the event.
For Timer Events: this is the timer interval in mSec. If the interval is less than 0 or greater
than 1,000,000,000, it is set to 1000.
Returns The ID of the successfully registered event. If an event was not successfully registered, a
-1 is returned.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Events

Example: Here is an example of how to use the REGISTEREVENT command:

1 REM This example shows how to override the functionality of the
feed
1 REM key
1 REM using the event system. After all why waste a label when you
1 REM could put
1 REM valuable information there
AUTONUM 1,1
CLOSE ALL
LET ZPLPORT = 1
OPEN #ZPLPORT: NAME "ZPL"
LET FEEDKEY = 3
LET TMP = REGISTEREVENT(FEEDKEY, 0, 1)
DO WHILE 1 = 1
LET EVT = HANDLEEVENT()
IF EVT = FEEDKEY THEN
GOSUB PRINTINFO
END IF
SLEEP 1
LOOP
REM **** SUBROUTINE PRINTINFO *** expects ZPLPORT *******
SUB PRINTINFO
PRINT #ZPLPORT: "^XA"
PRINT #ZPLPORT: "^FO30,30^A0N,50,50^FDZebra Technologies^FS"
PRINT #ZPLPORT: "^FO30,85^A0N,35,35^FDwww.zebra.com^FS"
PRINT #ZPLPORT: "^FO30,125^A0N,35,35^FDsupport.zebra.com^FS"
PRINT #ZPLPORT: "^FO30,165^A0N,35,35^FDFW Version: "
PRINT #ZPLPORT: GETVAR$("appl.name") & "^FS"
PRINT #ZPLPORT: "^FO30,205^A0N,35,35^FDPrinter Unique ID:"
PRINT #ZPLPORT: GETVAR$("device.unique_id") & "^FS"
PRINT #ZPLPORT: "^FO30,245^A0N,35,35^FDActive Network: "
PRINT #ZPLPORT: GETVAR$("ip.active_network") & "^FS"
PRINT #ZPLPORT: "^FO30,285^A0N,35,35^FDZBI Memory Usage: "
PRINT #ZPLPORT: GETVAR$("zbi.start_info.memory_alloc") & "^FS"
PRINT #ZPLPORT: "^FO30,325^A0N,35,35^FDOdometer: "
PRINT #ZPLPORT: GETVAR$("odometer.total_print_length") & "^FS"
PRINT #ZPLPORT: "^XZ"
Comments None

1/31/18

Programming Guide

P1099958-001

505

506

ZBI Commands
Events

UNREGISTEREVENT
Description This function allows events that are currently set to be captured by the program to
no longer be captured. Once called events will return to the normal method of processing if the
REGISTEREVENT function Z parameter was set to 1.
Format UNREGISTEREVENT(X)
Parameters (X) = the ID of the event to stop
Returns 0 if the event is a valid event to unregister. A -1 if the event does not exist.
Example: Here is an example of how to use the UNREGISTEREVENT command:

AUTONUM 1,1
LET OUTSTR$ = "Processing"
LET LOOPCTR = 200
LET TIMER5 = 17
LET TMP = REGISTEREVENT(TIMER5, 0, 1000)
DO WHILE LOOPCTR > 0
LET EVT = HANDLEEVENT()
IF EVT = TIMER5 THEN
LET A = SETVAR("device.frontpanel.line2",OUTSTR$)
LET OUTSTR$ = OUTSTR$ & "."
IF LEN(OUTSTR$) >16 THEN
LET OUTSTR$ = "Processing"
END IF
END IF
LET LOOPCTR = LOOPCTR - 1
SLEEP 1
LOOP
LET TMP = UNREGISTEREVENT(TIMER5)
LET A = SETVAR("device.frontpanel.line2","")
END
Comments None

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Events

HANDLEEVENT
Description Once events have been registered, this function is used to see what events have
occurred.

Format HANDLEEVENT()
Parameters N/A
Returns The ID of the event that occurred. One event at a time will be returned through this
function. The order of the events are based on priority. The priority is based on the ID number of the
event, with the exception of the timer events, which have the highest priority.

1/31/18

Programming Guide

P1099958-001

507

508

ZBI Commands
Events

Example: Here are examples of how to use the HANDLEEVENT command:
1 REM This example shows how to override the feed key functionality
1 REM using the event system. Why waste a label when you could put
1 REM valuable information there
AUTONUM 1,1
CLOSE ALL
LET ZPLPORT = 1
OPEN #ZPLPORT: NAME "ZPL"
LET FEEDKEY = 3
LET TMP = REGISTEREVENT(FEEDKEY, 0, 1)
DO WHILE 1 = 1
LET EVT = HANDLEEVENT()
IF EVT = FEEDKEY THEN
GOSUB PRINTINFO
END IF
SLEEP 1
LOOP
REM ******** SUBROUTINE PRINTINFO ***
REM *** expects ZPLPORT *************
SUB PRINTINFO
PRINT #ZPLPORT: "^XA"
PRINT #ZPLPORT: "^FO30,30^A0N,50,50";
PRINT #ZPLPORT: "^FDZebra Technologies^FS"
PRINT #ZPLPORT: "^FO30,85^A0N,35,35";
PRINT #ZPLPORT: "^FDwww.zebra.com^FS"
PRINT #ZPLPORT: "^FO30,125^A0N,35,35";
PRINT #ZPLPORT: "^FDsupport.zebra.com^FS"
PRINT #ZPLPORT: "^FO30,165^A0N,35,35";
PRINT #ZPLPORT: "^FDFW Version: ";
PRINT #ZPLPORT: GETVAR$("appl.name") & "^FS"
PRINT #ZPLPORT: "^FO30,205^A0N,35,35";
PRINT #ZPLPORT: "^FDPrinter Unique ID:";
PRINT #ZPLPORT: GETVAR$("device.unique_id") & "^FS"
PRINT #ZPLPORT: "^FO30,245^A0N,35,35";
PRINT #ZPLPORT: "^FDActive Network: ";
PRINT #ZPLPORT: GETVAR$("ip.active_network") & "^FS"
PRINT #ZPLPORT: "^FO30,285^A0N,35,35";
PRINT #ZPLPORT: "^FDZBI Memory Usage: ";
PRINT #ZPLPORT: GETVAR$("zbi.start_info.memory_alloc") & "^FS"
PRINT #ZPLPORT: "^FO30,325^A0N,35,35";
PRINT #ZPLPORT: "^FDOdometer: ";
PRINT #ZPLPORT: GETVAR$("odometer.total_print_length") & "^FS"
PRINT #ZPLPORT: "^XZ"

Comments None

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Systems

TRIGGEREVENT
This function allows for front panel buttons to be triggered programatically.

Format TRIGGEREVENT(X)
Parameters
X = the ID of the event from the possible event list to TRIGGER.
See the following printer tables for events that can be triggered by this command:
•

Xi4/RXi4/XiIIIPlus/PAX4/105SL/ZE500 on page 501

•

105SL Front Panel Key on page 501

•

ZM400/ZM600/RZ400/RZ600/Z4Mplus/Z6Mplus on page 502

•

S4M on page 502

Returns Always returns 0.
Example: Here are examples of how to use the TRIGGEREVENT command:

1 REM THIS IS AN EXAMPLE OF HOW TO TRIGGER AN EVENT
AUTONUM 1,1
LET PAUSEKEY = 2
DO WHILE 1 = 1
LET A = TRIGGEREVENT(PAUSEKEY)
LET A = SETVAR("device.frontpanel.line2",str$(A))
SLEEP 2
LOOP

Comments None

Systems
This section contain miscellaneous systems interface functions. Here’s a quick list of these
commands:

ISERROR Returns a non-zero value if there is an internal error set in the printer.
ISWARNING Returns a non-zero value if there is an internal warning set in the printer.
SLEEP Specifies the time that the interpreter pauses.
SETERR Sends a message to the printer to set the error flag.
CLRERR Sends a message to the printer to clear the error flag.

1/31/18

Programming Guide

P1099958-001

509

510

ZBI Commands
Systems

ON ERROR Prevents a program from halting in the event of an error.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Systems

ISERROR
This function returns a non-zero value if there is an internal error set in the printer. Otherwise, the
numeral returned will 0.

Format ISERROR
Parameters N/A
Returns 0 for no errors; 1 if there is an error.
Example: Here is an example of the ISERROR command.

10 PRINT ISERROR
RUN
0
Comments None

1/31/18

Programming Guide

P1099958-001

511

512

ZBI Commands
Systems

ISWARNING
This function returns a non-zero value if there is an internal warning set in the printer. Otherwise, the
numeral returned will 0.

Format ISWARNING
Parameters N/A
Returns 0 for no errors; 1 if there is an error.
Example: Here is an example of the ISWARNING command.

10 PRINT ISWARNING
RUN
0
Comments None

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Systems

SLEEP
This command specifies the time that the interpreter pauses. This command could be sent to the
printer after sending a label format to be printed. The interpreter pauses in its processing for the
amount of time specified.

Format SLEEP 
Parameters  = the time in seconds (0 to 500) the interpreter pauses.
Example: This is an example of how to use the SLEEP command:

10 SLEEP 450
Comments If a timer is needed, use the Event system. The timer will allow for processing other
items, where SLEEP will stop execution of any ZBI commands for the specified SLEEP period.
This is a program command and must be preceded by a line number.
Calling SLEEP with  set to zero will force the ZBI task to yield to the rest of the system and allow
any pending tasks to run (e.g., pending ZPL commands). If there are no pending tasks, ZBI will
sleep for a minimum of 8 milliseconds.

1/31/18

Programming Guide

P1099958-001

513

514

ZBI Commands
Systems

SETERR
This command sends a message to the printer to set the error flag. A logical interpreter flag is
triggered in the printer. This error is referenced as a BASIC Forced Error.

Format SETERR
Parameters N/A
Example: An example of the SETERR and CLRERR commands.

AUTONUM 1,1
OPEN #1:NAME "ZPL"
PRINT #1: "^XA^SXO,A,Y,Y^XZ"
CLOSE #1
FOR I=1 TO 10
SLEEP 5
IF MOD(I,2)=1 THEN
SETERR
ELSE
CLRERR
ENDIF
NEXT I
Comments This is a program command and must be preceded by a line number.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Systems

CLRERR
This command sends a message to the printer to clear the error flag. A logical interpreter flag is
cleared in the printer. This error is referenced as a BASIC Forced Error.

Format 10 CLRERR
Parameters N/A
Example: See SETERR on page 514.

Comments This is a program command that is preceded by a line number.

1/31/18

Programming Guide

P1099958-001

515

516

ZBI Commands
Systems

ON ERROR
The ON ERROR command can be used to prevent a program from halting in the event of an error. If
an error occurs in a previous line during program execution, the ON ERROR statement calls the
GOTO or GOSUB statement and allows the program to continue.

Format
ON ERROR GOTO 
ON ERROR GOSUB 

Parameters  = the destination location in the program should an error be triggered on the
previous line.
Example: This is an example of how to use the ON ERROR command:

30 LET A = B/C
40 ON ERROR GOTO 100
...
100 PRINT "DIVIDE BY ZERO OCCURRED"
110 LET A = 0
120 GOTO 50
...
Example: See TCP Server on page 485 or UDP Server on page 487.

Comments
If there is no error, this line is ignored.
This is a program command that is preceded by a line number.

Applicator Functions
The printer applicator port option can be controlled in part or completely by ZBI 2. When ZBI takes
control of a pin, the printer’s built-in applicator functionality will not have access to that pin. This
function will allow the printer to perform some of the functionality that a programmable logic
controller (PLC) could.

AUXPORT_STEALPIN Takes control of a pin and allows ZBI to perform other actions on the
pin.

AUXPORT_SETPIN Sets the output level on an applicator pin.
AUXPORT_GETPIN Retrieves the state of the applicator pin.
AUXPORT_RELEASEPIN Returns a pin controlled by ZBI to normal printer operation.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Systems

AUXPORT_STEALPIN
This function will take control of a pin and allow ZBI to perform other actions on the pin.

Format AUXPORT_STEALPIN(X)
Parameters X = perform action on this applicator port pin.
Returns This function returns -1 upon failure and 0 upon success.
Example: This is an example of the AUXPORT_STEALPIN command:
1 REM Demo applicator to show control of applicator pins
1 REM on the printer
1 REM The application is to create a light pole with an
1 REM external feed button
AUTONUM 1,1
LET RED = 9
LET YELLOW = 10
LET GREEN = 11
LET BUTTON = 4
LET FEED_KEY = 3
LET TMP = AUXPORT_STEALPIN(RED)
LET TMP = AUXPORT_STEALPIN(YELLOW)
LET TMP = AUXPORT_STEALPIN(GREEN)
LET TMP = AUXPORT_STEALPIN(BUTTON)
DO WHILE 1 = 1
SLEEP 1
IF ISERROR = 1 THEN
LET TMP = AUXPORT_SETPIN(RED,1)
LET TMP = AUXPORT_SETPIN(YELLOW,0)
LET TMP = AUXPORT_SETPIN(GREEN,0)
ELSE IF ISWARNING = 1 THEN
LET TMP = AUXPORT_SETPIN(RED,0)
LET TMP = AUXPORT_SETPIN(YELLOW,1)
LET TMP = AUXPORT_SETPIN(GREEN,0)
ELSE
LET TMP = AUXPORT_SETPIN(RED,0)
LET TMP = AUXPORT_SETPIN(YELLOW,0)
LET TMP = AUXPORT_SETPIN(GREEN,1)
END IF
IF AUXPORT_GETPIN(BUTTON) = 1 THEN
LET A = TRIGGEREVENT(FEED_KEY)
END IF
LOOP

Comments If this pin is not controlled via ZBI (power pin), this function will return -1.

1/31/18

Programming Guide

P1099958-001

517

518

ZBI Commands
Systems

AUXPORT_SETPIN
This function sets the output level on an applicator pin.

Format AUXPORT_SETPIN(X,Y)
Parameters
X = perform action on this applicator port pin.
Y = The value to set on the pin (1 = high, 0 = low).
Returns This function returns -1 upon failure and 0 upon success.
Example: See AUXPORT_STEALPIN on page 517.

Comments If this pin is not controlled via ZBI (power pin), this function will return -1. See
AUXPORT_STEALPIN on page 517.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Systems

AUXPORT_GETPIN
Description This function will retrieve the state of the applicator pin.

Format AUXPORT_GETPIN(X)
Parameters X = perform action on this applicator port pin.
Returns This function returns 1 if pin is in high state, 0 in low state, and -1 upon failure.
Example: See AUXPORT_STEALPIN on page 517.

Comments If this pin is not controlled via ZBI (power pin), this function will return -1. See
AUXPORT_STEALPIN on page 517.

1/31/18

Programming Guide

P1099958-001

519

520

ZBI Commands
String Functions

AUXPORT_RELEASEPIN
Description This function returns a pin controlled by ZBI to normal printer operation.

Format AUXPORT_RELEASEPIN(X)
Parameters X = perform action on this applicator port pin.
Returns This function returns -1 upon failure and 0 upon success.
Example: This is an example of the AUXPORT_RELEASEPIN command:

90 LET TMP = AUXPORT_RELEASEPIN(X)
Comments If this pin is not controlled via ZBI (power pin), this function will return -1. See
AUXPORT_STEALPIN on page 517.

String Functions
This section identifies how to handle string manipulation. Here is a quick list of these commands:

LCASE$ Converts a string to all lowercase characters.
CHR$ Takes a value between 0 and 255 and puts that value into a string.
LTRIM$ Removes leading spaces from a string.
REPEAT$ Creates multiple copies of a string combined into a new string.
RTRIM$ Returns a string with trailing spaces removed
SPLIT Splits a string into sub-strings
SPLITCOUNT Returns the number of sub-strings that would be returned by the SPLIT function.
UCASE$ Converts a string to all uppercase characters
EXTRACT$ Searches for a string based on a starting and ending string.
ORD Returns the ASCII value of the first character of string A$.
POS Returns the location of the first occurrence of a search string in the target string.
LEN Returns the length of a string.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
String Functions

LCASE$
This function will convert a string to all lowercase characters.

Format LCASE$ (A$)
Parameters (A$) = the string that will be converted
Returns The characters in A$ converted to lowercase.
Example: This is an example of how to use the LCASE$ command.

10 LET B$=LCASE$ ("Hello World")
20 PRINT B$
RUN
hello world
Comments This will only work on non-accented Latin characters, A-Z.

1/31/18

Programming Guide

P1099958-001

521

522

ZBI Commands
String Functions

CHR$
This function takes a value between 0 and 255 and puts that value into a string.

Format CHR$(VAL)
Parameters (VAL)= The numeric value of the string character.
Returns A single character string containing the value entered.
Example: This is an example of how to use the CHR$ command to easily put control characters
into strings:

10
20
30
40

LET
LET
LET
LET

NULL$=CHR$(0)
STX$=CHR$(2)
ETX$=CHR$(3)
EOT$=CHR$(4)

Comments None

P1099958-001

Programming Guide

1/31/18

ZBI Commands
String Functions

LTRIM$
This function removes leading spaces from a string.

Format LTRIM$(A$)
Parameters (A$) = the string to convert.
Returns The string in A$ with no spaces.
Example: This is an example of how to use the LTRIM$(A$)command:

10 LET A$=" Hello"
20 PRINT LTRIM$(A$)
RUN
Hello
Comments None

1/31/18

Programming Guide

P1099958-001

523

524

ZBI Commands
String Functions

REPEAT$
This function creates multiple copies of a string combined into a new string.

Format REPEAT$(A$,M)
Parameters
A$ = the base string to duplicate
M = the number of times to duplicate A$
Returns A string containing M copies of A$. Note: When M=0, an empty string is returned.
Example: This is an example of how to use the REPEAT$(A$,M)command:

10 PRINT REPEAT$("Hello",3)
RUN
HelloHelloHello
Comments None

P1099958-001

Programming Guide

1/31/18

ZBI Commands
String Functions

RTRIM$
This function returns a string with trailing spaces removed.

Format RTRIM$(A$)
Parameters (A$) = the base string
Returns A$ with trailing spaces removed.
Example: This is an example of how to use the RTRIM$(A$)command:

10 LET A$="Hello "
20 LET B$="World"
30 PRINT A$ & B$
40 PRINT RTRIM$(A$)& B$
RUN
Hello World
HelloWorld
Comments None

1/31/18

Programming Guide

P1099958-001

525

526

ZBI Commands
String Functions

SPLIT
Description This function allows a string to be split into sub-strings

Format
SPLIT(DEST$,SOURCE$,DELIMITER$)
SPLIT(DEST$,SOURCE$,DELIMITER$,MAXCOUNT)

Parameters
DEST$ = the array to populate with the sub-strings created by the split
SOURCE$ = the string that will be searched for the provided delimiter
DELIMITER$ = the delimiter string (may be more than one character) to search for
MAXCOUNT = the maximum number of sub-strings the string should be split into. A

negative value will return every sub-string created by the split. A value of zero will return
empty strings in the array. If not specified, the limit will be the maximum size of the array.
Returns The number of sub-strings placed into the DEST$ array. If the number of sub-strings is
less than the size of DEST$, the remaining elements of the array will be set to empty strings.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
String Functions

Table 26:
Example 1: This is an example of how to use the SPLIT command:
1 REM Example - This example show how the SPLIT and SPLITCOUNT
1 REM commands can be
1 REM used to merge a comma separated variable string(CSV)
1 REM into a stored format
AUTONUM 1,1
SLEEP 10
DECLARE STRING TESTDATA$(5)
REM data format = ,,,...,
LET TESTDATA$(1) = "E:PRICETAG.ZPL,FRED'S OATS,$1.25,C:126789:325,123456789"
LET TESTDATA$(2) = "E:PRICETAG.ZPL,FRED'S OATS,$2.25,C:126789:325,123456789"
LET TESTDATA$(3) = "E:PRICETAG.ZPL,FRED'S OATS,$3.25,C:126789:325,123456789"
LET TESTDATA$(4) = "E:PRICETAG.ZPL,FRED'S OATS,$4.25,C:123489:325,123456789"
LET TESTDATA$(5) = "E:PRICETAG.ZPL,FRED'S OATS,$5.25,C:123459:325,123456789"
LET ZPLPORT = 2
OPEN #ZPLPORT: NAME "ZPL"
FOR T = 1 TO 5
LET DATA$ = TESTDATA$(T)
GOSUB CSVPRINTER
NEXT T
END
REM ******* Subroutine CSVPRINTER, expects DATA$ and ZPLPORT ****************
SUB CSVPRINTER
LET CNT = SPLITCOUNT(DATA$, ",")
DECLARE STRING SPLITSTRING$(CNT)
ON ERROR GOTO RECOVERY
LET CNT = SPLIT(SPLITSTRING$,DATA$,",")
PRINT #ZPLPORT: "^XA^XF";SPLITSTRING$(1);"^FS"
IF CNT >= 2 THEN
FOR I = 2 TO CNT
PRINT #ZPLPORT: "^FN";I-1;"^FD";SPLITSTRING$(I);"^FS"
NEXT I
END IF
PRINT #ZPLPORT: "^XZ"
SUB RECOVERY
RETURN

1/31/18

Programming Guide

P1099958-001

527

528

ZBI Commands
String Functions

Example 2: This is an example of how to use the SPLIT command:
1 REM Example - Shows how the SPLIT and SPLITCOUNT commands can be used to
1 REM merge a comma separated variable string(CSV) into a stored format
AUTONUM 1,1
SLEEP 10
DECLARE STRING TESTDATA$(5)
REM data format = ,,,...,
LET F$="E:PRICETAG.ZPL"
LET TESTDATA$(1) = F$&",FRED'S ROLLED OATS,$1.25,C:123456789:325,123456789"
LET TESTDATA$(2) = F$&",FRED'S ROLLED OATS,$2.25,C:123456789:325,123456789"
LET TESTDATA$(3) = F$&",FRED'S ROLLED OATS,$3.25,C:123456789:325,123456789"
LET TESTDATA$(4) = F$&",FRED'S ROLLED OATS,$4.25,C:123456789:325,123456789"
LET TESTDATA$(5) = F$&",FRED'S ROLLED OATS,$5.25,C:123456789:325,123456789"
LET ZPLPORT = 2
OPEN #ZPLPORT: NAME "ZPL"
FOR T = 1 TO 5
LET DATA$ = TESTDATA$(T)
GOSUB CSVPRINTER
NEXT T
END
REM ******* Subroutine CSVPRINTER, expects DATA$ and ZPLPORT *****************
SUB CSVPRINTER
LET CNT = SPLITCOUNT(DATA$, ",")
DECLARE STRING SPLITSTRING$(CNT)
ON ERROR GOTO RECOVERY
LET CNT = SPLIT(SPLITSTRING$,DATA$,",")
PRINT #ZPLPORT: "^XA^XF";SPLITSTRING$(1);"^FS"
IF CNT >= 2 THEN
FOR I = 2 TO CNT
PRINT #ZPLPORT: "^FN";I-1;"^FD";SPLITSTRING$(I);"^FS"
NEXT I
END IF
PRINT #ZPLPORT: "^XZ"
SUB RECOVERY
RETURN

Comments If the delimiter is an empty string, or does not appear in the SOURCE$ string, the first
entry of the array will be the source string and all other elements will be empty strings.
When the SPLIT function encounters a delimiter at the beginning or end of the source string, or two
delimiters in a row, it populates the corresponding array element with an empty string.
If MAXCOUNT is larger than the number of returned sub-strings (N), the last MAXCOUNT - N array
elements will be empty strings. If MAXCOUNT is larger than the destination array or is negative, the
size of the array will be used as the MAXCOUNT. Therefore, the smallest value among the value of
MAXCOUNT, the size of the return array, or the number of sub-strings found determines the maximum
number of sub-strings that will be returned.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
String Functions
If MAXCOUNT is less than the number of delimiters in a string the last string in the array will hold the
end of the string starting from where the last delimiter was found. For example, if SOURCE$ =
"one,two,three,four,five", DELIMITER$ = ",", and MAXCOUNT = 2, the output would be two strings:
"one" and "two,three,four,five".
If a two dimensional array is provided for DEST$, the array will be filled linearly. For example, an
array that is 2 x 3 (for example, DECLARE STRING MYARRAY$(2,3)) will be filled from (0,0), then
(0,1) up to (2,3).

1/31/18

Programming Guide

P1099958-001

529

530

ZBI Commands
String Functions

SPLITCOUNT
Description This function returns the number of sub-strings that would be returned by the
SPLIT function.

Format SPLITCOUNT(SOURCE$, DELIMITER$)
Parameters
SOURCE$ = the string that will be searched for the provided delimiter.
DELIMITER$ =5

Returns The number of sub-strings that would be returned by the SPLITCOUNT function.
Example: This function shows how to determine the number of sub-strings that the SPLITCOUNT
command would produce

10 LET CNT = SPLITCOUNT("ONE,,,FOUR,FIVE,,SEVEN,", ",")
20 PRINT "Number of sub-strings returned is", STR$(CNT)
RUN
Number of sub-strings returned is 8
Comments None

P1099958-001

Programming Guide

1/31/18

ZBI Commands
String Functions

UCASE$
This function converts a string to all uppercase characters.

Format UCASE$(A$)
Parameters A$ = the base string to convert
Returns A$ converted to uppercase.
Example: This is an example of how to use the UCASE$(A$)command:

10 LET A$="Zebra Technologies"
20 PRINT UCASE$(A$)
RUN
ZEBRA TECHNOLOGIES
Example: This is an example of how to capitalize a line.

10 LET A$="The Cow jUmped Over THE Moon."
20 LET A$=LCASE$(A$)
30 LET A$(1:1)=UCASE$(A$(1:1))
40 PRINT A$
RUN
The cow jumped over the moon.
Comments This will only convert non-accented Latin characters, a-z.

1/31/18

Programming Guide

P1099958-001

531

532

ZBI Commands
String Functions

EXTRACT$
This function searches for a string based on a starting and ending string. When these two strings are
found, the string between them is returned.

Table 27:
Important • If the EXTRACT$ command encounters a carriage return line feed before
encountering the beginning character or the ending character, it returns null.
Format
EXTRACT$ (CHANNEL, START$, STOP$)
EXTRACT$ (A$, START$, STOP$)

Parameters
CHANNEL = extracts data from this channel
A$ = the source string
START$ = Once this string is found, the extract pulls characters immediately following.
STOP$ = the extraction stops when this string is found
Example: This example shows how to extract the word Technologies from this string:

Zebra,Technologies,Corporation.
This is what the program looks like to accomplish this:

10 LET A$ = "Zebra,Technologies,Corporation,"
20 LET DATA$ = EXTRACT$(A$,",",",")

Example: This example shows how the EXTRACT$ command works from an open port:

10 OPEN #1: NAME "SER"
20 LET DATA$ = EXTRACT$(1,",",",")
Notice how the quotes are used to show a literal character, in this case a comma.

Example: This example shows how the start and stop points are variable; a variable name is used
instead of the literal:

10 LET B$ = ","
20 LET A$ = "Zebra,Technologies,Corporation"
30 LET DATA$ = EXTRACT$(A$,B$,B$)
40 PRINT DATA$
RUN
Technologies

P1099958-001

Programming Guide

1/31/18

ZBI Commands
String Functions

Example: This example shows how an empty string can be used to extract from the start of the
input string to the end string:

10 LET IN$ = "BLAH BLAH "
20 LET B$ = EXTRACT$(IN$, "", "")
30 PRINT B$
RUN
BLAH BLAH

Example: This example will use an empty string to extract to the end of a line:

10 LET IN$ = "BLAH  THE DATA"
20 LET B$ = EXTRACT$(IN$, "", "")
30 PRINT B$
RUN
THE DATA
Comments EXTRACT$ reads in and discards data until the start criteria is met. Then, all data is
returned up to the stop criteria.

1/31/18

Programming Guide

P1099958-001

533

534

ZBI Commands
String Functions

ORD
This function returns the ASCII value of the first character of string A$.

Format ORD(A$)
Parameters A$ = Input string: only the first character will be used.
Returns The ASCII value of the first character.
Example: This is an example of how to use the ORD(A$)command:

10 LET A$="ABC"
20 PRINT ORD(A$)
RUN
65
Comments None

P1099958-001

Programming Guide

1/31/18

ZBI Commands
String Functions

POS
This function returns the location of the first occurrence of a search string in the target string. It can
be assigned an index.

Format
POS(A$,B$)
POS(A$,B$,M)

Parameters
A$ = the target string to search
B$ = the search string to find in A$
M = The index to start looking for B$. If omitted, the search will start at the beginning of
the string. M must be greater than zero.
Returns The location of the string. If the string is not found, this will return 0.
Example: This is an example of how to use the POS command:

10 LET A$="Hello World"
20 LET B$="o"
30 PRINT POS(A$,B$)
40 PRINT POS(A$,B$,1)
50 PRINT POS(A$,B$,6)
RUN
5
5
8
Comments None

1/31/18

Programming Guide

P1099958-001

535

536

ZBI Commands
Math Functions

LEN
This function returns the length of a string.

Format LEN(A$)
Parameters A$ = the target string from which to determine the length.
Returns The length of the string.
Example: This example identifies the length of a string. Hello World is 11 characters, as follows:

10 LET A$="Hello World"
20 PRINT LEN(A$)
RUN
11
Comments None

Math Functions
This section identifies how to handle mathematical calculations. Here is a quick list of these
commands:

STR$ Converts a number to a string.
MAX Returns the greater value between two numbers.
MIN Returns the smaller value of two numbers.
MAXNUM returns the largest number permitted by this machine.
MOD Computes the remainder from division.
VAL Evaluates the number represented by a string.
INTTOHEX$ Takes a numeric value and converts it into a hexadecimal string.
HEXTOINT Converts hexadecimal strings to integers.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Math Functions

STR$
This function converts a number to a string.

Format STR$(X)
Parameters X = the number to convert to a string
Returns A string representing X.
Example: This is an example of how to use the STR$(X)command:

10 LET A=53
20 PRINT STR$(A)
RUN
53
Comments None

1/31/18

Programming Guide

P1099958-001

537

538

ZBI Commands
Math Functions

MAX
This function returns the greater value between two numbers.

Format MAX(X,Y)
Parameters
X = the first number to compare
Y = the second number to compare
Returns The greater of X or Y.
Example: This is an example of how to use the MAX(X,Y)command:

10 LET A=-2
20 LET B=1
30 PRINT MAX(A,B)
RUN
1
Comments None

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Math Functions

MIN
This function returns the smaller value of two numbers.

Format MIN(X,Y)
Parameters
X = the first number to compare
Y = the second number to compare
Returns The smaller of X or Y.
Example: This is an example of how to use the MIN(X,Y)command:

10 LET A=-2
20 LET B=0
30 PRINT MIN(A,B)
RUN
-2
Comments None

1/31/18

Programming Guide

P1099958-001

539

540

ZBI Commands
Math Functions

MAXNUM
This function returns the largest number permitted by this machine: 2,147,483,647.

Format MAXNUM
Parameters N/A
Returns The largest number that the NUMERIC type can handle (2,147,483,647).
Example: This is an example of how to use the MAXNUM command:

10 PRINT MAXNUM
RUN
2147483647
Comments None

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Math Functions

MOD
This function computes the remainder from division. (This is known as the modulus.)

Format MOD(X,Y)
Parameters
X = the value to be modulated (numerator).
Y = the base number or divisor (denominator).
Returns The remainder of the division (X/Y).
Example: This is an example of how to use the MOD(X,Y)command:

10 PRINT MOD(25,10)
20 PRINT MOD(2,1)
30 PRINT MOD(3,2)
40 PRINT MOD(9,2)
50 PRINT MOD(-2,9)
60 PRINT MOD(2,0)
RUN
5
0
1
1
-2
ERROR OCCURRED ON LINE 60:DIVIDE BY ZERO
Comments None

1/31/18

Programming Guide

P1099958-001

541

542

ZBI Commands
Math Functions

VAL
This function evaluates the number represented by a string.

Format VAL(A$)
Parameters A$ = This is the input string to pull the number from. Non-numbers are ignored.
Returns The numeric representation of the string.
Example: This is an example of how to use the VAL(A$)command:

10 LET A$="123"
20 LET C=VAL(A$)
30 PRINT C
RUN
123
PRINT VAL("321A123")
321123
Comments None

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Math Functions

INTTOHEX$
Description This function will take a numeric value and convert it into a hexadecimal string.
The range of values for integers is:
-2,147,483,648 to +2,147,483,647
Format INTTOHEX$(A)
Parameters A = The numeric value to convert.
Returns A string representing the integer in hex.
Example: These print statements show the output of the INTTOHEX$ function given different
values.

PRINT INTTOHEX$(1)
1
PRINT INTTOHEX$(10)
A
PRINT INTTOHEX$(16)
10
PRINT INTTOHEX$(20)
14
PRINT INTTOHEX$(30)
1E
PRINT INTTOHEX$(100)
64
PRINT INTTOHEX$(123124)
1EOF4
PRINT INTTOHEX$(-5)
0
PRINT INTTOHEX$(-99)
0
Comments Negative values will be returned as 0.

1/31/18

Programming Guide

P1099958-001

543

544

ZBI Commands
Array Functions

HEXTOINT
This function will convert hexadecimal strings to integers.

Format HEXTOINT(A$)
Parameters A$ = The hex string to convert.
Returns A integer string computed from the hexadecimal string.
Example: These print statements show the output of the INTTOHEX function given different values.

PRINT HEXTOINT("0")
0
PRINT HEXTOINT("A")
10
PRINT HEXTOINT("a")
10
PRINT HEXTOINT("1A")
26
PRINT HEXTOINT("10")
16
PRINT HEXTOINT("AaAa")
43690
PRINT HEXTOINT("AAAA")
43690
PRINT HEXTOINT("-1")
0
PRINT HEXTOINT("-A")
0
Comments Negative values will be returned as 0.

Array Functions
This section describes the functions to search, resize, and query arrays.

REDIM Changes the size of an array.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Array Functions

INSERTROW Inserts a new row into an existing array.
DELROW Deletes a new row from an existing array
ROWSIZE Returns the number of rows in an array.
COLUMNSIZE Returns the number of columns in an array.
FIND Searches a string array for an occurrence of a sub-string.

1/31/18

Programming Guide

P1099958-001

545

546

ZBI Commands
Array Functions

REDIM
This command will change the dimensions of an array.

Format
REDIM
REDIM
REDIM
REDIM

()
(,)
()
(,)

Parameters
 = new number of entries in a single dimension array.
 = new number of rows in a two dimensional array.
 = new number of columns in a two dimensional array.
Example: This example shows how to change a one dimensional numeric array.

10
20
30
40
50

DECLARE NUMERIC
LET SCORES(1) =
LET SCORES(2) =
LET SCORES(3) =
REDIM SCORES(2)

SCORES(3)
85
92
98
! Discard the last one

Example: This example shows how to change a two dimensional string array.

10
20
30
40
50
60
70
80

DECLARE STRING NAMEAGES$(3,2)
LET NAMEAGES$(1,1) = "Abraham"
LET NAMEAGES$(1,2) = "Lincoln"
LET NAMEAGES$(2,1) = "Dwight"
LET NAMEAGES$(2,2) = "Eisenhower"
LET NAMEAGES$(3,1) = "Theodore"
LET NAMEAGES$(3,2) = "Roosevelt"
REDIM NAMEAGES$(5,2) ! Make room for more

Comments The REDIM must have the same number of dimensions as the original declaration of
the array.
• If the array has two dimensions, the second array bound cannot change. It must have the same
value as the original declaration.
• If REDIM makes an array smaller, elements (or rows, for a two dimensional array) at the end of
the array are discarded.
• If REDIM makes an array larger, elements (or rows) are added at the end of the array, and
initialized as they would be with a DECLARE.
This can be an interactive command that takes effect as soon as it is received by the printer, or a
program command that is preceded by a line number.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Array Functions

INSERTROW
This command will insert a new row into an existing array.

Format INSERTROW (, )
Parameters
 = array where the row will be inserted
 = index of the row in the array that the new row will be inserted before
Example: This example shows how to insert a row into the middle of an array.

10
20
30
40
50
60

DECLARE NUMERIC SCORES(3)
LET SCORES(1) = 85
LET SCORES(2) = 92
LET SCORES(3) = 98
INSERTROW(SCORES, 2)
LET SCORES(2) = 100

Example: This example shows how to add a row into the end of an array.

10
20
30
40
50
60

DECLARE NUMERIC SCORES(3)
LET SCORES(1) = 85
LET SCORES(2) = 92
LET SCORES(3) = 98
INSERTROW(SCORES, 4)
LET SCORES(4) = 100

Comments Inserting a row increases the size of the array by one row, and moves all the rows
from INDEX to the end of the array up one row, leaving an empty row at position INDEX.

INDEX cannot be any larger the number of rows in the array plus one. If the number of rows plus
one is provided, the new row will be added to the end of the array.
This can be an interactive command that takes effect as soon as it is received by the printer, or a
program command that is preceded by a line number.

1/31/18

Programming Guide

P1099958-001

547

548

ZBI Commands
Array Functions

DELROW
This command will delete a row from an existing array.

Format DELROW (, )
Parameters
 = the array where the row will be deleted
 = index of the row to delete from the array
Example: This example shows how to delete a row from the middle of an array.

10
20
30
40
50
60
70

DECLARE NUMERIC SCORES(5)
LET SCORES(1) = 85
LET SCORES(2) = 92
LET SCORES(3) = 98
LET SCORES(4) = 45
LET SCORES(5) = 100
DELROW(SCORES, 4) ! Remove the low score

Comments This decreases the size of A by one row, and moves all the rows from INDEX to the
end of the array down by one, overwriting the row at position INDEX.
INDEX cannot be any larger the number of rows in the array.
If the array only has one row, that row may not be deleted.
This can be an interactive command that takes effect as soon as it is received by the printer, or a
program command that is preceded by a line number.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Array Functions

ROWSIZE
This function will return the number of rows in an array.

Format
ROWSIZE(A)
ROWSIZE(A$)
Parameters
A = integer array to query for the number of rows.
A$ = string array to query for the number of rows.
Returns Returns a 0 if the variable is not an array. Returns the number of elements in the array if
the array has only one dimension. Returns the size of the first dimension if the array has two
dimensions.
Example: This example shows how to determine the number of elements in a one dimensional
string array.

10
20
30
40
50
60
70
80

DECLARE STRING NAMES$(3)
LET NAMES$(1) = "Fred"
LET NAMES$(2) = "Wilma"
LET NAMES$(3) = "Barney"
REDIM NAMES$(4) ! Make room for Betty
LET NAMES$(4) = "Betty"
LET NUMOFNAMES = ROWSIZE(NAMES$)
PRINT NUMOFNAMES

Example: This example shows how to determine the number of rows in a two dimensional numeric
array.

10
20
30
40
50
60
70
80
90

1/31/18

DECLARE NUMERIC SQROFTWOLOOKUP(3,2)
LET SQROFTWOLOOKUP (1,1) = 1
LET SQROFTWOLOOKUP (1,2) = 2
LET SQROFTWOLOOKUP (2,1) = 2
LET SQROFTWOLOOKUP (2,2) = 4
LET SQROFTWOLOOKUP (3,1) = 3
LET SQROFTWOLOOKUP (3,2) = 8
LET NUMOFSQRS = ROWSIZE(SQROFTWOLOOKUP)
PRINT NUMOFSQRS

Programming Guide

P1099958-001

549

550

ZBI Commands
Array Functions

COLUMNSIZE
This function will return the number of columns in an array.

Format
COLUMNSIZE(A)
COLUMNSIZE(A$)
Parameters
A = integer array to query for the number of columns.
A$ = string array to query for the number of columns.
Returns A 0 if the variable is not an array. Returns 1 if the array has only one dimension. Returns
the size of the second dimension if the array has two dimensions.
Example: This example shows how to determine the number of elements in a one dimensional
string array.

10
20
30
40
50
60
70
80

DECLARE STRING NAMES$(3)
LET NAMES$(1) = "Fred"
LET NAMES$(2) = "Wilma"
LET NAMES$(3) = "Barney"
REDIM NAMES$(4) ! Make room for Betty
LET NAMES$(4) = "Betty"
LET NUMOFCOLS = COLUMNSIZE(NAMES$)
PRINT NUMOFCOLS

Example: This example shows how to determine the number of columns in a two dimensional
numeric array.

10
20
30
40
50
60
70
80
90

P1099958-001

DECLARE NUMERIC SQROFTWOLOOKUP(3,2)
LET SQROFTWOLOOKUP (1,1) = 1
LET SQROFTWOLOOKUP (1,2) = 2
LET SQROFTWOLOOKUP (2,1) = 2
LET SQROFTWOLOOKUP (2,2) = 4
LET SQROFTWOLOOKUP (3,1) = 3
LET SQROFTWOLOOKUP (3,2) = 8
LET COLCNT = COLUMNSIZE(SQROFTWOLOOKUP)
PRINT COLCNT

Programming Guide

1/31/18

ZBI Commands
Array Functions

FIND
This function will find an element of a string array that contains an identified search string.

Format
FIND(A$,
FIND(A$,
FIND(A$,
FIND(A$,

B$)
B$, START)
COLUMN, B$)
COLUMN, B$, START)

Parameters
A$ = string array to search for B$.
B$ = string to search for within A$.
START = index within a single dimensional array, or row for a two dimensional array, to
start the search.
COLUMN = column to isolate search to in a two dimensional array. This must be supplied
if A$ is a two dimensional array.
Returns Returns a 0 if B$ is not found or if there was an error. Otherwise, returns the index that
contains the first occurrence of the string B$ (the element index for one dimensional arrays, the row
for two dimensional arrays).
Example: This example shows how to find a string in a one dimensional array.

10
20
30
40
50
60
70

1/31/18

DECLARE STRING NAMES$(4)
LET NAMES$(1) = "Fred"
LET NAMES$(2) = "Wilma"
LET NAMES$(3) = "Barney"
LET NAMES$(4) = "Betty"
LET BARNEYIX = FIND(NAMES$, "Bar")
PRINT "Found Barney in element "; STR$(BARNEYIX)

Programming Guide

P1099958-001

551

552

ZBI Commands
Time and Date Functions

Example: This example shows how to find a string that occurs more than once in a two dimensional
array.
10
20
30
40
50
60
70
80
90
100
110
120
130
140
150
160
170
180
190
200
210

DECLARE STRING CLOTHING$(5,2)
LET TYPECOL
= 1
LET MATERIALCOL = 2
LET CLOTHING$(1,1) = "Gloves"
LET CLOTHING$(1,2) = "Knit"
LET CLOTHING$(2,1) = "Pants"
LET CLOTHING$(2,2) = "Cotton"
LET CLOTHING$(3,1) = "Gloves"
LET CLOTHING$(3,2) = "Leather"
LET CLOTHING$(4,2) = "Shirts"
LET CLOTHING$(4,2) = "Polyester"
LET CLOTHING$(5,2) = "Pants"
LET CLOTHING$(5,2) = "Denim"
LET GLOVEIX = 1
DO
LET GLOVEIX = FIND(CLOTHING$, TYPECOL, "Gloves", GLOVEIX)
IF NOT GLOVEIX = 0 THEN
PRINT CLOTHING$(GLOVEIX, MATERIALCOL), "gloves are available"
LET GLOVEIX = GLOVEIX + 1
END IF
LOOP WHILE NOT GLOVEIX = 0

Comments COLUMN must be greater than 0.
If START is given, it must be greater than 0.
FIND will match the first occurrence of B$, even if it is a substring of a string within the A$ array. For
example, “Coat” will be found in both locations 1 and 4.

5 DECLARE STRING A$(5)
10 LET A$(1) = “Over Coat”
20 LET A$(2) = “Hat”
30 LET A$(3) = “Jacket”
40 LET A$(4) = “Coat”
50 LET A$(5) = “Boots”
If an exact match is needed, FIND should be called until 0 is returned or the item is found and
confirmed. To confirm, check the item against the expected item, it should match exactly. See CSV
Program on page 560 for an example showing how to do this.

Time and Date Functions
This section describes the functions to access the real time clock option. Here is a quick list of these
commands:

DATE$ Returns the date as a string
TIME$ Returns the current time in a string.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Time and Date Functions

DATE Gets the current date as a number.
TIME Gets the current time as a number.

1/31/18

Programming Guide

P1099958-001

553

554

ZBI Commands
Time and Date Functions

DATE$
This function returns the date as a string.

Format DATE$
Parameters N/A
Returns The current date in string form YYYYMMDD. If the Real-Time Clock is not installed, an
empty string is returned.
Example: This is an example of how to use the DATE$ command:

10 PRINT DATE$
RUN
The result, assuming the date is January 1, 2003 is:

20030101
Example: This is another example of the DATE$ command used with the sub-string operator to
get the day of the month:

10
20
30
40
50
60
70
80
90

LET A$=DATE$(7:8)
IF A$ <> DATE$(7:8)
LET A$=DATE$(7:8)
IF A$="01"
PRINT "IT IS THE FIRST OF THE MONTH"
END IF
END IF
SLEEP 100
GOTO 20

Comments None

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Time and Date Functions

TIME$
This function returns the current time in a string.

Format TIME$
Parameters N/A
Returns This function returns the time of day in format HH:MM:SS (hours:minutes:seconds). If
the Real-Time Clock is not installed, an empty string is returned.
Example: This is an example of how to use the TIME$command:

10 PRINT TIME$
RUN
10:00:00
Comments None

1/31/18

Programming Guide

P1099958-001

555

556

ZBI Commands
Time and Date Functions

DATE
This function gets the current date as a number.

Format DATE
Parameters N/A
Returns This function returns the current date in YYYYDDD format, where YYYY is the year and
DDD is the number of days since the beginning of the year. If the Real-Time Clock is not installed, 0
is returned.
Example: This example assumes the current date is January 1, 2003:

10 PRINT DATE
RUN
2003001
Comments None

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Set/Get/Do Interactions

TIME
This function gets the current time as a number.

Format TIME
Parameters N/A
Returns This function returns the time past midnight (2400h) in seconds. If the Real-Time Clock is
not installed, 0 is returned.
This is an example of how to use the TIME command [assuming the time is one minute past
midnight]:
Example:

10 PRINT TIME
RUN
60
Comments None

Set/Get/Do Interactions
The printer’s Set/Get/Do data can be directly accessed via ZBI. For a complete listing of what can be
accessed, see SGD Printer Commands on page 571, or type the following:

! U1 getvar "allcv"
Here’s a quick list of these commands:

SETVAR Allows the direct setting of printer parameters.
GETVAR$ Retrieves printer parameters.

1/31/18

Programming Guide

P1099958-001

557

558

ZBI Commands
Set/Get/Do Interactions

SETVAR
Description SETVAR allows the direct setting of printer parameters.

Format SETVAR (PARAM$, VALUE$)
Parameters
PARAM$ = The printer parameter to set.
VALUE$ = the value to set
Returns Parameter dependent.

Table 28:
Example: This is an example of the SETVAR command:

AUTONUM 1,1
LET OUTSTR$ = "Processing"
LET LOOPCTR = 200
LET TIMER5 = 17
LET TMP = REGISTEREVENT(TIMER5, 0, 1000)
DO WHILE LOOPCTR > 0
LET EVT = HANDLEEVENT()
IF EVT = TIMER5 THEN
LET A = SETVAR("device.frontpanel.line2",OUTSTR$)
LET OUTSTR$ = OUTSTR$ & "."
IF LEN(OUTSTR$) >16 THEN
LET OUTSTR$ = "Processing"
END IF
END IF
LET LOOPCTR = LOOPCTR - 1
SLEEP 1
LOOP
LET TMP = UNREGISTEREVENT(TIMER5)
LET A = SETVAR("device.frontpanel.line2","")
END

Comments None

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Example Programs

GETVAR$
This function retrieves printer parameters.

Format GETVAR$ (PARAM$)
Parameters
PARAM$ = the printer parameter to get.
Returns The value of the parameter. Refer to SGD Printer Commands on page 571 for
specific parameters.

Table 29:
Example: This is an example of the GETVAR$ command:
AUTONUM 1,1
LET SGDCOUNT = 7
DECLARE STRING SGDQUERY$(2,SGDCOUNT)
LET SGDQUERY$(1,1) = "appl.name"
LET SGDQUERY$(1,2) = "device.printhead.serialnum"
LET SGDQUERY$(1,3) = "internal_wired.ip.addr"
LET SGDQUERY$(1,4) = "internal_wired.ip.netmask"
LET SGDQUERY$(1,5) = "internal_wired.ip.gateway"
LET SGDQUERY$(1,6) = "internal_wired.ip.port"
LET SGDQUERY$(1,7) = "internal_wired.mac_addr"
FOR I = 1 TO SGDCOUNT
LET SGDQUERY$(2,I) = GETVAR$(SGDQUERY$(1,I))
NEXT I
OPEN #1: NAME "ZPL"
PRINT #1: "^XA"
FOR I = 1 TO SGDCOUNT
PRINT #1: "^FO50,";50*I;"^A0N,25,25^FD";SGDQUERY$(1,I);"=";
PRINT #1: SGDQUERY$(2,I);"^FS"
NEXT I
PRINT #1: "^XZ"

Comments None

Example Programs
The next section provides example programs of common tasks using ZBI commands. These
programs are also available for download at: http://www.zebra.com/zbi

1/31/18

Programming Guide

P1099958-001

559

560

ZBI Commands
Example Programs

Array Program
This program prompts a user to enter first a name; when it is entered, it is added to an array of all
names entered. The user is them prompted to enter an address, which is then added to an array of
all addresses entered. After the user enters a total or five names and addresses, the program uses
the arrays to print the entered data on five labels.
Example: This is an example of Array
1 rem ********************************************************
1 rem Zebra Technologies ZBI Sample Program
1 rem
1 rem Professional programming services are available. Please contact
1 rem ZBI-Experts@zebra.com for more information.
1 rem
1 rem This is an example of using arrays to store and use data within 1 rem ZBI.
1 rem ********************************************************
1 rem close all ports except for the console
1 rem*********************************************************
10 for i = 1 to 9 step 1
20
close #i
30
next i
1 rem ********************************************************
1 rem open a port to the print engine
1 rem ******************************************************
40 open #1: name "ZPL"
1 rem ********************************************************
1 rem create string arrays five elements in size to hold names and
1 rem addresses
1 rem ********************************************************
50 declare string name$(5)
60 declare string address$(5)
1 rem ********************************************************
1 rem infinite loop to put name and address data from console into
1 rem arrays
1 rem ********************************************************
70 do
80 for i = 1 to 5 step 1
90
print "PLEASE ENTER THE NAME"
1 rem ********************************************************
1 rem get data from console; input command looks for CRLF
1 rem ********************************************************
100
input name$(i)
1 rem ********************************************************
1 rem if the user inputs end or END, the program will end
1 rem ********************************************************
110
if name$(i) = "END" or name$(i) = "end" then
120
end
130
end if
140
print "PLEASE ENTER THE ADDRESS"
150
input address$(i)
160
if address$(i) = "END" or address$(i) = "end" then
170
end
180
end if
190 next i
200 for index = 1 to 5 step 1 ! For loop To Print data no label
1 rem ********************************************************
1 rem semicolon at the end prints with no CRLF
1 rem ********************************************************
210
print #1: "^XA^FO30,30^A0N,30,30^FD"&NAME$(INDEX)&"^FS";
1 rem ********************************************************
1 rem ampersand used to concatenate data into strings
1 rem ********************************************************
220
print #1: "^FO30,70^A0N,30,30^FD"&ADDRESS$(INDEX)&"^FS^XZ"
230 next index
240 loop ! loops back To Line 60
250 end

CSV Program
The following program will initialize and then execute continuously, repeating the same series of
operations; process events, read input from the serial port, write any processed data out to the ZPL
port, and then process the data read from the serial port.

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Example Programs
The program first loads the CSV database E:PRODUCTS.CSV (in PROGRAMINIT subroutine).
Then, data read from the serial port is compared against the first column in the database. If an entry
is found in the first column of a row (in FINDITEM subroutine), the data for the respective row is
inserted into the ZPL format E:PRICELBL.ZPL and printed on a label.

Example 1: This is an example of a CSV program.
1 REM SUBROUTINES BELOW....
2 REM
3 REM ************************************************************************
4 REM
MAIN LOOP - DO NOT MODIFY
5 REM ************************************************************************
6 REM
7 GOSUB PROGRAMINIT
8 DO WHILE 1 = 1
9 GOSUB PROCESSEVENTS
10 GOSUB GETINPUT
11 GOSUB WRITEOUTPUT
12 GOSUB PROCESSDATA
13 LOOP
14 REM SUBROUTINES BELOW....
15 REM
16 REM ************************************************************************
17 REM
Program Init
18 REM ************************************************************************
19 REM
20 SUB PROGRAMINIT
21 LET INPORT = 1
22 LET OUTPORT = 2
23 LET ENDLINE$ = CHR$ ( 13 ) & CHR$ ( 10 )
24 OPEN # INPORT : NAME "SER"
25 OPEN # OUTPORT : NAME "ZPL"
26 DECLARE STRING DATABASE$ ( 1 , 1 )
27 LET COLUMNCOUNT = CSVLOAD ( DATABASE$ , "E:PRODUCTS.CSV" )
28 LET OUTDATA$ = "TABLE WITH " & STR$ ( COLUMNCOUNT ) & " COLUMNS LOADED" & ENDLINE$
29 RETURN
30 REM
31 REM ************************************************************************
32 REM
Process Events
33 REM ************************************************************************
34 REM
35 SUB PROCESSEVENTS
36 RETURN
37 REM
38 REM ************************************************************************
39 REM
Get Input
40 REM
41 REM Writes All Data from the serial port to the string INDATA$
42 REM ************************************************************************
43 REM
44 SUB GETINPUT
45 IF LEN ( INDATA$ ) < 5000 THEN
46 LET INCOUNT = READ ( INPORT , A$ , 1024 )
47 LET INDATA$ = INDATA$ & A$
48 END IF
49 RETURN
50 REM
51 REM ************************************************************************
52 REM
Write Output
53 REM
54 REM Writes All Data from the string OUTDATA$ to the ZPL Port
55 REM ************************************************************************
56 REM
57 SUB WRITEOUTPUT
58 LET OUTCOUNT = WRITE ( OUTPORT , OUTDATA$ , LEN ( OUTDATA$ ) )
59 IF OUTCOUNT > 0 THEN
60 LET OUTDATA$ ( 1 : OUTCOUNT ) = ""
61 END IF
62 RETURN
63 REM
64 REM ***************************************************************************
65 REM
Process Data
66 REM
67 REM Parse the data in the string INDATA$ and write output to OUTDATA$
68 REM ************************************************************************
69 REM
70 SUB PROCESSDATA
71 IF LEN ( OUTDATA$ ) > 1000 THEN
72 RETURN

1/31/18

Programming Guide

P1099958-001

561

562

ZBI Commands
Example Programs

73 END IF
74 REM REMOVE ALL LINE FEEDS
75 DO
76 LET LOC = POS ( INDATA$ , CHR$ ( 10 ) )
77 LET INDATA$ ( LOC : LOC ) = ""
78 LOOP WHILE LOC > 0
79 REM COMPLETED LINE FEED REMOVAL
80 LET LOC = POS ( INDATA$ , CHR$ ( 13 ) ) ! Line ends with CR
81 IF LOC > 0 THEN
82 LET INLINE$ = INDATA$ ( 1 : LOC - 1 )
83 LET INDATA$ ( 1 : LOC ) = ""
84 GOSUB FINDITEM
85 IF ROW > 0 THEN
86 LET OUTDATA$ = OUTDATA$ & "^XA^XFE:PRICELBL.ZPL^FS" & ENDLINE$
87 LET OUTDATA$ = OUTDATA$ & "^FN1^FD" & DATABASE$ ( ROW , 1 ) & "^FS" & ENDLINE$
88 LET OUTDATA$ = OUTDATA$ & "^FN2^FD" & DATABASE$ ( ROW , 2 ) & "^FS" & ENDLINE$
89 LET OUTDATA$ = OUTDATA$ & "^FN3^FD" & DATABASE$ ( ROW , 3 ) & "^FS^XZ" & ENDLINE$
90 END IF
91 END IF
92 RETURN
93 REM
94 REM ************************************************************************
95 REM
Find Item
96 REM
97 REM Search the first column of the database for the exact item requested
98 REM ************************************************************************
99 REM
100 SUB FINDITEM
101 LET ROW = 0
102 LET EXPECTED$ = INLINE$
103 DO
104 LET FOUNDENTRY$ = ""
105 LET ROW = FIND ( DATABASE$ , 1 , EXPECTED$ , ROW + 1 )
106 IF ROW <> 0 THEN
107 LET FOUNDENTRY$ = DATABASE$ ( ROW , 1 )
108 END IF
109 LOOP WHILE ( ROW <> 0 AND FOUNDENTRY$ <> EXPECTED$ )
110 RETURN

DPI Conversion Program
This program converts a ZPL format being sent to the printer on the parallel port to 300 dpi (dots per
inch) from 200 dpi (dots per inch). This is done by searching for and extracting ZPL commands with
resolution-dependent arguments and scaling the arguments for a 300 dpi printer.
Example: This is an example of dpi conversion:
1 rem **************************************************
1 rem Zebra Technologies ZBI Sample Program
1 rem
1 rem Professional programming services are available. Please contact
1 rem ZBI-Experts@zebra.com for more information.
1 rem
1 rem This is an example of converting a printer from 200 dpi (dots
1 rem per inch
1 rem to 300 dpi. This example covers only some of the ZPL commands
1 rem that
1 rem could be affected by converting from 200 to 300 dpi printing.
1 rem **************************************************
1 rem open the ports for input and output
1 rem **************************************************
10 close #1
20 close #2
30 open #1 : name "PAR"
40 open #2 : name "ZPL"
1 rem **************************************************
1 rem create an array with the search parameters
1 rem **************************************************
50 declare string find$(20)
60 let find$(1) = "^FO"
70 let find$(2) = "^A0"
80 let find$(3) = "^GB"
90 let find$(4) = "^XZ"
100 let find$(5) = "^A@"
110 let find$(6) = "^LL"
120 let find$(7) = "^LH"
130 let find$(8) = "FO"

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Example Programs

140 let find$(9) = "A0"
150 let find$(10) = "GB"
160 let find$(11) = "XZ"
170 let find$(12) = "A@"
180 let find$(14) = "LH"
190 let find$(15) = "^BY"
200 let find$(16) = "BY"
210 let find$(17) = "^B3"
220 let find$(18) = "B3"
1 rem *******************************************************
1 rem search for the parameters
1 rem *******************************************************
300 do
310
let in$ = searchto$(1, find$, 2)
1 rem ********************************************************
1 rem once a parameter is found, determine how to handle it
1 rem ********************************************************
320
if in$ = "^FO" or in$ = "FO" then
330
gosub 520
340
else if in$ = "^LH" or in$ = "LH" then
350
gosub 520
360
else if in$ = "^A0" or in$ = "A0" then
370
gosub 700
380
else if in$ = "^A@" or in$ = "A@" then
390
gosub 700
400
else if in$ = "^GB" or in$ = "GB" then
410
gosub 1100
420
else if in$ = "^LL" then
430
gosub 1300
440
else if in$ = "^BY" or in$ = "BY" then
450
gosub 1400
460
else if in$ = "^B3" or in$ = "B3" then
470
gosub 1600
480
else if in$ = "^XZ" then
490
print #2: in$;
500
end if
510 loop
1 rem ********************************************************
1 rem convert the ^FO and ^LH commands from 200 to 300 dpi
1 rem ********************************************************
520 inbyte #1: a$
530 let a = ord(a$)
540 if a >= 65 then
550
print #2: in$&a$;
560
goto 660
570 end if
580 let x$ = extract$(1, "", ", ")
590 let x2$ = a$&x$
600 let y$ = extract$(1, "", "^")
610 let x = val(x2$)
620 let y = val(y$)
630 let x2 = (x/2)+x
640 let y2 = (y/2)+y
650 print #2: in$; x2; ","; y2; "^";
660 return
1 rem ********************************************************
1 rem convert the ^A0 and ^A@ commands from 200 to 300 dpi
1 rem ********************************************************
700 inbyte #1: a$
710 let a = ord(a$)
720 let b = 0
730 let c = 0
740 if a >= 65 then
750
print #2: in$&a$; ",";
760
let b = 1
770 end if
780 inbyte #1: a$
790 let h$ = extract$(1, "", ",")
800 if in$ = "^A@" or in$ = "A@" then
810
let c = 1
820
let w$ = extract$(1, "", ",")
830
let m$ = extract$(1, "", "^")
840 else
850
let w$ = extract$(1, "", "^")
860 end if
870 let h = val(h$)
880 let w = val(w$)
900 let h2 = (h/2) + h
910 let w2 = (w/2) + w
920 if b = 1 then
930
print #2: h2; ","; w2;
940 else
1/31/18

Programming Guide

P1099958-001

563

564

ZBI Commands
Example Programs

950
print #2: in$&"N,"; h2; ","; w2;
960 end if
970 if c = 1 then
980
print #2: ","; m$;
990 end if
1000 print #2: "^";
1010 return
1 rem ********************************************************
1 rem convert the ^GB command from 200 to 300 dpi
1 rem ********************************************************
1020 let w$ = extract$(1, "", ",")
1030 let h$ = extract$(1, "", ",")
1040 let t$ = extract$(1, "", "^")
1050 let h = val(h$)
1060 let w = val(w$)
1070 let t = val(t$)
1080 let h2 = (h/2)+ h
1090 let w2 = (w/2)+ w
1100 let t2 = (t/2)+ t
1110 print #2: in$; w2; ","; h2; ","; t2; "^";
1120 return
1 rem ********************************************************
1 rem convert the ^LL command from 200 to 300 dpi
1 rem ********************************************************
1300 let l$ = extract$(1, "", "^")
1310 let l = VAL(l$)
1320 let l2 = (l/2) + l
1330 print #2: in$; l2; "^";
1340 return
1 rem ********************************************************
1 rem convert the ^BY command from 200 to 300 dpi
1 rem ********************************************************
1400 inbyte #1: a$
1410 let a = ord(a$)
1420 if a >= 48 and a <= 57 then
1460
let x$ = extract$(1, "", ", ")
1470
let x2$ = a$&x$
1480
let x = val(x2$)
1490
let x2 = (x/2) + x
1500
if x2 > 10 then
1510
let x2 = 10
1520
end if
1530
print #2: in$; x2; ",";
1540 else
1550
print #2: in$; a$;
1560 end if
1570 return
1 rem ********************************************************
1 rem convert the ^B3 command from 200 to 300 dpi
1 rem ********************************************************
1600 let o$ = extract$(1, "", ", ")
1610 let e$ = extract$(1, "", ", ")
1620 let h$ = extract$(1, "", ", ")
1630 let h = val(h$)
1640 let h2 = (h/2) + h
1650 print #2: in$; o$; ","; e$; ","; h2; ",";
1660 return

Email Program
This program sends a simple email message to user@domain.com, assuming a valid email server is
set up by identifying the SMTP server on the print server. In order to write email via ZBI, the port
written to must be named "EML".
Example: This is an example of email
1
1
1
1
1
1
1
1
1
1
1

P1099958-001

rem
rem
rem
rem
rem
rem
rem
rem
rem
rem
rem

**************************************************
Zebra Technologies ZBI Sample Program
Professional programming services are available. Please contact
ZBI-Experts@zebra.com for more information.
This is an example of connecting to an email server to send
email.
**************************************************
EOT$ is the special character used to denote end of transmission
**************************************************

Programming Guide

1/31/18

ZBI Commands
Example Programs

5 let EOT$ = chr$(4)
1 rem **************************************************
1 rem Open a connection to the email port; if there is an error, try
1 rem again
1 rem **************************************************
10 open #1: name "EML"
15 on error goto 10
1 rem **************************************************
1 rem Specify address to send message to, signal end of recipients
1 rem with EOT$
1 rem Note: To send to multiple addressees, separate addressees with
1 rem a space
1 rem **************************************************
20 print #1: "user@domain.com";EOT$;
1 rem **************************************************
1 rem Fill in the message information
1 rem **************************************************
30 print #1: "From: Sample User"
40 print #1: "To: Recipient"
50 print #1: "Subject: This is a test"
60 print #1: ""
70 print #1: "Hello!"
80 print #1: i
1 rem **************************************************
1 rem Terminate message
1 rem **************************************************
90 print #1: "";EOT$
1 rem **************************************************
1 rem Close the port, since each open port is only good for sending
1 rem one message
1 rem **************************************************
100 close #1
110 sleep 2
120 let i = i + 1
130 goto 10

Extraction 1 Program
This program finds and stores data of interest, which in this case is found in a format after the string
"DATA = ". The extract command is used to get the data from the input stream, and it is inserted
into a simple ZPL format to be printed.
Example: This is an example of Extraction 1.
1 rem **************************************************
1 rem Zebra Technologies ZBI Sample Program
1 rem
1 rem Professional programming services are available. Please contact
1 rem ZBI-Experts@zebra.com for more information.
1 rem
1 rem This is an example of using ZBI for data extraction.
1 rem There are two methods for doing extraction; this example shows
1 rem data extraction using a string.
1 rem
1 rem The data to extract is as follows:
1 rem START
1 rem DATA = "hello":
1 rem DATA = "goodbye":
1 rem END
1 rem **************************************************
1 rem close ports except console, open channels to parallel and serial
1 rem ports
1 rem **************************************************
05 for i = 1 to 9 step 1
10
close #i
20 next i
30 open #1: name "PAR"
40 open #2: name "ZPL"
1 rem **************************************************
1 rem create string array to hold data
1 rem **************************************************
50 declare string format$(3)
60 let format$(1) = "START"
70 let format$(2) = "END"
80 let format$(3) = "DATA"
1 rem **************************************************

1/31/18

Programming Guide

P1099958-001

565

566

ZBI Commands
Example Programs

1 rem main program; look for "START" keyword, if found print ^XA to ZPL port
1 rem **************************************************
90 do
100
let begin$ = searchto$(1,format$,2)
110
if begin$ = "START" then
120
print #2: "^XA";
1 rem **************************************************
1 rem if "DATA" keyword is found, get two data strings
1 rem **************************************************
130
else if begin$ = "DATA" then
140
input #1: data_string1$
150
input #1: data_string2$
1 rem **************************************************
1 rem get data from between quotes and print to ZPL port with formatting
1 rem **************************************************
160
let extracted_data1$ = extract$(data_string1$,"""","""")
170
let extracted_data2$ = extract$(data_string2$,"""","""")
180
print #2:"^FO30,30^A0N,30,30^FD"&extracted_data1$&"^FS";
190
print #2:"^FO30,70^A0N,30,30^FD"&extracted_data2$&"^FS";
200
else if begin$ = "END" then
210
print #2: "^XZ"
220
end if
230 loop

Extraction 2 Program
This program finds and stores data of interest, which in this case is found in a format after the string
"DATA = ". The input command is used to get the data from the input stream, and it is inserted into
a simple ZPL format to be printed.
Example: This is an example of Extraction 2.
1 rem******************************************************
1 rem Zebra Technologies ZBI Sample Program
1 rem
1 rem Professional programming services are available. Please contact
1 rem ZBI-Experts@zebra.com for more information.
1 rem
1 rem This is an example of using ZBI for data extraction.
1 rem There are two methods for doing extraction; this example shows
1 rem data extraction from the port directly.
1 rem
1 rem The data to extract is as follows:
1 rem START
1 rem DATA = "hello":
1 rem DATA = "goodbye":
1 rem END
1 rem******************************************************
1 rem close ports except console, open channels to parallel and serial ports
1 rem******************************************************
05 for i = 1 to 9 step 1
10
close #i
20 next i
30 open #1: name "PAR"
40 open #2: name "ZPL"
1 rem******************************************************
1 rem create string array to hold data
1 rem*******quotes and print to ZPL port with formatting
1 rem***************************************************
50 declare string format$(3)
60 let format$(1) = "START"
70 let format$(2) = "END"
80 let format$(3) = "DATA"
1 rem******************************************************
1 rem main program; look for "START" keyword, if found print ^XA to ZPL port
1 rem******************************************************
90 do
100
let begin$ = searchto$(1, format$, 2)
110
if begin$ = "START" then
120
print #2: "^XA";
1 rem******************************************************
1 rem if "DATA" keyword is found, get two data strings
1 rem******************************************************
130
else if begin$ = "DATA" then

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Example Programs

1 rem***************************************************
1 rem get data from between q
140
let extracted_data1$ = extract$(1,"""","""")
150
input #1: junk$
170
let extracted_data2$ = extract$(1,"""","""")
180
print #2:"^FO30,30^A0N,30,30^FD" &extracted_data1$& "^FS";
190
print #2:"^FO30,70^A0N,30,30^FD" &extracted_data2$& "^FS";
200
else if begin$ = "END" then
210
print #2: "^XZ"
220
end if
230 loop

Front Panel Control
This example shows how to intercept front panel button presses and write to the display to create a
simple menu. The buttons used in this demo are set up for a Z4M/Z6M, ZM400/ZM600, or
RZ400/RZ600. This could be reconfigured to work with any other printer.
Example: This is an example of front panel control.
1 REM This example shows how to override the functionality of the feed key
1 REM and use the front panel display to show a option list
AUTONUM 1,1
REM CLOSE ALL
DECLARE STRING OPTIONS$(5)
FOR I = 1 TO 5
LET OPTIONS$(I) = "Option " & STR$(I)
NEXT I
LET ZPLPORT = 1
OPEN #ZPLPORT: NAME "ZPL"
LET FEEDKEY
= 3
LET SELECTKEY = 10
LET PLUSKEY
= 6
LET MINUSKEY = 7
LET EXITKEY
= 9
LET TMP = REGISTEREVENT(FEEDKEY, 0, 1)
SUB NORMALLOOP
DO WHILE 1 = 1
LET EVT = HANDLEEVENT()
IF EVT = FEEDKEY THEN
LET INDEX = 1
GOSUB REGISTERKEYS
GOSUB SHOWMENU
GOTO FEEDLOOP
END IF
SLEEP 1
LOOP
SUB FEEDLOOP
DO WHILE 1 = 1
LET EVT = HANDLEEVENT()
IF EVT = FEEDKEY THEN
GOSUB RELEASEKEYS
GOSUB HIDEMENU
GOTO NORMALLOOP
ELSE IF EVT = SELECTKEY THEN
GOSUB HANDLEOPTION
ELSE IF EVT = PLUSKEY THEN
LET INDEX = INDEX + 1
IF INDEX > 5 THEN
LET INDEX = 1
END IF
GOSUB SHOWMENU
ELSE IF EVT = MINUSKEY THEN
LET INDEX = INDEX - 1
IF INDEX < 1 THEN
LET INDEX = 5
END IF
GOSUB SHOWMENU
ELSE IF EVT = EXITKEY THEN
GOSUB RELEASEKEYS
GOSUB HIDEMENU
GOTO NORMALLOOP
END IF
SLEEP 1
LOOP

1/31/18

Programming Guide

P1099958-001

567

568

ZBI Commands
Example Programs

REM ******** SUBROUTINE SHOWMENU ***
SUB SHOWMENU
LET LINE1$ = "FEED DISPLAY"
LET LINE2$ = OPTIONS$(INDEX)
GOSUB UPDATEDISPLAY
RETURN
REM ******** SUBROUTINE HIDEMENU ***
SUB HIDEMENU
LET LINE1$ = ""
LET LINE2$ = ""
GOSUB UPDATEDISPLAY
RETURN
SUB UPDATEDISPLAY
LET A = SETVAR("device.frontpanel.line1",LINE1$)
LET A = SETVAR("device.frontpanel.line2",LINE2$)
RETURN
SUB REGISTERKEYS
LET TMP = REGISTEREVENT(SELECTKEY, 0, 1)
LET TMP = REGISTEREVENT(PLUSKEY, 0, 1)
LET TMP = REGISTEREVENT(MINUSKEY, 0, 1)
LET TMP = REGISTEREVENT(EXITKEY, 0, 1)
RETURN
SUB RELEASEKEYS
LET TMP = UNREGISTEREVENT(SELECTKEY)
LET TMP = UNREGISTEREVENT(PLUSKEY)
LET TMP = UNREGISTEREVENT(MINUSKEY)
LET TMP = UNREGISTEREVENT(EXITKEY)
RETURN
SUB HANDLEOPTION
PRINT #ZPLPORT: "^XA^FO100,100^A0N,100,100^FD"; OPTIONS$(INDEX);"^XZ"
RETURN

Recall Program
This program searches for a ZPL format named "FORMAT.ZPL" that is already saved in printer
memory. If the format is found, a number within the format is extracted and shown on the console.
The user is then prompted to enter a new number, which is then substituted into the format.
Example: This is an example of Recall.zpl
1 rem ********************************************************
1 rem Zebra Technologies ZBI Sample Program
1 rem
1 rem Professional programming services are available. Please contact
1 rem ZBI-Experts@zebra.com for more information.
1 rem
1 rem This is an example of recalling a ZPL format and extracting data
1 rem from it.
1 rem ********************************************************
1 rem close ports except console, open ZPL port and declare search
1 rem array
1 rem ********************************************************
10 for i = 1 to 9 step 1 ! Close all ports
20
close #i
30 next i
40 let zplport = 2
50 open #zplport: name "ZPL"
60 declare string search_zpl$(2)
70 let search_zpl$(1) = chr$(03)
80 let search_zpl$(2) = "FORMAT.ZPL"
1 rem ********************************************************
1 rem main program; look for format to recall on printer
1 rem ********************************************************
90 do
100
print #zplport: "^XA^HWE:*.ZPL^FS^XZ"
110
let present = 0
115
let find$ = ""
120
do until find$ = chr$(03)
130
let find$ = searchto$(zplport, search_zpl$)
140
if find$ = "FORMAT.ZPL" then
150
let present = 1 ! format is present
160
end if
170
loop
1 rem ********************************************************
1 rem if format is not found, create a format and set data value to
1 rem 000

P1099958-001

Programming Guide

1/31/18

ZBI Commands
Example Programs

1 rem ********************************************************
180
if present = 0 then
190
print #zplport:"^XA^DFE:FORMAT.ZPL^FS";
200
print #zplport:"^FX000^FS^XZ"
210
let counter$ = "000"
1 rem ********************************************************
1 rem if format is found, extract the data from ^FX field
1 rem ********************************************************
220
else
230
print #zplport:"^XA^HFE:FORMAT.ZPL^FS^XZ"
240
let stop$ = searchto$(zplport, "^FX")
250
let counter$ = extract$(zplport, "", "^FS")
260
let stop$ = searchto$(zplport, "^XZ")
270
end if
1 rem ********************************************************
1 rem print current data value, prompt user to replace data
1 rem ********************************************************
280
print ""
290
print "Current number in format is " & counter$
300
print "Please enter new number (type EXIT to end) ";
310
input new_counter$
320
if new_counter$ = "EXIT" then
330
print "Program ending"
340
end
350
else
360
print #zplport:"^XA^DFE:FORMAT.ZPL^FS";
370
print #zplport:"^FX" & new_counter$ & "^FS^XZ"
380
end if
390 loop

Scale Program
This program reads data from a scale connected to the serial port by sending a "W" to the scale
and waiting for a weight to be returned. When the weight is received, it is inserted into a simple label
format and printed.
Example: This is an example of Scale
1 rem ********************************************************
1 rem Zebra Technologies ZBI Sample Program
1 rem
1 rem Professional programming services are available. Please contact
1 rem ZBI-Experts@zebra.com for more information.
1 rem
1 rem This is an example of using ZBI to read scale data from the
1 rem serial port.
1 rem ********************************************************
1 rem close all ports except console, open channels to parallel and
1 rem serial ports
1 rem ********************************************************
05 for i = 1 to 9 step 1
10
close #i
20
next i
30 open # 2 : name "SER"
40 open # 1 : name "ZPL"
1 rem ********************************************************
1 rem main program; send serial port a 'W' in order to get a weight
1 rem ********************************************************
50 do
60
do
70
sleep 1
! sleep so scale is not bombarded with incoming
1 rem data
80
print # 2 : "W" ;
! semicolon ends sent W without a CRLF
1 rem ********************************************************
1 rem get response from scale; note that input requires a CRLF to be
1 rem entered
1 rem ********************************************************
90
input # 2 : a$
100
if a$ = "EXIT" then! back door exit - if EXIT is received, ZBI ends
110
close # 2
120
print #1: "^XZ"
130
close #1
140
end
150
end if

1/31/18

Programming Guide

P1099958-001

569

570

ZBI Commands
Example Programs

1 rem ********************************************************
1 rem loop until valid weight is received, then print on label
1 rem ********************************************************
160
loop while pos ( a$ , "000.00" ) = 1 or pos ( a$ , "?" ) = 1
170
print # 1 : "~SD25^XA^FS";
180
print # 1 : "^LH0,0^FS";
190
print # 1 : "^FO56,47^A0N,69,58^FDThis weighs^FS";
1 rem ********************************************************
1 rem print weight on label; & character concatenates strings
1 rem ********************************************************
200
print # 1 : "^FO56,150^A0N,69,58^FD" & A$ & " lbs^FS";
210
print # 1 : "^PQ1,0,0,N";
220
print # 1 : "^XZ"
1 rem ********************************************************
1 rem loop until weight is off scale, then repeat for next item
1 rem weighed
1 rem ********************************************************
230
do
240
print # 2 : "W" ;
250
input # 2 : A$
260
loop until pos(A$ , "000.00") = 1 or pos(A$ , "?") = 1
270 loop

P1099958-001

Programming Guide

1/31/18

SGD Printer
Commands

This chapter provides a high-level overview of printer setting Set / Get / Do (SGD) commands. For
printer support of these SGD commands, see SGD Command Support on page 1393.

SGD commands are available in printers with the following firmware versions or later:
•
•
•
•
•
•
•

•
•
•
•
•
•

V66.17.4Z or later
V61.15.xZ or later
V60.16.2Z or later
V60.15.xZ or later
V50.15.xZ or later
V56.15.xZ or later
V53.16.x or later

V53.15.2Z or later
R53.16.3Z or later
R60.15.8Z or later
R62.15.8Z or later
R63.15.8Z or later
R65.15.8Z or later

Important • These are important points to note when using ZPL and SGD commands:
•
•
•
•
•

SGD commands are case-sensitive.
ZPL and SGD commands should be sent to the printer as separate files.
Certain settings can be controlled by both ZPL and SGD. Configuration changes made in ZPL
can affect configuration changes made in SGD.
Changes made with one command type (ZPL or SGD) will affect the data returned to the host
in response to both ZPL and getvar commands. The command type (ZPL or SGD) that was
sent last determines the current setting.
Some RF cards do not support all of the SGD commands.

Important • These are important points to note when using a Zebra G-Series printer:
•

•

1/31/18

You can send instructions to the printer using multiple programming languages: EPL, ZPL, or
SGD. EPL and ZPL commands configure the printer, print labels, and get device status
information. SGD commands set and get configuration details. These three languages can be
used without the need to send the printer instructions to switch from one language to another.
EPL, ZPL, and SGD commands must be sent to the printer as separate files. They cannot be
used together in one format, or set of commands. For example, if you send a series of SGD
commands to the printer and they are followed by a printable format, this needs to be done
using separate files.

Programming Guide

P1099958-001

572

SGD Printer Commands
Overview

Overview
This section describes how and why to use the Set / Get / Do (SGD) commands. It also provides an
example of a typical command structure.
SGD commands are commands that allow you to configure all printers with firmware versions
V60.15.xZ, V50.15.xZ, V61.15.xZ, V56.15.xZ, V53.15.xZ, or later. The printer performs the specified
function immediately after receiving the command. The commands are:
• setvar
• getvar
• do

Important • SGD commands must be terminated by a carriage return or a space and line
feed, and the command, attributes, and values must be specified in lower case.

setvar Command
Setvar commands:
• are used to configure printer settings to specific values by setting them in the printer
• must be terminated by a space character or a CR/ LF (0x0D, 0x0A)

getvar Command
Getvar commands:
• are used to get the current value of the printer settings
• must be terminated by a space character or CR/LF (0x0D, 0x0A)
The printer responds with the printer setting of “?” if:
• the printer setting does not exist (usually due to incorrect spelling of the printer setting)
• it has not been configured yet

do Command
Do commands:
• are used to instruct the printer to perform predefined actions
• must be terminated by a space character or a CR/LF (0x0D, 0x0A)
Some Do commands require additional settings which must be enclosed in double quotes.

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
Command Structure

Command Structure
It is important to understand the structure of the command and its components. A command
structure illustration is provided for each command in this guide.
Example: This is an example of a command structure illustration:

1
2
3

! U1 setvar

"ip.addr"

"value"

1

2

3

Command—always preceded with an exclamation point (!) and must be specified in
lower case. A space resides between the !and U1 and between U1 and the command
(setvar or getvar).
Attribute—always in double quotes and must be specified in lower case.
Chosen value—always in double quotes. Only applicable for setvar and do.

This command must be terminated by a space character or a CR/ LF (0x0D, 0x0A).

How to Send Multiple SGD Commands
For any getvar, setvar, or do command, if you issue the syntax without the "1" and use the END
command followed by a space, multiple SGD commands are sent simultaneously.
Example: This syntax shows how you can send multiple getvar commands:

1

! U getvar "ip.telnet.enable"
getvar "ip.dhcp.enable"

2
3

1
2
3

1/31/18

getvar "ip.dhcp.cid_prefix"
END

The command portion of the string does not use the "1" after the "! U".
Commands issued after the first command do not require the "! U".
The string of commands is terminated by the word "END" with a space after the word,
and by a carriage return/ line feed.

Programming Guide

P1099958-001

573

574

SGD Printer Commands
JSON (JavaScript Object Notation)

JSON (JavaScript Object Notation)
JSON (JavaScript Object Notation) is an open standard format that uses human- and machinereadable text for device management. It transmits data objects consisting of elements as attribute–
value pairs.
You can use use JSON as an alternative to using the SGD (Set-Get-Do) mechanism when reading
or writing parameters on QLn and iMZ mobile printers. JSON is a popular open standard for
exchanging data objects and is well suited to this task.
The main settings channel for JSON is TCP port 9200, but other ports can be used. JSON
commands are processed when received. Up to eight connections are allowed, and all connected
ports are active, and the JSON comands will work while the printer is printing.
The port used for JSON can be changed or disabled using ip.port_json_config on page 1152.

Note • JSON is available on all communications ports, unless line_print is enabled, in which
case you must use the main TCP JSON port, 9200. If you connect to port 9200, the printer ONLY
accepts JSON commands. CPCL, SGD, ZPL, and other command languages . are not supported.

Configuring JSON Usage for Communications
All JSON commands should follow the JSON specification for escaping, spacing, etc. All JSON
commands are prefixed by {}. Refer to http://www.json.org/ for full details on JSON formatting.
By enclosing a variable’s value in curly braces, it indicates that the value is an object. Inside the
object, you can declare any number of properties using a "name": "value" pairing, separated by
colons. Multiple pairings are separated by commas.
Use the SGD variable name in the JSON command structure. To configure JSON usage for
communication, refer to the following examples.

Getvar using JSON
Example 1 • To do a getvar in SGD you use the format:
! U1 getvar "sgd.name"
! U1 getvar "ip.port"
! U1 getvar "device.location"
To get a variable value using JSON:

{}{"sgd.name":null} returns {"sgd.name":"value"}
{}{"ip.port":null} returns {"ip.port":"9100"}
{}{"device.location":null} returns {"device.location":"my desk"}

Example 2 • You can get several values as follows:
{}{"device.friendly_name":null, "device.company_name":null,
"device.company_contact":null, "device.location":null}
The response is:

{"device.friendly_name":"XXQLJ120900310",
"device.company_name":"Zebra Technologies",
"device.company_contact":"123-555-1212",
"device.location":"My Desk"}

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
JSON (JavaScript Object Notation)

Setvar using JSON
Example 1 • To do a setvar in SGD you use the format:
! U1 getvar "sgd.name" "value"
! U1 getvar "ip.port" "9200"
! U1 setvar "device.location" "my desk"
To set a variable value using JSON:

{}{"sgd.name":"value"} sets the variable value to "value"
{}{"ip.port":"1234"} sets the variable value to "1234"
{}{"device.location":"my desk"} sets the variable value to "my desk"

Note • When you set an SGD value, it will return the value that was set, or the old value if
the set failed. If:

{}{"sgd.name":"new_value"} fails, the variable value remains "old_value"

Example 2 • To set several values at once:
{}{"device.friendly_name":"XXQLJ120900310",
"device.company_contact":"123-555-1212", "device.location":"My
Desk"}
The response is:

{"device.friendly_name":"XXQLJ120900310",
"device.company_contact":"123-555-1212", "device.location":"My
Desk"}

Get an SGD Branch
You can retrieve all branch values by specifying the branch.
Example:

{}{"bluetooth":null} returns all SGDs in branch and their values.

Get an allvalues Report
You can request an allvalues report with just the values for all settings with characteristics. This
will return all SGDs and their values.
Example:

{}{"allvalues":
{"ip.port":"6101”, "ip.port_alternate":"9100”,
"ip.sgd_json_port":"9200”,
...
}}

1/31/18

Programming Guide

P1099958-001

575

576

SGD Printer Commands
JSON (JavaScript Object Notation)

Get an allconfig Report
You can request an allconfig report using JSON, and it will return all settings with characteristics.

Example 1 • To get all SGDs and their values along with various other information including
defaults:

{}{"allconfig":null}

Note • For the "allconfig" response, it will start with
{"allconfig":{
and end with

}}

Example 2 • If you do an allconfig, you can get the setting attributes for all settings as follows:
{"allconfig": {"ip.port":{"value":"6101","type":"integer","range":"065535","clone":true,
"archive":true,"access":"RW"},
"ip.port_alternate":{"value":"9100","type":"integer","range":"065535","clone":true,
"archive":true,"access":"RW"},
"ip.sgd_json_port":{"value":"9200","type":"integer","range":"065535","clone":true,
"archive":true,"access":"RW"}, another setting, ... the last setting}}
where:
• "value" = indicates the current value stored in the setting.
• "type" = indicates the type of value. Possible values are integer, enum, bool, string, double,
ipv4-address, ipv6- address.
• "range" = indicates the range of a setting. For strings this is the range of the string length. For
enums it is the possible enum values.
• "clone" = indicates if it is safe to store this setting and apply it to another link-os printer.
• "archive" = indicates if is safe to store this setting and apply it to same link-os printer at a
later time.
• "access" = indicates if the setting is RW (read/write), R (read-only), or W (write-only).

Example 3 • If you do an allconfig, you can get the setting attributes for all settings as follows:
{}{"allconfig":null}
For the values used above it returns these entries:
"device.friendly_name":{"value":"XXQLJ120900310","type":"string","range":
"0-17","clone":false,"archive":true,"access":"RW"},
"device.company_contact":{"value":"123-555-1212","type":"string","range":
"0-128","clone":true,"archive":true,"access":"RW"},
"device.location":{"value":"my desk","type":"string","range":"
0-128","clone":true,"archive":true,"access":"RW"},

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
alerts.addalerts.add

alerts.add
This command is used to configure the ZebraNet Alert System. It allows Zebra software to add new
alerts without having to use the ZPL ^SX command. This allows software to configure printers which
do not have ZPL on them, and it provides the software with a single way in for configuring alerts. It
also allows the software to configure alerts via local ports such as USB and serial.
The format is similar to the ^SX command. It can delete the alert when both the set and clear flags
are set to FALSE.

Commands

Details

setvar

This command instructs the printer to add the new alert with the configuration specified in the
comma delimited list.
The parameter is a comma delimited list of the following:
• The alert condition. This can be any of the values returned from alerts.conditions
on page 578.
• The alert destination type. This can be any of the value returned from alerts.destinations
on page 580.
• On Set - Set to Y if the alert should be sent when the event is set
• On Clear - Set to Y if the alert should be sent when the event is cleared
• Destination address - applies to TCP,UDP,EMAIL,SNMP, SDK, and HTTP POST destination
types. The maximum length of this address is 255 characters.
• Port - Applies to TCP and UDP types
• Quelling - When set to "Y" it prevents the alert from being sent. "N" is the default.
• SGD Name - the name of the SGD command to be added. This is valid only when the alert
condition is SGD_SET.
Format: ! U1 setvar "alerts.add" "[condition],[destination],[set],
[clear],[destination_address],[port],[quelling],[SGD_name]"
Values: Defined via alerts.conditions on page 578: PAPER OUT, RIBBON OUT, HEAD TOO
HOT, HEAD COLD, HEAD OPEN, SUPPLY TOO HOT, RIBBON IN, REWIND, CUTTER JAM, MED,
PRINTER PAUSED, PQ JOB COMPLETED, LABEL READY, HEAD ELEMENT BAD, BASIC RUNTIME,
BASIC FORCED, POWER ON, CLEAN PRINTHEAD, MEDIA LOW, RIBBON LOW, REPLACE HEAD,
BATTERY LOW, RFID ERROR, ALL MESSAGES, COLD START, SGD SET
Default: NA
This command has the same functionality as the setvar.

do

Format: ! U1 do "alerts.add" "[condition],[destination],[set],
[clear],[destination_address],[port],[quelling],[SGD_name]"

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™
Example: This example shows a "Paper Out" alert sent via the serial port, with no destination
address specified.

! U1 setvar "alerts.add" "PAPER OUT,SERIAL,Y,N,,0,,"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

577

578

SGD Printer Commands
alerts.conditionsalerts.conditions

alerts.conditions
This command lists the available conditions that can be specified in the first parameter of the
alerts.add SGD. See alerts.add on page 577 for information on the various parameters.

Commands

Details

getvar

This command retrieves the list of available alert conditions for the printer.
Format: ! U1 getvar "alerts.conditions"
Values: PAPER OUT, RIBBON OUT, HEAD TOO HOT, HEAD COLD, HEAD OPEN, SUPPLY TOO
HOT, RIBBON IN, REWIND, CUTTER JAM, MED, PRINTER PAUSED, PQ JOB COMPLETED,
LABEL READY, HEAD ELEMENT BAD, BASIC RUNTIME, BASIC FORCED, POWER ON, CLEAN
PRINTHEAD, MEDIA LOW, RIBBON LOW, REPLACE HEAD, BATTERY LOW, RFID ERROR, ALL
MESSAGES, COLD START, SGD SET
Default: ""

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
alerts.configuredalerts.configured

alerts.configured
This command creates a list of all the alerts that are configured on the printer. The alerts are
delimied by the '|' character.

Important • Writing to this SGD will clear out the old alerts and setup the new ones.

Commands

Details

setvar

Creates the list of alerts configured on the printer.
Format:

! U1 setvar "alerts.configured" ""
Values: A list of alerts to be setup on the printer. See alerts.add for the format of the individual
alerts.
Default: "COLD START,SNMP,Y,N,255.255.255.255,162,N"
Retrieves the currently configured alerts on the printer.

getvar

Format: ! U1 getvar "alerts.configured"

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

579

580

SGD Printer Commands
alerts.destinationsalerts.destinations

alerts.destinations
This command lists the available destinations that can be specified in the first parameter of the
alerts.add SGD. See the alerts.add on page 577 for information on the various parameters.

Commands

Details

getvar

This command returns a comma-delimited list of available alert destinations.
Format: ! U1 getvar "alerts.destinations"
Values: SERIAL, PARALLEL, E-MAIL, TCP, UDP, SNMP, USB, HTTP-POST, BLUETOOTH,
SDK
Default: NA

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
alerts.http.authentication.addalerts.http.authentication.add

alerts.http.authentication.add
This command allows the user to add a single server/username/password triplet into the list of
authentication entries.
When the printer attempts to connect to the URL in the HTTP POST alert, the server may require
HTTP authentication (such as digest, basic, DNS, etc.). There may be multiple authentication
requests along the route to the destination (for example, a local server first requires HTTP
authentication as well as on the remote server). For each HTTP authentication request received
while attempting to connect, the printer will enumerate the authentication entries and attempt to
satisfy the request with the username/password pair provided for the respective server. The server
name in the entry is what determines which username/password pair should be used for which
authentication request. Both DNS names and IP addresses are acceptable.
The server, username, and password are separated by a single space (not a tab or other white
space character). The server name is the only required field. If no username is supplied, but a
password is, there must be two spaces between the server and the password fields. If there is a
username but no password, or simply just the servername, no space is required at the end of the
entry.

Commands

Details

setvar

This command adds server/username/password triplet into the list of authentication entries.
Format:

! U1 setvar "alerts.http.authentication.add" "servername[ username][
password]"
Values: Maximum string of 2048 characters.
Default: NA
do

This command has the same settings as the setvar.
Format:

! U1 do"alerts.http.authentication.add" "servername[ username][
password]"
Values: Maximum string of 2048 characters.
Default: NA

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Example 1 • A username and a password is supplied:
! U1 setvar "alerts.http.authentication.add" "my.server.lan johndoe
password"

Example 2 • No password is supplied:
! U1 setvar "alerts.http.authentication.add" "my.server.lan johndoe"

1/31/18

Programming Guide

P1099958-001

581

582

SGD Printer Commands
alerts.http.authentication.addalerts.http.authentication.add

Example 3 • No username is supplied (note the double space):
! U1 setvar "alerts.http.authentication.add"
"my.server.lan password"

Example 4 • No username or password is supplied:
! U1 setvar "alerts.http.authentication.add" "my.server.lan"

Note •
•
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.
For details on HTTP POST, see HTTP POST Alerts on page 1493.

Programming Guide

1/31/18

SGD Printer Commands
alerts.http.authentication.entriesalerts.http.authentication.entries

alerts.http.authentication.entries
This command lists the server names added to the authentication entries list via
alerts.http.authentication.add.
Only the server names will be shown; the username and passwords will not be shown. The server
names are separated by a \r\n so that each shows up on its own line and is easier to read.

Commands

Details

getvar

This command lists the server names added to the authentication entry list.
Format: ! U1 getvar "alerts.http.authentication.entries"
Values: A list of server names.
Default: NA

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Note •
•
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.
For details on HTTP POST, see HTTP POST Alerts on page 1383.

Programming Guide

P1099958-001

583

584

SGD Printer Commands
alerts.http.authentication.removealerts.http.authentication.remove

alerts.http.authentication.remove
This command allows the user to remove a single server/username/password triplet from the list of
authentication entries. To remove an entry, only the server name is supplied, and the entire entry will
be removed. If an invalid entry is supplied no action is taken.
Note that the list of authentication triplets will be updated (and saved over a reset) but this SGD is
just a command and doesn't have state. Therefore the persistent and restore defaults do not apply.
The internal list that this command removes from, however, is persistent and defaultable (defaults to
an empty list).

Commands

Details
Removes a server/username/password triplet into the list of authentication entries.

setvar

Format: ! U1 setvar "alerts.http.authentication.remove" "servername"
Values: Maximum string of 2048 characters.
Default: NA
This command has the same settings as the setvar.

do

Format: ! U1 do "alerts.http.authentication.remove" "servername"
Values: Maximum string of 2048 characters.
Default: NA

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™
Example: A username and a password is supplied

! U1 setvar "alerts.http.authentication.remove" "my.server.lan"

Note •
•
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.
For details on HTTP POST, see HTTP POST Alerts on page 1383.

Programming Guide

1/31/18

SGD Printer Commands
alerts.http.logging.clearalerts.http.logging.clear

alerts.http.logging.clear
This command clears the weblink alerts log entries. It does not disable logging. Setting this
command to any value, including an empty string, will clear the weblink log entries.

Commands

Details

setvar

This command clears the weblink alerts log entires.
Format: ! U1 setvar "alerts.http.logging.clear" "value"
Values: Any string value, including an empty string.
Default: NA
This command clears the weblink alerts log entires.

do

Format: ! U1 do "alerts.http.logging.clear" "value"
Values: Any string value, including an empty string.
Default: NA

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™
Example: This example clears the log entries with an empty string value.
! U1 setvar "alerts.http.logging.clear" ""

Note •
•
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.
For details on HTTP POST, see HTTP POST Alerts on page 1383.

Programming Guide

P1099958-001

585

586

SGD Printer Commands
alerts.http.logging.entriesalerts.http.logging.entries

alerts.http.logging.entries
This command returns the N number of entries in the http log, where N has a maximum value that is
set by alerts.http.logging.max_entries.
The alerts http log is a collection of events related to sending HTTP POST messages. The log
entries range anywhere from general status to errors that prevented a successful connection. Each
log entry contains a timestamp for when it was logged by the system. The newest events will appear
at the bottom of the list.

Commands

Details

getvar

This command returns the number of entries in the HTTP log.
Format: ! U1 getvar "alerts.http.logging.entries"
Values: NA
Default: NA

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™
Example: This example shows the result from alerts.http.logging.entries:

[01-03-2013 12:48:59.964] [http] Connected to 10.3.4.58 (10.3.4.58)
port 80
[01-03-2013 12:48:59.978] [http] HTTP/1.1 100 Continue
[01-03-2013 12:49:01.999] [http] Closing connection

Note •
•
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.
For details on HTTP POST, see HTTP POST Alerts on page 1383.

Programming Guide

1/31/18

SGD Printer Commands
alerts.http.logging.max_entriesalerts.http.logging.max_entries

alerts.http.logging.max_entries
This command specifies the maximum number of individual log entries that will be stored in the
alert.http.logging.entries command.

Important • Changes to this command are immediate and may result in some log entries
being lost. If there are N log entries currently in the log, the user sets the max_entires to M,
where M is less than N, the oldest (N-M) log entries will be removed.

Commands

Details

setvar

This command sets the maximum number of log entires that will be stored.
Format: ! U1 getvar "alerts.http.logging.max_entries" "value"
Values: 0 - 10000
Note • Setting the value to 0 disables logging.
Default: "0"
This command returns the setting for the maximum number of log entries that will be stored.

getvar

Format: ! U1 getvar "alerts.http.logging.max_entries"
This command sets the maximum number of log entires that will be stored.

do

Format: ! U1 do "alerts.http.logging.max_entries" "value"
Values: 0 - 10000
Note • Setting the value to 0 disables logging.
Default: "0"

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™
Example: In this example, alert.http.logging.max_entries is then set to 2.

[01-03-2013 12:48:59.964] [http] Connected to 10.3.4.58 (10.3.4.58)
port 80
[01-03-2013 12:48:59.978] [http] HTTP/1.1 100 Continue
[01-03-2013 12:49:01.999] [http] Closing connection
When it is set to 2

[01-03-2013 12:48:59.978] [http] HTTP/1.1 100 Continue
[01-03-2013 12:49:01.999] [http] Closing connection

Note •
•
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.
For details on HTTP POST, see HTTP POST Alerts on page 1383.

Programming Guide

P1099958-001

587

588

SGD Printer Commands
alerts.http.proxyalerts.http.proxy

alerts.http.proxy
This command assigns the URL of the proxy for any HTTP POST alerts. The proxy server protocol,
port, domain, username, and password are all encoded into the URL via the format outlined in
RFC2396 (http://www.ietf.org/rfc/rfc2396.txt).
The username and password must avoid the invalid characters listed in RFC2396
(e.g. ':', '@', '/', etc). If an invalid character must be used it needs to be escaped using '%' as
described in RFC2396.
When the setting is changed, the next HTTP POST alert will use the new value.

Commands

Details

setvar

This command assigns the proxy URL for HTTP POST alerts.
Format: ! U1 setvar "alerts.http.proxy"
"http://username:password@mydomain.com:3128/"
Values: Any valid URL up to 2048 characters
URL format expected: http://[user:pass@]domain[:port]/[path]
Default:
• The user:pass, port, and path are all optional.
• The default port is 1080.
• The default is to omit the username and password.
This command retrieves the proxy URL for HTTP POST alerts.

getvar

Format: ! U1 getvar "alerts.http.proxy"
This command assigns the proxy URL for HTTP POST alerts.

do

Format: ! U1 do "alerts.http.proxy"
"http://username:password@mydomain.com:3128/"
Values: Any valid URL up to 2048 characters
URL format expected: http://[user:pass@]domain[:port]/[path]
Default:
• The user:pass, port, and path are all optional.
• The default port is 1080.
• The default is to omit the username and password.

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™
Example: Examples of how to connect to various proxy servers:

http://username:password@mydomain.com:3128/
http://mydomain.com/

Note •
•
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.
For details on HTTP POST, see HTTP POST Alerts on page 1383.

Programming Guide

1/31/18

SGD Printer Commands
alerts.tracked_settings.clear_logalerts.tracked_settings.clear_log

alerts.tracked_settings.clear_log
This command clears the alerts.tracked_settings.log. Setting this command to any value,
including an empty string, will clear the tracked_sgds log entries.

Commands

Details

setvar

This command clears the tracked_sgds log entires.
Format: ! U1 setvar "alerts.tracked_settings.clear_log" "value"
Values: Any string value, including an empty string.
Default: NA
This command clears the tracked_sgds log entires.

do

Format: ! U1 do "alerts.tracked_settings.clear_log" "value"
Values: Any string value, including an empty string.
Default: NA

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™
Example: This example clears the log entries with an empty string value.
! U1 setvar "alerts.tracked_settings.clear_log" ""

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

589

590

SGD Printer Commands
alerts.tracked_settings.log_trackedalerts.tracked_settings.log_tracked

alerts.tracked_settings.log_tracked
This command creates a comma-delimited list of settings for which sets should be logged.

Commands

Details

setvar

This command sets the list of settings for which sets should be logged.
Format: ! U1 setvar "alerts.tracked_settings.log_tracked"
"settings.name1,settings.name2..."
Values: Settings with commas between names.
Default: ""
This command returns a comma-delimited lists of settings being logged.

getvar

Format: ! U1 getvar "alerts.tracked_settings.log_tracked"
This command sets the list of settings for which sets should be logged.

do

Format: ! U1 do "alerts.tracked_settings.log_tracked"
"settings.name1,settings.name2..."
Values: Settings with commas between names.
Default: ""

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
alerts.tracked_settings.max_log_entries

alerts.tracked_settings.max_log_entries
Sets or retrieves the maximum number of entries to be shown in the
alerts.tracked_settings.log.

Commands

Details

setvar

Format: ! U1 setvar "alerts.tracked_settings.max_log_entries" "value"
! U1 do "alerts.tracked_settings.max_log_entries" "value"
Values: 0 - 10000
Default: 100
Format: ! U1 getvar "alerts.tracked_settings.max_log_entries"

getvar

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520, ZQ530
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

591

592

SGD Printer Commands
alerts.tracked_sgds.logalerts.tracked_sgds.log

alerts.tracked_sgds.log
This command reports the log of the settings listed in alerts.tracked_settings.log_tracked.
The log entries will be fully JSON complaint.

Commands

Details

getvar

This command retrieves the current log.
Format: ! U1 getvar "alerts.tracked_sgds.log"

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™
Example: Sending ! U1 getvar "alerts.tracked_settings.log" returns:
:"[{"settingsName":"newValue","timestamp"
:"06-24-2012 19:51:28.641"}]" for 1 entry or
"[{"settingsName":"newValue","timestamp"
:"06-24-2012
19:51:28.641"},\r\n{"settingsName2":"newValue2","timestamp":"06-24-2012
19:51:30.641"}] for 2 entries.

Note • When the log is empty, the result will be:
""

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
alerts.tracked_sgds.max_log_entriesalerts.tracked_sgds.max_log_entries

alerts.tracked_sgds.max_log_entries
This command sets the maximum number of entries to be shown in
alerts.tracked_settings.log.

Commands

Details
This command sets the maximum number of alert log entires that will be stored.

setvar

Format: ! U1 setvar "alerts.tracked_sgds.max_log_entries" "value"
Values: 0 - 10000
Default: "100"

Note • Setting the value to 0 disables logging.
This command returns the setting for the maximum number of alert log entires that will be stored.

getvar

Format: ! U1 getvar "alerts.tracked_sgds.max_log_entries"
This command sets the maximum number of alert log entires that will be stored.

do

Format: ! U1 setvar "alerts.tracked_sgds.max_log_entries" "value"
Values: 0 - 10000
Default: "100"

Note • Setting the value to 0 disables logging.
Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™
Example: This example sets the maximum log entries to 50.

! U1 setvar "alerts.tracked_sgds.max_log_entries" "50"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

593

594

SGD Printer Commands
alerts.tracked_sgds.zbi_notifiedalerts.tracked_sgds.zbi_notified

alerts.tracked_sgds.zbi_notified
This command provides a comma-delimited list of settings for which ZBI should be notified when the
value is set.

Commands

Details

setvar

This command sets the list of the settings for which ZBI will be notified when the setting is set.
Format: ! U1 setvar "alerts.tracked_settings.zbi_notified"
"settings.name1,settings.name2,etc."
Values: A comma delimited list of settings names
Default: ""
This command retrieves the list of the settings for which ZBI will be notified when the value is set.

getvar

Format: U1 getvar "alerts.tracked_settings.zbi_notified"
This command sets the list of the settings for which ZBI will be notified when the value is set.

do

Format: ! U1 do "alerts.tracked_settings.zbi_notified"
"settings.name1,settings.name2,etc."
Values: A comma delimited list of settings names
Default: ""

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
apl.enable

apl.enable
The setvar enables or disables a Virtual Device. The getvar returns the currently enabled Virtual
Device.

Commands

Details

setvar, do

Format: ! U1 setvar "apl.enable" "value"
! U1 do "apl.enable" "value"
Values: none, apl-d, apl-i, apl-e, apl-l, apl-m, apl-mi, apl-o, apl-t
Default: NA

Example: ! U1 setvar "apl.enable" "apl-o"
Format: ! U1 getvar "apl.enable"

getvar

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZT210, ZT220, ZT230, ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

595

596

SGD Wireless Commands
apl.framework_version

apl.framework_version
Returns the revision number of the Virtual Device framework.

Commands

Details

getvar

Format: ! U1 getvar "apl.framework_version"

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZT210, ZT220, ZT230, ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
apl.version

apl.version
This command returns the revision number of the Virtual Device system.

Commands

Details

getvar

Displays the revision number of the Virtual Device system.
Format: ! U1 getvar "apl.version"

Supported Devices
• Link-OS printers with firmware Vxx.19.7Z and later.

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

597

598

SGD Printer Commands
appl.link_os_versionappl.link_os_version

appl.link_os_version
This command lists the version of the Link-OS™ feature set that is supported by the printer.

Commands

Details

getvar

This command retrieves the Link-OS™ version of the printer.
Format: ! U1 getvar "appl.link_os_version"

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™
Example: In this example, the getvar command returns version 1.0 of Link-OS™.
! U1 getvar "appl.link_os_version"
returns

1.0

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
appl.option_board_version

appl.option_board_version
This command returns the version number of the firmware running on the wireless option board. For
printer support, see SGD Command Support on page 1393.

Commands

Details

getvar

This command returns the version number of the firmware running on the wireless option board.
Format: ! U1 getvar "appl.option_board_version"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This command returns the version number of the firmware running on the wireless option
board.
! U1 getvar "appl.option_board_version"

"0.0.0 *"

1/31/18

Programming Guide

P1099958-001

599

600

SGD Printer Commands
appl.bootblock

appl.bootblock
This command refers to the bootblock version. On the configuration label, the bootblock number is
identified as the hardware ID. For printer support, see SGD Command Support on page 1393.

Commands

Details

getvar

This command returns the bootblock version number that appears on the configuration label .
Format: ! U1 getvar "appl.bootblock"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: In this example, the getvar returns the bootblock version number.
! U1 getvar "appl.bootblock"

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
appl.date

appl.date
This command refers to the date the firmware was created. For printer support, see SGD Command
Support on page 1393.

Commands

Details

getvar

The printer will respond with the date the firmware was created in the mm/dd/yy format.
Format: ! U1 getvar "appl.date"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: In this example, the getvar returns the date the firmware was created.
! U1 getvar "appl.date"
Result: "01/29/10"

1/31/18

Programming Guide

P1099958-001

601

602

SGD Printer Commands
appl.name

appl.name
This command refers to the printer’s firmware version. For printer support, see SGD Command
Support on page 1393.

Commands

Details

getvar

This command returns the printer’s firmware version.
Format: ! U1 getvar "appl.name"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: In this example, the getvar returns the printer’s firmware version.
! U1 getvar "appl.name"

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
capture.channel1.countcapture.channel1.count

capture.channel1.count
This command indicates the number of times that capture.channel1.delimiter was seen on the
port specified in capture.channel1.port. Additionally, it indicates how many times
capture.channel1.data.raw has been updated with user data as well as the number of times we
reached the capture.channel1.max_length.
This will be shown in the HZA response under the capture data section.

Commands

Details

getvar

This command returns the number of times that capture.channel1.delimiter was seen on the
port specified in capture.channel1.port as well as the number of times we reached the
capture.channel1.max_length.
Format: ! U1 getvar "capture.count"

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

603

604

SGD Printer Commands
capture.channel1.data.mimecapture.channel1.data.mime

capture.channel1.data.mime
This command provides a view to the data captured on the port specified by
capture.channel1.port in a mime/base64 encoded format.

Commands

Details

getvar

This command retrieves the data captured on the port specified by capture.channel1.port.
Format: ! U1 getvar "capture.channel1.data.mime"
Result: Data in mime-encoded format.

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
capture.channel1.data.rawcapture.channel1.data.raw

capture.channel1.data.raw
This command retrieves the user data captured off of the port specified in
capture.channel1.port.
Any binary zeros in the capture.data stream will be replaced with the escaped representation of
NULL ("\000"). The delimiter data is not stored as part of the captured data.
This will be shown in the HZA output within capture data section.

Commands

Details

getvar

This command retrieves the user data captured off of the port specified in
capture.channel1.port.
Format: ! U1 getvar "capture.channel1.data.raw"

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

605

606

SGD Printer Commands
capture.channel1.delimitercapture.channel1.delimiter

capture.channel1.delimiter
This command stores the delimiter used to partition data received on the port specified by
capture.channel1.port and stored in capture.channel1.data.raw and
capture.channel1.data.mime.
This will be reported in the data capture section of the HZA response.

Commands

Details

setvar

This command sets the delimiter used to partition data received on the
capture.channel1.port.
Format: ! U1 setvar "capture.channel1.delimiter" "delimiter"
Values: Any character set up to a maximum of 64 characters in length.
Note • Binary data can be used in the delimiter. To do this enter a '\' and then the 3 digit
octal value of the character. "\\" = '\' in some tools, so to get \002 you may need to
enter “\\002”. Escaped octal characters count as a single character and not 4 (e.g. a
delimiter of “\001\000\002” is 3 characters, not 12)
Default: "\012"
This command retrieves the delimiter.

getvar

Format: ! U1 getvar "capture.channel1.delimiter"

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™
Example: Binary data can be used in the delimiter. To do this enter a '\' and then the 3 digit octal
value of the character. Note: "\\" = '\' in some tools, so to get \002 you may need to enter
"\\002".

"\000" = NULL (single character)
"end\015\012\000" = 'e'+'n'+'d'+'\r'+'\n'+ NULL (total of 6
characters)

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
capture.channel1.max_lengthcapture.channel1.max_length

capture.channel1.max_length
This command sets a length indicating when to copy captured data to the data SGD if the delimiter
has not been seen yet.
If the delimiter and the max_length are reached at the same time, the delimiter will not be part of the
captured data. Of only part of the delimiter has been received, then the part of the delimiter we have
received, will be part of the capture data.
When the max_length is changed, any data currently in the buffer will be thrown away, and the new
value of max_length will be used.
The Capture Port shall be defaulted to 1000 bytes by any mechanism (including ^JUF, ^JUN, ^JUA,
and device.restore_defaults).

Commands

Details

setvar

This command instructs the printer to set a default data capture length.
Format: ! U1 setvar "capture.channel1.max_length" "value"
Values: 1-3000
Default: "1000"
This command retrieves the default data capture length.

getvar

Format: ! U1 getvar "capture.channel1.max_length"

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

607

608

SGD Printer Commands
capture.channel1.portcapture.channel1.port

capture.channel1.port
This command determines the port that should be monitored for user data. This allows the user to
attach an external device, such as a keyboard or barcode scanner, and have input captured into the
capture.channel1.data.raw command. Once the data is in the SGD they can use it as they
would any other SGD (this includes functionality that allows users to be sent an alert when an SGD
value changes).
The data received on the specified port will be read until the value in
capture.channel1.delimiter is seen, at which point the data received until (but not including) the
delimiter will be stored in capture.channel1.data.raw.
For the port specified in capture.channel1.port, no data will be sent to any of the parsers on that
port. All data received is assumed to be user input that is to be placed in
capture.channel1.data.raw. To disable the data capture functionality, set
capture.channel1.port to "off"
• The delimiter will not be stored in capture.channel1.data.raw.
• The port will be shown in the data capture portion of the HZA response.
• The capture port shall be defaulted to “off” by any mechanism (including ^JUF, ^JUA, and
device.restore_defaults).

Commands

Details

setvar

This command sets the port to be monitored for user data.
Format: ! U1 setvar "capture.channel1.port" "value"
Values: off,serial,usb,bt,usb_host
• off - no data is stored in capture.channel1.data.raw and all data is sent to the parsers normal operation
• serial - Data is read off the serial port. No data sent to the parsers on this port.
• usb - Data is read off the usb port. No data sent to the parsers on this port.
• bt - Data is read off the Bluetooth® port. No data sent to the parsers on this port.
• usb_host - not yet supported. reserved for when usb host is implemented.
Default: "off"
This command retrieves the printer’s current port being monitored for user data.

getvar

Format: ! U1 getvar "capture.channel1.port"

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™
Example: This example sets the command value to "off", preventing it from capturing data.
! U1 setvar "capture.channel1.port" "off"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
CISDFCRC16

CISDFCRC16
Download Files
The CISDFCRC16 command downloads supported files types to the printer.

Note • When using certificate files, your printer supports:
Using Privacy Enhanced Mail (PEM) formatted certificate files.
Using the client certificate and private key as two files, each downloaded
separately.
Using exportable PAC files for EAP-FAST.

•
•
•

Important • When using certificate files, the time on the printer must be set correctly for
the websocket connection to succeed, as the time is used in the certificate validation.
Each line should be terminated with a CR/LF.

Type
! CISDFCRC16






Parameters

Details

 = CRC value

Values: a four digit CRC value in hexadecimal. If 0000 is entered, then the CRC
validation is ignored. For examples, see below.

 = file name

Values: file name that is stored on the printer’s file system. An extension must be
specified. Files must be saved to the E: drive.

 = file size

Values: an eight digit file size specified in hexadecimal which indicates the number
of bytes in the  section.

 = checksum

Values: a four digit checksum value in hexadecimal. If 0000 is entered, then the
CRC validation is ignored. The checksum value is calculated using the sum of the
bytes in the  section. For examples, see below.

value
 = data

Values: Binary data saved on the printer’s file system as . Number of
bytes in this field must match the  parameter.

Note • This command can be used in place of the ~DG and ~DY command for more saving and
loading options. ~DY is the preferred command to download TrueType fonts on printers with
firmware later than X.13. The CISDFCRC16 command also supports downloading wireless
certificate files.

1/31/18

Programming Guide

P1099958-001

609

610

SGD Printer Commands
CISDFCRC16

Example 1 • This example shows the CISDFCRC16 command used to download a private key file
(privkey.nrd) to the printer. The different sections of the command are on separate lines.
! CISDFCRC16
BA0B
privkey.nrd
0000037B
E3AF
-----BEGIN RSA PRIVATE KEY----MIICXgIBAAKBgQDQXu/E9YuGlScfWQepZa8Qe/1mJRpmk8oPhPVvam/4M5/WaWQp
3/p1f8J17/hDH8fFq5Dnx3/tHaU7A4SKO8GeghX5hnp/mt4tuQEvsXkCrcgS1puz
z5dbO7ThhuzxYClnr7uiXPvSRXawgwDTPas+0q/6gHeUSXtA0EofuIyv7wIDAQAB
AoGBAJPnf3wn6wT5pE59DJIyakRiLmkt1wKOzvObJfgS7i2Yv1EbeAy9PnPe3vKG
Bovm6A+oi2/qTSTLUTiFc7QHXJPVxLmRiHMbf1Q8j+VJkGTpWt8EY/Px+HSM2HAP
jqd+Im0IiE9RQPsxWQH9UaauF6nl5gIfMF74BIPsVzFXLFfxAkEA6zSrCKCycE/P
14cjZibnLiWxdL3U3I9eWuhmIS37RB6UJFBCWUPWr26HlHzOKqhOUMbFf5hOmvkZ
gciN9A8kxwJBAOLK7Gyorre8iK9IMMWc7OIJc7H8pH1y/N2OtyaC1XuPfqz0H4PH
w2W2m3BhZ7ggHJLLiiFVF+Hr5X7cibFDo5kCQQDFe5lHSzXHWxvViN/N+0gL1RYk
QOcisTW1+n8VyLe5wDr+Km0q6eytq44mvIuWAW6QH/TfZxBIynICKFQX4UctAkAm
P80iAkz9RfnTfhxjp7S35poxoYdodPU6tLAk+ZnhrfDSYJXUFuPYirSqfnMMtbW7
+EICnyRZAP0CqVU7pUm5AkEAnH2O6dKvUvwOEX+CsCVATRrejKLCeJ+6YZWqiD9X
0XGJgrHNXGpDtQiVSGM59p0XnHTZJYjvVNdNOMnhg333nQ==
-----END RSA PRIVATE KEY-----

Example 2 • These are examples of CRC and checksum values:

CRC example
The value of the  field is calculated the CRC-16 for the contents of a specified file using the
CRC16-CCITT polynomial which is x^16 + x^12 + x^5 + 1. It is calculated using an initial CRC of 0x0000.

checksum example
Given 4 bytes of data : 0x25, 0x62, 0x3F, 0x52:

1. Adding all bytes together gives 0x118.
2. Drop the carry nibble to get 0x18.
3. Get the two's complement of the 0x18 to get 0xE8.

This is the checksum byte.

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
comm.baud

comm.baud
This command refers to the printer’s comm (cable) baud rate. For printer support, see SGD
Command Support on page 1393.

Important • Once the printer’s communication port parameters have been changed, the
host terminal must also be configured to match the new printer settings before the host can
communicate again.

Commands

Details

setvar

This command instructs the printer to change the baud rate.
Format: ! U1 setvar "comm.baud" "value"
Values:
“9600”
“19200”
“38400”
“57600”
“115200”
Default: "19200"

getvar

This command instructs the printer to respond with the currently set printer baud rate.
Format: ! U1 getvar "comm.baud"

Note • For details on SGD command structure, see Command Structure on page 573.
Example 1 • In this example, the getvar retrieves the current baud rate.
! U1 getvar "comm.baud"

Example 2 • This setvar example sets the communications baud rate to 19200 BPS.
! U1 setvar "comm.baud" "19200"

1/31/18

Programming Guide

P1099958-001

611

612

SGD Printer Commands
comm.halt

comm.halt
This command halts all communications to the serial port if an error condition occurs.

Commands

Details

setvar

This command instructs the printer to halt communication to the printer.
Format: ! U1 setvar "comm.halt" "value"
Values:
"yes"
"no"
Default: "yes"
This command returns the current value.

getvar

Format: ! U1 getvar "comm.halt"
Values:
"yes"
"no"

Example: This setvar example sets the value set to "yes".
! U1 setvar "comm.halt" "yes"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

comm.pnp_option

comm.pnp_option
The comm.pnp_option command configures the RS-232 Serial Port Plug and Play setting on the
printer. For printer support, see SGD Command Support on page 1393.

Commands

Details

setvar

This command instructs the printer to change the comm.pnp_option setting.
Format: ! U1 setvar "comm.pnp_option" "value"
Values:
"off" = sets the printer to not attempt Plug and Play via serial at startup
"on" = sets the printer to attempt Plug and Play via serial at startup
Default: "off"

getvar

This command causes the printer to return the current setting for the comm.pnp_option setting.
Format: ! U1 getvar "comm.pnp_option"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: In this example, the setvar sets the serial port communications state to "on".
! U1 setvar "comm.pnp_option" "on"
When the setvar value is set to "on", the getvar result is "on".

Note • Not all Operating Systems and computer hardware support Plug and Play over RS-232
Serial port connections.

1/31/18

Programming Guide

P1099958-001

613

614

SGD Printer Commands
comm.type

comm.type
This printer setting determines the behavior of the serial port interface. It selects one of three serial
communication states: DTE, DCE or Autodetect. For printer support, see SGD Command Support
on page 1393.

Commands

Details

setvar

This command instructs the printer to change the serial port interface type.
Format: ! U1 setvar "comm.type" "value"
Values:
"auto" = Autodetect
"dte" = Force DTE (Tx on pin 2)
"dce" = Force DCE (Rx on pin 2)
Default: "auto"

getvar

This command instructs the printer to respond with the current serial port interface type.
Format: ! U1 getvar "comm.type"

Supported Devices
• LP 2824 Plus

Note • For details on SGD command structure, see Command Structure on page 573.
Example 1 • In this example, the getvar retrieves the serial port communications state.
! U1 getvar "comm.type"

Example 2 • This setvar example sets the communications port state to Autodetect.
! U1 setvar "comm.type" "auto"

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
comm.parity

comm.parity
This command sets the printer’s communication parity. For printer support, see SGD Command
Support on page 1393.

Important • Once the printer’s communication port parameters have been changed, the
host terminal must also be configured to match the new printer settings before the host can
communicate again.

Commands

Details

setvar

This command instructs the printer to set the communication port parity.
Format: ! U1 setvar "comm.parity" "value"
Values:
"N" — None
"E" — Even
"O" — Odd
Default: "N"

getvar

This command instructs the printer to respond with the currently set printer parity.
Format: ! U1 getvar "comm.parity"

Note • For details on SGD command structure, see Command Structure on page 573.
Example 1 • In this example, the getvar retrieves the currently set printer parity.
! U1 getvar "comm.parity"

Example 2 • This setvar example sets the parity to None.
! U1 setvar "comm.parity" "N"

1/31/18

Programming Guide

P1099958-001

615

616

SGD Printer Commands
comm.stop_bits

comm.stop_bits
This command refers to the printers’s communication port stop bits. For printer support, see SGD
Command Support on page 1393.

Important • Once the printer’s communication port parameters have been changed, the
host terminal must also be configured to match the new printer settings before the host can
communicate again.

Commands

Details

setvar

This command instructs the printer to configure the comm.port stop bit value.
Format: ! U1 setvar "comm.stop_bits" "value"
Values:
"1"
"2"
Default: "1"

getvar

This command instructs the printer to respond with the currently set stop bit value.
Format: ! U1 getvar "comm.stop_bits"

Note • For details on SGD command structure, see Command Structure on page 573.
Example 1 • In this example, the getvar retrieves the currently set stop bit value.
! U1 getvar "comm.stop_bits"

Example 2 • This setvar example configures the comm.port for 1 stop bit.
! U1 setvar "comm.stop_bits" "1"

P1099958-001

Programming Guide

1/31/18

SGD Wireless Commands
cradle.comm.baud

cradle.comm.baud
Sets or retrives the cradle serial USB port baud rate.

Commands

Details

setvar

Format: ! U1 setvar "cradle.comm.baud" "value"
Values: 300,1200,2400,4800,9600,19200,38400,57600,115200,230400,460800,921600
Default: "115200"
Format: ! U1 getvar "cradle.comm.baud"

getvar

Supported Devices
• ZQ510, ZQ520

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

617

618

SGD Wireless Commands
cradle.comm.handshake

cradle.comm.handshake
Sets or retrives the cradle serial USB port handshake mode.

Commands

Details

setvar

Format: ! U1 setvar "cradle.comm.handshake" "value"
Values: "rts/cts" = use hardware handshake via the request-to-send/clear-to-send pins
"xon/xoff" = use software handshake
"none" = no flow control
Default: "rts/cts"
Format: ! U1 getvar "cradle.comm.handshake"

getvar

Supported Devices
• ZQ510, ZQ520

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
cutter.clean_cutter

cutter.clean_cutter
This command determines if the clean cutter option is enabled or disabled. For printer support, see
SGD Command Support on page 1393.

Commands

Details

setvar

This command instructs the printer to set the clean cutter option.
Format: ! U1 setvar "cutter.clean_cutter"
Values:
"on" = turns on clean cutter
"off" = turns off clean cutter
Default: "on"

getvar

This command retrieves the status of the clean cutter option.
Format: ! U1 getvar "cutter.clean_cutter"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows the value set to "on".
! U1 setvar "cutter.clean_cutter" "on"
When the setvar value is set to "on", the getvar result is "on".

1/31/18

Programming Guide

P1099958-001

619

620

SGD Printer Commands
device.applicator.data_ready

device.applicator.data_ready
This command will specify if a "high" or "low" value is required for the applicator to indicate it is
ready to receive data.

Commands

Details

setvar

This command sets the value.
Format: ! U1 setvar "device.applicator.data_ready" "value"
Values: high, low
Default: low
This command instructs the printer to respond with the currently set value.

getvar

Format: ! U1 getvar "device.applicator.data_ready"

Supported Devices
• ZE500™ series
• PAX4™ series
• Xi4™ series
• XiIIIPlus™ series

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
device.applicator.end_print

device.applicator.end_print
This command allows you to control an online verifier or applicator device. This command is similar
to the b parameter for ^JJ on page 237.

Commands

Details

setvar

This command sets the value for the applicator port mode
Format: ! U1 setvar "device.applicator.end_print" "value"
Values:
off
1 =End Print signal normally high, and low only when the printer is moving
the label forward.
2 = End Print signal normally low, and high only when the printer is moving
the label forward.
3 = End Print signal normally high, and low for 20 ms when a label has been
printed and positioned.
4 = End Print signal normally low, and high for 20 ms when a label has been
printed and positioned.
Default: off
This command instructs the printer to respond with the currently set value.

getvar

Format: ! U1 getvar "device.applicator.end_print"

Supported Devices
• ZE500™ series
• PAX4™ series
• Xi4™ series
• XiIIIPlus™ series

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

621

622

SGD Printer Commands
device.applicator.feed

device.applicator.feed
This command will specify if a "high" or "low" value is required for an applicator to feed media.

Commands

Details

setvar

This command sets the value.
Format: ! U1 setvar "device.applicator.feed" "value"
Values: high, low
Default: low
This command instructs the printer to respond with the currently set value.

getvar

Format: ! U1 getvar "device.applicator.feed"

Supported Devices
• ZE500™ series
• PAX4™ series
• Xi4™ series
• XiIIIPlus™ series

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
device.applicator.media_out

device.applicator.media_out
This command will specify if a "high" or "low" value is required for an applicator to indicate that the
media has run out.

Commands

Details

setvar

This command sets the value.
Format: ! U1 setvar "device.applicator.media_out" "value"
Values: high, low
Default: low
This command instructs the printer to respond with the currently set value.

getvar

Format: ! U1 getvar "device.applicator.media_out"

Supported Devices
• ZE500™ series
• PAX4™ series
• Xi4™ series
• XiIIIPlus™ series

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

623

624

SGD Printer Commands
device.applicator.pause

device.applicator.pause
This command will specify if a "high" or "low" value is required for an applicator to pause printing.

Commands

Details

setvar

This command sets the value.
Format: ! U1 setvar "device.applicator.pause" "value"
Values: high, low
Default: low
This command instructs the printer to respond with the currently set value.

getvar

Format: ! U1 getvar "device.applicator.pause"

Supported Devices
• ZE500™ series
• PAX4™ series
• Xi4™ series
• XiIIIPlus™ series

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
device.applicator.reprint

device.applicator.reprint
This command will specify if a "high" or "low" value is required for an applicator to reprint a label.
This command is similar to ~PR on page 300.

Commands

Details

setvar

This command sets the value.
Format: ! U1 setvar "device.applicator.reprint" "value"
Values: high, low
Default: low
This command instructs the printer to respond with the currently set value.

getvar

Format: ! U1 getvar "device.applicator.reprint"

Supported Devices
• ZE500™ series
• PAX4™ series
• Xi4™ series
• XiIIIPlus™ series

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

625

626

SGD Printer Commands
device.applicator.rfid_void

device.applicator.rfid_void
This command will specify if a "high" or "low" value is used for the RFID void signal, which occurs
when an RFID label is voided by the printer.

Commands

Details

setvar

This command sets the value.
Format: ! U1 setvar "device.applicator.rfid_void" "value"
Values: high, low
Default: low
This command instructs the printer to respond with the currently set value.

getvar

Format: ! U1 getvar "device.applicator.rfid_void"

Supported Devices
• ZE500™ series
• PAX4™ series
• Xi4™ series
• XiIIIPlus™ series

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
device.applicator.ribbon_low

device.applicator.ribbon_low
This command will specify if a "high" or "low" value is required for an applicator to indicate that the
ribbon is running out.

Commands

Details

setvar

This command sets the value.
Format: ! U1 setvar "device.applicator.ribbon_low" "value"
Values: high, low
Default: high
This command instructs the printer to respond with the currently set value.

getvar

Format: ! U1 getvar "device.applicator.ribbon_low"

Supported Devices
• ZE500™ series
• PAX4™ series
• Xi4™ series
• XiIIIPlus™ series

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

627

628

SGD Printer Commands
device.applicator.ribbon_out

device.applicator.ribbon_out
This command will specify if a "high" or "low" value is required for an applicator to indate that the
ribbon has run out.

Commands

Details

setvar

This command sets the value.
Format: ! U1 setvar "device.applicator.ribbon_out"
Values: high, low
Default: low
This command instructs the printer to respond with the currently set value.

getvar

Format: ! U1 getvar "device.applicator.ribbon_out"

Supported Devices
• ZE500™ series
• PAX4™ series
• Xi4™ series
• XiIIIPlus™ series

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
device.applicator.service_required

device.applicator.service_required
This command will specify if a "high" or "low" value is required for an applicator to indicate that
maintenance is required.

Commands

Details

setvar

This command sets the value.
Format: ! U1 setvar "device.applicator.service_required" "value"
Values: high, low
Default: low
This command instructs the printer to respond with the currently set value.

getvar

Format: ! U1 getvar "device.applicator.service_required"

Supported Devices
• ZE500™ series
• PAX4™ series
• Xi4™ series
• XiIIIPlus™ series

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

629

630

SGD Printer Commands
device.applicator.start_print

device.applicator.start_print
This command will specify if a "high" or "low" value is required for an applicator to start printing.

Commands

Details

setvar

This command sets the value.
Format: ! U1 setvar "device.applicator.start_print" "value"
Values: high, low
Default: low
This command instructs the printer to respond with the currently set value.

getvar

Format: ! U1 getvar "device.applicator.start_print"

Supported Devices
• ZE500™ series
• PAX4™ series
• Xi4™ series
• XiIIIPlus™ series

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
device.bluetooth_installed

device.bluetooth_installed
Determines if there is a Bluetooth radio installed in the printer.

Commands

Details

getvar

Format: ! U1 getvar "device.bluetooth_installed"
Result: "yes" - a Bluetooth radio is installed in the printer.
"no" - no Bluetooth radio is installed.

Supported Devices
• QLn220, QLn320
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR628, ZR638
• ZT410, ZT420, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

631

632

SGD Printer Commands
device.command_override.active

device.command_override.active
This command enables or disables the device.command_override function. When enabled, the
printer will ignore the list of commands previously specified using the
device.command_override.add. Use of this command does not modify the list.

Commands

Details

setvar

This command sets the the printer to turn on/off device.command_override.
Format: ! U1 setvar "device.command_override.active" "value"
Values:
yes = active
no = inactive
Default: yes
This command returns the active/inactive state of device.command_override.

getvar

Format: ! U1 getvar "device.command_override.active"
Values:
yes = active
no = inactive
Default: yes

Examples:
! U1 setvar "device.command_override.active" "yes"
! U1 setvar "device.command_override.active" "no"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
device.command_override.add

device.command_override.add
This command adds a specified command to the list of commands that will be ignored by the printer.
The list is saved when the printer is powered off. The list is not cleared when the printer is defaulted.
• If there are items in the list and the device.command_override.active is set to "yes", then
the config label will show ACTIVE COMMAND OVERRIDE.
• If there are no items in the list or device.command_override.active is set to "no", then the
config label will show INACTIVE COMMAND OVERRIDE.

Commands

Details

setvar

The add command instructs the printer to add a specified command to the list of override
commands..
Format: ! U1 setvar "device.command_override.add" "command"
Values: any ZPL or Set/Get/Do command
Default: NA
Example: When specifying a ZPL command, the command must be preceded by the current format
or control prefix character (e.g. ^ or ~). Multiple commands must be declared with its own setvar
declaration.

!
!
!
!

U1
U1
U1
U1

setvar
setvar
setvar
setvar

"device.command_override.add"
"device.command_override.add"
"device.command_override.add"
"device.command_override.add"

"^MN"
"^PR"
"comm.baud"
"device.reset"

Example: The following example would NOT be valid.

! U1 setvar "device.command_override.add" "~HI,~HS,^MN"
and would have to be re-sent as

! U1 setvar "device.command_override.add" "~HI"
! U1 setvar "device.command_override.add" "~HS"
! U1 setvar "device.command_override.add" "^MN"

Important • You can not add "device.command_override.clear" to the list of accepted
override commands.
Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

633

634

SGD Printer Commands
device.command_override.clear

device.command_override.clear
This command clears all commands from the command override list.

Commands

Details

setvar

The clear command clears the list of override commands specified in
device.command_override.list on page 635.
Format: ! U1 setvar "device.command_override.clear" "value"
Values: NA
Default: NA

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
device.command_override.list

device.command_override.list
This command returns to the host a list of the current set of commands that the printer will ignore.

Commands

Details

getvar

The list command prints a comma-delimited list of override commands.
Format: ! U1 getvar "device.command_override.list"
Values: NA
Default: NA

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

635

636

SGD Printer Commands
device.company_contact

device.company_contact
This command sets the company contact information, which can be accessed from the
server/sysinfo.htm webpage.

Commands

Details

setvar

Sets the company contact information.
Format: ! U1 setvar "device.company_contact" "value"
Values: Any string up to 128 characters in length
Default: ""
Displays the current company contact information.

getvar

Format: ! U1 getvar "device.company_contact"

Supported Devices Link-OS printers with firmware Vxx.19.7Z and later.
Example: This setvar example shows the value set to "Zebra".
! U1 setvar "device.company_contact" "Zebra"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
device.configuration_number

device.configuration_number
Returns the current SKU number of the printer.

Commands

Details

getvar

Format: ! U1 getvar "device.configuration_number"

Supported Devices
• ZQ510, ZQ520

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

637

638

SGD Printer Commands
device.cpcl_synchronous_mode

device.cpcl_synchronous_mode
This command enables/disables CPCL synchronous mode. When the printer is in sync mode,
parsing will "lock" while printing is going on, allowing behavior similar to that of the legacy SH3
mobile printers.

Commands

Details

setvar

This command sets the the printer to turn on/off device.cpcl_synchronous_mode.
Format: ! U1 setvar "evice.cpcl_synchronous_mode" "value"
Values:
on = puts the printer in CPCL synchronous mode
off = puts the printer in default mode
Default: off
This command returns the the current value of the setting.

getvar

Format: ! U1 getvar "evice.cpcl_synchronous_mode"

Supported Devices QLn™ series
Consider issuing a label immediately followed by an SGD request. When sync mode is "off", the
SGD will be returned nearly immediately after submitting the label. When sync mode is "on", the
SGD will be returned after the label has printed.

Examples:
! U1 setvar "evice.cpcl_synchronous_mode" "on"
! U1 setvar "evice.cpcl_synchronous_mode" "off"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
device.cutter_installed

device.cutter_installed
This command reports if a cutter unit is installed.

Commands

Details

getvar

This command checks if a cutter is installed.
Format: ! U1 getvar "device.cutter_installed"
Values: Yes or No
Default: No

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

639

640

SGD Printer Commands
device.download_connection_timeout

device.download_connection_timeout
This command instructs the printer to abort a firmware download if the printer fails to receive any
download data in the set amount of seconds. If the set amount of seconds is exceeded, the
download will be aborted, and the printer automatically restarts. This command prevents the printer
from being locked into the downloading state, if the communication to the host is interrupted. For
printer support, see SGD Command Support on page 1393.

Commands

Details

setvar

This command instructs the printer to abort a firmware download if the printer fails to receive any
download data in the set amount of seconds.
Format:

! U1 setvar "device.download_connection_timeout" "value"
Values: "0" through "65535"
Default: "0" ("0" disables this feature)
getvar

This command retrieves the connection time out value (in seconds).
Format:
! U1 getvar "device.download_connection_timeout"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows the value set to "0".
! U1 setvar "device.download_connection_timeout" "0"
When the setvar value is set to "0", the getvar result is "0".

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
device.epl_legacy_mode

device.epl_legacy_mode
This command places the printer in a 2824/2844 compatibility mode for vertical registration.

Commands

Details

setvar*

This command instructs the printer to change the epl_legacy_mode setting.
Format: ! U1 setvar "device.epl_legacy_mode" "value"
Values:
off = epl_legacy_mode not active
registration = EPL legacy registration mode on
print orientation = EPL legacy print orientation mode on
all = all EPL legacy modes on
Default: "off"
This command causes the printer to return the current setting for the device.epl_legacy_mode
setting.

getvar

Format: ! U1 getvar "device.epl_legacy_mode"

Supported Devices
• G-Series printers
• LP2824 Plus and TLP 2824 Plus

Note •
•
•

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Example 1 • This setvar example shows the value set to "registration".
! U1 setvar "device.epl_legacy_mode" "registration"

Example 2 • This setvar example shows the value set to "print_orientation".
! U1 setvar "device.epl_legacy_mode" "print_orientation"

Example 3 • This getvar example shows the response when the value was set to "registration"
and "print_orientation".
! U1 getvar "device.epl_legacy_mode"
"registration, print_orientation"

Example 4 • This getvar example shows the response when value was set to "all"
! U1 getvar "device.epl_legacy_mode"
"all"
These are the possible responses to getvar "device.epl_legacy_mode"
• "off"
• "registration"
• "print_orienation"
• "registration, print_orientation"
• "all"

1/31/18

Programming Guide

P1099958-001

641

642

SGD Printer Commands
device.epl_legacy_mode

Note • This setting is not defaulted as part of a factory default (^JUF or ^default). The setting is
persistent across a power cycle or rest (~JR or device.reset).
When setting the “registration” mode, the "print_orienation" mode is not changed. Likewise,
when setting the "print_orienation" mode, the "registration" mode is not changed. Using
"off" or "all" changes all modes.

Print Orientation Mode
Note • When the printer is powered on, the print orientation defaults to ^PON (EPL ZB mode). The
print orientation setting is not saved across power cycles. This is different than TLP2844, LP2844,
TLP2824, LP2824, and TLP3842 printers. Those printers have a default of ZB (ZPL ^PON mode)
and the print orientation setting is saved across power cycles. To make the printer have the print
orientation behavior of the TLP2844, LP2844, TLP2824, LP2824, and TLP3842 printers, set the
epl_legacy_mode to "print_orienation".

Registration Mode
Note • When printing labels using EPL commands, printing starts 1mm from the top edge of the
label (from the gap). This is known as the “no print zone”. When printing in ZT mode, the “no print
zone” starts at the gap on the leading edge of the label. When printing in ZB mode, the “no print
zone” starts from the gap on the trailing edge of the label. In the TLP2844, LP2844, TLP2824,
LP2824, and TLP3842 printers, the distance from gap to start of print (the “no print zone”) is not
always 1mm.
The table below shows the nominal distance.
Distance from Edge of Label to First Print Line (No Print Zone)
Legacy Printer
Model

New Printer Model

ZT Mode

ZB Mode

LP2844

GX420, GK420 (direct thermal)

1.9 mm

0.0 mm

TLP2844

GX420, GK420 (thermal transfer)

0.4 mm

1.6 mm

TLP3842

GX430 (thermal transfer)

0.0 mm

1.2 mm

LP2824

LP 2824 Plus (direct thermal)

1.5 mm

0.4 mm

TLP2824

TLP 2824 Plus (thermal transfer)

0.1 mm

1.8 mm

af. Setting epl_legacy_mode to "registration" selects the distance shown in the table.
ag.Setting epl_legacy_mode to "off" selects a no print zone distance of 1mm.

P1099958-001

Programming Guide

1/31/18

SGD Wireless Commands
device.feature.bluetooth_le

device.feature.bluetooth_le
Indicates whether or not the printer supports Bluetooth LE.

Commands

Details

getvar

Format: ! U1 getvar "device.feature.bluetooth_le"
Values: "present" = a Bluetooth LE radio is installed
"not present" = no Bluetooth LE radio is installed
"not available" = Bluetooth LE radio is not available on this printer

Supported Devices
• ZQ510, ZQ520

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

643

644

SGD Wireless Commands
device.feature.mcr

device.feature.mcr
Indicates if the magnetic card reader is installed and available.

Commands

Details

getvar

Format: ! U1 getvar "device.feature.mcr"
Values: "not available" = the magnetic card reader is not available on the printer
"not present" = the magnetic card reader is available but not installed
"present" = the magnetic card reader is both available and installed on the printer
Default: NA

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR338, ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
device.feature.nfc

device.feature.nfc
Indicates if the printer supports the optional Active Near Field Communication (NFC) feature, and if it
is currently installed.

Commands

Details

getvar

Format: ! U1 getvar "device.feature.nfc"
Values: "not available" = active NFC is not supported.
"not present" = active NFC is supported, but no reader is installed.
"present" = active NFC is supported with a reader is installed.
Default: NA

Supported Devices
• iMZ220, iMZ320
• QLn320, QLn220, QLn420
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR338, ZR638, ZR628
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

645

646

SGD Wireless Commands
device.feature.ribbon_cartridge

device.feature.ribbon_cartridge
Indicates if the printer can accept a ribbon cartridge, and if so, if one is installed.

Commands

Details

getvar

Format: ! U1 getvar "device.feature.ribbon_cartridge"
Result:
"not available" - the ribbon cartridge is not available on the platform
"not present" - the printer is capable of accepting a ribbon cartridge, but one is not
currently installed
"present" - a ribbon cartridge is installed

Supported Devices
• iMZ220, iMZ320
• QLn320, QLn220, QLn420
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR338, ZR638, ZR628
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
device.friendly_name

device.friendly_name
This command shows the name assigned to the printer. For printer support, see SGD Command
Support on page 1393.

Commands

Details

setvar

This command sets the printer’s name.
Format: ! U1 setvar "device.friendly_name" "value"
Default: "xxxxxxxxxx" ("xxxxxxxxxx"represents the main logic board
serial number)

getvar

This command retrieves the name assigned to the printer.
Format: ! U1 getvar "device.friendly_name"

Note • For details on SGD command structure, see Command Structure on page 986.
Example: This setvar example shows the value set to "xxxxxxxxxx".
! U1 setvar "device.friendly_name" "xxxxxxxxxx"
When the setvar value is set to "xxxxxxxxxx", the getvar result is "xxxxxxxxxx".

1/31/18

Programming Guide

P1099958-001

647

648

SGD Printer Commands
device.frontpanel.feedenabled

device.frontpanel.feedenabled
This command can be used to enable or disable the FEED key or any other key on the printer. For
printer support, see SGD Command Support on page 1393.

Commands
setvar

Details
This command instructs the printer to change the front_panel.feedenabled setting.
Format: ! U1 setvar "device.frontpanel.feedenabled"
Values:
"yes" = Front Panel keys are enabled
"no" = Front Panel keys are disabled
Default:
"no" = for GX420s printers
"yes" = all supported printers except GX420s

Power On Default:
"no" = for GX420s printers
"yes" = all supported printers except GX420s
getvar

This command retrieves the current setting for the front_panel.feedenable command:
Format: ! U1 getvar "device.frontpanel.feedenabled"

Supported Devices
• GK420
• GX420, GX430, GX420s
• LP/TLP 2824 Plus,

Note • For details on SGD command structure, see Command Structure on page 573.
Example: In this example, the setvar sets the value to "no".
! U1 setvar "device.frontpanel.feedenabled" "no"

Note • On GX420 printers with an LCD display, there is a SCROLL and SELECT key in
addition to the FEED key. Both the SCROLL and SELECT keys are enabled or disabled
when the FEED key is enabled or disabled using this command.
Note • On power up, for model GX420s printer, the command value is set to "no". For all other
printers, on power up, the command value is set to "yes"”.

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
device.frontpanel.key_press

device.frontpanel.key_press
This command instructs the printer to press a button on the front panel. For printer support, see SGD
Command Support on page 1393.

Commands
setvar

Details
This command instructs the printer to press a button on the front panel.
Format: ! U1 setvar "device.frontpanel.key_press"
Values: The values vary per printer, as follows:

ZM400, Z4M/Z6M, and RZ400/RZ600:
"A"
"B"
"C"
"D"
"E"
"F"
"G"

=
=
=
=
=
=
=

XiIIIplus:
"A"
"B"
"C"
"D"
"E"
"F"
"G"
"H"
"I"

=
=
=
=
=
=
=
=
=

Pause
Feed
Cancel
Setup/Exit
Minus
Select
Plus

S4M:
"A"
"B"
"C"
"D"
"E"
"F"

=
=
=
=
=
=

Pause
Feed
Up Arrow
Cancel
Menu
Enter

Xi4, RXi4:
"A"
"B"
"C"
"D"
"E"
"F"
"G"
"H"
"I"

Pause
Feed
Cancel
Setup/Exit
Previous
Next/Save
Minus
Plus
Calibrate

=
=
=
=
=
=
=
=
=

Pause
Feed
Cancel
Setup/Exit
Previous
Next/Save
Minus
Plus
Calibrate

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows the value set to "A".
! U1 setvar "device.frontpanel.key_press" "A"

1/31/18

Programming Guide

P1099958-001

649

650

SGD Printer Commands
device.frontpanel.line1

device.frontpanel.line1
This command overrides the content that is shown on the first line of the front panel when the printer
is showing the idle display. Use of the getvar function is dependent on first using the setvar
function. For example, to have the first line of the idle display to show HELLO, you must first send a
setvar command; then a getvar command can be sent to retrieve the value HELLO. For printer
support, see SGD Command Support on page 1393. For details on the supported character set, see
Character Set on page 1389.

Commands

Details

setvar

This command instructs the printer to set the content that is shown on line one of the front panel.
Format:
! U1 setvar "device.frontpanel.line1" "value"
Values: The maximum amount of alphanumeric ASCII characters available for line 1 on the
printer’s front panel
Default: ""

getvar

This command retrieves the content that is shown on line one of the front panel.
Format: ! U1 getvar "device.frontpanel.line1"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows the value set to "sample line 1".
! U1 setvar "device.frontpanel.line1" "sample line 1"
When the setvar value is set to "sample line 1", the getvar result is "sample line 1".

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
device.frontpanel.line2

device.frontpanel.line2
This command overrides the content that is shown on the second line of the front panel when the
printer is showing the idle display. Use of the getvar function is dependent on using the setvar
function. For example, to have the second line of the idle display show HELLO, you must first send a
setvar command; then a getvar command can be sent to retrieve the value HELLO. For printer
support, see SGD Command Support on page 1393. For details on the supported character set, see
Character Set on page 1389.

Commands
setvar

Details
This command instructs the printer to set the content that shows on line two of the front panel.
Format:
! U1 setvar "device.frontpanel.line2" "value"
Values: The maximum amount of alphanumeric ASCII characters available for line two on the
printer’s front panel
Default: ""

getvar

This command retrieves the content that shows on line two of the front panel.
Format: ! U1 getvar "device.frontpanel.line2"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows the value set to "sample line 2".
! U1 setvar "device.frontpanel.line2" "sample line 2"
When the setvar value is set to "sample line 2", the getvar result is "sample line 2".

1/31/18

Programming Guide

P1099958-001

651

652

SGD Printer Commands
device.frontpanel.xml

device.frontpanel.xml
This command retrieves the current content of the front panel in an XML format. For printer support,
see SGD Command Support on page 1393.

Commands
getvar

Details
This command retrieves the file that determines the representation of the front panel.
Format: ! U1 getvar "device.frontpanel.xml"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: In this example, the getvar shows the status of the LEDs and the two lines of the front
panel in XML formatted text. The text below is formatted for easy reading. When you use this
command the response will not contain line feeds.
! U1 getvar "device.frontpanel.xml"


PRINTER READY
V53.16.0


STEADY-OFF
STEADY-OFF
STEADY-OFF



P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
device.host_identification

device.host_identification
This command is designed to be sent from the host to the Zebra printer to retrieve information. Upon
receipt, the printer responds with information on the model, software version, dots-per-millimeter
setting, memory size, and any detected options.
This command is equivalent to the ~HI ZPL command.

Commands

Details

getvar

This command displays information about the printer.
Format: ! U1 getvar "device.host_identification"
Result: XXXXXX,V1.0.0,dpm,000KB,X
Values:

XXXXXX = model of Zebra printer
V1.0.0 = version of software
dpm = dots/mm

6, 8, 12, or 24 dots/mm printheads
000KB = memory
512KB = 1/2 MB
1024KB = 1 MB
2048KB = 2 MB
4096KB = 4 MB
8192KB = 8 MB

x = recognizable options

only options specific to printer are shown (cutter, options, et cetera.)
Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

653

654

SGD Printer Commands
device.host_status

device.host_status
When this command is sent to the printer, the printer sends three data strings back. To avoid
confusion, the host prints each string on a separate line.
This command is similar to the ~HS ZPL command.
The response for this SGD command does not include the STX at the beginning of each data line
and does not include the ETX at the end of each data line as found in the ~HS response. Additionally,
the first and second response lines for the SGD command contain a CR/LF at the end of each line.

Note • When the command is sent, the printer will not send a response to the host if the printer is
in one of these conditions:

•
•
•
•
•

MEDIA OUT
RIBBON OUT
HEAD OPEN
REWINDER FULL
HEAD OVER-TEMPERATURE

Commands

Details

getvar

Format: ! U1 getvar "device.host_status"
Result: Three strings, each on their own line.
"aaa,b,c,dddd,eee,f,g,h,iii,j,k,l
mmm,n,o,p,q,r,s,t,uuuuuuuu,v,www
xxxx,y"
Values: See definitions for String 1, String 2, and String 3 below.

String 1 "aaa,b,c,dddd,eee,f,g,h,iii,j,k,l"
aaa
b
c
dddd
eee
f
g
h
iii
j
k
l

=
=
=
=
=
=
=
=
=
=
=
=

communication (interface) settings a
paper out flag (1 = paper out)
pause flag (1 = pause active)
label length (value in number of dots)
number of formats in receive buffer
buffer full flag (1 = receive buffer full)
communications diagnostic mode flag (1 = diagnostic mode active)
partial format flag (1 = partial format in progress)
unused (always 000)
corrupt RAM flag (1 = configuration data lost)
temperature range (1 = under temperature)
temperature range (1 = over temperature)

ah.This string specifies the printer’s baud rate, number of data bits, number of stop bits, parity
setting, and type of handshaking. This value is a three-digit decimal representation of an eightbit binary number. To evaluate this parameter, first convert the decimal number to a binary
number.
The nine-digit binary number is read according to this table:

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
device.host_status

aaa = a8 a7 a6 a5 a 4 a3 a2 a1 a0
a 7 = Handshake
0 = Xon/Xoff
1 = DTR

a 8 a 2 a 1 a 0 = Baud

6

a = Parity Odd/Even
0 = Odd
1 = Even
a 5 = Disable/Enable
0 = Disable
1 = Enable
a 4 = Stop Bits
0 = 2 Bits
1 = 1 Bit

0 000 = 110
0 001 = 300
0 010 = 600
0 011 = 1200
0 100 = 2400
0 101 = 4800
0 110 = 9600
0 111 = 19200
1 000 = 28800 (available only on certain printer models)
1 001 = 38400 (available only on certain printer models)
1 010 = 57600 (available only on certain printer models)
1 011 = 14400

a 3 = Data Bits
0 = 7 Bits
1 = 8 Bits
String 2 "mmm,n,o,p,q,r,s,t,uuuuuuuu,v,www"
mmm
n
o
p
q
r

=
=
=
=
=
=

Values 4 to 5 are only
supported in firmware
version V60.14.x,
V50.14.x, V53. 15.x, or
later.

s
t
uuuuuuuu
v
www

=
=
=
=
=

function settings b
unused
head up flag (1 = head in up position)
ribbon out flag (1 = ribbon out)
thermal transfer mode flag (1 = Thermal Transfer Mode selected)
Print Mode
0 = Rewind
1 = Peel-Off
2 = Tear-Off
3 = Cutter
4 = Applicator
5 = Delayed cut
6 = Reserved c
7 = Reserved c
8 = Reserved c
9 = RFID
print width mode
label waiting flag (1 = label waiting in Peel-off Mode)
labels remaining in batch
format while printing flag (always 1)
number of graphic images stored in memory

ai. This string specifies the printer’s media type, sensor profile status, and communication diagnostics
status. As in String 1, this is a three-digit decimal representation of an eight-bit binary number. First,
convert the decimal number to a binary number.
aj. These values are only supported on the Xi4, RXi4, ZM400/ZM600, RZ400/RZ600, and ZT200
Seriesprinters.
The eight-digit binary number is read according to this table:

1/31/18

Programming Guide

P1099958-001

655

656

SGD Printer Commands
device.host_status

mmm = m7 m6 m5 m4 m3 m2 m1 m0
m7 = Media Type
0 = Die-Cut
1 = Continuous

m4 m3 m2 m1 = Unused
0 = Off
1 = On

m6 = Sensor Profile
0 = Off

m0 = Print Mode
0 = Direct Thermal
1 = Thermal Transfer

m5 = Communications Diagnostics
0 = Off
1 = On
String 3 "xxxx,y"
xxxx

=

password

y

=

0 (static RAM not installed)
1 (static RAM installed)

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
device.idle_display_format

device.idle_display_format
Retrieves and sets the front panel’s idle display format.

Commands

Details

setvar

Format: ! U1 setvar "device.idle_display_format" "value"
Values: fw-version,ip-address,mm/dd/yy-24-hr,mm/dd/yy-12-hr,dd/mm/yy-24hr,dd/mm/yy-12-hr
Default: "fw-version" (firmware version)
Format: ! U1 getvar "device.idle_display_format"

getvar

Result: fw-version,ip-address,mm/dd/yy-24-hr,mm/dd/yy-12-hr,dd/mm/yy-24hr,dd/mm/yy-12-h

Supported Devices
• QLn220, QLn320
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420
ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

657

658

SGD Wireless Commands
device.idle_display_value

device.idle_display_value
Returns the printer’s current front panel idle display information.

Type

Details

getvar

Format: ! U1 getvar "device.idle_display_value"
Result: A firmware version, the printer’s IP address, or the date.

Supported Devices
• QLn320, QLn220
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR638, ZR628
• ZT230, ZT220, ZT210
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
device.internal_wired_setting_location

device.internal_wired_setting_location
This command identifies the location from where internal_wired network specific settings should be
retrieved.

Commands

Details

setvar*

This command specifies the location from where internal_wired network specific settings should
be retrieved.
Format: ! U1 setvar "device.internal_wired_setting_location" "value"
Values:
"network card"
"printer"

Note • "printer" is the only valid option for the QLn series and ZD500 series printers.
Default: "network_card"
getvar

This command displays the location where internal_wired network specific settings are retrieved
from.
Format: ! U1 getvar "device.internal_wired_setting_location"
Note • "printer" is the only valid getvar option for the QLn series and ZD500 series
printers.

Supported Devices
• ZT200™ series
• ZD500™ series
• QLn™ series

Note • For details on SGD command structure, see Command Structure on page 573.
For printer support, see SGD Command Support on page 1393.

1/31/18

Programming Guide

P1099958-001

659

660

SGD Printer Commands
device.jobs_print

device.jobs_print
This command identifies the number of jobs to be printed. For printer support, see SGD Command
Support on page 1393.

Commands

Details

getvar

This command retrieves the number of jobs to be printed.
Format: ! U1 getvar "device.jobs_print"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: In this example, the getvar retrieves the jobs currently being printed or last printed.
! U1 getvar "device.jobs_print"

"1"

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
device.languages

device.languages
This command identifies the programming language that the printer is currently using.

Commands

Details

setvar

This command instructs the printer to set the printer to the required programming language.
Format: ! U1 setvar "device.languages" "value"
Values:
"epl" = Eltron Programming Language
"epl_zpl" = Eltron Programming Language and Zebra Programming Language
"zpl" = Zebra Programming Language
"hybrid_xml_zpl" = XML and ZPL Programming Languages
"apl-d" = Virtual Device-D (only Link-OS printers)
"apl-t" = Virtual Device-T (only desktop and table top printers with Link-OS)
"apl-e" = Virtual Device-E (only mobile printers with Link-OS)
"apl-o" = Virtual Device-O (only mobile printers with Link-OS)
"apl-i" = Virtual Device-I (only Link-OS printers)

Important • Not all values are accepted on all printers.
Use the ! U1 getvar "allcv" command to see the range of values that your
printer supports. Values other than those listed may be available depending on the
firmware version being used.
Note • "zpl" and "hybrid_xml_zpl" are equivalent. When the setvar is set to "zpl",
the getvar result will always be "hybrid_xml_zpl".
Default: "epl_zpl"
This command retrieves the programming language that the printer is currently using.

getvar

Format: ! U1 getvar "device.languages"
Example: This setvar example sets the programming language to "hybrid_xml_zpl" using the
shorter value of "zpl".
! U1 setvar "device.languages" "zpl"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

661

662

SGD Printer Commands
device.light.cover_open_brightness

device.light.cover_open_brightness
This command sets the brightness level for the Cover Open light.

Commands

Details

setvar

Sets the brightness level for the cover open LEDs.
Format: ! U1 setvar "device.light.cover_open_brightness" "value"
Values:
"high" = the LEDs display at maximum brightness when the cover is open
"medium" = the LEDs display at medium brightness when the cover is open
"low" = the LEDs display at lowest brightness when the cover is open
"off" = the LEDs remain off at all times
Default: "high"
Retrieves the current brightness level setting for the cover open LEDs.

getvar

Format: ! U1 getvar "device.light.cover_open_brightness"

Supported Devices ZT400 series
Example: This setvar example shows the value set to "low".
! U1 setvar "device.light.cover_open_brightness" "low"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
device.light.head_open_brightness

device.light.head_open_brightness
This command sets the brightness level for the Head Open light.

Commands

Details

setvar

Sets the brightness level for the head open LEDs.
Format: ! U1 setvar "device.light.head_open_brightness" "value"
Values:
"high" = the LEDs display at maximum brightness when the head is open
"medium" = the LEDs display at medium brightness when the head is open
"low" = the LEDs display at lowest brightness when the head is open
"off" = the LEDs remains off at all times
Default: "high"
Retrieves the current brightness level setting for the head open LEDs.

getvar

Format: ! U1 getvar "device.light.head_open_brightness"

Supported Devices ZT400 series
Example: This setvar example shows the value set to "medium".
! U1 setvar "device.light.head_open_brightness" "medium"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

663

664

SGD Wireless Commands
device.location

device.location
Sets the system location, which is used on the "server/sysinfo.htm" webpage.

Commands

Details

setvar

Format: ! U1 setvar "device.location" "value"
Values: Any ASCII string up to 128 characters.
Default: ""

(empty string)

Format: ! U1 getvar "device.location"

getvar

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
device.ltu_installed

device.ltu_installed
This command checks to see if a Liner Take-Up unit is installed.

Commands

Details

getvar

Format: ! U1 getvar "device.ltu_installed"
Values:
Yes
No
Default: No

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

665

666

SDG Printer Commands
device.orientation

device.orientation
This printer setting determines the installation orientation of the KR403 printer, either horizontal or
vertical. It is intended for use only by the system integrator. Modification by an end user can result in
unexpected printer behaviour.

Commands

Details
This command instructs the printer to change the presenter loop length.

setvar

Format: ! U1 setvar "device.orientation" "value"
Values:
0 = printer is installed horizontally
1 = is installed vertically
Default:
0 = printer is installed horizontally (original factory default only, value will not
change when defaulting the printer with ^JUF)
This command instructs the printer to respond with the currently set presenter loop
length.

getvar

Format: ! U1 getvar "device.orientation"

Supported Devices
• KR403

Note • For details on SGD command structure, see Command Structure on page 573.

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
device.pause

device.pause
This command stops printing after the current label is complete (if one is printing) and places the
printer in Pause Mode.
This command is equivalent to ~PP.

Commands

Details

setvar

This command stops printing and puts the printer in Pause Mode.
Format: ! U1 SETVAR "device.pause" ""
Values: NA
Default: NA
This command stops printing and puts the printer in Pause Mode.

do

Format: ! U1 DO "device.pause" ""
Values: NA
Default: NA

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

667

668

SGD Printer Commands
device.pnp_option

device.pnp_option
This command defines the type of Plug and Play response that is sent by the printer after the printer
is started. The printer must be restarted for a new PNP string to be reported. For printer support, see
SGD Command Support on page 1393.

Commands

Details

setvar

This command instructs the printer to select the desired Plug and Play response option.
Format: ! U1 setvar "device.pnp_option" "value"
Values:
"epl" = Eltron Programming Language
"zpl" = Zebra Programming Language
Default: "zpl"

getvar

This command retrieves the Plug and Play option setting.
Format: ! U1 getvar "device.pnp_option"

Note • For GT800 printers only: when the printer’s Plug and Play string is set to EPL, the KDU
Plus displays 'ONNECTION - EPL Printer (DTE) even when set to ZPL Forms mode. This
behavior only affects the display, not the functionality.

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows the value set to "zpl".
! U1 setvar "device.pnp_option" "epl"
When the setvar value is set to "epl", the getvar result is "epl".

P1099958-001

Programming Guide

1/31/18

SGD Wireless Commands
device.pmcu.revision

device.pmcu.revision
Retrieves the Power Micro-Controller Unit’s (PMCU) current revision number.

Commands

Details

getvar

Format: ! U1 getvar "device.pmcu.revision"

Supported Devices
• ZD410, ZD420
• ZQ510, ZQ520

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

669

670

SDG Printer Commands
device.position.accuracy

device.position.accuracy
This printer setting retrieves/sets the accuracy of the geographic position values.
The units of the value depend upon the location provider that was used to determine the geographic
coordinates. Usually, this is specified as a radius, in meters, of confidence around the location
coordinates. Often, the radius represents a radius of 68% confidence that the true location lies within
the circle, representing one standard deviation.

Note • These settings hold the value to which they are set, within the range restrictions. The
printer does not perform any calculations, nor associate any meaning such as “meters” or “feet” to
the values. The values can be determined by a number of methods, including an Android® or iOS®
application communicating with the printer using the smart phone’s geolocation device.

Commands

Details

setvar

This command sets the accuracy of the geographic position values.
Format: ! U1 setvar "device.position.accuracy" "value"
Values: A decimal number with 6 decimal places, e.g. 25.370000. The value is
saved as a double precision floating point number.

•
•

Minimum: 0
Maximum: 406700000

This command retrieves the accuracy of the geographic position values.

getvar

Format: ! U1 getvar "device.position.accuracy"

Example:

! U1 setvar "device.position.accuracy" "25.37"

Note • For details on SGD command structure, see Command Structure on page 573.

P1099958-001

Programming Guide

1/31/18

SDG Printer Commands
device.position.altitude

device.position.altitude
This printer setting retrieves the altitude above sea level.
The value is in meters above sea level. A positive number indicates a position above sea level. A
negative number indicates a position below sea level. The position of sea level depends upon the
system used to provide a nominal sea level reference position. This is often the World Geodetic
System WGS 84 standard but depends upon the location provider.

Commands

Details

setvar

This command sets the altitude of the printer above sea level.
Format: ! U1 setvar "device.position.altitude" "value"

Values: A decimal number with 6 decimal places, e.g. 305.100000
The value is saved as a double precision floating point number.
•
•

Minimum: -10000
Maximum: 406700000

Default: 0.0
This command retrieves the altitude above sea level.

getvar

Format: ! U1 getvar "device.position.altitude"

Example:

! U1 setvar "device.position.altitude" "305.1"

Note • For details on SGD command structure, see Command Structure on page 573.

1/31/18

Programming Guide

P1099958-001

671

672

SDG Printer Commands
device.position.latitude

device.position.latitude
This printer setting retrieves/sets the geographic latitudinal position.

Commands

Details

setvar

This command sets the latitude position of the printer.
Format: ! U1 setvar "device.position.latitude" "value"
Values: The value is in decimal degrees from 0.0 to +/-90.0.
Default: 0.0

This command retrieves the latitude position of the printer.

getvar

Format: ! U1 getvar "device.position.latitude"
Values: The value is returned with 6 decimal places. A value of 0.000001 degree is
on the order of 0.1 meter of distance on the earth's surface. (The correspondence
between degrees and length on the earth's surface varies because the earth is an
irregular ellipsoid.)
Example:

! U1 setvar "device.position.latitude" "6.123456"

Note • For details on SGD command structure, see Command Structure on page 573.

P1099958-001

Programming Guide

1/31/18

SDG Printer Commands
device.position.longitude

device.position.longitude
This printer setting retrieves/sets the geographic longitudinal position.

Commands

Details

setvar

This command sets the longitudinal position of the printer.
Format: ! U1 setvar "device.position.longitude" "value"
Values: The value is in decimal degrees from 0.0 to +/-180.0.
The value is saved as a double precision floating point number.
Default: 0.0
This command retrieves the longitudinal position of the printer. .

getvar

Format: ! U1 getvar "device.position.longitude"

Values: The value is returned with 6 decimal places. A value of 0.000001
degree is on the order of no more than 0.1 meter of distance on the earth's
surface. (The correspondence between degrees and length on the earth's surface
varies from approximately 0.1 meter at the equator to 0.0 at the poles.)
Example:

! U1 setvar "device.position.longitude" "25.123456"

Note • For details on SGD command structure, see Command Structure on page 573.

1/31/18

Programming Guide

P1099958-001

673

674

SGD Wireless Commands
device.print_2key

device.print_2key
Causes the printer to print the mobile configuration report (commonly known as a 2key report).

Commands

Details

setvar

Format: ! U1 setvar "device.print_2key" ""
(the set value is ignored)

do

Format: ! U1 do "device.print_2key"

Supported Devices
• iMZ220, iMZ320
• QLn320, QLn220
• ZQ510, ZQ520
• ZR638, ZR628

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
device.print_reprogram_2key

device.print_reprogram_2key
This command determines whether the printer will print a configuration label or 2key report after the
printer restarts following a firmware update.
When set to "off" the printer will not print the configuration label or 2key report after the printer is
updated.

Commands

Details

setvar

This command sets whether a two-key report is printed or not.
Format: ! U1 setvar "device.print_reprogram_2key" "value"
Values:
"yes"
"no"
Default: "no"
This command retrieves the current setting for processing two-key report after printer firmware is
reprogrammed.

getvar

Format: ! U1 getvar "device.print_reprogram_2key"
Result:
yes
no
Example: This example disables printing of the two-key report after printer firmware is
reprogrammed.
! U1 setvar "device.print_reprogram_2key" "no"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

675

676

SGD Wireless Commands
device.product_name_submodel

device.product_name_submodel
Retrieves the product name submodel, which is derived from the Printer Configuration Code (PCC,
also known as the SKU).

Commands

Details

getvar

Format: ! U1 getvar "device.product_name_submodel"
Result: "hc" = QLn Healthcare printers
"none" = QLn Standard printers and all other printers

Supported Devices
• ZD500R
• iMZ 220, iMZ 320
• QLn220, QLn320, QLn420
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZQ510, ZQ520
• ZR628, ZR638

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
device.prompted_network_reset

device.prompted_network_reset
Reinitializes the wireless radio card and the print server (wired or wireless) when the Wireless or
Wireless Plus print server is running. The command also causes any wireless radio card in the
printer to re-associate to the wireless network.
This command is equivalent to the ~WR on page 416 command.

Commands

Details

setvar

Format: ! U1 setvar "device.prompted_network_reset" "value"
Values: "yes" = causes the network to reset
"no" = no changes to the network

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500, ZD500R
• ZQ510, ZQ520
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

677

678

SGD Printer Commands
device.reset

device.reset
This command instructs the printer to perform a soft reset. For printer support, see SGD Command
Support on page 1393.

Commands

Details

setvar

This command instructs the printer to perform a soft reset.
Format: ! U1 setvar "device.reset" ""

Note • For details on SGD command structure, see Command Structure on page 986.
Example: In this example, the setvar performs a soft reset.
! U1 setvar "device.reset" ""

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
device.restore_defaults

device.restore_defaults
This command restores to the default of all settings within the specified SGD branch. For printer
support, see SGD Command Support on page 1393.

Commands

Details

setvar

This command restores to the default of all settings within the specified branch.
Format: ! U1 setvar "device.restore_defaults" "value"
Values:
"ip" = default all parameters in the IP branch
"wlan" = default all parameters in the wlan branch
"internal_wired" = default all parameters in the internal wired branch

do

This command restores the default setting for all items within the specified branch.
Format: ! U1 do "device.restore_defaults" "value"
Values:
"ip" = default all parameters in the ip branch
"wlan" = default all parameters in the wlan branch
"internal_wired" = default all parameters in the internal wired branch

Note • For details on SGD command structure, see Command Structure on page 1053.
Example: These do and setvar examples restore the network card’s wlan parameters to their
default values.
! U1 do "device.restore_defaults" "wlan"
! U1 setvar "device.restore_defaults" "wlan"

1/31/18

Programming Guide

P1099958-001

679

680

SGD Wireless Commands
device.rewinder_installed

device.rewinder_installed
Determines if a rewind option is installed on the printer.

Note • The Rewind Option is not the same as the Liner Take-Up Option.

Commands

Details

getvar

Format: ! U1 getvar "device.rewinder_installed"
Result: "yes" = a rewind option is installed
"no" = no rewind option installed

Supported Devices
• QLn320, QLn220
• ZQ510, ZQ520
• ZR638, ZR628
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
device.save_2key

device.save_2key
Sets or retrieves the current device.save_2key setting.

Note • The two-key report is a configuration listing orginally used on legacy mobile printers.

Commands

Details

setvar

Format: ! U1 setvar "device.save_2key" "value"
Values: "on" = Two-key diagnostics reports will be saved to Flash memory whenever a two-key
report is printed. The file will be named 2KEY.TXT.
"off" = Two-key reports will not be saved to Flash memory.
"now" = This choice can be used to generate a two-key diagnostics report on demand and save
it to Flash memory (save only, does not print). This choice does not alter the "on"/"off" state of this
SGD.
Default: "on"
Format: ! U1 getvar "device.save_2key"

getvar

Supported Devices
• iMZ220, iMZ320
• QLn320, QLn220, QLn420
• ZQ510, ZQ520
• ZR638, ZR628
Example: This example instructs the printer to generate a two-key diagnstics report and save it to
Flash memory.
! U1 setvar "device.save_2key" "now"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

681

682

SGD Wireless Commands
device.sensor_select

device.sensor_select
Determines which media sensor will be used.
This command is similar to the ^JS ZPL command.

Commands

Details

setvar

Format: ! U1 setvar "device.sensor_select" "value"
Values: "reflective"
"transmissive"
Default: "reflective"
Format: ! U1 getvar "device.sensor_select"

getvar

Supported Devices
• ZD410, ZD420
• ZD500
• ZT230, ZT220, ZT210
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
device.serial_number.option_board_date

device.serial_number.option_board_date
Returns the date the option board was made.

Note • This command is functional only on printers that had their option board manufacturing date
programmed when they were created. Older printers that do not have the option board creation
date programmed will return a "?" or empty string.
Commands

Details

getvar

Format: ! U1 getvar "device.serial_number.option_board_date"
Result: a date in mm/dd/yyyy format.

Supported Devices
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZQ510, ZQ520
• ZT210, ZT220, ZT230

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

683

684

SGD Wireless Commands
device.serial_numbers.control_panel_date

device.serial_numbers.control_panel_date
Returns the date the control panel was made.

Note • This command is functional only on printers that had their control panel manufacturing date
programmed when they were created. Older printers that do not have the control panel creation
date programmed will return a "?" or empty string.

Commands

Details

getvar

Format: ! U1 getvar "device.serial_numbers.control_panel_date"
Result: a date in mm/dd/yyyy format.

Supported Devices
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZQ510, ZQ520
• ZT210, ZT220, ZT230

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
device.serial_numbers.mlb_date

device.serial_numbers.mlb_date
Returns the date the main logic board (MLB) was made.

Note • This command is functional only on printers that had their MLB manufacturing date
programmed when they were created. Older printers that do not have the MLB creation date
programmed will return a "?" or empty string.

Commands

Details

getvar

Format: ! U1 getvar "device.serial_numbers.mlb_date"
Result: a date in mm/dd/yyyy format.

Supported Devices
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZQ510, ZQ520
• ZT210, ZT220, ZT230

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

685

686

SGD Printer Commands
device.serial_numbers.processor

device.serial_numbers.processor
Returns the unique main processor ID.

Getvar
To have the printer return the current setting value:
! U1 getvar "device.serial_numbers.processor"

Supported Printers
• ZD410, ZD420
• ZD500R, ZD510, ZD511
• ZD620
• ZQ310, ZQ320
• ZQ510, ZQ520
• ZT210, ZT220, ZT230,
• ZT510
• ZT610, ZT620

Notes
• For specific product support, see xref on page xxx.
• For details on command structure, see xref on page yyy.

P1099958-001

Programming Guide

1/31/18

device.set_clock_to_build_date

device.set_clock_to_build_date
Enables or disables a lower bound of the firmware build date for the rtc.date SGD.
If enabled, when the printer powers up and it finds and RTC date earlier than the firmware build date,
it will set the RTC date to the firmware build date.

Commands

Details

setvar

! U1 setvar "device.set_clock_to_build_date" "value"
Values:
"enabled"
"disabled"
Default: "enabled"

! U1 getvar "device.set_clock_to_build_date"

getvar

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320
• ZQ510, ZQ520
• ZD620
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

687

688

SGD Printer Commands
device.slot_1

device.slot_1
This command retrieves the type of board installed in the bottom slot of a ZT400 series printer, or in
the single expansion slot of a ZT200 series printer.

Commands

Details

getvar

This command retrieves the type of board installed in the bottom slot of a ZT400 series printer, or
the expansion slot of a ZT200 series printer..
Format: ! U1 getvar "device.slot_1"
Values:
"empty" = no board installed
"parallel" = a parallel communications board is installed
"wired" = a wired PrintServer board is installed
"wireless" = a wireless PrintServer board is installed

Supported Devices
• ZT400 series
• ZT200 series

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
device.slot_2

device.slot_2
This command retrieves the type of board installed in the bottom slot of a ZT400 series printer.

Commands

Details

getvar

This command retrieves the type of board installed in the bottom slot.
Format: ! U1 getvar "device.slot_2"
Values:
"empty" = no board installed
"parallel" = a parallel communications board is installed
"wired" = a wired PrintServer board is installed
"wireless" = a wireless PrintServer board is installed

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

689

690

SGD Printer Commands
device.super_host_status

device.super_host_status
This command returns printer description information in XML format. The printer returns information
on format parameters, object directories, individual object data, and print status information.
This command is equivilent to the ^HZA ZPL command.

Commands

Details

getvar

Format: ! U1 getvar "device.super_host_status"
Result: Information on format parameters, object directories, individual
object data, and print status information.

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
device.syslog.clear_log

device.syslog.clear_log
This setting clears the local syslog.entries SGD. Any log messages previously sent to an ip address
are not changed.

Commands

Details

setvar

Clears the local syslog file.
Format: ! U1 setvar "device.syslog.clear_log" ""
Values: NA
Default: NA
Clears the local syslog file.

do

Format: ! U1 do "device.syslog.clear_log" ""
Values: NA
Default: NA

Supported Devices Link-OS printers with firmware Vxx.19.7Z and later.
Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

691

692

SGD Printer Commands
device.syslog.configuration

device.syslog.configuration
This setting specifies the location for the syslog messages to be recorded. The location may be
either on the printer, or a syslog server IP address.

Commands

Details

setvar

Specifies the location for the syslog messages to be recorded.
Format: ! U1 setvar "device.syslog.configuration" "value"
Values: A list of configuration entries, limited to 1000 characters. Entries must be in the form of
"severity,destination" and delimited with a semi-colon.
• SEVERITY - The severity levels, in decreasing severity order, are:
• emerg

•
•
•
•
•
•
•

•

alert
crit
err
warning
notice

info
debug
When you specify the severity level, the lowest specified severity and all severity levels above
it will be recorded. For example, if you specify debug, you will get all severity level reports. If
you specify crit, you will get only crit, alert, and emerg severity reports.
DESTINATION - "local" or a syslog server IP address

Note • When configuring the local syslog report, the first local entry is used and duplicate
requests to local are ignored.
To configure remote syslog messages you will first need a syslog server to accept them.
Default: ""
getvar

Retrieves the configuration string setting.
Format: ! U1 getvar "device.syslog.configuration"

Supported Devices Link-OS printers with firmware Vxx.19.7Z and later.
Example 1 • This example has emergency syslog messages being sent to an IP location, debug
(and all higher severity) syslog messages to another IP address, and critical and higher syslog
messages to local storage (either a file or SGD).
! U1 setvar "device.syslog.configuration"
"emerg,128.168.0.1;debug,192.168.0.2;crit,local;"

Example 2 • This example will only report emegency syslog messages to the local file, and ignore
the duplicate location request for critical and higher reports.
! U1 setvar "device.syslog.configuration" "emerg,local;crit,local;"

Example 3 • This is an example of a syslog report stored at E:SYSLOG.TXT. Note that
device.syslog.save_local_file must be enabled.
Feb 17 14:28:17: [Power][Informational][0X14] Power On
Feb 17 14:28:19: [Print][Informational][0XF] PQ Job Completed
Feb 17 14:28:20: [Print][Informational][0XF] PQ Job Completed
Feb 17 14:28:20: [Weblink][Informational][0X1005] Weblink disabled
Feb 17 14:28:34: [Network][Notice][0X1C] Cold Start
P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
device.syslog.configuration

Example 4 • This is an example of a syslog report from a syslog server application monitoring an IP
address.

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

693

694

SGD Printer Commands
device.syslog.enable

device.syslog.enable
This printer setting enables syslog messages.

Important • The destination of syslog messages is specified in device.syslog.configuration.

Commands

Details

setvar

Enables or disables syslog.
Format: ! U1 setvar "device.syslog.enable" "value"
Values:
"on"
"off"
Default: "off"
Displays whether syslog is enabled.

getvar

Format: ! U1 getvar "device.syslog.enable"

Supported Devices Link-OS printers with firmware Vxx.19.7Z and later.
Example: This setvar example shows the value set to "on".
! U1 setvar "device.syslog.enable" "on"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
device.syslog.entries

device.syslog.entries
This printer setting displays previously sent syslog messages. If there are no previously sent syslog
messages, an empty string is returned.

Important • The destination of syslog messages is specified in device.syslog.configuration.

Commands

Details

getvar

Displays previously sent syslog messages.
Format: ! U1 getvar "device.syslog.entries"
The format of each syslog message includes the printer feature, the severity level, the unique
message code, and the unique English message. This allows for more advanced systems
administrators to filter particular messages of interest. Syslog currently supports unique
messages for most printer alerts, WebLink, and some USB Host messages.

Supported Devices Link-OS printers with firmware Vxx.19.7Z and later.
Example: This getvar example shows the value of the syslog file.
! U1 getvar "device.syslog.entries"
returns
Feb 17 14:28:17: [Power][Informational][0X14] Power On
Feb 17 14:28:19: [Print][Informational][0XF] PQ Job Completed
Feb 17 14:28:20: [Print][Informational][0XF] PQ Job Completed
Feb 17 14:28:20: [Weblink][Informational][0X1005] Weblink disabled
Feb 17 14:28:34: [Network][Notice][0X1C] Cold Start

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

695

696

SGD Printer Commands
device.syslog.log_max_file_size

device.syslog.log_max_file_size
This printer setting specifies the maximum size of the local syslog file.

Commands

Details

setvar

Sets the maximum syslog file size to the specified value.
Format: ! U1 setvar "device.syslog.log_max_file_size" "value"
Values: A numerical value between 10000 and 400000
Default: "10000"
Returns the maximum allowed size of the syslog file.

getvar

Format: ! U1 getvar "device.syslog.log_max_file_size"

Supported Devices Link-OS printers with firmware Vxx.19.7Z and later.
Example: This setvar example shows the value set to "200000".
! U1 setvar "device.syslog.log_max_file_size" "200000"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
device.syslog.save_local_file

device.syslog.save_local_file
This command saves the contents of the local syslog to E:SYSLOG.TXT.

Important • The local destination must be specified in device.syslog.configuration.

Commands

Details

setvar

Specifies whether to save the contents of the local syslog file to E:SYSLOG.TXT.
Format: ! U1 setvar "device.syslog.save_local_file" "value"
Values:
"yes" = the local syslog is saved to E:SYSLOG.TXT
"no" = the local syslog is not saved
Default: "no"
Displays the setting for saving the local syslog file to E:SYSLOG.TXT.

getvar

Format: ! U1 getvar "device.syslog.save_local_file"

Supported Devices Link-OS printers with firmware Vxx.19.7Z and later.
Example: This setvar example shows the value set to "yes".
! U1 setvar "device.syslog.save_local_file" "yes"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

697

698

SGD Printer Commands
device.applicator.data_ready_activation

device.applicator.data_ready_activation
Sets whether the applicator port DATA READY signal is asserted for all formats, or only for printing
formats.

Commands

Details

setvar

Format: ! U1 setvar "device.applicator.data_ready_activation" "value"
Values:
"print" = indicates the data ready signal is activated on printing labels only.
"format" = indicates the data ready signal is activated on all formats.
Default: "format"

Example:

! U1 setvar "device.applicator.data_ready_activation" "print"

Format: ! U1 getvar "device.applicator.data_ready_activation"

getvar

Result: "print"

Supported Devices
• ZT610, ZT620

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
device.applicator.error_on_pause

device.applicator.error_on_pause
Sets whether device applicator errors will be displayed.

Commands

Details

setvar

Format: ! U1 setvar "device.applicator.error_on_pause" "value"
Values:
"enabled" = device applicator errors will be displayed, and SERVICE REQUIRED

will be asserted.

"disabled" = device applicator errors will not be displayed.
Default: "enabled"

Example:

! U1 setvar "device.applicator.error_on_pause" "enabled"

Format: ! U1 getvar "device.applicator.error_on_pause"

getvar

Result: "enabled"

Supported Devices
• ZT610, ZT620

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

699

700

SGD Printer Commands
device.applicator.start_print_mode

device.applicator.start_print_mode
Selects the applicator port START PRINT mode of operation.

Related ZPL Command: ^JJ

Commands

Details

setvar

Format: ! U1 setvar "device.applicator.start_print_mode" "value"
Values:
"level" = the Start Print signal does not need to be de-asserted to print the next

label. As long as the Start Print signal is low and a label is formatted, a
label prints.
"pulse" = the Start Print signal must be de-asserted before it can be asserted for
the next label
Default: "pulse"

Example:

! U1 setvar "device.applicator.start_print_mode" "level"

Format: ! U1 getvar "device.applicator.start_print_mode"

getvar

Result: "level"

Supported Devices
• ZT610, ZT620

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
device.applicator.voltage

device.applicator.voltage
Sets the output voltage of the applicator board. The value will not take effect until a reboot.

Commands

Details

setvar

Format: ! U1 setvar "device.applicator.voltage" "value"
Values:
"0" = off
"5" = 5V
"24" = 24V
Default: "disabled"

Example:

! U1 setvar "device.applicator.voltage" "5"

Format: ! U1 getvar "device.applicator.voltage"

getvar

Result: "5"

Supported Devices
• ZT610, ZT620

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

701

702

SGD Printer Commands
device.unique_id

device.unique_id
This command retrieves the printer identifier. For printer support, see SGD Command Support
on page 1393.

Commands

Details

getvar

This command retrieves the established printer identifier.
Format: ! U1 getvar "device.unique_id"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: In this example, assuming the printer’s unique ID is 12345, the getvar shows "12345".
! U1 getvar "device.unique_id"

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
device.unpause

device.unpause
This command causes a printer in Pause Mode to resume printing. The operation is identical to
pressing PAUSE on the control panel of the printer when the printer is already in Pause Mode.
This command is equivalent to ~PS.

Commands

Details

setvar

Format: ! U1 SETVAR "device.pause" ""
Values: NA
Default: NA
Format: ! U1 DO "device.unpause" ""

do

Values: NA
Default: NA

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

703

704

SGD Printer Commands
device.uptime

device.uptime
This command identifies the amount of time the printer has been powered on. The string format is:
xx days, xx hours, xx minutes, and xx seconds. For printer support, see SGD Command Support
on page 1393.

Commands

Details

getvar

This command retrieves the amount of time the print has been powered on. It responds in the
following format (days, hours, minutes, and seconds).
Format: ! U1 getvar "device.uptime"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: In this example, the getvar retrieves the amount of time the printer has been turned on.
! U1 getvar "device.uptime"
"00 days 02 hours 45 mins 30 secs"

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
device.user_p1

device.user_p1
This command saves and retrieves user specified values. For printer support, see SGD Command
Support on page 1393.

Commands

Details

setvar

This command instructs the printer to set user parameters.
Format: ! U1 setvar "device.user_p1" "value"
Values: alphanumeric text string (1 - 20)
Default: ""

getvar

This command saves and retrieves user specified parameters.
Format: ! U1 getvar "device.user_p1"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows the value set to "test".
! U1 setvar "device.user_p1" "test"
When the setvar value is set to "test", the getvar result is "test".

1/31/18

Programming Guide

P1099958-001

705

706

SGD Printer Commands
device.user_p2

device.user_p2
This command saves and retrieves user specified values. For printer support, see SGD Command
Support on page 1393.

Commands

Details

setvar

This command instructs the printer to set user parameters.
Format: ! U1 setvar "device.user_p2" "value"
Values: alphanumeric text string (1 - 20)
Default: ""

getvar

This command saves and retrieves user specified parameters.
Format: ! U1 getvar "device.user_p2"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows the value set to "test".
! U1 setvar "device.user_p2" "test"
When the setvar value is set to "test", the getvar result is "test".

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
device.user_vars.set_rangedevice.user_vars.set_range

device.user_vars.set_range
This command compliments the device.user_vars.create command, allowing a user to change
the range of a user-created SGD variable. It has a similar syntax to device.user_vars.create
with the exception that no default is specified.

Commands

Details

setvar

This command allows the user to change the range of a user-created variable.
Format: ! U1 setvar "device.user_vars.set_range" "name:type:range"
Values:
• name = the name of the SGD to modify
• type = Must be the same type for 'name' as when it was created
• range = x-y (for all but UPDOWNCHOICES and CHOICES) or a,b,c,d (for CHOICES and
UPDOWNCHOICES)
• If no range is specified then it will delete whatever range is currently specified.
Default: NA

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™
Example: This example modifies my_var to:
device.user_vars.my_var : b , Choices: a,b,c,d,e

! U1 setvar "device.user_vars.set_range" "my_var:CHOICES:a,b,c,d,e"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

707

708

SGD Printer Commands
device.user_vars.createdevice.user_vars.create

device.user_vars.create
This command creates a user variable with the specified name, type, range, and default value. The
root SGD location for user variables is "device.user_vars".

Commands

Details

setvar

This command instructs the printer to create a user variable with the specified parameters.
Format: ! U1 setvar "device.user_vars.create"

"name:type:range:defaultValue"
Values:
• name = the name of the SGD to appear in device.user_vars. The name can be anything from 1 to 64 printable ASCII characters. Any '.' within the name will be replaced with '_'. (e.g. "john.doe" will be changed
to "john_doe”. The name must be unique in the device.user_vars branch or it will not be created. The
name will be converted to lower case.

•

type = one of STRING, INTEGER, DOUBLE, CHOICES, UPDOWNCHOICES, UPDOWNINTEGER,
UPDOWNDOUBLE. The type must be one of these types or the variable will not be created.

•

•
•
•

STRING - For strings the range indicates the min/max length of the data that can be stored. If the
range is left blank, the default range is a string length of 0-1024. There is no maximum string length,
however, if large data is placed into the variables the user should be aware that system memory and
performance will be affected. Strings larger than available system memory will not be stored. Values
should attempt to stay around, or below, 5K.
INTEGER/UPDOWNINTEGER - For integers the range can be any number expressed by a 32-bit
integer, signed or unsigned. If the range is left blank then a range of -32768 to 32767 will be used.
DOUBLE/UPDOWNDOUBLE - A double can be any value within the range of +/–1.7e308. If the range
is left blank then a range of -32768.0 to 32767.0 will be used.
CHOICES/UPDOWNCHOICES - Choices must be specified in a comma delimited list. The range
cannot be blank if the type is CHOICES or UPDOWNCHOICES.

•

range = Expressed as x-y. The range of a variable depends upon the type. Some types will create

•

default = the default value for the variable. The value must fall within the range specified or the variable

•

All four parts of the creation string must be present (some can be empty) meaning that there must be
three delimiter characters (':') present. There is no error shown or indicated otherwise when the variable is
not created for some reason. If the variable is not created one of the rules listed above has been violated.

•

Any user variables will be deleted from the device.user_vars branch on a power cycle (they won't be recreated on the next power up).

•

Defaulting the user_vars branch will restore the consumers back to their defaulted values and will not
remove them from the user_vars branch.

default ranges, while others will fail to be created if the range is invalid or not specified.

will not be created. If the type is INTEGER, UPDOWNINTEGER, DOUBLE, UPDOWNDOUBLE the
default value will be 0 if not specified. For STRING the default value will be an empty string if it is not specified. CHOICES and UPDOWNCHOICES must have a default value and it must be one of the choices
within the specified range.

Default: NA

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
device.user_vars.createdevice.user_vars.create

Example: To create a user variable named userVar1 that is an integer with a minimum of 1, a
maximum of 10, and a default/initial value of 5, issue this command:
! U1 setvar "device.user_vars.create" "userVar1:INTEGER:1-10:5"
After issuing the above “create” command the device.user_vars.userVar1 SGD will be present
in an ALLCV response.
After issuing the above “create” command the device.user_vars.userVar1 SGD may be set via:
! U1 setvar "device.user_vars.userVar1" "2"
After issuing the above “create” command the “device.user_vars.userVar1” SGD may be retrieved
via:
! U1 getvar "device.user_vars.userVar1"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

709

710

SGD Printer Commands
device.xml.enable

device.xml.enable
This command enables and disables language parsing support for XML. When enabled (on), the
printer will parse both ZPL and XML. When disabled (off), the printer will not parse XML data. For
printer support, see SGD Command Support on page 1393.

Commands

Details

setvar

This command instructs the printer to disable or enable the language parsing support for XML.
Format: ! U1 getvar "device.xml.enable" "value"
Values:
"on" = enables language parsing support for XML
"off" = disables language parsing support for XML
Default: on

getvar

This command enables and disables language parsing support for XML.
Format: ! U1 getvar "device.xml.enable"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows the language parsing support for XML set to "on".
! U1 setvar "device.xml.enable" "on"
When the setvar value is set to "on", the getvar result is language parsing support for XML set to
"on".

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
device.feature.lighted_arrows

device.feature.lighted_arrows
Indicates if the Lighted Arrows hardware is installed.

Commands

Details

getvar

Format: ! U1 getvar "device.feature.lighted_arrows"
Result:
"not available" = lights are not available for this printer
"present" = lights are installed
"not present" = lights are not installed

****

Note •
Supported Devices
• ZT610, ZT620

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

711

712

SGD Printer Commands
device.light.ribbon_path_brightness

device.light.ribbon_path_brightness
Sets the brightness level for the ribbon path LED.

Commands

Details

setvar

Format: ! U1 setvar "device.light.ribbon_path_brightness" "value"
Values:
"off"
"low"
"medium"
"high"
Default: "high"

Example:

! U1 setvar "device.light.ribbon_path_brightness" "low"

Format: ! U1 getvar "device.light.ribbon_path_brightness"

getvar

Result: "low"

Supported Devices
• ZT510
• ZT610, ZT620

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
device.light.media_path_brightness

device.light.media_path_brightness
Sets the brightness level for the media path LED.

Commands

Details

setvar

Format: ! U1 setvar "device.light.media_path_brightness" "value"
Values:
"off"
"low"
"medium"
"high"
Default: "high"

Example:

! U1 setvar "device.light.media_path_brightness" "low"

Format: ! U1 getvar "device.light.media_path_brightness"

getvar

Result: "low"

Supported Devices
• ZT510
• ZT610, ZT620

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

713

714

SGD Printer Commands
display.backlight

display.backlight
This parameter determines if the printer display backlight will be active. Valid only on printers with a
display installed.

Commands

Details

setvar

This command instructs the printer to turn on or off the backlight display.
Format: ! U1 setvar "display.backlight" "value"
Values: on, off
Default: on
This command returns if the display backlight is on or off..

getvar

Format: ! U1 getvar "display.backlight
Example: This example sets the backlight display to "on".
! U1 setvar "display.backlight" "on"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
display.backlight_on_time

display.backlight_on_time
This command sets the amount of time before the backlight turns off. Valid only on printers with a
display installed.

Commands

Details

setvar

This command sets the display length in seconds.
Format: ! U1 setvar "display.backlight_on_time" "time"
Values: 0-8191
Default: 0

Note • If the value is set to 0, the backlight will remain on.
This command returns the display length in seconds.

getvar

Format: ! U1 getvar "display.backlight_on_time"

Example: This setvar example shows the value set to one minute (60 seconds).
! U1 setvar "display.backlight_on_time" "60"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

715

716

SGD Printer Commands
display.batch_counter

display.batch_counter
Sets whether batch counters will be displayed on the printer’s control panel.

Commands

Details

setvar

Format: ! U1 setvar "display.batch_counter" "value"
Values:
"enabled" = batch counters will be displayed
"disabled" = batch counters will not be displayed
Default: "disabled"
Example: ! U1 setvar "display.batch_counter" "enabled"
Format: ! U1 getvar "display.batch_counter"

getvar

Result: "enabled"

Supported Devices
• QLn220, QLn320, QLn420
• ZD500
• ZQ510, ZQ520
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
display.language

display.language
This command sets the display language for the control panel. This is equivalent to the ^KL ZPL
command.

Commands

Details

setvar

This command sets the display language for the front panel.
Format: ! U1 setvar "display.language" "language"
Values:

"english"
"spanish"
"french
"german"
"italian"
"norwegian"
"portuguese"
"swedish"
"danish"
"spanish2" (same as Spanish)
"dutch"
"finnish"
"japanese"
"korean"
"simplified chinese"
"traditional chinese"
"russian"
"polish"
"czech"
"romanian"
Default: "english"
This command returns the currently set display language.

getvar

Format: ! U1 getvar "display.language"
ak.These values are only supported on the ZT200 Series, Xi4, RXi4, ZM400/ ZM600, and RZ400/RZ600 printers.

Example: This setvar example shows the value set to "dutch".
! U1 setvar "dsplay.language" "dutch"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

717

718

SGD Printer Commands
display.load_card

display.load_card
This command loads a specific card from a WML file.

Commands

Details

setvar

Format: ! U1 setvar "display.load_card" "value"
Values: A valid WML filename and card within the WML filename.
Note • The card name is case sensitive.

Example:

! U1 setvar "display.load_card" "BLUETOOTH.WML#bluetooth2"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
display.password.level

display.password.level
Controls when to display the password WML card on the LCD display.

Commands

Details

setvar

Format: ! U1 setvar "display.password.level" "value"
Values:
"all" - The user will always be prompted to enter a password when a field is to be
modified.
"none" - The user will not be prompted to enter a password on the LCD display.
"selected" - The user will be prompted to enter a password only if the WML card
contains a password ="on" attribute and the user attempts to change a setting.
Default:

"selected" - QLn420, QLn320 Healthcare, and QLn220 Healthcare
"none" - all other platforms
Format: ! U1 getvar "display.password.level"

getvar

Supported Devices
• QLn220, QLn320, QLn420
• ZT230
• ZT410, ZT420
• ZD500

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

719

720

SGD Wireless Commands
display.root_wml

display.root_wml
This command specifies which control file is first processed by the printer’s front panel.

Commands

Details

setvar

Format: ! U1 setvar "display.root_wml" "value"
Values: Any file name with a maximum of 128 characters in length.
Default:
• Z:INDEX420.WML for the QLn420 printers
• Z:INDEX320.WML for the QLn220 and QLn320 printers
• Z:INDEX.WML for all other printers
If the value is "" on power-up, then Z:INDEX.WML is used.
Format: ! U1 getvar "display.root_wml"

getvar

Supported Devices
• QLn220, QLn320, QLn420
• ZR638
• ZR628

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
display.text

display.text
This command retrieves the text data that is being used on the printer’s LCD. For printer support,
see SGD Command Support on page 1393.

Commands

Details

getvar

This command retrieves the text data that appears on the printer’s LCD.
Format: ! U1 getvar "display.text"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: In this example, the getvar displays text content that appears on the printer’s LCD.
! U1 getvar "display.text"

"PRINTER READY

1/31/18

V60.16.4Z"

Programming Guide

P1099958-001

721

722

SGD Printer Commands
file.capture_response.destination

file.capture_response.destination
Sets whether batch counters will be displayed on the printer’s control panel.

Commands

Details

setvar

Format: ! U1 setvar "file.capture_response.destination" "value"
Values:
"printer_file" = captured files will be written to the printer’s memory
"usb_file" = captured files will be written to a USB storage device
Default: "printer_file"

Example:

! U1 setvar "file.capture_response.destination" "usb_file"

Format: ! U1 getvar "file.capture_response.destination"

getvar

Result: "usb_file"

Supported Devices
• iMZ220, iMZ230
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
head.resolution.in_dpi

head.resolution.in_dpi
Returns the resolution of the print head in dots per inch as an integer.

Commands

Details

getvar

Format: ! U1 getvar "head.resolution.in_dpi"
Values: '203', '300', or '600'

Supported Devices
• iMZ220, iMZ230
• QLn220, QLn320, QLn420
• ZD500
• ZQ510, ZQ520
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

723

724

SGD Printer Commands
ezpl.head_close_action

ezpl.head_close_action
This command sets what happens to the media after the printhead is closed and the printer is taken
out of pause.
This command is similar to the ^MF ZPL command.

Commands

Details

setvar

This command instructs the printer on which action to perform when the printhead is closed.
Format: ! U1 setvar "ezpl.head_close_action" "value"
Values:
"feed" = feed to the first web after sensor
"calibrate" = is used to force a label length measurement and adjust the media and ribbon
sensor values.
"length" = is used to set the label length. Depending on the size of the label, the printer
feeds one or more blank labels.
"no motion" = no media feed
"short cal" = short calibration
Default: "calibrate"
This command returns the currently set action to be performed when the printhead is closed.

getvar

Format: ! U1 getvar "ezpl.head_close_action"
Example: This setvar example sets the calibration method to short calibration.
! U1 setvar "ezpl.head_close_action" "short cal"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
ezpl.label_length_max

ezpl.label_length_max
This command sets the maximum label length in inches.
This command is equivalent to the ^ML ZPL command.

Commands

Details

setvar

This command sets the maximum label length in inches.
Format: ! U1 setvar "ezpl.label_length_max" "value"
Values: 1.0 to 39.0
Default: "39"
This command retrieves the current maximum label length setting in inches.

getvar

Format: ! U1 getvar "ezpl.label_length_max"
Example: This example sets the label length to 6.2 inches.
! U1 setvar ezpl.label_length_max" "6.2"
! U1 setvar ezpl.label_length_max" "14"
Note • Values can be expressed to one decimal place.

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

725

726

SGD Printer Commands
ezpl.label_sensor

ezpl.label_sensor
This command sets the paper out threshold value.

Commands

Details

setvar

This command sets the paper out threshold value.
Format: ! U1 setvar "ezpl.label_sensor" "value"
Values: "0" to "255",interger values only
Default: "70"
This command retrieves the currently set paper out threshold value.

getvar

Format: ! U1 getvar "ezpl.label_sensor"
Example: This setvar example shows the value set to 50.
! U1 setvar "ezpl.label_sensor" "50"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
ezpl.manual_calibration

ezpl.manual_calibration
This command initiates a manual calibration sequence.

Commands

Details

setvar

This command instructs the printer to initiate a manual calibration.
Format: ! U1 setvar "ezpl.manual_calibration" ""
Values: NA
Default: NA
This command instructs the printer to initiate a manual calibration.

do

Format: ! U1 do "ezpl.manual_calibration" ""
Values: NA
Default: NA

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

727

728

SGD Printer Commands
ezpl.media_type

ezpl.media_type
This command specifies the media type being used.
This command is similar to the ^MN ZPL command.

Commands

Details

setvar

This command sets the media type used in the printer.
Format: ! U1 setvar "ezpl.media_type" "value"
Values:
"continuous"
"gap/notch"
"mark"
Default: "gap/notch"
This command returns the current media type setting.

getvar

Format: ! U1 getvar "ezpl.media_type"
Example: This setvar example sets the media type to "continuous".
! U1 setvar "ezpl.media_type" "continuous"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
ezpl.power_up_action

ezpl.power_up_action
This command sets what happens to the media when the printer is powered on.
This command is similar to the ^MF ZPL command.

Commands

Details

setvar

This command sets the media motion and calibration setting at printer power up.
Format: ! U1 setvar "ezpl.power_up_action" "value"
Values:
"calibrate"
"feed"
"length"
"no motion"
"short cal"
Default:
"calibrate"
This command returns the current power up media motion and calibration settings.

getvar

Format: ! U1 getvar "ezpl.power_up_action"
Example: This setvar example sets the power up calibration setting to "length".
! U1 setvar "ezpl.power_up_action" "length"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

729

730

SGD Printer Commands
ezpl.print_method

ezpl.print_method
This command sets the print method.
This command is similar to ^MT.

Commands

Details

setvar

This command sets the print method.
Format: ! U1 setvar "ezpl.print_method" "value"
Values:
"thermal trans"
"direct thermal"
Default: "thermal trans"
This command retrieves the current print method setting.

getvar

Format: ! U1 getvar "ezpl.print_method"
Example: This setvar example sets the print method to "direct thermal".
! U1 setvar ezpl.print_method" "direct thermal"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
ezpl.print_width

ezpl.print_width
This command sets the print width of the label.

Commands

Details

setvar

This command sets the print width..
Format: ! U1 setvar "ezpl.print_width" "value"
Values: any printhead width
Default: the width of the printhead
This command retrieves the current print width setting.

getvar

Format: ! U1 getvar "ezpl.print_width"
Example: This setvar example sets the print width value to 3.
! U1 setvar "ezpl.print_width" "3"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

731

732

SGD Printer Commands
ezpl.reprint_mode

ezpl.reprint_mode
This command turns on/off the reprint mode.

Commands

Details

setvar

This command instructs the printer to turn on or off reprint mode.
Format: ! U1 setvar "ezpl.reprint_mode" "value"
Values:
"on"
"off"
Default: "off"
This command retrieves the current setting for reprint mode.

getvar

Format: ! U1 getvar "ezpl.reprint_mode"

Supported Devices
• iMZ220 / iMZ320
• QLn220 / QLn320
• ZD500
• ZT200 series
• ZT400 series
Example: This setvar example turns reprint mode on.
! U1 setvar "ezpl.reprint_mode" "on"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
ezpl.take_label

ezpl.take_label
This command sets the take label position.

Commands

Details

setvar

This command sets the take label position .
Format: ! U1 setvar "ezpl.take_label" "value"
Values:

"0" to "255"

Default: "50"
getvar

This command retrieves the take label position.
Format: getvar "ezpl.take_label"

Example: This example sets the take label position to 175.
! U1 setvar "ezpl.take_label" "175"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

733

734

SGD Printer Commands
ezpl.tear_off

ezpl.tear_off
This command retrieves the tear-off position.

Commands

Details

setvar

This command sets the tear-off position.
Format: ! U1 setvar "ezpl.tear_off" "value"
Values: "-120" to "120"
Default: "0"
This command retrieves the currently set tear-off position.

getvar

Format: ! U1 getvar "ezpl.tear_off"
Example: This setvar example sets the tear-off value to 110.
! U1 setvar "ezpl.tear_off" "110"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
file.delete

file.delete
This command instructs the printer to delete specified files. For printer support, see SGD Command
Support on page 1393.

Commands

Details

do

This command instructs the printer to delete specified files.
Format: ! U1 do "file.delete" "value"
Values: file name

Important • Be sure to always specify the memory location.

Note • For details on SGD command structure, see Command Structure on page 986.
Example: This do example shows the specified file to delete.
! U1 do "file.delete" "e:abcd.zpl"

1/31/18

Programming Guide

P1099958-001

735

736

SGD Printer Commands
file.dir

file.dir
This command displays a directory listing on the same port the command was received. For printer
support, see SGD Command Support on page 1393.

Commands

Details

setvar

This command sets the directory name from which to retrieve files.
Format: ! U1 setvar "file.dir" "value"
Values: directory letter

Important • Be sure to always specify the memory location.
getvar

This command retrieves a directory listing of the specified directory.
Format: ! U1 getvar "file.dir"

Important • Be sure to always specify the memory location.
do

This command sets the directory name from which to retrieve files.
Format: ! U1 do "file.dir" "value"
Values: directory letter

Important • Be sure to always specify the memory location.

Note • For details on SGD command structure, see Command Structure on page 986.
Example: This do example shows the directory listing of the specified directory.
! U1 do "file.dir" "R:"

- DIR R:*.*
- 11172192 bytes free R: RAM

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
file.dir_format

file.dir_format
This command controls the output format of the file.dir Set/Get/Do command.

Commands

Details

setvar

This command sets the output format.
Format: ! U1 setvar "file.dir_format" "value"
Values:
"cpcl"
"zpl"
This command retrieves the current setting for the output format.

getvar

Format: ! U1 getvar "file.dir_format"
Result:
"cpcl"
"zpl"
This command sets the output format.

do

Format: ! U1 do "file.dir_format" "value"
Values:
"cpcl"
"zpl"

Example: This do example sets the directory format to CPCL.
! U1 do "file.dir_format" "cpcl"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

737

738

SGD Printer Commands
file.type

file.type
This command displays the contents of the specified file. For printer support, see SGD Command
Support on page 1393.

Commands

Details

setvar

This command instructs the printer to display the content of a file on the same port the command
was received.
Format: ! U1 setvar "file.type" "value"
Values: the drive letter, file name, file extension, such as R:TEST.ZPL

Important • Be sure to always specify the memory location.
do

This command displays the content of a file on the same port the command was received.
Format: ! U1 do "file.type" "value"
Values: the drive letter, file name, file extension, such as R:TEST.ZPL

Important • Be sure to always specify the memory location.

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows the value set to "R:TEST.ZPL".
! U1 setvar "file.type" "R:TEST.ZPL"
When the setvar value is set to "R:TEST.ZPL", the contents of the file TEST.ZPL located on the R:
drive will be displayed.

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
file.run

file.run
This command instructs the printer to send a specified file to the parser. For printer support, see
SGD Command Support on page 1393.

Commands

Details

setvar

This command instructs the printer to send a specified file to the parser.
Format: ! U1 setvar "file.run" "values"
Values: drive:filename.extension

Important • Be sure to always specify the memory location.
do

This command instructs the printer to send a specified file to the parser.
Format: ! U1 do "file.run" "value"
Values: drive:filename.extension

Important • Be sure to always specify the memory location.

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example will send the file "text.zpl" stored in RAM to the parser.
! U1 setvar "file.run" "R:text.zpl"

1/31/18

Programming Guide

P1099958-001

739

740

SGD Printer Commands
formats.cancel_all

formats.cancel_all
The ~JA command cancels all format commands in the buffer. It also cancels any batches that are
printing.
This command is equivalent to the ~JA ZPL command.

Commands

Details

setvar

This command cancels all format commands in the buffer.
Format: ! U1 setvar "formats.cancel_all" ""
Values: NA
Default: NA
This command cancels all format commands in the buffer.

do

Format: ! U1 do "formats.cancel_all" ""

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

head.darkness_switch_enable

head.darkness_switch_enable
Enables the darkness switch on desktop printers.

Commands

Details

setvar

! U1 setvar "head.darkness_switch_enable" "value"
Values:
"on" = enables the darkness switch
"off" = disables the darkness switch
Default: "on"

! U1 getvar "head.darkness_switch_enable.

getvar

Supported Devices
• ZD410, ZD420
• ZD620

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

741

742

head.darkness_switch_enable

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
head.darkness_switch

head.darkness_switch
Indicates the value to which the darkness switch is set on the printer.

Commands

Details

getvar

! U1 getvar "head.darkness_switch"
Values: (looking at the switch from the rear of the printer)
"low" = darkness switch is on the left
"medium" = darkness switch is in the middle
"high" = darkness switch is on the right

Supported Devices
• ZD410, ZD420
• ZD620

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

743

744

SGD Wireless Commands
head.element_test

head.element_test
This command will cause the printer to immediately run the head test on all printhead elements. The
command can also display the result of the last head element test.

Commands

Details

do

Format: ! U1 do "head.element_test" ""

getvar

Format: ! U1 getvar "head.element_test"
Values: The possible getvar responses include:
"Head Elements OK" – All head elements passed the test.
"n, n..." - a comma-separated list of elements that failed the test.
"Initialization Failed" – the test could not start.
"Failed to Attach" – the test could not start.
"Please Run Test" – default response if there are no results to display.
"In Progress" – The element test has been started but not completed yet.
Default: "Please Run Test"

Supported Devices
• ZQ510, ZQ520

Example: This example shows a single element that failed the test.
"86"
Example: This example shows a list of elements that failed the test.
"75,309,456,778,779"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
head.latch

head.latch
This command identifies if the printhead is open or closed. For printer support, see SGD Command
Support on page 1393.

Commands

Details

getvar

This command retrieves the status of the printhead, open or closed.
Format: ! U1 getvar "head.latch"
Values:
"ok" = closed
"open" = open

Note • For details on SGD command structure, see Command Structure on page 573.
Example: In this example, the getvar retrieves the status of the print head.
! U1 getvar "head.latch"

"ok"

1/31/18

Programming Guide

P1099958-001

745

746

SGD Printer Commands
input.capture

input.capture
This parameter allows capturing input data in diagnostics mode. Input capture has three modes:
"print", "run", and "off". The "print" and "run" modes can be used to examine data received by the
printer.
When in "print" mode the printer will save incoming data to files named "in???.dmp", where ??? is
a number between 001 to 999. The printer will then print the text and hexadecimal representation of
data bytes received instead of printing the formatted labels which that data might represent. When in
"run" mode the printer will save captured incoming data to files as above, but will otherwise run the
incoming data/commands normally.
The capture files should be deleted from printer memory after retrieving them. Leaving the printer in
"print" or "run" mode and not deleting the capture files will reduce the printer’s available flash
memory.
The "off" mode is the printer’s normal operating mode. Cycling power will also return the printer to
"off" mode.

Note • This command does not capture a network packet trace.

Commands

Details

setvar

This command sets the directory name from which to retrieve files.
Format: ! U1 setvar "input.capture" "value"
Values:
"print"
"run"
"off"
Default: "off"
This command retrieves the current input.capture setting value.

getvar

Format: ! U1 getvar "input.capture"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
interface.network.active.arp_interval

interface.network.active.arp_interval
This command changes the arp interval.

Commands

Details

setvar

This command retrieves the gateway address of the active print server.
Format:
! U1 getvar "interface.network.active.arp_interval" "value"
Values: integer values from "0" to "30"
Default: "0"
This command retrieves the current arp interval setting, shown in minutes.

getvar

Format:
! U1 getvar "interface.network.active.arp_interval"

Example: In this example, the setvar changes the arp interval to three minutes.
! U1 getvar "interface.network.active.arp_interval" "3"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

747

748

SGD Printer Commands
interface.network.active.cable_type

interface.network.active.cable_type
This command returns the cable type of the active network, either 10/100BaseT, Wireless 802.11b/g,
or Wireless 802.11n.

Note • This command will only give a valid response once an IP address has been established.

Commands

Details

getvar

This command retrieves the current cable type of the active network.
Format: ! U1 getvar "interface.network.active.cable_type"
Values:
"10/100BaseT"
"Wireless 802.11b/g"
"Wireless 802.11n"
Default: NA

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
interface.network.active.dhcp_received_host_name

interface.network.active.dhcp_received_hos
t_name
This command reports the Host Name as assigned by the DHCP Server. If one is not assigned, or
DHCP is not used, then the field will be blank.

Note • This command will only give a valid response once an IP address has been established.

Commands

Details

getvar

This command reports the host name..
Format:

! U1 getvar "interface.network.active.dhcp_received_host_name"
Example:
! U1 getvar "interface.network.active.dhcp_received_host_name"
Result:
"Zebra Printer on shelf 2112"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

749

750

SGD Printer Commands
interface.network.active.gateway

interface.network.active.gateway
This command retrieves the gateway address of the active print server. For printer support, see SGD
Command Support on page 1393.

Commands

Details

getvar

This command retrieves the gateway address of the active print server.
Format:
! U1 getvar "interface.network.active.gateway"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: In this example, the getvar retrieves the gateway address of the active print server.
! U1 getvar "interface.network.active.gateway"

"10.3.5.1"

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
interface.network.active.ip_addr

interface.network.active.ip_addr
This command retrieves the IP address of the active print server. For printer support, see SGD
Command Support on page 1393.

Commands

Details

getvar

This command retrieves the IP address of the active print server.
Format:
! U1 getvar "interface.network.active.ip_addr"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: In this example, the getvar retrieves the IP address of the active print server.
! U1 getvar "interface.network.active.ip_addr"

"10.3.5.92"
w

1/31/18

Programming Guide

P1099958-001

751

752

SGD Printer Commands
interface.network.active.mac_addr

interface.network.active.mac_addr
This command retrieves the MAC address of the active print server. For printer support, see SGD
Command Support on page 1393.

Commands
getvar

Details
This command retrieves the MAC address of the active print server.
Format:
! U1 getvar "interface.network.active.mac_addr"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: In this example, the getvar retrieves the MAC address of the active print server.
! U1 getvar "interface.network.active.mac_addr"

"00:07:4d:24:08:ff"

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
interface.network.active.mac_raw

interface.network.active.mac_raw
This command identifies the RAW MAC address of the active print server. The raw mac address is
the mac address without the colons (":"). For printer support, see SGD Command Support
on page 1393.

Commands

Details

getvar

This command retrieves the RAW MAC address of the active print server.
Format:
! U1 getvar "interface.network.active.mac_raw"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: In this example, the getvar retrieves the RAW MAC address of the active print server.
! U1 getvar "interface.network.active.mac_raw"

"00074d2408ff"

1/31/18

Programming Guide

P1099958-001

753

754

SGD Printer Commands
interface.network.active.netmask

interface.network.active.netmask
This command retrieves the netmask of the active print server. For printer support, see SGD
Command Support on page 1393.

Commands

Details

getvar

This command retrieves the netmask of the active print server.
Format:
! U1 getvar "interface.network.active.netmask"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: In this example, the getvar retrieves the netmask of the active print server.
! U1 getvar "interface.network.active.netmask"

"255.255.255.0"

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
interface.network.active.protocol

interface.network.active.protocol
This command retrieves IP protocol of the active print server. For printer support, see SGD
Command Support on page 1393.

Commands

Details

getvar

This command retrieves the IP protocol of the active print server.
Format:
! U1 getvar "interface.network.active.protocol"

Note • For details on SGD command structure, see Command Structure on page 573.

1/31/18

Programming Guide

P1099958-001

755

756

SGD Printer Commands
interface.network.active.protocol_error

interface.network.active.protocol_error
This command returns the last error reported by the active print server.

Commands

Details

getvar

This command returns the last error reported by the active print server.
Format: ! U1 getvar "interface.network.active.protocol_error"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
interface.network.active.rx_errors

interface.network.active.rx_errors
This command returns the current number of packet receive errors on the active network interface.

Commands

Details

getvar

This command returns the current number of packet receive errors.
Format: ! U1 getvar "interface.network.active.rx_errors"
Result: The current number of errors.

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

757

758

SGD Printer Commands
interface.network.active.rx_packets

interface.network.active.rx_packets
This command returns the number of packets received on the active network interface since the last
power cycle.

Commands

Details

getvar

This command returns the number of packets received on the active network interface since the
last power cycle.
Format: ! U1 getvar "interface.network.active.rx_packets"
Result: An integer.

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
interface.network.active.server_address

interface.network.active.server_address
This command returns the network IP address of the server that provided the printer's IP address.

Commands

Details

getvar

This command returns the network IP address of the server providing the printer’s IP address.
Format: ! U1 getvar "interface.network.server_address"
Result: an IP address

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

759

760

SGD Printer Commands
interface.network.active.protocol_error

interface.network.active.protocol_error
This command returns the last error reported by the print server.

Commands

Details

getvar

This command returns the last error reported by the print server.
Format: ! U1 getvar "interface.network.active.protocol_error"
Result: WINS Name in Conflict

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
interface.network.active.speed

interface.network.active.speed
This command returns the speed in megabits per second of the active print server network since the
last power cycle.

Commands

Details
This command returns the active print server network speed since the last power cycle.

getvar

Format: ! U1 getvar "interface.network.active.speed"
Result: A number indicating megabits/second

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

761

762

SGD Printer Commands
interface.network.active.tx_errors

interface.network.active.tx_errors
This command returns the number of packet transmit errors on the active print server network since
the last power cycle.

Commands

Details

getvar

This command returns the number of packet transmit errors on the active print server network
since the last power cycle.
Format: ! U1 getvar "interface.network.active.tx_errors"
Result: An integer number

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
interface.network.active.tx_packets

interface.network.active.tx_packets
This command returns the number of packets transmitted on the active print server network since
the last power cycle.

Commands

Details

getvar

This command returns the number of packets transmitted on the active print server network since
the last power cycle.
Format: ! U1 getvar "interface.network.active.tx_packets"
Result: A number.

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

763

764

SGD Printer Commands
interface.network.active.wins_addr

interface.network.active.wins_addr
This command sets and retrieves the active WINS address.

Commands

Details

setvar

This command sets the WINS address of the active print server.
Format: ! U1 setvar "interface.network.active.wins_addr" "value"
Values: "0.0.0.0" - "255.255.255.255"
This command retrieves the WINS address of the active print server.

getvar

Format: ! U1 getvar "interface.network.active.wins_addr"
Result: a WINS address
Example: In this example, the setvar sets the Wins address of the active print server.
! U1 setvar "interface.network.active.wins.addr" "10.3.5.120"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
interface.network.settings_require_reset

interface.network.settings_require_reset
Displays whether or not the network system has to be reset for a new configuration setting to take
effect.

Commands

Details

getvar

Format: ! U1 getvar "interface.network.settings_require_reset"
Values:
"no" = no settings have been changed that require a reset to take effect.
"yes" = one or more settings has been changed that requires a reset to take effect.

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR338
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

765

766

SGD Wireless Commands
ip.firewall.whitelist_in

ip.firewall.whitelist_in
Returns a comma-separated list of IP addresses and/or IP address ranges that will be allowed to
communicate with the printer. If the list is empty then the firewall will be disabled.

Setvar
To set the command:

Format:

! U1 setvar "ip.firewall.whitelist_in" "value"

Values:
The value is a string of up to 256 alphanumeric characters.

Default:
""
Examples:
Single IP address:

! U1 setvar "ip.firewall.whitelist_in" "192.168.1.20"
Multiple IP addresses:

! U1 setvar "ip.firewall.whitelist_in" "192.168.1.20,192.168.100.21"
IP address ranges:

! U1 setvar "ip.firewall.whitelist_in" "192.168.1.20-192.168.1.100"
IP ranges and Single/Multiple IPs

"ip.firewall.whitelist_in" "192.168.1.20-192.168.1.40, 192.168.1.50,
192.168.1.75"
Format:

Getvar
To have the printer return the current setting value:

Format:

! U1 getvar "ip.firewall.whitelist_in"

Supported Printers
• ZD400, ZD410, ZD420
• ZD500R
• ZD620
• QLn220, QLn320, QLn420
• ZQ310, ZQ320
• ZQ510, ZQ520
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

P1099958-001

Programming Guide

1/31/18

SGD Wireless Commands
ip.firewall.whitelist_in

Notes
•
•

1/31/18

For specific product support, see xref on page xxx.
For details on command structure, see xref on page yyy.

Programming Guide

P1099958-001

767

768

SGD Wireless Commands
ip.https.enable

ip.https.enable
Enables/disables the HTTPS web connections.
IMPORTANT: A network or printer reset is required for this setting to take effect.

Setvar
To set the command:

Format:

! U1 setvar "ip.https.enable" "value"

Values:
• off = disables HTTPS protocol
• on = enables HTTPS protocol

Default:
"on"

Getvar
To have the printer return the current setting value:

Format:

! U1 getvar "ip.https.enable"

Supported Printers
• ZD400, ZD410, ZD420
• ZD500R
• ZD620
• QLn220, QLn320, QLn420
• ZQ310, ZQ320
• ZQ510, ZQ520
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Notes
•
•

P1099958-001

For specific product support, see xref on page xxx.
For details on command structure, see xref on page yyy.

Programming Guide

1/31/18

SGD Wireless Commands
ip.https.port

ip.https.port
Sets the port that will listen for HTTPS connections.

Setvar
To set the command:

Format:

! U1 setvar "ip.https.port" "value"

Values:
Any valid https port from 0-65535.

Default:
"443"

Getvar
To have the printer return the current setting value:

Format:

! U1 getvar "ip.https.port"

Supported Printers
• ZD400, ZD410, ZD420
• ZD500R
• ZD620
• QLn220, QLn320, QLn420
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Notes
•
•

1/31/18

For specific product support, see xref on page xxx.
For details on command structure, see xref on page yyy.

Programming Guide

P1099958-001

769

770

SGD Wireless Commands
ip.ping_gateway_interval

ip.ping_gateway_interval
Determines the interval in minutes at which to send ICMP PING packets to the default gateway.

Setvar
To set the command:

Format:

! U1 setvar "ip.ping_gateway_interval" "value"

Values:
The value is an integer from 0-30.
0 — disabled

Default:
"0"

Getvar
To have the printer return the current setting value:

Format:

! U1 getvar "ip.ping_gateway_interval"

Supported Printers
• ZD400, ZD410, ZD420
• ZD500R
• ZD620
• QLn220, QLn320, QLn420
• ZQ310, ZQ320
• ZQ510, ZQ520
• ZR318, ZR328
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Notes
•
•

P1099958-001

For specific product support, see xref on page xxx.
For details on command structure, see xref on page yyy.

Programming Guide

1/31/18

SGD Wireless Commands
ip.pop3.print_body

ip.pop3.print_body
Determines if the email body will be printed when the email is retrieved via POP3. This only applies
if ip.pop3.enable is set to "on".

Setvar
To set the command:

Format:

! U1 setvar "ip.pop3.print_body" "value"

Values:
• on
• off

Default:
"off"

Getvar
To have the printer return the current setting value:

Format:

! U1 getvar "ip.pop3.print_body"

Supported Printers
• ZD400, ZD410, ZD420
• ZD500R
• ZD620
• QLn220, QLn320, QLn420
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Notes
•
•

1/31/18

For specific product support, see xref on page xxx.
For details on command structure, see xref on page yyy.

Programming Guide

P1099958-001

771

772

SGD Wireless Commands
ip.pop3.print_headers

ip.pop3.print_headers
Determines if the email header will be printed when the email is retrieved via POP3. This only
applies if ip.pop3.enable is set to "on".

Setvar
To set the command:

Format:

! U1 setvar "ip.pop3.print_headers" "value"

Values:
• on
• off

Default:
"off"

Getvar
To have the printer return the current setting value:

Format:

! U1 getvar "ip.pop3.print_headers"

Supported Printers
• ZD400, ZD410, ZD420
• ZD500R
• ZD620
• QLn220, QLn320, QLn420
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Notes
•
•

P1099958-001

For specific product support, see xref on page xxx.
For details on command structure, see xref on page yyy.

Programming Guide

1/31/18

SGD Wireless Commands
ip.pop3.save_attachments

ip.pop3.save_attachments
Determines if the email attachments are to be saved to the flash file system when the email is
retrieved via POP3. This only applies if ip.pop3.enable is set to "on".

Setvar
To set the command:

Format:

! U1 setvar "ip.pop3.save_attachments" "value"

Values:
• on
• off

Default:
"on"

Getvar
To have the printer return the current setting value:

Format:

! U1 getvar "ip.pop3.save_attachments"

Supported Printers
• ZD400, ZD410, ZD420
• ZD500R
• ZD620
• QLn220, QLn320, QLn420
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Notes
•
•

1/31/18

For specific product support, see xref on page xxx.
For details on command structure, see xref on page yyy.

Programming Guide

P1099958-001

773

774

SGD Wireless Commands
ip.pop3.verbose_headers

ip.pop3.verbose_headers
Instructs the printer to respond with teh POP3 verbose header value.

Setvar
To set the command:

Format:

! U1 setvar "ip.pop3.verbose_headers" "value"

Values:
• on
• off

Default:
"off"

Getvar
To have the printer return the current setting value:

Format:

! U1 getvar "ip.pop3.verbose_headers"

Supported Printers
• ZD400, ZD410, ZD420
• ZD500R
• ZD620
• QLn220, QLn320, QLn420
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Notes
•
•

P1099958-001

For specific product support, see xref on page xxx.
For details on command structure, see xref on page yyy.

Programming Guide

1/31/18

SGD Wireless Commands
ip.tls.enable

ip.tls.enable
Enables the TLS connections to the encrypted channels on the printer specified by ip.tls.port
and ip.tls.port_json_config.

Setvar
To set the command:

Format:

! U1 setvar "ip.tls.enable" "value"

Values:
• on
• off

Default:
"on"

Getvar
To have the printer return the current setting value:

Format:

! U1 getvar "ip.tls.enable"

Example
This example disables the TLS port.

Format:

! U1 setvar "ip.tls.enable" "off"

Related SGDs
• ip.tls.port
• iip.tls.port_json_config

Supported Printers
• ZD400, ZD410, ZD420
• ZD500R
• ZD620
• iMZ 220, iMZ 320
• QLn220, QLn320, QLn420
• ZQ310, ZQ320
• ZQ510, ZQ520
• ZR318, ZR328
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

1/31/18

Programming Guide

P1099958-001

775

776

SGD Wireless Commands
ip.tls.enable
• ZT510
• ZT610, ZT620

Notes
•
•

P1099958-001

For specific product support, see xref on page xxx.
For details on command structure, see xref on page yyy.

Programming Guide

1/31/18

SGD Wireless Commands
ip.tls.port

ip.tls.port
Sets the port number to which encrypted connections can be made to communicate with the printing
channel.

Setvar
To set the command:

Format:

! U1 setvar "ip.tls.port" "value"

Values:
Any valid https port from 0-65535.

Default:
"9143"

Getvar
To have the printer return the current setting value:

Format:

! U1 getvar "ip.tls.port"

Related SGDs
• ip.tls.enable
• iip.tls.port_json_config

Supported Printers
• ZD400, ZD410, ZD420
• ZD500R
• ZD620
• QLn220, QLn320, QLn420
• ZQ310, ZQ320
• ZQ510, ZQ520
• ZQ610, ZQ620, ZQ630
• ZR318, ZR328
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Notes
•
•
1/31/18

For specific product support, see xref on page xxx.
For details on command structure, see xref on page yyy.
Programming Guide

P1099958-001

777

778

SGD Wireless Commands
ip.tls.port_json_config

ip.tls.port_json_config
Sets the port number used to create an encrypted connection to the JSON configuration channel.

Setvar
To set the command:

Format:

! U1 setvar "ip.tls.port_json_config" "value"

Values:
Any valid https port from 0-65535.

Default:
"9243"

Getvar
To have the printer return the current setting value:

Format:

! U1 getvar "ip.tls.port_json_config"

Related SGDs
• ip.tls.enable
• ip.tls.port

Supported Printers
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500R, ZD510, ZD511
• ZD620
• ZQ310, ZQ320
• ZQ510, ZQ520
• ZR318, ZR328
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Notes
•
•

P1099958-001

For specific product support, see xref on page xxx.
For details on command structure, see xref on page yyy.

Programming Guide

1/31/18

log.reboot.code

log.reboot.code
Causes the printer to return a one-character value which indicates the reason for the last printer
reboot.

Commands

Details

getvar

Format: ! U1 getvar "log.reboot.code"
Result: A one-character code indicating the reason for the reboot.
Values:
"0"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"a"
"b"
"f"

–
–
–
–
–
–
–
–
–
–
–
–
–

Other
device.reset command
Mirror reset – new files
DTR off
Low-battery timeout
Low-battery shutdown
power.shutdown command
Idle timeout
Printer OS update
Reserved
Reserved
Off key
No data

Supported Devices
• iMZ220, iMZ320
• QLn320, QLn220
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR638, ZR628
• ZT230, ZT220, ZT210
• ZT410, ZT420
Example:
! U1 getvar "log.reboot.code"
Result: 4
The result indicates that the device rebooted because the battery timed out.

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

779

780

SGD Wireless Commands
log.reboot.codes

log.reboot.codes
Causes the printer to return a list of one-character values which indicates the reasons for the last 32
printer reboots.

Commands

Details

getvar

Format: ! U1 getvar "log.reboot.codes"
Result: A string of one-character codes indicating the reason for the reboots. A total of 32 reboot
events are stored; if less than 32 reboots have occurred, "f" is stored in any unpopulated event
slot, indicating "no data" for that event.
Values:
"0"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"a"
"b"
"f"

–
–
–
–
–
–
–
–
–
–
–
–
–

Other
device.reset command
Mirror reset – new files
DTR off
Low-battery timeout
Low-battery shutdown
power.shutdown command
Idle timeout
Printer OS update
Reserved
Reserved
Power Switch / Off Key
No data

Example:
! U1 getvar "log.reboot.codes"
Result: "bb338bbbbbbbb3bbbbbbbbbbbbbbb1bb"

Supported Devices
• iMZ220, iMZ320
• QLn320, QLn220
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR638, ZR628
• ZT230, ZT220, ZT210
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
log.reboot.reason

log.reboot.reason
Returns the reason for the last printer reboot, based on the log.reboot.code.

Commands

Details

getvar

Format: ! U1 getvar "log.reboot.reason"
Result: The reason for the last reboot.
Values: "Other"
"device.reset command"
"Mirror reset – new files"
"DTR off"
"Low-battery timeout"
"Low-battery shutdown"
"power.shutdown command"
"Idle timeout"
"New OS reprogramming"
"Unknown-1"
"Unknown-2"
"Off key"
"No data"

Supported Devices
• iMZ220, iMZ320
• QLn320, QLn220
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR638, ZR628
• ZT230, ZT220, ZT210
• ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

781

782

SGD Wireless Commands
log.reboot.report

log.reboot.report
Causes the printer to return a list of values which indicate the reasons for the last 32 printer reboots.

Commands

Details

getvar

Format: ! U1 getvar "log.reboot.report"
Result: The recorded reboot reasons as a list, starting with the most recent reboot reason first. A
total of 32 reboot events are stored; if less than 32 reboots have occurred, "f" is stored in any
unpopulated event slot, indicating "no data" for that event.
Values: "Other"
"device.reset command"
"Mirror reset – new files"
"DTR off"
"Low-battery timeout"
"Low-battery shutdown"
"power.shutdown command"
"Idle timeout"
"New OS reprogramming"
"Unknown-1"
"Unknown-2"
"Off key"
"No data"
Example: ! U1 getvar "log.reboot.report"
Result: A list of 32 codes, in a carriage-return delimited list:
"Off key
Off key
Off key

.
.
.
No data
"

Supported Devices
• iMZ220, iMZ320
• QLn320, QLn220
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR638, ZR628
• ZT230, ZT220, ZT210
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
mcr.crypt.enabled

mcr.crypt.enabled
Retrieves the MCR encryption-enabled status.

Commands

Details

getvar

Format: ! U1 getvar "mcr.crypt.enabled"
Values:
"off" = mcr encryption is not enabled
"on" = mcr encryption is enabled

Supported Devices
• ZQ510
• ZQ520

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

783

784

SGD Printer Commands
mcr.cancel

mcr.cancel
Cancels the magnetic card read operation currently in progress.

Commands

Details

setvar

Format: ! U1 setvar "mcr.cancel" ""
Values: No value needs to be specified.
Default: NA

Supported Devices
• ZQ510
• ZQ520

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
mcr.crypt.key_mgmt

mcr.crypt.key_mgmt
Retrieves the MCR encryption key management algorithm for a fixed key or DUKPT (Derived
Unique Key Per Transaction). The return value applies only if "mcr.crypt.enabled" is "on".

Commands

Details

getvar

Format: ! U1 getvar "mcr.crypt.key_mgmt"
Values:
"" = fixed key algorithm
"dukpt" = derived unique key per transaction
Default: N/A

Supported Devices
• ZQ510
• ZQ520

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

785

786

SGD Printer Commands
mcr.crypt.algorithm

mcr.crypt.algorithm
Retrieves the MCR encryption algorithm. The return value applies only if "mcr.crypt.enabled" is
"on".

Commands

Details

getvar

Format: ! U1 getvar "mcr.crypt.algorithm"
Values:
""
"3des"
"aes"
Default: N/A

Supported Devices
• ZQ510
• ZQ520

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
mcr.out

mcr.out
Specifies the communication port which MCR (Mag Card Reader) output is sent to.

Commands

Details

setvar

Format: ! U1 setvar "mcr.out" "value"
Values:
"active" = the data is sent out over the same port that the command was received

on.

Note • If “multiple” is specified in the option string of the mcr.enable command, data will
continue to be be sent to the port defined by this command.
"alert" = the data will be forwarded as a weblink alert.
Default: "active"

Supported Devices
• ZQ510
• ZQ520

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

787

788

SGD Printer Commands
mcr.revision

mcr.revision
Returns the revision of the MCR (magnetic card reader).

Commands

Details

getvar

Format: ! U1 getvar "mcr.revision"
Result:
"ID TECH TM3 SecureHead RS232 Reader V 5.14"

Supported Devices
• ZQ510, ZQ520

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

media.bar_location

media.bar_location
Allows the user to configure the printer to look for a black mark bar on the front or back of the media.

Note • This command works only with printers that have a front media sensor.

Commands

Details

setvar

! U1 setvar "media.bar_location" "value"
Values:

•
•
•

front = use media with bars on the front.
back = use media with bars on the back
Options available by printer:
iMZ220, iMZ320, QLn220, QLn320, QLn420, ZR318, ZR328 = "front"
ZQ310, ZQ320, ZQ510, ZQ520 = "front", "back"
All other printers = "back"

Default:

•
•
•
•

iMZ220, iMZ320, QLn220, QLn320, QLn420, ZR318, ZR328 = "front"
ZQ310, ZQ320 with optional back bar sensor = "back"
ZQ310, ZQ320 with no back bar sensor = "front"
All other printers = "back"

! U1 getvar "media.bar_location"

getvar

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500
• ZD620
• ZQ310, ZQ320
• ZQ510, ZQ520
• ZR318, ZR328
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

789

790

SGD Printer Commands
media.cartridge.part_number

media.cartridge.part_number
This printer command retrieves the part number of the media cartridge used in the printer.

Commands

Details

getvar

This command instructs the printer to respond with the media cartridge part number currently
being used by the printer.
Format: ! U1 getvar "media.cartridge.part_number"

Supported Devices
• HC100

Note • For details on SGD command structure, see Command Structure on page 573.
Example: In this example, the getvar returns the part number of the media cartridge.

! U1 getvar "media.cartridge.part_number" "10006999"

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
media.cut_now

media.cut_now
This command instructs the printer cycle the media cutter. If the printer is in Print Mode Kiosk
(media.printmode “K”) then the cutter will execute a cut based on the value of
media.present.cut_amount – either a normal cut or a partial cut. If the printer is not in Print Mode
Kiosk (media.printmode “K”), this command does nothing. See media.present.cut_amount
on page 798.

Commands

Details

setvar

This command instructs the printer to cycle the media cutter.
Format: ! U1 setvar "media.cut_now" ""
Note • See media.present.cut_amount on page 798.

do

This command instructs the printer to cycle the media cutter.
Format: ! U1 do "media.cut_now" ""

Supported Devices
• KR403

Note • For details on SGD command structure, see Command Structure on page 573.

1/31/18

Programming Guide

P1099958-001

791

792

SGD Printer Commands
media.darkness_mode

media.darkness_mode
This command instructs the printer to set the darkness mode. For printer support, see SGD
Command Support on page 1393.

Commands

Details

setvar

This command instructs the printer to set the darkness mode.
Format:
! U1 setvar "media.darkness_mode" "value"
Values:
"cartridge" = cartridge mode (no changes allowed
"user" = user mode (Darkness is set by the user, and the cartridge value is ignored. This
value is used for all cartridges inserted in the printer).
"relative" = relative mode (the specified darkness value is added to the cartridge default
value)
Default: "cartridge"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows the darkness mode set to "cartridge".
! U1 setvar "media.darkness_mode" "cartridge"

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
media.draft_mode

media.draft_mode
This command puts the printer into draft mode setting.

Note • Setting the printer to draft mode may result in poorer print quality depending on print
speed, label configurations, etc.

Commands

Details

setvar

This command sets the value.
Format: ! U1 setvar "media.draft_mode" "value"
Values:
enabled = faster ramp (acceleration) speed
disabled = normal ramp (acceleration) speed
Default: disabled
This command instructs the printer to respond with the currently set value.

getvar

Format: ! U1 getvar "media.draft_mode"

Supported Devices ZE500-4
Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

793

794

SGD Wireless Commands
media.feed_skip

media.feed_skip
This command only applies to labels created with CPCL commands. It controls the same setting as
the second parameter of the CPCL SETFF command.

Commands

Details

setvar

Format: ! U1 setvar "media.feed_skip" "value"
Values: a numeric value from 0 to 50.
Default:
5 - for QLn and ZQ series printers
35 - for iMZ and ZR series printers
Format: ! U1 getvar "media.feed_skip"

getvar

Result: a numeric value from 0 to 50.

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320
• ZQ510, ZQ520
• ZR338
• ZR628, ZR638

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
media.media_low.external

media.media_low.external
This printer setting gets the status of the external media_low warning. For printer support, see SGD
Command Support on page 1393.

Commands

Details

getvar

This command instructs the printer to respond with the currently set media print mode.
Format:
! U1 getvar "media.media_low.external"
Values:
0 = Paper present at sensor position
1 = No paper present

Note • The status of the sensor is sampled every time the printout is cut. If three
succeeding samples show "no paper", the status reply changes to 1. This is to prevent a
false alarm if the side of the paper roll is not clean. If the current status of the sensor is
required, use ~HQES and extract the paper near-end sensor bit.

Supported Devices
• KR403

Note • For details on SGD command structure, see Command Structure on page 573.

1/31/18

Programming Guide

P1099958-001

795

796

SGD Printer Commands
media.media_low.warning

media.media_low.warning
This command retrievs the value of, or enables or disables the Supplies Warning system. For printer
support, see SGD Command Support on page 1393.

Commands

Details

setvar

This command enables or disables the Supplies Warning System.
Format: ! U1 setvar "media.media_low.warning" "value"
Values:
"disabled" = not active
"enabled" = active
Default: "disabled"

getvar

This command retrieves the setting for the Supplies Warning system.
Format: ! U1 getvar "media.media_low.warning"

Supported Devices
• Xi4
• RXi4

Note • For details on SGD command structure, see Command Structure on page 573.
Example 1 • This setvar example disables the Supplies Warning system.
! U1 setvar "media.media_low.warning" "disabled"

Example 2 • This setvar example enables the Supplies Warning system.
! U1 setvar "media.media_low.warning" "enabled"

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
media.part_number

media.part_number
Sets the media’s part number.

Commands

Details

setvar

Format: ! U1 setvar "media.part_number" "value"
Values: an alpha-numeric string between 0 and 64 characters
Default: NA

Example:

! U1 setvar "media.part_number" "123AB987"

Format: ! U1 getvar "media.part_number"

getvar

Result: "123AB987"

Supported Devices
• ZD410, ZD420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

797

798

SGD Printer Commands
media.present.cut_amount

media.present.cut_amount
This printer setting determines the type of cut made by the printer cutter (normal or partial) and, if
partial, the length of the partial cut on each side, in mm. For printer support, see SGD Command
Support on page 1393.

Commands

Details

setvar

This command instructs the printer to change the media cut amount.
Format:
! U1 setvar "media.present.cut_amount" "value"
Values:
0
= normal cut
10-60 = partial cut, value = mm of media left uncut

getvar

This command instructs the printer to respond with the currently set media cut amount.
Format:
! U1 getvar "media.present.cut_amount"

Supported Devices
• KR403

Note • For details on SGD command structure, see Command Structure on page 573.

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
media.present.eject

media.present.eject
This command instructs the printer to eject the document through the presenter module. The value
is the amount to eject, in mm. The value of media.present.length_addition gets added to the value to
determine the total length of media ejected. For printer support, see SGD Command Support
on page 1393.

Commands

Details

setvar

This command instructs the printer to eject the document through the presenter module.
Format: ! U1 setvar "media.present.eject" "value"
Values:
0 - 255 = amount of media to eject in mm
Note • See media.present.length_addition on page 800.

do

This command instructs the printer to eject the document through the presenter module.
Format: ! U1 do "media.present.eject" "value"

Supported Devices
• KR403

Note • For details on SGD command structure, see Command Structure on page 573.

1/31/18

Programming Guide

P1099958-001

799

800

SGD Printer Commands
media.present.length_addition

media.present.length_addition
This printer setting adds an additional amount to how far the paper is ejected during a present cycle.
A standard amount of 50mm is always added to clear the kiosk wall. This amount is added to that
50mm. The total amount of media ejected this command is executed, then, is 50mm +
media.present.length_addition + media.present.eject. For printer support, see SGD Command
Support on page 1393.

Commands

Details

setvar

This command instructs the printer to change the media present length addition.
Format: ! U1 setvar "media.present.length_addition" "value"
Values:
0-255 = additional mm of media to eject

getvar

This command instructs the printer to respond with the currently set media present length
addition.
Format: ! U1 getvar "media.present.length_addition"

Supported Devices
• KR403

Note • For details on SGD command structure, see Command Structure on page 573.

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
media.present.loop_length

media.present.loop_length
This printer setting determines the length of the presenter loop. If loop_length is greater than
loop_length_max (see media.present.loop_length_max) then it will be set equal to
loop_length_max. For printer support, see SGD Command Support on page 1393.

Commands

Details

setvar

This command instructs the printer to change the presenter loop length.
Format:
! U1 setvar "media.present.loop_length" "value"
Values:
0
= paper is fed straight through the presenter
3-1023 = loop length in mm.
Default:
400 = gives a loop of approximately 400mm

getvar

This command instructs the printer to respond with the currently set presenter loop length.
Format: ! U1 getvar "media.present.loop_length"

Supported Devices
• KR403

Note • For details on SGD command structure, see Command Structure on page 573.

1/31/18

Programming Guide

P1099958-001

801

802

SGD Printer Commands
media.present.loop_length_max

media.present.loop_length_max
This printer setting determines the maximum allowed length of the presenter loop. For printer
support, see SGD Command Support on page 1393.

Commands

Details

setvar

This command instructs the printer to change the presenter loop length.
Format:
! U1 setvar "media.present.loop_length_max" "value"
Values:
0
= paper is fed straight through the presenter
3-1023 = loop length in mm.
Default:
400

getvar

= gives a loop of approximately 400mm

This command instructs the printer to respond with the currently set presenter loop length.
Format:
! U1 getvar "media.present.loop_length_max"

Supported Devices
• KR403

Note • For details on SGD command structure, see Command Structure on page 573.

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
media.present.cut_margin

media.present.cut_margin
This printer setting determines the margin between the cutter and the printhead. For printer support,
see SGD Command Support on page 1393.

Commands

Details

setvar

This command instructs the printer to change the media cut amount.
Format: ! U1 setvar "media.present.cut_margin" "value"
Values: 2 - 9 = mm of distance
Default: 9 = mm of distance

getvar

This command instructs the printer to respond with the currently set media cut margin amount.
Format: ! U1 getvar "media.present.cut_margin"

Supported Devices
• KR403

Note • For details on SGD command structure, see Command Structure on page 573.

1/31/18

Programming Guide

P1099958-001

803

804

SGD Printer Commands
media.present.present_timeout

media.present.present_timeout
This printer setting determines how long the printer will wait after a present event to clear the label.
See ^KV ZPL command. For printer support, see SGD Command Support on page 1393.

Commands

Details

setvar

This command instructs the printer to change the presenter function mode.
Format: ! U1 setvar "media.present.present_timeout" "value"
Values:
0 – 300 = If label is not taken, retract label when timeout expires. Timeout is
in seconds. Zero (0) indicates that there is no timeout. The label will stay
presented until removed manually or a new label is printed.
This command instructs the printer to respond with the currently set presenter
function mode.

getvar

Format: ! U1 getvar "media.present.present_timeout"

Supported Devices
• KR403

Note • For details on SGD command structure, see Command Structure on page 573.

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
media.present.present_type

media.present.present_type
This printer setting determines the way that the printer performs a present command. See ^KV ZPL
command. For printer support, see SGD Command Support on page 1393.

Commands

Details

setvar

This command instructs the printer to change the presenter function mode.
Format: ! U1 setvar "media.present.present_type" "value"
Values:
0 = Eject page when new page is printed
1 = Retract page when new page is printed
2 = Do nothing when new page is printed
This command instructs the printer to respond with the currently set presenter
function mode.

getvar

Format: ! U1 getvar "media.present.present_type"

Supported Devices
• KR403

Note • For details on SGD command structure, see Command Structure on page 573.

1/31/18

Programming Guide

P1099958-001

805

806

SGD Printer Commands
media.printmode

media.printmode
This printer setting determines the action the printer takes after a label or group of labels has printed.
For printer support, see SGD Command Support on page 1393. This command is equivalent to ^MM
on page 275.

Commands

Details

setvar

This command instructs the printer to change the media print mode.
Format: ! U1 setvar "media.printmode" "value"
Values:
"T"
"P"
"R"
"A"
"C"
"D"
"F"
"L"
"U"
"K"
"V"
"S"

getvar

=
=
=
=
=
=
=
=
=
=
=
=

Tear-off al
Peel-off (not available on S-300) al, am
Rewind (depends on printer model)
Applicator (depends on printer model) al
Cutter (depends on printer model) am
Delayed cutter al, am
RFID al, am
Linerless Peel am, an
Linerless Rewind am, an
Kiosk ao
Linerless Tear am
Stream ap

This command instructs the printer to respond with the the currently set media print mode.
Format: ! U1 getvar "media.printmode"

al. This value is not supported on the KR403 printer.
am.This value is not supported on tthe ZE500 printer.
an.This value is supported only on the ZM400/ZM600 and RZ400/RZ600 printers.
ao.This value is supported only on the KR403 printer.
ap.This value is supported only on the ZE500 printer.

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows the value set to "T".
! U1 setvar "media.printmode" "T"
What the setvar value is set to is the getvar result. In this example, the getvar result is "tear
off".
For more details on how each setvar value relates to the getvar responses, see Table 26, Setvar /
Getvar Relation on page 806.

Table 26 • Setvar / Getvar Relation
If the setvar is set to
…

P1099958-001

Then the getvar response and control panel display is
…

"T"

TEAR OFF

"P"

PEEL OFF

"R"

REWIND

Programming Guide

1/31/18

SGD Printer Commands
media.printmode

If the setvar is set to
…

1/31/18

Then the getvar response and control panel display is
…

"A"

APPLICATOR

"C"

CUTTER

"D"

DELAYED CUT

"L"

RESERVED

"U"

RESERVED

"K"

KIOSK

Programming Guide

P1099958-001

807

808

SGD Printer Commands
media.speed

media.speed
This command specifies media print speed in inches per second (ips). For printer support, see SGD
Command Support on page 1393.

Commands

Details

setvar

This command instructs the printer to set the media print speed.
Format: ! U1 setvar "media.speed" "value"
Values:
2-12 ips
"up" = increments the printer speed by one unit
"down" = decrements the speed by one unit
Default: "2"

getvar

This command retrieves the currently set media print speed.
Format: ! U1 getvar "media.speed"

Note • For details on SGD command structure, see Command Structure on page 573.
Example 1 • This setvar example shows the value set to "2".
! U1 setvar "media.speed" "2"
When the setvar value is set to "2", the getvar result is "2".

Example 2 • This setvar example shows the value set to "up".
! U1 setvar "media.speed" "up"
If the current print speed is 2: When the setvar value is set to "up", the getvar result is "3".

Example 3 • This setvar example shows the value set to "down".
! U1 setvar "media.speed" "down"
If the current print speed is 2: When the setvar value is set to "down", the getvar result is "1".

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
media.serial_number

media.serial_number
Sets the media’s serial number.

Commands

Details

setvar

Format: ! U1 setvar "media.serial_number" "value"
Values: an alpha-numeric string between 0 and 64 characters
Default: NA

Example:

! U1 setvar "media.serial_number" "A34567BC6789"

Format: ! U1 getvar "media.serial_number"

getvar

Result: "A34567BC6789"

Supported Devices
• ZD410, ZD420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

809

810

SGD Printer Commands
memory.flash_free

memory.flash_free
This parameter returns the amount of available Flash memory. For printer support, see SGD
Command Support on page 1393.

Commands

Details

getvar

Format: ! U1 getvar "memory.flash_free"

Note • For details on SGD command structure, see Command Structure on page 573.

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
memory.flash_size

memory.flash_size
This parameter returns the total amount of Flash memory. For printer support, see SGD Command
Support on page 1393.

Commands

Details

getvar

Format: ! U1 getvar "memory.flash_size"

Note • For details on SGD command structure, see Command Structure on page 573.

1/31/18

Programming Guide

P1099958-001

811

812

SGD Printer Commands
memory.ram_free

memory.ram_free
This parameter returns the amount availabale Random Access Memory (RAM). For printer support,
see SGD Command Support on page 1393.

Commands

Details

getvar

Format: ! U1 getvar "memory.ram_free"

Note • For details on SGD command structure, see Command Structure on page 573.

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
memory.ram_size

memory.ram_size
This parameter returns the total amount of Random Access Memory (RAM).

Commands

Details

getvar

Format: ! U1 getvar "memory.ram_size"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

813

814

SGD Printer Commands
netmanage.avalanche.agent_addr

netmanage.avalanche.agent_addr
This parameter obtains or changes the Network Management agent IP address.

Commands

Details

setvar

This command sets the Network Management Agent IP address .
Format: ! U1 setvar "netmanage.avalanche.agent_addr" "value"
Values: any valid IP address
Default: "0.0.0.0"
This command retrieves the current Network Management IP address.

getvar

Format: ! U1 getvar "netmanage.avalanche.agent_addr"

Example:
! U1 setvar "netmanage.avalanche.agent_addr" "10.14.2.200"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
netmanage.avalanche.available_agent

netmanage.avalanche.available_agent
This command returns the current IP address of the remote agent found during the Agent Discovery
Phase.

Commands

Details

getvar

This command obtains the IP address of the remote agent found during the Agent Discovery
Phase.
Format: ! U1 getvar "netmanage.avalanche.available_agent"
Result: An IP address

Example:
! U1 getvar "netmanage.avalanche.available_agent"
Result:

"10.3.4.128"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

815

816

SGD Printer Commands
netmanage.avalanche.available_port

netmanage.avalanche.available_port
This command returns the available port of the remote agent found during the Agent Discovery
Phase.

Commands

Details

setvar

This command sets the available port of the remote agent found during the Agent Discovery
Phase.
Format:

! U1 setvar "netmanage.avalanche.available_port" "value"
Values:

"0" to "65535"

Default: "0"
This command retrieves the current port setting of the remote agent found during the Agent
Discovery Phase.

getvar

Format: ! U1 getvar "netmanage.avalanche.available_port"

Example:
U1 setvar "netmanage.avalanche.available_port" "1800"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
netmanage.avalanche.encryption_type

netmanage.avalanche.encryption_type
This parameter sets and gets the Network Management Encryption type to be used.

Commands

Details

setvar

This command sets the Network Management Encryption type to be used.
Format:

! U1 setvar "netmanage.avalanche.encryption_type" "value"
Values:
"0" = None
"1" = Limburger
"2" = AES128S
Default: "0"
This command retrieves the currently set Network Management Encryption type.

getvar

Format: ! U1 getvar

"netmanage.avalanche.encryption_type"

Example: This example sets the value to Limburger (1) encryption type.
! U1 getvar "netmanage.avalanche.encryption_type" "1"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

817

818

SGD Printer Commands
netmanage.avalanche.interval

netmanage.avalanche.interval
This parameter obtains or sets the Network Management Update Interval time stored in the printer.
Time is measured in milliseconds (e.g., a setting of "2000" equals 2 seconds).

Commands

Details

setvar

This command sets the Network Management Update Interval.
Format: ! U1 setvar "netmanage.avalanche.interval" "value"
Values: any integer value from "0" to "4294967295" (4,294,967,295 milliseconds)
Default: "0"
This command retrieves the current Network Management Update Interval.

getvar

Format: ! U1 getvar "netmanage.avalanche.interval"

Example: This example sets the interval value to 3 seconds.
! U1 setvar "netmanage.avalanche.interval" "3000"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
netmanage.avalanche.interval_update

netmanage.avalanche.interval_update
This parameter turns on or off the Network Management Update Interval. This command is related
to netmanage.avalanche.interval on page 818.

Commands

Details

setvar

This command turns on or off the network management interval update.
Format:

! U1 setvar "netmanage.avalanche.interval_update" "value"
Values:
"off"
"on"
Default: "off"
This command retrieves the current network management interval update setting.

getvar

Format: ! U1 getvar "netmanage.avalanche.interval_update"

Example: This example sets the device’s Network Management Interval Update setting to "on".
! U1 setvar "netmanage.avalanche.interval_update" "on"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

819

820

SGD Printer Commands
netmanage.avalanche.model_name

netmanage.avalanche.model_name
This command obtains or sets the current Network Management Device Model Name stored in the
printer.

Commands

Details

setvar

This command sets the current Network Management Device model name.
Format: ! U1 setvar "netmanage.avalanche.model_name" "value"
Values: a string up to 31 characters in length.
Default: NA
This command retrives the current Network Management Device model name.

getvar

Format: ! U1 getvar "netmanage.avalanche.model_name"

Example:
! U1 setvar "netmanage.avalanche.model_name" "ZT230"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
netmanage.avalanche.set_property

netmanage.avalanche.set_property
This parameter sets Network Management Device Side Property (custom).

Commands

Details
This parameter sets Network Management Device Side Property (custom).

setvar

Format: ! U1 setvar "netmanage.avalanche.set_property" "value"
Values: A string in the format of "AAAA=XXXXXXXX"
This parameter retrieves the current Network Management Device Side Property value.

getvar

Format: ! U1 getvar "netmanage.avalanche.set_property"

Example 1 • This example will be viewed as a property under the general properety tree in
avalanche console.

! U1 setvar netmanage.avalanche.set_property" "ZebraLocation=VH"

Example 2 • This example will be viewed as a property under the Zebra tree in avalanche console.
! U1 setvar netmanage.avalanche.set_property" "Zebra.Location=VH"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

821

822

SGD Printer Commands
netmanage.avalanche.startup_update

netmanage.avalanche.startup_update
This parameter sets and retrieves the Network Management Start Up Update setting.

Commands

Details

setvar

This command sets the device’s Network Management Start Up Update setting.
Format:

! U1 setvar "netmanage.avalanche.startup_update" "value"
Values:
"off"
"on"
Default: "off"
This command retrieves the device’s current Network Management Start Up Update setting.

getvar

Format: ! U1 getvar "netmanage.avalanche.startup_update"

Example:
! U1 setvar "netmanage.avalanche.startup_update" "on"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
netmanage.avalanche.tcp_connection_timeout

netmanage.avalanche.tcp_connection_timeout
This command sets the Network Management Timeout used for establishing a TCP connection to an
Agent. Time is set in milliseconds.

Commands

Details

setvar

This command sets the Network Management Timeout used for establishing a TCP connection to
an Agent.
Format:

! U1 setvar "netmanage.avalanche.tcp_connection_timeout" "value"
Values: any integer value from "0" to "4294967295" (4,294,967,295 milliseconds)
Default: "0"
This command retrieves the current Network Management Timeout used for establishing a TCP
connection to an Agent.

getvar

Format: ! U1 getvar "netmanage.avalanche.tcp_connection_timeout"

Example: This examples sets the connection timeout to 2000 milliseconds (2 seconds).
! U1 setvar "netmanage.avalanche.tcp_connection_timeout" "2000"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

823

824

SGD Wireless Commands
netmanage.avalanche.terminal_id

netmanage.avalanche.terminal_id
Sets or retrieves the Terminal ID of the Avalanche server. This value is typically assigned by the
Avalanche server.

Commands

Details

setvar

Format: ! U1 setvar "netmanage.avalanche.terminal_id" "value"
Values:
"0" – "402653183"
Default: "0"
Format: ! U1 getvar "netmanage.avalanche.terminal_id"

getvar

Supported Devices
• iMZ220, iMZ320
• QLn320, QLn220
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR638, ZR628
• ZT230, ZT220, ZT210
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
netmanage.avalanche.text_msg.beep

netmanage.avalanche.text_msg.beep
This parameter sets and gets Network Management Text Message Beep enable setting.

Commands

Details

setvar

This command sets Network Management Text Message Beep enable setting.
Format: ! U1 setvar "netmanage.avalanche.text_msg.beep" "value"
Values:
"off"
"on"
Default: "off"
This command retrieves the Network Management Text Message Beep enable setting.

getvar

Format: ! U1 getvar "netmanage.avalanche.text_msg.beep"

Example:
! U1 setvar "netmanage.avalanche.text_msg.beep" "on"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

825

826

SGD Printer Commands
netmanage.avalanche.text_msg.display

netmanage.avalanche.text_msg.display
This command turns on and off the Network Management Text Message Display setting.

Commands

Details

setvar

This command retrieves the device’s Network Management Text Message Display enable setting.
Format:

! U1 setvar "netmanage.avalanche.text_msg.display" "value"
Values:
"off"
"on"
Default: "off"
This command returns the current Network Management Text Message Display enable setting.

getvar

Format: ! U1 getvar "netmanage.avalanche.text_msg.display"

Example:
! U1 setvar "netmanage.avalanche.text_msg.display" "on"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
netmanage.avalanche.text_msg.print

netmanage.avalanche.text_msg.print
This command turns on and off the Network Management Text Message Print setting.

Commands

Details

setvar

This command retrieves the device’s Network Management Text Message Print enable setting.
Format:

! U1 setvar "netmanage.avalanche.text_msg.print" "value"
Values:
"off"
"on"
Default: "off"
This command returns the current Network Management Text Message Print enable setting.

getvar

Format: ! U1 getvar "netmanage.avalanche.text_msg.print"

Example:
! U1 setvar "netmanage.avalanche.text_msg.print" "on"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

827

828

SGD Printer Commands
netmanage.avalanche.udp_timeout

netmanage.avalanche.udp_timeout
This command sets the device’s Network Management UDP timeout. Time is set in milliseconds.

Commands

Details

setvar

This command sets the device’s Network Management UDP timeout.
Format:

! U1 setvar "netmanage.avalanche.udp_timeout" "value"
Values: any integer value from "0" to "4294967295" (4,294,967,295 milliseconds)
Default: "0"
This command returns the current Network Management UDP timeout setting.

getvar

Format: ! U1 getvar "netmanage.avalanche.udp_timeout"

Example: This example sets the timeout value to .4 seconds (400 milliseconds).
! U1 setvar "netmanage.avalanche.udp_timeout" "400"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
netmanage.error_code

netmanage.error_code
This parameter refers to Avalanche client error code.

Commands

Details

getvar

Format: ! U1 getvar "netmanage.error_code"
Result: "0"

Supported Devices
• iMZ220, iMZ320
• QLn320, QLn220
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR638, ZR628
• ZT230, ZT220, ZT210
• ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

829

830

SGD Wireless Commands
netmanage.state_code

netmanage.state_code
This parameter refers to Avalanche client state code.

Commands

Details

getvar

Format: ! U1 getvar "netmanage.state_code"
Result: "0"

Supported Devices
• iMZ220, iMZ320
• QLn320, QLn220
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR638, ZR628
• ZT230, ZT220, ZT210
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
netmanage.status_code

netmanage.status_code
This parameter refers to Avalanche client status code.

Commands

Details

getvar

Format: ! U1 getvar "netmanage.status_code"
Result: "0"

Supported Devices
• iMZ220, iMZ320
• QLn320, QLn220
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR638, ZR628
• ZT230, ZT220, ZT210
• ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

831

832

SGD Printer Commands
odometer.cut_marker_count

odometer.cut_marker_count
Returns the number of cuts incurred by the cutter or resets the counter to "0". This command tracks
the same events as odometer.total_cuts, which cannot be reset.

Commands

Details

setvar

Format: ! U1 setvar "odometer.cut_marker_count" "value"
Values: "0" - resets the counter to 0.
Format: ! U1 getvar "odometer.cut_marker_count"

getvar

Result: an integer value of "0" or greater.

Supported Devices
• ZD410, ZD420
• ZD500
• ZT210, ZT220, ZT230
• ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
odometer.headclean

odometer.headclean
This printer setting refers to the head clean odometer count. This counter tracks how many inches
and centimeters have passed through the printer since the head was last cleaned.

Commands

Details

setvar

This command instructs the printer to reset the head clean counter.
Format: ! U1 setvar "odometer.headclean" "value"
Values:
"0" = reset the head clean counter
Default: must be an accepted value or it is ignored
This command instructs the printer to retrieve the values for the head clean counter.

getvar

Format: ! U1 getvar "odometer.headclean"
Example: This example shows how to get the odometer head clean, how to reset it, and how to
confirm the settings changed.

1. To see the current settings, type:
! U1 getvar "odometer.headclean"

Something similar to this is shown:
"1489 INCHES, 3784 CENTIMETERS"

2. To reset the these values to 0, type:
! U1 setvar "odometer.headclean" "0"

3. To confirm this settings were reset, type:
! U1 getvar "odometer.headclean"

If the resetting was successful, this is shown:
"0 INCHES, 0 CENTIMETERS"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

833

834

SGD Printer Commands
odometer.headnew

odometer.headnew
This printer setting refers to the head replaced odometer count. This counter tracks how many
inches and centimeter passed through the printer since the head was last replaced.

Commands

Details

setvar

This command instructs the printer to reset the head new counter.
Format: ! U1 setvar "odometer.headnew" "value"
Values:
"0" = resets the head new counter
Default: must be an accepted value or it is ignored
This command instructs the printer to retrieve the values for the head new counter.

getvar

Format: ! U1 getvar "odometer.headnew"

Example: This example shows how to get the odometer head new, how to reset it, and how to
confirm the settings changed:

1. To see the current settings, type:
! U1 getvar "odometer.headnew"

Something similar to this is shown:
"1489 INCHES, 3784 CENTIMETERS"

2. To reset the these values to 0, type:
! U1 setvar "odometer.headnew" "0"

3. To confirm this settings were reset, type:
! U1 getvar "odometer.headnew"

If the resetting was successful, this is shown:
"0 INCHES, 0 CENTIMETERS

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
odometer.label_dot_length

odometer.label_dot_length
This command returns the length of the last label printed or fed (in dots).

Commands

Details
This command returns the length of the last label printed or fed (in dots).

getvar

Format:
! U1 getvar "odometer.label_dot_length"

Example: This is an example of how to reset the length using the ^LL command and how to use the
getvar to confirm the change. For the ^LL command to work the printer must be in continuous mode.

1. To change the odometer label dot length, type:
^XA
^LL500
^XZ

2. To get the current odometer label dot length, type:
! U1 getvar "odometer.label_dot_length"
Something similar to this is shown:
"500"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

835

836

SGD Printer Commands
odometer.media_marker_count

odometer.media_marker_count
This command refers to the non-resettable media marker count. The media marker counter keeps
track of how many labels have passed through the printer by counting the bar sense marks on the
back of the media or the gap in gap media. Labels are counted whether or not they have been
printed.

Commands

Details

setvar

Format: ! U1 setvar "odometer.media_marker_count" "value"
Values:
"0" to "4294967295"
Default: "0"
Format: ! U1 getvar "odometer.media_marker_count"
Example: "105"

getvar

Supported Devices
• S4M
• Z4MPlus, Z6MPlus
• 105SL
• 110XiIIIPlus, 140XiIIIPlus, 170XiIIIPlus, 220XiIIIPlus
• 110Xi4,140Xi4, 170Xi4
• 110PAX4
• GK420t, GK420d, GK888t
• LP 2824 Plus
• QL420+

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
odometer.media_marker_count1

odometer.media_marker_count1
This printer setting refers to the value of the first (count1) user resettable counter. The user
resettable counters track how much media has passed through the printer in both inches or
centimeters.

Commands

Details

setvar

This command instructs the printer to reset the first user resettable counter.
Format:
! U1 setvar "odometer.media_marker_count1" "value"
Values:
"0" = reset the counter
Default: must be an accepted value or it is ignored
This command instructs the printer to return the current value of the first (count1) user resettable
counter in both inches and centimeters.

getvar

Format: ! U1 getvar "odometer.media_marker_count1"
Example: This example shows how to get the first user resettable counter, how to reset it, and how
to confirm the settings have changed:

1. To see the current settings, type:
! U1 getvar "odometer.media_marker_count1"

Something similar to this is shown:
"8516 INCHES, 21632 CENTIMETERS"

2. To reset the these values to 0, type:
! U1 setvar "odometer.media_marker_count1" "0"

3. To confirm these settings were reset, type:
! U1 getvar "odometer.media_marker_count1"

If the resetting was successful, this is shown:
"0 INCHES, 0 CENTIMETERS"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

837

838

SGD Printer Commands
odometer.media_marker_count2

odometer.media_marker_count2
This printer setting refers to the value of the second (count2) user resettable counter. The user
resettable counters track how much media has passed through the printer in both inches or
centimeters.

Commands

Details

setvar

This command instructs the printer to reset the second user resettable counter.
Format:
! U1 setvar "odometer.media_marker_count2" "value"
Values:
"0" = reset the counter
Default: must be an accepted value or it is ignored
This command instructs the printer to return the current value of the second (count2) user
resettable counter in both inches and centimeters.

getvar

Format: ! U1 getvar "odometer.media_marker_count2"
Example: This example shows how to get the second user resettable counter, how to reset it, and
how to confirm the settings have changed:

1. To see the current settings, type:
! U1 getvar "odometer.media_marker_count2"

Something similar to this is shown:
"8516 INCHES, 21632 CENTIMETERS"

2. To reset the these values to 0, type:
! U1 setvar "odometer.media_marker_count2" "0"

3. To confirm these settings were reset, type:
! U1 getvar "odometer.media_marker_count2"

If the resetting was successful, this is shown:
"0 INCHES, 0 CENTIMETERS"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SDG Printer Commands
odometer.retracts_count

odometer.retracts_count
This printer value records the number of times a label has been retracted since the last time the
counter has been reset.

Commands

Details

setvar

This command instructs the printer to reset the current count of retractions.
Format:
! U1 setvar "odometer.retracts_count" "value"
Values:
0
= reset the counter
Default: none

getvar

This command instructs the printer to respond with the current number of retractions
that have happened since the last time the counter was reset.
Format:
! U1 getvar "odometer.retracts_count"

Supported Devices
• KR403

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

839

840

SGD Printer Settings
odometer.rfid.valid_resettable

odometer.rfid.valid_resettable
This command resets the RFID valid label counter to zero.

Commands

Details

setvar

This command instructs the printer to set the RFID valid counter to zero.
Format: ! U1 setvar "odometer.rfid.valid_resettable" "value"
Values:

(ZD500R only) "0"
(other RFID printers) "reset"

getvar

This command instructs the printer to respond with the current RFID valid counter value.
Format: ! U1 getvar "odometer.rfid.valid_resettable"
Example: This setvar example shows how the counter portion of the printer configuration labels
looks when the RFID valid counter is reset by sending:

ZD500R only:
! U1 setvar "odometer.rfid.valid_resettable" "0"
Other RFID printers:
! U1 setvar "odometer.rfid.valid_resettable" "reset"

Before

After

P1099958-001

Programming Guide

1/31/18

SGD Printer Settings
odometer.rfid.void_resettable

odometer.rfid.void_resettable
This command resets the RFID void label counter to zero.

Commands

Details

setvar

This command instructs the printer to set the RFID void counter to zero.
Format: ! U1 setvar "odometer.rfid.void_resettable" "value"
Values:

(ZD500R only) "0"
(other RFID printers) "reset"

getvar

This command instructs the printer to respond with the current RFID void counter value.
Format: ! U1 getvar "odometer.rfid.void_resettable"
Example: This setvar example shows how the counter portion of the printer configuration labels
looks when the RFID void counter is reset by sending:

ZD500R only:
! U1 setvar "odometer.rfid.valid_resettable" "0"
Other RFID printers:
! U1 setvar "odometer.rfid.valid_resettable" "reset"

Before

After

1/31/18

Programming Guide

P1099958-001

841

842

SGD Printer Commands
odometer.total_cuts

odometer.total_cuts
Displays the total number of cuts incurred by the cutter.
Format: ! U1 getvar "odometer.total_cuts"

getvar

Values: an integer

Supported Devices
• ZD410, ZD420
• ZD500
• ZT210, ZT220, ZT230
• ZT410

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
odometer.total_print_length

odometer.total_print_length
This command returns the total length of all media movement over the life of the printer.

Note • The number returned includes all media movement including backfeeds.

Commands

Details

getvar

Format:

! U1 getvar "odometer.total_print_length"

Default: 0

Example: To get the total length of media printed to date:
! U1 getvar "odometer.total_print_length"
Result: (sample) "8560 INCHES, 21744 CENTIMETERS"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

843

844

SGD Printer Commands
odometer.total_label_count

odometer.total_label_count
This command returns the total number of labels printed over the life of the printer.

Note • The number returned does not include form feeds or calibration labels.

Commands

Details

getvar

Format:

! U1 getvar "odometer.total_label_count"

Example: To get the total number of labels printed to date:
! U1 getvar "odometer.total_label_count"
Result: (sample) "31084"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
odometer.user_label_count

odometer.user_label_count
Returns the number of labels printed since the last odometer set command.

Note •

Format:

setvar

! U1 setvar "odometer.user_label_count" "value"

Values: 0 to 65000

Related ZPL Commands: ~RO 1
Format:

getvar

! U1 getvar "odometer.user_label_count"

Values: 0 to 65000

Example: To get the total number of labels printed to date:
! U1 getvar "odometer.user_label_count"
Result: (sample) "7544"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

845

846

SGD Printer Commands
odometer.user_label_count[1|2]

odometer.user_label_count[1|2]
Returns the number of labels printed since the last reset of each resettable odometer.
Resets the counter value to 0.
Values: ! U1 setvar "odometer.user_label_count1" "value"

setvar

Format: ! U1 setvar "odometer.user_label_count2" "value"
Values: 0

Related ZPL Commands: ~RO
Format:

getvar

Format:

! U1 getvar "odometer.user_label_count1"
! U1 getvar "odometer.user_label_count2"

Values: 0 to 4294967295

Related ZPL Commands: ~RO

Example: To get the total number of labels printed on to date:
! U1 getvar "odometer.user_label_count1"
Result: (sample) "164"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
odometer.latch_open_count

odometer.latch_open_count
Returns the number of times the latch for the printhead has been opened.

Commands

Details

setvar

Format: ! U1 setvar "odometer.latch_open_count" "value"
Values: 0 to 4294967295

getvar

Format:

! U1 getvar "odometer.latch_open_count"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

847

848

SGD Printer Commands
parallel_port.mode

parallel_port.mode
This command sets the mode type for the parallel port.

Commands

Details

setvar

This command sets the mode type for the parallel port.
Format: ! U1 setvar "parallel_port.mode" "value"
Values:
"bidirectional"
"unidirectional"
Default: "bidirectional"
This command retrieves the current mode type setting for the parallel port.

getvar

Format: ! U1 getvar "parallel_port.mode"
Example:
! U1 setvar "parallel_port.mode" "bidirectional"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
parallel_port.present

parallel_port.present
This command reports if there is a parallel port in the printer.

Commands

Details

getvar

This command reports if there is a parallel port in the printer.
Format: ! U1 getvar "parallel_port.present"
Result:
"present"
"not installed"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

849

850

SGD Printer Commands
parallel_port.present

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
power.average_current

power.average_current
Returns the battery pack average current value for mA for printers supporting Power Precision Plus
batteries.

Commands

Details

getvar

! U1 getvar "power.average_current"
Values: any integer value

Supported Devices
• ZQ310, ZQ320

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

851

852

SGD Wireless Commands
power.battery_led_blink_rate

power.battery_led_blink_rate
Sets the Extended Smart Battery LED blink rate. The rate is set in multiples of 0.5 seconds.

Commands

Details

setvar

Format: ! U1 setvar "power.battery_led_blink_rate" "value"
Values: a number from 0 to 127. The rate is set in multiples of 0.5 seconds.
Default: "2"
Format: ! U1 getvar "power.battery_led_blink_rate"

getvar

Result: a number from 0 to 127. The rate is set in multiples of 0.5 seconds.

Supported Devices
• ZQ510
• ZQ520

Example: The rate is set in multiples of 0.5 seconds.
To achieve an On time of 1 second, and Off time of 4.5 seconds one would use the following
configuration:
On Duration = 2 (2 * 0.5 = 1 second) (xref power.battery_led_on_duration)
Off Duration = 9 (9 * 0.5 = 4.5 seconds) (xref power.battery_led_off_duration)
Blink Rate = 2 (2 * 0.5 = 1 second)

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
power.battery_led_enable

power.battery_led_enable
This command will enable or disable the illumination of the Extended Smart battery LED when one
or more of the power.battery thresholds have been reached.

Commands

Details

setvar

Format: ! U1 setvar "power.battery_led_enable" "value"
Values:
"on" = enables the Extended Smart battery LED
"off" = disables the Extended Smart battery LED
Default: "on"
Format: ! U1 getvar "power.battery_led_enable"

getvar

Supported Devices
• ZQ510, ZQ520

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

853

854

SGD Wireless Commands
power.battery_led_off_duration

power.battery_led_off_duration
Sets the Extended Smart Battery Led Off duration. The rate is set in multiples of 0.5 seconds.

Commands

Details

setvar

Format: ! U1 setvar "power.battery_led_off_duration" "value"
Values: A number between 0 and 255. The rate is set in multiples of 0.5 seconds.
Default: "9"
Format: ! U1 getvar "power.battery_led_off_duration"

getvar

Supported Devices
• ZQ510, ZQ520

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
power.battery_led_on_duration

power.battery_led_on_duration
Sets the Extended Smart Battery Led On duration. The rate is set in multiples of 0.5 seconds.

Commands

Details

setvar

Format: ! U1 setvar "power.battery_led_on_duration" "value"
Values: A number between 0 and 255. The rate is set in multiples of 0.5 seconds.
Default: "2"
Format: ! U1 getvar "power.battery_led_on_duration"

getvar

Supported Devices
• ZQ510. ZQ520

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

855

856

SGD Wireless Commands
power.battery_replacement_cyclecount_threshold

power.battery_replacement_cyclecount_thres
hold
This printer setting configures when the Extended Smart Battery's LED will illuminate, based upon
the charge cycle count. The LED illuminates when the cycle count for the battery reaches the value
set by this command.

Commands

Details

setvar

Format: ! U1 setvar "power.battery_replacement_cyclecount_threshold"
"value"
Values: 100 to 2450
Default: "551"
Format: ! U1 getvar "power.battery_replacement_cyclecount_threshold"

getvar

Supported Devices
• ZQ510, ZQ520

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
power.dtr_power_off

power.dtr_power_off
This command refers to the remote printer power control, and is used for power management. When
Data Terminal Ready (DTR) is enabled the printer can be powered on and off via the Data Set
Ready (DSR) signal. When DTR power off is enabled, a low to high transition will cause the printer to
turn ON and a high to low transition will cause the printer to turn OFF.

Note • The inactivity time-out is disabled while DSR is active.

Commands

Details

setvar

This command instructs the printer to turn DTR power on or off.
Format: ! U1 setvar "power.dtr_power_off" "value"
Values:
"off"
"on"
Default: "on"
This command retrieves the current DTR power-off setting.

getvar

Format: ! U1 getvar "power.dtr_power_off"

Example:
! U1 setvar "power.dtr_power_off" "off"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

857

858

SGD Printer Commands
power.dtr_power_off

P1099958-001

Programming Guide

1/31/18

power.energy_star.enable

power.energy_star.enable
Enables the EnergyStar functionality. For more information on Energy Star, see
http://www.energystar.gov.

Commands

Details

setvar

! U1 setvar "power.energy_star.enable" "value"
Values:
"on" = enables the EnergyStar functionality
"off" = disables the EnergyStar functionality
Default: "on"

! U1 getvar "power.energy_star.enable"

getvar

Supported Devices
• ZT510
• ZT610, ZT620

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

859

860

power.energy_star.enable

P1099958-001

Programming Guide

1/31/18

power.energy_star.timeout

power.energy_star.timeout
Sets the amount of idle time before EnergyStar mode in invoked. The time is specified is in seconds.
For more information on Energy Star, see http://www.energystar.gov.

Commands

Details

setvar

! U1 setvar "power.energy_star.timeout" "value"
Values: 180 to 65535
Default: "180"

! U1 getvar "power.energy_star.timeout"

getvar

Supported Devices
• ZT510
• ZT610, ZT620
Example: This setvar example shows the value set to "260".
! U1 setvar "power.energy_star.timeout" "260"
The setvar value is the getvar result. In this example, the getvar result is "260".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

861

862

SGD Wireless Commands
power.label_queue.shutdown

power.label_queue.shutdown
Specifies if the printer should wait to shut down until all labels in its internal queue have been
printed.

Commands

Details

setvar

Format: ! U1 setvar "power.label_queue.shutdown" "value"
Values:
"yes" = printer will wait to shut down until all labels in its internal queue have been

printed

"no" = printer will not wait to shut down until all labels in its internal queue have

been printed

Default: "no"
Format: ! U1 getvar "power.label_queue.shutdown"

getvar

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320, QLn420
• ZQ510, ZQ520
• ZR338
• ZR628, ZR638

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

power.power_on_mode

power.power_on_mode
Indicates if the printer will power on automatically when power is applied, i.e., when the power
supply is plugged in.

Commands

Details

getvar

! U1 getvar "power.power_on_mode"
Values:
"auto" = jumper is present on option card, which makes the printer power on automatically
when power is applied
"manual" = jumper is not present on option card or the option card doesn't support autopower on, so the printer will power on only when the user presses the power button.
"not available" = not an option on the printer.
Default: "on"

Supported Devices
• ZD410, ZD420
• ZD620

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

863

864

SGD Wireless Commands
power.shutdown

power.shutdown
Instructs the printer to shut down.

Commands

Details

do

Format: ! U1 do "power.shutdown" ""

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR338
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
print.tone

print.tone
This command specifies the printer darkness.

Commands

Details

setvar

This command instructs the printer to set the darkness and relative darkness.
Format: ! U1 setvar "print.tone" "value"
Values:
"0.0" to "30.0" = darkness
"-0.1" to "-30.0" and "+0.1" to "+30.0" = incremental adjustments
Default: "4.0"
This command retrieves the printer’s current darkness setting.

getvar

Format: ! U1 getvar "print.tone"

Example: This setvar example shows the value set to "4.0".
! U1 setvar "print.tone" "4.0"
When the setvar value is set to "4.0", the getvar result is "4.0".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

865

866

SGD Printer Commands
print.troubleshooting_label_print

print.troubleshooting_label_print
Sets whether batch counters will be displayed on the printer’s control panel.

Commands

Details

setvar

Format: ! U1 setvar "print.troubleshooting_label_print" "value"
Values:
"enabled" = batch counters will be displayed
"disabled" = batch counters will not be displayed
Default: "disabled"

Example:

! U1 setvar "print.troubleshooting_label_print" "enabled"

Format: ! U1 getvar "print.troubleshooting_label_print"

getvar

Result: "enabled"

Supported Devices
• iMZ220, iMZ230
• QLn220, QLn320, QLn420
• ZD500
• ZQ510, ZQ520
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Commands for RFID
rfid.adaptive_antenna

rfid.adaptive_antenna
This command enables or disables adaptive antenna selection.
If the printer cannot find RFID tags with the antenna element specified during the number of retries
specified (if applicable), the printer may try neighboring antenna elements. If the printer is
unsuccessful communicating with the RFID tag after trying the neighboring antenna elements, the
printer voids the label.

Commands

Details

setvar

Enables or disables the adaptive antenna feature.

Note •
• This command is valid only on R110Xi4 and ZT400 printers with a label that is 2 in. (51
mm) or longer.

• Activating this feature may slow throughput on damaged or weak RFID tags.

Note •
• This feature does not apply to ZD500R printers, which always use an antenna

element value of A1.

• The label length must be 2 in. (51 mm) or greater.
• Activating this feature may slow throughput on damaged or weak RFID tags.
Format: ! U1 setvar "rfid.adaptive_antenna" "value"
Values:
none = The printer uses only the current antenna element selection.
neighbors = The printer attempts to read the tag using the antenna elements to the

left/right and above/below the current antenna. The antenna element that is
successful is used for all subsequent RFID commands until the next
unsuccessful attempt.
Default: none
Retrieves the current adaptive antenna setting.

getvar

Format: ! U1 getvar "rfid.adaptive_antenna"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

867

868

SGD Commands for RFID
rfid.antenna_sweep

rfid.antenna_sweep
This command enables/disables the antenna sweep feature.
If the RFID media loaded in the printer is known to be in range of an antenna at the F0 programming
position, you can avoid RFID calibration by using the RFID antenna sweep feature. With this feature
enabled, when the first RFID format is sent after a printer powerup or printhead close, the printer
scans through the antennas to find the optimal antenna element.

Commands

Details

setvar

Enables or disables the antenna sweep feature.
Note • This command is valid only on R110Xi4 and ZT400 printers with a label that is 2
in. (51 mm) or longer and when using a program position of F0.

Note •
• This feature does not apply to ZD500R printers, which always use an antenna

element value of A1.

• The label length must be 2 in. (51 mm) or greater, and the programming

position must be F0.

Format: ! U1 setvar "rfid.antenna_sweep" "value"
Values: on, off
Default: on
Retrieves the current antenna sweep setting.

getvar

Format: ! U1 getvar "rfid.adaptive_antenna"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

DNP - rfid.calibration_maximum_power

DNP - rfid.calibration_maximum_power
Limits the maximum power used during RFID calibration, enabling the printer to compensate for
RFID tags which require less power to be encoded. In this state, the printer is less likely to detect
RFID chips that are not in the optimal programming position.

Commands

Details

setvar

! U1 setvar "rfid.calibration_maximum_power" "value"
Values: "0" to "30"
Default: "30"

! U1 getvar "rfid.calibration_maximum_power"

getvar

Supported Devices
• NEED TO CHECK THESE!!!! LINK-OS PRINTERS ONLY
• Only supported in legacy fw
• rxi4, ze500r, Z4m/Z6M

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

869

870

SGD Printer Settings
rfid.country_code

rfid.country_code
This command sets or returns the RFID reader country code. The country code is restricted based
on the region code assigned to the reader and, in some instances, cannot be modified. You can
check the countries available for your region through the control panel menu items on your printer.

Commands

Details

setvar

Sets the RFID reader’s current country code.
Format: ! U1 setvar "rfid.country_code" "value"
Values: The country code choices available will vary depending on the region for which your
printer is configured.
Retrieves the RFID reader’s current country code.

getvar

Format: ! U1 getvar "rfid.country_code"

Example: In this example, the setvar sets the country code to USA/Canada.
! U1 setvar "rfid.country_code" "usa/canada"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Settings
rfid.enable

rfid.enable
This command instructs an RFID printer to enable or disable RFID functionality. You must restart the
printer for the command to take effect.

Note • When this function is set to "on," changes are made to normal printer functionality. Loading
printer defaults does NOT:
Default the sensor select setting
Default media tracking sensor settings
Default label length
Perform an auto calibration

•
•
•
•

Commands

Details

setvar

Enables or disables RFID functionality.
Format: ! U1 setvar "rfid.enable" "value"
Values:
on = enables RFID functionality
off = disables RFID functionality
Default: on

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

871

872

SGD Printer Settings
rfid.error.response

rfid.error.response
This command can be used to retrieve the RFID status, including any error codes or messages.

Commands

Details

getvar

Retrieves any active RFID error messages.
Format: ! U1 getvar "rfid.error.response"
Example: This getvar example shows responses that you may get in different situations:
! U1 getvar "rfid.error.response"
If no RFID tag is present, you get the following response:

NO TAG FOUND
If an RFID tag is present and there are no errors, you get the following response:

RFID OK

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Settings
rfid.hop_table_version

rfid.hop_table_version
This command retrieves the RFID reader’s hop table version.

Commands

Details

getvar

Retrieves the RFID reader’s hop table version.
Format: ! U1 getvar "rfid.hop_table_version"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

873

874

SGD Printer Settings
rfid.position.program

rfid.position.program
This command sets the read/write position of the RFID tag (programming position).

Important • If this command is used to specify a value for the programming position, this
value will be used for the programming position for all labels until a new position is specified
or until the tag calibration procedure is run.
Commands

Details

setvar

This command instructs the printer to set the read/write position of the RFID tag.
Format: ! U1 setvar "rfid.position.program" "value"
Values:

For the ZD500R only:
F0 to Fxxx (where xxx is the label length in millimeters or 999, whichever is less)
The printer prints the first part of a label until it reaches the specified distance
and then begins programming. After programming, the printer prints the
remainder of the label.
B0 to B30
The printer backfeeds the label for the specified distance and then begins
programming. To account for the backfeed, allow empty media liner to extend
out of the front of the printer when using a backward programming position.
up = move to the next value
down = move to the previous value
For other RFID printers:
Absolute Mode (all firmware versions):

xxxx = 0 to label length (in dot rows). Move the media to the specified position xxxx

on the label, measured in dot rows from the label top, before encoding. Set to

0 (no movement) if the tag is already in the effective area without moving the

media.

Relative Mode (firmware versions V53.17.6 and later):
F0 to Fxxx (where xxx is the label length in millimeters or 999, whichever is less)

The printer prints the first part of a label until it reaches the specified distance
and then begins programming. After programming, the printer prints the
remainder of the label.
B0 to B30 (Does not apply to the RP4T printer.)
The printer backfeeds the label for the specified distance and then begins
programming. To account for the backfeed, allow empty media liner to extend
out of the front of the printer when using a backward programming position.
setvar
(continued)

Default:
For the R2844-Z and RPAX: 0 (no movement)
For printers using V53.17.7 and later: F0 (which moves the leading edge of the label to the
print line)
For all other printers or firmware: label length minus 1 mm (1/16 in.)

getvar

This command instructs the printer to respond with the current programming position.
Format: ! U1 getvar "rfid.position.program"
Example: This example shows the programming position being set at 15 mm from the leading edge
of the label.
! U1 setvar "rfid.position.program" "F15"
When the setvar value is set to "F15", the getvar result is F15.

P1099958-001

Programming Guide

1/31/18

SGD Printer Settings
rfid.position.program

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

875

876

SGD Printer Settings
rfid.reader_1.antenna_port

rfid.reader_1.antenna_port
This command specifies the RFID antenna to be used for RFID operation.

Note • Some printers automatically select the best antenna element and read/write power levels
for the media during RFID transponder calibration. Ty may also set the levels during an adaptive
antenna sweep. Use the ~HL command (see ^HL or ~HL on page 353) to view the antenna
element and power settings being used.

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Settings
rfid.reader_1.antenna_port

Commands

Details

setvar

Sets the antenna port.
Format: ! U1 setvar "rfid.reader_1.antenna_port" "value"

ZD500R:
This printer only has one antenna element, so the value used is always A1.
Default: A1

ZT400:
This parameter selects an antenna element from the printer’s antenna array.
Values:
E1, E2, E3, E4
D1, D2, D3, D4
C1, C2, C3, C4
B1, B2, B3, B4
A1, A2, A3, A4

Default: A4

(Continued on next page)

1/31/18

Programming Guide

P1099958-001

877

878

SGD Printer Settings
rfid.reader_1.antenna_port

Commands

Details

setvar

(Continued from previous page)

R110Xi4 (V53.17.5 and later):
Values:
a two-digit antenna value:
A1, A2, A3, A4, B1, B2, B3, B4, C1, C2, C3, C4, D2, D3, D4, E2, E3, E4, F2, F3, F4
(combinations D1, E1, and F1 are invalid)

Default: A4

R110Xi HF (R65.X):
Values:
1 = antenna port 1
2 = antenna port 2
Default: 1
getvar

Retrieves the current antenna port.
Format: ! U1 getvar "rfid.reader_1.antenna_port"
Example: This setvar example shows the selection of antenna port D3.

! U1 setvar "rfid.reader_1.antenna_port" "D3"
When the setvar value is set to "D3", the getvar result is "D3".

P1099958-001

Programming Guide

1/31/18

SGD Printer Settings
rfid.reader_1.power.read

rfid.reader_1.power.read
This command sets the RFID reader power level for reading RFID tags.

Note • The R110Xi4 printer automatically selects the best antenna element and read/write power
levels for the media during RFID transponder calibration. It may also set the levels during an
adaptive antenna sweep. Use the ~HL command (see ^HL or ~HL on page 353) to view the
antenna element and power settings being used.

Commands

Details

setvar

This command instructs the printer to set the antenna’s read power level.
Format: ! U1 setvar "rfid.reader_1.power.read" "value"

R53.16.3Z:

R60.16.x, R62.16.x, R63.16.x, R65.16.x,
SP994Q, SP999G, SP1027G, SP1056F,
SP1082G, and later:

Values: 0 to 30
Default: 16

RP4T (all firmware versions),
R53.16.4Z, V53.17.7, V74.19.6Z, and
later:
Values:
• 0 to 30
• up = increase the current value by 1
• down = decrease the current value by 1
Default: "16"

Values:
• 0 to 30
• high
• medium
• low
Default: low

Older firmware:
Values:
• high
• medium
• low
Default: low

Retrieves the antenna’s current read power level.

getvar

Format: ! U1 getvar "rfid.reader_1.power.read"
Example: This setvar example sets the antenna to power setting 16 for reading RFID tags.
! U1 setvar "rfid.reader_1.power.read" "16"
When the setvar value is set to "16", the getvar result is 16.

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

879

880

SGD Printer Settings
rfid.reader_1.power.write

rfid.reader_1.power.write
Use this command to set the RFID write power levels if the desired levels are not achieved through
RFID tag calibration. If not enough power is applied, the tag may not have sufficient power for
programming, and tag data will fail to encode. If too much power is applied, the extra power may
cause data communication errors or may cause the wrong tag to be programmed.

Note • The R110Xi4 printer automatically selects the best antenna element and read/write power
levels for the media during RFID transponder calibration. It may also set the levels during an
adaptive antenna sweep. Use the ~HL command (see ^HL or ~HL on page 353) to view the
antenna element and power settings being used.

Note • This parameter is ignored on the R110Xi HF printer because read and write powers cannot
be specified separately. See rfid.reader_1.power.single_power on page 881 to set the power level
for the R110Xi HF printer.
Commands

Details

setvar

This command instructs the printer to set the antenna’s read power level.
Format: ! U1 setvar "rfid.reader_1.power.read" "value"

R53.16.3Z:

R60.16.x, R62.16.x, R63.16.x, R65.16.x,
SP994Q, SP999G, SP1027G, SP1056F,
SP1082G, and later:

Values: 0 to 30
Default: 16

RP4T (all firmware versions), R53.16.4Z,
V53.17.7, V74.19.6Z, and later:
Values:
• 0 to 30
• up = increase the current value by 1
• down = decrease the current value by 1
Default: "16"

Values:
• 0 to 30
• high
• medium
• low
Default: low

Older firmware:
Values: high , medium , low
Default: low

Retrieves the antenna’s current write power level.

getvar

Format: ! U1 getvar "rfid.reader_1.power.write"

Example: This setvar example sets the antenna to power setting 16 for writing to RFID tags.
! U1 setvar "rfid.reader_1.power.write" "16"
When the setvar value is set to "16", the getvar result is 16.

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
rfid.reader_1.power.single_power

rfid.reader_1.power.single_power
This command sets the RFID reader power level for reading and writing to RFID tags for readers
with a single power level.

Note • This command applies only to the R110Xi HF printer, firmware version R65.X.

Commands

Details

setvar

This command instructs the printer to set the power level for reading and
writing.
Format:

! U1 setvar "rfid.reader_1.power.single_power" "value"
Values:
high
medium
low
Default: low
getvar

This command instructs the printer to respond with the current power level.
Format: ! U1 getvar "rfid.reader_1.power.single_power"

Example: This setvar example sets the antenna to high power for writing to RFID tags.
! U1 setvar "rfid.reader_1.power.single_power" "high"
When the setvar value is set to "high", the getvar result is "high".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

881

882

SGD Printer Settings
rfid.reader_1.firmware_version

rfid.reader_1.firmware_version
This command returns the RFID reader firmware version.

Commands

Details

getvar

Format: ! U1 getvar "rfid.reader_1.firmware_version"

Example: This example shows responses that you get in different situations:
! U1 getvar "rfid.reader_1.firmware_version"
If an RFID reader is present and connected, you get the firmware version in the following format:

xx.xx.xx.xx
If there is no RFID reader or if the reader is not connected correctly, the response is blank.

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Settings
rfid.reader_1.hardware_version

rfid.reader_1.hardware_version
This command returns the RFID reader hardware version.

Commands

Details

getvar

Format: ! U1 getvar "rfid.reader_1.hardware_version"
Example: This example shows responses that you get in different situations:
! U1 getvar "rfid.reader_1.hardware_version"
If an RFID reader is present and connected, you get the hardware version in the following format:

xx.xx.xx.xx
If there is no RFID reader or if the reader is not connected correctly, the response is blank.

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

883

884

SGD Printer Settings
rfid.reader_1.model

rfid.reader_1.model
This command returns the printer’s RFID reader model number. Possible values are as follows:
• M6E MICRO

Commands

Details

getvar

Format: ! U1 getvar "rfid.reader_1.model"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
rfid.recipe_version

rfid.recipe_version
The RFID recipe file controls how the printer manages RFID tag encoding, according to the type of
tag in use.
This command returns the version number of the RFID recipe file currently in use. The RFID recipe
file is named RFIDRCPE.XML. The default location for this file is Z:RFIDRCPE.XML. If a file using
the same name is stored in the E: memory location, it will be used instead of the file stored in the Z:
memory location.

Commands

Details

getvar

Format: ! U1 getvar "rfid.recipe_version"

Supported Devices 1
• ZD500
• ZT410, ZT420

Note •
•
•

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

1.
1/31/18

Programming Guide

P1099958-001

885

886

SGD Printer Settings
rfid.region_code

rfid.region_code
This command returns the region code assigned to the printer’s RFID device. Possible values are as
follows:
• not available
• usa/canada
• japan
• rest of world

Commands

Details

getvar

Retrieves the RFID region code.
Format: ! U1 getvar "rfid.region_code"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Settings
rfid.tag.calibrate

rfid.tag.calibrate
Use this command to initiate tag calibration for RFID media. During the process, the printer moves
the media, calibrates the RFID tag position, and determines the optimal settings for the RFID media
being used. Depending on the printer, these settings include the programming position, the antenna
element to use, and the read/write power level to use.
For more information about RFID tag calibration, refer to the RFID Programming Guide for your
printer. A copy is available online at http://www.zebra.com/manuals.

Commands

Details

setvar

Initiates tag calibration for RFID media.
Format: ! U1 setvar "rfid.tag.calibrate" "value"
Values:
restore
run

Example 1 • This setvar example restores the programming position back to the printer’s default
value.
! U1 setvar "rfid.tag.calibrate" "restore"

Example 2 • This setvar example performs RFID tag calibration.
! U1 setvar "rfid.tag.calibrate" "run"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

887

888

SGD Printer Commands
rfid.tag.data

rfid.tag.data
This command tells the RFID reader to attempt to read a tag over the RFID antenna, even if the
printhead is open. Results are returned to the host.
Before running this command, position an RFID label over the printer’s RFID antenna.
For more information about this option and for the location of the RFID antenna, refer to the RFID
Programming Guide for your printer. A copy is available online at http://www.zebra.com/manuals.

Commands

Details

getvar

This command instructs the printer to respond with the current tag’s data.
Format: ! U1 getvar "rfid.tag.data"

Example 1 • This getvar example gets the current tag’s data, assuming that an RFID label with
data “0123456789ABCDEF12345678” is in place over the antenna.
! U1 setvar "rfid.tag.data"
The printer responds with 0123456789ABCDEF12345678.
Example 2 • This getvar example gets the current tag’s data, assuming that no tag data can be
read or that no tag is present.
! U1 setvar "rfid.tag.data"
The printer responds with NO DATA.

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Settings
rfid.tag.read.content

rfid.tag.read.content
This command instructs the printer which data to read from the tag with the
rfid.tag.read.execute command. (See rfid.tag.read.execute on page 890.)

Commands

Details
Instructs the printer which data to read from the tag with the rfid.tag.read.execute command.

setvar

Format: ! U1 setvar "rfid.tag.read.content" "value"
Values:
epc = reads the EPC data based on the EPC size specified in the RFID tag’s protocol

bits, up to 160 bits

tid information = reads the first 32 bits of the TID (Tag ID)
password status = reads the tag’s access and kill passwords
protocol bits = reads the protocol bits from the EPC memory banks and converts

that value to the EPC size

memory bank sizes = reads the EPC, TID, and user memory banks sizes
up = sets the command to the previous test
down = sets the command to the next test
Default: epc
Retrieves the current setting.

getvar

Format: ! U1 getvar "rfid.tag.read.content"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

889

890

SGD Printer Settings
rfid.tag.read.execute

rfid.tag.read.execute
This command reads the data specified by the rfid.tag.read.content command. (See
rfid.tag.read.content on page 889.)

Commands

Details

setvar

Reads the specified data.
Format: ! U1 setvar "rfid.tag.read.execute"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Settings
rfid.tag.read.result_line1

rfid.tag.read.result_line1
This command reports the results of the rfid.tag.read.execute command.

Commands

Details
Retrieves the results of the rfid.tag.read.execute command.

getvar

Format: ! U1 getvar "rfid.tag.read.result_line1"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

891

892

SGD Printer Settings
rfid.tag.read.result_line2

rfid.tag.read.result_line2
This command reports the results of the rfid.tag.read.execute command.

Commands

Details
Retrieves the results of the rfid.tag.read.execute command.

getvar

Format: ! U1 setvar "rfid.tag.read.result_line2"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Settings
rfid.tag.read.result_line1_alternate

rfid.tag.read.result_line1_alternate
This command reports the results of the rfid.tag.read.execute command.

Commands

Details
Retrieves the results of the rfid.tag.read.execute command.

getvar

Format: ! U1 setvar "rfid.tag.read.result_line1_alternate"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

893

894

SGD Printer Settings
rfid.tag.read.result_line2_alternate

rfid.tag.read.result_line2_alternate
This command reports the results of the rfid.tag.read.execute command.

Commands

Details
Retrieves the results of the rfid.tag.read.execute command.

getvar

Format: ! U1 getvar "rfid.tag.read.result_line2_alternate"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
rfid.tag.test

rfid.tag.test
This command performs an RFID test. In the RFID test, the printer attempts to read and write to a
transponder that you place over the RFID antenna. Results are displayed on the printer’s control
panel display. For more information about the RFID antenna location, refer to the RFID
Programming Guide for your printer. A copy is available online at http://www.zebra.com/manuals.
In the slow version of the RFID test, the printer first displays the hardware version, the reader
firmware version, and the program position.For printer support, see SGD Command Support
on page 1393.

Note • This command is valid only on RP4T printers.

Commands

Details

setvar

This command instructs the printer to set the programming position.
Format: ! U1 setvar "rfid.tag.test" "value"
Values:
quick
slow

Example 1 • This setvar example performs a quick RFID test, which shows a pass or fail
message.
! U1 setvar "rfid.tag.test" "quick"

Example 2 • This setvar example performs a slow RFID test, which shows the success or failure of
each read or write tag operation.
! U1 setvar "rfid.tag.test" "slow"
Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

895

896

SGD Printer Settings
rfid.tag.test.content

rfid.tag.test.content
This command instructs the printer which test to perform on the tag with the
rfid.tag.test.execute command. (See rfid.tag.test.execute on page 897.)

Commands

Details

setvar

Instructs the printer which test to perform on the tag with the rfid.tag.test.execute
command.
Format: ! U1 setvar "rfid.tag.test.content" "value"
Values:
quick = performs a read EPC test and a write EPC test (using random data)
read = performs a read EPC test
write = performs a write EPC test (using random data)
up = sets the command to the previous test
down = sets the command to the next test
Default: quick
Retrieves the current setting.

getvar

Format: ! U1 getvar "rfid.tag.test.content"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Settings
rfid.tag.test.execute

rfid.tag.test.execute
This command tests the data specified by the rfid.tag.test.content command. (See
rfid.tag.test.content on page 896.)

Commands

Details

setvar

Tests the specified data.
Format: ! U1 setvar "rfid.tag.test.execute"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

897

898

SGD Printer Settings
rfid.tag.test.result_line1

rfid.tag.test.result_line1
This command reports the results of the rfid.tag.test.execute command.

Commands

Details
Retrieves the results of the rfid.tag.test.execute command.

getvar

Format: ! U1 setvar "rfid.tag.test.result_line1"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Settings
rfid.tag.test.result_line2

rfid.tag.test.result_line2
This command reports the results of the rfid.tag.test.execute command.

Commands

Details
Retrieves the results of the rfid.tag.test.execute command.

getvar

Format: ! U1 setvar "rfid.tag.test.result_line2"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

899

900

SGD Printer Commands
rfid.tag.type

rfid.tag.type
This command sets the reader’s RFID tag type.

Commands

Details

setvar

This command instructs the printer to set the reader’s tag type. For the supported tag types, see
Table 27 on page 901.
Format: ! U1 setvar "rfid.tag.type" "value"
Values:

UHF Printers

none = None
class0 = EPC Class 0
class0+ = EPC Class 0 Plus
class1_64bit = EPC Class 1 64-bit
class1_96bit = EPC Class 1 96-bit
ucode_epc_1_19 = UCODE EPC 1.19
class0+_impinj = Impinj Class 0 Plus
ISO18000A = ISO 18000-06A
gen2 = EPC Class 1, Generation 2 (Gen 2)
ISO18000B = ISO 18000-06B

HF Printers

none = None
detect = Auto detect (query tag to determine)
tagit = Tag*It (Texas Instruments Tagit tags)
icode = I*code (Phillips Icode tags)
pico = Pico Tag (Inside Technology’s)
ISO15693 = ISO 15693
EPC = EPC tag (13.56 MHz)
UIC = UID Tag
mifare_ultralight = Mifare UltraLight

getvar

This command instructs the printer to respond with the reader’s current tag type.
Format: ! U1 getvar "rfid.tag.type"
Example: This setvar example shows the reader’s tag type being set to Gen 2.
! U1 setvar "rfid.tag.type" "gen2"

Supported Tag Types Table 27 shows the tag types supported by different RFID printers/print
engines and firmware versions. Depending on your country or on the firmware version that you are
using, your printer may not support all of the tag types listed. If you specify an unsupported tag type,
the printer uses the default value. If a tag type is shown as supported but does not work with your
printer, you may need to upgrade the printer’s firmware (see http://www.zebra.com/firmware).

P1099958-001

Programming Guide

1/31/18

901

SGD Printer Commands
rfid.tag.type

Table 27 • Supported Tag Types and Default Values

R62.13.X

R62.15.X and later

R63.13.X

R63.15.X and later

SP994O, SP999E, SP1027E,
SP1082E, and earlier

SP994P, SP999F, SP1027F,
SP1082F, and later

SP1056D and earlier

SP1056E and later

R53.16.X and later

R65.13.X

R65.15.X and later

all

R2844-Z

R110Xi HF

R60.15.X and later

R4Mplus

R110PAX4

R60.13.X

R110Xi
R170Xi

V53.17.7 and later

R110Xi4

Printer

HF Printers
RZ400/ RZ600

UHF Printers

None (no tag type
specified)

—

*

*

*

*

—

—

—

—

—

—

—

—

—

—

EPC Class 0

—

*

*

*

*

—

—

—

—

—

—

—

—

—

—

EPC Class 0 Plus

—

*

*

*

*

—

—

—

—

—

—

—

—

—

—

EPC Class 1 64-bit

—

*

*

*

*

—

—

—

—

—

—

—

—

—

—

EPC Class 1 96-bit

—

#

*

#

*

—

*

*

*

—

—

—

—

—

—

UCODE EPC 1.19

—

*a

*

—

*

#

*

#

*

#

*

—

—

—

—

Impinj Class 0 Plus

—

*

*

*

*

—

—

—

—

—

—

—

—

—

—

ISO 18000-06A

—

—

—

*

—

—

*

*

*

—

—

—

—

—

—

EPC Class 1, Generation 2 (Gen 2)

#

*

#

*

#

—

#

*

#

*

#

#

—

—

—

ISO 18000-06B

—

*

*

*

*

—

*

*

*

*

*

—

—

—

—

HF Tag Types and Options

—

Auto-detect the tag type
by querying the tag

—

—

—

—

—

—

—

—

—

—

—

—

—

—

#

Tag*It (Texas Instruments
Tagit tags)

—

—

—

—

—

—

—

—

—

—

—

—

—

—

*

I*code (Phillips Icode tags)

—

—

—

—

—

—

—

—

—

—

—

—

—

—

*

Pico Tag (Inside Technology’s)

—

—

—

—

—

—

—

—

—

—

—

—

—

—

*

ISO 15693

—

—

—

—

—

—

—

—

—

—

—

—

#

#

*

EPC tag

—

—

—

—

—

—

—

—

—

—

—

—

—

—

*

UID Tag

—

—

—

—

—

—

—

—

—

—

—

—

—

—

—

Mifare UltraLight

—

—

—

—

—

—

—

—

—

—

—

—

*

*

—

Firmware Version

Tag Type
UHF Tag Types and Options

# = Default value * = Accepted value
a. Requires R60.13.0.13ZD or later.

1/31/18

— = Not supported

Programming Guide

P1099958-001

902

SGD Printer Commands
rfid.tag.type

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
ribbon.serial_number

ribbon.serial_number
Sets the ribbon’s part number.

Commands

Details

setvar

Format: ! U1 setvar "ribbon.serial_number" "value"
Values: an alpha-numeric string between 0 and 64 characters
Default: NA

Example:

! U1 setvar "ribbon.serial_number" "A34567BC6789"

Format: ! U1 getvar "ribbon.serial_number"

getvar

Result: "A34567BC6789"

Supported Devices
• iMZ220, iMZ230
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

903

904

SGD Printer Commands
ribbon.part_number

ribbon.part_number
Sets the ribbon’s part number.

Commands

Details

setvar

Format: ! U1 setvar "ribbon.part_number" "value"
Values: an alpha-numeric string between 0 and 64 characters.
Default: NA

Example:

! U1 setvar "ribbon.part_number" "123AB987"

Format: ! U1 getvar "ribbon.part_number"

getvar

Result: "123AB987"

Supported Devices
• ZD410, ZD420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
rtc.timezone

rtc.timezone
Specifies the POSIX-compliant time zone string. This string includes the following:
• the time zone character specifier
• the offset from UTC
• daylight savings time adjustment
• when to go on and off of daylight savings time (if it pertains to the timezone).

Commands

Details

setvar

Format: ! U1 setvar "rtc.timezone" "value"
Values: www.iana.org/time-zonesThis site is updated periodically to reflect changes made by
political bodies to time zone boundaries, UTC offsets, and daylight-saving rules.
Format: ! U1 getvar "rtc.timezone"

getvar

Example: If you live in New York in the United States, in the Eastern time zone, your setvar string
may look like:
• ! U1 setvar "rtc.timezone" "EST5EDT4,M3.2.0/02:00:00,M11.1.0/02:00:00"
The "value" string can be translated as follows:
EST5 (Eastern Standard Time; 5 hours off UTC), EDT4 (Eastern Daylight Time; 4 hours off UTC),
running from 2AM (/02; fully qualified: /02:00:00) from the second Sunday in March (M3.2.0/02)
through 2AM (/02; fully qualified: /02:00:00) on the first Sunday in November (M11.1.0/02).
M indicates the Month follows, followed by the two-digit month, the week (1 is the first week in which
the specified weekday occurs, and 5 indicates the last week of the month with that weekday) and the
weekday (0 is Sunday). The time starts with a slash, and unspecified trailing fields default to zero.
Other examples for locations in the United States:

•

US Central:
! U1 setvar "rtc.timezone" "CST6CDT5,M3.2.0/02,M11.1.0/02"

•

US Mountain:
! U1 setvar "rtc.timezone" "MST7MDT6,M3.2.0/02,M11.1.0/02"

•

US Pacific:
! U1 setvar "rtc.timezone" "PST8PDT7,M3.2.0/02,M11.1.0/02"

•

US Alaska:
! U1 setvar "rtc.timezone" "AST9ADT8,M3.2.0/02,M11.1.0/02"

•

US Hawaii:
! U1 setvar "rtc.timezone" "HST10"

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
1/31/18

Programming Guide

P1099958-001

905

906

SGD Wireless Commands
rtc.timezone
• ZR338
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
sensor.cover_open

sensor.cover_open
This printer setting determines if the printer media cover is open.

Commands

Details

getvar

Displays if the printer cover is open or not.
Format: ! U1 getvar "sensor.cover_open"
Values:
"yes" = the printer cover is open
"no" = the printer cover is closed

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

907

908

SGD Wireless Commands
sensor.paper_supply

sensor.paper_supply
Returns current paper supply status.

Commands

Details

getvar

Format: ! U1 getvar "sensor.paper_supply"
Result: Obtains current paper supply status:
"ok" = printer has paper.
"out" = printer is out of paper.

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR338
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
sensor.peeler

sensor.peeler
Obtains current peeler sensor status:

Commands

Details

getvar

Format: ! U1 getvar "sensor.peeler"
Result: "clear": the last printed item has been removed, or there are no items waiting to be
removed.
"not clear": last printed item has not yet been removed.

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR338
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

909

910

SGD Wireless Commands
sensor.peeler

P1099958-001

Programming Guide

1/31/18

sensor.self_adjusting_enable

sensor.self_adjusting_enable
Enables the self-adjusting gap sensor.

Commands

Details

setvar

! U1 setvar "sensor.self_adjusting_enable" "value"
Values:
"yes" = enables the self-adjusting gap sensor and disables the traditional gap sensor
"no" = disables the self-adjusting gap sensor and enables the traditional gap sensor
Default: "no"

! U1 getvar "sensor.self_adjusting_enable"

getvar

Supported Devices
• ZT610, ZT620
Example: This setvar example shows the value set to "yes".
! U1 setvar "sensor.self_adjusting_enable" "yes"
The setvar value is the getvar result. In this example, the getvar result is "yes".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

911

912

SGD Printer Commands
usb.device.device_id_string

usb.device.device_id_string
This command retrieves the manufacturer assigned IEEE1284 Device Identification string for USB
devices.

Commands

Details

getvar

This command retrieves the device ID string.
Format: ! U1 getvar "usb.device.device_id_string"
Example:
! U1 getvar "usb.device.device_id_string"

Result:
"MANUFACTURER:Zebra Technologies ;COMMAND SET:ZPL;MODEL:ZTC ZT220-200dpi
ZPL;CLASS:PRINTER;OPTIONS:XML;"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
usb.device.device_unique_id

usb.device.device_unique_id
This command sets the USB Unique Device ID setting. The identifier that makes any printer unique
is set by the "usb.device.serial_string" command which is reported to the USB driver.
By default "usb.device.serial_string" reports the printer’s serial number. If
"usb.device_unique_id" is set to "off" the printer will report the usb.device.serial_string
parameter as its product family (e.g. ZT230, etc).
When subsequent printers of the same model, with "usb.device_unique_id" parameter to "off",
are connected via USB, the host computer will not treat them as a new Plug and Play events, nor
require new driver installations.

Commands

Details

setvar

This command sets the current USB Unique Device Id setting.
Format: ! U1 setvar "usb.device.device_unique_id" "value"
Values:
"off"
"on"
Default: "on"
This command returns the current USB Unique Device Id setting stored in the printer.

getvar

Format: ! U1 getvar "usb.device.device_unique_id"
Example:
! U1 setvar "usb.device.device_unique_id" "off"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

913

914

SGD Printer Commands
usb.device.device_version

usb.device.device_version
This command returns the version of the USB device being queried.

Commands

Details

getvar

This command instructs the printer to respond with the printer’s USB version.
Format: ! U1 getvar "usb.device.device_version"

Example:
! U1 getvar "usb.device.device_version"
Result: "1.1"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
usb.device.manufacturer_string

usb.device.manufacturer_string
This command retrieves the USB device manufacturer’s name.

Commands

Details

getvar

This command instructs the printer to respond with the manufacturer name.
Format: ! U1 getvar "usb.device.manufacturer_string"

Example:
! U1 getvar "usb.device.manufacturer_string"
Result: "Zebra Technologies"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

915

916

SGD Printer Commands
usb.device.product_id

usb.device.product_id
This command retrieves the Product Identification number that a manufacturer assigned to a
particular product. This number, along with the Vendor ID, allows a USB host to distinguish between
devices.

Commands

Details

getvar

This command retrieves the product ID.
Format: ! U1 getvar "usb.device.product_id"

Example:
! U1 getvar "usb.device.product_id"
Result: "003D"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
usb.device.product_string

usb.device.product_string
This command returns the manufacturer-assigned string describing a particular USB product.

Commands

Details

getvar

This command instructs the printer to respond with the product string description.
Format: ! U1 getvar "usb.device.product_string"

Supported Devices
• ZT200 Series
• QLn Series
Example: Issuing the command on a ZT210 printer:
! U1 getvar "usb.device.product_string"
Result: "ZT210"
Issuing the command on a QLn320 printer:
! U1 getvar "usb.device.product_string"
Result: "ZTC QLn320-203dpi CPCL"

Note • For firmware V68.19.0 and V72.19.0, the return value was changed to the longer name,
which is the same as the USB PID. The QLnXXX is replaced by the printer model and number for
each printer.

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

917

918

SGD Printer Commands
usb.device.serial_string

usb.device.serial_string
This command returns the manufacturer-assigned serial number for a particular USB product.

Commands

Details

getvar

This command returns the printer’s serial number.
Format: ! U1 getvar "usb.device.serial_string"

Example:
! U1 getvar "usb.device.serial_string"
Result: "ABC1234567890"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
usb.device.vendor_id

usb.device.vendor_id
This command returns the Vendor Identification number that the USB-IF organization has assigned
to a manufacturer. This number, along with the Product ID, allows a USB host to distinguish between
devices.

Commands

Details

getvar

This command retrieves the vendor ID of the device.
Format: ! U1 getvar "usb.device.vendor_id"

Example:
! U1 getvar "usb.device.vendor_id"
Result: "0a5f"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

919

920

SGD Printer Commands
usb.halt

usb.halt
This command controls whether the printer allows communication over the USB port when the
printer is in an error condition.

Commands

Details

setvar

This command controls whether the printer allows communication over the USB port when the
printer is in an error condition.
Format: ! U1 setvar "usb.halt" "value"
Values:
"yes"
"no"
Default: "no"
This command returns the current "usb.halt" setting stored in the printer.

getvar

Format: ! U1 getvar "usb.halt"
Example:
! U1 setvar "usb.halt" "yes"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
usb.host.fn_field_data

usb.host.fn_field_data
This command is used to collect a user’s response to a presented ^FN prompt.

Important • This command is used only in the context of the on-printer Print Station
application. Altering the use of this command in the WML can make the Print Station
application non-functional. It is recommended changes to portions of this portion of the
menu system be done by Zebra Professional Services team.
Commands

Details

setvar

Format: ! U1 setvar "usb.host.fn_field_data" "value"
Values: the text entered by the user via a USB Human Interface Device (HID) keyboard
Default: "NULL"
Format: ! U1 getvar "usb.host.fn_field_data"

getvar

Result: One of the following:
NULL

the current user response to an ^FN prompt

Supported Devices
• ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

P1099958-001

921

922

SGD Printer Commands
usb.host.fn_last_field

usb.host.fn_last_field
This command is intended for use by WML code to control the presentation of ^FN fields contained
within a template file that resides on the E:/ drive and has an extension of .ZPL.

Commands

Details

getvar

Format: ! U1 getvar "usb.host.fn_last_field"
Result: YES or NO

Supported Devices
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

1/31/18

SGD Printer Commands
usb.host.hid_count

usb.host.hid_count
This command displays the number of USB Human Interface Devices (HIDs) connected to the
printer. Refer to http://www.usb.org for further details on USB device types.

Commands

Details

getvar

Format: ! U1 getvar "usb.host.hid_count"
Example: When no devices are attached:
! U1 getvar "usb.host.hid_count"
Result: "0"

Supported Devices
• ZT410, ZT420
• ZQ510, ZQ520

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

P1099958-001

923

924

SGD Printer Commands
usb.host.keyboard_input

usb.host.keyboard_input
This command enables/disables USB keyboard input to the printer, affecting the Print Station user
menu item.

Commands

Details

setvar

Format: ! U1 setvar "usb.host.keyboard_input"
Values:
"on"—keyboard input is supported.
"off"—keyboard input is not supported
Default: "on"
Format: ! U1 getvar "usb.host.keyboard_input"

getvar

Supported Devices
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

1/31/18

SGD Printer Commands
usb.host.lock_out

usb.host.lock_out
This command enables/disables the USB host port.

Commands

Details

setvar

Format: ! U1 setvar "usb.host.lock_out" "value"
Values:
"on"—the USB host port is enabled.
"off"—the USB host port is disabled
Default: "on"
Format: ! U1 getvar "usb.host.lock_out"

getvar

Supported Devices
• ZQ510, ZQ520
• ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

P1099958-001

925

926

SGD Printer Commands
usb.host.mass_storage_count

usb.host.mass_storage_count
This command displays the number of USB mass storage devices connected to the printer. Only the
first USB mass storage device found will be mounted and accessible.

Commands

Details

getvar

Format: ! U1 getvar "usb.host.mass_storage_count"

Supported Devices
• ZQ510, ZQ520
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

1/31/18

SGD Printer Commands
usb.host.read_list

usb.host.read_list
This command scans the mounted usb mass storage device for non-user-restricted files and
displays the files in a list.

Commands

Details

setvar

Format: ! U1 setvar "usb.host.read_list" "value"
Values:
"fill_store"—The printer creates a list of all of the top-level files that are readable
on a connected mass storage device. (.ZPL and .XML files)
"store"—The printer copies the current file (the file listed on the display) or all
eligible files if SELECT ALL is displayed from the USB mass storage
device to the printer’s E: drive.

Important • Store does an exact byte-for-byte copy of the file being stored. ZPL files
that are transferred to the printer using the “store” command are NOT prepared to
be used with a recall format command (^XF). See XREF Character Substitution (in
Mirror) for the modifications necessary to prepare a ZPL file for use with ^XF. If the ZPL file
contains a ^DF, the appropriate way to place it on the printer’s memory is to use the
"print" command, below.
"fill_print"—The printer analyzes the content of the USB mass storage device
and creates a list of files that may be printed. (.ZPL files only)
"print"—The printer prints the current file (the file listed on the display) or all
eligible files if SELECT ALL is displayed.
"clear" Format: ! U1 getvar "usbusb.host.read_list"

getvar

Result: the current file in the list or NONE

Supported Devices
• ZT410, ZT420
Example:
! U1 getvar "usbusb.host.read_list"
Result:
One of the following:
• The current file in the list.
• NONE if there are no files on the USB mass storage device.

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

P1099958-001

927

928

SGD Printer Commands
usb.host.read_list_print_delay

usb.host.read_list_print_delay
This command specifies a number of milliseconds for the printer to wait before processing the next
file when “SELECT ALL” is chosen on the USB PRINT FILES user menu.

Commands

Details

setvar

Format: ! U1 setvar "usb.host.read_list_print_delay"
Values: 0 to 65535
Default: "0"
Format: ! U1 getvar "usb.host.read_list_print_delay"

getvar

Supported Devices
• ZQ510, ZQ520
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

1/31/18

SGD Printer Commands
usb.host.template_list

usb.host.template_list
This command is used by WML to support selecting .ZPL template files resident on the E:/ drive.

Commands

Details

setvar

Format: ! U1 setvar "usb.host.template_list" "value"
"fill"—The printer analyzes the contents of its E:/ drive and creates a list of the
template files with a .ZPL extension.
"up" - moves to the previous file in the list
"down" - moves to the next file in the list
Default: "on"
Format: ! U1 getvar "usb.host.template_list"

getvar

Result:
One of the following:
UNINITIALIZED
IN PROGRESS
NONE (if no .ZPL files reside on the E:/ drive)
the current .ZPL file

Supported Devices
• ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

P1099958-001

929

930

SGD Printer Commands
usb.host.template_print_amount

usb.host.template_print_amount
This command is used by WML to control the number of template-type labels to print.

Commands

Details

setvar

Format: ! U1 setvar "usb.host.template_print_amount" "value"
Values:

1 to 99999

"up" - moves to the previous file in the list
"down" - moves to the next file in the list
Default: "1" which will change based on the contents of the selected template file
Format: ! U1 getvar "usb.host.template_print_amount"

getvar

Result: the current value

Supported Devices
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

1/31/18

SGD Printer Commands
usb.host.write_list

usb.host.write_list
This command scans the E: flash drive for non-user-restricted files and displays the files in a list.

Commands

Details

setvar

Format: ! U1 setvar "usb.host.write_list" "value"
"fill_store"—The printer analyzes the contents of its E: drive and creates a list of

files that may be copied to a USB mass storage device connected to the
printer.
"store"—The printer copies the current file (the file listed on the display) or all
eligible files if SELECT ALL is displayed to the USB mass storage device.
"up"
"down"
Default: "on"
Format: ! U1 getvar "usb.host.write_list"

getvar

Result:
One of the following:
• The current file in the list.
• NONE if there are no files on the printer’s E: drive.
• READONLY if the USB mass storage device is read-only.

Supported Devices
• ZT400 Series

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

P1099958-001

931

932

SGD Printer Commands
usb.mirror.appl_path

usb.mirror.appl_path
This command specifies the path to the location on a USB device from which Mirror files are
retrieved. If no path is specified, then the path is zebra/appl.

Commands

Details

setvar

Format: ! U1 setvar "usb.mirror.appl_path" "path"
Values: a valid path up to 255 characters
Default: "zebra/appl"
Format: ! U1 getvar "usb.mirror.appl_path"

getvar

Supported Devices
• ZQ510, ZQ520
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

1/31/18

SGD Printer Commands
usb.mirror.auto

usb.mirror.auto
This command determines if mirroring happens automatically when a USB device is inserted in the
printer. To use this function, the setting for usb.mirror.enable must be "on".

Commands

Details

setvar

Format: ! U1 setvar "usb.mirror.auto" "value"
Values:
"on"—mirroring occurs automatically when the USB device is inserted and
usb.mirror.enable is on.
"off"—mirroring does not occur automatically when the USB device is inserted.
"prompt"—the printer gives you the option to start or abort a mirroring process.
Default: "on"
Format: ! U1 getvar "usb.mirror.auto"

getvar

Supported Devices
• ZQ510, ZQ520
• ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

P1099958-001

933

934

SGD Printer Commands
usb.mirror.enable

usb.mirror.enable
This command enables or disables the ability to perform mirroring of a USB device.

Commands

Details

setvar

Format: ! U1 setvar "usb.mirror.enable" "value"
Values:
"on"—mirroring is enabled
"off"—mirroring is disabled
Default: "on"
Format: ! U1 getvar "usb.mirror.enable"

getvar

Supported Devices
• ZQ510, ZQ520
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

1/31/18

SGD Printer Commands
usb.mirror.enabled

usb.mirror.enabled
Enables or disables the ability to perform mirroring using a USB device memory
stick.

Setvar
To set the command:
! U1 setvar "usb.mirror.enabled" "value"
Values:
• on — mirroring is enabled
• off — mirroring is disabled
Default:
on

Getvar
To have the printer return the current setting value:
! U1 getvar "usb.mirror.enabled"

Related SGDs
• usb.mirror.enable

Supported Printers
• ZD400, ZD410, ZD420
• ZD620
• ZQ510, ZQ520
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Notes
•
•

1/31/18

For specific product support, see xref on page xxx.
For details on command structure, see xref on page yyy.

Programming Guide

P1099958-001

935

936

SGD Printer Commands
usb.mirror.error_retry

usb.mirror.error_retry
This command specifies the number of times that the USB mirror operation will be repeated if the
process fails.

Commands

Details

setvar

Format: ! U1 setvar "usb.mirror.error_retry" "value"
Values: 0 to 65535
Default: "0"
Format: ! U1 getvar "usb.mirror.error_retry"

getvar

Supported Devices
• ZQ510, ZQ520
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

1/31/18

SGD Printer Commands
usb.mirror.feedback.auto

usb.mirror.feedback.auto
This command determines if a feedback file is written to the USB device connected to the printer
after mirroring.

Commands

Details

setvar

Format: ! U1 setvar "usb.mirror.feedback.auto" "value"
"on"—a feedback file is written to the USB device connected to the printer.
"off"—a feeback file is not written to the USB device connected to the printer.
Default: "off"
Format: ! U1 getvar "usb.mirror.feedback.auto"

getvar

Supported Devices
• ZQ510, ZQ520
• ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

P1099958-001

937

938

SGD Printer Commands
usb.mirror.feedback.odometer

usb.mirror.feedback.odometer
This command instructs the printer to set or retrieve the usb.mirror.feedback.odometer value.

Commands

Details

setvar

Format: ! U1 setvar "usb.mirror.feedback.odometer" "value"
Values: 0 to 65535
Default: "0"
Example: This example sets the counter to 0, which resets the counter.
! U1 setvar "usb.mirror.feedback.odometer" "0"
Format: ! U1 getvar "usb.mirror.feedback.odometer"

getvar

Supported Devices
• ZT400 Series
• ZQ500 Series

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

1/31/18

SGD Printer Commands
usb.mirror.feedback.path

usb.mirror.feedback.path
This command specifies where the feedback file is stored on the USB drive connected to the printer.

Commands

Details

setvar

Format: ! U1 setvar "usb.mirror.feedback.path" "value"
Values: a valid path up to 255 characters
NOTE: The path must exist on the USB drive before the printer can write files to it.
Default: "zebra/feedback"
Format: ! U1 getvar "usb.mirror.feedback.path"

getvar

Supported Devices
• ZT400 Series
• ZQ500 Series

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

P1099958-001

939

940

SGD Printer Commands
usb.mirror.fetch

usb.mirror.fetch
This command immediately initiates a USB mirroring operation. To use this function, the setting for
usb.mirror.enable must be "on".

Commands

Details

do

Format: ! U1 do "usb.mirror.fetch"

Supported Devices
• ZT410, ZT420
• ZQ510, ZQ520

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

1/31/18

SGD Printer Commands
usb.mirror.last_error

usb.mirror.last_error
This command returns the last USB mirroring error string. If there are no errors, the result is "No
Error".

Commands

Details

getvar

Format: ! U1 getvar "usb.mirror.last_error"

Supported Devices
• ZT410, ZT420
• ZQ510, ZQ520

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

P1099958-001

941

942

SGD Printer Commands
usb.mirror.last_time

usb.mirror.last_time
This command returns the date and time of the last USB mirroring operation. The date and time
reported are from the printer’s clock.

Commands

Details

getvar

Format: ! U1 getvar "usb.mirror.last_time"
Result: 02 18 2015 11:10:09 (mm dd yyyy hh:mm:ss)

Supported Devices
• ZT410, ZT420
• ZQ510, ZQ520

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

1/31/18

SGD Printer Commands
usb.mirror.path

usb.mirror.path
This command specifies the root directory on the connected USB drive. The root directory contains
the subdirectories from which files are retrieved during the mirror operation. If no path is specified,
then the path is /zebra.
The standard subdirectores to use are:
•

""/appl

•

""/files

•

""/commands

•

""

See How Mirror Works on page 1447 for a comprehensive overview of mirroring.

Commands

Details

setvar

Format: ! U1 setvar "usb.mirror.appl_path" "path"
Values: a valid path up to 255 characters
Default: "zebra"
Format: ! U1 getvar "usb.mirror.path"

getvar

Supported Devices
• ZT410, ZT420
• ZQ510, ZQ520

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

P1099958-001

943

944

SGD Printer Commands
usb.mirror.reset_delay

usb.mirror.reset_delay
This command specifies a number of seconds for the printer to wait after it loads the last of the files
in the /commands directory during mirroring.

Commands

Details

setvar

Format: ! U1 setvar "usb.mirror.reset_delay"
Values: 0 to 900
Default: "5"
Format: ! U1 getvar "usb.mirror.reset_delay"

getvar

Supported Devices
• ZT410, ZT420
• ZQ510, ZQ520

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

1/31/18

SGD Printer Commands
usb.mirror.success

usb.mirror.success
This command returns the last USB mirroring event status string.

Commands

Details

getvar

Format: ! U1 getvar "usb.mirror.success"
Values:
yes (indicates that the mirroring operation was successful)
no (indicates that the mirroring operation was not successful)

Supported Devices
• ZT410, ZT420
• ZQ510, ZQ520

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

P1099958-001

945

946

SGD Printer Commands
usb.mirror.success_time

usb.mirror.success_time
This command returns the date and time of the last successful USB mirroring operation. The date
and time reported are from the printer’s clock.

Commands

Details

getvar

Format: ! U1 getvar "usb.mirror.success_time.fm"
Result: 02 18 2015 11:10:09 (mm dd yyyy hh:mm:ss)

Supported Devices
• ZT410, ZT420
• ZQ510, ZQ520

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1239.
For details on SGD command structure, see Command Structure on page 629.

Programming Guide

1/31/18

SGD Printer Commands
zbi.control.add_breakpoint

zbi.control.add_breakpoint
This command instructs the printer to set a ZBI program break point. For printer support, see SGD
Command Support on page 1393.

Commands

Details

setvar

This command instructs the printer to set a ZBI program break point.
Format: ! U1 setvar "zbi.control.add_breakpoint" "value"
Values: Any line number of the program currently being debugged.

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows setting the breakpoint at line "30".
! U1 setvar "zbi.control.add_breakpoint" "30"

1/31/18

Programming Guide

P1099958-001

947

948

SGD Printer Commands
zbi.control.break

zbi.control.break
This command breaks the execution of the ZBI 2.0 program that is currently running. For printer
support, see SGD Command Support on page 1393.

Commands

Details

setvar

This command breaks the execution of the ZBI program that is currently running.
Format: ! U1 setvar "zbi.control.break" ""
Values:
""

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows the value set to "".
! U1 setvar "zbi.control.break" ""

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
zbi.control.clear_breakpoints

zbi.control.clear_breakpoints
This command deletes all breakpoints in the current ZBI 2.0 program. For printer support, see SGD
Command Support on page 1393.

Commands

Details

setvar

This command instructs the printer to delete all breakpoints.
Format: ! U1 setvar "zbi.control.clear_breakpoints" ""
Values: ""

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows the value set to "".
! U1 setvar "zbi.control.clear_breakpoints" ""

1/31/18

Programming Guide

P1099958-001

949

950

SGD Printer Commands
zbi.control.delete_breakpoint

zbi.control.delete_breakpoint
This command deletes a breakpoint in the current ZBI 2.0 program. For printer support, see SGD
Command Support on page 1393.

Commands

Details

setvar

This command instructs the printer to delete the breakpoint at the line indicated by the value
parameter.
Format: ! U1 setvar "zbi.control.delete_breakpoint" "value"
Values: you can use the same value as add_breakpoint.

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows the breakpoint set to "30".
! U1 setvar "zbi.control.delete_breakpoint" "30"

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
zbi.control.line_number

zbi.control.line_number
This command gives you control and information about which line of a stopped ZBI 2.0 program is
being executed. For printer support, see SGD Command Support on page 1393.

Commands

Details

setvar

This command sets which line of the current ZBI 2.0 program should be executed.
Format: ! U1 setvar "zbi.control.line_number" "value"
Values: Any line number of the currently stopped ZBI program.
Default: "0"

getvar

This command returns the line number that is currently being executed in the ZBI 2.0 program.
Format: ! U1 getvar "zbi.control.line_number"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows the value parameter set to "30".
! U1 setvar "zbi.control.line_number" "30"
When the setvar value is set to "30", the getvar result is "30".

1/31/18

Programming Guide

P1099958-001

951

952

SGD Printer Commands
zbi.control.restart

zbi.control.restart
This command restarts a ZBI 2.0 program that is currently stopped. For printer support, see SGD
Command Support on page 1393.

Commands

Details

setvar

This command restarts a ZBI 2.0 program that is currently stopped.
Format: ! U1 setvar "zbi.control.restart" "value"
Values: ""

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows the value set to "".
! U1 setvar "zbi.control.restart" ""

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
zbi.control.run

zbi.control.run
This command runs the current ZBI 2.0 program that is loaded in the interpreter. For printer support,
see SGD Command Support on page 1393.

Commands

Details

setvar

This command runs the ZBI 2.0 program that is loaded in the interpreter.
Format: ! U1 setvar "zbi.control.run" ""
Values:
""

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows the value set to "".
! U1 setvar "zbi.control.run" ""

1/31/18

Programming Guide

P1099958-001

953

954

SGD Printer Commands
zbi.control.step

zbi.control.step
This command restarts the execution of the currently stopped ZBI 2.0program for one line. For
printer support, see SGD Command Support on page 1393.

Commands

Details

setvar

This command instructs the printer to restart the execution of the currently stopped ZBI 2.0
program for one line.
Format: ! U1 setvar "zbi.control.step" ""
Values:
""
Default: ""

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows the value set to "".
! U1 setvar "zbi.control.step" ""
When the setvar value is set to "".

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
zbi.control.terminate

zbi.control.terminate
This command instructs the ZBI 2.0 program to terminate and shuts down the interpreter. For printer
support, see SGD Command Support on page 1393.

Commands

Details

setvar

This command instructs the ZBI 2.0 program to terminate and shuts down the interpreter.
Format: ! U1 setvar "zbi.control.terminate" "value"
Values: ""

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows the value set to "".
! U1 setvar "zbi.control.terminate" ""

1/31/18

Programming Guide

P1099958-001

955

956

SGD Printer Commands
zbi.control.variable_name

zbi.control.variable_name
This command sets the name of the variable that is to be read or modified through
variable_value. For printer support, see SGD Command Support on page 1393.

Commands

Details

setvar

This command sets the variable that is to show on the front panel.
Format: ! U1 setvar "zbi.control.variable_name" "value"
Values: Any ZBI variable in the program that is currently being debugged.
Default: ""

getvar

This command retrieves the variable value that is to show on the front panel.
Format: ! U1 getvar "zbi.control.variable_name"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows the value set to "MYVAR$".
! U1 setvar "zbi.control.variable_name" "MYVAR$"
When the setvar value is set to "MYVAR$", the getvar result is "MYVAR$".

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
zbi.control.variable_value

zbi.control.variable_value
This command identifies the variable name. For printer support, see SGD Command Support
on page 1393.

Commands

Details

setvar

This command sets a value to the variable referenced by a variable_name.
Format: ! U1 setvar "zbi.control.variable_value" "value"
Values: A string or integer that is dependent on the variable type in variable_name.
Default: The current value of the variable referenced via variable_name

getvar

This command retrieves the variable name that is loaded into the variable_name.
Format: ! U1 getvar "zbi.control.variable_value"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows the value set to "Hello World".
! U1 setvar "zbi.control.variable_value" "Hello World"
When the setvar value is set to "Hello World", the getvar result is "Hello World".

1/31/18

Programming Guide

P1099958-001

957

958

SGD Printer Commands
zbi.enable

zbi.enable
This command enables ZBI on the printer.

Setvar
To set the command:
! U1 setvar "zbi.enable" "value"
Values:
• on
• off
Default:
"on"

Getvar
To have the printer return the current setting value:
! U1 getvar "zbi.enable"

Supported Printers
• iMZ220, iMZ320
• QLn220, QLn320, QLn420
• ZD400, ZD410, ZD420
• ZD500R
• ZD620
• ZQ310, ZQ320
• ZQ510, ZQ520
• ZR318, ZR328
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Notes
•
•

P1099958-001

For specific product support, see xref on page xxx.
For details on command structure, see xref on page yyy.

Programming Guide

1/31/18

SGD Printer Commands
zbi.key

zbi.key
This command identifies if the ZBI 2.0 option is enabled or disabled on the printer. For printer
support, see SGD Command Support on page 1393.

Commands

Details

getvar

This command retrieves the status of the ZBI 2.0 option on the printer.
Format: ! U1 getvar "zbi.key"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: In this example, the getvar shows the status of ZBI on the printer.
! U1 getvar "zbi.key"
"ENABLED"

1/31/18

Programming Guide

P1099958-001

959

960

SGD Printer Commands
zbi.last_error

zbi.last_error
This command identifies the last error that the ZBI 2.0 interpreter encountered. For printer support,
see SGD Command Support on page 1393.

Commands

Details

getvar

This command shows the last error that the ZBI 2.0 interpreter encountered.
Format: ! U1 getvar "zbi.last_error"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This example demonstrates how to make the ZBI 2.0 interpreter return the last error it
encountered.
! U1 getvar "zbi.last_error"

P1099958-001

Programming Guide

1/31/18

SGD Wireless Commands
zbi.program_list

zbi.program_list
This SGD is intended to be used on WML pages. It purpose is to support displaying the name of
each ZBI program file contained on the E: drive.

Important • A specific sequence required to get an accurate listing of files. See the example
below.

Type

Details

setvar

Format: ! U1 setvar "zbi.program_list" "value"
Values:
"fill" = initializes the device (first step)
"up" = gets the previous file in the list
"down" = gets the next file in the list
"execute" = executes the currently specified zbi file (as determined by the getvar

command)

Default: "none"

Example: A specific sequence of commands is required to get an accurate listing of files.
1. Initialize the device by issuing:

! U1 setvar "zbi.program_list" "fill"
2. To get the first file, issue:

! U1 getvar "zbi.program_list"
This will return the current filename in the list of zbi files present on the E: drive
If the response returned is "none" you have reached the end of the list.
3. To get the next filename in the list, issue:
! U1 setvar "zbi.program_list" "up"
4. To get the previous filename in the list, issue:

! U1 setvar "zbi.program_list" "down"
5. To execute the current zbi filename, i.e. the one returned by a getvar, issue:

! U1 setvar "zbi.program_list" "execute"
Format: ! U1 getvar "zbi.program_list"

getvar

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR338, ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

1/31/18

For device support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

961

962

SGD Printer Commands
zbi.reseller_key

zbi.reseller_key
This command allows programs that are encrypted with this key in ZBI- Developer to run. For printer
support, see SGD Command Support on page 1393.

Commands

Details

setvar

This command allows programs that are encrypted with this key in ZBI developer to run.
Format: ! U1 setvar "zbi.reseller_key" "value"
Values: Any valid encryption key provided by ZBI Developer.

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows the value set to "abc123".
! U1 setvar "zbi.reseller_key" "abc123".

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
zbi.revision

zbi.revision
This command identifies the current ZBI version. For printer support, see SGD Command Support
on page 1393.

Commands

Details

getvar

This command retrieves the current ZBI version.
Format: ! U1 getvar "zbi.revision"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: In this example, the getvar shows the current ZBI version.
! U1 getvar "zbi.revision"

1/31/18

Programming Guide

P1099958-001

963

964

SGD Printer Commands
zbi.running_program_name

zbi.running_program_name
This command identifies the name of the ZBI 2.0 program that is currently running. For printer
support, see SGD Command Support on page 1393.

Commands
getvar

Details
This command retrieves the name of the currently running ZBI 2.0 program.
Format: ! U1 getvar "zbi.running_program_name"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: In this example, the getvar command causes the printer to respond that the program
choices.bas is currently running.
! U1 getvar "zbi.running_program_name"
"CHOICES.BAS"

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
zbi.start_info.execute

zbi.start_info.execute
This command instructs the ZBI 2.0 environment to execute the program listed in the file_name. For
printer support, see SGD Command Support on page 1393.

Commands

Details

setvar

This command instructs the ZBI 2.0 environment to execute the program listed in the file_name.
Format: ! U1 setvar "zbi.start_info.execute"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example executes the "choices.bas" program.
! U1 setvar "zbi.start_info.execute" "choices.bas"

1/31/18

Programming Guide

P1099958-001

965

966

SGD Printer Commands
zbi.start_info.file_name

zbi.start_info.file_name
This command prepares a program to run when the zbi.start_info.execute command is used.
This command does not run the program. For printer support, see SGD Command Support
on page 1393.

Commands

Details

setvar

This command is used to prepare a ZBI 2.0 program to be executed using the
zbi.start_info.execute command.
Format:

! U1 setvar "zbi.start_info.file_name" "value"
Values: a file name or path of a basic program
getvar

This command is used to return the file path and file name of a ZBI 2.0 program to run using the
zbi.start_info.execute command.
Format: ! U1 getvar "zbi.start_info.file_name"
Default: The last program run. If nothing has been run, "*:\.BAZ".

Note • For details on SGD command structure, see Command Structure on page 573.
Example: This setvar example shows the value set to "E:PROGRAM1.BAS".
! U1 setvar "zbi.start_info.file_name" "E:PROGRAM1.BAS"
When the setvar value is set to "E:PROGRAM1.BAS", the getvar result is "E:PROGRAM1.BAS".

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
zbi.start_info.memory_alloc

zbi.start_info.memory_alloc
This command identifies the amount of memory currently in use in a ZBI 2.0 program. For printer
support, see SGD Command Support on page 1393.

Commands

Details

getvar

This command shows the amount of memory currently in use in bytes.
Format: ! U1 getvar "zbi.start_info.memory_alloc"

Note • For details on SGD command structure, see Command Structure on page 573.
Example: In this example, the getvar shows the amount of memory currently in use.
! U1 getvar "zbi.start_info.memory_alloc"

"17203"

1/31/18

Programming Guide

P1099958-001

967

968

SGD Printer Commands
zbi.state

zbi.state
This command shows the current state of the ZBI 2.0 program. For printer support, see SGD
Command Support on page 1393.

Commands

Details

getvar

This command retrieves the current state of ZBI.
Format: ! U1 getvar "zbi.state"
Values:
"running" = ZBI Interpreter is active and running a program
"off" = ZBI Interpreter is inactive
"stopped" = ZBI Interpreter is active but not executing a program

Note • For details on SGD command structure, see Command Structure on page 573.
Example: In this example, the getvar shows that state of ZBI.
! U1 getvar "zbi.state"
"running"

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
zpl.caret

zpl.caret
This command is used to change the format command prefix for ZPL commands. The default prefix
is the caret (^)
This command is equivalent to the ~CC and ^CC ZPL commands.

Commands

Details

setvar

This command sets the command prefix.
Format: ! U1 setvar "zpl.caret" "value"
Values: any ASCII character
Default: "^"
This command retrieves the current format command prefix.

getvar

Format: ! U1 getvar "zpl.caret"
Example: This setvar example changes the format prefix to a forward slash "/"
! U1 setvar "zpl.caret" "/"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

969

970

SGD Printer Commands
zpl.control_character

zpl.control_character
This command is used to change the control command prefix. The default prefix is the tilde (~).
This command is equivalent to the ^CT and ~CT commands.

Commands

Details

setvar

This command changes the control character.
Format: ! U1 setvar "zpl.control_character" "value"
Values: ASCII values for the desired character "00-FF,00-ff,up,down"
See ASCII Code Chart on page 1332.
Default: "7E" (tilde)
This command returns the currently set control character.

getvar

Format: ! U1 getvar "zpl.control_character"
Example: This example sets the value set to "+".
! U1 setvar "zpl.control_characater" "2b"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
zpl.delimiter

zpl.delimiter
This command is used to change the delimiter character for ZPL commands. The default delimiter
character is the comma (,).
Related Commands: ^CD and ~CD commands.

Commands

Details

setvar

This command changes the delimiter character for ZPL commands.
Format: ! U1 setvar "zpl.delimiter" "value"
Values: HEX values for the desired character "00-FF,00-ff,up,down"
See ASCII Code Chart on page 1332.
Default: "2C" (comma)
This command returns the currently set delimiter character.

getvar

Format: ! U1 getvar "zpl.delimiter"
Example: This example changes the delimiter to a semi-colon (;).
! U1 setvar "zpl.delimiter" "3B"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

971

972

SGD Printer Commands
zpl.label_length

zpl.label_length
This command defines the length of the label. This command is necessary when using continuous
media (media that is not divided into separate labels by gaps, spaces, notches, slots, or holes).
This command is equivalent to the ^LL command.

Commands

Details

setvar

This command sets the label length.
Format: ! U1 setvar "zpl.label_length" "value"
Values: 1 to 32000, (in dots) not to exceed the maximum label length.
While the printer accepts any value for this parameter, the amount of memory installed
determines the maximum length of the label.
This command returns the current label length setting.

getvar

Format: ! U1 getvar "zpl.label_length"

Comments These formulas can be used to determine the value of y:
For 6 dot/mm printheads...

Label length in inches x 152.4 (dots/inch) = y

For 8 dot/mm printheads...

Label length in inches x 203.2 (dots/inch) = y

For 12 dot/mm
printheads...

Label length in inches x 304.8 (dots/inch) = y

For 24 dot/mm
printheads...

Label length in inches x 609.6 (dots/inch) = y

Values for y depend on the memory size. If the entered value for y exceeds the acceptable limits,
the bottom of the label is cut off. The label also shifts down from top to bottom.
Example:
! U1 setvar zpl.label_length" "1281"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
zpl.left_position

zpl.left_position
This command sets the label’s left margin offset in dots.
Related Command: ^LS

Commands

Details

setvar

This command sets the label left margin offset in dots.
Format: ! U1 setvar "zpl.left_position" "value"
Values: "-9999 to 9999”"
Default: "0"
This command retrieves the currently set left margin offset for the label.

getvar

Format: ! U1 getvar "zpl.left_position"

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420
Example:
! U1 setvar "zpl.left_position" "100"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

973

974

SGD Printer Commands
zpl.system_error

zpl.system_error
This command returns the system error flags.
This command is equivalent to the error recording of ~HQES

Commands

Details

getvar

This command returns the state of the system error flags..
Format: ! U1 getvar "zpl.system_error"
Result: 0,0,00000000,00000000
(flag, error flag, Group 2, Group 1)

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Example 1 • This example shows how to request the printer’s status.
To request the printer’s status, type ! U1 getvar "zpl.system_error"
The printer responds with data similar to this: "1,1,00000000,00000004"
In this example, the Printer Status resolves to these conditions:
• The printer is in Pause (value = 1)
• The Error Flag is 0 if there are no errors (i.e. Group 2 and Group 1 are all 0s),
and 1 if there are any errors.
• The cover/printhead is open (value = 4).
Table 28 • Error Flags (~HQES)
Group 2
Error Flags

Group 1

(X = Value can be any hexadecimal number [0-9, A-F])

Flag

Nibbles16
-9

Nibble
8

Nibble
7

Nibble
6

Nibble
5

Nibble
4

Nibble
3

Nibble
2

Nibble
1

No Error

0

00000000

0

0

0

0

0

0

0

0

Error Present

1

00000000

X

X

X

X

X

X

X

X

Printhead Thermistor Open

1

00000000

X

X

X

X

X

2

X

X

Invalid Firmware Config.

1

00000000

X

X

X

X

X

1

X

X

Printhead Detection Error

1

00000000

X

X

X

X

X

X

8

X

Bad Printhead Element

1

00000000

X

X

X

X

X

X

4

X

Motor Over Temperature

1

00000000

X

X

X

X

X

X

2

X

Printhead Over
Temperature

1

00000000

X

X

X

X

X

X

1

X

Cutter Fault

1

00000000

X

X

X

X

X

X

X

8

aq.This error flag is supported only on KR403 printers.

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
zpl.system_error

Table 28 • Error Flags (~HQES)
Group 2
Error Flags

Flag

Group 1

(X = Value can be any hexadecimal number [0-9, A-F])

Nibbles16
-9

Nibble
8

Nibble
7

Nibble
6

Nibble
5

Nibble
4

Nibble
3

Nibble
2

Nibble
1

Head Open

1

00000000

X

X

X

X

X

X

X

4

Ribbon Out

1

00000000

X

X

X

X

X

X

X

2

Media Out

1

00000000

X

X

X

X

X

X

X

1

Clear Paper Path Failed

1

aq

00000000

X

X

X

X

8

aq

X

X

X

1

aq

00000000

X

X

X

X

4

aq

X

X

X

aq

1

aq

00000000

X

X

X

X

2

aq

X

X

X

Paper Jam during Retract

1

aq

00000000

X

X

X

X

1

aq

X

X

X

aq

1

aq

00000000

X

X

X

8

aq

X

X

X

X

Black Mark Calabrate Error

1

aq

00000000

X

X

X

4

aq

X

X

X

X

Retract Function timed out

1

aq

00000000

X

X

X

2

aq

X

X

X

X

1

aq

00000000

X

X

X

1

aq

X

X

X

X

aq

Paper Feed Error

aq

Presenter Not Running

aq

Black Mark not Found

aq

aq

Paused

aq

aq.This error flag is supported only on KR403 printers.

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

975

976

SGD Printer Commands
zpl.system_status

zpl.system_status
This command returns the errors and warnings of the system.
This command is equivalent to all data reported by the ~HQES ZPL command.

Commands

Details

getvar

This command returns the system error and warning flags.
Format: ! U1 getvar "zpl.system_status"
Result: 0,0,00000000,00000000,0,00000000,00000000
(flag, error flag, group 2, group 1, warning flag, group 2, group 1)

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Example 1 • This example shows how to request the printer’s status.
a. To request the printer’s status, type ! U1 getvar "zpl.system_status"
The printer responds with data similar to this:

"1,1,00000000,00000004,0,00000000,00000000"
In this example, the Printer Status resolves to these conditions:
• The printer is in Pause (value = 1)
• The Error Flag is 0 if there are no errors (i.e. Group 2 and Group 1 are all 0s),
and 1 if there are any errors (non-zero).
• The cover/printhead is open (value = 4).
• The Warning Flag is 0 if there are no warnings (i.e. Group 2 and Group 1 are all 0s),
and 1 if there are any errors (non-zero).

Table 29 • Error Flags (~HQES)
Group 2
Error Flags

Flag

Group 1

(X = Value can be any hexadecimal number [0-9, A-F])

Nibbles16
-9

Nibble
8

Nibble
7

Nibble
6

Nibble
5

Nibble
4

Nibble
3

Nibble
2

Nibble
1

No Error

0

00000000

0

0

0

0

0

0

0

0

Error Present

1

00000000

X

X

X

X

X

X

X

X

Printhead Thermistor Open

1

00000000

X

X

X

X

X

2

X

X

Invalid Firmware Config.

1

00000000

X

X

X

X

X

1

X

X

Printhead Detection Error

1

00000000

X

X

X

X

X

X

8

X

Bad Printhead Element

1

00000000

X

X

X

X

X

X

4

X

ar.This error flag is supported only on KR403 printers.

P1099958-001

Programming Guide

1/31/18

SGD Printer Commands
zpl.system_status

Table 29 • Error Flags (~HQES)
Group 2
Error Flags

Flag

Group 1

(X = Value can be any hexadecimal number [0-9, A-F])

Nibbles16
-9

Nibble
8

Nibble
7

Nibble
6

Nibble
5

Nibble
4

Nibble
3

Nibble
2

Nibble
1

Motor Over Temperature

1

00000000

X

X

X

X

X

X

2

X

Printhead Over
Temperature

1

00000000

X

X

X

X

X

X

1

X

Cutter Fault

1

00000000

X

X

X

X

X

X

X

8

Head Open

1

00000000

X

X

X

X

X

X

X

4

Ribbon Out

1

00000000

X

X

X

X

X

X

X

2

Media Out

1

00000000

X

X

X

X

X

X

X

1

1

ar

00000000

X

X

X

X

8

ar

X

X

X

1

ar

00000000

X

X

X

X

4

ar

X

X

X

1

ar

2

ar

X

X

X

1

ar

00000000

X

X

X

1

ar

X

X

X

1

ar

00000000

X

X

X

Black Mark Calabrate Error

1

ar

00000000

X

X

Retract Function timed out

1

ar

00000000

X

1

ar

00000000

X

ar

Clear Paper Path Failed
Paper Feed Error

ar
ar

Presenter Not Running

Paper Jam during Retract

ar

Black Mark not Found

ar

ar

ar

Paused

ar

00000000

X

X

X

X
X
8

ar

X

X

X

X

X

4

ar

X

X

X

X

X

X

2

ar

X

X

X

X

X

X

1

ar

X

X

X

X

ar.This error flag is supported only on KR403 printers.

Table 30 • Warning Flags (~HQES)
Group 2
Error Flags

Group 1

(X = Value can be any hexadecimal number [0-9, A-F])

Flag

Nibbles16
-9

Nibble
8

Nibble
7

Nibble
6

Nibble
5

Nibble
4

Nibble
3

Nibble
2

Nibble
1

No Warning

0

00000000

0

0

0

0

0

0

0

0

Warning Present

1

00000000

X

X

X

X

X

X

X

X

as
1

00000000

X

X

X

X

X

X

X

Replace Printhead

1

00000000

X

X

X

X

X

X

X

4

Clean Printhead

1

00000000

X

X

X

X

X

X

X

2

Need to Calibrate Media

1

00000000

X

X

X

X

X

X

X

1

Sensor 1 (Paper before
as
head)

as
1

00000000

X

X

X

X

X

X

as
1

X

as

00000000

X

X

X

X

X

X

2

as

X
X

as

X

as
Paper-near-end Sensor

Sensor 2 (Black mark)

as

Sensor 3 (Paper after head)

as

Sensor 4 (loop ready)

as

as
Sensor 5 (presenter)
Sensor 6 (retract ready)

as

1

8

as

as
1

00000000

X

X

X

X

X

X

as
4

as

00000000

X

X

X

X

X

X

8

X

X

as

X

X

1

as
1

00000000

X

X

X

X

X

as
1

as

00000000

X

X

X

X

X

2

1

as.This error flag is supported only on KR403 printers.

1/31/18

Programming Guide

P1099958-001

977

978

SGD Printer Commands
zpl.system_status

Table 30 • Warning Flags (~HQES)
Group 2
Error Flags
Sensor 7 (in retract)
Sensor 8 (at bin)

Flag

as

as

1

as

1

as

Group 1

(X = Value can be any hexadecimal number [0-9, A-F])

Nibbles16
-9

Nibble
8

Nibble
7

Nibble
6

Nibble
5

Nibble
4

00000000

X

X

X

X

X

00000000

X

X

X

X

X

Nibble
3

Nibble
2

Nibble
1

4

as

X

X

8

as

X

X

as.This error flag is supported only on KR403 printers.

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

zpl.zpl_mode

zpl.zpl_mode
This command sets the ZPL mode to ZPL II or ZPL.

Commands

Details

setvar

This command sets the printer ZPL mode.
Format: ! U1 setvar "zpl.zpl_mode" "value"
Values:
"zpl"
"zpl II"
Default: "zpl II"
This command returns the current ZPL mode setting.

getvar

Format: ! U1 getvar "zpl.zpl_mode"

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420
Example: This setvar example sets the ZPL mode to ZPL.
! U1 setvar "zpl.system_status" "zpl"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

979

980

SGD Printer Commands
zpl.zpl_override

zpl.zpl_override
Enable this menu item to prevent the following ZPL commands from changing the printer’s current
settings:
• ^MM (print mode)
• ^MT (Direct Thermal or Thermal Transfer print method)
• ^MN (media type - non-continuous or continuous)
When this menu item is disabled, these commands override the printer’s settings.

Commands

Details

setvar

Sets the override status to the specified value.
Format: ! U1 setvar "zpl.zpl_override" "value"
Values:
"disabled" = allows override
"enabled" = prevents ZPL commands from overriding printer settings.
Default: "disabled"
Returns the current override status.

getvar

Format: ! U1 getvar "zpl.zpl_override"
Values:
"disabled"
"enabled"

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420
Example: This example enables zpl.zpl_override, which prevents ^MM, ^MT, and ^MN from
making changes to the current printer settings.
! U1 setvar "zpl.zpl_override" "enabled"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

zpl.relative_darkness

zpl.relative_darkness
Changes the relative darkness for ZPL labels. This command is similar to the ZPL ^MD command.

Important • This value is saved permanently on Desktop printers, but it is not saved
permanently on Industrial or Mobile.

Commands

Details

setvar

Format: ! U1 setvar "zpl.relative_darkness" "value"
Values: "" to "300"
Default: "0"
Format: ! U1 getvar "relative_darkness"

getvar

Example: These examples show setting the printer to different darkness levels:
• If the current value shown on the configuration label is "16", using a zpl.relative_darkness
command of "-90" decreases the value to "7.0".
• If the current value shown on the configuration label is "1", using a zpl.relative_darkness
command of "153" increases the value to "16.3".
• If the current value shown on the configuration label is "25", using a zpl.relative_darkness
command of "105" increases the value to "30.0", which is the maximum value allowed.
Each zpl.relative_darkness command is treated separately in relation to the current value as
printed on the configuration label.

Supported Devices
• iMZ 220, iMZ 320
• QLn220, QLn320, QLn420
• ZQ510, ZQ520
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

981

982

zpl.relative_darkness

P1099958-001

Programming Guide

1/31/18

SGD Wired
Commands

This chapter provides a high-level overview of the wired Set / Get / Do (SGD) commands. For printer
support of these SGD commands, see SGD Command Support on page 1393.

SGD commands are available in printers with the following firmware versions or later:
•
•
•
•
•
•
•
•
•
•

•
•
•
•
•
•
•
•
•
•
•
•

V54
V66
V68
V72
V73
V74
V75
V76
V78
V79

V60.16.2Z or later
V60.15.xZ or later
V50.15.xZ or later
V61.15.xZ or later
V56.15.xZ or later
V53.16.x or later
V53.15.2Z or later
R53.16.3Z or later
R60.15.8Z or later
R62.15.8Z or later
R63.15.8Z or later
R65.15.8Z or later

Important • These are important points to note when using ZPL and SGD commands:
•
•
•
•
•

SGD commands are case-sensitive.
ZPL and SGD commands should be sent to the printer as separate files.
Certain settings can be controlled by both ZPL and SGD. Configuration changes made in ZPL
can affect configuration changes made in SGD.
Changes made with one command type (ZPL or SGD) will affect the data returned to the host
in response to both ZPL and getvar commands. The command type (ZPL or SGD) that was
sent last determines the current setting.
Some RF cards do not support all of the SGD commands.

Important • These are important points to note when using a Zebra G-Series printer:
•

•

1/31/18

You can send instructions to the printer using multiple programming languages: EPL, ZPL, or
SGD. EPL and ZPL commands configure the printer, print labels, and get device status
information. SGD commands set and get configuration details. These three languages can be
used without the need to send the printer instructions to switch from one language to another.
EPL, ZPL, and SGD commands must be sent to the printer as separate files. They cannot be
used together in one format, or set of commands. For example, if you send a series of SGD
commands to the printer and they are followed by a printable format, this needs to be done
using separate files.

Programming Guide

P1099958-001

984

SGD Wired Commands

P1099958-001

Programming Guide

1/31/18

SGD Wired Commands
Overview

Overview
This section describes how and why to use the Set / Get / Do (SGD) commands. It also provides an
example of a typical command structure.

Note • SGD commands must be terminated by a carriage return or a space and line feed.
SGD commands are commands that allow you to configure all printers with firmware version
V60.15.x, V50.15.x, V61.15.x, V56.15.x, V53.15.xZ, or later. The printer performs the specified
function immediately after receiving the command. The commands are:

• setvar
• getvar
• do

setvar Command
Setvar commands:
• are used to configure printer settings to specific values by setting them in the printer
• must be terminated by a space character or a CR/ LF (0x0D, 0x0A)

Important • The setvar command and attributes must be specified in lower case.

getvar Command
Getvar commands:
• are used to get the current value of the printer settings
• must be terminated by a space character or CR/LF (0x0D, 0x0A)
The printer responds with the printer setting of “?” if:
• the printer setting does not exist (usually due to incorrect spelling of the printer setting)
• it has not been configured yet

Important • The printer settings and attributes must be specified in lower case.

do Command
Do commands:
• are used to instruct the printer to perform predefined actions
• must be terminated by a space character or a CR/LF (0x0D, 0x0A)
Some Do commands require additional settings which must be enclosed in double quotes.

Important • The values must be specified in lower case.

1/31/18

Programming Guide

P1099958-001

985

986

SGD Wired Commands
Command Structure

Command Structure
It is important to understand the structure of the command and its components. A command
structure illustration is provided for each command in this guide.
Example: This is an example of a command structure illustration:

1
2
3

! U1 setvar

"ip.addr"

"value"

1

2

3

Command—always preceded with an exclamation point (!) and must be specified in
lower case. A space resides between the !and U1 and between U1 and the command
(setvar or getvar).
Attribute—always in double quotes and must be specified in lower case.
Chosen value—always in double quotes. Only applicable for setvar and do.

This command must be terminated by a space character or a CR/ LF (0x0D, 0x0A).

How to Send Multiple SGD Commands
For any getvar, setvar, or do command, if you issue the syntax without the "1" and use the END
command followed by a space, multiple SGD commands are sent simultaneously.
Example: This syntax shows how you can send multiple getvar commands:

1

! U getvar "ip.telnet.enable"
getvar "ip.dhcp.enable"

2
3

1
2
3

P1099958-001

getvar "ip.dhcp.cid_prefix"
END

The command portion of the string does not use the "1" after the "! U".
Commands issued after the first command do not require the "! U".
The string of commands is terminated by the word "END" with a space after the word,
and by a carriage return/ line feed.

Programming Guide

1/31/18

SGD Wired Commands
external_wired.check

external_wired.check
This command controls whether to check for external print server during the network interface
search.

Commands

Details

setvar

This command instructs the printer to set the network interface search.
Format: ! U1 setvar "external_wired.check" "value"
Values:
"on" = turn on external wired network interface search
"off" = turn off external wired network interface search
Default:
"on" = If wireless option board is not installed
"off" = If wireless option board is installed
This command retrieves the status of the network interface search.

getvar

Format: ! U1 getvar "external_wired.check"
Example: This setvar example shows the value set to "off".
! U1 setvar "external_wired.check" "off"
When the setvar value is set to "off", the getvar result is "off".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

987

988

SGD Wired Commands
external_wired.ip.addr

external_wired.ip.addr
This command allows you to get or set the external wired print servers’s IP address.

Important • For a set IP address to take affect, the IP protocol must be set to permanent and
the print server must be reset.

Commands

Details

setvar

This command instructs the printer to change its current external wired print server IP address
upon powering the printer on.
Format: ! U1 setvar "external_wired.ip.addr" "value"
Values: any valid IP address
Default: "0.0.0.0"
This command instructs the printer to respond with its current external wired print server IP
address.

getvar *

Format:

! U1 getvar "external_wired.ip.addr"

* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is supported.

Note • The setvar value of this command can be affected by the
external_wired.ip.dhcp.enable command.
Example: This setvar example shows the value set to "10.14.4.235".
! U1 setvar "external_wired.ip.addr" "10.14.4.235"
What the setvar value is set to is the getvar result. In this example, the getvar result is
"10.14.4.235".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
external_wired.ip.arp_interval

external_wired.ip.arp_interval
This print server setting allows you to specify the ARP (Address Resolution Protocol) interval or the
ARP cache time out for the external wired print server.

Commands

Details

setvar

This command instructs the printer to change the ARP interval or the ARP cache time out for the
external wired print server.
Format: ! U1 setvar "external_wired.ip.arp_interval" "value"
Values: 0 - 30
Default: "0"
This command instructs the printer to respond with the ARP interval or the ARP cache time out
value for the external wired print server.

getvar *

Format: ! U1 getvar "external_wired.ip.arp_interval"
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is supported.
Example: This setvar example shows the value set to "0".
! U1 setvar "external_wired.ip.arp_interval" "0"
What the setvar value is set to is the getvar result. In this example, the getvar result is "0".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

989

990

SGD Wired Commands
external_wired.ip.default_addr_enable

external_wired.ip.default_addr_enable
This command allows you to default the external wired print server’s IP address.

Important • For a set IP address to take affect, the IP protocol must be set to permanent and
the print server must be reset.

Commands

Details

setvar

This command tells the printer to use it’s default address, if no address is provided through DHCP
or BOOTP. If you do not assign an IP address after 2 minutes, the 10/100 Internal PS defaults to
IP address 192.168.254.254.
Format:

! U1 setvar "external_wired.ip.default_addr_enable" "value"
Values:
"on" = enabled
"off" = disabled
Default:

"on"

This command instructs the printer to show the status of the setting of external wired print server’s
default IP address feature.

getvar *

Format: ! U1 getvar "external_wired.ip.default_addr_enable"
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is supported.
Example: This setvar example shows the value set to "on".
! U1 setvar "external_wired.ip.default_addr_enable" "on"
What the setvar value is set to is the getvar result. In this example, the getvar result is "on".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
external_wired.ip.dhcp.cid_all

external_wired.ip.dhcp.cid_all
This printer setting defines the entire client identifier (DHCP option 61) if DHCP is enabled on the
external print server and "external_wired.ip.dhcp.cid_type" is set to "0", or "2". The MAC
address is used if the type is set to "1".

Commands

Details

setvar

This command instructs the printer to change the client identifier prefix and suffix of the external
wired print server. The prefix gets cleared and the suffix contains the entire client identifier.
Format: ! U1 setvar "external_wired.ip.dhcp.cid_all" "value"
Values: A maximum length of 60 characters if the CID type is ASCII, or 120 characters if the CID
type is hexadecimal.
Default: ""
This command instructs the printer to respond with the client identifier prefix and suffix of the
external wired print server.

getvar *

Format: ! U1 getvar "external_wired.ip.dhcp.cid_all"
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is supported.
Example: This setvar example shows the value set to "printer".
! U1 setvar "external_wired.ip.dhcp.cid_all" "printer"
What the setvar value is set to is the getvar result. In this example, the getvar result is
"printer".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

991

992

SGD Wired Commands
external_wired.ip.dhcp.cid_enable

external_wired.ip.dhcp.cid_enable
This command determines if DHCP (option 61) on the external wired print server is turned on or off.

Commands

Details

setvar

This command instructs the printer to set the status of the client identifier of the external wired
print server.
Format: ! U1 setvar "external_wired.ip.dhcp.cid_enable" "value"
Values:
"off" = client identifier is turned off
"on" = client identifier is turned on
Default: "off"
This command instructs the printer to respond with the status of the client identifier of the external
wired print server.

getvar *

Format: ! U1 getvar "external_wired.ip.dhcp.cid_enable"
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is supported.
Example: This setvar example shows the value set to "off".
! U1 setvar "external_wired.ip.dhcp.cid_enable" "off"
What the setvar value is set to is the getvar result. In this example, the getvar result is "off".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
external_wired.ip.dhcp.cid_prefix

external_wired.ip.dhcp.cid_prefix
This printer setting defines the prefix to be prepended to the DHCP client identifier (option 61) when
DHCP is enabled on the external wired print server and "external_wired.ip.dhcp.cid_type" is
set to "0" or "2".

Commands

Details

setvar

This command instructs the printer to change the CID prefix of the external wired print server.
Format: ! U1 setvar "external_wired.ip.dhcp.cid_prefix" "value"
Values: Any text string up to 10 characters if the CID type is ASCII, or 20 characters if the CID
type is hexadecimal.
Default: ""
This command instructs the printer to respond with the client identifier prefix of the external wired
print server.

getvar *

Format: ! U1 getvar "external_wired.ip.dhcp.cid_prefix"
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is supported.
Example: This setvar example shows the value set to "PRT001".
! U1 setvar "external_wired.ip.dhcp.cid_prefix" "PRT001"
What the setvar value is set to is the getvar result. In this example, the getvar result is "PRT001".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

993

994

SGD Wired Commands
external_wired.ip.dhcp.cid_suffix

external_wired.ip.dhcp.cid_suffix
This printer setting defines the unique suffix to be used as the client identifier (DHCP option 61) if
DHCP is enabled repeated on the external wired print server and external_wired.ip.dhcp.cid_type
on page 995 is set to "0" or "2", not "1".

Commands

Details

setvar

This command instructs the printer to change the client identifier suffix value.
Format: ! U1 setvar "external_wired.ip.dhcp.cid_suffix" "value"
Values: The maximum length of a value allowed is 60 ASCII characters when the CID type is
ASCII, or 120 hexadecimal values when the CID type is hexadecimal.
Default: ""
This command instructs the printer to respond with the client identifier suffix on the external wired
print server.

getvar *

Format: ! U1 getvar "external_wired.ip.dhcp.cid_suffix"
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is supported.
Example: This setvar example shows setting the suffix to "printer".
! U1 setvar "external_wired.ip.dhcp.cid_suffix" "printer"
What the setvar value is set to is the getvar result. In this example, the getvar result is "printer".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
external_wired.ip.dhcp.cid_type

external_wired.ip.dhcp.cid_type
This printer setting defines the type of client identifier (DHCP option 61) that will be sent if DHCP is
enabled on the external wired print server. A value of "1" means the type of "Ethernet" and the
printer’s MAC address will be used. A value of "0" or "2" means the client identifier sent will be
"external_wired.ip.dhcp.cid_prefix" concatenated with
"external_wired.ip.dhcp.cid_suffix".

Commands

Details

setvar

This command instructs the printer to enable "synthetic" Client Identifier for the external wired
print server.
Format: ! U1 setvar "external_wired.ip.dhcp.cid_type" "value"
Values:
"0"
"1"
"2"
Default:

= ASCII string
= wired print server’s MAC address
= HEX value

"1"

This command instructs the printer to respond with the client identifier type for the external wired
print server.

getvar *

Format: ! U1 getvar "external_wired.ip.dhcp.cid_type"
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is supported.
Example: This setvar example shows the value set to "1".
! U1 setvar "external_wired.ip.dhcp.cid_type" "1"
When the setvar value is set to "1", the getvar result is "1".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

995

996

SGD Wired Commands
external_wired.ip.gateway

external_wired.ip.gateway
This command instructs the printer to change the external wired print server’s gateway address.

Important • This setting refers to the gateway address. A set value is ignored if the IP
protocol is not set to permanent.

Commands

Details

setvar

This command instructs the printer to change the external wired printer server’s gateway address.
Format: ! U1 setvar "external_wired.ip.gateway" "value"
Values: Any valid gateway address
Default: "0.0.0.0"
This command instructs the printer to respond with the external wired printer server’s gateway
address.

getvar *

Format: ! U1 getvar "external_wired.ip.gateway"
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is supported.
Example: This setvar example shows the value set to "10.3.5.1".
! U1 setvar "external_wired.ip.gateway" "10.3.5.1"
When the setvar value is set to "10.3.5.1", the getvar result is "10.3.5.1".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
external_wired.ip.netmask

external_wired.ip.netmask
This setting refers to the external wired print server’s subnet mask address. This value is ignored if
the IP protocol is not set to permanent.

Commands

Details

setvar

This command instructs the printer to change the external wired print servers’s subnet mask.
Format:
! U1 setvar "external_wired.ip.netmask" "value"
Values: Any valid subnet mask.
Default: "255.255.255.0"
This command instructs the printer to respond with the external wired print server’s subnet mask.

getvar *

Format: ! U1 getvar "external_wired.ip.netmask"
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is supported.
Example: This setvar example shows the value set to "255.255.255.0".
! U1 setvar "external_wired.ip.netmask" "255.255.255.0"
When the setvar value is set to "255.255.255.0", the getvar result is "255.255.255.0".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

997

998

SGD Wired Commands
external_wired.ip.port

external_wired.ip.port
This printer setting refers to the external wired print server’s port number that the TCP print service
is listening on. Normal TCP communications from the host should be directed to this port.

Commands

Details

setvar

This command instructs the printer to set the external wired print server’s TCP/UDP port number.
Format: ! U1 setvar "external_wired.ip.port" "value"
Values: 1 - 65535 (excluding any ports currently used by other services, such as 21, 23, 80, and
515).
Default: "9100"
This command instructs the printer to respond with the external wired printer server’s TCP/UDP
port number.

getvar *

Format: ! U1 getvar "external_wired.ip.port"
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is supported.
Example: This setvar example shows the value set to "9100".
! U1 setvar "external_wired.ip.port" "9100"
When the setvar value is set to "9100", the getvar result is "9100".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
external_wired.ip.protocol

external_wired.ip.protocol
This command configures the IP addressing method used by the external wired print server.

Commands

Details

setvar

This command instructs the printer to configure the IP addressing method used by the external
wired print server.
Format:

! U1 setvar "external_wired.ip.protocol" "value"

Values:
"bootp" = uses the standard bootp addressing method to obtain an IP address and

configuration

"dhcp" = uses the standard dhcp addressing method to obtain an IP address and

configuration for a server specified period of time

"rarp" = uses the standard rarp addressing method to obtain an IP address
"glean" = uses the IP address from a PING packet that is sent to its hardware

address (unicast address)

“permanent” = uses static values assigned through other commands
"all" = tries all of the dynamic addressing methods, not permanent, to obtain an IP

address

Default: "all"
This command returns the IP addressing method used by the external print server.

getvar *

Format: ! U1 getvar "external_wired.ip.protocol"
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is supported.
Example: In this example, the setvar result is the current programming language that the printer is
using.
! U1 setvar "external_wired.ip.protocol" "bootp"
What the setvar value is set to is the getvar result. In this example, the getvar result is "bootp".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

999

1000

SGD Wired Commands
external_wired.ip.timeout.enable

external_wired.ip.timeout.enable
This network setting refers to enabling the connection timeout on the external wired 10/100 print
server. For this to take effect, the print server must be reset.

Commands

Details

setvar

This command instructs the printer to enable or disable the timeout checking on the external wired
print server.
Format:
! U1 setvar "external_wired.ip.timeout.enable" "value"
Values:
"off" = turns off the connection checking
"on" = turns on the connection checking
Default: "on"
This command instructs the printer to return whether the timeout checking is enabled on the
external wired print server.

getvar *

Format:
! U1 getvar "external_wired.ip.timeout.enable"
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is supported.
Example: This setvar example shows the value set to "on".
! U1 setvar "external_wired.ip.timeout.enable" "on"
When the setvar value is set to "on", the getvar result is "on".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
external_wired.ip.timeout.value

external_wired.ip.timeout.value
This network setting refers to the number of seconds before the connection times out for the external
wired print server.

Commands

Details

setvar

This command instructs the printer to set the time of the external wired print server, in seconds,
before the connection times out.
Format:
! U1 setvar "external_wired.ip.timeout.value" "value"
Values: "1" through "3600"
Default: "300"
This command instructs the printer to respond with the time of the external wired print server, in
seconds, before the connection times out.

getvar *

Format:
! U1 getvar "external_wired.ip.timeout.value"
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is supported.
Example: This setvar example shows the value set to "300".
! U1 setvar "external_wired.ip.timeout.value" "300"
When the setvar value is set to "300", the getvar result is "300".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1001

1002

SGD Wired Commands
external_wired.ip.v6.addr

external_wired.ip.v6.addr
This command retrieves the IPv6 address of the SEH wired print server. This command is only
supported on SEH print server models PS105-Z and PS102-Z with firmware version V60.16.5Z or
V53.16.5Z and later.

Commands

Details

getvar

This command retrieves the IPv6 address of the SEH wired print server.
Format: ! U1 getvar "external_wired.ip.v6.addr"
Values:

8 group of four hexadecimal digits with a colon delimiter
character set = A-F or 0-9 (39-character maximum)

Supported Devices
• SEH print server model PS105-Z with firmware version V60.16.5Z or V53.16.5Z and later.
• SEH print server model PS102-Z with firmware version V60.16.5Z or V53.16.5Z and later.
Example: In this example, the getvar returns the IPv6 address of the wired print server.
! U1 getvar "external_wired.ip.v6.addr"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
external_wired.ip.v6.gateway

external_wired.ip.v6.gateway
This command retrieves the IPv6 gateway of the SEH wired print server.

Commands

Details

getvar

This command retrieves the IPv6 gateway of the SEH wired print server.
Format: ! U1 getvar "external_wired.ip.v6.gateway"
Values:

8 group of four hexadecimal digits with a colon delimiter
character set = A-F or 0-9 (39-character maximum)

Supported Devices
• SEH print server model PS105-Z with firmware version V60.16.5Z or V53.16.5Z and later.
• SEH print server model PS102-Z with firmware version V60.16.5Z or V53.16.5Z and later.
Example: In this example, the getvar returns the IPv6 gateway of the wired print server.
! U1 getvar "external_wired.ip.v6.gateway"

v

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1003

1004

SGD Wired Commands
external_wired.ip.v6.prefix_length

external_wired.ip.v6.prefix_length
This command retrieves the IPv6 address prefix length of the SEH wired print server.

Commands

Details

getvar

This command retrieves the IPv6 address prefix length of the SEH wired print server.
Format: ! U1 getvar "external_wired.ip.v6.prefix_length"
Values: character set = 0-9 (3-character maximum)

Supported Devices
• SEH print server model PS105-Z with firmware version V60.16.5Z or V53.16.5Z and later.
• SEH print server model PS102-Z with firmware version V60.16.5Z or V53.16.5Z and later.
Example: In this example, the getvar returns the IPv6 address prefix length of the wired print
server.
! U1 getvar "external_wired.ip.v6.prefix_length"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
external_wired.mac_addr

external_wired.mac_addr
This command retrieves the MAC address of the external wired print server.

Commands

Details

getvar

This command instructs the printer to respond with the MAC address of the external wired print
server.
Format: ! U1 getvar "external_wired.mac_addr"
Example: In this example, the getvar result is the MAC address of the external wired print server.
! U1 getvar "external_wired.mac_addr"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1005

1006

SGD Wired Commands
external_wired.mac_raw

external_wired.mac_raw
This command specifies the RAW MAC address of the external print server. The raw mac address is
the mac address without the colons (":").

Commands

Details

getvar

This command retrieves the RAW MAC address of the external print server.
Format: ! U1 getvar "external_wired.mac_raw"
Example: In this example, the getvar retrieves the RAW MAC address of the external print server.
! U1 getvar "external_wired.mac_raw"

"00074d2408ff"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
internal_wired.8021x.password

internal_wired.8021x.password
Sets the password to be used for authentication with the wired network.

Setvar
To set the command:
! U1 setvar "internal_wired.8021x.password" "value"
Values:
The value is a string of up to 32 ASCII characters.

Related SGDs
• internal_wired.8021x.security
• internal_wired.8021x.username

Supported Printers
• ZD400, ZD410, ZD420
• ZD500R
• ZD620
• QLn220, QLn320, QLn420
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Notes
•
•

1/31/18

For specific product support, see xref on page xxx.
For details on command structure, see xref on page yyy.

Programming Guide

P1099958-001

1007

1008

SGD Wired Commands
internal_wired.8021x.peap.validate_server_certificate

internal_wired.8021x.peap.validate_server_
certificate
When using PEAP, this command determines if the printer requires the server certificate
to be signed by a CA in Zebra’s CA chain of trust.

Setvar
To set the command:
! U1 setvar "internal_wired.8021x.peap.validate_server_certificate"
"value"
Values:
• on
• off
Default:
"on"

Getvar
To have the printer return the current setting value:
! U1 getvar "internal_wired.8021x.peap.validate_server_certificate"

Supported Printers
• ZD400, ZD410, ZD420
• ZD500R
• ZD620
• QLn220, QLn320, QLn420
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Notes
•
•

P1099958-001

For specific product support, see xref on page xxx.
For details on command structure, see xref on page yyy.

Programming Guide

1/31/18

SGD Wired Commands
internal_wired.8021x.peap.anonymous_identity

internal_wired.8021x.peap.anonymous_identi
ty
Sets the phase 1 ID name when authenticating with the wired network.

Setvar
To set the command:
! U1 setvar "internal_wired.8021x.peap.anonymous_identity" "value"
Values:
The value is a string of up to 32 ASCII characters.
Default:
""

Getvar
To confirm the command is set:
! U1 getvar "internal_wired.8021x.peap.anonymous_identity"

Supported Printers
• ZD400, ZD410, ZD420
• ZD500R
• ZD620
• QLn220, QLn320, QLn420
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Notes
•
•

1/31/18

For specific product support, see xref on page xxx.
For details on command structure, see xref on page yyy.

Programming Guide

P1099958-001

1009

1010

SGD Wired Commands
internal_wired.8021x.private_key_password

internal_wired.8021x.private_key_password
Sets the private key password for encryption in the certificate file.

Setvar
To set the command:
! U1 setvar "internal_wired.8021x.private_key_password" "value"
Values:
The value is a string of up to 32 ASCII characters.
Default:
""

Getvar
To have the printer return the current setting value:
! U1 getvar "internal_wired.8021x.private_key_password"

Supported Printers
• ZD400, ZD410, ZD420
• ZD500R
• ZD620
• QLn220, QLn320, QLn420
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Notes
•
•

P1099958-001

For specific product support, see xref on page xxx.
For details on command structure, see xref on page yyy.

Programming Guide

1/31/18

SGD Wired Commands
internal_wired.8021x.security

internal_wired.8021x.security
Returns the security type used for the wired network.

Setvar
To set the command:
! U1 setvar "internal_wired.8021x.security" "none"
Values:
• none
• peap
• eap-tls
• eap-ttls
Default:
"none"

Getvar
To have the printer return the current setting value:
! U1 getvar "internal_wired.8021x.security"

Supported Printers
• ZD400, ZD410, ZD420
• ZD500R
• ZD620
• QLn220, QLn320, QLn420
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Notes
•
•

1/31/18

For specific product support, see xref on page xxx.
For details on command structure, see xref on page yyy.

Programming Guide

P1099958-001

1011

1012

SGD Wired Commands
internal_wired.8021x.ttls_tunnel

internal_wired.8021x.ttls_tunnel
Sets the TTLS tunnel protocol to use in the authentication process.

Setvar
To set the command:
! U1 setvar "internal_wired.8021x.ttls_tunnel" "value"
Values:
• pap
• chap
• mschap
• mschapv2
Default:
"mschapv2"

Getvar
To have the printer return the current setting value:
! U1 getvar "internal_wired.8021x.ttls_tunnel"

Supported Printers
• ZD400, ZD410, ZD420
• ZD500R
• ZD620
• QLn220, QLn320, QLn420
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Notes
•
•

P1099958-001

For specific product support, see xref on page xxx.
For details on command structure, see xref on page yyy.

Programming Guide

1/31/18

SGD Wired Commands
internal_wired.8021x.username

internal_wired.8021x.username
Sets the user name to use for authentication with the wired network.

Setvar
To set the command:
! U1 setvar "internal_wired.8021x.username" "value"
Values:
The value is a string of up to 32 ASCII characters.
Default:
""

Getvar
To have the printer return the current setting value:
! U1 getvar "internal_wired.8021x.username"
The value is a string of up to 32 ASCII characters.

Supported Printers
• ZD400, ZD410, ZD420
• ZD500R
• ZD620
• QLn220, QLn320, QLn420
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Notes
•
•

1/31/18

For specific product support, see xref on page xxx.
For details on command structure, see xref on page yyy.

Programming Guide

P1099958-001

1013

1014

SGD Wired Commands
internal_wired.activity_led

internal_wired.activity_led
Controls whether the Ethernet activity LED will blink or be solid when there is link.

Commands

Details

setvar

Format: ! U1 setvar "internal_wired.activity_led" "value"
Values:
"blink" = the LED will blink
"solid" = the LED will be solid
Default: "blink"
Format: ! U1 getvar "internal_wired.activity_led"

getvar

Supported Devices
• QLn220, QLn420,QLn320
• ZR628, ZR638

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
internal_wired.auto_switchover

internal_wired.auto_switchover
This command instructs the printer to switch from wireless to the internal wired print server when an
Ethernet cable is plugged into the printer and the printer detects an active data link.

Commands

Details
This command configures switches between the wireless and wired interfaces.

setvar

Format: ! U1 setvar "internal_wired.auto_switchover" "value"
Values:
"on" = switchover enabled
"off" = switchover disabled
Default: "off"
This command retrieves the current automatic switchover value.

getvar

Format: ! U1 getvar "internal_wired.auto_switchover"

Supported Devices
• ZM400/ZM600
• RZ400/RZ600

Important • For this command to work, be sure:
• you are using a ZM400/ZM600 or RZ400/RZ600 printer with both the internal 10/100 wired
print server and wireless option board installed
• the value for this command is set to "on" (switchover enabled)
• the printer is currently communicating to the network through a wireless connection
• a Ethernet cable is plugged into the ZM400/ZM600 or RZ400/RZ600 printer and the printer
recognizes a data link connection
When the above conditions exist and an active Ethernet cable is plugged into an internal wired
print server, the printer will detect the wired data link and automatically switch to the wired
interface. The printer will automatically switch back to the wireless interface when the Ethernet
cable is disconnected.
Example: This setvar example shows the value set to "off".
! U1 setvar "internal_wired.auto_switchover" "off"
When the setvar value is set to "off", the getvar result is "off".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1015

1016

SGD Wired Commands
internal_wired.enable

internal_wired.enable
Enables or disables the wired network interface.
IMPORTANT: A network or printer reset is required for this setting to take effect.

Setvar
To set the command:
! U1 setvar "internal_wired.enable" "value"
Values:
• on
• off
Default:
"on"

Getvar
To have the printer return the current setting value:
! U1 getvar "internal_wired.enable"

Supported Printers
• ZD400, ZD410, ZD420
• ZD500R
• ZD620
• QLn220, QLn320, QLn420
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Notes
•
•

P1099958-001

For specific product support, see xref on page xxx.
For details on command structure, see xref on page yyy.

Programming Guide

1/31/18

SGD Wired Commands
internal_wired.installed

internal_wired.installed
Returns if the wired option is installed in the printer.

Commands

Details

getvar

Format: ! U1 getvar "internal_wired.installed"
Values:
"yes" = the wired print server is installed
"no" = the wired print server is not installed

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR338
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1017

1018

SGD Wired Commands
internal_wired.ip.addr

internal_wired.ip.addr
This command allows you to get or set the internal wired print servers’s IP address.

Important • For a set IP address to take affect, the IP protocol must be set to permanent and
the print server must be reset.

Commands

Details

setvar

This command instructs the printer to change its current internal wired print server IP address
upon powering the printer on.
Format: ! U1 setvar "internal_wired.ip.addr" "value"
Values: any valid IP address
Default: "0.0.0.0"
This command instructs the printer to respond with its current internal wired print server IP
address.

getvar

Format: ! U1 getvar "internal_wired.ip.addr"

Note • The setvar value of this command can be affected by the
internal_wired.ip.dhcp.enable command.
Example: This setvar example shows the value set to "10.14.4.235".
! U1 setvar "internal_wired.ip.addr" "10.14.4.235"
What the setvar value is set to is the getvar result. In this example, the getvar result is
"10.14.4.235".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
internal_wired.ip.arp_interval

internal_wired.ip.arp_interval
This print server setting allows you to specify the ARP (Address Resolution Protocol) interval or the
ARP cache time out for the internal wired print server.

Commands

Details

setvar

This command instructs the printer to change the ARP interval or the ARP cache time out for the
internal wired print server.
Format: ! U1 setvar "internal_wired.ip.arp_interval" "value"
Values: 0 - 30
Default: "0"
This command instructs the printer to respond with the ARP interval or the ARP cache time out
value for the internal wired print server.

getvar

Format: ! U1 getvar "internal_wired.ip.arp_interval"
Example: This setvar example shows the value set to "0".
! U1 setvar "internal_wired.ip.arp_interval" "0"
What the setvar value is set to is the getvar result. In this example, the getvar result is "0".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1019

1020

SGD Wired Commands
internal_wired.ip.default_addr_enable

internal_wired.ip.default_addr_enable
This command allows you to default the internal wired print server’s IP address.

Important • For a set IP address to take affect, the IP protocol must be set to permanent and
the print server must be reset.

Commands

Details

setvar

This command tells the printer to use it’s default address, if no address is provided through DHCP
or BOOTP. If you do not assign an IP address after 2 minutes, the 10/100 Internal PS defaults to
IP address 192.168.254.254.
Format:

! U1 setvar "internal_wired.ip.default_addr_enable" "value"
Values:
"on" = enabled
"off" = disabled
Default:

"on"

This command instructs the printer to show the status of the setting of internal wired print server’s
default IP address feature.

getvar

Format: ! U1 getvar "internal_wired.ip.default_addr_enable"
Example: This setvar example shows the value set to "on".
! U1 setvar "internal_wired.ip.default_addr_enable" "on"
What the setvar value is set to is the getvar result. In this example, the getvar result is "on".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
internal_wired.ip.dhcp.arp_verify

internal_wired.ip.dhcp.arp_verify
This command controls whether the internal wired print server will send an ARP response after
receiving an IP address via DHCP.

Commands

Details

setvar

Format: ! U1 setvar "internal_wired.ip.dhcp.arp_verify" "value"
Values:
"off" = ARP response will not be sent.
"on" = ARP response will be sent.
Default:
"off" for mobile Link-OS printers
"on" for desktop and industrial printers
Format: ! U1 getvar "internal_wired.ip.dhcp.arp_verify"

getvar

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR338
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1021

1022

SGD Wired Commands
internal_wired.ip.dhcp.cache_ip

internal_wired.ip.dhcp.cache_ip
This command enables or disables the IP cache on the internal wired print server.

Commands

Details

setvar

This command sets the status of the IP cache.
Format: ! U1 setvar "internal_wired.ip.dhcp.cache_ip" "value"
Values:
"on" = enabled
"off" = disabled
Default: "off"
This command retrieves the status of the IP cache on the internal wired print server.

getvar

Format: ! U1 getvar "internal_wired.ip.dhcp.cache_ip"

Supported Devices
• ZM400/ZM600
• RZ400/RZ600
Example: This setvar example shows the value set to "off".
! U1 setvar "internal_wired.ip.dhcp.cache_ip" "off"
When the setvar value is set to "off", the getvar result is "off".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
internal_wired.ip.dhcp.cid_all

internal_wired.ip.dhcp.cid_all
This printer setting defines the entire client identifier (DHCP option 61) if DHCP is enabled on the
internal print server and "internal_wired.ip.dhcp.cid_type" is set to "0", or "2". The MAC
address is used if the type is set to "1".

Commands

Details

setvar

This command instructs the printer to change the client identifier prefix and suffix of the internal
wired print server. The prefix gets cleared and the suffix contains the entire client identifer.
Format: ! U1 setvar "internal_wired.ip.dhcp.cid_all" "value"
Values: A maximum length of 60 characters if the CID type is ASCII, or 120 characters if the CID
type is hexadecimal.
Default: ""
This command instructs the printer to respond with the client identifier prefix and suffix of the
internal wired print server.

getvar

Format: ! U1 getvar "internal_wired.ip.dhcp.cid_all"
Example: This setvar example shows the value set to "printer".
! U1 setvar "internal_wired.ip.dhcp.cid_all" "printer"
What the setvar value is set to is the getvar result. In this example, the getvar result is
"printer".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1023

1024

SGD Wired Commands
internal_wired.ip.dhcp.cid_enable

internal_wired.ip.dhcp.cid_enable
This command determines if DHCP (option 61) is turned on or off of the internal wired print server.

Commands

Details

setvar

This command instructs the printer to set the status of the client identifier of the internal wired print
server.
Format: ! U1 setvar "internal_wired.ip.dhcp.cid_enable" "value"
Values:
"off" = client identifier is turned off
"on" = client identifier is turned on
Default: "off"
This command instructs the printer to respond with the status of the client identifier of the internal
wired print server.

getvar

Format: ! U1 getvar "internal_wired.ip.dhcp.cid_enable"
Example: This setvar example shows the value set to "off".
! U1 setvar "internal_wired.ip.dhcp.cid_enable" "off"
What the setvar value is set to is the getvar result. In this example, the getvar result is "off".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
internal_wired.ip.dhcp.cid_prefix

internal_wired.ip.dhcp.cid_prefix
This printer setting defines the prefix to be prepended to the DHCP client identifier (option 61) when
DHCP is enabled on the internal wired print server and "internal_wired.ip.dhcp.cid_type" is
set to "0" or "2".

Command
s

Details

setvar

This command instructs the printer to change the CID prefix of the internal wired print server.
Format: ! U1 setvar "internal_wired.ip.dhcp.cid_prefix" "value"
Values: Any text string up to 10 characters if the CID type is ASCII, or 20 characters if the CID
type is hexadecimal.
Default: ""

getvar

This command instructs the printer to respond with the client identifier prefix of the internal wired
print server.
Format:

! U1 getvar "internal_wired.ip.dhcp.cid_prefix"

Example: This setvar example shows the value set to "PRT001".
! U1 setvar "internal_wired.ip.dhcp.cid_prefix" "PRT001"
What the setvar value is set to is the getvar result. In this example, the getvar result is "PRT001".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1025

1026

SGD Wired Commands
internal_wired.ip.dhcp.cid_suffix

internal_wired.ip.dhcp.cid_suffix
This printer setting defines the unique suffix to be used as the client identifier (DHCP option 61) if
DHCP is enabled on the internal wired 10/100 print server and
"internal_wired.ip.dhcp.cid_type" is set to "0" or "2".

Commands

Details

setvar

This command instructs the printer to change the client identifier suffix value of the internal wired
10/100 print server.
Format: ! U1 setvar "internal_wired.ip.dhcp.cid_suffix" "value"
Values: The maximum length of a value allowed is 60 ASCII characters when the CID type is
ASCII, or 120 hexadecimal values when the CID type is hexadecimal.
Default: ""
This command instructs the printer to respond with the client identifier suffix of the internal wired
10/100 print server.

getvar

Format: ! U1 getvar "internal_wired.ip.dhcp.cid_suffix"
Example: This setvar example shows the value set to "printer".
! U1 setvar "internal_wired.ip.dhcp.cid_suffix" "printer"
What the setvar value is set to is the getvar result. In this example, the getvar result is
"printer".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
internal_wired.ip.dhcp.cid_type

internal_wired.ip.dhcp.cid_type
This printer setting defines the type of client identifier (DHCP option 61) that will be sent if DHCP is
enabled on the internal wired print server. A value of "1" means the type of "Ethernet" and the
printer’s MAC address will be used.A value of "0" or "2" means the client identifier sent will be
"internal_wired.ip.dhcp.cid_prefix" concatenated with
"internal_wired.ip.dhcp.cid_suffix".

Commands

Details

setvar

This command instructs the printer to enable "synthetic" Client Identifier for the internal wired print
server.
Format: ! U1 setvar "internal_wired.ip.dhcp.cid_type" "value"
Values:
"0"
"1"
"2"
Default:

= ASCII string
= wired print server’s MAC address
= HEX value

"1"

This command instructs the printer to respond with the client identifier type for the internal wired
print server.

getvar

Format: ! U1 getvar "internal_wired.ip.dhcp.cid_type"
Example: This setvar example shows the value set to "1".
! U1 setvar "internal_wired.ip.dhcp.cid_type" "1"
When the setvar value is set to "1", the getvar result is "1".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1027

1028

SGD Wired Commands
internal_wired.ip.dhcp.lease.last_attemptinternal_wired.ip.dhcp.lease.last_attempt

internal_wired.ip.dhcp.lease.last_attempt
This command retrieves the last time a DHCP request was sent from the internal wired print server.

Commands

Details

getvar

This command retrieves the last time a DHCP request was sent from the internal wired print
server.
Format: ! U1 getvar "internal_wired.ip.dhcp.lease.last_attempt"

Supported Devices
• ZM400/ZM600
• RZ400/RZ600
Example: In this example, the getvar retrieves the last time a DHCP request was sent to the
internal wired print server.
! U1 getvar "internal_wired.ip.dhcp.lease.last_attempt"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
internal_wired.ip.dhcp.lease.lengthinternal_wired.ip.dhcp.lease.length

internal_wired.ip.dhcp.lease.length
This command retrieves the original length (in seconds) of the DHCP lease on the internal wired
print server.

Commands

Details

getvar

This command retrieves the original length (in seconds) of the DHCP lease on the internal wired
print server.
Format: ! U1 getvar "internal_wired.ip.dhcp.lease.length"

Supported Devices
• ZM400/ZM600
• RZ400/RZ600
Example: In this example, the getvar returns the original length of the DHCP lease on the internal
wired print server.
! U1 getvar "internal_wired.ip.dhcp.lease.length"
"691200"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1029

1030

SGD Wired Commands
internal_wired.ip.dhcp.lease.serverinternal_wired.ip.dhcp.lease.server

internal_wired.ip.dhcp.lease.server
This command retrieves the address of the server that provided the DHCP lease on the internal
wired print server.

Commands

Details

getvar

This command retrieves the address of the server that provided the DHCP lease on the internal
wired print server.
Format: ! U1 getvar "internal_wired.ip.dhcp.lease.server"

Supported Devices
• ZM400/ZM600
• RZ400/RZ600
Example: In this example, the getvar retrieves the address of the server that provided the DHCP
lease on the internal wired print server.
! U1 getvar "internal_wired.ip.dhcp.lease.server"
"10.3.1.98"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
internal_wired.ip.dhcp.lease.time_leftinternal_wired.ip.dhcp.lease.time_left

internal_wired.ip.dhcp.lease.time_left
This command retrieves the time (in seconds) left in the current DHCP lease on the internal wired
print server.

Commands

Details

getvar

This command retrieves the time (in seconds) left in the current DHCP lease on the internal wired
print server.
Format: ! U1 getvar "internal_wired.ip.dhcp.lease.time_left"

Supported Devices
• ZM400/ZM600
• RZ400/RZ600
Example: In this example, the getvar retrieves the time left in the current DHCP lease on the wired
internal print server.
! U1 getvar "internal_wired.ip.dhcp.lease.time_left"
"10.3.1.98"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1031

1032

SGD Wired Commands
internal_wired.ip.dhcp.option12

internal_wired.ip.dhcp.option12
This command specifies if the DHCP option 12 (host name) is on or off in the discovery packet that
is sent from the internal wired print server.

Commands

Details

setvar

This command instructs the printer to set the DHCP option 12 (host name) in the discovery packet
of the internal wired print server.
Format:
! U1 setvar "internal_wired.ip.dhcp.option12" "value"
Values:
"on" = turns on option 12
"off" = turns off option 12
Default: "on"
This command retrieves the status of the DHCP option 12 (host name) in the discovery packet of
the internal wired print server.

getvar

Format:
! U1 getvar "internal_wired.ip.dhcp.option12"

Supported Devices
• ZM400/ZM600
• RZ400/RZ600
Example: This setvar example shows the value set to "on".
! U1 setvar "internal_wired.ip.dhcp.option12" "on"
When the setvar value is set to "on", the getvar result is "on".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
internal_wired.ip.dhcp.option12_format

internal_wired.ip.dhcp.option12_format
This command specifies the value which will be used for option 12 (host name) to be used in the
DHCP discovery packet of the internal wired print server.

Commands

Details

setvar

This command instructs the printer to set value which will be used for option 12 (host name) to be
used in the DHCP discovery packet of the internal wired print server.
Format:
! U1 setvar "internal_wired.ip.dhcp.option12_format" "value"
Values: 0 to 109 alphanumeric characters
Default: ""
This command retrieves the value which will be used for option 12 (host name) to be used in the
DHCP discovery packet of the internal wired print server.

getvar

Format:
! U1 getvar "internal_wired.ip.dhcp.option12_format"

Supported Devices
• ZM400/ZM600
• RZ400/RZ600
Example: This setvar example shows configuring the internal_wired.ip.dhcp.option12_format to
the value contained in the device.friendly_name.
It is necessary to surround the SGD entry to be used as source for the data with the < and >
characters.
! U1 setvar "internal_wired.ip.dhcp.option12_format" ""
To further explain, if the above command was issued and the value currently stored in the
device.friendly_name parameter was "ShipPrinter", then the response to following command would
be "ShipPrinter":
! U1 getvar "internal_wired.ip.dhcp.option12_value"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1033

1034

SGD Wired Commands
internal_wired.ip.dhcp.option12_valueinternal_wired.ip.dhcp.option12_value

internal_wired.ip.dhcp.option12_value
This command retrieves the actual value which will be used in the discovery packet of the internal
wired print server.

Commands

Details

getvar

This command retrieves the actual value which will be used in the discovery packet of the internal
wired print server.
Format: ! U1 getvar "internal_wired.ip.dhcp.option12_value"

Supported Devices
• ZM400/ZM600
• RZ400/RZ600
Example: This setvar example shows configuring the internal_wired.ip.dhcp.option12_format to
the value contained in the device.friendly_name.
It is necessary to surround the SGD entry to be used as source for the data with the < and >
characters.
! U1 setvar "internal_wired.ip.dhcp.option12_format" ""
To further explain, if the above command was issued and the value currently stored in the
device.friendly_name parameter was "ShipPrinter", then the response to following command would
be "ShipPrinter":
! U1 getvar "internal_wired.ip.dhcp.option12_value"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
internal_wired.ip.dhcp.requests_per_session

internal_wired.ip.dhcp.requests_per_session
This command retrieves the maximum amount of DHCP discover requests for a single DHCP
session on the internal wired print server.

Commands

Details

setvar

This command instructs the printer to set the maximum amount of DHCP discover requests for a
single DHCP session on the internal wired print server.
Format:

! U1 setvar "internal_wired.ip.dhcp.requests_per_session" "value"
Values: 1-10
Default: "2"
This command retrieves the currently set maximum amount of DHCP discover requests for a
single DHCP session on the internal wired print server.

getvar

Format:

! U1 getvar "internal_wired.ip.dhcp.requests_per_session"

Supported Devices
• ZM400/ZM600
• RZ400/RZ600
Example: This setvar example shows the value set to "2".
! U1 setvar "internal_wired.ip.dhcp.requests_per_session" "2"
When the setvar value is set to "2", the getvar result is "2".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1035

1036

SGD Wired Commands
internal_wired.ip.dns.servers

internal_wired.ip.dns.servers
This command retrieves a space delimited list of the domain name servers from an internal wired
print server.

Commands

Details
This command retrieves a list of space delimited DNS internal wired print servers.

getvar

Format: ! U1 getvar "internal_wired.ip.dns.servers"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
internal_wired.ip.gateway

internal_wired.ip.gateway
This command instructs the printer to change the internal wired print servers gateway address.

Important • This setting refers to the gateway address. A set value is ignored if the IP
protocol is not set to permanent.

Commands

Details

setvar

This command instructs the printer to change the internal wired printer servers gateway address.
Format: ! U1 setvar "internal_wired.ip.gateway" "value"
Values: Any valid gateway address
Default: "0.0.0.0"
This command instructs the printer to respond with the internal wired printer servers gateway
address.

getvar

Format: ! U1 getvar "internal_wired.ip.gateway"
Example: This setvar example shows the value set to "10.3.5.1".
! U1 setvar "internal_wired.ip.gateway" "10.3.5.1"
When the setvar value is set to "10.3.5.1", the getvar result is "10.3.5.1".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1037

1038

SGD Wired Commands
internal_wired.ip.netmask

internal_wired.ip.netmask
This setting refers to the internal wired print server’s subnet mask address. This value is ignored if
the IP protocol is not set to permanent.

Commands

Details

setvar

This command instructs the printer to change the internal wired print servers subnet mask.
Format: ! U1 setvar "internal_wired.ip.netmask" "value"
Values: Any valid subnet mask.
Default: "255.255.255.0"
This command instructs the printer to respond with internal wired print servers subnet mask.

getvar

Format: ! U1 getvar "internal_wired.ip.netmask"
Example: This setvar example shows the value set to "255.255.255.0".
! U1 setvar "internal_wired.ip.netmask" "255.255.255.0"
When the setvar value is set to "255.255.255.0", the getvar result is "255.255.255.0".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
internal_wired.ip.port

internal_wired.ip.port
This printer setting refers to the internal wired print servers port number that the TCP print service is
listening on. Normal TCP communications from the host should be directed to this port.

Commands

Details

setvar

This command instructs the printer to set the internal wired print servers TCP/UDP port number.
Format: ! U1 setvar "internal_wired.ip.port" "value"
Values: 1 - 65535 (excluding any ports currently used by other services, such as 21, 23, 80, and
515).
Default: "9100"
This command instructs the printer to respond with the internal wired printer servers TCP/UDP
port number.

getvar

Format: ! U1 getvar "internal_wired.ip.port"
Example: This setvar example shows the value set to "9100".
! U1 setvar "internal_wired.ip.port" "9100"
When the setvar value is set to "9100", the getvar result is "9100".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1039

1040

SGD Printer Commands
internal_wired.ip.port_alternate

internal_wired.ip.port_alternate
This command sets the port number of the alternate port.

Note • Print servers supporting this command will monitor both the primary port and the alternate
port for connections at the same time.

Commands

Details

setvar

This command sets the alternate port for the print server.
Format: ! U1 setvar "internal_wired.ip.port_alternate" "value"
Values: Any valid TCP port address.
Default: "9100"
This command returns the current alternate port setting.

getvar

Format: ! U1 setvar "internal_wired.ip.port_alternate"
Values: The current port setting.

Supported Devices
• iMZ 220, iMZ 320
• QLn220, QLn320, QLn420
• ZD410, ZD420, ZD500
• ZQ510, ZQ520
• ZR338, ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
internal_wired.ip.port_json_configinternal_wired.ip.port_json_config

internal_wired.ip.port_json_config
This command determines the TCP port number to listen on for JSON configuration packets.

Commands

Details

setvar

This command sets the TCP port number to listen on for JSON configuration packets.
Format: ! U1 setvar "internal_wired.ip.port_json_config" "value"
Values:
• 0 = disable the port
• 1-65535 = Port number to listen on.
Note • Ports that are already is use or the standard netowrk ports are invalid values.
Default: "9200"
This command retrieves the port number.

getvar

Format: ! U1 getvar "internal_wired.ip.port_json_config"

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Type

setvar,getvar

Example: This example sets the port value to listen on as 1234.

! U1 setvar "internal_wired.ip.port_json_config" "1234"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1041

1042

SGD Wired Commands
internal_wired.ip.protocol

internal_wired.ip.protocol
This command configures the IP addressing method used by the internal wired print server.

Commands

Details

setvar

This command instructs the printer to configure the IP addressing method used by the internal
wired print server.
Format:

! U1 setvar "internal_wired.ip.protocol" "value"

Values:
"bootp" = uses the standard bootp addressing method to obtain an IP address and

configuration

"dhcp" = uses the standard dhcp addressing method to obtain an IP address and

configuration for a server specified period of time

"rarp" = uses the standard rarp addressing method to obtain an IP address
"glean" = uses the IP address from a PING packet that is sent to its hardware

address (unicast address)

“permanent” = uses static values assigned through other commands
"all" = tries all of the dynamic addressing methods, not permanent, to obtain an IP

address

Default: "all"
This command returns the IP addressing method used by the internal wired print server.

getvar

Format: ! U1 getvar "internal_wired.ip.protocol"
Example: In this example, the setvar result is the current programming language that the printer is
using.
! U1 setvar "internal_wired.ip.protocol" "bootp"
What the setvar value is set to is the getvar result. In this example, the getvar result is "bootp".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
internal_wired.ip.timeout.enable

internal_wired.ip.timeout.enable
This network setting refers to enabling the connection timeout on the internal wired print server. For
this to take effect, the print server must be reset.

Commands

Details

setvar

This command instructs the printer to enable or disable the timeout checking on the internal wired
print server.
Format: ! U1 setvar "internal_wired.ip.timeout.enable" "value"
Values:
"off" = turns off the connection checking
"on" = turns on the connection checking
Default: "on"
This command instructs the printer to return whether the timeout checking is enabled on the
internal wired print server.

getvar

Format: ! U1 getvar "internal_wired.ip.timeout.enable"
Example: This setvar example shows the value set to "on".
! U1 setvar "internal_wired.ip.timeout.enable" "on"
When the setvar value is set to "on", the getvar result is "on".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1043

1044

SGD Wired Commands
internal_wired.ip.timeout.value

internal_wired.ip.timeout.value
This network setting refers to the number of seconds before the connection times out for the internal
wired print server. For this to take effect, the print server must be reset.

Command
s

Details

setvar

This command instructs the printer to set the time of the internal wired print server, in seconds,
before the connection times out.
Format: ! U1 setvar "internal_wired.ip.timeout.value" "value"
Values: "1" through "3600"
Default: "300"

getvar

This command instructs the printer to respond with the time of the internal wired print server, in
seconds, before the connection times out.
Format: ! U1 getvar "internal_wired.ip.timeout.value"
Example: This setvar example shows the value set to "300".
! U1 setvar "internal_wired.ip.timeout.value" "300"
When the setvar value is set to "300", the getvar result is "300".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
internal_wired.ip.wins.addr

internal_wired.ip.wins.addr
Sets or returns the curent WINS server address. If WinsAddressing is DHCP, then this will
automatically be filled by the DHCP server.

Commands

Details

setvar

Format: ! U1 setvar "internal_wired.ip.wins.addr" "value"
Values: a valid WINS IP address.
Default: "0.0.0.0"
Format: ! U1 getvar "internal_wired.ip.wins.addr"

getvar

Result: the current WINS server address

Supported Devices
• 140XiIIIPlus, 170XiIIIPlus, 170XiIIIPlus,
220XiIIIPlus
• 170Xi4, 220Xi4

• S4M
• Z4MPlus, Z6MPlus
• ZD410, ZD420

• GK420d, , GK420t, GK888t
• GT800 (ZPL)

• ZD500
• ZE500

• GX420d, GX420t, GX430t

• ZM400, ZM600

• HC100

• ZQ510, ZQ520

• iMZ220, iMZ320

• ZR338

• KR403

• ZR628, ZR638

• LP 2824 Plus

• ZT210, ZT220, ZT230

• QLn220, QLn320, QLn420, QL420+

• ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1045

1046

SGD Wired Commands
internal_wired.ip.wins.permanent_source

internal_wired.ip.wins.permanent_source
Specifies if the WINS address will be permanent or set via DHCP.

Commands

Details

setvar

Format: ! U1 setvar "internal_wired.ip.wins.permanent_source" "value"
Values:
"off" = use DHCP-assigned WINS address
"on" = use currently stored WINS address

The WINS address can be set using the interface.network.active.wins_address
command.
Default: "off"
Format: ! U1 getvar "internal_wired.ip.wins.permanent_source"

getvar

Supported Devices
• 140XiIIIPlus, 170XiIIIPlus, 170XiIIIPlus,
220XiIIIPlus
• 170Xi4, 220Xi4

• S4M
• Z4MPlus, Z6MPlus
• ZD410, ZD420

• GK420d, , GK420t, GK888t
• GT800 (ZPL)

• ZD500
• ZE500

• GX420d, GX420t, GX430t

• ZM400, ZM600

• HC100

• ZQ510, ZQ520

• iMZ220, iMZ320

• ZR338

• KR403

• ZR628, ZR638

• LP 2824 Plus

• ZT210, ZT220, ZT230

• QLn220, QLn320, QLn420, QL420+

• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
internal_wired.mac_addr

internal_wired.mac_addr
This command retrieves the MAC address of the internal wired print server.

Commands

Details

getvar

This command instructs the printer to respond with the MAC address of the internal wired print
server.
Format: ! U1 getvar "internal_wired.mac_addr"
Example: In this example, the getvar result is the MAC address of the internal wired print server.
! U1 getvar "internal_wired.mac_addr"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1047

1048

SGD Wired Commands
internal_wired.mac_raw

internal_wired.mac_raw
This command identifies the RAW MAC address of the internal wired print server. The raw mac
address is the mac address without the colons (":").

Commands

Details

getvar

This command retrieves the RAW MAC address of the internal wired print server.
Format: ! U1 getvar "internal_wired.mac_raw"

Supported Devices
• ZM400/ZM600
• RZ400/RZ600
Example: In this example, the getvar retrieves the RAW MAC address of the internal wired print
server.
! U1 getvar "internal_wired.mac_raw"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wired Commands
internal_wired.mac_raw

Notes • ____________________________________________________________________

__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________

1/31/18

Programming Guide

P1099958-001

1049

1050

SGD Wired Commands
internal_wired.mac_raw

P1099958-001

Programming Guide

1/31/18

SGD Wireless
Commands

This chapter provides a high-level overview of the wireless Set / Get / Do (SGD) commands and
details on each SGD command. For printer support of these SGD commands, see SGD Command
Support on page 1393.

SGD commands are available in printers with the following firmware versions or later:
•
•
•
•
•
•

•
•
•
•
•
•

V60.16.2Z or later
V60.15.xZ or later
V50.15.xZ or later
V61.15.xZ or later
V56.15.xZ or later
V53.16.x or later

V53.15.2Z or later
R53.16.3Z or later
R60.15.8Z or later
R62.15.8Z or later
R63.15.8Z or later
R65.15.8Z or later

Note • The commands listed in this chapter are for use with the Wireless Print Server and
Wireless Plus Print Server, when used with firmware version V60.15.x, V50.15.x, or later.

Important • These are important points to note when using ZPL and SGD commands:
•
•
•
•
•

SGD commands are case-sensitive.
ZPL and SGD commands should be sent to the printer as separate files.
Certain settings can be controlled by both ZPL and SGD. Configuration changes made in ZPL
can affect configuration changes made in SGD.
Changes made with one command type (ZPL or SGD) will affect the data returned to the host
in response to both ZPL and getvar commands. The command type (ZPL or SGD) that was
sent last determines the current setting.
Some RF cards do not support all of the SGD commands.

Important • These are important points to note when using a Zebra G-Series printer:
•

•

1/31/18

You can send instructions to the printer using multiple programming languages: EPL, ZPL, or
SGD. EPL and ZPL commands configure the printer, print labels, and get device status
information. SGD commands set and get configuration details. These three languages can be
used without the need to send the printer instructions to switch from one language to another.
EPL, ZPL, and SGD commands must be sent to the printer as separate files. They cannot be
used together in one format, or set of commands. For example, if you send a series of SGD
commands to the printer and they are followed by a printable format, this needs to be done
using separate files.

Programming Guide

P1099958-001

1052

SGD Wireless Commands
Overview

Overview
This section describes how and why to use the Set / Get / Do (SGD) commands. It also provides an
example of a typical command structure.

Note • SGD commands must be terminated by a carriage return or a space and line feed.
SGD commands are commands that allow you to configure all printers with firmware version
V60.15.x, V50.15.x, V61.15.x, V56.15.x, V53.15.xZ, or later. The printer performs the specified
function immediately after receiving the command. The commands are:

• setvar
• getvar
• do

setvar Command
Setvar commands:
• are used to configure printer settings to specific values by setting them in the printer
• must be terminated by a space character or a CR/ LF (0x0D, 0x0A)

Important • The setvar command and attributes must be specified in lower case.

getvar Command
Getvar commands:
• are used to get the current value of the printer settings
• must be terminated by a space character or CR/LF (0x0D, 0x0A)
The printer responds with the printer setting of “?” if:
• the printer setting does not exist (usually due to incorrect spelling of the printer setting)
• it has not been configured yet

Important • The printer settings and attributes must be specified in lower case.

do Command
Do commands:
• are used to instruct the printer to perform predefined actions
• must be terminated by a space character or a CR/LF (0x0D, 0x0A)
Some Do commands require additional settings which must be enclosed in double quotes.

Important • The values must be specified in lower case.

P1099958-001

Programming Guide

1/31/18

SGD Wireless Commands
Command Structure

Command Structure
It is important to understand the structure of the command and its components. A command
structure illustration is provided for each command in this guide.
Example: This is an example of a command structure illustration:

1
2
3

! U1 setvar

"ip.addr"

"value"

1

2

3

Command—always preceded with an exclamation point (!) and must be specified in
lower case. A space resides between the !and U1 and between U1 and the command
(setvar or getvar).
Attribute—always in double quotes and must be specified in lower case.
Chosen value—always in double quotes. Only applicable for setvar and do.

This command must be terminated by a space character or a CR/ LF (0x0D, 0x0A).

How to Send Multiple SGD Commands
For any getvar, setvar, or do command, if you issue the syntax without the "1" and use the END
command followed by a space, multiple SGD commands are sent simultaneously.
Example: This syntax shows how you can send multiple getvar commands:

1

! U getvar "ip.telnet.enable"
getvar "ip.dhcp.enable"

2

getvar "ip.dhcp.cid_prefix"
END

3

1
2
3

1/31/18

The command portion of the string does not use the "1" after the "! U".
Commands issued after the first command do not require the "! U".
The string of commands is terminated by the word "END" with a space after the word,
and by a carriage return/ line feed.

Programming Guide

P1099958-001

1053

1054

SGD Wireless Commands
bluetooth.address

bluetooth.address
This command returns the printer’s Bluetooth device address.

Commands

Details

getvar

This command retrieves the printer’s Bluetooth address.
Format: ! U1 getvar "bluetooth.address"
Example: In this example, the getvar command causes the printer to return the printer’s Bluetooth
address.

! U1 getvar "bluetooth.address"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
bluetooth.afh_map

bluetooth.afh_map
Sets or retrieves the default AFH (adaptive frequency hopping) channel map (Bluetooth radios 1.2
and later); 20 bytes.

Commands

Details

setvar

Selectively enables or disables individual Bluetooth channels for use when AFH mode is set to
"on".
Format: ! U1 setvar "bluetooth.afh_map" "value"
Values: 20-byte string of hexadecimal characters
Default: "7FFFFFFFFFFFFFFFFFFF"
Retrieves default AFH channel map.

getvar

Format: ! U1 getvar "bluetooth.afh_map"
Example: This setvar example shows the value set to "7FFFFFFFFFFFFFFFFFFF".
! U1 setvar "bluetooth.afh_map" "7FFFFFFFFFFFFFFFFFFF"
What the setvar value is set to is the getvar result. In this example, the getvar result is
"7FFFFFFFFFFFFFFFFFFF".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1055

1056

SGD Wireless Commands
bluetooth.afh_map_curr

bluetooth.afh_map_curr
This command retrieves the current AFH (adaptive frequency hopping) channel map (Bluetooth
radios 1.2 and later).

Commands

Details

getvar

This command retrieves the current AFH channel map.
Format: ! U1 getvar "bluetooth.afh_map_curr"
Example: In this example, the getvar command causes the printer to retrieve the current AFH
channel map.

! U1 getvar "bluetooth.afh_map_curr"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
bluetooth.afh_mode

bluetooth.afh_mode
This command sets or retrieves AFH (adaptive frequency hopping) mode setting (Bluetooth radios
1.2 and later).

Commands

Details

setvar

This command enables and disables AFH mode.
Format: ! U1 setvar "bluetooth.afh_mode" "value"
Values:
"on" = enables AFH mode
"off" = disables AFH mode
Default: "off"
This command retrieves the current setting of the AFH mode.

getvar

Format: ! U1 getvar "bluetooth.afh_mode"
Example: This setvar example shows the value set to "on".
! U1 setvar "bluetooth.afh_mode" "on"
What the setvar value is set to is the getvar result. In this example, the getvar result is "on".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1057

1058

SGD Wireless Commands
bluetooth.authentication

bluetooth.authentication
This command sets or retrieves Bluetooth authentication mode and works in combination with the
bluetooth.bluetooth_pin.

Commands

Details

setvar

This command enables and disables Bluetooth authentication.
Format: ! U1 setvar "bluetooth.authentication" "value"
Values:
"off" = disables authentication (can connect to master device without PIN)
"setpin" = enables authentication (requires PIN or passkey to connect to a master

device)

Default: "off"
This command retrieves the current Bluetooth authentication mode.

getvar

Format: ! U1 getvar "bluetooth.authentication"
Example: This setvar example shows the value set to "setpin".
! U1 setvar "bluetooth.authentication" "setpin"
What the setvar value is set to is the getvar result. In this example, the getvar result is "setpin".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
bluetooth.bluetooth_pin

bluetooth.bluetooth_pin
This command is used to connect to the printer only when the command
bluetooth.authentication is set to "setpin".

Commands

Details

setvar

This command sets the Bluetooth pin value.
Format: ! U1 setvar "bluetooth.bluetooth_pin" "value"
Values: Any text string up to 10 characters
Default: ""
This command retrieves the current Bluetooth pin.

getvar

Format: ! U1 getvar "bluetooth.bluetooth_pin"
Example: This setvar example shows the value set to "1234567890".
! U1 setvar "bluetooth.bluetooth_pin" "1234567890"
What the setvar value is set to is the getvar result. In this example, the getvar result is
"1234567890".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1059

1060

SGD Wireless Commands
bluetooth.clear_bonding_cache

bluetooth.clear_bonding_cache
Deletes all information related to previous Bluetooth pairing events from the printer.

Commands

Details

do

Format: ! U1 do "bluetooth.clear_bonding_cache"
Values: NA
Default: NA

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
bluetooth.date

bluetooth.date
This command shows the release date of the Bluetooth module.
getvar

Commands

Details

getvar

This command shows the release date of the Bluetooth module.
Format: ! U1 getvar "bluetooth.date"
Example: In this example, the getvar command returns the release date of the Bluetooth module.
! U1 getvar "bluetooth.date"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1061

1062

SGD Wireless Commands
bluetooth.discoverable

bluetooth.discoverable
This command enables or disables the Bluetooth discoverable mode.

Commands

Details

setvar

This command enables or disables the Bluetooth discoverable mode.
Format: ! U1 setvar "bluetooth.discoverable" "value"
Values:
"on" = enables Bluetooth discoverable mode
"off" = disables Bluetooth discoverable mode
Default: "on"
This command retrieves the current Bluetooth discoverable mode.

getvar

Format: ! U1 getvar "bluetooth.discoverable"
Example: This setvar example shows the value set to "on".
! U1 setvar "bluetooth.discoverable" "on"
What the setvar value is set to is the getvar result. In this example, the getvar result is "on".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
bluetooth.enable

bluetooth.enable
This command enables or disables the Bluetooth radio.

Commands

Details

setvar

This command enables or disables the Bluetooth radio.
Format: ! U1 setvar "bluetooth.enable"
Values:
"on" = enables the Bluetooth radio
"off" = disables the Bluetooth radio
Default: "on"
This command retrieves the current status of the Bluetooth radio.

getvar

Format: ! U1 getvar "bluetooth.enable"
Example: This setvar example shows the value set to "on".
! U1 setvar "bluetooth.enable" "on"
What the setvar value is set to is the getvar result. In this example, the getvar result is "on".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1063

1064

SGD Wireless Commands
bluetooth.enable_reconnect

bluetooth.enable_reconnect
Enables the Bluetooth reconnect feature required by iOS devices.

Commands

Details

setvar

Format:

! U1 setvar "bluetooth.enable_reconnect" "value"

Values:
"off" = disables the command
"iOS_only" = enables the command to work with iOS devices only
Format: ! U1 getvar "bluetooth.enable_reconnect"

getvar

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZQ510™, ZQ520™
• ZR338™, ZR628™, ZR638™

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
bluetooth.friendly_name

bluetooth.friendly_name
This command sets the friendly name, which is used during service discovery. For changes to take
effect, you must power cycle the printer or issue the device.reset command. If
bluetooth.friendly_name is not set by you, it will default to the printer serial number.

Commands

Details

setvar

This command sets the Bluetooth discoverable mode.
Format: ! U1 setvar "bluetooth.friendly_name" "value"
Values: Any text string up to 17 characters
This command retrieves the current Bluetooth discoverable mode.

getvar

Format: ! U1 getvar "bluetooth.friendly_name"
Example: This setvar example shows the value set to "1234567".
! U1 setvar "bluetooth.friendly_name" "1234567"
What the setvar value is set to is the getvar result. In this example, the getvar result is
"1234567".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1065

1066

SGD Wireless Commands
bluetooth.json_config_channel_enable

bluetooth.json_config_channel_enable
Enables or disables the Bluetooth JSON configuration channel. Changes to this command setting
only take effect when the printer is reset or power cycled.

Note • The JSON config channel will stop being advertised when there is no connection to the
JSON channel and there is no connection on the main SPP channel.

Important • All Bluetooth devices must first make an SPP connection before being able to
make the JSON channel connection to a printer.
Format: ! U1 setvar "bluetooth.json_config_channel_enable" "value"

setvar

Values: "on" - the channel is advertised and available for use only when the main serial port
protocol (SPP) channel is connected.
"off" - the channel is not advertised or available for use.
Default: "on"

Example: ! U1 setvar "bluetooth.json_config_channel_enable" "off"
Format: ! U1 getvar "bluetooth.json_config_channel_enable"

getvar

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR338
• ZR628, ZR638
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
bluetooth.le.controller_mode

bluetooth.le.controller_mode
For printers that support both Bluetooth Classic and Bluetooth Low-Energy mode, this command
controls the mode of operation.

Commands

Details

setvar

Format: ! U1 setvar "bluetooth.le.controller_mode" "value"
Values: "both" = the Bluetooth radio operates in both low energy and classic mode
"le" = the Bluetooth radio operates in low energy mode
"classic" = the Bluetooth radio operates in the classic mode
Default: "both"
Format: ! U1 getvar "bluetooth.le.controller_mode"

getvar

Supported Devices
• ZQ510, ZQ520

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1067

1068

SGD Wireless Commands
bluetooth.le.minimum_security

bluetooth.le.minimum_security
Determines the minimum device-level security settings the printer will use to connect for Bluetooth
Low-Energy (LE) connections.

Commands

Details

setvar

Format: ! U1 setvar "bluetooth.le.minimum_security" "value"
Values: "none" = security is not required unless the particular Bluetooth LE service or
characteristic being accessed requires security.
For all other choices, all services will require pairing and apply some form of security.
"unauth_key_signing" = (un)authenticated pairing and signing keys are required
"auth_key_signing" = authenticated pairing and signing keys are required.
"unauth_key_encrypt" = (un)authenticated pairing and encryption are required.
"auth_key_encrypt" = authenticated pairing and encryption are required.
Default: "none" - if the printer has a Bluetooth LE radio.
If the printer does not have a Bluetooth LE radio installed, there is no default value.
Format: ! U1 getvar "bluetooth.le.minimum_security"
If the printer does not have a Bluetooth LE radio installed, the printer will return an empty string.

getvar

Supported Devices
• ZQ510, ZQ520

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
bluetooth.local_name

bluetooth.local_name
This command retrieves the local name that is provided during service discovery.
getvar

Commands

Details

getvar

This command retrieves the local name that is provided during service discovery.
Format: ! U1 getvar "bluetooth.local_name"
Example: In this example, the getvar command returns the local name that is provided during
service discovery.
! U1 getvar "bluetooth.local_name"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1069

1070

SGD Wireless Commands
bluetooth.minimum_security_mode

bluetooth.minimum_security_mode
This printer setting parameter sets the Bluetooth Minimum Security mode. Minimum Security Mode
provides for three levels of security, depending on the printer radio version and printer firmware: “1”,
“2”, and “3”.

Important • This feature is available in printers with Bluetooth® radio version 2.0 or higher.

Commands

Details

setvar

Sets the Bluetooth Minimum Security mode
Format: ! U1 setvar "bluetooth.minimum_security_mode" "value"
Values:
"1" = Security mode 1 - the printer will:

• be discoverable
• not require a PIN to connect to
"2" = the printer will:

• switch to bluetooth.authentication = “setpin”

(Connecting device must provide the printer’s bluetooth.bluetooth_pin),
• switch to Bluetooth.encryption = “on”, and
• use existing Bluetooth.discoverable setting
"3" = Link Level Enforced Security - the printer will:

• switch to bluetooth.authentication = “setpin”

(Connecting device must provide the printer’s bluetooth.bluetooth_pin)
• switch to bluetooth.encryption = “on”
• switch to bluetooth.discoverable = “off”
• only connect to devices which use Link Level Enforced Security
Default: "1"
Retrieves the current Bluetooth Minimum Security Mode.

getvar

Format: ! U1 getvar "bluetooth.minimum_security_mode"

Supported Devices
• EZ320™
• Link-OS printers with firmware Vxx.19.7Z and later.
Example: This setvar example shows the value set to "2".
! U1 setvar "bluetooth.minimum_security_mode" "2"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
bluetooth.radio_auto_baud

bluetooth.radio_auto_baud
This command retrieves the Bluetooth radio data rate.
getvar

Commands

Details

getvar

This command retrieves Bluetooth radio data rate.
Format: ! U1 getvar "bluetooth.radio_auto_baud"
Example: In this example, the getvar retrieves the short Bluetooth address.
! U1 getvar "bluetooth.radio_auto_baud"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1071

1072

SGD Wireless Commands
bluetooth.radio_version

bluetooth.radio_version
This command returns the version of the currently installed Bluetooth radio.
getvar

Commands

Details

getvar

This command returns the version of the currently installed Bluetooth radio.
Format: ! U1 getvar "bluetooth.radio_version"
Example: In this example, the getvar command returns the currently installed Bluetooth radio.
! U1 getvar "bluetooth.radio_version"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
bluetooth.short_address

bluetooth.short_address
This command shortens the Bluetooth address by removing the colons (":").
getvar

Commands

Details

getvar

This command retrieves the shortened Bluetooth address.
Format: ! U1 getvar "bluetooth.short_address"
Example: In this example, the getvar retrieves the short Bluetooth address.
! U1 getvar "bluetooth.short_address"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1073

1074

SGD Wireless Commands
bluetooth.version

bluetooth.version
This command returns the Bluetooth library version number.
getvar

Commands

Details

getvar

This command returns the Bluetooth library version number.
Format: ! U1 getvar "bluetooth.version"
Example: In this example, the getvar command returns the Bluetooth library version number.
! U1 getvar "bluetooth.version"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
card.mac_addr

card.mac_addr
This command retrieves the MAC address of the wireless radio card.
getvar

Commands

Details

getvar

This command instructs the printer to respond with the MAC address.
Format: ! U1 getvar "card.mac_addr"
Example: In this example, the getvar result is the MAC address for the wireless radio card.
! U1 getvar "card.mac_addr"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1075

1076

SGD Wireless Commands
card.inserted

card.inserted
This command indicates whether the wireless radio card is or is not inserted.
getvar

Commands

Details

getvar

This command instructs the printer to respond with the wireless radio card status. It’s inserted or
it’s not inserted.
Format: ! U1 getvar "card.inserted"
Example: In this example, the getvar result is "Inserted".
! U1 getvar "card.inserted"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.active_network

ip.active_network
This command displays if the printer is actively connected to wireless, external wired, or internal
wired.
getvar

Commands

Details

getvar

This command instructs the printer to respond with what the printer is currently connected to
internal wired, wireless, external wired, or unknown. Table 31 provides details on the potential
return values.
Format:

! U1 getvar "ip.active_network"

Example: In this example, the getvar will return the current active network the printer is connected
to.
! U1 getvar "ip.active_network"

Table 31 • Printer Responses
Return Values

Details

“internal wired”

This is the return value when an internal wired device is detected.

“wireless”

This is the return value when a wireless device is detected.

“external wired”

This is the return value when an external wired device is detected.

“unknown”

This is the return value:
• if the printer has not established a network connection on any of
the devices
• if you don't have any of the network devices plugged in
• if the printer is still trying to establish a connection (i.e. on wireless
it is going through the association process).

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1077

1078

SGD Wireless Commands
ip.addr

ip.addr
This command allows you to get or set the printer’s IP address.

Important • For a set IP address to take affect, the IP protocol must be set to permanent and
the print server must be reset.

Commands

Details

setvar

This command instructs the printer to change its current IP address upon powering the printer on.
Format: ! U1 setvar "ip.addr" "value"
Values: any valid IP address
Default: "0.0.0.0"
This command instructs the printer to respond with its current IP address.

getvar

Format: ! U1 getvar "ip.addr"

Note • The setvar value of this command can be affected by the ip.dhcp.enable command.
Example: This setvar example shows the value set to "10.14.4.235".
! U1 setvar "ip.addr" "10.14.4.235"
What the setvar value is set to is the getvar result. In this example, the getvar result is
"10.14.4.235".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.arp_interval

ip.arp_interval
This printer setting allows you to specify the ARP (Address Resolution Protocol) interval or the ARP
cache time out.

Commands

Details

setvar

This command instructs the printer to change the ARP interval or the ARP cache time out.
Format: ! U1 setvar "ip.arp_interval" "value"
Values: 0 - 30
Default: "0"
This command instructs the printer to respond with the ARP interval or the ARP cache time out
value in seconds.

getvar

Format: ! U1 getvar "ip.arp_interval"
Example: This setvar example shows the value set to "0".
! U1 setvar "ip.arp_interval" "0"
What the setvar value is set to is the getvar result. In this example, the getvar result is "0".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1079

1080

SGD Wireless Commands
ip.bootp.enable

ip.bootp.enable
This printer setting turns BOOTP on or off. BOOTP is a method for acquiring an IP address,
netmask, and gateway automatically on printer power-up. It requires a BOOTP server on the local
network.

Note • If you are using static IP addressing, the IP protocol must be set to permanent.

Commands

Details

setvar

This command instructs the printer to turn BOOTP on or off.
Format: ! U1 setvar "ip.bootp.enable" "value"
Values:
"off" = printer does not use BOOTP to get the IP address
"on" = printer uses BOOTP to get the IP address
Default: "on"
This command instructs the printer to respond with the current BOOTP setting.

getvar

Format: ! U1 getvar "ip.bootp.enable"
Example: This setvar example shows the value set to "on".
! U1 setvar "ip.bootp.enable" "on"
When the setvar value is set to "on", the getvar result is "on".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.dhcp.arp_verify

ip.dhcp.arp_verify
This command configures the print server to send out an ARP request during the DHCP address
negotiation. This is used to verify if the IP address received from the DHCP server is in use.
• If an ARP reply is received, a DHCP DECLINE message is sent to the DHCP server telling it
that the received address cannot be used and then the normal DHCP procedure is restarted.
• If no ARP reply is received the DHCP address is used.

Commands

Details

setvar

This command instructs the printer to turn on ARP verify.
Format: ! U1 setvar "ip.dhcp.arp_verify" "value"
Values:
"on"
"off"
Default: "off"
This command returns whether the printer will send the ARP request during the DHCP
negotiation.

getvar

Format: ! U1 getvar "ip.dhcp.arp_verify"
Example: This setvar example shows the value set to "on".
! U1 setvar "ip.dhcp.arp_verify" "on"

Supported Devices ZT200 Series
Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1081

1082

SGD Wireless Commands
ip.dhcp.auto_provision_enable

ip.dhcp.auto_provision_enable
This command prepares the printer to receive Weblink settings from the DHCP server. These
settings are used to allow the printer to connect to on-premise or web-based servers.
If DHCP receives option 43 in the format of "10642  < auto provision
settings>” and the Client is not already configured, the client will use the configuration to connect
to the server.
Using this feature requires configuring your DHCP server to send option 43 information during
address assignment. The feature allows the printer to obtain the settings used to control Cloud
Connect weblink connections or Mirror events as part of receiving a DHCP assigned IP address.
This requires that DHCP option 60 is not empty and that ip.dhcp.auto_provision_enable is set
to "on".
The package of Cloud Connect/weblink information sent from the DHCP server in the Option 43
response can include the:
• Server address
• Authentication server name
• User name and password for proxy logins
The package of Mirror information sent from the DHCP server in the Option 43 packet can include
the:
• Server address
• Mirror path
• Mirror feedback path
• Mirror appl path
• Mirror mode

Commands

Details

setvar

This command enables or disables the DHCP auto provision feature of the printer.
Format: ! U1 setvar "ip.dhcp.auto_provision_enable" "value"
Values:
"on" = enabled
"off” = disabled
Default: "off”
This command retrieves the current value of on or off for the DHCP auto provision feature.

getvar

Format: ! U1 getvar "ip.dhcp.auto_provision_enable"

Supported Devices
• iMZ™ series
• QLn™ series
• ZT200™ series
• ZT400™ series

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.dhcp.cache_ip

ip.dhcp.cache_ip
This command enables or disables the IP caching.

Commands

Details

setvar

This command sets the status of the IP cache.
Format: ! U1 setvar "ip.dhcp.cache_ip" "value"
Values:
"on" = enabled
"off” = disabled
Default: "off”
This command retrieves the status of the IP cache.

getvar

Format: ! U1 getvar "ip.dhcp.cache_ip"
Example: This setvar example shows the value set to "off”.
! U1 setvar "ip.dhcp.cache_ip" "off”
When the setvar value is set to "off", the getvar result is "off".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1083

1084

SGD Wireless Commands
ip.dhcp.cid_all

ip.dhcp.cid_all
This printer setting defines the entire client identifier (DHCP option 61) if the DHCP is enabled and
"ip.dhcp.cid_type" is set to "0", or "2". The MAC address is used if the type is set to "1".

Commands

Details

setvar

This command instructs the printer to change the CID prefix and suffix.
Format: ! U1 setvar "ip.dhcp.cid_all" "value"
Values: A maximum length of 60 characters if the CID type is ASCII, or 120 characters if the CID
type is hexadecimal.
Default: ""
This command instructs the printer to respond with the client identifier prefix and suffix.

getvar

Format: ! U1 getvar "ip.dhcp.cid_all"
Example: This setvar example shows the value set to "printer".
! U1 setvar "ip.dhcp.cid_all" "printer"
What the setvar value is set to is the getvar result. In this example, the getvar result is
"printer".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.dhcp.cid_enable

ip.dhcp.cid_enable
This command determines if DHCP (option 61) is turned on or off.

Commands

Details

setvar

This command instructs the printer to set the status of the client identifier.
Format: ! U1 setvar "ip.dhcp.cid_enable" "value"
Values:
"off" = client identifier is turned off
"on" = client identifier is turned on
Default: "off"
This command instructs the printer to respond with the status of the client identifier.

getvar

Format: ! U1 getvar "ip.dhcp.cid_enable"
Example: This setvar example shows the value set to "off".
! U1 setvar "ip.dhcp.cid_enable" "off"
What the setvar value is set to is the getvar result. In this example, the getvar result is "off".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1085

1086

SGD Wireless Commands
ip.dhcp.cid_prefix

ip.dhcp.cid_prefix
This printer setting defines the prefix to be prepended to the DHCP client identifier (option 61) when
DHCP is enabled and "ip.dhcp.cid_type" is set to "0"or "2".

Commands

Details

setvar

This command instructs the printer to change the CID prefix.
Format: ! U1 setvar "ip.dhcp.cid_prefix" "value"
Values: Any text string up to 10 characters if the CID type is ASCII, or 20 characters if the CID
type is hexadecimal.
Default: ""
This command instructs the printer to respond with the client identifier prefix.

getvar

Format:

! U1 getvar "ip.dhcp.cid_prefix"

Example: This setvar example sets the value to "ZEB".
! U1 setvar "ip.dhcp.cid_prefix" "ZEB"
What the setvar value is set to is the getvar result. In this example, the getvar result is "ZEB".
The next time the printer sends a DHCP request, if ip.dhcp.cid_type is “0”, the client identifier sent
will be prefixed with the string "ZEB". For example, if ip.dhcp.cid_value is “PRT001”, the actual client
identifier sent will be “ZEBPRT001”

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.dhcp.cid_suffix

ip.dhcp.cid_suffix
This printer setting defines the unique suffix to be used as the client identifier (DHCP option 61) if
DHCP is enabled and "ip.dhcp.cid_type" is set to "0" or "2".

Commands

Details

setvar

This command instructs the printer to change the CID value.
Format: ! U1 setvar "ip.dhcp.cid_suffix" "value"
Values: The maximum length of a value allowed is 60 ASCII characters when the CID type is
ASCII, or 120 hexadecimal values when the CID type is hexadecimal.
Default: ""
This command instructs the printer to respond with the client identifier suffix.

getvar

Format: ! U1 getvar "ip.dhcp.cid_suffix"
Example: This setvar example shows the value set to "printer".
! U1 setvar "ip.dhcp.cid_suffix" "printer"
What the setvar value is set to is the getvar result. In this example, the getvar result is
"printer".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1087

1088

SGD Wireless Commands
ip.dhcp.cid_type

ip.dhcp.cid_type
This printer setting defines the type of client identifier (DHCP option 61) that will be sent if DHCP is
enabled. A value of "1" means the type of "Ethernet" and the printer’s MAC address will be used. A
value of "0" or "2" means the client identifier sent will be "ip.dhcp.cid_prefix" concatenated
with "ip.dhcp.cid_suffix".

Commands

Details

setvar

This command instructs the printer to set the Client Identifier type.
Format: ! U1 setvar "ip.dhcp.cid_type" "value"
Values:
"0"
"1"
"2"
Default:

= ASCII string
= wireless radio card’s MAC address
= HEX value

"1"

This command instructs the printer to respond with the client identifier type.

getvar

Format: ! U1 getvar "ip.dhcp.cid_type"
Example: This setvar example shows the value set to "1".
! U1 setvar "ip.dhcp.cid_type" "1"
When the setvar value is set to "1", the getvar result is "1".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.dhcp.cid_value

ip.dhcp.cid_value
This parameter defines the unique value to be used as the client identifier (option 61) if DHCP is
enabled and “ip.dhcp.cid_type” is “1”.

Note • This parameter is only applicable if ip.dhcp.cid_enable is set to “on”.

Commands

Details

setvar

This command instructs the printer to change the CID value.
Format: ! U1 setvar "ip.dhcp.cid_value" "value"
Values: Any text string up to 20 characters in lenth.
Default:
If ip.dhcp.cid_type is set to:

•

"0" — the default is the printer’s friendly name (see device.friendly_name

•

"1" — the default is the printer’s MAC address.

on page 647).

This command instructs the printer to respond with the client identifier value.

getvar

Format: ! U1 getvar "ip.dhcp.cid_value"
Example: This setvar example changes the cid value to "PRT001".
! U1 setvar "ip.dhcp.cid_value" "PRT001"
The next time the printer sends a DHCP request, if ip.dhcp.cid_type is "0", the client identifier sent
will be ip.dhcp.cid_prefix plus "PRT001". For example, if ip.dhcp.cid_prefix is “ZEB”, the actual
client identifier sent will be“ZEBPRT001”

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1089

1090

SGD Wireless Commands
ip.dhcp.enable

ip.dhcp.enable
This printer setting turns DHCP on or off. DHCP is a method for acquiring an IP address, netmask,
and gateway automatically on printer power-up. It requires a DHCP server on the local network.

Note • If you are using static IP addressing, the IP protocol must be set to permanent.

Commands

Details

setvar

This command instructs the printer to turn DHCP on or off.
Format: ! U1 setvar "ip.dhcp.enable" "value"
Values:
"off" = printer does not use DHCP to get the IP address
"on" = printer uses DHCP to get the IP address
Default: "on"
This command instructs the printer to respond with the DHCP status.

getvar

Format: ! U1 getvar "ip.dhcp.enable"
Example: This setvar example shows the value set to "on".
! U1 setvar "ip.dhcp.enable" "on"
When the setvar value is set to "on", the getvar result is "on".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.dhcp.lease.last_attempt

ip.dhcp.lease.last_attempt
This command retrieves the time from the DHCP server of when the last DHCP request was sent.
getvar

Commands

Details

getvar

This command retrieves the last time a DHCP request was sent.
Format: ! U1 getvar "ip.dhcp.lease.last_attempt"
Example: In this example, the getvar retrieves the last time a DHCP request was sent to the
wireless print server.
! U1 getvar "ip.dhcp.lease.last_attempt"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1091

1092

SGD Wireless Commands
ip.dhcp.lease.server

ip.dhcp.lease.server
This command retrieves the address of the server that provided the DHCP lease on the wireless
print server.
getvar

Commands

Details

getvar

This command retrieves the address of the server that provided the DHCP lease on the wireless
print server.
Format: ! U1 getvar "ip.dhcp.lease.server"
Example: In this example, the getvar retrieves the server that provided the DHCP lease on the
wireless print server.
! U1 getvar "ip.dhcp.lease.server"

"10.3.5.1"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.dhcp.lease.time_left

ip.dhcp.lease.time_left
This command retrieves the time left in the current DHCP lease on the wireless print server.
getvar

Commands

Details

getvar

This command retrieves the time left in the current DHCP lease on the wireless print server.
Format: ! U1 getvar "ip.dhcp.lease.time_left"
Example: In this example, the getvar retrieves the time left in the current DHCP lease on the
wireless print server.
! U1 getvar "ip.dhcp.lease.time_left"

"1192518"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1093

1094

SGD Wireless Commands
ip.dhcp.ntp.enable

ip.dhcp.ntp.enable
This command controls whether or not the printer retrieves the address of a Network Time Protocol
(NTP) server during DHCP address assignment.

Commands

Details

setvar

Format: ! U1 setvar "ip.dhcp.ntp.enable" "value"
Values:
"off" = does not request the NTP server address
"on" = requests the NTP server address
Default: "off"
Format: ! U1 getvar "ip.dhcp.ntp.enable"

getvar

Supported Devices
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.dhcp.ntp.received_servers

ip.dhcp.ntp.received_servers
Returns the list of Network Time Protocol (NTP) server IP Addresses received via DHCP.

Commands

Details

getvar

Format: ! U1 getvar "ip.dhcp.ntp.received_servers"
Values: A comma-separated list of IP address. The maximum number of servers listed will be
three (3).
Default: ""

Example: "10.4.3.24,172.30.16.52"
Supported Devices
• QLn220, QLn320, QLn420
• ZQ510, ZQ520
• ZR338
• ZR628, ZR638
• ZT210, ZT220, ZT230

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1095

1096

SGD Wireless Commands
ip.dhcp.option12

ip.dhcp.option12
This command specifies if the DHCP option 12 (host name) is on or off in the discovery packet that
is sent from the wireless print server.

Commands

Details

setvar

This command instructs the printer to set the DHCP option 12 (host name) in the discovery packet
that is sent from the wireless print server.
Format: ! U1 setvar "ip.dhcp.option12" "value"
Values:
"on" = turns on option 12
"off" = turns off option 12
Default: "on"
This command retrieves the status of the DHCP option 12 (host name) in the discovery packet
that is sent from the wireless print server.

getvar

Format: ! U1 getvar "ip.dhcp.option12"
Example: This setvar example shows the value set to "on".
! U1 setvar "ip.dhcp.option12" "on"
When the setvar value is set to "on", the getvar result is "on".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.dhcp.option12_format

ip.dhcp.option12_format
This command specifies the value which will be used for option 12 (host name) to be used in the
DHCP discovery packet of the wireless print server.

Commands

Details

setvar

This command instructs the printer to set the value which will be used for option 12 (host name) to
be used in the DHCP discovery packet of the wireless print server.
Format: ! U1 setvar "ip.dhcp.option12_format" "value"
Values: string
Default: ""
This command retrieves the value which will be used for option 12 (host name) to be used in the
DHCP discovery packet of the wireless print server.

getvar

Format: ! U1 getvar "ip.dhcp.option12_format"
Example: This setvar example shows configuring the ip.dhcp.option12_format to the value
contained in the device.friendly_name.
It is necessary to surround the SGD entry to be used as source for the data with the < and >
characters.
! U1 setvar "ip.dhcp.option12_format" ""
To further explain, if the above command was issued and the value currently stored in the
device.friendly_name parameter was "ShipPrinter", then the response to following command would
be "ShipPrinter":
! U1 getvar "ip.dhcp.option12_value"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1097

1098

SGD Wireless Commands
ip.dhcp.option12_value

ip.dhcp.option12_value
This command retrieves the actual value which will be used in the discovery packet of the wireless
print server.
getvar

Commands

Details

getvar

This command retrieves the actual value which will be used in the discovery packet of the wireless
print server.
Format: ! U1 getvar "ip.dhcp.option12_value"
Example: This setvar example shows configuring the ip.dhcp.option12_format to the value
contained in the device.friendly_name.
It is necessary to surround the SGD entry to be used as source for the data with the < and >
characters.
! U1 setvar "ip.dhcp.option12_format" ""
To further explain, if the above command was issued and the value currently stored in the
device.friendly_name parameter was "ShipPrinter", then the response to following command would
be "ShipPrinter":
! U1 getvar "ip.dhcp.option12_value"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.dhcp.request_timeout

ip.dhcp.request_timeout
This command retrieves the maximum amount of time (in seconds) for a DHCP discovery requests
on the wireless print server.

Commands

Details

setvar

This command instructs the printer to set the amount of time (in seconds) to wait before timing out
a DHCP discovery request.
Format: ! U1 setvar "ip.dhcp.request_timeout" "value"
Values: "2" through "30"
Default: "2"
This command retrieves the currently set the amount of time (in seconds) to wait before timing out
a DHCP discovery request.

getvar

Format: ! U1 getvar "ip.dhcp.request_timeout"
Example: This setvar example shows the value set to "2".
! U1 setvar "ip.dhcp.request_timeout" "2"
When the setvar value is set to "2", the getvar result is "2".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1099

1100

SGD Wireless Commands
ip.dhcp.requests_per_session

ip.dhcp.requests_per_session
This command retrieves the maximum amount of DHCP discovery requests for a single DHCP
session on the wireless print server.

Commands

Details

setvar

This command instructs the printer to set the maximum amount of DHCP discovery requests for a
single DHCP session on the wireless print server.
Format: ! U1 setvar "ip.dhcp.requests_per_session" "value"
Values: "1" through "10"
Default: "2"
This command retrieves the currently set maximum amount of DHCP discovery requests for a
single DHCP session on the wireless print server.

getvar

Format: ! U1 getvar "ip.dhcp.requests_per_session"
Example: This setvar example shows the value set to "2".
! U1 setvar "ip.dhcp.requests_per_session" "2"
When the setvar value is set to "2", the getvar result is "2".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.dhcp.session_interval

ip.dhcp.session_interval
This command configures the time interval (in seconds) before a new DHCP session is started on
the wireless print server.

Commands

Details

setvar

This command instructs the printer to set the DHCP session time out value (in seconds).
Format: ! U1 setvar "ip.dhcp.session_interval" "value"
Values: "0" through "60"
Default: "10"
This command retrieves the current DHCP session time out value (in seconds).

getvar

Format: ! U1 getvar "ip.dhcp.session_interval"
Example: This setvar example shows the value set to "10".
! U1 setvar "ip.dhcp.session_interval" "10"
When the setvar value is set to "10", the getvar result is "10".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1101

1102

SGD Wireless Commands
ip.dhcp.user_class_id

ip.dhcp.user_class_id
This command sets or retrieves the current DHCP class ID setting.

Commands

Details

setvar

Format: ! U1 setvar "ip.dhcp.user_class_id" "value"
Values: any class ID string,
Default: ""
Format: ! U1 getvar "ip.dhcp.user_class_id"

getvar

Result: the current DHCP class ID setting.

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320
• QLn420, ZD410
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.dhcp.vendor_class_id

ip.dhcp.vendor_class_id
This command configures the DHCP vendor class ID setting.

Commands

Details

setvar

This command sets the DHCP vendor class ID setting.
Format: ! U1 setvar "ip.dhcp.vendor_class_id" "value"
Values: Max string length of 64.
This command builds a string using the following values:
(device.company_name) (device.product_name)–(head.resolution.in_dpi)
(device.pnp_option)
Default: The default varies by printer.
This command retrieves the current DHCP vendor class ID setting.

getvar

Format: ! U1 getvar "ip.dhcp.vendor_class_id"
Example: For a Zebra ZT230 printer set at 203dpi, the result would be:

Zebra Technologies ZTC ZT230-2003dpi ZPL

Supported Devices
• iMz™ series
• QLn™ series
• ZT200™ series
• ZD500R™ series
• ZT400™ series

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1103

1104

SGD Wireless Commands
ip.dns.domain

ip.dns.domain
This command identifies the network domain of the wireless print server.
getvar

Commands

Details

getvar

This command retrieves the network domain of the wireless print server.
Format: ! U1 getvar "ip.dns.domain"
Example: In this example, the getvar retrieves the network domain of the wireless print server.
! U1 getvar "ip.dns.domain"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.dns.servers

ip.dns.servers
This command retrieves a space delimited list of the domain name servers from a wireless print
server.
getvar

Commands

Details

getvar

This command retrieves a list of space delimited DNS wireless print servers.
Format: ! U1 getvar "ip.dns.servers"
Example: In this example, the getvar retrieves a list of space delimited DNS wireless print servers.
! U1 getvar "ip.dns.servers"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1105

1106

SGD Wireless Commands
ip.ftp.enable

ip.ftp.enable
This printer setting refers to the FTP protocol setting. This command tells the printer to turn FTP on
or off.

Commands

Details

setvar

This command instructs the printer to turn FTP on or off.
Format: ! U1 setvar "ip.ftp.enable" "value"
Values:
"off" = disables FTP
"on" = enables FTP
Default: "on"
This command instructs the printer to respond with the FTP status.

getvar

Format: ! U1 getvar "ip.ftp.enable"
Example: This setvar example shows the FTP status set to "on".
! U1 setvar "ip.ftp.enable" "on"
When the setvar value is set to "on", the getvar result is that the FTP status is "on".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.ftp.execute_file

ip.ftp.execute_file
This command setting controls the printers’ ability to process or not process commands received via
the FTP protocol using the printers ZPL engine.

Commands

Details

setvar

This command instructs the printer to turn FTP processing ability on or off.
Format: ! U1 setvar "ip.ftp.execute_file" "value"
Values:
"off" = disables the printer’s ability to process FTP commands
"on" = enables the printer’s ability to process FTP commands
Default: "on"
This command instructs the printer to respond with the FTP processing ability status.

getvar

Format: ! U1 getvar "ip.ftp.execute_file"
Example: This setvar example shows the FTP processing ability set to "on".
! U1 setvar "ip.ftp.execute_file" "on"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1107

1108

SGD Wireless Commands
ip.ftp.request_password

ip.ftp.request_password
This command controls whether the ftp client will prompt the user to enter a password at the
beginning of an ftp session.

Commands

Details

setvar

This command instructs the printer to turn on or off the ftp session password request.
Format: ! U1 setvar "ip.ftp.request_password" "value"
Values:
"no"
"yes"
Default: "no"
This command returns whether the ftp client is set to prompt the user for a password at the start of
an ftp session.

getvar

Format: ! U1 getvar "ip.ftp.request_password"
Example: This setvar example shows the value set to "yes".
! U1 setvar "ip.ftp.request_password" "yes"

Supported Devices ZT200 Series
Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.gateway

ip.gateway
This command instructs the printer to change the gateway address.

Important • This setting refers to the gateway address. A set value is ignored if the IP
protocol is not set to permanent.

Commands

Details

setvar

This command instructs the printer to change the gateway address.
Format: ! U1 setvar "ip.gateway" "value"
Values: Any valid gateway address
Default: "0.0.0.0"
This command instructs the printer to respond with the gateway address.

getvar

Format:

! U1 getvar "ip.gateway"

Example: This setvar example shows the value set to "10.3.5.1".
! U1 setvar "ip.gateway" "10.3.5.1"
When the setvar value is set to "10.3.5.1", the getvar result is "10.3.5.1".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1109

1110

SGD Wireless Commands
ip.http.admin_name

ip.http.admin_name
This command sets the name to be used for authentication on the print server web pages.

Commands

Details

setvar

This command instructs the printer to set the admin user name to the specified value.
Format: ! U1 setvar "ip.http.admin_name" "value"
Values: a string with a maximum of 25 characters
Default: "admin"
This command instructs the printer to respond with the admin user name.

getvar

Format: ! U1 getvar "ip.http.admin_name"
Result: A user name
Example: This setvar example shows the value set to "useradmin101".
! U1 setvar "ip.http.admin_name" "useradmin101"

Supported Devices ZT200 Series
Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.http.admin_password

ip.http.admin_password
This command sets the password to be used for authentication on the print server web pages.

Commands

Details

setvar

This command instructs the printer to set print server web page password.
Format: ! U1 setvar "ip.http.admin_password" "value"
Values: a string, maximum 25 characters
Default: 1234
This command instructs the printer to respond with the print server web page password.

getvar

Format: ! U1 getvar "ip.http.admin_password"
Example: This setvar example shows the value set to "P@ssword101".
! U1 setvar "ip.http.admin_password" "P@ssword101"

Supported Devices ZT200 Series
Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1111

1112

SGD Wireless Commands
ip.http.custom_link_name

ip.http.custom_link_name
This command creates a custom link below the FAQ link on the print server settings page. Use
ip.http.custom_link_url on page 1113 to define the URL for your link name.

Commands

Details

setvar

This command instructs the printer to set the custom link name.
Format: ! U1 setvar "ip.http.custom_link_name" "value"
Values: Any string, maximum of 25 characters
Default: ""
This command instructs the printer to respond with the custom link name.

getvar

Format: ! U1 getvar "ip.http.custom_link_name"
Example: This setvar example shows the value set to "Click Here for Info".
! U1 setvar "ip.http.custom_link_name" "Click Here for Info"

Supported Devices ZT200 Series
Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.http.custom_link_url

ip.http.custom_link_url
This command creates a custom link on the printer web page for the printer’s URL. Use
ip.http.custom_link_name on page 1112 to define the text that will display for your link.

Commands

Details

setvar

This command instructs the printer to change the custom URL.
Format: ! U1 setvar "ip.http.custom_link_url" "value"
Values: A string of 64 characters or less
Default: ""
This command instructs the printer to respond with the custom URL.

getvar

Format: ! U1 getvar "ip.http.custom_link_url"
Example:
! U1 setvar "ip.http.custom_link_url" "http://www.zebra.com/sdk"

Supported Devices ZT200 Series
Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1113

1114

SGD Wireless Commands
ip.http.enable

ip.http.enable
This printer setting refers to the HTTP protocol/web server setting.

Commands

Details

setvar

This command instructs the printer to change HTTP to on or off.
Format: ! U1 setvar "ip.http.enable" "value"
Values:
"off" = disables HTTP protocol
"on" = enables HTTP protocol
Default: "on"
This command instructs the printer to respond with the HTTP status.

getvar

Format: ! U1 getvar "ip.http.enable"
Example: This setvar example shows the value set to "on".
! U1 setvar "ip.http.enable" "on"
When the setvar value is set to "on", the getvar result is "on".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.http.faq_url

ip.http.faq_url
This command sets the FAQ URL displayed on the printer web pages.

Commands

Details

setvar

This command instructs the printer to change the FAQ URL.
Format: ! U1 setvar "ip.http.faq_url" "value"
Values: A string of 64 characters or less.
Default: ""
This command instructs the printer to respond with the current FAQ URL.

getvar

Format: ! U1 getvar "ip.http.faq_url"
Example:
! U1 setvar "ip.http.faq_url" "http://www.yoursite.com/faq"

Supported Devices ZT200 Series
Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1115

1116

SGD Wireless Commands
ip.http.port

ip.http.port
This command sets the port number at which the printer web pages will be served.

Commands

Details

setvar

This command instructs the printer to change the port setting for the printer web pages.
Format: ! U1 setvar "ip.http.port" "value"
Values: "0" to "65535"
Default: "80"
This command instructs the printer to respond with the current port setting for the printer web
pages.

getvar

Format: ! U1 getvar "ip.http.port"
Example: This setvar example shows the value set to "8080".
! U1 setvar "ip.http.enable" "8080"

Supported Devices ZT200 Series
Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.lpd.enable

ip.lpd.enable
This printer setting refers to the LPD (Line Printer Daemon) protocol setting.

Important • LPD communications from the host should be directed to port 515.

Commands

Details

setvar

This command instructs the printer to turn LPD on or off.
Format: ! U1 setvar "ip.lpd.enable" "value"
Values:
"off" = disables LPD protocol
"on" = enables LPD protocol
Default: "on"
This command instructs the printer to respond with the LPD status.

getvar

Format: ! U1 getvar "ip.lpd.enable"
Example: This setvar example shows the value set to "on".
! U1 setvar "ip.lpd.enable" "on"
When the setvar value is set to "on", the getvar result is "on".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1117

1118

SGD Wireless Commands
ip.mac_raw

ip.mac_raw
This command specifies the RAW MAC address of the wireless print server. The raw mac address is
the mac address without the colons (":").
getvar

Commands

Details

getvar

This command retrieves the RAW MAC address of the wireless print server.
Format: ! U1 getvar "ip.mac_raw"
Example: In this example, the getvar retrieves the RAW MAC address of the wireless print server.
! U1 getvar "ip.mac_raw"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.mirror.appl_path

ip.mirror.appl_path
This command overrides the default location of the mirror application path ("appl" in "ip.mirror.path").
If the SGD is empty, the default path is used. If an error occurs retrieving application from path (i.e.
path not found or application not there), the default path is NOT used. This path must be fully defined
in relation to the mirror server root and is not relative to ip.mirror.path.

Commands

Details

setvar

This command sets the path to the application on the mirror server.
Format: ! U1 setvar "ip.mirror.appl_path" "values"

Values: A valid application path (location)
Default: ""
This command retrieves the path to the application on the mirror server.

getvar

Format: ! U1 getvar "ip.mirror.appl_path"
Example: If the default value is used, the application would be copied from
"ip.mirror.path"\appl
If you send ! U1 setvar "ip.mirror.appl_path" "program\current" and
"ip.mirror.path" has the value "c:\mirror", then the application would be copied from
c:\mirror\program\current.

Supported Devices
• iMz™ series
• QLn™ series
• ZT200™ series
• ZD500R™ series
• ZT400™ series

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1119

1120

SGD Wireless Commands
ip.mirror.auto

ip.mirror.auto
This command enables the ability to automatically perform a mirror update (fetch) command on
power up.

Commands

Details

setvar

This command instructs the printer to perform a mirror update (fetch) command when the printer
is turned on using the interval that is set for "ip.mirror.freq" or "ip.mirror.freq_hours".
Format: ! U1 setvar "ip.mirror.auto" "values"
Values:
"on" = turns on the auto mirroring feature
"off" = turns off the auto mirroring feature
Default: "off"
This command will report whether the printer will perform a mirror update (fetch) automatically on
power up.

getvar

Format: ! U1 getvar "ip.mirror.auto"
Example: This setvar example shows the value set to "off".
! U1 setvar "ip.mirror.auto" "off"
When the setvar value is set to "off", the getvar result is "off".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.mirror.error_retry

ip.mirror.error_retry
This command identifies how many times mirroring is retried when an error occurs.

Commands

Details

setvar

This command instructs the printer to set the required times that mirroring retries when an error
occurs.
Format: ! U1 setvar "ip.mirror.error_retry" "value"
Values: numeric values (0 - 65535)
Default: "0"
This command retrieves the number of times the printer retries mirroring when an error occurs.

getvar

Format: ! U1 getvar "ip.mirror.error_retry"
Example: This setvar example shows the value set to "0".
! U1 setvar "ip.mirror.error_retry" "0"
When the setvar value is set to "0", the getvar result is "0".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1121

1122

SGD Wireless Commands
ip.mirror.feedback.auto

ip.mirror.feedback.auto
This command identifies if a feedback file is pushed to the mirroring server by the printer when a
mirroring update (fetch) is complete.

Commands

Details

setvar

This command instructs the printer to set the mirror feedback feature to on or off.
Format: ! U1 setvar "ip.mirror.feedback.auto" "value"
Values:
"on" = turns on mirror feedback
"off" = turns off mirror feedback
Default: "off"
This command retrieves the mirror feedback setting that the printer is currently using.

getvar

Format: ! U1 getvar "ip.mirror.feedback.auto"
Example: This setvar example shows the value set to "off".
! U1 setvar "ip.mirror.feedback.auto" "off"
When the setvar value is set to "off", the getvar result is "off".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.mirror.feedback.freq

ip.mirror.feedback.freq
This command specifies the time interval (in minutes) between performing feedback file uploads.

Commands

Details

setvar

This command instructs the printer to set the number of minutes to wait between feedback file
uploads.
Format: ! U1 setvar "ip.mirror.feedback.freq" "value"
Values: numeric value (0 - 65535)
Default: "0"
This command retrieves the number of minutes set to wait between feedback file uploads.

getvar

Format: ! U1 getvar "ip.mirror.feedback.freq"
Example: This setvar example shows the value set to "0".
! U1 setvar "ip.mirror.feedback.freq" "0"
When the setvar value is set to "0", the getvar result is "0".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1123

1124

SGD Wireless Commands
ip.mirror.feedback.odometer

ip.mirror.feedback.odometer
This command instructs the printer to set the mirror feedback odometer.

Commands

Details

setvar

This command instructs the printer to set the odometer counter.
Format: ! U1 setvar "ip.mirror.feedback.odometer" "values"
Values: numeric value between 0 and 4294967295
Default: "0"
This command retrieves the mirror feedback odometer.

getvar

Format: ! U1 getvar "ip.mirror.feedback.odometer"
Example: This setvar example shows the value set to "0".
! U1 setvar "ip.mirror.feedback.odometer" "0"
When the setvar value is set to "0", the getvar result is "0".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.mirror.feedback.path

ip.mirror.feedback.path
This command identifies where the feedback file is stored on the mirroring server.

Commands

Details

setvar

This command instructs the printer to set the path on the mirroring server that stores the feedback
file.
Format: ! U1 setvar "ip.mirror.feedback.path" "value"
Values: alphanumeric text (1 to 50 characters)
Default: "Zebra/feedback"
This command retrieves the path on the mirroring sever that the printer is currently using to store
the feedback file.

getvar

Format: ! U1 getvar "ip.mirror.feedback.path"
Example: This setvar example shows the value set to "Zebra/feedback".
! U1 setvar "ip.mirror.feedback.path" "Zebra/feedback"
When the setvar value is set to "Zebra/feedback", the getvar result is "Zebra/feedback".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1125

1126

SGD Wireless Commands
ip.mirror.fetch

ip.mirror.fetch
This command forces a mirroring update sequence.
setvar;do

Commands

Details

setvar

This command forces a mirroring update sequence.
Format: ! U1 setvar "ip.mirror.fetch" ""
This command forces a mirroring update sequence.

do

Format: ! U1 do "ip.mirror.fetch" ""
Example: This setvar example forces a mirroring update sequence.
! U1 setvar "ip.mirror.fetch" ""

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.mirror.freq

ip.mirror.freq
This command defines the frequency of mirroring updates (in minutes).

Commands

Details

setvar

This command instructs the printer to set the mirror frequency.
Format: ! U1 setvar "ip.mirror.freq" "value"
Values: "0" through "65535" (minutes)
Default: "0"

(disables this feature)

Important • When the "ip.mirror.freq" is set to a low value (other than zero) the
printer will spend a lot of time performing the mirroring process.
This command retrieves the number of minutes to wait before performing another mirror update.

getvar

Format: ! U1 getvar "ip.mirror.freq"
Example: This setvar example shows the value set to "1000".
! U1 setvar "ip.mirror.freq" "1000"
When the setvar value is set to "1000", the getvar result is "1000" and mirroring will be
attempted every 1000 minutes.

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1127

1128

SGD Wireless Commands
ip.mirror.freq_hours

ip.mirror.freq_hours
This command defines the frequency of mirroring updates (in hours).

Commands

Details

setvar

This command instructs the printer to set the frequency of mirroring updates (in hours).
Format: ! U1 setvar "ip.mirror.freq_hours" "values"
Values: "0" through "100"
Default: "0" (disables this feature)
This command retrieves the frequency of mirroring updates (in hours) that the printer is currently
using.

getvar

Format: ! U1 getvar "ip.mirror.freq_hours"
Example: This setvar example shows the value set to "8".
! U1 setvar "ip.mirror.freq_hours" "8"
When the setvar value is set to "8", the getvar result is "8" and mirroring will be attempted every
8 hours.

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.mirror.interface

ip.mirror.interface
Determines the interface over which Mirror will operate.

Commands

Details

setvar

Format: ! U1 setvar "ip.mirror.interface" "value"
Values:
"both" = internal or external wired and WLAN
"wired" = internal or external wired
"wireless" = WLAN
Default: "both"
Format: ! U1 getvar "ip.mirror.interface"

getvar

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1129

1130

SGD Wireless Commands
ip.mirror.last_error

ip.mirror.last_error
This command retrieves the last error encountered during a mirroring operation.
getvar

Commands

Details

getvar

This command retrieves the error code of the last mirroring update (fetch).
Format: ! U1 getvar "ip.mirror.last_error"
Example: In this example, the getvar retrieves the error code of the last mirroring update.
! U1 getvar "ip.mirror.last_error"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.mirror.last_time

ip.mirror.last_time
This command retrieves the timestamp, in seconds, of the last time the system attempted a mirror
update (fetch).
getvar

Commands

Details

getvar

This command retrieves the timestamp, in seconds, of the last time the system attempted a mirror
update (fetch).
Format: ! U1 getvar "ip.mirror.last_time"
Example: In this example, the getvar retrieves the timestamp, in seconds, of the last time the
system attempted a mirror update.
! U1 getvar "ip.mirror.last_time"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1131

1132

SGD Wireless Commands
ip.mirror.mode

ip.mirror.mode
This command sets the protocol used to perform mirror tasks.

Commands

Details

setvar

This command sets the protocol for mirror tasks.
Format: ! U1 setvar "ip.mirror.mode" "values"
Values:
• ftp - FTP protocol will be used to perform mirror tasks
• sftp - SFTP protocol will be used to perform mirror tasks
Default: "ftp"
This command retrieves the path to the application on the mirror server.

getvar

Format: ! U1 getvar "ip.mirror.mode"

Supported Devices
• iMz™ series
• QLn™ series
• ZT200™ series
• ZD500R™ series
• ZT400™ series

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.mirror.password

ip.mirror.password
This command specifies the user password on the mirroring server assigned for mirroring updates
(fetch).

Commands

Details

setvar

This command instructs the printer to use a specific password for mirroring updates (fetch).
Format: ! U1 setvar "ip.mirror.password" "value"
Values: alphanumeric text string (1 to 20 characters)
Default: "password"
This command retrieves the user password the printer is currently using for mirroring updates
(fetch).

getvar

Format: ! U1 getvar "ip.mirror.password"
Example: This setvar example shows the value set to "password".
! U1 setvar "ip.mirror.password" "password"
When the setvar value is set to "password", the getvar result is "*". For security purposes, the
printer does not return password information.

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1133

1134

SGD Wireless Commands
ip.mirror.path

ip.mirror.path
This command identifies the base path on the FTP server where the mirror directory resides.

Commands

Details

setvar

This command sets the base path on the FTP server where the mirror directory resides.
Format: ! U1 setvar "ip.mirror.path" "value"
Values: alphanumeric text string (1 to 50 characters)
Default: "zebra"
This command retrieves the base path of the FTP server where the mirror directory resides.

getvar

Format: ! U1 getvar "ip.mirror.path"
Example: This setvar example shows the value set to "zebra".
! U1 setvar "ip.mirror.path" "zebra"
When the setvar value is set to "zebra", the getvar result is "zebra".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.mirror.reset_delay

ip.mirror.reset_delay
This command specifies the number of seconds between when the printer receives the last byte of
the last file from the /commands directory and when the printer resets during a mirror event.

Commands

Details

setvar

This command sets the number of seconds between when the printer receives the last byte of the
last file from the /commands directory and when the printer resets during a mirror event.
Format: ! U1 setvar "ip.mirror.reset_delay" "value"
Values: 0 - 900 (seconds)
Default: "5"
The default setting for the ip.mirror.reset_delay command is 5 seconds; in some
cases it may be necessary to use a longer delay to allow for full processing of longer or
more complex files.
This command retrieves the number of seconds between when the printer receives the last byte
of the last file from the /commands directory and when the printer resets during a mirror event.

getvar

Format: ! U1 getvar "ip.mirror.reset_delay"
Example: This setvar example shows the value set to "10".

! U1 setvar "ip.mirror.reset_delay" "10"
When the setvar value is set to "10", the getvar result is "10".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1135

1136

SGD Wireless Commands
ip.mirror.server

ip.mirror.server
This command identifies the IP address of the mirroring server.

Commands

Details

setvar

This command sets the IP address of the mirroring server.
Format: ! U1 setvar "ip.mirror.server" "value"
Values: a valid IP address
Default: "127.0.0.1"
This command retrieves the IP address of the mirroring server.

getvar

Format: ! U1 getvar "ip.mirror.server"
Example: This setvar example shows the value set to "10.3.1.1".
! U1 setvar "ip.mirror.server" "10.3.1.1"
When the setvar value is set to "10.3.1.1", the getvar result is "10.3.1.1".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.mirror.success

ip.mirror.success
This command reports the success or failure of the last mirroring update (fetch).
getvar

Commands

Details

getvar

This command retrieves the success or failure of the last mirroring update (fetch).
Format: ! U1 getvar "ip.mirror.success"
Values:
"yes" = successful
"no" = unsuccessful
Example: In this example, the getvar retrieves the success or failure of the last mirroring update
(fetch).
! U1 getvar "ip.mirror.success"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1137

1138

SGD Wireless Commands
ip.mirror.success_time

ip.mirror.success_time
This command provides the timestamp, in seconds, of the last time the system successfully
completed a mirror update (fetch).
getvar

Commands

Details

getvar

This command retrieves the timestamp, in seconds, of the last time the system successfully
completed a mirror update (fetch).
Format: ! U1 getvar "ip.mirror.success_time"
Example: In this example, the getvar retrieves the timestamp of the last time the system
successfully completed a mirror update.
! U1 getvar "ip.mirror.success_time"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.mirror.username

ip.mirror.username
This command specifies the user name on the mirroring server assigned for mirroring updates
(fetch).

Commands

Details

setvar

This command instructs the printer to use a specific user name for mirroring updates (fetch).
Format: ! U1 setvar "ip.mirror.username" "value"
Values: alphanumeric text string (1 to 20 characters)
Default: "user"
This command retrieves the user name the printer is currently using for mirroring updates (fetch).

getvar

Format: ! U1 getvar "ip.mirror.username"
Example: This setvar example shows the value set to "user".
! U1 setvar "ip.mirror.username" "user"
When the setvar value is set to "user", the getvar result is "user".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1139

1140

SGD Wireless Commands
ip.mirror.version

ip.mirror.version
This command retrieves the mirror code build date.
getvar

Commands

Details

getvar

This command retrieves the mirror code build date.
Format: ! U1 getvar "ip.mirror.version"
Example: In this example, the getvar retrieves the mirror code build date.
! U1 getvar "ip.mirror.version"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.netmask

ip.netmask
This setting refers to the subnet mask address. This value is ignored if the IP protocol is not set to
permanent.

Commands

Details

setvar

This command instructs the printer to change the subnet mask.
Format: ! U1 setvar "ip.netmask" "value"
Values: Any valid subnet mask.
Default: "255.255.255.0"
This command instructs the printer to respond with subnet mask.

getvar

Format: ! U1 getvar "ip.netmask"
Example: This setvar example shows the value set to "255.255.255.0".
! U1 setvar "ip.netmask" "255.255.255.0"
When the setvar value is set to "255.255.255.0", the getvar result is "255.255.255.0".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1141

1142

SGD Wireless Commands
ip.ntp.enable

ip.ntp.enable
Enables or disables the Network Time Protocol (NTP) feature.

Commands

Details

setvar

Format: ! U1 setvar "ip.ntp.enable" "value"
Values:
"on" = enabled
"off" = disabled
Default: "off"
Format: ! U1 getvar "ip.ntp.enable"

getvar

Supported Devices
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.ntp.log

ip.ntp.log
Retrieves the Network Time Protocol (NTP) status and error log. If NTP is not running this will return
"File Not Found" for the error log.

Commands

Details

getvar

Format: ! U1 getvar "ip.ntp.log"
Default: "File Not Found"

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR338
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1143

1144

SGD Wireless Commands
ip.ntp.servers

ip.ntp.servers
Sets the list of NTP (Network Time Protocol) servers which the printer will use to set the time.

Commands

Details

setvar

Format: ! U1 setvar "ip.ntp.servers" "value"
Values: A comma delimited string of server name(s) or ip address(es), with a length of 0-1024
characters.
Default: ""
Example:

! U1 setvar "ip.ntp.servers" "0.us.pool.ntp.org,10.3.17.124"

Format: ! U1 getvar "ip.ntp.servers"

getvar

Result: A comma delimited string of server name(s) or ip address(es).

Supported Devices
• QLn220,QLn320, QLn420
• ZQ510, ZQ520
• ZR638, ZR628
• ZT210, ZT220, ZT230

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.pop3.enable

ip.pop3.enable
This printer setting determines if the printer queries a POP3 mailbox for mail.

Commands

Details

setvar

This command instructs the printer to turn POP3 on or off.
Format: ! U1 setvar "ip.pop3.enable" "value"
Values:
"off" = disables POP3
"on" = enables POP3
Default: "on"
This command instructs the printer to respond with the POP3 status.

getvar

Format: ! U1 getvar "ip.pop3.enable"
Example: This setvar example shows the value set to "on".
! U1 setvar "ip.pop3.enable" "on"
When the setvar value is set to "on", the getvar result is "on".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1145

1146

SGD Wireless Commands
ip.pop3.password

ip.pop3.password
This printer setting refers to the POP3 mailbox password. This only applies if "ip.pop3.enable" is
set to on.

Commands

Details

setvar

This command instructs the printer to change the POP3 password.
Format: ! U1 setvar "ip.pop3.password" "value"
Values: A maximum of 20 alphanumeric characters
Default: " "
This command instructs the printer to respond with the POP3 password.

getvar

Format:

! U1 getvar "ip.pop3.password"

For protection a single "*" prints.
Example: This setvar example shows the value set to "password".
! U1 setvar "ip.pop3.password" "password"
When the setvar value is set to "password", the getvar result is "*".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.pop3.poll

ip.pop3.poll
This printer setting refers to how frequent (in seconds) the printer queries a POP3 mailbox for new
mail. This only applies if the "ip.pop3.enable" is set to on.

Commands

Details

setvar

This command instructs the printer to change the POP3 poll interval. A value of "0" causes the
printer to only query the POP3 mailbox one time, on printer power up, or following a network
reset.
Format: ! U1 setvar "ip.pop3.poll" "value"
Values: "0" through "65535"
Default: "0"

Note • A poll value of less then thirty seconds is not recommended. The printer is
unresponsive for several seconds when polling for email depending on data transfer time
from the server to the printer.
This command instructs the printer to respond with the POP3 poll frequency (in seconds).

getvar

Format: ! U1 getvar "ip.pop3.poll"
Example: This setvar example shows the value set to "0".
! U1 setvar "ip.pop3.poll" "0"
When the setvar value is set to "0", the getvar result is "0".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1147

1148

SGD Wireless Commands
ip.pop3.server_addr

ip.pop3.server_addr
This printer setting refers to the POP3 server IP address that the printer contacts when checking for
new mail. This only applies if "ip.pop3.enable" is set to on.

Commands

Details

setvar

This command instructs the printer to change the POP3 server address.
Format: ! U1 setvar "ip.pop3.server_addr" "value"
Values: Any valid POP3 server address
Default: "0.0.0.0"
This command instructs the printer to respond with the POP3 server address.

getvar

Format: ! U1 getvar "ip.pop3.server_addr"
Example: This setvar example shows the value set to "10.3.5.10".
! U1 setvar "ip.pop3.server_addr" "10.3.5.10"
When the setvar value is set to "10.3.5.10", the getvar result is "10.3.5.10".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.pop3.username

ip.pop3.username
This printer setting refers to the POP3 user name. This only applies if the "ip.pop3.enable" is set
to on.

Commands

Details

setvar

This command instructs the printer to change the POP3 user name.
Format: ! U1 setvar "ip.pop3.username" "value"
Values: A maximum of 20 alphanumeric characters
Default: " "
This command instructs the printer to respond with the POP3 user name.

getvar

Format: ! U1 getvar "ip.pop3.username"
Example: This setvar example shows the value set to "user".
! U1 setvar "ip.pop3.username" "user"
When the setvar value is set to "user", the getvar result is "user".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1149

1150

SGD Wireless Commands
ip.port

ip.port
This printer setting refers to the port number that the TCP print service is listening on. Normal TCP
communications from the host should be directed to this port.

Commands

Details

setvar

This command instructs the printer to set the TCP/UDP port number.
Format: ! U1 setvar "ip.port" "value"
Values: 1 - 65535 (excluding any ports currently used by other services, such as 21, 23, 80, and
515).
Default: "9100"
This command instructs the printer to respond with the TCP/UDP port number.

getvar

Format: ! U1 getvar "ip.port"
Example: This setvar example shows the value set to "9100".
! U1 setvar "ip.port" "9100"
When the setvar value is set to "9100", the getvar result is "9100".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Printer Commands
ip.port_alternate

ip.port_alternate
This command sets the port number of the alternate port.

Note • Print servers supporting this command will monitor both the primary port and the alternate
port for connections at the same time.

Commands

Details

setvar

This command sets the alternate port for the print server.
Format: ! U1 setvar "ip.port_alternate" "value"
Values: Any valid TCP port address.
Default: "9100"
This command returns the current alternate port setting.

getvar

Format: ! U1 getvar "ip.port_alternate"
Values: The current port setting.
Example: This setvar example shows the value set to "6101".
U1 setvar "ip.port_alternate" "6101"

Supported Devices ZT200 Series
Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1151

1152

SGD Wireless Commands
ip.port_json_config

ip.port_json_config
This printer setting refers to the port number that the TCP print service is listening on for JSON
configuration packets. JSON TCP communications from the host should be directed to this port.

Commands

Details

setvar

This command instructs the printer to set the JSON TCP port number.
Format: ! U1 setvar "ip.port_json_config" "value"
Values:
0 = Disable the port
1 - 65535 (excluding any ports currently used by other services, such as 21, 23, 80, and 515).
Default: "9200"
This command instructs the printer to respond with the JSON TCP port number.

getvar

Format: ! U1 getvar "ip.port_json_config"
Example: This setvar example shows the value set to "9200".

! U1 setvar "ip.port_json_config" "9200"
When the setvar value is set to "9200", the getvar result is "9200".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.port_single_conn

ip.port_single_conn
This command configures the port number for the single connection IP port. The single-connection
IP port allows only one connection at a time.
See "ip.port_single_conn_idle_timeout" for additional information.

Commands

Details

setvar

Format: ! U1 setvar "ip.port_single_conn" "value"
Values: A number between 1 and 65535. This number specifies the port.
Default: "9300"
Format: ! U1 getvar "ip.port_single_conn"

getvar

Result: A port number between 1 and 65535.

Supported Devices
• iMZ220, iM320
• QLn320, QLn220
• ZD410, ZD420
• ZD500, ZQ510, ZQ520
• ZR638, ZR628
• ZT230, ZT220, ZT210
• ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1153

1154

SGD Wireless Commands
ip.port_single_conn_idle_timeout

ip.port_single_conn_idle_timeout
Sets the amount of time that must elapse with no activity for the single-connection IP port to be
considered in the idle state.
When the port is idle and a new connection is requested, the currently open connection will be
closed and a new connection will be opened. If the port is not in the idle state, the current connection
will be maintained and the connection request will be refused with an error response.

Commands

Details

setvar

Format: ! U1 setvar "ip.port_single_conn_idle_timeout" "value"
Values: A number between 1 and 65535. The value is in seconds. If the value is 0, the port will
be considered to be in the idle state.
Default: "180"
Format: ! U1 getvar "ip.port_single_conn_idle_timeout"

getvar

Result: A number between 1 and 65535. The value is in seconds. If the
value is 0, the port will be considered to be in the idle state.

Supported Devices
• iMZ220, iM320
• QLn320, QLn220
• ZD410, ZD420
• ZD500, ZQ510, ZQ520
• ZR638, ZR628
• ZT230, ZT220, ZT210
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.primary_network

ip.primary_network
This command allows you to set the primary network to either wired or wireless.

Commands

Details

setvar

This command instructs the printer to set the primary network device.
Format: ! U1 setvar "ip.primary_network" "value"
Values:
1 = wired
2 = wireless
Default: "1"
This command instructs the printer to respond with the name of the current primary network
device.

getvar

Format: ! U1 getvar "ip.primary_network"
Example: This setvar example shows the value set to "1".
! U1 setvar "ip.primary_network" "1"
What the setvar value is set to is the getvar result. In this example, the getvar result is "1".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1155

1156

SGD Wireless Commands
ip.smtp.domain

ip.smtp.domain
This printer setting refers to the domain name used by the printer in sending email with respect to
the SMTP server.

Commands

Details

setvar

This command instructs the printer to change the SMTP domain name.
Format: ! U1 setvar "ip.smtp.domain" "value"
Values: A maximum of 24 alphanumeric characters
Default: "ZBRPrintServer"
This command instructs the printer to return the SMTP domain name.

getvar

Format: ! U1 getvar "ip.smtp.domain"
Example: This setvar example shows the value set to "ZBRPrintServer.com".
! U1 setvar "ip.smtp.domain" "ZBRPrintServer.com"
When the setvar value is set to "ZBRPrintServer.com", the getvar result is
"ZBRPrintServer.com".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.smtp.enable

ip.smtp.enable
This printer setting refers to the SMTP protocol.

Commands

Details

setvar

This command instructs the printer to turn SMTP on or off.
Format: ! U1 setvar "ip.smtp.enable" "value"
Values:
"off" = disables SMTP
"on" = enables SMTP
Default: "on"
This command instructs the printer to return the SMTP status.

getvar

Format: ! U1 getvar "ip.smtp.enable"
Example: This setvar example shows the value set to "on".
! U1 setvar "ip.smtp.enable" "on"
When the setvar value is set to "on", the getvar result is "on".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1157

1158

SGD Wireless Commands
ip.smtp.server_addr

ip.smtp.server_addr
This printer setting refers to the IP address of the SMTP server used for sending email.

Commands

Details

setvar

This command instructs the printer to change the SMTP server address.
Format: ! U1 setvar "ip.smtp.server_addr" "value"
Values: Any valid IP address.
Default: 0.0.0.0
This command instructs the printer to respond with the current SMTP server address.

getvar

Format: ! U1 getvar "ip.smtp.server_addr"
Example: This setvar example shows the value set to 10.10.10.10.
! U1 setvar "ip.smtp.server_addr" "10.10.10.10"
When the setvar value is set to "10.10.10.10", the getvar result is "10.10.10.10".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.snmp.get_community_name

ip.snmp.get_community_name
This printer setting is used when making SNMP queries. The SNMP client must supply the get
community name that matches the printer’s get community name in order to query any SNMP data.

Commands

Details

setvar

This command instructs the printer to set the SNMP get community name string.
Format:
! U1 setvar "ip.snmp.get_community_name" "value"
Values: A maximum of 19 alphanumeric characters.
Default: "public"
This command instructs the printer to get the SNMP get community name string.

getvar

Format: ! U1 getvar "ip.snmp.get_community_name"

For protection a single "*" prints.
Example: This setvar example shows the value set to "public".
! U1 setvar "ip.snmp.get_community_name" "public"
When the setvar value is set to "public", the getvar result is "*".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1159

1160

SGD Wireless Commands
ip.snmp.set_community_name

ip.snmp.set_community_name
This printer setting is used when changing SNMP data remotely. To alter any SNMP data, the SNMP
client must supply the set community name that matches the printer’s set community name.

Commands

Details

setvar

This command instructs the printer to set the SNMP set community name string.
Format: ! U1 setvar "ip.snmp.set_community_name"

"value"

Values: A maximum of 19 alphanumeric characters
Default: "public"
This command instructs the printer to return the printer’s SNMP set community name string.

getvar

Format: ! U1 getvar "ip.snmp.set_community_name"

For protection a single "*" returns.
Example: This setvar example shows the value set to "public".
! U1 setvar "ip.snmp.set_community_name" "public"
When the setvar value is set to "public", the getvar result is "*".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.snmp.trap_community_name

ip.snmp.trap_community_name
This command sets the SNMP Trap Community name of the print server.

Commands

Details

setvar

This command instructs the printer to set the SNMP trap community name.
Format: ! U1 setvar "ip.snmp.get_community_name" "value"
Values: A maximum of 20 alphanumeric characters.
Default: "public"
This command instructs the printer to get the SNMP trap community name.

getvar

Format: ! U1 getvar "ip.snmp.trap_community_name"
Example:
! U1 setvar "ip.snmp.trap_community_name" "public"

Supported Devices ZT200 Series
Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1161

1162

SGD Wireless Commands
ip.snmp.enable

ip.snmp.enable
This printer setting refers to the SNMP protocol.

Commands

Details

setvar

This command instructs the printer to enable or disable the SNMP protocol.
Format: ! U1 setvar "ip.snmp.enable" "value"
Values:
"on" = enable the SNMP protocol
"off" = disable the SNMP protocol
Default: "on"
This command instructs the printer to respond with the SNMP status.

getvar

Format: ! U1 getvar "ip.snmp.enable"
Example: This setvar example shows the value set to "on".
! U1 setvar "ip.snmp.enable" "on"
When the setvar value is set to "on", the getvar result is "on".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.tcp.enable

ip.tcp.enable
This printer setting refers to the TCP socket protocol.

Commands

Details

setvar

This command instructs the printer to turn the TCP on or off.
Format: ! U1 setvar "ip.tcp.enable" "value"
Values:
"off" = disables TCP protocol
"on" = enables TCP protocol
Default: "on"
This command instructs the printer to respond with the TCP status.

getvar

Format: ! U1 getvar "ip.tcp.enable"
Example: This setvar example shows the value set to "on".
! U1 setvar "ip.tcp.enable" "on"
When the setvar value is set to "on", the getvar result is "on".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1163

1164

SGD Wireless Commands
ip.telnet.enable

ip.telnet.enable
This printer setting refers to the TELNET (port 23) protocol.

Commands

Details

setvar

This command instructs the printer to turn TELNET on or off.
Format: ! U1 setvar "ip.telnet.enable" "value"
Values:
"off" = disables telnet protocol
"on" = enables telnet protocol
Default: "on"
This command instructs the printer to respond with the TELNET status.

getvar

Format: ! U1 getvar "ip.telnet.enable"
Example: This setvar example shows the value set to "on".
! U1 setvar "ip.telnet.enable" "on"
When the setvar value is set to "on", the getvar result is "on".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
ip.tcp.nagle_algorithm

ip.tcp.nagle_algorithm
Enables or disables the use of the Nagle algorithm on TCP connections.

Commands

Details

setvar

Format: ! U1 setvar "ip.tcp.nagle_algorithm" "value"
Values:
"enabled" = allows the use of the Nagle algorithm
"disabled" = disables use of the Nagle algorithm
Default: "enabled"
Format: ! U1 getvar "ip.tcp.nagle_algorithm"

getvar

Supported Devices
• QLn220, QLn320
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR628, ZR638
• ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1165

1166

SGD Wireless Commands
ip.udp.enable

ip.udp.enable
This printer setting refers to the UDP socket protocol.

Commands

Details

setvar

This command instructs the printer to turn UDP on or off.
Format: ! U1 setvar "ip.udp.enable" "value"
Values:
"off" = disables UDP protocol
"on" = enables UDP protocol
Default: "off"
This command instructs the printer to respond with the UDP status.

getvar

Format: ! U1 getvar "ip.udp.enable"
Example: This setvar example shows the value set to "on".
! U1 setvar "ip.udp.enable" "on"
When the setvar value is set to "on", the getvar result is "on".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
weblink.cloud_connect.enable

weblink.cloud_connect.enable
Enables the CloudConnect menu feature.

Setvar
To set the command:
! U1 setvar "weblink.cloud_connect.enable" "value"
Values:
• true — CloudConnect menu is enabled
• false —CloudConnect menu is disabled
Default:
"true"

Getvar
To have the printer return the current setting value:
! U1 getvar "weblink.cloud_connect.enable"

Supported Printers
• ZD400, ZD410, ZD420
• ZD500R
• ZD620
• QLn220, QLn320, QLn420
• ZQ510, ZQ520
• ZR318, ZR328
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Notes
•
•

1/31/18

For specific product support, see xref on page xxx.
For details on command structure, see xref on page yyy.

Programming Guide

P1099958-001

1167

1168

SGD Wireless Commands
weblink.enable

weblink.enable
This command indicates if one or more of the weblink connections are active.
If there is more than one connection under the weblink branch (for example, weblink.ip.conn1)
and if any of the .location values are set, then this SGD will be set to "on". If all connections are
disabled (all connection .location values set to ""), then this value will be set to "off".
^JUF, ^JUS, ^JUN, ^JUA, and device.restore_defaults do not have any affect on this setting.
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Type

getvar

Commands

Details

getvar

This command indicates if one or more of the weblink connections are active.
Format: ! U1 getvar "weblink.enable"
Result:
• "yes"
• "off"

if any of the .location values are set
if all connections are disabled

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
weblink.ip.conn[1|2].authentication.add

weblink.ip.conn[1|2].authentication.add
This command allows the user to add a single server/username/password triplet into the list of
authentication entries.
When the printer attempts to connect to the server (url specified in
weblink.ip.conn[1|2].location) the server may require HTTP authentication (e.g. digest,
basic, DNS, etc.). There may be multiple authentication requests along the route to the destination
(e.g. a local server first requires HTTP authentication as well as on the remote server).
For each HTTP authentication request received while attempting to connect, the printer will
enumerate the authentication entries and attempt to satisfy the request with the username/password
pair provided for the respective server. The server name in the entry is what determines which
username/password pair should be used for which authentication request. Both DNS names and IP
addresses are acceptable. The server, username, and password are separated by a single space
(not a tab or other white space character). The server name is the only required field. If no username
is supplied, but a password is, there must be two spaces between the server and the password
fields. If there is a username but no password, or simply just the servername, no space is required at
the end of the entry.
If the command is changed when the connection is enabled (weblink.enable is set to "on"), it
will not take effect until the connection is disabled, and then re-enabled.

Important • This setting only be changed when weblink.enable is set to "off".
^JUF, ^JUS, ^JUN, ^JUA, and device.restore_defaults do not have any affect on this setting.

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Type

setvar

Commands

Details

setvar

This command adds a single server/username/password triplet to the list of authentication entries.
Format:
• ! U1 setvar "weblink.ip.conn1.authentication.add" "servername[ username][
password]"
• ! U1 setvar "weblink.ip.conn2.authentication.add" "servername[ username][
password]"
Values: servername [username][ password] has a maximum length of 2048 characters
Default: NA

1/31/18

Programming Guide

P1099958-001

1169

1170

SGD Wireless Commands
weblink.ip.conn[1|2].authentication.add

Example 1 • In this example, a username and a password is supplied:
! U1 setvar "weblink.ip.conn1.authentication.add" "my.server.lan
johndoe password"

Example 2 • In this example, no password is supplied
! U1 setvar "weblink.ip.conn1.authentication.add" "my.server.lan
johndoe"

Example 3 • In this example, no username is supplied (note the double space)
! U1 setvar "weblink.ip.conn1.authentication.add"
"my.server.lan password"

Example 4 • In this example, no username or password is supplied
! U1 setvar "weblink.ip.conn1.authentication.add" "my.server.lan"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
weblink.ip.conn[1|2].authentication.entries

weblink.ip.conn[1|2].authentication.entrie
s
This command lists the server names added to the authentication entries list.
Only the server names will be shown. The username and passwords will not be shown.The server
names are separated by a \r\n so that each shows up on its own line.
^JUF, ^JUS, ^JUN, ^JUA, and device.restore_defaults do not have any affect on this setting.

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Type

getvar

Commands

Details

getvar

This command lists the server names for the specified connection.
Format:
• ! U1 getvar "weblink.ip.conn1.authentication.entries"
• ! U1 getvar "weblink.ip.conn2.authentication.entries"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1171

1172

SGD Wireless Commands
weblink.ip.conn[1|2].authentication.remove

weblink.ip.conn[1|2].authentication.remove
This command allows the user to remove a single server/username/password triplet from the list of
authentication entries.
To remove an entry only the server name is supplied. If an invalid entry is supplied no action is
taken. If the SGD is changed when the connection is enabled (weblink.ip.conn[1|2].enable), it
will not take effect until the connection is disabled, and then re-enabled. It is therefore recommended
that this setting only be changed when weblink.ip.conn[1|2].enable is set to "off".
^JUF, ^JUS, ^JUN, ^JUA, and device.restore_defaults do not have any affect on this setting.

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Type

setvar

Commands

Details

setvar

This command removes a single server/username/password triplet from the list of authenticaiton
entries.
Format:
• ! U1 setvar "weblink.ip.conn1.authentication.remove" "servername"
• ! U1 setvar "weblink.ip.conn2.authentication.remove" "servername"
Values: servername has a maximum length of string is 2048 characters.
Default: NA
Example: In this example, a username and a password is supplied

! U1 setvar "weblink.ip.conn1.authentication.remove" "my.server.lan"

P1099958-001

Programming Guide

1/31/18

SGD Wireless Commands
weblink.ip.conn[1|2].location

weblink.ip.conn[1|2].location
This command assigns the URL of the server for this connection. The URL must follow the URL
rules for the HTTP[S] protocol outlined in RFC2396 (http://www.ietf.org/rfc/rfc2396.txt).
The setting will not take effect until the printer is reset. Changing this setting will set
weblink.printer_reset_required to "yes".
^JUF, ^JUS, ^JUN, ^JUA, and device.restore_defaults do not have any affect on this setting.

Supported Devices
• iMz™ series
• QLn™ series
• ZT200™ series
• ZD500R™ series

Type

setvar, getvar

Commands

Details

setvar

This command sets the server URL for the specified connection.
Format:
• ! U1 setvar "weblink.ip.conn1.location" "value"
• ! U1 setvar "weblink.ip.conn2.location" "value
Values: any HTTPS URL up to 2048 characters
Default: ""
This command returns the server URL currently assigned to the connection.

getvar

Format:
• ! U1 getvar "weblink.ip.conn1.location"
• ! U1 getvar "weblink.ip.conn2.location"
Example:

! U1 setvar "weblink.ip.conn2.location"
"https://my.linkos.server.com:8080/link/os"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1173

1174

SGD Wireless Commands
weblink.ip.conn[1|2].num_connections

weblink.ip.conn[1|2].num_connections
This command reports the number of established connections on conn1 and conn2. Once the
connection is established, this number will be incremented. When a channel is closed or the
connection times out, the number is decremented..

Supported Devices
• iMz™ series
• QLn™ series
• ZT200™ series
• ZD500R™ series

Type

getvar

Commands

Details

getvar

This command retrieves the number of active connections on conn1 and conn2.
Format:
• ! U1 getvar "weblink.ip.conn1.num_connections"
• ! U1 getvar "weblink.ip.conn2.num_connections"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands

weblink.ip.conn[1|2].maximum_simultaneous_
connections
This command indicates the maximum number of simultaneous connections that can be initiated by
the printer.
Via the main connection (the original connection initiated by the printer to the remote server), the
remote server can request that additional connetions from the printer be initated (e.g. a connection
that supports only JSON SGDs, one that behaves similar to the RAW TCP port.
The server is free to request as many as it thinks it needs, but the printer will prevent more than N
number of connections, where N is the value of this command.
^JUF, ^JUS, ^JUN, ^JUA, and device.restore_defaults do not have any affect on this setting.

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Type

setvar, getvar

Commands

Details

setvar

This command sets the maximum number of connections.
Format:
• ! U1 setvar "weblink.ip.conn1.maximum_simultaneous_connections" "value"
• ! U1 setvar "weblink.ip.conn2.maximum_simultaneous_connections" "value"
Values: Any integer from 1-100
Default: "10"
This command retrieves the maximum set number of connections.

getvar

Format:
• ! U1 getvar "weblink.ip.conn1.maximum_simultaneous_connections"
• ! U1 getvar "weblink.ip.conn2.maximum_simultaneous_connections"
Example: This example sets the conn1 maximum connections to 3.
! U1 setvar "weblink.ip.conn1.maximum_simultaneous_connections" "3"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1175

1176

SGD Wireless Commands
weblink.ip.conn[1|2].proxy

weblink.ip.conn[1|2].proxy
This command assigns the URL of the proxy for the connection.
The proxy server protocol, port, domain, username, and password are all encoded into the URL via
the format outlined in RFC2396 (http://www.ietf.org/rfc/rfc2396.txt).
The username and password must avoid the invalid characters listed in RFC2396 (e.g. ':', '@', '/',
etc). If an invalid character must be used it needs to be escaped using '%' as described in RFC2396.
^JUF, ^JUS, ^JUN, ^JUA, and device.restore_defaults do not have any affect on this setting.

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Type

setvar, getvar, do

Commands

Details

setvar

This command assigns the URL of the connection proxy.
Format:
• ! U1 setvar "weblink.ip.conn1.proxy" "url"
• ! U1 setvar "weblink.ip.conn2.proxy" "url"
Values:
• Any valid URL up to 2048 characters
• Expected URL format: [http|https]://[user:pass@]domain[:port]/[path]
• The URL will need to be built according to the server/proxy environment the printer is running
within.
Default: ""
• The user:pass, port, and path are all optional.
• The default scheme must be either HTTPS or HTTP. The default is HTTP.
• The default port is 1080.
• The default is to omit the username and password.

getvar

This command retrieves the URL of the connection proxy.
Format:
• ! U1 getvar "weblink.ip.conn1.proxy"
• ! U1 getvar "weblink.ip.conn2.proxy"

do

This command assigns the URL of the connection proxy.
Format:
• ! U1 do "weblink.ip.conn1.proxy" "url"
• ! U1 do "weblink.ip.conn2.proxy" "url"
Values:
• Any valid URL up to 2048 characters
• Expected URL format: [scheme://][user:pass@]domain[:port]/[path]
• The URL will need to be built according to the server/proxy environment the printer is running
within.
Default: ""
• The scheme, user:pass, port, and path are all optional.
• The default scheme is http.
• The default port is 1080.
• The default is to omit the username and password.

P1099958-001

Programming Guide

1/31/18

SGD Wireless Commands
weblink.ip.conn[1|2].proxy

Example: Examples of how to connect to various proxy servers:

http://username:password@mydomain.com:3128/
http://mydomain.com/

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1177

1178

SGD Wireless Commands
weblink.ip.conn[1|2].retry_interval

weblink.ip.conn[1|2].retry_interval
This command sets the number of seconds between attempts to connect to the server URL provided
in weblink.ip.conn1.location. If an attempt is unsuccessful or the connection is lost, the printer
will wait 'retry_interval' seconds before attempting to connect again.
^JUF, ^JUS, ^JUN, ^JUA, and device.restore_defaults do not have any affect on this setting.

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Type

setvar, getvar, do

Commands

Details

setvar

This command sets the number of seconds to wait before attempting to reconnect to the server.
Format:
• ! U1 setvar "weblink.ip.conn1.retry_interval" "value"
• ! U1 setvar "weblink.ip.conn2.retry_interval" "value"
Values: 1 - 600
Default: "10"
This command returns the number of seconds to wait between connection attempts.

getvar

Format:
• ! U1 getvar "weblink.ip.conn1.retry_interval"
• ! U1 getvar "weblink.ip.conn2.retry_interval"
This command sets the number of seconds to wait before attempting to reconnect to the server.

do

Format:
• ! U1 do "weblink.ip.conn1.retry_interval" "value"
• ! U1 do "weblink.ip.conn2.retry_interval" "value"
Values: 1 - 600
Default: "10"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
weblink.ip.conn[1|2].test.location

weblink.ip.conn[1|2].test.location
This command holds the URL for testing a connection to the internet. This is meant to assist users in
debugging their printer's connection to remote servers when there are issues with the main weblink
connection (conn1 or conn2).
The URL must follow the URL rules for the HTTP[S] protocol outlined in RFC2396
(http://www.ietf.org/rfc/rfc2396.txt).
^JUF, ^JUS, ^JUN, ^JUA, and device.restore_defaults do not have any affect on this setting.

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Type

setvar, getvar, do

Commands

Details

setvar

This command sets the URL to hold for testing a connection.
Format:
• ! U1 setvar "weblink.ip.conn1.test.location" "url"
• ! U1 setvar "weblink.ip.conn2.test.location" "url"
Values: Any HTTPS URL up to 2048 characters
Default: "http://www.zebra.com/apps/linktest"

getvar

This command retrieves the printer's test connection URL.
Format:
• ! U1 getvar "weblink.ip.conn1.test.location"
• ! U1 getvar "weblink.ip.conn2.test.location"

do

This command sets the URL to hold for testing a connection.
Format:
• ! U1 do "weblink.ip.conn1.test.location" "url"
• ! U1 do "weblink.ip.conn2.test.location" "url"
Values: Any HTTPS URL up to 2048 characters
Default: "http://www.zebra.com/apps/linktest"
Example: The test connection can assist the user in several ways/scenarios:

1. If the test.test_on value is set to "failure", any time the main weblink

(conn[1|2].location) connection fails to connect then the test.location URL will be
used. In this situation, an attempt will be made to contact the remote URL in
test.location, using authentication and proxy configuration that is specified by the
main connection.
2. If the test.test_on value is set to "interval" an attempt will be made to contact the
remote URL in test.location every test.retry_interval seconds, using
authentication and proxy configuration that is specified by the main connection.
3. If the test.test_on value is set to "both", then scenario 1 and 2 will both occur. This is
useful for users who will use an HTTP connection to move through their firewall - and
thereafter frequently refresh the connection to indicate to their firewall that there is still
activity for the purpose of keeping the connection alive.

1/31/18

Programming Guide

P1099958-001

1179

1180

SGD Wireless Commands
weblink.ip.conn[1|2].test.location

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
weblink.ip.conn[1|2].test.retry_interval

weblink.ip.conn[1|2].test.retry_interval
This command determines how often, in seconds, a connection to the test.location URL should be
attempted. This setting is only applicable when the test.test_on SGD is set to "interval" or
"both".
^JUF, ^JUS, ^JUN, ^JUA, and device.restore_defaults do not have any affect on this setting.

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Type

setevar, getvar, do

Commands

Details

setvar

This command sets the interval for how often a connection to the test.location URL should be
attempted.
Format:
• ! U1 setvar "weblink.ip.conn1.test.retry_interval" "value"
• ! U1 setvar "weblink.ip.conn2.test.retry_interval" "value"
Values: 0-1800 (in seconds, providing 0 second - 30 minute interval)
Default: "900"
This command retrieves the retry interval.

getvar

Format:
• ! U1 getvar "weblink.ip.conn1.test.retry_interval"
• ! U1 getvar "weblink.ip.conn2.test.retry_interval"
This command sets the interval for how often a connection to the test.location URL should be
attempted.

do

Format:
! U1 do "weblink.ip.conn1.test.retry_interval" "value"
! U1 do "weblink.ip.conn2.test.retry_interval" "value"
Values: 0-1800
Default: "900"

•
•

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1181

1182

SGD Wireless Commands
weblink.ip.conn[1|2].retry_interval_random_max

weblink.ip.conn[1|2].retry_interval_random
_max
Specifies the maximum random wait time in seconds for weblink connection retries.

^JUF, ^JUS, ^JUN, ^JUA, and device.restore_defaults do not have any affect

on this setting.

Setvar
To set the command:
! U1 setvar "weblink.ip.conn[1|2].retry_interval_random_max" "value"
Values:
• 0-600
Default:
"120"
Examples:
! U1 setvar "weblink.ip.conn[1].retry_interval_random_max" "120"
! U1 setvar "weblink.ip.conn[2].retry_interval_random_max" "60"

Getvar
To have the printer return the current setting value:
! U1 getvar "weblink.ip.conn[1|2].retry_interval_random_max"

Related SGDs
• weblink.ip.conn[1|2].retry_interval

Supported Printers
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500R
• ZD620
• ZQ310, ZQ320
• ZQ510, ZQ520
• ZQ610, ZQ620, ZQ630
• ZR318, ZR328
• ZR628, ZR638
• ZT210, ZT220, ZT230
P1099958-001

Programming Guide

1/31/18

SGD Wireless Commands
weblink.ip.conn[1|2].retry_interval_random_max

• ZT410, ZT420
• ZT510
• ZT610, ZT620

Notes
•
•

1/31/18

For specific product support, see xref on page xxx.
For details on command structure, see xref on page yyy.

Programming Guide

P1099958-001

1183

1184

SGD Wireless Commands
weblink.ip.conn[1|2].test.test_on

weblink.ip.conn[1|2].test.test_on
This command determines when the test connection should be attempted. This assists in debugging
the printer's connection to remote servers when there are issues with the main weblink connection
(conn1 or conn2).
^JUF, ^JUS, ^JUN, ^JUA, and device.restore_defaults do not have any affect on this setting.

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Type
Commands

setvar, getvar, do

Details
This command indicate when the test connection should be attempted.

setvar

Format:
• ! U1 setvar "weblink.ip.conn1.test.test_on" "value"
• ! U1 setvar "weblink.ip.conn2.test.test_on" "value"
Values: off,failure,interval,both
Default: "failure"
This command retrieves the test connection setting.

getvar

Format:
• ! U1 getvar "weblink.ip.conn1.test.test_on"
• ! U1 getvar "weblink.ip.conn2.test.test_on"
This command sets when the test connection should be attempted.

do

Format:
• ! U1 do "weblink.ip.conn1.test.test_on" "value"
• ! U1 do "weblink.ip.conn2.test.test_on" "value"
Values: off,failure,interval,both
Default: "failure"
Example: The test connection can assist the user is several ways/scenarios:

1. If the test.test_on value is set to "failure", any time the main weblink

(conn[1|2].location) connection fails to connect then the test.location URL will be
used. An attempt will be made to contact the remote URL in test.location, using
authentication and proxy configuration that is specified by the main connection.
2. If the test.test_on value is set to "interval" an attempt will be made to contact the
remote URL in test.location every test.retry_interval seconds, using
authentication and proxy configuration that is specified by the main connection.
3. If the test.test_on value is set to "both", then scenario 1 and 2 will both occur. This is
useful for users who will use an HTTP connection to move through their firewall - and
thereafter frequently refresh the connection to indicate to their firewall that there is still
activity for the purpose of keeping the connection alive.

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
weblink.logging.clear

weblink.logging.clear
This command clears the weblink log. Setting this value to anything will clear it, including an empty
string.
^JUF, ^JUS, ^JUN, ^JUA, and device.restore_defaults do not have any affect on this setting.
Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Type

setvar, do

Commands

Details

setvar

This command clears the weblink log entires.
Format: ! U1 setvar "weblink.logging.clear" "value"
Values: Any string value, including an empty string.
Default: NA
This command clears the weblink log entires.

do

Format: ! U1 do "weblink.logging.clear" "value"
Values: Any string value, including an empty string.
Default: NA
Example: This example clears the weblink log entries with an empty string value.
! U1 setvar "weblink.logging.clear" ""

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1185

1186

SGD Wireless Commands
weblink.logging.entries

weblink.logging.entries
This command returns the N number of entries in the weblink log, where N has a maximum value
that is set by weblink.logging.max_entries.
The weblink log is a collection of events related to connecting to a remote Link-OS™ server. The log
entries range anywhere from general status to errors that prevented a successful connection. The
log contains entries from all connections and are labeled so that it is clear which log entries are for
which connection. Each log entry also contains a timestamp for when it was logged by the system.
The newest events will appear at the bottom of the list.
^JUF, ^JUS, ^JUN, ^JUA, and device.restore_defaults do not have any affect on this setting.
Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Type

getvar

Commands

Details

getvar

This command returns a lists of entries in the weblink log.
Format: ! U1 getvar "weblink.logging.entries"
Values: NA
Default: ""
Example: This example shows the result from weblink.logging.entries:
[01-04-2013 08:40:45.655] [conn1.1] HTTP/1.1 404 Not Found
[01-04-2013 08:40:45.659] [conn1.1] Received HTTP code 404 from proxy after
CONNECT
[01-04-2013 08:40:45.660] [conn1.1] Closing connection
[01-04-2013 08:40:45.662] [conn1.1] Failed to connect (SP = 0, CU = 0, UW = 0, AC
= 0, PC = 0)

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
weblink.logging.max_entries

weblink.logging.max_entries
This command specifies the maximum number of individual log entries that will be stored in the
weblink.logging.entries command.

Important • Changes to this command are immediate and may result in some log entries
being lost. If there are N log entries currently in the log, the user sets the max_entires to M,
where M is less than N, the oldest (N-M) log entries will be removed.
^JUF, ^JUS, ^JUN, ^JUA, and device.restore_defaults do not have any affect on this setting.
Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Type

setvar, getvar, do

Commands

Details

setvar

This command sets the maximum number of log entires that will be stored.
Format: ! U1 setvar "weblink.logging.max_entries" "value"
Values: 0 - 10000
Note • Setting the value to 0 disables logging.
Default: "0"
This command returns the setting for the maximum number of log entries that will be stored.

getvar

Format: ! U1 getvar "weblink.logging.max_entries"
This command sets the maximum number of log entires that will be stored.

do

Format: ! U1 do "weblink.logging.max_entries" "value"
Values: 0 - 10000
Note • Setting the value to 0 disables logging.
Default: "0"

Example 1 • In this example, weblink.logging.max_entries is set to 3:
[01-04-2013 08:40:45.659] [conn1.1] Received HTTP code 404 from proxy after
CONNECT
[01-04-2013 08:40:45.660] [conn1.1] Closing connection
[01-04-2013 08:40:45.662] [conn1.1] Failed to connect (SP = 0, CU = 0, UW = 0, AC
= 0, PC = 0)

Example 2 • In this example, weblink.logging.max_entries is set to 2:

weblink.logging.entries becomes:
[01-04-2013 08:40:45.660] [conn1.1] Closing connection
[01-04-2013 08:40:45.662] [conn1.1] Failed to connect (SP = 0, CU = 0, UW = 0, AC
= 0, PC = 0)

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1187

1188

SGD Wireless Commands
weblink.printer_reset_required

weblink.printer_reset_required
This command retrives a "yes" or "no" value indicating whether any of the weblink settings have
been modified.
^JUF, ^JUS, ^JUN, ^JUA, and device.restore_defaults do not have any affect on this setting.

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Type

getvar

Commands

Details

getvar

This command retrieves whether any of the weblink settings are modified.
Format: ! U1 getvar "weblink.printer_reset_required"
Values: "yes" or "no"
Default: "no"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
weblink.restore_defaults

weblink.restore_defaults
This command defaults, and saves, the weblink branch settings. Any value, including an empty
string, will default the weblink branch settings.

Note • The entire weblink branch of settings will be defaulted and the settings are saved; however,
the weblink connections will not use the new settings until the printer is restarted (e.g. the
weblink.printer_reset_required SGD will be "yes" after a default).
^JUF, ^JUS, ^JUN, ^JUA, and device.restore_defaults do not have any affect on this setting.

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Type

setvar, do

Commands

Details

setvar

This command defaults the weblink branch settings.
Format: ! U1 setvar "weblink.restore_defaults" "value"
Values: Any value, including an empty string, will default the branch
Default: NA
This command defaults the weblink branch settings.

do

Format: ! U1 do "weblink.restore_defaults" "value"
Values: Any value, including an empty string, will default the branch
Default: NA
Example: These all default the branch:

!
!
!
!

U1
U1
U1
U1

setvar "weblink.restore_defaults" ""
setvar "weblink.restore_defaults" "foo"
do "weblink.restore_defaults" ""
do "weblink.restore_defaults" "foo"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1189

1190

SGD Wireless Commands
weblink.zebra_connector.authentication.add

weblink.zebra_connector.authentication.add
This command allows the user to add a single server/username/password triplet into the list of
authentication entries.
When the printer attempts to connect to the Zebra Printer Connector, the local server may require
HTTP authentication (e.g. digest, basic, DNS, etc.). There may be multiple authentication requests
along the route to the destination (e.g. a local server first requires HTTP authentication as well as on
the remote server).
For each HTTP authentication request received while attempting to connect, the printer will
enumerate the authentication entries and attempt to satisfy the request with the username/password
pair provided for the respective server. The server name in the entry is what determines which
username/password pair should be used for which authentication request. Both DNS names and IP
addresses are acceptable. The server, username, and password are separated by a single space
(not a tab or other white space character). The server name is the only required field. If no username
is supplied, but a password is, there must be two spaces between the server and the password
fields. If there is a username but no password, or simply just the servername, no space is required at
the end of the entry.
If the command is changed while the Visiility Agent is enabled, it will not take effect until the
connection is disabled, and then re-enabled.

Important • This setting only be changed when weblink.zebra_connector.enable is set to
"off".
^JUF, ^JUS, ^JUN, ^JUA, and device.restore_defaults do not have any affect on this setting.

Commands

Details

setvar

Format: ! U1 setvar "weblink.zebra_connector.authentication.add" "server

username password"
Values:
"server" = an IP address or a DNS name
"username" = user name on this server
"password" = password for this username on this server
Default: ""
Result: ! U1 setvar "weblink.zebra_connector.authentication.add" "10.3.5.70
jsmith LedZepR0cks!"
Ini

Supported Devices
• iMZ220, iMZ230
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

P1099958-001

Programming Guide

1/31/18

SGD Wireless Commands
weblink.zebra_connector.authentication.add

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1191

1192

SGD Wireless Commands
weblink.zebra_connector.authentication.entries

weblink.zebra_connector.authentication.ent
ries
This command lists the server names added to the authentication entries list.
Only the server names will be shown. The username and passwords will not be shown.The server
names are separated by a \r\n so that each shows up on its own line.
^JUF, ^JUS, ^JUN, ^JUA, and device.restore_defaults do not have any affect on this setting.

Commands

Details

getvar

Format: ! U1 getvar "weblink.zebra_connector.authentication.entries"
Result: Returns the list of servers with authentication entries.
does not return the username or passwords for those servers.
Default: ""

It

Supported Devices
• iMZ220, iMZ230
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
weblink.zebra_connector.authentication.remove

weblink.zebra_connector.authentication.rem
ove
Removes a single server/username/password triplet from the list of authentication entries.
To remove an entry only the server name is supplied, however the entire entry will be removed. If an
invalid entry is supplied no action is taken.
^JUF, ^JUS, ^JUN, ^JUA, and device.restore_defaults do not have any affect on this setting.

Commands

Details

setvar

Format: ! U1 setvar "weblink.zebra_connector.authentication.remove"

"server"
Values:
"server" = an IP address or a DNS name of the server to remove
Default: NA

Example: ! U1 setvar "weblink.zebra_connector.authentication.remove"
"10.3.5.70"
Supported Devices
• iMZ220, iMZ230
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1193

1194

SGD Wireless Commands
weblink.zebra_connector.enable

weblink.zebra_connector.enable
Enables the Visibility Agent feature.

Commands

Details

setvar

Format: ! U1 setvar "weblink.zebra_connector.enable" "value"
Values:
"on" = enables Visibility Agent
"off" = disables Visibility Agent
Default: "on"

Example:

! U1 setvar "weblink.zebra_connector.enable" "enable"

Format: ! U1 getvar "weblink.zebra_connector.enable"

getvar

Result: "on" or "off"

Supported Devices
• iMZ220, iMZ230
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500
• ZD620
• ZQ310, ZQ320
• ZQ510, ZQ520
• ZR318, ZR328, ZR338
• ZR628
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
weblink.zebra_connector.proxy

weblink.zebra_connector.proxy
This command assigns the URL for the proxy used to connect to the Zebra connector.
The proxy server protocol, port, domain, username, and password are all encoded into the URL via
the format outlined in RFC2396 (http://www.ietf.org/rfc/rfc2396.txt).
The username and password must avoid the invalid characters listed in RFC2396 (e.g. ':', '@', '/',
etc). If an invalid character must be used it needs to be escaped using '%' as described in RFC2396.
^JUF, ^JUS, ^JUN, ^JUA, and device.restore_defaults do not have any affect on this setting.

Commands

Details

setvar

Format: ! U1 setvar "weblink.zebra_connector.proxy" "url"
Values:
• Any valid URL up to 2048 characters
• Expected URL format: [http|https]://[user:pass@]domain[:port]/[path]
The URL will need to be built according to the server/proxy environment the printer is running
where
"user" = username
"password" = password
"host" = either the hostname or IP address
"port" = port number
"other" = anything else needed in the path
Default: ""
• The user:pass, port, and path are all optional.
• The default scheme must be either HTTPS or HTTP. The default is HTTP.
• The default port is 1080.
• The default is to omit the username and password.

Example: ! U1 setvar "weblink.zebra_connector.proxy"
"https://user:pass@my.internal.proxy:7840/init"
getvar

Format: ! U1 getvar "weblink.zebra_connector.proxy"
Result: "https://user:pass@my.internal.proxy:7840/init"

Supported Devices
• iMZ220, iMZ230
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

1/31/18

Programming Guide

P1099958-001

1195

1196

SGD Wireless Commands
weblink.zebra_connector.proxy

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
weblink.zebra_connector.version

weblink.zebra_connector.version
Displays the current version of the Zebra Connector.

Commands

Details

getvar

Format: ! U1 getvar "weblink.zebra_connector.version"
Values: A version number in the form of xx.yy.
Default: ""

Example:

"0.04"

Supported Devices
• iMZ220, iMZ230
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500
• ZD620
• ZQ310, ZQ320
• ZQ510, ZQ520
• ZR318, ZR328, ZR338
• ZR628
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1197

1198

SGD Wireless Commands
weblink.zebra_connector.version

P1099958-001

Programming Guide

1/31/18

wlan.11ac.80mhz_enable

wlan.11ac.80mhz_enable
Enables the 80MHz wide channel support for the 802.11AC radio.

Commands

Details

setvar

! U1 setvar "wlan.11ac.80mhz_enable" "value"
Values:
"on" = enables the 80MHz wide channel support
"off" = disables the 80MHz wide channel support
Default: "on"

! U1 getvar "wlan.11ac.80mhz_enable"

getvar

Supported Devices
• ZD410, ZD420
• ZD620
• ZT510
• ZT610, ZT620

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1199

1200

SGD Wireless Commands
wlan.11d.enable

wlan.11d.enable
Allows the client to automatically configure themselves to their local regulatory domain.

Setvar
To set the command:
! U1 setvar "wlan.11d.enable" "value"
Values:
• off
• on
Default:
"off"

Getvar
To have the printer return the current setting value:
! U1 getvar "wlan.11d.enable"

Supported Printers
• iMZ220, iMZ320
• QLn220, QLn320, QLn420
• ZD410, ZD420
• ZD500R, ZD510, ZD511
• ZD620
• ZQ310, ZQ320
• ZQ510, ZQ520
• ZQ610, ZQ620, ZQ630
• ZR318, ZR328
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Notes
•
•

P1099958-001

For specific product support, see SGD Command Support on page 1393.
For details on command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.11n.20mhz_only

wlan.11n.20mhz_only
This command forces 20 MHz operation only in printers with 802.11n radios.

Commands

Details

setvar

This command forces 20 MHz operation only in printers with 802.11n radios.
Format: ! U1 setvar "wlan.11n.20mhz_only" "value"
Values:
"on"
"off"
Default: "off"
This command returns the current setting for 20 MHz operation only.

getvar

Format: ! U1 getvar "wlan.11n.20mhz_only"
Example:
U1 setvar "wlan.11n.20mhz_only" "on"

Supported Devices ZT200 Series
Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1201

1202

SGD Wireless Commands
wlan.11n.aggregation

wlan.11n.aggregation
This command enable or disables Aggregation MAC Service Data Unit (A-MSDU) in 802.11n radio
communications.

Commands

Details

setvar

This command enables or disables A-MSDU in 802.11n radio communications.
Format: ! U1 setvar "wlan.11n.aggregation" "value"
Values:
"on"
"off"
Default: "off"
This command returns the current setting for A-MSDU.

getvar

Format: ! U1 getvar "wlan.11n.aggregation"
Example:
U1 setvar "wlan.11n.aggregation" "on"

Supported Devices ZT200 Series
Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.11n.greenfield

wlan.11n.greenfield
This command will enable or disable greenfield mode in 802.11n radio communications.

Commands

Details

setvar

This command enables/disables greenfield mode.
Format: ! U1 setvar "wlan.11n.greenfield" "value"
Values:
"on"
"off"
Default: "off"
This command returns the current setting for greenfield mode.

getvar

Format: ! U1 getvar "wlan.11n.greenfield"
Example:
U1 setvar "wlan.11n.greenfield" "on"

Supported Devices ZT200 Series
Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1203

1204

SGD Wireless Commands
wlan.11n.rifs

wlan.11n.rifs
This command enable/disables Reduced Interframe Space (RIFS) in 802.11n radio communications.

Commands

Details

setvar

This command enable/disables RIFS in 802.11n.
Format: ! U1 setvar "wlan.11n.rifs" "value"
Values:
"on"
"off"
Default: "off"
This command returns the current setting for RIFS.

getvar

Format: ! U1 getvar "wlan.11n.rifs"
Example:
U1 setvar "wlan.11n.rifs" "on"

Supported Devices ZT200 Series
Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.11n.short_gi_40mhz

wlan.11n.short_gi_40mhz
This command enables/disables short Guard Interval in 40 mhz mode.

Commands

Details

setvar

This command enables/disables short Guard Interval in 40 mhz mode.
Format: ! U1 setvar "wlan.11n.short_gi_40mhz" "value"
Values:
"on"
"off"
Default: "off"
This command returns the current setting for short Guard Interval 40mhz operation.

getvar

Format: ! U1 getvar "wlan.11n.short_gi_40mhz"
Example:
U1 setvar "wlan.11n.short_gi_40mhz" "on"

Supported Devices ZT200 Series
Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1205

1206

SGD Wireless Commands
wlan.11n.short_gi_20mhz

wlan.11n.short_gi_20mhz
This command enables/disables short Guard Interval (GI) in 20 mhz mode.

Commands

Details

setvar

This command enables/disables short Guard Interval in 20 mhz mode.
Format: ! U1 setvar "wlan.11n.short_gi_20mhz" "value"
Values:
"on"
"off"
Default: "off"
This command returns the current setting for short Guard Interval 20mhz operation.

getvar

Format: ! U1 getvar "wlan.11n.short_gi_20mhz"
Example:
U1 setvar "wlan.11n.short_gi_20mhz" "on"

Supported Devices ZT200 Series
Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.8021x.enable

wlan.8021x.enable
Enables or disables the 802.1x security protocol, with the option to set it to WPA security
protocol.

Setvar
To set the command:
! U1 setvar "wlan.8021x.enable" "value"
Values:
• off — 802.1x security protocol is disabled.
• on — 802.1x security protocol is enabled.
• wpa — 802.1x security protocol is enabled and uses WPA.
Default:
off

Getvar
To have the printer return the current setting value:
! U1 getvar "wlan.8021x.enable"

Supported Printers
• QLn220, QLn320, QLn420
• ZD400, ZD410, ZD420
• ZD500R
• ZD620
• ZT210, ZT220, ZT230
• ZT410, ZT420
• ZT510
• ZT610, ZT620

Notes
•
•

1/31/18

For specific product support, see xref on page xxx.
For details on command structure, see xref on page yyy.

Programming Guide

P1099958-001

1207

1208

SGD Wireless Commands
wlan.8021x.validate_peap_server_certificate

wlan.8021x.validate_peap_server_certificat
e
This command determines if the printer will validate the PEAP server certificate.

Commands

Details

setvar

Description
Format:
! U1 setvar "wlan.8021x.validate_peap_server_certificate" "value"
Values:
"on"
"off"
Default: "on"
This command returns the current setting.

getvar

Format:
! U1 getvar "wlan.8021x.validate_peap_server_certificate"
Example:

! U1 setvar "wlan.8021x.validate_peap_server_certificate"

Important • When using certificate files, the time on the printer must be set correctly for
the websocket connection to succeed, as the time is used in the certificate validation.
Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.active_channels

wlan.active_channels
This command returns list of current active channels defined by wlan.allowed_band on page 1214
and wlan.user_channel_list on page 1300.

Supported Devices ZT200 Series

Type

getvar

Commands

Details

getvar

This command returns the list of current active channels.
Format: ! U1 getvar "wlan.active_channels"
Result: One or more of the following channels:
1,2,3,4,5,6,7,8,9,10,11,36,40,44,48,52,56,60,64,100,104,108,
112,116,132,136,140,149,153,157,161,165,all

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1209

1210

SGD Wireless Commands
wlan.adhoc_last_channel

wlan.adhoc_last_channel
Reports the last channel used for WiFi ad hoc communication.

Commands

Details

getvar

Format: ! U1 getvar "wlan.adhoc_last_channel"
Values: a numeric value between 1-11
Default: "1"

Supported Devices
• iMZ 220, iMZ320
• QLn220, QLn320, QLn420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.authenticated

wlan.authenticated
Returns the authentication state of the wireless interface.

Commands

Details

getvar

Format: ! U1 getvar "wlan.authenticated"
Values:
"yes" = the printer wlan connection has been authenticated
"no" = the printer wlan connection has not been authenticated

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR338
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1211

1212

SGD Wireless Commands
wlan.authentication_error

wlan.authentication_error
Reports the last error that occurred during the WLAN authentication process.

Commands

Details

getvar

Format: ! U1 getvar "wlan.authentication_error"
Values:
"none" = the authentication was successful.
"timed out" = the authentication did not succeed in the allotted time.

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR338
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.available

wlan.available
Determines if a WLAN radio has been installed in the printer.

Commands

Details

getvar

Format: ! U1 getvar "wlan.available"
Values:
"yes" = a WLAN radio is installed
"no" = a WLAN radio is installed

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR338
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1213

1214

SGD Wireless Commands
wlan.allowed_band

wlan.allowed_band
This command provides a method to restrict the 802.11n radio to either the 2.4 GHz or 5 GHz band.
Use this option when it is beneficial to have the radio use only one frequency band. Setting the
802.11n radio to one band will reduce roaming and radio association times since the radio will not
scan as many channels.

Commands

Details

setvar

This command restricts the 802.11n radio to either the 2.4 GHz or 5 GHz band.
Format: ! U1 setvar "wlan.allowed_band" "value"
Values: "2.4, 5, all"
Default: "all"
Note • If both bands are desired, use "all"
This command returns the current setting for allowed bands.

getvar

Format: ! U1 getvar "wlan.allowed_band"
Example: This example sets the allowed band to only the 2.4 GHz band.
U1 setvar "wlan.allowed_band" "2.4"

Related Commands:
• wlan.active_channels on page 1209
• wlan.user_channel_list on page 1300

Supported Devices ZT200 Series
Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.adhocautomode

wlan.adhocautomode
This printer setting refers to enabling or disabling the adhoc auto mode.

Commands

Details

setvar

This command instructs the printer to set the adhoc auto mode.
Format: ! U1 setvar "wlan.adhocautomode" "value"
Values:
"on" = adhoc auto mode enabled
"off" = adhoc auto mode disabled
Default: "off"
This command instructs the printer to respond with the adhoc auto mode status.

getvar

Format: ! U1 getvar "wlan.adhocautomode"
Example: This setvar example shows the value set to "on".
! U1 setvar "wlan.adhocautomode" "on"
When the setvar value is set to "on", the getvar result is "on".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1215

1216

SGD Wireless Commands
wlan.adhocchannel

wlan.adhocchannel
This printer setting refers to specifying the wireless channel for adhoc channel.

Commands

Details

setvar

This command instructs the printer to set the wireless channel for adhoc channel mode.
Format: ! U1 setvar "wlan.adhocchannel" "value"
Values: Decimal value between 1 and 16 inclusive
Default: "1"
This command instructs the printer to respond with the wireless channel for adhoc channel mode.

getvar

Format: ! U1 getvar "wlan.adhocchannel"
Example: This setvar example shows the value set to "1".
! U1 setvar "wlan.adhocchannel" "1"
When the setvar value is set to "1", the getvar result is "1".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.associated

wlan.associated
This command refers to if the printer is or is not associated with an access point (AP).
getvar

Commands

Details

getvar

This command instructs the printer to respond with yes or no, which identifies if it is associated
with the AP.
Format: ! U1 getvar "wlan.associated"
Example: In this example, the getvar result is "yes".
! U1 getvar "wlan.associated"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1217

1218

SGD Wireless Commands
wlan.auth_type

wlan.auth_type
This parameter selects the authentication service to be used between the printer and the Access
Point. Open System and Shared Key are the two types of authentication services.

Commands

Details
This command instructs the printer to set the authentication type to the specified value.

setvar

Format: ! U1 setvar "wlan.auth_type" "value"
Values:
"open"
"shared"
Default: "open"
This command instructs the printer to retrieve the current authentication type.

getvar

Format: ! U1 getvar "wlan.auth_type"

Example 1 • This example instructs the printer to set the authentication type to Shared Key.
! U1 setvar "wlan.auth_type" "shared"
The authentication type will ble set to Shared Key after power cycle.

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.bssid

wlan.bssid
This command returns the MAC address of the access point (AP) with which the printer is
associated.
getvar

Commands

Details

getvar

This command retrieves the MAC address of the access point (AP).
Format: ! U1 getvar "wlan.bssid"
Example: In this example, the getvar result is the MAC address of the access point.
! U1 getvar "wlan.bssid"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1219

1220

SGD Wireless Commands
wlan.channel

wlan.channel
This command retrieves the current WI-FI channel the printer is using.
getvar

Commands

Details

getvar

This command retrieves the current WI-FI channel the printer is using.
Format: ! U1 getvar "wlan.channel"
Example: In this example, the getvar retrieves the current WI-FI channel the printer is using.
! U1 getvar "wlan.channel"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.channel_mask

wlan.channel_mask
This command specifies the wireless channel masks for enabling and disabling various channels.
This controls which b/g radio channels can be used by the radio for network connections.
The value for this command is a bit field where a 0 disables a channel and a 1 enables the channel.
Starting from the right, bit 0 is for channel 1, bit 1 for channel 2, etc. This can be used to limit the
channels scanned for networks, which may slightly improve connection and roaming speed. It also
used to ensure compliance with the regulatory domains of your location.

Commonly Used Channel Mask Settings

Region

Channels

Channel Mask

United States, Canada, Latin America

1 - 11

0x7FF

Europe, Middle East, Africa, other

1 - 13

0x1FFF

Japan

1 - 14

0x3FFF

Note • This command is not supported by all radios. Ensure the channel masks are set in
accordance with the regulatory domains of your country.

Commands

Details

setvar

This command instructs the printer to set the wireless channel mask value.
Format: ! U1 setvar "wlan.channel_mask" "value"
Values: "0x0000" to "0xFFFF" (4 hexadecimal digits preceded by "0x")
Default: "0x7FF"
This command instructs the printer to respond with the wireless channel mask value.

getvar

Format: ! U1 getvar "wlan.channel_mask"

Example 1 • This setvar example shows the value set to "0x7FF" for common North American
channels.
! U1 setvar "wlan.channel_mask" "0x7FF"
Example 2 • This setvar example sets the channel mask to use only channels 1,6,11.
! U1 setvar "wlan.channel_mask" "0x421"
Result: Only channels 1, 6, and 11 will be used by the radio.

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1221

1222

SGD Wireless Commands
wlan.country_code

wlan.country_code
This command defines the regulatory country for which the radio is currently configured.

Commands

Format and Details

setvar

Sets the country code for which the radio is to be configured.
Format: ! U1 setvar "wlan.country_code" "value"

Important • The list of country codes is specific to each printer and depends on the
printer model and its wireless radio configuration. The list is subject to change,
addition, or deletion with any firmware update, at any time, without notice.
To determine the country codes available on your printer, issue the ! U1 getvar "wlan"
command to return all commands related to WLAN settings. Locate the
wlan.country.code command in the results and view the country codes available for
your printer.
Retrieves the country code for which the radio is currently configured.

getvar

! U1 getvar "wlan.country_code"
Example: In this example, the setvar sets the country code to USA/Canada.
! U1 setvar "wlan.country_code" "usa/canada"

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZT210, ZT220, ZT230, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.current_tx_rate

wlan.current_tx_rate
This command retrieves the transmission rate of the wireless print server.
getvar

Commands

Details

getvar

This command instructs the printer to retrieve the current transmit rate of the wireless print server.
Format: ! U1 getvar "wlan.current_tx_rate"
Example: In this example, the getvar retrieves the transmission rate of the wireless print server.
! U1 getvar "wlan.current_tx_rate"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1223

1224

SGD Wireless Commands
wlan.enable

wlan.enable
This parameter can be used to enable or disable printer’s Wireless LAN functionality.

Commands

Details

setvar

Format: ! U1 setvar "wlan.enable" "value"
Values:
"on" = Wireless LAN functionality is enabled
"off" = Wireless LAN functionality is disabled
Default: "off"
Format: ! U1 getvar "wlan.enable"

getvar

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR338
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.encryption_index

wlan.encryption_index
This parameter refers to the WEP (Wired Equivalent Privacy) encryption key index. It determines
which one of the four encryption keys is to be used by the client (printer).

Commands

Details

setvar

This command instructs the printer to set the encryption key index the specified value.
Format: ! U1 setvar "wlan.encryption_index" "value"
Values:
"1"
"2"
"3"
"4"
Default: "1"
This command instructs the printer to retrieve the current encryption key setting.

getvar

Format: ! U1 getvar "wlan.encryption_index"
Example: In this example, the setvar command instructs the printer to set the encryption key index
to 1.
! U1 setvar "encryption_index" "1"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1225

1226

SGD Wireless Commands
wlan.encryption_key[1|2|3|4]1

wlan.encryption_key[1|2|3|4]1
These parameters refer to the first, second, third, and fourth indexed WEP encryption keys. The
WEP encryption keys are hexadecimal strings that are either 10 or 26 characters long depending on
the encryption method (40-bit or 128 bit). The keys should match the wireless network WEP
encryption keys.

Commands

Details

setvar

This command instructs the printer to set the encryption key value.
Format: ! U1 setvar "wlan.encryption_key[1|2|3|4]" "value"
Values: 10 hexadecimal characters for 40-bit encryption and 26 hexadecimal characters for 128bit encryption.
Default: All zeroes (10 or 26, depending on encryption setting)
This command instructs the printer respond with the encryption key value.

getvar

Format: ! U1 getvar "wlan.encryption_key1"

Example 1 • In these examples, the getvar results assume that the printer is using 40-bit
encryption with the default settings.
! U1 getvar "wlan.encryption_key1"
! U1 getvar "wlan.encryption_key2"
! U1 getvar "wlan.encryption_key3"
! U1 getvar "wlan.encryption_key4"
Results for each key: "0000000000"

Example 2 • In these examples, the setvar command instructs the printer to set the encryption key
value. This example assumes that the printer is using 40-bit encryption.
! U1 setvar "wlan.encryption_key1" "A1B2C3D4F5"
! U1 setvar "wlan.encryption_key2" "G1H2J3K4L5"
! U1 setvar "wlan.encryption_key3" "M1N2P3Q4R5"
! U1 setvar "wlan.encryption_key4" "S1T2V3W4X5"
Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.encryption_mode

wlan.encryption_mode
This parameter refers to WEP (Wired Equivalent Privacy) encryption. This parameter enables and
disables the printer’s WEP encryption. When using WEP encryption make sure that the encryption
key matches the wireless network WEP encryption key.

Commands

Details

setvar

This command instructs the printer to turn the LEAP mode "on" or "off".
Format: ! U1 setvar "wlan.encryption_mode" "value"
Values:
"off"
"40-bit"
"128-bit"
Default: "off"
This command returns the type of encryption that is currently being used by the printer.

getvar

Format: ! U1 getvar "wlan.encryption_mode"

Example 1 • This example instructs the printer to set encryption to 40-bit.
! U1 setvar "wlan.encryption_mode" "40-bit"

Example 2 • This example instructs the printer to turn encryption off.
! U1 setvar "wlan.encryption_mode" "off"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1227

1228

SGD Wireless Commands
wlan.essid

wlan.essid
This printer setting refers to the printer’s stored ESSID. Setting the ESSID to "" will set the printer in
a "broadcast" mode.

Commands

Details

setvar

This command instructs the printer to change the ESSID.
Format: ! U1 setvar "wlan.essid" "value"
Values: 32 character alphanumeric string
Default: "125"
This command instructs the printer to respond with the stored ESSID value.

getvar

Format: ! U1 getvar "wlan.essid"
Example: This setvar example shows the value set to "125".
! U1 setvar "wlan.essid" "125"
When the setvar value is set to "125", the getvar result is "125".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.firmware_version

wlan.firmware_version
This command refers to the firmware version of the wireless radio card.
getvar

Commands

Details

getvar

This command instructs the printer to respond with the current version of the wireless radio card
firmware.
Format: ! U1 getvar "wlan.firmware_version"
Example: In this example, the getvar result is the version of Symbol 4137 card (for example,
"F3.91-69").
! U1 getvar "wlan.firmware_version"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1229

1230

SGD Wireless Commands
wlan.ip.addr

wlan.ip.addr
This command allows you to get or set the wireless print servers’s IP address.

Important • For a set IP address to take affect, the IP protocol must be set to permanent and
the print server must be reset.

Commands

Details

setvar

This command instructs the printer to change its current wireless print server IP address upon
powering the printer on.
Format: ! U1 setvar "wlan.ip.addr" "value"
Values: any valid IP address
Default: "0.0.0.0"
Note • The setvar value of this command can be affected by the
wlan.ip.dhcp.enable command.
This command instructs the printer to respond with its current wireless print server IP address.

getvar

Format: ! U1 getvar "wlan.ip.addr"
Example: This setvar example shows the value set to "10.14.4.235".
! U1 setvar "wlan.ip.addr" "10.14.4.235"
What the setvar value is set to is the getvar result. In this example, the getvar result is
"10.14.4.235".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.ip.arp_interval

wlan.ip.arp_interval
This print server setting allows you to specify the ARP (Address Resolution Protocol) interval or the
ARP cache time out for the wireless print server.

Commands

Details

setvar

This command instructs the printer to respond with the ARP interval or the
ARP cache time out value for the wireless print server.
Format: ! U1 setvar "wlan.ip.arp_interval" "value"
Values: 0 to 30 seconds
Default: "0"
This command instructs the printer to respond with the ARP interval or the ARP cache time out
value (in seconds) for the wireless print server.

getvar

Format:

! U1 getvar "wlan.ip.arp_interval"

Example: This setvar example shows the value set to "0".
! U1 setvar "wlan.ip.arp_interval" "0"
What the setvar value is set to is the getvar result. In this example, the getvar result is "0".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1231

1232

SGD Wireless Commands
wlan.ip.default_addr_enable

wlan.ip.default_addr_enable
This command allows you to default the wireless print server’s IP address.

Important • For a set IP address to take affect, the IP protocol must be set to permanent and
the print server must be reset.

Commands

Details

setvar

This command tells the printer to use it’s default address, if no address is provided through DHCP
or BOOTP. If you do not assign an IP address after 2 minutes, the 10/100 Internal PS defaults to
IP address 192.168.254.254.
Format: ! U1 setvar "wlan.ip.default_addr_enable" "value"
Values:
"on" = enabled
"off" = disabled
Default:

"on"

This command instructs the printer to show the status of the setting of the wireless print server’s
default IP address feature.

getvar

Format: ! U1 getvar "wlan.ip.default_addr_enable"
Example: This setvar example shows the value set to "on".
! U1 setvar "wlan.ip.default_addr_enable" "on"
What the setvar value is set to is the getvar result. In this example, the getvar result is "on".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.ip.dhcp.arp_verify

wlan.ip.dhcp.arp_verify
Specifies whether an ARP broadcast will be sent out to verify that the IP address received from the
DHCP server is not already in use.

Commands

Details

setvar

Format: ! U1 setvar "wlan.ip.dhcp.arp_verify" "value"
Values:
"on" = an ARP broadcast will be sent out
"off" = and ARP broadcast will not be sent out
Default:
"on" = for Desktop and Industrial printers
"off" = for Mobile printers
Format: ! U1 getvar "wlan.ip.dhcp.arp_verify"

getvar

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR338
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1233

1234

SGD Wireless Commands
wlan.ip.dhcp.cache_ip

wlan.ip.dhcp.cache_ip
This command enables or disables the IP cache of the wireless print server.

Commands

Details

setvar

This command sets the status of the IP cache.
Format: ! U1 setvar "ip.dhcp.cache_ip" "value"
Values:
"on" = enabled
"off” = disabled
Default: "off”
This command retrieves the status of the IP cache.

getvar

Format: ! U1 getvar "wlan.ip.dhcp.cache_ip"
Example: This setvar example shows the value set to "off".
! U1 setvar "wlan.ip.dhcp.cache_ip" "off"
When the setvar value is set to "off", the getvar result is "off".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.ip.dhcp.cid_all

wlan.ip.dhcp.cid_all
This printer setting defines the entire client identifier (DHCP option 61) if DHCP is enabled on the
wireless print server and "wlan.ip.dhcp.cid_type" is set to "0", or "2". The MAC address is
used if the type is set to "1".

Commands

Details

setvar

This command instructs the printer to change the client identifer prefix and suffix of the wireless
print server. The prefix gets cleared and the suffix contains the entire client identifer.
Format: ! U1 setvar "wlan.ip.dhcp.cid_all" "value"
Values: A maximum length of 60 characters if the CID type is ASCII, or 120 characters if the CID
type is hexadecimal.
Default: ""
This command instructs the printer to respond with the client identifier prefix and suffix of the
wireless print server.

getvar

Format: ! U1 getvar "wlan.ip.dhcp.cid_all"
Example: This setvar example shows the value set to "printer".
! U1 setvar "wlan.ip.dhcp.cid_all" "printer"
What the setvar value is set to is the getvar result. In this example, the getvar result is
"printer".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1235

1236

SGD Wireless Commands
wlan.ip.dhcp.cid_enable

wlan.ip.dhcp.cid_enable
This command determines if DHCP (option 61) is turned on or off of the wireless print server.

Commands

Details

setvar

This command instructs the printer to set the status of the client identifier of the wireless print
server.
Format:

! U1 setvar "wlan.ip.dhcp.cid_enable" "value"

Values:
"off" = client identifier is turned off
"on" = client identifier is turned on
Default: "off"
This command instructs the printer to respond with the status of the client identifier of the wireless
print server.

getvar

Format: ! U1 getvar "wlan.ip.dhcp.cid_enable"
Example: This setvar example shows the value set to "off".
! U1 setvar "wlan.ip.dhcp.cid_enable" "off"
What the setvar value is set to is the getvar result. In this example, the getvar result is "off".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.ip.dhcp.cid_prefix

wlan.ip.dhcp.cid_prefix
This printer setting defines the prefix to be prepended to the DHCP client identifier (option 61) when
DHCP is enabled on the wireless print server and "wlan.ip.dhcp.cid_type" is set to "0" or "2".

Commands

Details

setvar

This command instructs the printer to change the CID prefix of the wireless print server.
Format: ! U1 setvar "wlan.ip.dhcp.cid_prefix" "value"
Values: Any text string up to 10 characters if the CID type is ASCII, or 20 characters if the CID
type is hexadecimal.
Default: ""
This command instructs the printer to respond with the client identifier prefix of the wireless print
server.

getvar

Format: ! U1 getvar "wlan.ip.dhcp.cid_prefix"
Example: This setvar example shows the value set to "PRT001".
! U1 setvar "wlan.ip.dhcp.cid_prefix" "PRT001"
What the setvar value is set to is the getvar result. In this example, the getvar result is "PRT001".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1237

1238

SGD Wireless Commands
wlan.ip.dhcp.cid_suffix

wlan.ip.dhcp.cid_suffix
This printer setting defines the unique suffix to be used as the client identifier (DHCP option 61) if
DHCP is enabled on the wireless print server and "wlan.ip.dhcp.cid_type" is set to "0" or "2".

Commands

Details

setvar

This command instructs the printer to change the client identifier suffix value on the wireless print
server.
Format: ! U1 setvar "wlan.ip.dhcp.cid_suffix" "value"
Values: The maximum length of a value allowed is 60 ASCII characters when the CID type is
ASCII, or 120 hexadecimal values when the CID type is hexadecimal.
Default: ""
This command instructs the printer to respond with the client identifier suffix on the wireless print
server.

getvar

Format: ! U1 getvar "wlan.ip.dhcp.cid_suffix"
Example: This setvar example shows the value set to "printer".
! U1 setvar "wlan.ip.dhcp.cid_suffix" "printer"
What the setvar value is set to is the getvar result. In this example, the getvar result is
"printer".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.ip.dhcp.cid_type

wlan.ip.dhcp.cid_type
This printer setting defines the type of client identifier (DHCP option 61) that will be sent if DHCP is
enabled on the wireless print server. A value of "1" means the type of "Ethernet" and the printer’s
MAC address will be used. A value of "0" or "2" means the client identifier sent will be
"wlan.ip.dhcp.cid_prefix" concatenated with "wlan.ip.dhcp.cid_suffix".

Commands

Details

setvar

This command instructs the printer to enable "synthetic" client identifier for the wireless print
server.
Format:
Values:
"0"
"1"
"2"
Default:

! U1 setvar "wlan.ip.dhcp.cid_type" "value"
= ASCII string
= wireless radio card’s MAC address
= HEX value

"1"

This command instructs the printer to respond with the client identifier type for the wireless print
server.

getvar

Format:

! U1 getvar "wlan.ip.dhcp.cid_type"

Example: This setvar example shows the value set to "1".
! U1 setvar "wlan.ip.dhcp.cid_type" "1"
What the setvar value is set to is the getvar result. In this example, the getvar result is "1".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1239

1240

SGD Wireless Commands
wlan.ip.dhcp.lease.last_attempt

wlan.ip.dhcp.lease.last_attempt
This command retrieves the last time a DHCP request was sent from the wireless print server.
getvar

Commands

Details

getvar

This command retrieves the last time a DHCP request was sent from the wireless print server.
Format: ! U1 getvar "wlan.ip.dhcp.lease.last_attempt"
Example: In this example, the getvar retrieves the last time a DHCP request was sent from the
wireless print server.
! U1 getvar "wlan.ip.dhcp.lease.last_attempt"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.ip.dhcp.lease.length

wlan.ip.dhcp.lease.length
This command retrieves the original length (in seconds) of the DHCP lease on the wireless print
server.
getvar

Commands

Details

getvar

This command retrieves the original length (in seconds) of the DHCP lease on the wireless print
server.
Format: ! U1 getvar "wlan.ip.dhcp.lease.length"
Example: This command retrieves the original length of the DHCP lease on the wireless print
server.
! U1 getvar "wlan.ip.dhcp.lease.length"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1241

1242

SGD Wireless Commands
wlan.ip.dhcp.lease.server

wlan.ip.dhcp.lease.server
This command retrieves the address of the print server that provided the DHCP lease on the
wireless print server.
getvar

Commands

Details

getvar

This command retrieves the address if the print server that provided the DHCP lease on the
wireless print server.
Format: ! U1 getvar "wlan.ip.dhcp.lease.server"
Example: In this example, the getvar retrieves the server that provided the DHCP lease on the
wireless print server.
! U1 getvar "wlan.ip.dhcp.lease.server"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.ip.dhcp.lease.time_left

wlan.ip.dhcp.lease.time_left
This command retrieves the time (in seconds) left in the current DHCP lease on the wireless print
server.
getvar

Commands

Details

getvar

This command retrieves the time (in seconds) left in the current DHCP lease on the wireless print
server.
Format: ! U1 getvar "wlan.ip.dhcp.lease.time_left"
Example: In this example, the getvar retrieves the time left in the current DHCP lease on the
wireless print server.
! U1 getvar "wlan.ip.dhcp.lease.time_left"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1243

1244

SGD Wireless Commands
wlan.ip.dhcp.option12

wlan.ip.dhcp.option12
This command specifies if the DHCP option 12 (host name) is on or off in the discovery packet that
is sent from the wireless print server.

Commands

Details

setvar

This command instructs the printer to set the DHCP option 12 (host name) is on or off in the
discovery packet that is sent from the wireless print server.
Format: ! U1 setvar "wlan.ip.dhcp.option12" "value"
Values:
"on" = turns on option 12
"off" = turns off option 12
Default: "on"
This command retrieves the status of the DHCP option 12 (host name) is on or off in the discovery
packet that is sent from the wireless print server.

getvar

Format: ! U1 getvar "wlan.ip.dhcp.option12"
Example: This setvar example shows the value set to "on".
! U1 setvar "wlan.ip.dhcp.option12" "on"
When the setvar value is set to "on", the getvar result is "on".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.ip.dhcp.option12_format

wlan.ip.dhcp.option12_format
This command specifies the format of the option 12 value to be used in the discovery packet of the
wireless print server.

Commands

Details

setvar

This command instructs the printer to set the format of option 12 value to be used in the discovery
packet of the wireless print server.
Format: ! U1 setvar "wlan.ip.dhcp.option12_format" "value"
Values: string
Default: ""
This command retrieves the format of option 12 value to be used in the discovery packet of the
wireless print server.

getvar

Format: ! U1 getvar "wlan.ip.dhcp.option12_format"
Example: This setvar example shows configuring the wlan.ip.dhcp.option12_format to the value
contained in the device.friendly_name.
It is necessary to surround the SGD entry to be used as source for the data with the < and >
characters.
! U1 setvar "wlan.ip.dhcp.option12_format" ""
To further explain, if the above command was issued and the value currently stored in the
device.friendly_name parameter was "ShipPrinter", then the response to following command would
be "ShipPrinter":
! U1 getvar "wlan.ip.dhcp.option12_value"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1245

1246

SGD Wireless Commands
wlan.ip.dhcp.option12_value

wlan.ip.dhcp.option12_value
This command retrieves the actual value which will be used in the discovery packet of the wireless
print server.
getvar

Commands

Details

getvar

This command retrieves the actual value which will be used in the discovery packet of the wireless
print server.
Format: ! U1 getvar "wlan.ip.dhcp.option12_value"
Example: This setvar example shows configuring the wlan.ip.dhcp.option12_format to the value
contained in the device.friendly_name.
It is necessary to surround the SGD entry to be used as source for the data with the < and >
characters.
! U1 setvar "wlan.ip.dhcp.option12_format" ""
To further explain, if the above command was issued and the value currently stored in the
device.friendly_name parameter was "ShipPrinter", then the response to following command would
be "ShipPrinter":
! U1 getvar "wlan.ip.dhcp.option12_value"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.ip.dhcp.request_timeout

wlan.ip.dhcp.request_timeout
This command sets the maximum time (in seconds) to wait for a response to a DHCP discovery
request on the wireless print server.

Commands

Details

setvar

This command instructs the printer to set the maximum time (in seconds) to wait for a response to
a DHCP discovery request on the wireless print server.
Format: ! U1 setvar "wlan.ip.dhcp.request_timeout" "value"
Values: "2" through "30"
Default: "2"
This command retrieves the maximum time (in seconds) to wait for a response to a DHCP
discovery request on the wireless print server.

getvar

Format: ! U1 getvar "wlan.ip.dhcp.request_timeout"
Example: This setvar example shows the value set to "2".
! U1 setvar "wlan.ip.dhcp.request_timeout" "2"
When the setvar value is set to "2", the getvar result is "2".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1247

1248

SGD Wireless Commands
wlan.ip.dhcp.requests_per_session

wlan.ip.dhcp.requests_per_session
This command retrieves the maximum amount of DHCP discover requests for a single DHCP
session on the wireless print server.

Commands

Details

setvar

This command instructs the printer to set the maximum amount of DHCP discover requests for a
single DHCP session on the wireless print server.
Format: ! U1 setvar "wlan.ip.dhcp.requests_per_session" "value"
Values: "1" through "10"
Default: "2"
This command retrieves the currently set maximum amount of DHCP discover requests for a
single DHCP session on the wireless print server.

getvar

Format: ! U1 getvar "wlan.ip.dhcp.requests_per_session"
Example: This setvar example shows the value set to "2".
! U1 setvar "wlan.ip.dhcp.requests_per_session" "2"
When the setvar value is set to "2", the getvar result is "2".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.ip.dhcp.session_interval

wlan.ip.dhcp.session_interval
This command retrieves how long it will take for a DHCP session to time out before a new DHCP
session begins on the wireless print server.

Commands

Details

setvar

This command instructs the printer to set the DHCP session time out.
Format: ! U1 setvar "wlan.ip.dhcp.session_interval" "value"
Values: "0" through "60"
Default: "10"
This command retrieves the current DHCP session time out.

getvar

Format: ! U1 getvar "wlan.ip.dhcp.session_interval"
Example: This setvar example shows the value set to "10".
! U1 setvar "wlan.ip.dhcp.session_interval" "10"
When the setvar value is set to "10", the getvar result is "10".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1249

1250

SGD Wireless Commands
wlan.ip.dns.servers

wlan.ip.dns.servers
This command retrieves a space delimited list of the domain name servers from a wlan print server.
getvar

Commands

Details
This command retrieves a list of space delimited DNS wlan print servers.

getvar

Format: ! U1 getvar "wlan.ip.dns.servers"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.ip.gateway

wlan.ip.gateway
This command instructs the printer to change the wireless print server’s gateway address.

Note • This setting refers to the gateway address. A set value is ignored if the IP protocol is not
set to permanent.

Commands

Details

setvar

This command instructs the printer to change the wireless printer server’s gateway address.
Format:

! U1 setvar "wlan.ip.gateway" "value"

Values: Any valid gateway address
Default: "0.0.0.0"
This command instructs the printer to respond with the wireless printer server’s gateway address.

getvar

Format:

! U1 getvar "wlan.ip.gateway"

Example: This setvar example shows the value set to "10.3.5.1".
! U1 setvar "wlan.ip.gateway" "10.3.5.1"
When the setvar value is set to "10.3.5.1", the getvar result is "10.3.5.1".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1251

1252

SGD Wireless Commands
wlan.ip.netmask

wlan.ip.netmask
This setting refers to the wireless print server’s subnet mask address. This value is ignored if the IP
protocol is not set to permanent.

Commands

Details

setvar

This command instructs the printer to change the wireless print servers’s subnet mask.
Format:

! U1 setvar "wlan.ip.netmask" "value"

Values: Any valid subnet mask.
Default: "255.255.255.0"
This command instructs the printer to respond with wireless print server’s subnet mask.

getvar

Format:

! U1 getvar "wlan.ip.netmask"

Example: This setvar example shows the value set to "255.255.255.0".
! U1 setvar "wlan.ip.netmask" "255.255.255.0"
When the setvar value is set to "255.255.255.0", the getvar result is "255.255.255.0".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.ip.port

wlan.ip.port
This printer setting refers to the wireless print server’s port number that the TCP print service is
listening on. Normal TCP communications from the host should be directed to this port.

Commands

Details

setvar

This command instructs the printer to set the wireless print server’s TCP/UDP port number.
Format: ! U1 setvar "wlan.ip.port" "value"
Values: 1 - 65535 (excluding any ports currently used by other services, such as 21, 23, 80, and
515).
Default: "9100"
This command instructs the printer to respond with the wireless printer server’s TCP/UDP port
number.

getvar

Format: ! U1 getvar "wlan.ip.port"
Example: This setvar example shows the value set to "9100".
! U1 setvar "wlan.ip.port" "9100"
When the setvar value is set to "9100", the getvar result is "9100".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1253

1254

SGD Wireless Commands
wlan.ip.port_alternate

wlan.ip.port_alternate
This command sets the port number of the alternate wlan port.

Note • Print servers supporting this command will monitor both the primary port and the alternate
port for connections at the same time.

Commands

Details

setvar

This command sets the alternate wlan port for the print server.
Format: ! U1 setvar "wlan.ip.port_alternate" "value"
Values: Any valid TCP port address.
Default: 9100
This command returns the current alternate wlan port setting.

getvar

Format: ! U1 getvar "wlan.ip.port_alternate"
Values: The current port setting.

Example 1 • This setvar example shows the value set to "6101".
U1 setvar "wlan.ip.port_alternate" "6101"

Example 2 • This setvar example sets the channel mask to use only channels 1,6,11.
! U1 setvar "wlan.channel_mask" "0x421"
Result: Only channels 1, 6, and 11 will be used by the radio.

Note •
•
•

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Supported Devices ZT200 Series

P1099958-001

Programming Guide

1/31/18

SGD Wireless Commands
wlan.ip.port_json_configwlan.ip.port_json_config

wlan.ip.port_json_config
This command determines the TCP port number to listen on for JSON configuration packets.

Supported Devices
• iMZ 220™, iMZ 320™
• QLn220™, QLn320™, QLn420™
• ZT210™, ZT220™, ZT230™

Type

setvar; getvar

Commands

Details

setvar

This command determins the TCP port number on which to listen for JSON configuration packets.
Format: ! U1 setvar "wlan.ip.port_json_config" "value"
Values: Any valid port number except ports already in use or the standard network ports.
• 0 = disable the port
• 1-65535 = port number to listen on.
Default: "9200"
This command retrieves the TCP port number which is listening for JSON configuration packets.

getvar

Format: ! U1 getvar "wlan.ip.port_json_config"
Example: In this example, the getvar command causes the printer to get the TCP port number
which is listening for JSON configuration packets.
! U1 getvar "wlan.ip.port_json_config"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1255

1256

SGD Wireless Commands
wlan.ip.protocol

wlan.ip.protocol
This command configures the IP addressing method used by the wireless print server.

Commands

Details

setvar

This command instructs the printer to configure the IP addressing method used by the wireless
print server.
Format: ! U1 setvar "wlan.ip.protocol" "value"
Values:
"bootp" = uses the standard bootp addressing method to obtain an IP address and

configuration

"dhcp" = uses the standard dhcp addressing method to obtain an IP address and

configuration for a server specified period of time

"rarp" = uses the standard rarp addressing method to obtain an IP address
"glean only" = uses the IP address from a PING packet that is sent to its hardware

address (unicast address)

“permanent” = uses static values assigned through other commands
"all" = tries all of the dynamic addressing methods, not permanent, to obtain an IP

address

Default: "all"
This command returns the value of the currently selected IP protocol used by the wireless print
server.

getvar

Format: ! U1 getvar "wlan.ip.protocol"
Example: In this example, the setvar result is the current programming language that the printer is
using.
! U1 setvar "wlan.ip.protocol" "bootp"
What the setvar value is set to is the getvar result. In this example, the getvar result is "bootp".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.ip.timeout.enable

wlan.ip.timeout.enable
This network setting refers to enabling the connection timeout on the wireless print server. For this to
take effect, the print server must be reset.

Commands

Details

setvar

This command instructs the printer to enable or disable the timeout checking on the wireless print
server.
Format: ! U1 setvar "wlan.ip.timeout.enable" "value"
Values:
"off" = turns off the connection checking
"on" = turns on the connection checking
Default: "on"
This command instructs the printer to return whether the timeout checking is enabled on the
wireless print server.

getvar

Format: ! U1 getvar "wlan.ip.timeout.enable"
Example: This setvar example shows the value set to "on".
! U1 setvar "wlan.ip.timeout.enable" "on"
When the setvar value is set to "on", the getvar result is "on".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1257

1258

SGD Wireless Commands
wlan.ip.timeout.value

wlan.ip.timeout.value
This network setting refers to the number of seconds before the connection times out for the
wireless print server. For this to take effect, the print server must be reset.

Commands

Details

setvar

This command instructs the printer to set the the time value of the wireless print server, in
seconds, before the connection times out.
Format: ! U1 setvar "wlan.ip.timeout.value" "value"
Values: "1" through "3600"
Default: "300"
This command instructs the printer to respond with the time, in seconds, before the connection
times out.

getvar

Format: ! U1 getvar "wlan.ip.timeout.value"
Example: This setvar example shows the value set to "300".
! U1 setvar "wlan.ip.timeout.value" "300"
When the setvar value is set to "300", the getvar result is "300".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.ip.wins.addr

wlan.ip.wins.addr
Specifies the WINS server address. If WINS Addressing is done via DHCP, then this value will
automatically be filled by the DHCP server.

Commands

Details

setvar

Format: ! U1 setvar "wlan.ip.wins.addr" "value"
Values: a valid IP address
Default: "0.0.0.0"
Format: ! U1 getvar "wlan.ip.wins.addr"

getvar

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1259

1260

SGD Wireless Commands
wlan.ip.wins.permanent_source

wlan.ip.wins.permanent_source
Specifies if the source of the WINS address is DHCP or if it is set manually.

Commands

Details

setvar

Format: ! U1 setvar "wlan.ip.wins.permanent_source" "value"
Values:
"off": Use DHCP assigned WINS address
"on": Use manually set WINS address (set via wlan.ip.wins.addr)
Default: "off"
Format: ! U1 getvar "wlan.ip.wins.permanent_source"

getvar

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.keep_alive.enable

wlan.keep_alive.enable
This setting controls the printers ability to send a LSAP (link service access point) packet to the
access point on an user controllable interval. This feature is included to accommodate access points
that require a regular confirmation that wireless clients are still active.

Commands

Details

setvar

This command instructs the printer to send a LSAP (link service access point) packet to the
access point on an user controllable interval.
Format: ! U1 setvar "wlan.keep_alive.enable" "value"
Values:
"on" = turns on keep_alive
"off" = turns off keep_alive
Default: "on"
This command instructs the printer to respond with the wlan.keep_alive.enable setting.

getvar

Format: ! U1 getvar "wlan.keep_alive.enable"
Example: This setvar example shows the value set to "on".
! U1 setvar "wlan.keep_alive.enable" "on"
When the setvar value is set to "on", the getvar result is "on".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1261

1262

SGD Wireless Commands
wlan.keep_alive.timeout

wlan.keep_alive.timeout
This printer setting manages the interval at which the LSAP (link service access point) packet is
sent.

Commands

Details

setvar

This command instructs the printer to configure the frequency at which the printer sends the
wlan.keep_alive packet.
Format: ! U1 setvar "wlan.keep_alive.timeout" "value"
Values: 5 to 300 seconds
Default: "15"
This command instructs the printer to respond with the wlan.keep_alive.timeout interval
value.

getvar

Format: ! U1 getvar "wlan.keep_alive.timeout"
Example: This setvar example shows the value set to "15".
! U1 setvar "wlan.keep_alive.timeout" "15"
When the setvar value is set to "15", the getvar result is "15".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.kerberos.kdc

wlan.kerberos.kdc
This printer setting refers to the Kerberos Key Distribution Center (KDC). The KDC is a trusted
server which maintains a database with account information for all security principals (users) for a
particular site or administrative domain (realm).

Commands

Details

setvar

This command instructs the printer to change the Kerberos KDC.
Format: ! U1 setvar "wlan.kerberos.kdc" "value"
Values: 0-32 ASCII characters
Default: "krbtgt"
This command instructs the printer to respond with the current Kerberos KDC.

getvar

Format: ! U1 getvar "wlan.kerberos.kdc"
Example: This setvar example shows the value set to "krbtgt".
! U1 setvar "wlan.kerberos.kdc" "krbtgt"
When the setvar value is set to "krbtgt", the getvar result is "krbtgt".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1263

1264

Set/Get/Do Commands
wlan.kerberos.mode

wlan.kerberos.mode
This printer setting refers to the Kerberos network authentication protocol. Kerberos provides
secure mutual authentication for a wireless client through a Symbol Access Point, based on user
information stored on a Kerberos KDC (Key Distribution Center) server.

Commands

Details

setvar

This command instructs the printer to turn Kerberos mode "on" or "off".
Format: ! U1 setvar "wlan.kerberos.mode" "values"
Values:
"off" = disables Kerberos mode
"on" = enables Kerberos mode
Default: "off"
This command instructs the printer to respond with the current Kerberos mode.

getvar

Format: ! U1 getvar "wlan.kerberos.mode"
Example: This setvar example shows the value set to "on".
! U1 setvar "wlan.kerberos.mode" "on"
When the setvar value is set to "on", the getvar result is "on".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.kerberos.password

wlan.kerberos.password
This printer setting refers to the Kerberos password. The password must correspond to a user profile
established on the Kerberos KDC server in use.

Commands

Details

setvar

This command instructs the printer to set the Kerberos password.
Format: ! U1 setvar "wlan.kerberos.password" "value"
Values: 0-32 alphanumeric characters
Default: "password"
This command instructs the printer to respond with the current Kerberos password.

getvar

Format: ! U1 getvar "wlan.kerberos.password"

For protection a single "*" prints.
Example: This setvar example shows the value set to "password".
! U1 setvar "wlan.kerberos.password" "password"
When the setvar value is set to "password", the getvar result is "*".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1265

1266

SGD Wireless Commands
wlan.kerberos.realm

wlan.kerberos.realm
This printer setting refers to the Kerberos realm, an administrative domain with its own Kerberos
server (KDC).

Important • If you are using a Windows 2000 Server the realm must be all upper-case. For
details, see Example 2 below.

Commands

Details

setvar

This command instructs the printer to change the Kerberos realm.
Format: ! U1 setvar "wlan.kerberos.realm" "value"
Values: 0-64 alphanumeric characters
Default: "kerberos"
This command instructs the printer to respond with the current Kerberos realm.

getvar

Format: ! U1 getvar "wlan.kerberos.realm"

Example 1 • This setvar example shows the value set to "zebra".
! U1 setvar "wlan.kerberos.realm" "zebra"
When the setvar value is set to "zebra", the getvar result is "zebra".

Example 2 • This setvar example shows the value set to "ZEBRA" on a Windows 2000 server.
! U1 setvar "wlan.kerberos.realm" "ZEBRA"
When the setvar value is set to "ZEBRA", the getvar result is "ZEBRA".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.kerberos.username

wlan.kerberos.username
This printer setting refers to the Kerberos user name. The user name must correspond to a user
profile established on the Kerberos KDC server in use.

Commands

Details

setvar

This command instructs the printer to change the Kerberos user name.
Format: ! U1 setvar "wlan.kerberos.username" "value"
Values: 0-32 alphanumeric characters
Default: "user"
This command instructs the printer to respond with the current Kerberos user name.

getvar

Format: ! U1 getvar "wlan.kerberos.username"
Example: This setvar example shows the value set to "user".
! U1 setvar "wlan.kerberos.username" "user"
When the setvar value is set to "user", the getvar result is "user".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1267

1268

SGD Wireless Commands
wlan.leap_mode

wlan.leap_mode
This printer setting refers to Cisco LEAP (Lightweight Extensible Authentication Protocol). LEAP
provides secure mutual authentication for a wireless client through a Cisco Aironet Access Point,
based on user information stored on a backend RADIUS (Remote Authentication in Dial-Up User
Service) /AAA (Authentication, Authorization, and Accounting) server.

Note •
1. This command is only supported on printers using firmware Vxx.18.xx or earlier.
2. This command is not supported on units with a Frequency Hopping Spread Spectrum

(FHSS) radio.

Commands

Details

setvar

This command instructs the printer to turn the LEAP mode "on" or "off".
Format: ! U1 setvar "wlan.leap_mode" "values"
Values:
"off" = disables LEAP mode
"on" = enables LEAP mode
Default: "off"
This command instructs the printer to respond with the LEAP mode.

getvar

Format: ! U1 getvar "wlan.leap_mode"
Example: This setvar example shows the value set to "on".

! U1 setvar "wlan.leap_mode" "on"
When the setvar value is set to "on", the getvar result is "on".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.leap_password

wlan.leap_password
This printer setting refers to the LEAP password. The password must correspond to a user profile
established on the RADIUS/AAA server in use.

Note • This parameter is not supported on units with a Frequency Hopping Spread Spectrum
(FHSS) radio.

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1269

1270

SGD Wireless Commands
wlan.leap_username

wlan.leap_username
This printer setting refers to the LEAP user name. The user name must correspond to a user profile
established on the RADIUS/AAA server in use.

Note • This parameter is not supported on units with a Frequency Hopping Spread Spectrum
(FHSS) radio.

Commands

Details

setvar

This command instructs the printer to change the LEAP user name.
Format: ! U1 setvar "wlan.leap_username" "values"
Values: 0-32 alphanumeric ASCII characters.
Default: "user"
This command instructs the printer to respond with the LEAP user name.

getvar

Format: ! U1 getvar "wlan.leap_username"
Example: This setvar example shows the value set to "user".

! U1 setvar "wlan.leap_username" "user"
When the setvar value is set to "user", the getvar result is "user".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.mac_addr

wlan.mac_addr
This command retrieves the MAC address of the wireless print server.
getvar

Commands

Details

getvar

This command instructs the printer to respond with the MAC address of the wireless print server.
Format:

! U1 getvar "wlan.mac_addr"

Example: In this example, the getvar result is the MAC address for the wireless print server.
! U1 getvar "wlan.mac_addr"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1271

1272

SGD Wireless Commands
wlan.mac_raw

wlan.mac_raw
This command specifies the RAW MAC address of the wireless print server. The raw mac address is
the mac address without the colons (":").
getvar

Commands

Details

getvar

This command retrieves the RAW MAC address of the wireless print server.
Format: ! U1 getvar "wlan.mac_raw"
Example: In this example, the getvar retrieves the RAW MAC address of the wireless print server.
! U1 getvar "wlan.mac_raw"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.operating_mode

wlan.operating_mode
This printer setting refers to the network operating mode. Infrastructure mode means that the printer
will try to associate with an access point. Ad hoc mode means that the printer will try to associate
with a device other than an access point and join a standalone network.
To use "ad hoc" mode configure the printer as follows:
• Set the ESSID to the new network’s ESSID.
• Turn off the DHCP and assign an IP Address to the printer.
• Set the subnet mask on the printer to the new network’s subnet mask.
• Change the operating mode on the printer to "ad hoc".

Commands

Details

setvar

This command instructs the printer to set the network operating mode.
Format: ! U1 setvar "wlan.operating_mode" "value"
Values:
"adhoc" = printer will try to associate with a network device
"infrastructure" = printer will try to associate with an access point
Format: "infrastructure"
This command instructs the printer to respond with the network-mode value.

getvar

Format: ! U1 getvar "wlan.operating_mode"
Example: This setvar example shows the value set to "infrastructure".

! U1 setvar "wlan.operating_mode" "infrastructure"
When the setvar value is set to "infrastructure", the getvar result is "infrastructure".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1273

1274

SGD Wireless Commands
wlan.password

wlan.password
This printer setting refers to the generic password that is used by the wireless securities that need a
password.

Important • Kerberos has its own password field

Commands

Details

setvar

This command instructs the printer to set a generic password for the wireless securities that need
a password.
Format: ! U1 setvar "wlan.password" "value"
Values: A maximum of 32 alphanumeric characters.
Default: "password"
This command instructs the printer to respond with a generic password for wireless securities.

getvar

Format: ! U1 getvar "wlan.password"
For protection a single "*" prints.
Example: This setvar example shows the value set to "password".

! U1 setvar "wlan.password" "password"
When the setvar value is set to "password", the getvar result is "*".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.permitted_channels

wlan.permitted_channels
This command returns the list of permitted channels.
Related Commands:
• wlan.active_channels on page 1209
• wlan.allowed_band on page 1214

Supported Devices ZT200 Series

Type

getvar

Commands

Details

getvar

This command returns the list of permitted channels within the defined country or region.
Format: ! U1 getvar "wlan.permitted_channels"
Result: One or more of the following channels:
1,2,3,4,5,6,7,8,9,10,11,36,40,44,48,52,56,60,64,100,104,108,
112,116,132,136,140

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1275

1276

SGD Wireless Commands
wlan.poor_signal_threshold

wlan.poor_signal_threshold
Sets or returns the poor signal threshold value. The poor signal threshold is a percentage of the
signal strength.

Commands

Details

setvar

Format: ! U1 setvar "wlan.poor_signal_threshold" "value"
Values: 0-100
Default: "0"
Format: ! U1 getvar "wlan.poor_signal_threshold"

getvar

Supported Devices
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.preamble

wlan.preamble
This printer setting selects the radio preamble length to be used.

Commands

Details

setvar

This command instructs the printer to set the preamble length.
Format: ! U1 setvar "wlan.preamble" "value"
Values:
"long" = enables long preamble
"short" = enables short preamble
Default: "long"
This command instructs the printer to respond with the current preamble length.

getvar

Format: ! U1 getvar "wlan.preamble"
Example: This setvar example shows the value set to "long".
! U1 setvar "wlan.preamble" "long"
When the setvar value is set to "long", the getvar result is "long".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1277

1278

SGD Wireless Commands
wlan.private_key_password

wlan.private_key_password
This printer setting allows the setting of the optional private key password.

Commands

Details

setvar

This command instructs the printer to set the private key password.
Format: ! U1 setvar "wlan.private_key_password" "value"
Values: A maximum of 32 alphanumeric characters
Default: ""
This command instructs the printer to respond with the value of the private key password.

getvar

Format: ! U1 getvar "wlan.private_key_password"

For protection a single "*" prints.

Example: This setvar example shows the value set to "password".
! U1 setvar "wlan.private_key_password" "password"
When the setvar value is set to "password", the getvar result is "*".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.region_code

wlan.region_code
This command defines the regulatory country for which the radio is currently configured.

Commands

Details

setvar

This command sets the region code for which the radio is to be configured.
! U1 setvar "wlan.region_code" "value"

Values:
• not available
• usa/canada
• japan
• rest of world
This command retrieves the region code for which the radio is currently configured.
! U1 getvar "wlan.country_code"

getvar

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1279

1280

SGD Wireless Commands
wlan.roam.interchannel_delay

wlan.roam.interchannel_delay
This command sets how long of a delay before scanning the next channel when roaming.

Commands

Details

setvar

This command sets how long of a delay before scanning the next channel when roaming. The
values are in milliseconds.
Format: ! U1 setvar "wlan.roam.interchannel_delay" "value"
Values: 0 to 30000
Default: "400"
This command retrieves the current set delay time before scanning the next channel when
roaming.

getvar

Format: ! U1 getvar "wlan.roam.interchannel_delay"

Example: This setvar example shows the value set to "400".
! U1 setvar "wlan.roam.interchannel_delay" "400"
The getvar result returns the current setvar value. In this example, the getvar result is "400".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.roam.interval

wlan.roam.interval
This printer setting refers to specifying the wireless roam interval.

Commands

Details

setvar

This command instructs the printer to set the wireless roam interval.
Format: ! U1 setvar "wlan.roam.interval" "value"
Values: Decimal values between 5 and 255 inclusive
Default: "20"
This command instructs the printer to respond with the specified roam interval.

getvar

Format: ! U1 getvar "wlan.roam.interval"
Example: This setvar example shows the value set to "20".
! U1 setvar "wlan.roam.interval" "20"
When the setvar value is set to "20", the getvar result is "20".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1281

1282

SGD Wireless Commands
wlan.roam.max_chan_scan_time

wlan.roam.max_chan_scan_time
This command sets how long the radio waits on a channel looking for probe responses.

Commands

Details

setvar

This command sets how long the radio waits on a channel looking for probe responses. The
values are in milliseconds.
Format: ! U1 setvar "wlan.roam.max_chan_scan_time" "value"
Values: 10 to 500
Default: "100"
This command retrieves the current setting for how long the radio waits on a channel looking for
probe responses.

getvar

Format: ! U1 getvar "wlan.roam.max_chan_scan_time"
Example: This setvar example shows the value set to "100".
! U1 setvar "wlan.roam.max_chan_scan_time" "100"
The getvar result returns the current setvar value. In this example, the getvar result is "100".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.roam.max_fail

wlan.roam.max_fail
This command determines teh number of consecutive tx packet failures, at which point th radio
should start its roaming algorithm.

Commands

Details

setvar

This command sets the max_fail threshold value.
Format: ! U1 setvar "wlan.roam.max_fail" "value"
Values: 2 to 75 inclusive
Default: 10
This command returns the number for the max_fail threshold.

getvar

Format: ! U1 getvar "wlan.roam.max_fail"
Example: In this example, the setvar sets the max_fail threshold value to 30 packets.
! U1 setvar "wlan.roam.max_fail" "30"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1283

1284

SGD Wireless Commands
wlan.roam.rssi

wlan.roam.rssi
This command allows you to specify the absolute value of the negative dBm for the RSSI threshold,
which is the oint at which the radio will start the roaming algorithm.

Commands

Details

setvar

This command sets the RSSI threshold value.
Format: ! U1 setvar "wlan.roam.rssi" "value"
Values: 60 to 125
Default: 74
This command retrieves the absolute value of the negative dBM for the RSSI threshold.

getvar

Format: ! U1 getvar "wlan.roam.rssi"
Example: In this example, the setvar sets the RSSI threshold value to -80 dBm.
! U1 setvar "wlan.roam.rssid" "80"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.roam.signal

wlan.roam.signal
This printer setting refers to specifying the wireless roam signal.

Commands

Details

setvar

This command instructs the printer to set the wireless roam signal.
Format: ! U1 setvar "wlan.roam.signal" "value"
Values: Decimal values between 1 and 75 inclusive.
Default: "50"
This command instructs the printer to respond with the specified wireless roam signal.

getvar

Format: ! U1 getvar "wlan.roam.signal"
Example: This setvar example shows the value set to "50".
! U1 setvar "wlan.roam.signal" "50"
When the setvar value is set to "50", the getvar result is "50".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1285

1286

SGD Wireless Commands
wlan.rts_cts_enabled

wlan.rts_cts_enabled
Enables the RTS/CTS HT protection frames when configuring a WLAN connection, preventing
interference with other nearby 802.11 signals. If the protection frames are not enabled, the WLAN
radio will use CTS-to-self.

Commands

Details

setvar

Format:

! U1 setvar "wlan.rts_cts_enabled" "value"

Values: on, off
Default: off
Format:

getvar

! U1 getvar "wlan.rts_cts_enabled"

Values: on, off

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.security

wlan.security
This printer setting allows you to specify both the wireless encryption type and authentication type in
one command.

Note • The supporting parameters that are required vary based on the security type that you

select. See Supporting SGD Commands for Different Security Types on page 1288 for instructions
for each security type.
When using certificate files, Zebra printers support:
• using Privacy Enhanced Mail (PEM) formatted certificate files.
• using the client certificate and private key as two files, each downloaded separately.
• using exportable PAC files for EAP-FAST.
These certificate files can only be sent using ZPL, not SGD. The ZPL command to use when
sending these certificate files is the ~DY command.
Configuring the printer for WPA also allows the printer to be used in WPA2 environments.

Important • When using certificate files, the time on the printer must be set correctly for
the websocket connection to succeed, as the time is used in the certificate validation.

Commands

Details

setvar

This command instructs the printer to set the wireless security value.
Format: ! U1 setvar "wlan.security" "value"
Values:
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"

No wireless security or "none"
WEP 40-bit or "wep 40-bit"
WEP 128-bit or "wep 128-bit"
EAP-TLS or "eap-tls"
EAP-TTLS or "eap-ttls"
EAP-FAST or "eap-fast"
PEAP or "peap"
LEAP or "leap"
WPA PSK or "wpa psk" (Key rotation for WPA2 PSK is supported in firmware
versions V53.15.8Z , V60.15.8Z, and later.)
"10" = WPA EAP-TLS or "wpa eap-tls"
"11" = WPA EAP-TTLS or "wpa eap-ttls"
"12" = WPA EAP-FAST or "wpa eap-fast"
"13" = WPA PEAP or "wpa peap"
"14" = WPA LEAP or "wpa leap"
"15" = Kerberos or "kerberos"
Default: "1"

getvar

=
=
=
=
=
=
=
=
=

This command instructs the printer to return the name and not the type. If an invalid security mode
is entered the printer returns Invalid Mode.
Format: ! U1 getvar "wlan.security" "value"
Example: This setvar example shows the value set to "1".
! U1 setvar "wlan.security" "1"
When the setvar value is set to "1", the getvar result is "none".

1/31/18

Programming Guide

P1099958-001

1287

1288

SGD Wireless Commands
wlan.security

Note •
•
•

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Supporting SGD Commands for Different Security Types
The supporting SGD commands required for wlan.security vary based on the security type that
you select. You must send the additional commands for your printer to be able to work on your
wireless network. Follow the example and format for your specific security type in this section,
substituting your own wireless network data.

Security Type 1: No Wireless Security Active
Additional parameters that need to be set: none
Example: This example turns off all wireless securities controlled under this command, but it does
not reset the printer’s wireless settings to their defaults.
! U1 setvar "wlan.security" "1"

Security Type 2: WEP 40-Bit
Additional parameters that need to be set and the SGD commands to use:
• WEP encryption index (see wlan.wep.index on page 1305)
• WEP authentication type (see wlan.wep.auth_type on page 1304)
• WEP key type (see wlan.wep.key_format on page 1311)
• the actual values of any WEP encryption keys to be used (see wlan.wep.key1 on page 1306,
wlan.wep.key2 on page 1307, wlan.wep.key3 on page 1308, or wlan.wep.key4 on page 1309)
Example: This example configures the printer for WEP 40-bit encryption using index key 1, open
authentication, and a hexadecimal WEP key with a value of “A1B2C3D4F5.”
!
!
!
!
!

U1
U1
U1
U1
U1

setvar
setvar
setvar
setvar
setvar

"wlan.security" "2"
"wlan.wep.index" "1"
"wlan.wep.auth_type" "open"
"wlan.wep.key_format" "hex"
"wlan.wep.key1" "A1B2C3D4F5"

Security Type 3: WEP 128-Bit
Additional parameters that need to be set and the SGD commands to use:
• WEP encryption index (see wlan.wep.index on page 1305)

P1099958-001

Programming Guide

1/31/18

SGD Wireless Commands
wlan.security
• WEP authentication type (see wlan.wep.auth_type on page 1304)
• WEP key type (see wlan.wep.key_format on page 1311)
• the actual values of any WEP encryption keys to be used (see wlan.wep.key1 on page 1306,
wlan.wep.key2 on page 1307, wlan.wep.key3 on page 1308, or wlan.wep.key4 on page 1309)
Example: This example configures the printer for WEP 128-bit encryption using index key 2, open
authentication, and four hexadecimal WEP keys.
!
!
!
!
!
!
!
!

U1
U1
U1
U1
U1
U1
U1
U1

setvar
setvar
setvar
setvar
setvar
setvar
setvar
setvar

"wlan.security" "3"
"wlan.wep.index" "2"
"wlan.wep.auth_type" "open"
"wlan.wep.key_format" "hex"
"wlan.wep.key1" "001122334455667788"
"wlan.wep.key2" "112233445566778899"
"wlan.wep.key3" "223344556677889900"
"wlan.wep.key4" "334455667788990011"

Security Type 4: EAP-TLS
Additional parameters that need to be set and the SGD commands to use:
• optional private key password (see wlan.private_key_password on page 1278)
Example: This example configures the printer for EAP-TLS authentication with an optional private
key password with a value of “private.”
! U1 setvar "wlan.security" "4"
! U1 setvar "wlan.private_key_password" "private"

Security Type 5: EAP-TTLS
Additional parameters that need to be set and the SGD commands to use:
• user ID (see wlan.username on page 1301)
• password (see wlan.password on page 1274)
Example: This example configures the printer for EAP-TTLS authentication, including a user ID
with a value of “user” and a password with a value of “password.”
! U1 setvar "wlan.security" "5"
! U1 setvar "wlan.username" "user"
! U1 setvar "wlan.password" "password"

1/31/18

Programming Guide

P1099958-001

1289

1290

SGD Wireless Commands
wlan.security

Security Type 6: EAP-FAST
Additional parameters that need to be set and the SGD commands to use:
• user ID (see wlan.username on page 1301)
• password (see wlan.password on page 1274)
• optional private key password (see wlan.private_key_password on page 1278)
Example: This example configures the printer for EAP-FAST authentication, including a user ID of
“user,” a password of “password,” and an optional private key of “private.”
!
!
!
!

U1
U1
U1
U1

setvar
setvar
setvar
setvar

"wlan.security" "6"
"wlan.username" "user"
"wlan.password" "password"
"wlan.private_key_password" "private"

Security Type 7: PEAP
Additional parameters that need to be set and the SGD commands to use:
• user ID (see wlan.username on page 1301)
• password (see wlan.password on page 1274)
Example: This example configures the printer for PEAP authentication, including a user ID with a
value of “user” and a password with a value of “password.”
! U1 setvar "wlan.security" "7"
! U1 setvar "wlan.username" "user"
! U1 setvar "wlan.password" "password"

Security Type 8: LEAP
Additional parameters that need to be set and the SGD commands to use:
• user ID (see wlan.username on page 1301)
• password (see wlan.password on page 1274)
Example: This example configures the printer for LEAP authentication, including a user ID with a
value of “user” and a password with a value of “password.”
! U1 setvar "wlan.security" "8"
! U1 setvar "wlan.username" "user"
! U1 setvar "wlan.password" "password"

P1099958-001

Programming Guide

1/31/18

SGD Wireless Commands
wlan.security

Security Type 9: WPA PSK
Note • Configuring the printer for WPA also allows the printer to be used in WPA2 environments.
Key rotation for WPA2 PSK is supported in firmware version 60.15.8Z and later and in firmware
version 53.15.8Z and later.
Additional parameters that need to be set and the SGD commands to use:
• Pre-Shared Key (PSK) value (see wlan.wpa.psk on page 1310)
Example: This example configures the printer for WPA PSK authentication with a PSK value of all
zeroes (64 hexadecimal digits).
! U1 setvar "wlan.security" "9"
! U1 setvar "wlan.wpa.psk" "00000000..."

Security Type 10: WPA EAP-TLS
Note • Configuring the printer for WPA also allows the printer to be used in WPA2 environments.
Additional parameters that need to be set and the SGD commands to use:
• optional private key password (see wlan.private_key_password on page 1278)
Example: This example configures the printer for WPA EAP-TLS authentication with an optional
private key password with a value of “private.”
! U1 setvar "wlan.security" "10"
! U1 setvar "wlan.private_key_password" "private"

Security Type 11: WPA EAP-TTLS
Note • Configuring the printer for WPA also allows the printer to be used in WPA2 environments.
Additional parameters that need to be set and the SGD commands to use:
• user ID (see wlan.username on page 1301)
• password (see wlan.password on page 1274)

1/31/18

Programming Guide

P1099958-001

1291

1292

SGD Wireless Commands
wlan.security

Example: This example configures the printer for WPA EAP-TTLS authentication, including a user
ID with a value of “user” and a password with a value of “password.”
! U1 setvar "wlan.security" "11"
! U1 setvar "wlan.username" "user"
! U1 setvar "wlan.password" "password"

Security Type 12: WPA EAP-FAST
Note • Configuring the printer for WPA also allows the printer to be used in WPA2 environments.
Additional parameters that need to be set and the SGD commands to use:
• user ID (see wlan.username on page 1301)
• password (see wlan.password on page 1274)
• optional private key password (see wlan.private_key_password on page 1278)
Example: This example configures the printer for WPA EAP-FAST authentication, including a user
ID of “user,” a password of “password,” and an optional private key of “private.”
!
!
!
!

U1
U1
U1
U1

setvar
setvar
setvar
setvar

"wlan.security" "12"
"wlan.username" "user"
"wlan.password" "password"
"wlan.private_key_password" "private"

Security Type 13: WPA PEAP
Note • Configuring the printer for WPA also allows the printer to be used in WPA2 environments.
Additional parameters that need to be set and the SGD commands to use:
• user ID (see wlan.username on page 1301)
• password (see wlan.password on page 1274)
Example: This example configures the printer for WPA PEAP authentication, including a user ID
with a value of “user” and a password with a value of “password.”
! U1 setvar "wlan.security" "13"
! U1 setvar "wlan.username" "user"
! U1 setvar "wlan.password" "password"

P1099958-001

Programming Guide

1/31/18

SGD Wireless Commands
wlan.security

Security Type 14: WPA LEAP
Note • Configuring the printer for WPA also allows the printer to be used in WPA2 environments.
Additional parameters that need to be set and the SGD commands to use:
• user ID (see wlan.username on page 1301)
• password (see wlan.password on page 1274)
Example: This example configures the printer for WPA LEAP authentication, including a user ID
with a value of “user” and a password with a value of “password.”
! U1 setvar "wlan.security" "14"
! U1 setvar "wlan.username" "user"
! U1 setvar "wlan.password" "password"

Security Type 15: Kerberos
Additional parameters that need to be set and the SGD commands to use:
• Kerberos user ID (see wlan.kerberos.username on page 1267)
• Kerberos password (see wlan.kerberos.password on page 1265)
• realm (see wlan.kerberos.realm on page 1266)
• Key Distribution Center (KDC) (see wlan.kerberos.kdc on page 1263)
Example: This example configures the printer for Kerberos encryption, including a Kerberos user
ID with a value of “user,” a Kerberos password with a value of “password,” a realm of “zebra,” and
a KDC of “krbtgt.”
!
!
!
!
!

1/31/18

U1
U1
U1
U1
U1

setvar
setvar
setvar
setvar
setvar

"wlan.security" "15"
"wlan.kerberos.username" "user"
"wlan.kerberos.password" "password"
"wlan.kerberos.realm" "zebra"
"wlan.kerberos.kdc" "krbtgt"

Programming Guide

P1099958-001

1293

1294

SGD Wireless Commands
wlan.signal_noise

wlan.signal_noise
This command returns the signal noise on the wireless network. Values above 40% represent a very
significant noise, and radio communication is not reliable.
getvar

Commands

Details
This command instructs the printer to return the current signal noise on the wireless network.

getvar

Format: ! U1 getvar "wlan.signal_noise"
Example: In this example, the getvar result is the current signal_noise value.
! U1 getvar "wlan.signal_noise"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.signal_quality

wlan.signal_quality
This command instructs the printer to return the current signal quality of the wireless network. Values
below 40% represent a very poor signal quality, and radio communication is not reliable.
getvar

Commands

Details

getvar

This command instructs the printer to return the current signal quality of the wireless network.
Format: ! U1 getvar "wlan.signal_quality"
Example: In this example, the getvar result is the current signal_quality value.
! U1 getvar "wlan.signal_quality"

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1295

1296

SGD Wireless Commands
wlan.signal_strength

wlan.signal_strength
This command returns the signal strength of the connection to the access point as a percentage
value between zero (not connected) and 100 (strongest signal). Values below 40% represent a very
poor signal and radio communication is not reliable.
getvar

Commands

Details

getvar

This command instructs the printer to respond with the current signal strength.
Format: ! U1 getvar "wlan.signal_strength"
Example: In this example, the getvar result is "93".
! U1 getvar "wlan.signal_strength"

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.station_name

wlan.station_name
This printer setting refers to the station name.

Commands

Details

setvar

This command instructs the printer to set the station name.
Format: ! U1 setvar "wlan.station_name" "value"
Values: A maximum of 32 alphanumeric characters
Default: "ZEBRA"
This command instructs the printer to respond with the station name value.

getvar

Format: ! U1 getvar "wlan.station_name"
Example: This setvar example shows the value set to "ZEBRA".
! U1 setvar "wlan.station_name" "ZEBRA"
When the setvar value is set to "ZEBRA", the getvar result is "ZEBRA".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1297

1298

SGD Wireless Commands
wlan.tx_power

wlan.tx_power
This printer setting refers to specifying the wireless transmit power.

Commands

Details

setvar

This command instructs the printer to set the wireless transmit power.
Format: ! U1 setvar "wlan.tx_power" "value"
Values: Decimal values of 1, 5, 20, 30, 50, 100
Default: "100"
This command instructs the printer to respond with the wireless transmit power.

getvar

Format: ! U1 getvar "wlan.tx_power"

Example: This setvar example shows the value set to "100".
! U1 setvar "wlan.tx_power" "100"
When the setvar value is set to "100", the getvar result is "100".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.tx_rate

wlan.tx_rate
This printer setting refers to specifying the wireless transmit rate.

Commands

Details

setvar

This command instructs the printer to set the wireless transmit rate.
Format: ! U1 setvar "wlan.tx_rate" "value"
Values: 1, 2, 5.5, 11, all
Default: "all"
This command instructs the printer to respond with the wireless transmit rate.

getvar

Format: ! U1 getvar "wlan.tx_rate"
Example: This setvar example shows the value set to "all".
! U1 setvar "wlan.tx_rate" "all"
When the setvar value is set to "all", the getvar result is "all".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1299

1300

SGD Wireless Commands
wlan.user_channel_list

wlan.user_channel_list
This command sets the list of available channels.

Related Commands:
• wlan.active_channels on page 1209
• wlan.allowed_band on page 1214
• wlan.permitted_channels on page 1275

Commands

Details

setvar

This command sets the list of available channels.
Format: ! U1 setvar "wlan.user_channel_list" "value"
Values: One or more of the following:
1,2,3,4,5,6,7,8,9,10,11,36,40,44,48,52,56,60,64,100,104,108,
112,116,132,136,140,149,153,157,161,165,all
Default: "all"
This command retrieves the currently set list of available channels.

getvar

Format: ! U1 getvar wlan.user_channel_list"
Example: This example sets the available channel list to channels 1-9.
! U1 setvar "wlan.user_channel_list" "1,2,3,4,5,6,7,8,9"

Supported Devices ZT200 Series
Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.username

wlan.username
This printer setting refers to the generic user name that is used by the wireless securities that need a
user name.

Important • Kerberos has its own user name field.

Commands

Details

setvar

This command instructs the printer to set a generic user name for wireless securities that need a
user name.
Format: ! U1 setvar "wlan.username" "value"
Values: A maximum of 32 alphanumeric characters
Default: "user"
This command instructs the printer to respond with a generic user name for the wireless securities
that need a user name.

getvar

Format: ! U1 getvar "wlan.username"
Example: This setvar example shows the value set to "user".
! U1 setvar "wlan.username" "user"
When the setvar value is set to "user", the getvar result is "user".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1301

1302

SGD Wireless Commands
wlan.waveagent.enable

wlan.waveagent.enable
This command enables/disables the internal agent for support of Veriwave's WaveDeploy system.
WaveDeploy is a software product used for performing network site surveys.

Commands

Details

setvar

This command enables or disables internal agent support for waveagent.
Format: ! U1 setvar "wlan.waveagent.enable" "value"
Values:
"off"
"on"
Default: "off"
This command instructs the printer to respond with the current waveagent support status.

getvar

Format: ! U1 getvar "wlan.waveagent.enable"
Example:
! U1 setvar "wlan.waveagent.enable" "on"

Supported Devices ZT200 Series
Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.waveagent.udp_port

wlan.waveagent.udp_port
This command specifies the UDP port number used by WaveAgent.

Commands

Details

setvar

This command specifies the port to be used by WaveAgent.
Format: ! U1 setvar "wlan.waveagent.udp_port" "value"
Values: "1" to "64000"
Default: "18100"
This command instructs the printer to respond with the current port setting for WaveAgent.

getvar

Format: ! U1 getvar "wlan.waveagent.udp_port"
Example: This setvar example shows the value set to "on".
! U1 setvar "wlan.waveagent.udp_port" "21000"

Supported Devices ZT200 Series
Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1303

1304

SGD Wireless Commands
wlan.wep.auth_type

wlan.wep.auth_type
For the WEP security type, this printer setting selects the authentication type to be used between the
printer and the access point. The authentication types are open system and shared key.

Commands

Details

setvar

This command instructs the printer to set the WEP authentication type.
Format: ! U1 setvar "wlan.wep.auth_type" "value"
Values:
"open" = enables the open authentication type
"shared" = enables the shared authentication type
Default: "open"
This command instructs the printer to retrieve the current WEP authentication type.

getvar

Format: ! U1 getvar "wlan.wep.auth_type"
Example: This setvar example shows the value set to "open".
! U1 setvar "wlan.wep.auth_type" "open"
When the setvar value is set to "open", the getvar result is "open".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.wep.index

wlan.wep.index
This printer setting refers to the WEP (Wired Equivalent Privacy) encryption key index. This printer
setting determines which one of the four encryption keys is to be used by the client (printer).

Commands

Details

setvar

This command instructs the printer to set the encryption key index.
Format: ! U1 setvar "wlan.wep.index" "value"
Values:
"1"
"2"
"3"
"4"
Default:

enables encryption key 1
enables encryption key 2
enables encryption key 3
enables encryption key 4
"1"
=
=
=
=

This command instructs the printer to respond with the encryption key index.

getvar

Format: ! U1 getvar "wlan.wep.index"
Example: This setvar example shows the value set to "1".
! U1 setvar "wlan.wep.index" "1"
When the setvar value is set to "1", the getvar result is "1".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1305

1306

SGD Wireless Commands
wlan.wep.key1

wlan.wep.key1
This printer setting refers to the first indexed WEP encryption key. The WEP encryption key is a
hexadecimal or string value. This key should match the wireless network WEP encryption key 1.

Commands

Details

setvar

This command instructs the printer to set the encryption key.
Format: ! U1 setvar "wlan.wep.key1" "value"
Values:

10 hexadecimal characters for 40-bit encryption
26 hexadecimal characters for 128-bit encryption
Default: All zeros
This command instructs the printer to respond with the encryption key.

getvar

Format: ! U1 getvar "wlan.wep.key1"

For protection a single "*" prints.
Example: This setvar example shows the value set to "A1B2C3D4F5".
! U1 setvar "wlan.wep.key1" "A1B2C3D4F5"
When the setvar value is set to "A1B2C3D4F5", the getvar result is "*".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.wep.key2

wlan.wep.key2
This printer setting refers to the second indexed WEP encryption key. The WEP encryption key is a
hexadecimal string value. This key should match the wireless network WEP encryption key 2.

Commands

Details

setvar

This command instructs the printer to set the encryption key.
Format: ! U1 setvar "wlan.wep.key2" "value"
Values:

10 hexadecimal characters for 40-bit encryption
26 hexadecimal characters for 128-bit encryption
Default: All zeros
This command instructs the printer respond with the encryption key.

getvar

Format: ! U1 getvar "wlan.wep.key2"

For protection a single "*" prints.
Example: This setvar example shows the value set to "A1B2C3D4F5".
! U1 setvar "wlan.wep.key2" "A1B2C3D4F5"
When the setvar value is set to "A1B2C3D4F5", the getvar result is "*".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1307

1308

SGD Wireless Commands
wlan.wep.key3

wlan.wep.key3
This printer setting refers to the third indexed WEP encryption key. The WEP encryption key is a
hexadecimal string value. This key should match the wireless network WEP encryption key 3.

Commands

Details

setvar

This command instructs the printer to set the encryption key.
Format: ! U1 setvar "wlan.wep.key3" "value"
Values:

10 hexadecimal characters for 40-bit encryption
26 hexadecimal characters for 128-bit encryption
Default: All zeros
This command instructs the printer to respond with the encryption key.

getvar

Format: ! U1 getvar "wlan.wep.key3"

For protection a single "*" prints.
Example: This setvar example shows the value set to "A1B2C3D4F5".
! U1 setvar "wlan.wep.key3" "A1B2C3D4F5"
When the setvar value is set to "A1B2C3D4F5", the getvar result is "*".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.wep.key4

wlan.wep.key4
This printer setting refers to the fourth indexed WEP encryption key. The WEP encryption key is a
hexadecimal string value. This key should match the wireless network WEP encryption key 4.

Commands

Details

setvar

This command instructs the printer to set the encryption key.
Format: ! U1 setvar "wlan.wep.key4" "value"
Values:

10 hexadecimal characters for 40-bit encryption
26 hexadecimal characters for 128-bit encryption
Default: All zeros
This command instructs the printer respond with the encryption key.

getvar

Format: ! U1 getvar "wlan.wep.key4"

For protection a single "*" prints.
Example: This setvar example shows the value set to "A1B2C3D4F5".
! U1 setvar "wlan.wep.key4" "A1B2C3D4F5"
When the setvar value is set to "A1B2C3D4F5", the getvar result is "*".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1309

1310

SGD Wireless Commands
wlan.wpa.psk

wlan.wpa.psk
This printer setting specifies the pre-shared key (PSK) value to use when the WPA authentication is
set to PSK.

Commands

Details

setvar

This command instructs the printer to set the pre-shared key.
Format: ! U1 setvar "wlan.wpa.psk" "value"
Values: 64 hexadecimal digits
Default: 64 zeros (00000000...)
This command instructs the printer to respond with the pre-shared key.

getvar

Format: ! U1 getvar "wlan.wpa.psk"

For protection a single "*" prints.
Example: This setvar example shows the value set to "00000000...".
! U1 setvar "wlan.wpa.psk" "00000000..."
When the setvar value is set to "00000000...", the getvar result is "*".

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

SGD Wireless Commands
wlan.wep.key_format

wlan.wep.key_format
This printer setting specifies the format for the WEP key.

Important • This printer setting should proceed any of the wep.key settings if you select a
non-default value.

Commands

Details

setvar

This command instructs the printer to set the WEP key format.
Format: ! U1 setvar "wlan.wep.key_format" "value"
Values:
"ascii" = WEP key is set by ASCII string
"hex" = WEP key is a Hex string
Default: "hex"
This command instructs the printer to respond with the WEP key format.

getvar

Format: ! U1 getvar "wep.key_format"
Example: This setvar example shows the value set to "ascii".
! U1 setvar "wlan.wep.key_format" "ascii"
When the setvar value is set to "ascii", the getvar result is "ascii".

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1311

1312

SGD Wireless Commands
wlan.wep.key_format

Notes • ____________________________________________________________________

__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________

P1099958-001

Programming Guide

1/31/18

SGD Wireless Commands
wlan.wep.key_format

1/31/18

Programming Guide

P1099958-001

1313

1314

SGD Wireless Commands
wlan.wep.key_format

P1099958-001

Programming Guide

1/31/18

wlan.wpa.timecheck

wlan.wpa.timecheck
Allows the user to disable the certificate timestamp check that is performed during a WPA TLS
handshake.

Commands

Details

setvar

! U1 setvar "wlan.wpa.timecheck" "value"
Values:
"yes" = the timecheck during the handshake will be performed
"no" = the timecheck during the handshake will not be performed
Default: "yes"

! U1 getvar "wlan.wpa.timecheck"

getvar

Supported Devices
• ZD400, ZD410, ZD420
• ZD500, ZD620
• iMZ 220, iMZ 320
• QLn220, QLn320, QLn420
• ZQ510, ZQ520
• ZT210, ZT220, ZT230
• ZT4004, ZT4006
• ZT510
• ZT610, ZT620
110

Note •
•
•

1/31/18

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

P1099958-001

1315

1316

SGD Wireless Commands
wlan.wpa.wpa_version

wlan.wpa.wpa_version
Returns the currently active WPA version.

Commands

Details

getvar

Format: ! U1 getvar "wlan.wpa.wpa_version"
Values:
"WPA": WPA being used.
"WPA2": WPA2 being used.
"": Reported if wireless LAN is not connected or WPA is not enabled.

Supported Devices
• iMZ220, iMZ320
• QLn220, QLn320
• ZD410, ZD420
• ZD500
• ZQ510, ZQ520
• ZR338
• ZR628, ZR638
• ZT210, ZT220, ZT230
• ZT410, ZT420

Note •
•
•

P1099958-001

For printer support, see SGD Command Support on page 1393.
For details on SGD command structure, see Command Structure on page 573.

Programming Guide

1/31/18

Zebra Code Pages

This section provides you with a visual of the different Zebra Code pages.

Contents
Zebra Code Page 850 — Latin Character Set........................................................................... 1317
Zebra Code Page 1250 — Central and Eastern European Latin Character Set........................ 1320
Zebra Code Page 1252— Latin Character Set.......................................................................... 1322
Zebra Code Page 1253 — Modern Greek Character Set ......................................................... 1324
Zebra Code Page 1254 — Turkish Character Set ..................................................................... 1326
Zebra Code Page 1255 — Hebrew Character Set .................................................................... 1328

Zebra Code Page 850 — Latin Character Set
This is the Zebra Code Page 850:

Note • For hex 5C, a cent sign prints for all printer resident fonts. A backslash prints for
downloaded fonts.

1/31/18

Programming Guide

P1099958-001

1318

Zebra Code Pages
Zebra Code Page 850 — Latin Character Set

P1099958-001

Programming Guide

1/31/18

Zebra Code Pages
Zebra Code Page 850 — Latin Character Set

1/31/18

Programming Guide

P1099958-001

1319

1320

Zebra Code Pages
Zebra Code Page 1250 — Central and Eastern European Latin Character Set

Zebra Code Page 1250 — Central and Eastern
European Latin Character Set
This is the Zebra Code Page 1250 that supports scalable/downloaded TTF fonts:

Note • Font 0 (zero) was used to display this chart.

P1099958-001

Programming Guide

1/31/18

Zebra Code Pages
Zebra Code Page 1250 — Central and Eastern European Latin Character Set

1/31/18

Programming Guide

P1099958-001

1321

1322

Zebra Code Pages
Zebra Code Page 1252— Latin Character Set

Zebra Code Page 1252— Latin Character Set
This is the Zebra Code Page 1252:

P1099958-001

Programming Guide

1/31/18

Zebra Code Pages
Zebra Code Page 1252— Latin Character Set

1/31/18

Programming Guide

P1099958-001

1323

1324

Zebra Code Pages
Zebra Code Page 1253 — Modern Greek Character Set

Zebra Code Page 1253 — Modern Greek Character Set
This is the Zebra Code Page 1253:
CHRHEXDEC CHRHEXDEC CHRHEXDEC CHRHEXDEC CHRHEXDEC CHRHEXDEC CHRHEXDECCHRHEXDEC

P1099958-001

Programming Guide

1/31/18

Zebra Code Pages
Zebra Code Page 1253 — Modern Greek Character Set

CHRHEXDEC CHRHEXDEC CHRHEXDEC CHRHEXDEC CHRHEXDEC CHRHEXDEC CHRHEXDECCHRHEXDEC

1/31/18

Programming Guide

P1099958-001

1325

1326

Zebra Code Pages
Zebra Code Page 1254 — Turkish Character Set

Zebra Code Page 1254 — Turkish Character Set
This is the Zebra Code Page 1254:
CHRHEXDEC CHRHEXDEC CHRHEXDEC CHRHEXDEC CHRHEXDEC CHRHEXDEC CHRHEXDECCHRHEXDEC

P1099958-001

Programming Guide

1/31/18

Zebra Code Pages
Zebra Code Page 1254 — Turkish Character Set

CHRHEXDEC CHRHEXDEC CHRHEXDEC CHRHEXDEC CHRHEXDEC CHRHEXDEC CHRHEXDECCHRHEXDEC

1/31/18

Programming Guide

P1099958-001

1327

1328

Zebra Code Pages
Zebra Code Page 1255 — Hebrew Character Set

Zebra Code Page 1255 — Hebrew Character Set
This is the Zebra Code Page 1255:
CHRHEXDEC CHRHEXDEC CHRHEXDEC CHRHEXDEC CHRHEXDEC CHRHEXDEC CHRHEXDECCHRHEXDEC

P1099958-001

Programming Guide

1/31/18

Zebra Code Pages
Zebra Code Page 1255 — Hebrew Character Set

CHRHEXDEC CHRHEXDEC CHRHEXDEC CHRHEXDECCHRHEXDEC CHRHEXDEC CHRHEXDECCHRHEXDEC

1/31/18

Programming Guide

P1099958-001

1329

1330

Zebra Code Pages
Zebra Code Page 1255 — Hebrew Character Set

Notes • ____________________________________________________________________

__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________

P1099958-001

Programming Guide

1/31/18

ASCII

This section shows the American Standard Code for Information Interchange (ASCII) code used by
Zebra printers.

1/31/18

Programming Guide

P1099958-001

1332

ASCII
ASCII Code Chart

ASCII Code Chart
Shaded areas in Table 32 indicate characters not recommended for command prefix, format prefix,
or delimiter characters.

Table 32 • ASCII Code Chart
HEX

Character

HEX

Character

HEX

Character

HEX

Character

00

NUL

20

Space

40

@

60

‘

01

SOH

21

!

41

A

61

a

02

STX

22

“

42

B

62

b

03

ETX

23

#

43

C

63

c

04

EOT

24

$

44

D

64

d

05

ENQ

25

%

45

E

65

e

06

ACK

26

&

46

F

66

f

07

BEL

27

‘

47

G

67

g

08

BS

28

(

48

H

68

h

09

HT

29

)

49

I

69

i

0A

LF

2A

*

4A

J

6A

j

0B

VT

2B

+

4B

K

6B

k

0C

FF

2C

,

4C

L

6C

l

0D

CR

2D

-

4D

M

6D

m

0E

SO

2E

.

4E

N

6E

n

0F

SI

2F

/

4F

O

6F

o

10

DLE

30

0

50

P

70

p

11

DC1

31

1

51

Q

71

q

12

DC2

32

2

52

R

72

r

13

DC3

33

3

53

S

73

s

14

DC4

34

4

54

T

74

t

15

NAK

35

5

55

U

75

u

16

SYN

36

6

56

V

76

v

17

ETB

37

7

57

W

77

w

18

CAN

38

8

58

X

78

x

19

EM

39

9

59

Y

79

y

1A

SUB

3A

:

5A

Z

7A

z

1B

ESC

3B

;

5B

[

7B

{

1C

FS

3C

<

5C

\

7C

|

1D

GS

3D

=

5D

]

7D

}

P1099958-001

Programming Guide

1/31/18

ASCII
ASCII Code Chart

Table 32 • ASCII Code Chart
HEX

Character

HEX

Character

HEX

Character

HEX

Character

1E

RS

3E

>

5E

^

7E

~

1F

US

3F

?

5F

_

7F

DEL

1/31/18

Programming Guide

P1099958-001

1333

1334

ASCII
ASCII Code Chart

P1099958-001

Programming Guide

1/31/18

Fonts and Bar Codes

This section provides information about different fonts (type faces) and bar codes that can be used
with the printer.

Contents
Standard Printer Fonts ............................................................................................................ 1336
Proportional and Fixed Spacing............................................................................................... 1338
Scalable Versus Bitmapped Fonts............................................................................................ 1339
Scalable Fonts ...................................................................................................................... 1339
Bitmapped Fonts.................................................................................................................. 1339
Font Matrices .......................................................................................................................... 1341
Bar Codes................................................................................................................................. 1343
Basic Format for Bar Codes.................................................................................................. 1343
Bar Code Field Instructions.................................................................................................. 1344
Bar Code Command Groups ................................................................................................ 1345

1/31/18

Programming Guide

P1099958-001

1336

Fonts and Bar Codes
Standard Printer Fonts

Standard Printer Fonts
Most Zebra printers come standard with 15 bitmapped fonts and one scalable font, see Figure 3.
Additional downloadable bitmapped and scalable fonts are also available. Character size and
density (how dark it appears) depend on the density of the printhead and the media used.

Figure 3 • Examples of the Standard Printer Fonts

zero
Accessed with the ^GS command.

To use one of these fonts, you must either use the change alphanumeric default font command
(^CF) or specify an alphanumeric field command (^A).
The standard Zebra character set is Code 850 for character values greater than 20 HEX. There are
six HEX character values below 20 HEX that are also recognized. Figure 4 shows how these
character values are printed.

Note • Unidentified characters should default to a space.

P1099958-001

Programming Guide

1/31/18

Fonts and Bar Codes
Standard Printer Fonts

Figure 4 • Recognized HEX Values below 20 HEX

1/31/18

Programming Guide

P1099958-001

1337

1338

Fonts and Bar Codes
Proportional and Fixed Spacing

Proportional and Fixed Spacing
Proportional spacing is different than fixed spacing. In Table 33, the intercharacter gap (ICG), the
space between characters, is constant for fonts A through H, which means that the spacing between
all characters is the same. For example, the spacing between the letters MW is the same as between
the letters IE.
Figure 5 is an example of fixed space fonts:

Figure 5 • Fixed Space Fonts Proportion

The baseline is the imaginary line on which the bottom (base) of all characters (except any
descenders) rest. The area between the baseline and the bottom of the matrix is used for any
character “descenders.” Baseline numbers define where the baseline is located in relationship to the
top of the matrix. For example, the baseline for font “E” is 23 dots down from the top of the matrix.

Table 33 • Intercharacter Gap and Baseline Parameters

P1099958-001

Font

H x W (in dots)

Type

Intercharacter Gap
(in dots)

Baseline
(in dots)

A

9x5

U-L-D

1

7

B

11 x 7

U

2

11

C,D

18 x 10

U-L-D

2

14

E

28 x 15

OCR-B

5

23

F

26 x 13

U-L-D

3

21

G

60 x 40

U-L-D

8

48

H

21 x 13

OCR-A

6

21

GS

24 x 24

SYMBOL

PROPORTIONAL

3 x HEIGHT/4

0

DEFAULT: 15 x 12

PROPORTIONAL

3 x HEIGHT/4

Programming Guide

1/31/18

Fonts and Bar Codes
Scalable Versus Bitmapped Fonts

Scalable Versus Bitmapped Fonts
For scalable fonts, setting the height and width equally produces characters that appear the most
balanced. Balanced characters are pleasing to the eye because actual height and width are
approximately equal to each other. This is achieved through the use of a smooth-scaling algorithm in
the printer.
For bitmapped fonts, this balancing is built into the font. In actuality, the height of a bitmap font is
slightly larger than the width. Bitmap fonts are always at the maximum size of the character’s cell.

Scalable Fonts
All dot parameters used in the commands to create scalable fonts are translated into a point size
because scalable fonts are measured in point sizes, not dots. To determine how many dots to enter
to obtain a particular point size, use the following formula. The actual point size will be an
approximate value.

Dots = (Point size) x (Dots per inch of Printer)
72
• For printers using a 6 dot/mm printhead the “dots per inch of printer” value is 152.4
• For printers using a 8 dot/mm printhead the “dots per inch of printer” value is 203.2
• For printers using a 12 dot/mm printhead the “dots per inch of printer” value is 304.8
• For printers using a 24 dot/mm printhead the “dots per inch of printer” value is 609.6
The actual height and width of the character in dots will vary, depending on the font style and the
particular character. Therefore, some characters will be smaller and some will be larger than the
actual dot size requested. The baselines for all scalable fonts are calculated against the dot size of
the cell. The baseline is 3/4 down from the top of the cell. For example, if the size of the cell is 80
dots, the baseline will be 60 dots (3/4) down from the top of the cell.
For more information concerning fonts and related commands, see ~DB on page 147 and ~DS

on page 156.

Bitmapped Fonts
Internal bitmapped fonts can be magnified from 1 to 10 times their normal (default) size. The
magnification factor is in whole numbers. Therefore, if the normal size of a bitmapped font is 9 dots
high and 5 dots wide, a magnification factor of 3 would produce a character of 27 dots high and 15
dots wide. Height and width can be magnified independently.

Magnification Factor
The font commands contain parameters for entering the height and width of printed characters. The
values are always entered in dots. When entering these values for bitmapped fonts, use the
following formula:

Base Height x Magnification Factor = Height Parameter Value
The same principle applies when calculating width.
Example:

Base height = 9 dots
Base width = 5 dots

1/31/18

Programming Guide

P1099958-001

1339

1340

Fonts and Bar Codes
Scalable Versus Bitmapped Fonts
To magnify a bitmapped character with the above specifics 3 times its size:

Height parameter = 27 [9 x 3]
Width parameter = 15 [5 x 3]

Changing Bitmapped Font Size
Alphanumeric field command (^A) parameters h and w control the magnification and, therefore, the
ultimate size of the font. The parameter is specified in dots, but ZPL II actually uses an integer
multiplier times the original height/width of the font. For example, if you specify

^AD,54
you get characters three times their normal size (54 dots high), but if you specify

^AD,52
you receive the same result, not characters 52 dots high.
Defining only the height or width of a bitmapped font forces the magnification to be proportional to
the parameter defined. If neither is defined, the ^CF height and width are used. For example, if the
height is twice the standard height, the width will be twice the standard width.
Example: If a ^CF command, with height and width parameters defined, is used to set the first font,
any ^A commands (to select a different font) that follow must have the height and width parameter
filled in.
If this is not done, the newly selected font will be magnified using values for the ^CF height and width
parameters. This is an example of what happens:.

ZPL II CODE

GENERATED LABEL

^XA^LL1800
^FO50,50^CFD,26,10^FDZEBRA....^FS
^FO50,100^FD"Bar Code, Bar None"^FS
^FO50,200^AA^FDZEBRA....^FS
^FO50,250^FD"Bar Code, Bar None"^FS
^XZ

P1099958-001

Programming Guide

1/31/18

Fonts and Bar Codes
Font Matrices

Font Matrices
Type Key U = Uppercase, L = Lowercase, D = Descenders
Table 34 • 6 dot/mm Printhead
Font

A
B
C, D
E
F
G
H
GS
0

Matrix
HxW (in dots)

9x5
11 x 7
18 x 10
21 x 10
26 x 13
60 x 40
17 x 11
24 x 24
Default: 15 x 12

Type

U-L-D
U
U-L-D
OCR-B
U-L-D
U-L-D
OCR-A
SYMBOL

Character Size
HxW (in in.)

Char./in.

HxW (in mm)

Char. /mm

0.059 x 0.039
0.072 x 0.059
0.118 x 0.079
0.138 x 0.085
0.170 x 0.105
0.394 x 0.315
0.111 x 0.098
0.157 x 0.157

25.4
16.9
12.7
11.7
9.53
3.18
10.2
6.35

1.50 x 0.99
1.82 x 1.50
2.99 x 2.00
3.50 x 2.16
4.32 x 2.67
10.0 x 8.00
2.81 x 2.48
3.98 x 3.98

1.01
0.066
0.05
0.46
0.37
0.125
0.40
0.251

Table 35 • 8 dot/mm (203 dpi) Printhead
Font

A
B
C, D
E
F
G
H
GS
P
Q
R
S
T
U
V
0

1/31/18

Matrix
HxW (in dots)

9X5
11 X 7
18 X 10
28 x 15
26 x 13
60 x 40
21 x 13
24 x 24
20 x 18
28 x 24
35 x 31
40 x 35
48 x 42
59 x 53
80 x 71
Default: 15 x 12

Type

U-L-D
U
U-L-D
OCR-B
U-L-D
U-L-D
OCR-A
SYMBOL
U-L-D
U-L-D
U-L-D
U-L-D
U-L-D
U-L-D
U-L-D
U-L-D

Character Size
HxW (in in.)

Char./in.

HxW (in mm)

Char. /mm

0.044 x 0.030
0.054 x 0.044
0.089 x 0.059
0.138 x 0.098
0.128 x 0.079
0.295 x 0.197
0.103 x 0.093
0.118 x 0.118
0.098 x 0.089
0.138 x 0.118
0.172 x 0.153
0.197 x 0.172
0.236 x 0.207
0.290 x 0.261
0.394 x 0.349
Scalable

33.3
22.7
16.9
10.2
12.7
4.2
10.8
8.5
N/A
N/A
N/A
N/A
N/A
N/A
N/A

1.12 x 0.76
1.37 x 1.12
2.26 x 1.12
3.50 x 2.49
3.25 x 2.00
7.49 x 5.00
2.61 x 2.36
2.99 x 2.99
2.50 x 2.25
3.50 x 3.00
4.38 x 3.88
5.00 x 4.38
6.00 x 5.25
7.38 x 6.63
10.00 x 8.88
Scalable

1.31
0.89
0.66
0.40
0.50
0.167
0.423
0.334
N/A
N/A
N/A
N/A
N/A
N/A
N/A

Programming Guide

P1099958-001

1341

1342

Fonts and Bar Codes
Font Matrices

Table 36 • 12 dot/mm (300 dpi) Printhead
Font

A
B
C, D
E
F
G
H
GS
P
Q
R
S
T
U
V
0

Matrix
HxW (in dots)

9X5
11 X 7
18 X 10
42 x 20
26 x 13
60 x 40
34 x 22
24 x 24
20 x 18
28 x 24
35 x 31
40 x 35
48 x 42
59 x 53
80 x 71
Default: 15 x 12

Type

U-L-D
U
U-L-D
OCR-B
U-L-D
U-L-D
OCR-A
SYMBOL
U-L-D
U-L-D
U-L-D
U-L-D
U-L-D
U-L-D
U-L-D
U-L-D

Character Size
HxW (in in.)

Char./in.

HxW (in mm)

Char. /mm

0.030 x 0.020
0.036 x 0.030
0.059 x 0.040
0.138 x 0.085
0.085 x 0.053
0.197 x 0.158
0.111 x 0.098
0.079 x 0.079
0.067 x 0.060
0.093 x 0.080
0.117 x 0.103
0.133 x 0.177
0.160 x 0.140
0.197 x 0.177
0.267 x 0.237
Scalable

50.8
33.8
25.4
23.4
19.06
6.36
10.20
12.70
N/A
N/A
N/A
N/A
N/A
N/A
N/A

0.75 x 0.50
0.91 x 0.75
1.50 x 1.00
1.75 x 1.08
2.16 x 1.34
5.00 x 4.00
2.81 x 2.48
1.99 x 1.99
1.69 x 1.52
2.37 x 2.03
2.96 x 2.62
3.39 x 2.96
4.06 x 3.56
5.00 x 4.49
6.77 x 6.01
Scalable

2.02
1.32
1.00
0.92
0.74
0.25
0.40
0.52
N/A
N/A
N/A
N/A
N/A
N/A
N/A

aa

Table 37 • 24 dot/mm (600 dpi) Printhead
Font

A
B
C, D
E
F
G
H
GS
P
Q
R
S
T
U
V
0

Matrix
HxW (in dots)

9X5
11 X 7
18 X 10
42 x 20
26 x 13
60 x 40
34 x 22
24 x 24
20 x 18
28 x 24
35 x 31
40 x 35
48 x 42
59 x 53
80 x 71
Default: 15 x 12

P1099958-001

Type

U-L-D
U
U-L-D
OCR-B
U-L-D
U-L-D
OCR-A
SYMBOL
U-L-D
U-L-D
U-L-D
U-L-D
U-L-D
U-L-D
U-L-D
U-L-D

Character Size
HxW (in in.)

Char./in.

HxW (in mm)

Char. /mm

0.015 x 0.010
0.018 x 0.015
0.030 x 0.020
0.137 x 0.087
0.043 x 0.027
0.100 x 0.080
0.100 x 0.093
0.040 x 0.040
0.067 x 0.060
0.093 x 0.080
0.117 x 0.103
0.133 x 0.117
0.160 x 0.140
0.197 x 0.177
0.267 x 0.237
Scalable

100.00
66.66
50.00
11.54
37.5
12.50
10.71
25.00
N/A
N/A
N/A
N/A
N/A
N/A
N/A

0.38 x 0.25
0.46 x 0.38
0.77 x 0.51
3.47 x 2.20
1.10 x 0.68
2.54 x 2.04
2.54 x 2.37
1.02 x 1.02
1.69 x 1.52
2.37 x 2.03
2.96 x 2.62
3.39 x 2.96
4.06 x 3.56
5.00 x 4.49
6.77 x 6.01
Scalable

4.00
2.60
2.0
0.45
1.50
0.50
0.42
1.00
N/A
N/A
N/A
N/A
N/A
N/A
N/A

Programming Guide

1/31/18

Fonts and Bar Codes
Bar Codes

Bar Codes
Every bar code contains data made up of a sequence of light spaces and dark bars that represent
letters, numbers, or other graphic characters. The usable characters differ among the various kinds
of bar codes. Each bar code section in the ZPL Commands on page 31 provides a table of
applicable characters. Start and stop characters and check digits are used by many, but not all, bar
codes. These will be indicated in the specific bar code explanations.
Zebra printers can print the following kinds of bar codes:

Bar code modulus “X” dimensions

Linear bar codes

•

•
•
•
•
•

Picket fence (non-rotated) orientation:

•
•
•

203 dpi = 0.0049 in. mil to 0.049 in.
300 dpi = 0.0033 in. mil to 0.033 in.

Ladder (rotated) orientation:

•
•

203 dpi = 0.0049 in. mil to 0.049 in.
300 dpi = 0.0039 in. mil to 0.039 in.

Two-dimensional bar codes
•
•
•
•
•
•
•
•
•

Aztec
Code 49
Maxi Code
TLC39
PDF-417
QR Code
Codablock
DataMatrix
Micro-PDF417

Bar code ratios
•
•
•
•

2:1
7:3
5:2
3:1

•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

Codabar
Code 11
Code 39
Code 93
Code 128 with subsets A/B C and
UCC Case Codes
ISBT-128
UPC-A
UPC-E
EAN-8
EAN-13
UPC and EAN 2 or 5 digit extensions
Planet Code
Plessey
Postnet
Standard 2 of 5
Industrial 2 of 5
Interleaved 2 of 5
LOGMARS
MSI
GS1 DataBar Omnidirectional

Basic Format for Bar Codes
The basic format for bar codes is quiet zone, start character, data, check digit, stop character, and
quiet zone. Not all bar codes require each of these elements.
Every bar code requires a quiet zone. A quiet zone (sometimes called a “clear area”) is an area
adjacent to the machine-readable symbols that ensure proper reading (decoding) of the symbols. No
printing is permissible within this area. Preprinted characters, borders, and background color are
acceptable if they are invisible to the reading device; these are used in some applications but restrict
the type of reading device that can be used. The size of the quiet zone depends on the size of bar
widths (usually 10 times the width of the narrow bar).

1/31/18

Programming Guide

P1099958-001

1343

1344

Fonts and Bar Codes
Bar Codes

Figure 6 • Quiet Zone in a Bar Code
Quiet Zone

Quiet Zone

Bar Code Field Instructions
To create a bar code, a bar code field command must be contained in the label format. Table 38
shows the bar code field commands. The number in brackets denotes the print ratio. Each command
produces a unique bar code.

Important • (*) for Fixed Printing Ratio means that the ratio between the width of the bars
in the code is a fixed standard and cannot be changed.
As another reference to the bar code field commands ratio, see Table 12 on page 126.

Table 38 • Bar Code Field Commands
ZPL Command

P1099958-001

Command Description

Ratio

^B0

Aztec Bar Code Parameters

^B1

Code 11 (USD-8)

[2.0 - 3.0]

^B2

Interleaved 2 of 5

[2.0 - 3.0]

^B3

Code 39 (USD-3 and 3 of 9)

[2.0 - 3.0]

^B4

Code 49 (*)

[Fixed]

^B5

Planet Code Bar Code

[Fixed]

^B7

PDF417 (*)

[Fixed]

^B8

EAN-8 (*)

[Fixed]

^B9

UPC-E

[Fixed]

^BA

Code 93 (USS-93)(*)

[Fixed]

^BB

CODABLOCK A, E, F (*)

[Fixed]

^BC

Code 128 (USD-6) (*)

[Fixed]

^BD

UPS MaxiCode (*)

[Fixed]

^BE

EAN-13

[Fixed]

^BF

Micro-PDF417

[Fixed]

^BI

Industrial 2 of 5

[2.0 - 3.0]

Programming Guide

[Fixed]

1/31/18

Fonts and Bar Codes
Bar Codes

Table 38 • Bar Code Field Commands (Continued)
ZPL Command

Command Description

Ratio

^BJ

Standard 2 of 5

[2.0 - 3.0]

^BK

ANSI Codabar (USD-4 and 2 of 7)

[2.0 - 3.0]

^BL

LOGMARS

[2.0 - 3.0]

^BM

MSI

[2.0 - 3.0]

^BO

Aztec Bar Code Parameters

^BP

Plessey

^BQ

QR Code (*)

[Fixed]

^BR

GS1 Databar (formerly RSS)

[Fixed]

^BS

UPC/EAN Extensions (*)

[Fixed]

^BU

UPC-A (*)

[Fixed]

^BX

Data Matrix (*)

[Fixed]

^BZ

PostNet (*), USPS Intelligent Mail, and Planet bar codes

[Fixed]

[Fixed]
[2.0 - 3.0]

Additionally, each bar code field command can be issued with a definition parameter string. The
parameter string defines field rotation, height, and interpretation line status for all bar codes. For
some bar codes, the parameter string also sets a check digit, start character, and/or stop character.
Use the definition parameter string to command the printer to print bar codes of appropriate heights
and densities that conform to the specifications of the application.
The use of the parameter string is optional because all parameters have default values. If the default
values for all of the bar code parameters suit the application, then only the bar code command
needs to be entered.
Parameters in bar code field commands are “position specific.” If a value (other than the default
value) is manually entered for one parameter the ZPL II delimiter character (a comma) must be used
to mark the position of the preceding parameters in the string.
To change just the third parameter, enter two commas and then the value for the third parameter.
The default values will be automatically used for the first and second parameters.

Bar Code Command Groups
Bar code commands are organized into four groups. Each group represents a type of bar code.
Table 39 through Table 42 identify the groups and the bar codes they contain:

Table 39 • Numeric Only Bar Codes
ZPL Command

1/31/18

Command Description

^B0

Aztec Bar Code Parameters

^B1

Code 11

^B5

Planet Code Bar Code

^BI

Industrial 2 of 5

^BJ

Standard 2 of 5

^BK

ANSI Codabar (or NW-7)

Programming Guide

P1099958-001

1345

1346

Fonts and Bar Codes
Bar Codes

Table 39 • (Continued)Numeric Only Bar Codes
ZPL Command

Command Description

^BM

MSI

^BO

Aztec Bar Code Parameters

^BP

Plessey

^BZ

PostNet (*), USPS Intelligent Mail, and Planet bar codes

Table 40 • Retail Labeling Bar Codes
ZPL Command

Command Description

^B0

Aztec Bar Code Parameters

^B8

EAN-8

^B9

UPC-E

^BE

EAN-13

^BO

Aztec Bar Code Parameters

^BS

UPC/EAN extensions

^BU

UPC-A

Table 41 • Alphanumeric Bar Codes
ZPL Command

Command Description

^B0

Aztec Bar Code Parameters

^B3

Code 39

^BA

Code 93

^BC

Code 128

^BL

LOGMARS

^BO

Aztec Bar Code Parameters

Table 42 • Two-Dimensional Bar Codes
ZPL Command

P1099958-001

Command Description

^B0

Aztec Bar Code Parameters

^B4

Code 49

^B7

PDF417

^BB

CODABLOCK

^BD

UPS MaxiCode

^BF

MicroPDF417

^BQ

QR Code

Programming Guide

1/31/18

Fonts and Bar Codes
Bar Codes

Table 42 • Two-Dimensional Bar Codes (Continued)

1/31/18

^BO

Aztec Bar Code Parameters

^BR

GS1 Databar (formerly RSS)

^BT

TLC39

^BX

Data Matrix

Programming Guide

P1099958-001

1347

1348

Fonts and Bar Codes
Bar Codes

Notes • ____________________________________________________________________

__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________

P1099958-001

Programming Guide

1/31/18

Mod 10 and Mod 43
Check Digits

This section provides information about Mod 10 and Mod 43 check digits.

Mod 10 Check Digit
The calculations for determining the Mod 10 Check Digit character are as follows:

Contents
Mod 10 Check Digit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1349
Mod 43 Check Digit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1350

1/31/18

Programming Guide

P1099958-001

1350

Mod 10 and Mod 43 Check Digits
Mod 43 Check Digit

1. Start at the first position and add the value of every other position together.

0 + 2 + 4 + 6 + 8 + 0 = 20
2. The result of Step 1 is multiplied by 3.

20 x 3 = 60
3. Start at the second position and add the value of every other position together.

1 + 3 + 5 + 7 + 9 = 25
4. The results of steps 2 and 3 are added together.

60 + 25 = 85
5. The check character (12th character) is the smallest number which, when added to the

result in step 4, produces a multiple of 10.
85 + X = 90 (next higher multiple of 10)
X = 5 Check Character
This bar code illustrates the above example. The digit on the right (5) is the check digit.

Mod 43 Check Digit
The calculations for determining the Mod 43 check Digit character are as follows:
Each character in the Code 39 character set has a specific value, as follows:

0=0
1=1
2=2
3=3
4=4
5=5
6=6
7=7
8=8
9=9
A=10

B=11
C=12
D=13
E=14
F=15
G=16
H=17
I=18
J=19
K=20
L=21

M=22
N=23
O=24
P=25
Q=26
R=27
S=28
T=29
U=30
V=31
W=32

X=33
Y=34
Z=35
- =36
. = 37
Space=38
$=39
/=40
+=41
%=42

Example: Data string 2345ABCDE/

P1099958-001

Programming Guide

1/31/18

Mod 10 and Mod 43 Check Digits
Mod 43 Check Digit

1. Add the sum of all the character values in the data string. Using the chart above, the sum

of the character values is as follows:
1 + 2 + 3 + 4 + 5 + 10 + 11 + 12 + 13 + 14 + 40 =115
2. Divide the total by 43. Keep track of the remainder.

115/43 = 2 Remainder is 29
3. The “check digit” is the character that corresponds to the value of the remainder.

Remainder = 29
29 is the value for the letter T.
T is the check digit.
Below is a bar code that illustrates the example. The character on the right, T, is the check digit.

1/31/18

Programming Guide

P1099958-001

1351

1352

Mod 10 and Mod 43 Check Digits
Mod 43 Check Digit

Notes • ____________________________________________________________________

__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________

P1099958-001

Programming Guide

1/31/18

Error Detection
Protocol

This section explains the Zebra protocol that has been supplanted in TCP/IP based applications
because of the error detection compatibility inherent in the TCP/IP protocol.

Contents
Introduction............................................................................................................................. 1355

1/31/18

Programming Guide

P1099958-001

1354

Error Detection Protocol

What is a Protocol?.............................................................................................................. 1355
How Protocols Work............................................................................................................ 1355
Request Packet Formats from the Host Computer ................................................................. 1356
Header Block Fields.............................................................................................................. 1356
Data Block Fields.................................................................................................................. 1356
Response From the Zebra Printer............................................................................................ 1358
Zebra Packet Response........................................................................................................ 1358
Header Block Fields.............................................................................................................. 1358
Data Block Fields.................................................................................................................. 1359
Disguising Control Code Characters..................................................................................... 1359
Error Detection Protocol Application .................................................................................. 1360
Error Conditions and System Faults..................................................................................... 1361
How the Zebra Printer Processes a Request Packet ............................................................ 1361
How the Zebra Printer Responds to Host Status ................................................................. 1362

P1099958-001

Programming Guide

1/31/18

Error Detection Protocol
Introduction

Introduction
There are many instances when it is vitally important that the information sent to the Zebra printer is
received completely Error-Free. ZPL II supports an error detection protocol called Zebra Packet
Response Protocol to meet this need.

Note • This protocol only works when using serial interface. It does not function when using
parallel interface.

What is a Protocol?
A protocol is a precisely defined set of rules. In the case of data communications, a Protocol defines
how data is transmitted, received, and acknowledged between two devices.
The sole purpose of the Packet Response Protocol is to ensure that the information sent from a Host
computer to the Zebra printer is received accurately. Remember, the protocol cannot insure the
accuracy of the data that is actually sent from the Host computer. The commands and data needed
to make a label (ZPL II Format) are encapsulated within the information sent from the Host
computer.

How Protocols Work
The basic unit of data transfer in the Packet Response Protocol is called a “Transaction.” A
Transaction is a two-way communication procedure that consists of information being sent from the
Host computer to the Zebra printer, and the printer sending back a response to the Host computer.
This response is an indication that the Zebra printer has either accepted or rejected the information
sent from the Host computer.
Information is sent in the form of “Packets.” Packets sent from the Host computer are called Request
Packets.
When a Request Packet is received, the Zebra printer analyzes the information in the Packet. If the
Request Packet is accepted, the Zebra printer will send a positive response back to the Host
computer. The Host computer can then send the next Request Packet. If the information is rejected,
the Zebra printer will send a negative response back to the Host computer. The Host computer then
sends the same Request Packet again.
The Zebra Packet Response Protocol can be used in both single-printer applications, where there is
only one Zebra printer connected to the Host computer, and multi-drop systems in which several
Zebra printers are connected to the same Host computer.

1/31/18

Programming Guide

P1099958-001

1355

1356

Error Detection Protocol
Request Packet Formats from the Host Computer

Request Packet Formats from the Host Computer
The first part of each data transfer Transaction is the sending of a Request Packet by the Host
computer. The Request Packet contains a fixed length “Header” block and a variable length “Data”
block. Each Packet sent from the Host computer to the Zebra printer must always use the following
format.
The Request Packet Header Block is comprised of five fixed-length fields. The Request Packet Data
Block is comprised of four fixed-length fields and one variable-length field. These fields are defined
as follows.

Header Block

Data Block

SOH

DST. Z-ID

SRC. Z-ID

TYPE

SEQ. #

STX

FORMAT

EXT

CRC

EOT

1

3

3

1

1

1

≤1024

1

2

1

Header Block Fields
• SOH (start of header character)

The Zebra printer interprets this character as the beginning of a new Request Packet. The
ASCII Control Code character SOH (01H) is used as the Start of Header Character.
• DST. Z-ID (destination Zebra-ID)

This is the three-digit ASCII I.D. number used to identify which Zebra printer is to receive
the Request Packet. The Zebra printer compares this number to the Network ID number
assigned to it during Printer Configuration. The Zebra printer will act on the Request
Packet only if these numbers match.
• SRC. Z-ID (source Zebra-ID)

This is a three-digit ASCII number used to identify the Host computer. This number is
determined by the user.
• TYPE (packet type)

This field is used to define the type of Request Packet being sent by the Host. Only two
characters are valid in this field:
•

‘P’ indicates a Print Request Packet

• ‘I’ indicates an Initialize Request Packet
Most of the Packets sent by the Host to the Zebra printer will be of the ‘P’ variety,
requesting a label to be printed.
The ‘I’ character tells the Zebra printer to initialize the packet sequence numbering. It is
required in the first packet of a new printing session, after starting up the Host computer
or the Zebra printer.
• SEQ. # (the sequence number of the request packet)

This block contains a single digit number used to denote the current Transaction Number.
The Host computer must increment this number by “1" for each new Request/Response
Transaction pair, i.e. 0, 1, 2,..., 9. The numbers repeat after every 10 Transactions.

Data Block Fields
• STX (Start of Text)

The Zebra printer interprets this character as the beginning of the variable-length Data
Format portion of the Request Packet. The ASCII Control Code character STX (02H) is used
as the Start of Text Character.
P1099958-001

Programming Guide

1/31/18

Error Detection Protocol
Request Packet Formats from the Host Computer
• DATA FORMAT (Label Information)

A variable-length portion of the Request Packet that contains the complete or partial ZPL
II label format, or partial data string (such as a downloaded graphic).
This field can contain from 0 to 1024 characters. If the Format of a label is longer than
1024 characters, the Data Format fields from consecutive packets will be concatenated
together in the printer’s Receive Data Buffer as if they were sent as one long direct
transmission.
Special consideration has been given to the possible requirement to include ASCII Control
Characters (values less than 20H) in the Data Format portion of a Request Packet.
Characters such as EOT (04H), STX (02H), SOH (01H), and ETX (03H), are part of the Error
Detection Protocol and could interrupt normal communication procedures if received at
the wrong time.
• ETX (End of Text)

The Zebra printer interprets this character as the end of the variable length Data Format
portion of the Request Packet. The ASCII Control Code character ETX (03H) is used as the
End of Text Character.
• CRC (Cyclic Redundancy Check)

The CRC is a 2 character field. A Cyclic Redundancy Check is a type of error checking used
to maintain the validity and integrity of the information transmitted between the Host
computer and the Zebra printer. This Protocol uses the 16-bit CCITT method of producing
a CRC.
The CRC is a two-byte value derived from the contents of the packet between, but not
including, the SOH character and the CRC code itself. The Zebra printer will calculate a
CRC of the Request Packet received and compare the value with the CRC Value in this
field. The CRC of the Request Packet must match the CRC calculated by the Zebra printer
in order for the Request Packet to be valid.
• EOT (End of Transmission)

The Zebra printer interprets this character as the end of the Request Packet. The ASCII
Control Code character EOT (04H) is used as the End of Transmission Character.

1/31/18

Programming Guide

P1099958-001

1357

1358

Error Detection Protocol
Response From the Zebra Printer

Response From the Zebra Printer
When the Zebra printer receives the EOT character, it will begin acting on the Request Packet
received. The printer will compare certain characters and numeric values within the received
Request Packet and send a response back to the Host computer.

Zebra Packet Response
The Packet Response protocol provides the highest degree of error checking and is well suited to
the Host-Multiple Printer application. The Response Packet from the Zebra printer will always use
the following format.
The Request Packet Header Block is comprised of five fixed-length fields. The Request Packet Data
Block is comprised of four fixed-length fields and one variable-length field. These fields are defined
as follows.

Header Block

Data Block

SOH

DST. Z-ID

SRC. Z-ID

TYPE

SEQ. #

STX

FORMAT

EXT

CRC

EOT

1

3

3

1

1

1

≤1024

1

2

1

Header Block Fields
• SOH (Start of Header Character)

The Zebra printer sends this character as the beginning of a new Response Packet. The
ASCII Control Code character SOH (01H) is used as the Start of Header Character.
• DST. Z-ID (Destination Zebra-ID)

This is the same three-digit ASCII number used to identify the Host Computer that was
contained in the SRC. Z-ID field of the Request Packet that initiated this Response Packet.
The Host compares this number to its known value to insure it is the proper destination.
• SRC. Z-ID (Source Zebra-ID)

This is the three character ASCII Network I.D. of the Zebra printer that is sending the
Response Packet.
• TYPE (Packet Type)

This block is used to define the type of Response Packet being sent to the Host. Only
three characters are valid in this field.
•

‘A’ This is a Positive Acknowledgment to the Host computer. It indicates that the
Request Packet was received without a CRC error. The Host computer may send the
next Request Packet.

•

‘N’ This is the Negative Acknowledgment to the Host computer. It indicates that an
error was detected in the packet sent from the Host computer. The Host computer
must retransmit the same Request Packet again.

•

‘S’ This character indicates that the Response Packet contains the Zebra Printer
Status requested by a ~HS (Host Status) command received from the Host.

• SEQ. # (Used to denote the current message sequence number)

This number is identical to the message sequence number in the Request Packet. It
denotes the message sequence number to which the Response Packet is replying.

P1099958-001

Programming Guide

1/31/18

Error Detection Protocol
Response From the Zebra Printer

Data Block Fields
• STX (Start of Text)

The Zebra printer sends this character as the beginning of the variable length Data
Format portion of the Response Packet. The ASCII Control Code character STX (02H) is
used as the Start of Text Character.
• DATA FORMAT (Label Information)

The ‘variable length’ portion of the Response Packet. If the Packet Type field in the
Response Header contains an ‘A’ or an ‘N’, no data will appear in this field. If the Packet
Type field contains an ‘S‘, this field will contain the Printer Status Message.
• ETX (End of Text)

The Zebra printer sends this character as the end of the variable length Data Format
portion of the Request Packet. The ASCII Control Code character ETX (03H) is used as the
End of Text Character.
• CRC (Cyclic Redundancy Check)

This is the CRC of the Response Packet as calculated by the Zebra printer. This Cyclic
Redundancy Check maintains the validity and integrity of the information transmitted
between the Zebra printer and the Host computer.
This CRC is a two Byte value derived from the contents of the packet between, but not
including, the SOH character and the CRC code itself. The Host computer will calculate a
CRC of the received Response Packet and compare it to the CRC value in this field. The
CRC of the Response Packet must match the CRC calculated by the Host computer in
order for the Response Packet to be valid.
• EOT (End of Transmission)

The Zebra printer sends this character as the end of the Response Packet. The ASCII
Control Code character EOT (04H) is used as the End of Transmission Character.

Disguising Control Code Characters
There may be occasions when ASCII Control Codes (00H - 19H) must be included as part of the
Data Format block of a Request Packet. To eliminate any problems, these characters must be
disguised so that the communication protocol does not act on them.

This procedure must be used to disguise each Control Code.
• A SUB (1AH) character must precede each Control Code placed in the Data Format block.
• The value of 40H must be added to the Hex value of the Control Code.
• The ASCII Character corresponding to the total value produced in step 2 must be entered in the
Data Format right after the SUB character.
The Zebra printer automatically converts the modified control character back to its correct value by
discarding the SUB (1AH) character and subtracting 40H from the next character.

1/31/18

Programming Guide

P1099958-001

1359

1360

Error Detection Protocol
Response From the Zebra Printer

Example: To include a DLE (10H) character in the Data Format block:

1. Enter a SUB (1AH) character into the Data Format.
2. Add 40H to the DLE value of 10H for a resulting value of 50H.
3. Enter the ASCII character “P” (50H) in the Data Format after the SUB character.

Note • This technique is counted as two characters of the 1024 allowed in the Data Format block.

Rules for Transactions
• Every Transaction is independent of every other Transaction and can only be initiated by the
Host computer.
• A valid Response Packet must be received by the Host computer to complete a Transaction
before the next Request Packet is sent.
• If an error is encountered during a Transaction, the entire Transaction (i.e., Request Packet and
Response Packet) must be repeated.
• The Zebra printer does not provide for system time-outs and has no responsibility for insuring
that its Response Packets are received by the Host computer.
• The Host computer must provide time-outs for all of the Transactions and insure that
communication continues.
• If any part of a Transaction is lost or received incorrectly, it is the responsibility of the Host
computer to retry the whole Transaction.

Error Detection Protocol Application
The following are the basic requirements for setting up the Zebra printer to use the Error Detection
Protocol.

Activating the Protocol Protocol is a front panel selection, or can be done with the ZPL
command ^SC.

Setting Up Communications Insure that the Host computer and the Zebra printer are
characterized with the same communication parameters; i.e., Parity, Baud Rate, etc. The
communications must be set up for 8 data bits.
Setting the Printer ID Number The Protocol uses the printer’s Network ID number to insure
communication with the proper unit. The Network ID is programmed into the printer by sending the
printer a ^NI (Network ID Number) command or done through the front panel.
If there is only one printer connected to the Host computer, the Network ID number should be set to
all zeros (default).
If there is more than one printer, such as in a broadcast or multi-drop environment, each printer
should be assigned its own unique ID number. Printers in this environment, with an ID of all zeros,
will receive ALL label formats regardless of the actual printer ID number in the DST. Z-ID block of the
Request Packet.

P1099958-001

Programming Guide

1/31/18

Error Detection Protocol
Response From the Zebra Printer

Error Conditions and System Faults
Restarting a Transmission If a break in communication occurs, the Host must restart the
transmission of the current label format with an Initialization Request Packet. The Zebra printer will
not respond to Request Packets sent out of sequence. However, the Zebra printer will respond to an
Initialization Request Packet and restart its internal counting with the sequence number of the
Request Packet.

CRC Error Conditions and Responses A CRC error condition can be detected when the
printer receives a Request Packet or when the Host computer receives a Response Packet. The
following list defines these errors and how the Host computer should respond to them.
Error

Response

The CRC calculated by the Zebra printer
does not match the one received as part
of the Request Packet.

The Zebra printer will return a Negative
Acknowledgment Response Packet. The Host
computer should retry the same Transaction with the
same Sequence Number.

The CRC calculated by the Host
computer does not match the one
received as part of the Response
Packet.

The Host computer should retry the same Transaction
with the same Sequence Number.

Time-Out Error Conditions and Responses
There are certain conditions at the Zebra printer that might cause the Host computer to time-out
while processing a Transaction. The following list illustrates these conditions and how the Host
computer should respond to them.

Error

Response

A Request Packet from the Host
computer is not received by the Zebra
printer.

The Host computer times out and resends the
Request Packet of the same Transaction with the
same Sequence Number.

A Request Packet from the Host
computer is partially received by the
Zebra printer.

The Host computer times out and resends the
Request Packet of the same Transaction with the
same Sequence Number.

A Response Packet from the Zebra
printer is not received by the Host
computer.

The Host computer times out and resends the
Request Packet of the same Transaction with the
same Sequence Number.

A Response Packet from the Zebra
printer is partially received by the Host
computer.

The Host computer times out and resends the
Request Packet of the same Transaction with the
same Sequence Number.

How the Zebra Printer Processes a Request Packet
The following describes the steps taken at the Zebra printer to process a Request Packet.

1/31/18

Programming Guide

P1099958-001

1361

1362

Error Detection Protocol
Response From the Zebra Printer

1. The Zebra printer looks for a SOH (Start of Header) character. As soon as it finds one, it

places the SOH and all the data after it into its Receive Data Buffer. This process continues
until the printer receives an EOT (End of Transmission) character.
Note • If a second SOH is received before an EOT is detected, the contents of the Receive
Buffer will be discarded. All of the data after the second SOH will be placed in the Receive Data
Buffer.

2. After detecting the EOT, the printer checks for the following:

* The DST. Z-ID matches the printer’s Network I.D.
Note • If the Network ID at the printer is all zeros, the printer will accept all Request Packets
regardless of the DST. Z-ID received. If a Request Packet is received with the DST. Z-ID all
zeros, it is accepted by all printers regardless of their Network ID setting.

*The Data Format begins with STX and ends with ETX.
*The Sequence Number has not been used before.
If the check is satisfactory, proceed to Step 3 on the following page.
If any part of the check is unsatisfactory, the printer discards the data in its Receive Data Buffer and
waits for another SOH. No response is sent to the computer.

Exceptions
It is possible that the printer will send a response to the host that the host does not receive.
Therefore, the host will send the same request packet to the printer again. If this happens, the printer
will not use the data if it already used it before. However, the printer will send a response back to the
host.
The printer calculates the CRC and compares it with the one received in the Request Packet. If the
CRC is valid, the printer sends a Positive Response Packet to the Host computer. It then transfers
the ‘Variable Length’ data from the Receive Buffer to its memory for processing. If the CRC does not
match, and the printer is set up to return a Negative Response Packet, the following will take place:

1. The printer assumes that the DST. Z-ID, SRC. Z-ID, and Sequence Number are correct and

that the error was in the variable data.
2. The same DST. Z-ID, printers SRC. Z-ID, and Sequence Number will be returned back to the

host in the Negative Response Packet.
3. If the assumption in (a) is incorrect, the Host computer can time-out and retransmit the

original Request Packet.

How the Zebra Printer Responds to Host Status
If a ~HS (Host Status) command is received by the Zebra printer, the printer will send back an
acknowledgment for the receipt of the packet. It then sends an additional packet that includes the
Host Status information in the Variable Length portion of the packet.

P1099958-001

Programming Guide

1/31/18

Error Detection Protocol
Response From the Zebra Printer

1/31/18

Programming Guide

P1099958-001

1363

1364

Error Detection Protocol
Response From the Zebra Printer

Notes • ____________________________________________________________________

__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________

P1099958-001

Programming Guide

1/31/18

ZB64 Encoding and
Compression

This section describes the Base 64 MIME (ZB64) encoding and compression. This is the same type
of MIME encoding that is used in e-mail.
For more information on ZB64 Encoding and Compression, contact your Reseller or Zebra
Representative.

Contents

1/31/18

Programming Guide

P1099958-001

1366

ZB64 Encoding and Compression
Introduction to B64 and Z64

Introduction to B64 and Z64 ................................................................................................... 1366
B64 and Z64 Encoding ............................................................................................................. 1367

Introduction to B64 and Z64
The first encoding, known as B64, encodes the data using the MIME Base64 scheme. Base64 is
used to encode e-mail attachments and is specifically designed to address communications path
limitations, such as control characters and 7-bit data links. It encodes the data using only the
printable ASCII characters:

With the use of ZPL, this has the added benefit of avoiding the caret (^) and tilde (~) characters.
Base64 encodes six bits to the byte, for an expansion of 33 percent over the un-enclosed data. This
is much better than the 100 percent expansion given by the existing ASCII hexadecimal encoding.
The second encoding, known as Z64, first compresses the data using the LZ77 algorithm to reduce
its size. (This algorithm is used by the PKWARE® compression program PKZIP™ and is integral to
the PNG graphics format.) The compressed data is then encoded using the MIME Base64 scheme
as described above.
A CRC is calculated across the Base64-encoded data. If the CRC-check fails or the download is
aborted, the object can be invalidated by the printer.
The robust encodings can be piggybacked on the existing download commands with full backward
compatibility. This is done by prefacing the new encodings with a header that uniquely identifies
them. The download routines in the printer firmware can key-off the header to determine whether the
data is in the old ASCII hexadecimal encoding or one of the new encodings. This allows existing
downloadable objects to be used in their present format, while new objects can be created using the
same download commands with the new encodings for increased integrity and reduced download
times.
For easy reference, B64 and Z64 are referred to as ZB64. In any reference to the ZB64 encoding,
assume that both Base64-only (B64) and LZ77/Base64 (Z64) encodings are accepted.
Example: The following is an example of an existing download command using the new encoding:
~DTARIAL,59494,:Z64:H4sICMB8+DMAC0FSSUFMLlRURgDsmnd8VEW7x5+ZOedsyibZNNJhlyWhbEJI
wYSwJDGNkmwghJIgJYEEEhQIPSggKAjEAiIiVaSoIJYNBAkIGgGxUBVUUCGU0JQSC0WFnPvbE+SF18+9
H+8f973X+3Jm93umzzNznvnNSSFGRJ6ARAVZvXK7XDaXLyTiR5B7ontuZPQ824I5RKIa6ew+aba8+pU1
rVDZiciv
[multiple lines deleted]
/O6DU5wZ7ie2+g4xzDPwCpwm3nqW2GAPcdclxF4fIP66jHjncmKvKzh/ZUNCxl9/QQx2HXHYB4m/PkQc
dCdx2G7OYt+mszkMh4iZxoifvkh89BFipo87kwD/Bf/dOcycAAEA:a1b2

The parameters are identical to the existing ~DT command:

P1099958-001

Programming Guide

1/31/18

ZB64 Encoding and Compression
B64 and Z64 Encoding

Table 43 •
Parameter

Details

o = font name

Values: any valid TrueType name, up to 8
characters
Default: if a name is not specified, UNKNOWN is
used
In this example, Arial is the specified font.

s = font size

Values: the number of memory bytes required to
hold the Zebra-downloadable format of the font
Default: if an incorrect value or no value is
entered, the command is ignored
In this example, 59494 is the size.
To maintain compatibility with the existing ASCII hexadecimal
encoding, this field must contain the size of the un-enclosed and
uncompressed object — the number of bytes that are finally placed
into the printer’s memory, not the number of bytes downloaded.

data = data

string

Values: a string of ASCII hexadecimal values
(two hexadecimal digits/byte). The total number
of two-digit values must match parameter s.
Default: if no data is entered, the command is
ignored
Everything following the size field is data. The new encoding imposes
a header with a unique signature. The new encoding must start with
the characters :B64: (data encoded in Base-64 only) or :Z64: (data
compressed with LZ77, then encoded in Base-64) followed by the
encoded data.
After the data is presented, another colon (:) and four hexadecimal
digits comprise the CRC. The Base64 standard allows new-line
characters (carriage returns and line feeds) to be inserted into the
encoded data for clarity. These characters are ignored by the printer.

When downloading graphics, the colon is used in the current ASCII hexadecimal encoding indicate
“repeat the previous dot row.” Since this shorthand is invalid for the first character of data (no
previous dot row has been downloaded), it is safe for the printer to detect the leading colon
character as the lead-in for the new encodings.

B64 and Z64 Encoding
These download encodings, B64 and Z64, are created as drop-in replacements for the existing
ASCII hexadecimal encoding.
B64 encoding do the following:
• Encode the compressed data using the MIME Base64 algorithm.
• Calculate a CRC across the encoded data.
• Add a unique header to differentiate the new format from the existing ASCII hex encoding.
Z64 encoding do the following:
• Compress the data using the LZ77 algorithm.

1/31/18

Programming Guide

P1099958-001

1367

1368

ZB64 Encoding and Compression
B64 and Z64 Encoding
• Encode the compressed data using the MIME Base64 algorithm.
• Calculate a CRC across the encoded data.
• Add a unique header to differentiate the new format from the existing ASCII hexadecimal
encoding.
The data field have this format:

:id:encoded_data:crc

Table 44 •
Parameter

Details

:id

the identifying string B64 or Z64

:iencoded_data

data to download, compressed with LZ77 (if the id parameter is set to
Z64) and encoded with Base64.

:crc

four hexadecimal digits representing the CRC calculated over the
:encoded_data field.

The printer calculates a CRC across the received data bytes and compare this to the CRC in the
header. A CRC mismatch is treated as an aborted download.
The B64 and Z64 encodings can be used in place of the ASCII hexadecimal encoding in any
download command. The commands are:

~DB – Download Bitmap Font
~DE – Download Encoding
~DG – Download Graphic
~DL – Download Unicode Bitmap Font
~DS – Download Scalable Font
~DT – Download TrueType Font
~DU – Download Unbounded TrueType Font
^GF – Graphic Field (with compression type set to “ASCII hex”)
The ~DB (Download Bitmap Font) command can use the new encodings in place of the ASCII
hexadecimal encoding in data sub-fields. Each character is encoded individually. However, for small
amounts of data, the identifying B64 or Z64 header and trailing CRC may negate any gains made by
using the new format.
For backward compatibility, the ^HG (Host Graphic) command uses the ASCII hexadecimal
encoding. It does not use the new encodings.

P1099958-001

Programming Guide

1/31/18

Field Interactions

This section provides you with examples that show how commands interact with various justification
parameters. The examples are in charts for these orientations:

Normal Orientation ................................................................................................................. 1370
Rotated Orientation ................................................................................................................ 1371
Bottom Up Orientation............................................................................................................ 1372
Inverted Orientation................................................................................................................ 1373

These charts are designed so that you can identify the location of the field origin and interactions
between the rotation, formatting and justification commands.

1/31/18

Programming Guide

P1099958-001

1370

Field Interactions
Normal Orientation

Normal Orientation
Table 45 shows you the various normal orientation outputs:

Table 45 • Normal Orientation Examples
^FPH

^FPV

^FPR

^FO
Left
Justified

^FT
Left
Justified

^FO
Right
Justified

^FT
Right
Justified

P1099958-001

Programming Guide

1/31/18

Field Interactions
Rotated Orientation

Rotated Orientation
Table 46 shows you the various rotated orientation outputs:

Table 46 • Rotated Orientation Examples
^FPH

^FPV

^FPR

^FO
Left
Justified

^FT
Left
Justified

^FO
Right
Justified

^FT
Right
Justified

1/31/18

Programming Guide

P1099958-001

1371

1372

Field Interactions
Bottom Up Orientation

Bottom Up Orientation
Table 47 shows you the various bottom up orientation outputs:

Table 47 • Bottom Orientation Examples
^FPH

^FPV

^FPR

^FO
Left
Justified

^FT
Left
Justified

^FO
Right
Justified

^FT
Right
Justified

P1099958-001

Programming Guide

1/31/18

Field Interactions
Inverted Orientation

Inverted Orientation
Table 48 shows you the various inverted orientation outputs:

Table 48 • Inverted Orientation Examples
^FPH

^FPV

^FPR

^FO
Left
Justified

^FT
Left
Justified

^FO
Right
Justified

^FT
Right
Justified

1/31/18

Programming Guide

P1099958-001

1373

1374

Field Interactions
Inverted Orientation

Notes • ____________________________________________________________________

__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________

P1099958-001

Programming Guide

1/31/18

Real Time Clock

This appendix contains the information needed to install, program, and operate the Real Time Clock
(RTC) option. This hardware option is available as either a factory-installed or field-installable option
in specific printer products manufactured and sold by Zebra Technologies Corporation.
The Real Time Clock option is currently available for following printers, and requires that the
firmware version shown is installed on that printer.

Contents
Control Panel Programming .................................................................................................... 1376
Real Time Clock Parameters ................................................................................................ 1376
RTC Date .............................................................................................................................. 1377
RTC Time .............................................................................................................................. 1378
RTC General Information......................................................................................................... 1378
First Day of the Week Affects Calendar Week..................................................................... 1380
Time and Date Precision ...................................................................................................... 1381
ZPL II Samples .......................................................................................................................... 1383

Supported Zebra Printer and Print Engine Models

Requires this
Firmware Version
or Later

105SL printers that meet any one of the following criteria:

60.13.0.13Z

•
•
•

1/31/18

if the printer was manufactured after April 2006
if the RTC Date and the RTC Time fields are printed on the
configuration label
if the RTC Date and the RTC Time appear on the LCD display

DA402 & T402 printers

32.8.4

LP2844-Z, TPL2844-Z, and TPL3844-Z printers

45.10.x

Programming Guide

P1099958-001

1376

Real Time Clock
Control Panel Programming

Supported Zebra Printer and Print Engine Models
PAX Series
print engines

Requires this
Firmware Version
or Later

170PAX2 print engines

29.9.x or 31.9.x

110PAX3 print engines using Standard Font

34.10.x

110PAX3 print engines using TT Font

49.10.x

116PAX3 print engines using TT Font

35.10.x

170PAX3 print engines using Standard Font

37.10.x

170PAX3 print engines using TT Font

38.10.x

110PAX4 and 170PAX4 print engines

60.13.0.12

S4M printers (field-installable kit)

50.13.x

S600 printers

27.10.3

Xi Series
printers

90XiII, 140XiII, 170XiII & 220XiII printers

18.9.x

90XiIII, 96XiIII, 140XiIII, 170XiIII, and 220XiIII printers

33.10.0

90XiIIIPlus, 96XiIIIPlus, 140XiIIIPlus, 170XiIIIPlus,
and 220XiIIIPlus printers

60.13.0.12

Z4Mplus and Z6Mplus printers

60.13.0.12

ZM400/ZM600/RZ400/RZ600 printers

53.15.xZ

Control Panel Programming
New parameters for the Real Time Clock have been added to the Control Panel Configuration.
These parameters are located immediately following the FORMAT CONVERT prompt. Refer to
the printer/print engine User Guide for complete configuration information.
• X.9.x firmware added the parameters to XiII printers and 170PAX/170PAX2 print engines.
• X.10.x firmware added the parameters to XiIII printers and PAX3 print engines.
• X.13.x firmware added the parameters to XiIIIPlus printers, PAX4 print engines.
• X.13.0.13Z firmware added the parameters to 105SL printers.

Real Time Clock Parameters
The parameters listed on the following pages are added to the Control Panel Configuration prompts
only when both the Real Time Clock hardware option and the appropriate version of firmware are
installed:
• X.9.x or later firmware installed in the XiII series printers or the 170PAX/170PAX2 series print
engines.
• X.10.x or later firmware installed in the XiIII series printers or the PAX3 series print engines.
• X.13.0.13Z or later firmware installed in the 105SL printers
• X.13.x or later firmware installed in the XiIIIPlus series printers, the PAX4 series print engines,
or the S4M printers.
The RTC ZPL II commands apply to all printers/print engines with the Real Time Clock hardware
option and proper firmware.

P1099958-001

Programming Guide

1/31/18

Real Time Clock
Control Panel Programming

Idle Display
Selects the printer/print engine Idle Display format and the method of displaying the time/date
information. This parameter also affects the Configuration Label printout and the RTC DATE and
RTC TIME formats.

Selections
• FW VERSION
• MM/DD/YY 24HR
• MM/DD/YY 12HR
• DD/MM/YY 24HR
• DD/MM/YY 12HR
If FW VERSION is selected, the format on the Configuration Label and on the RTC DATE and RTC
TIME parameters is MM/DD/YY 24HR.

RTC Date
Allows entry of the RTC date in the format selected by the IDLE DISPLAY parameter.

Note • The RTC parameters are password-protected. Refer to your printer’s user guide for
specific instructions on accessing and modifying printer parameters.

Printer Model

Action

PAX Series print
engines, Xi Series
printers, and 105SL
printers

1. Use the LEFT oval key to select the position to be adjusted

Z4Mplus and
Z6Mplus printers

1. Press SELECT to select the parameter.

2. Then, use the RIGHT oval key to select the correct value for that

position.
2. Use the MINUS (-) key to select the position to be adjusted
3. Then, use the PLUS (+) key to select the correct value for that

position.
4. Press SELECT to accept any changes and deselect the parameter.
S4M printer

1. Press ENTER. The printer displays the current RTC date.
2. Modify the values as follows:
•
•
•

Press the right arrow to move to the next digit position.
To increase the value, press the up arrow.
To decrease the value, press the down arrow.

3. Press ENTER to accept the value shown.

Note • Invalid dates, such as 2/29/1999, may be entered, but will not be saved.

1/31/18

Programming Guide

P1099958-001

1377

1378

Real Time Clock
RTC General Information

RTC Time
Allows entry of the RTC time in the format selected by the IDLE

DISPLAY parameter.

Note • The RTC parameters are password-protected. Refer to your printer’s user guide for
specific instructions on accessing and modifying printer parameters.

Printer Model

Action

PAX Series print
engines, Xi Series
printers, and 105SL
printers

1. Use the LEFT oval key to select the position to be adjusted

Z4Mplus and
Z6Mplus printers

1. Press SELECT to select the parameter.

2. Use the RIGHT oval key to select the correct value for that

position.
2. Use the MINUS (-) key to select the position to be adjusted.
3. Use the PLUS (+) key to select the correct value for that position.
4. Press SELECT to accept any changes and deselect the parameter.

S4M printer

1. Press ENTER. The printer displays the current RTC date.
2. Modify the values as follows:
•
•
•

Press the right arrow to move to the next digit position.
To increase the value, press the up arrow.
To decrease the value, press the down arrow.

3. Press ENTER to accept the value shown.

RTC General Information
The Real Time Clock commands are only applicable if the Real Time Clock option is installed in the
printer. For those printers with an LCD control panel display, additional control panel configuration
parameters are also included.
The ZPL II Field Clock ^FC command is used to specify the clock-indicator character for the primary,
secondary, and third clocks. This command must be included within each label field command string
whenever the date or time clock values are required within the field. No date or time clock
information can be printed in a label field unless this command is included. The ^FC command can
now be combined with the ^SN command in V60.13.0.10 and later.
A clock-indicator can be any printable character except the ZPL II Format Prefix, Control Prefix, or
Delimiter characters. The default value for the primary clock-indicator is the percent sign %. The
secondary and third clock-indicators have no defaults and must be specified in order for that clock to
be used.
The Field Data ^FD command has been expanded to recognize the clock-indicators and associated
command characters, and to replace them during the printing process with the corresponding time
or date parameter. For example, if the primary clock-indicator is the percent sign %, then during
printing, the character sequence %H in the ^FD statement would be replaced by the 2-digit current
hour.

Note • If the Real Time Clock is not installed, or the ^FC command has not preceded the ^FD
statement, no replacement would occur. In this case, the characters %H would print as text on the
label.
The name of the day of the week, the name of the month, and the AM or PM designation can also be
inserted in place of a specific clock-indicator/command character sequence. See Table 49 for the list
of command characters and their functions.
P1099958-001

Programming Guide

1/31/18

Real Time Clock
RTC General Information

Table 49 • Command Characters
Command
Character

Function

%a

is replaced by the abbreviated weekday name

%A

is replaced by the weekday name

%b

is replaced by the abbreviated month name

%B

is replaced by the month name

%d

is replaced by the day of the month number, 01 to 31

%H

is replaced by the hour of the day (military), 00 to 23

%I

is replaced by the hour of the day (civilian), 01 to 12

%j

is replaced by the day of the year, 001 to 366

%m

is replaced by the month number, 01 to 12

%M

is replaced by the minute, 00 to 59

%p

is replaced by the AM or PM designation

%S

is replaced by the seconds, 00 to 59

%U

is replaced by the week# of the year, 00 to 53, Sunday is 1st day*

%W

is replaced by the week# of the year, 00 to 53, Monday is 1st day**

%w

is replaced by the day# of the week, 00 (Sunday) to 06 (Saturday)

%y

is replaced by the 2 digits of the year, 00 to 99

%Y

is replaced by the full 4 digit year number—where% is the specified
clock-indicator character

*. %U establishes Sunday as the first day of the year.
**.%W establishes Monday as the first day of the year.

The Set Offset ^SO command permits the printing of specific times and dates relative to the primary
clock. The secondary (or third) clock is enabled when secondary (or third) offsets are entered using
this command. The secondary (or third) clock time and date are determined by adding the offsets to
the current clock reading.
One ^SO command is required to set the secondary offset; an additional ^SO command is required
for a third offset. The offsets remain until changed or until the printer is either powered down or reset.

Note • Only dates from January 1, 1998 to December 31, 2097 are supported. Setting the offsets
to values that result in dates outside this range is not recommended and may have unexpected
results.
The Set Mode/Language (see ^SL on page 313) command is used to select the language the days
of the week and the months are printed in. This command also sets the printing mode, which can be
S for START TIME, T for TIME NOW, or a Numeric Value for the time accuracy. In START TIME
mode, the time printed on the label is the time that is read from the Real Time Clock when the label
formatting begins (when the ^XA command is received by the printer). In TIME NOW mode, the time
printed on the label is the time that is read from the Real Time Clock when the label is placed in the
queue to be printed. In Numeric Value mode, a time accuracy tolerance can be specified.

1/31/18

Programming Guide

P1099958-001

1379

1380

Real Time Clock
RTC General Information

First Day of the Week Affects Calendar Week
The %U and %W commands set the first day of the week. The week numbering starts at the beginning
of the year with Week 01 representing the first full week of the year. Any day(s) before that
established first day of the week are part of the Week 00. The following examples show how setting
different days as the first day of the week affect the calendar week.

Important • The %U and %W commands determine the numbering for all weeks in the year.
Example: January, 2005 with Week 00

Set Sunday as the first day of the week using the %U command. In this example,
notice that Saturday, January 1st is Week 00 and Sunday, January 2nd begins
Week 01.
Sun
First Day of
the Week

Mon

Tue

Wed

Thu

Fri

Sat
1

Week 00
Week 01

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

Example: January, 2005 with Week 00

Set Monday as the first day of the week using the %W command. In this example,
notice that Saturday, January 1st and Sunday, January 2nd are Week 00 and Monday,
January 3rd begins Week 01.
Mon
First Day of
the Week

Tue

Wed

Thu

Fri

Sat

Sun

1

2

Week 00
Week 01

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

P1099958-001

Programming Guide

1/31/18

Real Time Clock
RTC General Information
Example: January, 2006 without Week 00

Set Sunday as the first day of the week using the %U command. Since 2006 begins on
a Sunday, there is no Week 00 in this example.
Sun
First Day of
the Week

Mon

Tue

Wed

Thu

Fri

Sat

No Week 00
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

Week 01

Example: January, 2006 with Week 00

Set Monday as the first day of the week using the %W command. In this example,
Saturday, January 1st is Week 00 and Sunday, January 2nd begins Week 01.
Mon
First Day of
the Week

Tue

Wed

Thu

Fri

Sat

Sun
1

Week 00
Week 01

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

Time and Date Precision
As of V60.13.0.1 firmware, the ^CO command is now ignored. While the S4M printer has a lower
firmware version number (V50.x), its firmware was recently released and follows the rule to ignore
the ^CO command.
The time and date placed in a label field is determined at the time the label bitmap is created by the
printer (start time mode). If a batch of labels is formatted, the date and time will be the same for all
labels in the batch. If the printer is paused during the printing process and remains in that state for a
period of time, when printing resumes, the time and date will still be the same as when the batch was
first started.
If more precise time and date stamps are required on versions prior to V60, follow the process
below. For versions after V60, use the Numeric Value mode as shown in ^SL on page 313.
Cycle the printer/print engine power Off (O) and On (l) to clear the memory before performing the
steps below.

1/31/18

Programming Guide

P1099958-001

1381

1382

Real Time Clock
RTC General Information

Table 50.
1. Print a Memory Usage Label (^XA^WD*:*.*^XZ)

and note the following value:
Available RAM (in BYTES)

(A)

__________

(B)

__________

(C)

__________

(D)

__________

2. Print a Configuration Label and note these values:

Printer “Print Width” (in DOTS)
(NOT the Label Width)
Label Length (in DOTS)

3. Determine the desired maximum number of queued labels with

the same Time and Date value.
Note • Increasing the number of queued labels will improve throughput performance, but Real
Time Clock values will be less accurate. Two is usually a good compromise.

Table 51.
4. Substitute the values for B through D from the previous page into

the following formula:
The “label queue” memory required (in BYTES)
(B x C x D)/8 =

(E)

__________

(F)

__________

5. Substitute the values for A and E into the following formula:

The ^CO command memory required (in KBYTES)
(A-E)/1024)-5=

Note • If the value of (F) is less than zero, then no ^CO command is needed. If the value of (F)
is greater than zero, use the integer portion in the ^CO command.
Example:

Table 52.
Available RAM (A)

= 71478 BYTES

Print Width (B)

= 832 DOTS

Label Length (C)

= 1000 DOTS

Max Labels Queued (D)

=2

Then —
The label queue memory required (E) =
(B x C x D)/8 = 208000 BYTES
And —
The ^CO command memory required (F) =

P1099958-001

Programming Guide

1/31/18

Real Time Clock
ZPL II Samples
This command string will cause 489 KBYTES to be set aside as Font Memory and make it
unavailable as label format memory. The memory remaining will only allow two labels to be
formatted at one time, and the time and date will be more precise for those two labels.

Note • For the 170PAX2 print engine, you must disable the Reprint Function for the Time Now
Mode to function properly.

ZPL II Samples
The ZPL II scripts shown on this page establish the initial settings for the date and time clock. The
script below then references these settings to provide the output shown in Figure 7 on page 1384.
Setting the date and time for the Real Time Clock only needs to be done once. The date and time
are maintained by an on-board battery when the printer is reset or the printer is turned Off (O).
To set the date and time to April 23, 2005 at 2:30pm, the following command string should be sent to
the printer:

^XA
^ST04,23,2005,02,30,0,P^FS
^XZ
To initialize the Real Time Clock and set up two offset values (offset #2 set to 3 months and 1 hour in
the future, offset #3 set to 1 year in the past), the following command sequence should be sent to the
printer:

^XA
^SL
^SO2,3,0,0,1,0,0^FS
^SO3,0,0,-1,0,0,0^FS
^XZ
The above ZPL II scripts initialize the RTC date and time and must be sent to a printer to provide
proper date and time parameters for the ZPL II script below.
The following ZPL II script illustrates the various methods of printing the date and time initialized in
the script above within separate fields on continuous media. Figure 7 on page 1384 illustrates the
printout of this script on a label.
For the below example, the ^FC command delimiters are:

1/31/18

Programming Guide

P1099958-001

1383

1384

Real Time Clock
ZPL II Samples

% Primary clock indicator
{ Secondary clock indicator
# Third clock indicator

^XA
^LL175
^FO10,025^AD^FC%,{,#^FD1: Mil: %H:%M:%S
^FO10,050^AD^FC%,{,#^FD2: Mil: {H:{M:{S
^FO10,075^AD^FC%,{,#^FD3: Mil: #H:#M:#S
^FO10,100^AD^FC%,{,#^FD1: On %A, %B %d
, %Y (%a, %m/%d/%y, %d %b %Y).^FS
^FO10,125^AD^FC%,{,#^FD2: On {A, {B {d,
{a, {m/{d/{y, {d {b {Y).^FS
^FO10,150^AD^FC%,{,#^FD3: On #A, #B #d,
#a, #m/#d/#y, #d #b #Y).^FS

Civ: %I:%M:%S %p^FS
Civ: {I:{M:{S {p^FS
Civ: #I:#M:#S #p^FS

{Y (
#Y (

^XZ
Figure 7 • Printed Result of the Above ZPL II Script
1: Mil: 14:30:00 Civ: 02:30:00 PM
2: Mil: 15:30:00 Civ: 03:30:00 PM
3: Mil: 14:30:00 Civ: 02:30:00 PM
1: On Wed, April 23, 2005 (Fri, 04/23/05, 23 Apr 2005)
2: On Saturday, July 23, 2005 (Sat, 07/23/05, 23 Jul 2005)
3: On Friday, April 23, 2004 (Fri, 04/23/04, 23 Apr 2004)
The following are examples of the time stamp using the ^SL1 and ^SL5 at 2 ips and 10 ips for the
Enhanced Real Time Clock (V60.13.0.10 and later).

Note • They show the variation of time due to print speed and label complexity.
^XA
^SL1^FS
^FO187,184^A0N,101,121^FC%^FD%H:%M:%S^FS
^PQ10
^XZ

P1099958-001

Programming Guide

1/31/18

Real Time Clock
ZPL II Samples

Figure 8 • Example of ^SL1, 2 ips and 10 ips
2 ips

1
2
3

Label 1
Label 2
Label 3

10 ips

15:42:31

10

15:47:10

15:42:29

9

15:47:09

15:42:27

8

15:47:08

15:42:24

7

15:47:07

15:42:22

6

15:47:06

15:42:20

5

15:47:05

15:42:18

4

15:47:04

15:42:16

3

15:47:03

15:42:13

2

15:47:02

15:42:11

1

15:47:01

4
5
6

Label 4
Label 5
Label 6

7
8
9

Label 7
Label 8
Label 9

10

Label 10

^XA
^SL5^FS
^FO187,184^A0N,101,121^FC%^FD%H:%M:%S^FS
^PQ10
^XZ

1/31/18

Programming Guide

P1099958-001

1385

1386

Real Time Clock
ZPL II Samples

Figure 9 • Example of ^SL5, 2 ips and 10 ips
2 ips

15:43:55

10

15:48:22

15:43:55

9

15:48:22

15:43:55

8

15:48:22

15:43:50

7

15:48:22

15:43:50

6

15:48:22

15:43:50

5

15:48:22

15:43:47

4

15:48:22

15:43:42

3

15:48:22

15:43:42

2

15:48:22

15:43:42

1

15:48:22

1
2
3
4
5

P1099958-001

10 ips

Label 1
Label 2
Label 3
Label 4
Label 5

Programming Guide

6
7
8
9
10

Label 6
Label 7
Label 8
Label 9
Label 10

1/31/18

Real Time Clock
ZPL II Samples

1/31/18

Programming Guide

P1099958-001

1387

1388

Real Time Clock
ZPL II Samples

Notes • ____________________________________________________________________

__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________

P1099958-001

Programming Guide

1/31/18

ZBI Character Set

This section provides you with the set of characters that are supported on the front panel of the
following Zebra printers with ZBI 2.0: XiIIIPlus, 105SL, Z4M/Z6M, ZM400/ZM600,
RZ400/RZ600, PAX4 and S4M when V60.16.0Z or V53.16.0Z, or later firmware are loaded.
These characters can be used in ZBI programs to display content on the LCD.

Character Set
These are the supported characters for these Zebra printers:
• XiIIIPlus
• 105SL
• Z4M/Z6M
• PAX4
• S4M:

1/31/18

Programming Guide

P1099958-001

1390

ZBI Character Set
Character Set

These are the supported characters for these Zebra printers:
• ZM400/ZM600
• RZ400/RZ600
• Xi4
• RXi4

P1099958-001

Programming Guide

1/31/18

ZBI Character Set
Character Set

1/31/18

Programming Guide

P1099958-001

1391

1392

ZBI Character Set
Character Set

Notes • ____________________________________________________________________

__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________

P1099958-001

Programming Guide

1/31/18

SGD Command
Support

This appendix provides you with details identifying which SGD commands can be used with different
printers and firmware versions.

Printer and Firmware Compatibility
This section provides supported printer models and minumum firmware versions for all SGD
commands. In order to set and get configurations, the SGD commands can be used through the
Ethernet, serial, parallel, and USB interfaces.

Note • The printer responds with the printer setting of "?" if the printer setting:
•
•

does not exist
has not been configured yet

If you have …

Then…

•
•
•
•
•

105SL
PAX4
S4M
Xi4
XiIIIPlus

•
•
•
•

Z4MPlus/Z6MPlus
ZM400/ZM600
ZT200 Series
ZE500 Series

Go to Table 53, Table Top and Print Engine SGD Firmware
Compatibility on page 1394.

•
•
•
•
•

ZD500R
HC100
KR403
LP2824 Plus
TLP2824 Plus

•
•
•
•
•
•

G-Series
GT800
GC420d
GC420t
GK800
GK888

Go to Table 54, Desktop and Kiosk SGD Firmware Compatibility
on page 1405.

•
•
•
•

R110PAX4
R110Xi (UHF)
R110Xi HF
R170Xi

•
•
•

R4Mplus
RXi4
RZ400/RZ600

Go to Table 55, RFID Printer SGD Firmware Compatibility
on page 1426.

1/31/18

Programming Guide

P1099958-001

1394

SGD Command Support
Printer and Firmware Compatibility

Standard Table Top Printers and Print Engines
Important • All the firmware versions noted in Table 53 refer to the minimum firmware
version required. For Desktop and Kiosk printers see Table 54. For RFID printer support, see
Table 55.
Table 53 • Table Top and Print Engine SGD Firmware Compatibility
ZE500
Series

ZT200
Series

XiIIIPlus
105SL, PAX4
Z4MPlus
Z6MPlus

S4M

ZM400
ZM600

Xi4

appl.bootblock

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

appl.name

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

appl.option_board_version

SGD Commands

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

bluetooth.address

—

V72.18.2Z

—

—

—

—

bluetooth.afh_map

—

V72.18.2Z

—

—

—

—

bluetooth.afh_map_curr

—

V72.18.2Z

—

—

—

—

bluetooth.afh_mode

—

V72.18.2Z

—

—

—

—

bluetooth.authentication

—

V72.18.2Z

—

—

—

—

bluetooth.bluetooth_pin

—

V72.18.2Z

—

—

—

—

bluetooth.date

—

V72.18.2Z

—

—

—

—

bluetooth.discoverable

—

V72.18.2Z

—

—

—

—

bluetooth.enable

—

V72.18.2Z

—

—

—

—

bluetooth.friendly_name

—

V72.18.2Z

—

—

—

—

bluetooth.local_name

—

V72.18.2Z

—

—

—

—

bluetooth.radio_auto_baud

—

V72.18.2Z

—

—

—

—

bluetooth.radio_version

—

V72.18.2Z

—

—

—

—

bluetooth.short_address

—

V72.18.2Z

—

—

—

—

bluetooth.version

—

V72.18.2Z

—

—

—

—

card.inserted

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

card.mac_addr

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

CISDFCRC16

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

comm.baud

V53.17.2Z

V72.18.2Z

V60.15.0

V50.15.0

V53.15.5Z

V53.17.2Z

comm.halt

—

V72.18.2Z

—

—

—

—

comm.parity

V53.17.2Z

V72.18.2Z

V60.15.1

V50.15.0

V53.15.5Z

V53.17.2Z

comm.pnp_option

V53.17.2Z

V72.18.2Z

V60.15.0

V50.15.0

V53.15.5Z

V53.17.2Z

comm.stop_bits

V53.17.2Z

V72.18.2Z

V60.15.2

V50.15.0

V53.15.5Z

V53.17.2Z

comm.type

—

V72.18.2Z

—

—

—

—

cutter.clean_cutter

—

V72.18.2Z

—

—

—

—

device.command_override.active

—

—

—

—

—

—

device.command_override.clear

—

—

—

—

—

—

device.command_override.list

—

—

—

—

—

—

device.cutter_installed

—

—

—

—

—

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

P1099958-001

Programming Guide

1/31/18

SGD Command Support
Printer and Firmware Compatibility

Table 53 • Table Top and Print Engine SGD Firmware Compatibility (Continued)

SGD Commands
device.download_connection_timeout
device.epl_legacy_mode

ZE500
Series

ZT200
Series

XiIIIPlus
105SL, PAX4
Z4MPlus
Z6MPlus

S4M

ZM400
ZM600

Xi4

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

—

V72.18.2Z

—

—

—

—

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

—

V72.18.2Z

—

—

—

—

device.frontpanel.key_press

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

device.frontpanel.line1

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

device.frontpanel.line2

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

device.frontpanel.xml

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

—

V72.18.2Z

—

—

—

—

device.friendly_name
device.frontpanel.feedenabled

device.host_identification
device.host_status

—

V72.18.2Z

—

—

—

—

device.jobs_print

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

device.languages

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

device.ltu_installed

—

V72.18.2Z

—

—

—

—

device.orientation

—

V72.18.2Z

—

—

—

—

device.pause

—

V72.18.2Z

—

—

—

—

device.pnp_option

—

V72.18.2Z

—

—

—

—

device.position.accuracy

—

V72.19.6Z

—

—

—

—

device.position.altitude

—

V72.19.6Z

—

—

—

—

device.position.latitude

—

V72.19.6Z

—

—

—

—

device.position.longitude

—

V72.19.6Z

—

—

—

—

device.print_reprogram_2key

—

V72.18.2Z

—

—

—

—

device.reset

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

device.restore_defaults

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

—

V72.18.2Z

—

—

—

—

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

device.super_host_status
device.unique_id
device.unpause

—

V72.18.2Z

—

—

—

—

device.uptime

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

device.user_p1

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

device.user_p2

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

device.xml.enable

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.8Z

V53.15.8Z

V53.17.1Z

display.backlight

—

V72.18.2Z

—

—

—

—

display.backlight_on_time

—

V72.18.2Z

—

—

—

—

display.language

—

V72.18.2Z

—

—

—

—

display.load_card

—

V72.18.2Z

—

—

—

—

display.text

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

external_wired.check

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

external_wired.ip.addr

V53.17.16Z

V72.18.2Z

V60.15.8Z

**V53.15.5Z

**V53.15.5Z

V53.17.1Z

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

1/31/18

Programming Guide

P1099958-001

1395

1396

SGD Command Support
Printer and Firmware Compatibility

Table 53 • Table Top and Print Engine SGD Firmware Compatibility (Continued)
ZE500
Series

ZT200
Series

XiIIIPlus
105SL, PAX4
Z4MPlus
Z6MPlus

S4M

ZM400
ZM600

Xi4

external_wired.ip.arp_interval

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

SGD Commands

external_wired.ip.default_addr_enable

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

external_wired.ip.dhcp.cid_all

V53.17.16Z

V72.18.2Z

V60.15.8Z

**V53.15.5Z

**V53.15.5Z

V53.17.1Z

external_wired.ip.dhcp.cid_enable

V53.17.16Z

V72.18.2Z

V60.15.8Z

**V53.15.5Z

**V53.15.5Z

V53.17.1Z

external_wired.ip.dhcp.cid_prefix

V53.17.16Z

V72.18.2Z

V60.15.8Z

**V53.15.5Z

**V53.15.5Z

V53.17.1Z

external_wired.ip.dhcp.cid_suffix

V53.17.16Z

V72.18.2Z

V60.15.8Z

**V53.15.5Z

**V53.15.5Z

V53.17.1Z

external_wired.ip.dhcp.cid_type

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

**V53.15.5Z

V53.17.1Z

external_wired.ip.gateway

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

external_wired.ip.netmask

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

external_wired.ip.port

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

external_wired.ip.protocol

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

external_wired.ip.timeout.enable

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

external_wired.ip.timeout.value

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

external_wired.ip.v6.addr

V53.17.16Z

V72.18.2Z

V60.16.5Z

v53.16.5Z

v53.16.5Z

V53.17.1Z

external_wired.ip.v6.gateway

V53.17.16Z

V72.18.2Z

V60.16.5Z

v53.16.5Z

v53.16.5Z

V53.17.1Z

external_wired.ip.v6.prefix_length

V53.17.16Z

V72.18.2Z

V60.16.5Z

v53.16.5Z

v53.16.5Z

V53.17.1Z

external_wired.mac_addr

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

external_wired.mac_raw

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

ezpl.head_close_action

—

V72.18.2Z

—

—

—

—

ezpl.label_length_max

—

V72.18.2Z

—

—

—

—

ezpl.label_sensor

—

V72.18.2Z

—

—

—

—

ezpl.manual_calibration

—

V72.18.2Z

—

—

—

—

ezpl.media_type

—

V72.18.2Z

—

—

—

—

ezpl.power_up_action

—

V72.18.2Z

—

—

—

—

ezpl.print_method

—

V72.18.2Z

—

—

—

—

ezpl.print_width

—

V72.18.2Z

—

—

—

—

ezpl.reprint_mode

—

V72.18.2Z

—

—

—

—

ezpl.take_label

—

V72.18.2Z

—

—

—

—

ezpl.tear_off

—

V72.18.2Z

—

—

—

—

file.delete

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

file.dir

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

—

V72.18.2Z

—

—

—

—

file.run

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

file.type

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

—

V72.18.2Z

—

—

—

—

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

—

V72.18.2Z

—

—

—

—

file.dir_format

formats.cancel_all
head.latch
input.capture

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

P1099958-001

Programming Guide

1/31/18

SGD Command Support
Printer and Firmware Compatibility

Table 53 • Table Top and Print Engine SGD Firmware Compatibility (Continued)
ZE500
Series

ZT200
Series

XiIIIPlus
105SL, PAX4
Z4MPlus
Z6MPlus

S4M

ZM400
ZM600

Xi4

interface.network.active.arp_interval

—

V72.18.2Z

—

—

—

—

interface.network.active.cable_type

—

V72.18.2Z

—

—

—

—

interface.network.active.dhcp_received_host_name

—

V72.18.2Z

—

—

—

—

interface.network.active.gateway

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

interface.network.active.ip_addr

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

interface.network.active.mac_addr

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

interface.network.active.mac_raw

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

interface.network.active.netmask

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

interface.network.active.protocol

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

interface.network.active.protocol_error

—

V72.18.2Z

—

—

—

—

interface.network.active.rx_errors

—

V72.18.2Z

—

—

—

—

interface.network.active.rx_packets

—

V72.18.2Z

—

—

—

—

interface.network.active.server_address

—

V72.18.2Z

—

—

—

—

interface.network.active.speed

—

V72.18.2Z

—

—

—

—

interface.network.active.tx_errors

—

V72.18.2Z

—

—

—

—

interface.network.active.tx_packets

—

V72.18.2Z

—

—

—

—

interface.network.active.wins_addr

—

V72.18.2Z

—

—

—

—

internal_wired.auto_switchover

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

internal_wired.ip.addr

V53.17.16Z

V72.18.2Z

—

—

* V53.15.5Z

V53.17.1Z

internal_wired.ip.arp_interval

V53.17.16Z

V72.18.2Z

—

—

* V53.15.5Z

V53.17.1Z

internal_wired.ip.default_addr_enable

V53.17.16Z

V72.18.2Z

—

—

* V53.15.5Z

V53.17.1Z

SGD Commands

internal_wired.ip.dhcp.cache_ip

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

internal_wired.ip.dhcp.cid_all

V53.17.16Z

V72.18.2Z

—

—

* V53.15.5Z

V53.17.1Z

internal_wired.ip.dhcp.cid_enable

V53.17.16Z

V72.18.2Z

—

—

* V53.15.5Z

V53.17.1Z

internal_wired.ip.dhcp.cid_prefix

V53.17.16Z

V72.18.2Z

—

—

* V53.15.5Z

V53.17.1Z

internal_wired.ip.dhcp.cid_suffix

V53.17.16Z

V72.18.2Z

—

—

* V53.15.5Z

V53.17.1Z

internal_wired.ip.dhcp.cid_type

V53.17.16Z

V72.18.2Z

—

—

* V53.15.5Z

V53.17.1Z

internal_wired.ip.dhcp.lease.last_attempt

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

internal_wired.ip.dhcp.lease.length

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

internal_wired.ip.dhcp.lease.server

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

internal_wired.ip.dhcp.lease.time_left

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

internal_wired.ip.dhcp.option12

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

internal_wired.ip.dhcp.option12_format

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

internal_wired.ip.dhcp.option12_value

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

internal_wired.ip.dhcp.requests_per_session

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

internal_wired.ip.gateway

V53.17.16Z

V72.18.2Z

—

—

* V53.15.5Z

V53.17.1Z

internal_wired.ip.netmask

V53.17.16Z

V72.18.2Z

—

—

* V53.15.5Z

V53.17.1Z

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

1/31/18

Programming Guide

P1099958-001

1397

1398

SGD Command Support
Printer and Firmware Compatibility

Table 53 • Table Top and Print Engine SGD Firmware Compatibility (Continued)

SGD Commands
internal_wired.ip.port
internal_wired.ip.port_alternate

ZE500
Series

ZT200
Series

XiIIIPlus
105SL, PAX4
Z4MPlus
Z6MPlus

S4M

ZM400
ZM600

Xi4

V53.17.16Z

V72.18.2Z

—

—

V53.15.5Z

V53.17.1Z

—

V72.18.2Z

—

—

—

—

internal_wired.ip.protocol

V53.17.16Z

V72.18.2Z

—

—

* V53.15.5Z

V53.17.1Z

internal_wired.ip.timeout.enable

V53.17.16Z

V72.18.2Z

—

—

* V53.15.5Z

V53.17.1Z

internal_wired.ip.timeout.value

V53.17.16Z

V72.18.2Z

—

—

* V53.15.5Z

V53.17.1Z

internal_wired.mac_addr

V53.17.16Z

V72.18.2Z

—

—

* V53.15.5Z

V53.17.1Z

internal_wired.mac_raw

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

ip.active_network

V53.17.16Z

V72.18.2Z

V60.15.8Z

—

V53.15.5Z

V53.17.1Z

ip.addr

V53.17.16Z

V72.18.2Z

V60.15.2Z

—

V53.15.5Z

V53.17.1Z

ip.arp_interval

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.bootp.enable

V53.17.16Z

V72.18.2Z

V60.15.2Z

V53.15.5Z
V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.dhcp.arp_verify

—

V72.18.2Z

—

—

—

—

ip.dhcp.auto_provision_enable

—

V72.19.6Z

—

—

—

—

ip.dhcp.cache_ip

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

ip.dhcp.cid_all

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.dhcp.cid_enable

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.dhcp.cid_prefix

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.dhcp.cid_suffix

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.dhcp.cid_type

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.dhcp.enable

V53.17.16Z

V72.18.2Z

V60.15.2Z

V53.15.5Z
V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.dhcp.lease.last_attempt

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

ip.dhcp.lease.server

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

ip.dhcp.lease.time_left

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

ip.dhcp.option12

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

ip.dhcp.option12_format

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

ip.dhcp.option12_value

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

ip.dhcp.request_timeout

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

ip.dhcp.requests_per_session

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

ip.dhcp.session_interval

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

ip.dhcp.vendor_class_id

—

V72.19.6Z

—

—

—

—

ip.dns.domain

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

ip.dns.servers

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

ip.ftp.enable

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.ftp.execute_file

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

—

V72.18.2Z

—

—

—

—

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.ftp.request_password
ip.gateway

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

P1099958-001

Programming Guide

1/31/18

SGD Command Support
Printer and Firmware Compatibility

Table 53 • Table Top and Print Engine SGD Firmware Compatibility (Continued)
ZE500
Series

ZT200
Series

XiIIIPlus
105SL, PAX4
Z4MPlus
Z6MPlus

S4M

ZM400
ZM600

Xi4

ip.http.admin_name

—

V72.18.2Z

—

—

—

—

ip.http.admin_password

—

V72.18.2Z

—

—

—

—

ip.http.custom_link_name

—

V72.18.2Z

—

—

—

—

ip.http.custom_link_url

—

V72.18.2Z

—

—

—

—

ip.http.enable

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.http.faq_url

—

V72.18.2Z

—

—

—

—

ip.http.port

—

V72.18.2Z

—

—

—

—

ip.lpd.enable

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.mac_raw

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

SGD Commands

ip.mirror.appl_path

—

V72.19.6Z

—

—

—

—

ip.mirror.auto

V53.17.2Z

V72.18.2Z

V60.16.4Z

V53.17.2Z

V53.17.2Z

V53.17.2Z

ip.mirror.error_retry

V53.17.2Z

V72.18.2Z

V60.17.2Z

V53.17.2Z

V53.17.2Z

V53.17.2Z

ip.mirror.feedback.auto

V53.17.2Z

V72.18.2Z

V60.17.2Z

V53.17.2Z

V53.17.2Z

V53.17.2Z

ip.mirror.feedback.freq

V53.17.2Z

V72.18.2Z

V60.17.2Z

V53.17.2Z

V53.17.2Z

V53.17.2Z

ip.mirror.feedback.odometer

V53.17.2Z

V72.18.2Z

V60.17.2Z

V53.17.2Z

V53.17.2Z

V53.17.2Z

ip.mirror.feedback.path

V53.17.2Z

V72.18.2Z

V60.17.2Z

V53.17.2Z

V53.17.2Z

V53.17.2Z

ip.mirror.fetch

V53.17.2Z

V72.18.2Z

V60.17.2Z

V53.17.2Z

V53.17.2Z

V53.17.2Z

ip.mirror.freq

V53.17.2Z

V72.18.2Z

V60.17.2Z

V53.17.2Z

V53.17.2Z

V53.17.2Z

ip.mirror.freq_hours

V53.17.2Z

V72.18.2Z

V60.17.2Z

V53.17.2Z

V53.17.2Z

V53.17.2Z

ip.mirror.last_error

V53.17.2Z

V72.18.2Z

V60.17.2Z

V53.17.2Z

V53.17.2Z

V53.17.2Z

ip.mirror.last_time

V53.17.2Z

V72.18.2Z

V60.17.2Z

V53.17.2Z

V53.17.2Z

V53.17.2Z

ip.mirror.mode

—

V72.19.6Z

—

—

—

—

ip.mirror.password

V53.17.2Z

V72.18.2Z

V60.17.2Z

V53.17.2Z

V53.17.2Z

V53.17.2Z

ip.mirror.path

V53.17.2Z

V72.18.2Z

V60.17.2Z

V53.17.2Z

V53.17.2Z

V53.17.2Z

ip.mirror.reset_delay

V53.17.2ZA

V72.18.2Z

V60.17.2ZA

V53.17.2ZA

V53.17.2ZA

V53.17.2ZA

ip.mirror.server

V53.17.2Z

V72.18.2Z

V60.17.2Z

V53.17.2Z

V53.17.2Z

V53.17.2Z

ip.mirror.success

V53.17.2Z

V72.18.2Z

V60.17.2Z

V53.17.2Z

V53.17.2Z

V53.17.2Z

ip.mirror.success_time

V53.17.2Z

V72.18.2Z

V60.17.2Z

V53.17.2Z

V53.17.2Z

V53.17.2Z

ip.mirror.username

V53.17.2Z

V72.18.2Z

V60.17.2Z

V53.17.2Z

V53.17.2Z

V53.17.2Z

ip.mirror.version

V53.17.2Z

V72.18.2Z

V60.17.2Z

V53.17.2Z

V53.17.2Z

V53.17.2Z

ip.netmask

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.pop3.enable

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.pop3.password

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.pop3.poll

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.pop3.server_addr

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.pop3.username

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.port

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

1/31/18

Programming Guide

P1099958-001

1399

1400

SGD Command Support
Printer and Firmware Compatibility

Table 53 • Table Top and Print Engine SGD Firmware Compatibility (Continued)

SGD Commands
ip.port_alternate

ZE500
Series

ZT200
Series

XiIIIPlus
105SL, PAX4
Z4MPlus
Z6MPlus

S4M

ZM400
ZM600

Xi4

—

V72.18.2Z

—

—

—

—

ip.primary_network

—

V72.19.6Z

—

—

—

—

ip.primary_network

V53.17.16Z

V72.18.2Z

V53.15.5Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

ip.smtp.domain

V53.17.16Z

V72.18.2Z

V60.15.2Z

V53.15.5Z
V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.smtp.enable

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.smtp.server_addr

V53.17.16Z

V72.18.2Z

V60.15.2Z

V53.15.5Z,
V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.snmp.enable

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.snmp.get_community_name

V53.17.16Z

V72.18.2Z

V60.15.2Z

V53.15.5Z
V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.snmp.set_community_name

V53.17.16Z

V72.18.2Z

V60.15.2Z

V53.15.5Z
V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.snmp.trap_community_name

—

V72.18.2Z

—

—

—

—

ip.tcp.enable

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.telnet.enable

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

ip.udp.enable

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

media.cartridge.part_number

—

V72.18.2Z

—

—

—

—

media.cut_now

—

V72.18.2Z

—

—

—

—

media.darkness_mode

—

V72.18.2Z

—

—

—

—

media.media_low.external

—

V72.18.2Z

—

—

—

—

media.media_low.warning

V53.17.16Z

V72.18.2Z

—

—

—

V53.17.1Z

media.present.cut_amount

—

V72.18.2Z

—

—

—

—

media.present.cut_margin

—

V72.18.2Z

—

—

—

—

media.present.eject

—

V72.18.2Z

—

—

—

—

media.present.length_addition

—

V72.18.2Z

—

—

—

—

media.present.loop_length

—

V72.18.2Z

—

—

—

—

media.present.loop_length_max

—

V72.18.2Z

—

—

—

—

media.present.present_timeout

—

V72.18.2Z

—

—

—

—

media.present.present_type

—

V72.18.2Z

—

—

—

—

media.printmode

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

media.speed

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

memory.flash_free

V53.17.2Z

V72.18.2Z

V60.17.7Z

V50.15.0

V53.15.5Z

V53.17.2Z

memory.flash_size

V53.17.2Z

V72.18.2Z

V60.17.7Z

V50.15.0

V53.15.5Z

V53.17.2Z

memory.ram_free

V53.17.2Z

V72.18.2Z

V60.17.7Z

V50.15.0

V53.15.5Z

V53.17.2Z

memory.ram_size

V53.17.2Z

V72.18.2Z

V60.17.7Z

V50.15.0

V53.15.5Z

V53.17.2Z

netmanage.avalanche.available_port

—

V72.18.2Z

—

—

—

—

netmanage.avalanche.startup_update

—

V72.18.2Z

—

—

—

—

netmanage.avalanche.agent_addr

—

V72.18.2Z

—

—

—

—

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

P1099958-001

Programming Guide

1/31/18

SGD Command Support
Printer and Firmware Compatibility

Table 53 • Table Top and Print Engine SGD Firmware Compatibility (Continued)
ZE500
Series

ZT200
Series

XiIIIPlus
105SL, PAX4
Z4MPlus
Z6MPlus

S4M

ZM400
ZM600

Xi4

netmanage.avalanche.available_agent

—

V72.18.2Z

—

—

—

—

netmanage.avalanche.encryption_type

—

V72.18.2Z

—

—

—

—

netmanage.avalanche.interval

—

V72.18.2Z

—

—

—

—

netmanage.avalanche.interval_update

—

V72.18.2Z

—

—

—

—

netmanage.avalanche.model_name

—

V72.18.2Z

—

—

—

—

netmanage.avalanche.set_property

—

V72.18.2Z

—

—

—

—

netmanage.avalanche.tcp_connection_timeout

—

V72.18.2Z

—

—

—

—

netmanage.avalanche.text_msg.beep

—

V72.18.2Z

—

—

—

—

netmanage.avalanche.text_msg.display

—

V72.18.2Z

—

—

—

—

netmanage.avalanche.text_msg.print

—

V72.18.2Z

—

—

—

—

netmanage.avalanche.udp_timeout

—

V72.18.2Z

—

—

—

—

odometer.headclean

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

odometer.headnew

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

odometer.label_dot_length

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

odometer.media_marker_count1

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

odometer.media_marker_count2

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

odometer.retracts_count

—

V72.18.2Z

—

—

—

—

odometer.rfid.valid_resettable

—

—

—

—

—

—

odometer.rfid.void_resettable

—

—

—

—

—

—

odometer.total_print_length

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

parallel_port.mode

—

V72.18.2Z

—

—

—

—

parallel_port.present

—

V72.18.2Z

—

—

—

—

power.dtr_power_off

—

V72.18.2Z

—

—

—

—

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

rfid.country_code

—

—

—

—

—

—

rfid.enable

—

—

—

—

—

—

rfid.error.response

—

—

—

—

—

—

rfid.position.program

—

—

—

—

—

—

rfid.reader_1.firmware_version

—

—

—

—

—

—

rfid.reader_1.hardware_version

—

—

—

—

—

—

rfid.reader_1.model

—

—

—

—

—

—

rfid.reader_1.power.read

—

—

—

—

—

—

rfid.reader_1.power.write

—

—

—

—

—

—

rfid.tag.read.content

—

—

—

—

—

—

rfid.tag.read.execute

—

—

—

—

—

—

rfid.tag.read.result_line1

—

—

—

—

—

—

rfid.tag.read.result_line1

—

—

—

—

—

—

SGD Commands

print.tone

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

1/31/18

Programming Guide

P1099958-001

1401

1402

SGD Command Support
Printer and Firmware Compatibility

Table 53 • Table Top and Print Engine SGD Firmware Compatibility (Continued)
ZE500
Series

ZT200
Series

XiIIIPlus
105SL, PAX4
Z4MPlus
Z6MPlus

S4M

ZM400
ZM600

Xi4

rfid.tag.read.result_line1_alternate

—

—

—

—

—

—

rfid.tag.read.result_line2

—

—

—

—

—

—

rfid.tag.read.result_line2_alternate

—

—

—

—

—

—

rfid.tag.test.content

—

—

—

—

—

—

rfid.tag.test.execute

—

—

—

—

—

—

rfid.tag.test.result_line2

—

—

—

—

—

—

usb.device.device_id_string

—

V72.18.2Z

—

—

—

—

usb.device.device_unique_id

—

V72.18.2Z

—

—

—

—

usb.device.device_version

—

V72.18.2Z

—

—

—

—

usb.device.manufacturer_string

—

V72.18.2Z

—

—

—

—

usb.device.product_id

—

V72.18.2Z

—

—

—

—

usb.device.product_string

—

V72.18.2Z

—

—

—

—

usb.device.serial_string

—

V72.18.2Z

—

—

—

—

usb.device.vendor_id

—

V72.18.2Z

—

—

—

—

usb.halt

—

V72.18.2Z

—

—

—

—

weblink.ip.conn[1|2].location

—

V72.19.6Z

—

—

—

—

weblink.ip.conn[1|2].num_connections

—

V72.19.6Z

—

—

—

—

wlan.11n.20mhz_only

—

V72.18.2Z

—

—

—

—

wlan.11n.aggregation

—

V72.18.2Z

—

—

—

—

wlan.11n.greenfield

—

V72.18.2Z

—

—

—

—

wlan.11n.rifs

—

V72.18.2Z

—

—

—

—

wlan.11n.short_gi_20mhz

—

V72.18.2Z

—

—

—

—

wlan.11n.short_gi_40mhz

—

V72.18.2Z

—

—

—

—

wlan.active_channels

—

V72.18.2Z

—

—

—

—

wlan.adhocautomode

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.adhocchannel

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.allowed_band

—

V72.18.2Z

—

—

—

—

wlan.associated

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.bssid

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

wlan.channel

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

wlan.channel_mask

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.current_tx_rate

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

wlan.essid

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.firmware_version

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.ip.addr

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

wlan.ip.arp_interval

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

SGD Commands

wlan.channel_mask

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

P1099958-001

Programming Guide

1/31/18

SGD Command Support
Printer and Firmware Compatibility

Table 53 • Table Top and Print Engine SGD Firmware Compatibility (Continued)
ZE500
Series

ZT200
Series

XiIIIPlus
105SL, PAX4
Z4MPlus
Z6MPlus

S4M

ZM400
ZM600

Xi4

wlan.ip.default_addr_enable

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

wlan.ip.dhcp.cache_ip

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

wlan.ip.dhcp.cid_all

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

wlan.ip.dhcp.cid_enable

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

wlan.ip.dhcp.cid_prefix

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

wlan.ip.dhcp.cid_suffix

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

wlan.ip.dhcp.cid_type

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

wlan.ip.dhcp.lease.last_attempt

V53.17.2Z

V72.18.2Z

V60.15.0

V50.15.0

V53.15.5Z

V53.17.2Z

wlan.ip.dhcp.lease.length

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

wlan.ip.dhcp.lease.server

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

wlan.ip.dhcp.lease.time_left

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

wlan.ip.dhcp.option12

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

wlan.ip.dhcp.option12_format

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

SGD Commands

wlan.ip.dhcp.option12_value

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

wlan.ip.dhcp.request_timeout

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

wlan.ip.dhcp.requests_per_session

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

wlan.ip.dhcp.session_interval

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

wlan.ip.gateway

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

wlan.ip.netmask

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

wlan.ip.port

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

—

V72.18.2Z

—

—

—

—

wlan.ip.port_alternate
wlan.ip.protocol

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

wlan.ip.timeout.enable

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

wlan.ip.timeout.value

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

wlan.keep_alive.enable

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.keep_alive.timeout

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.kerberos.kdc

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.kerberos.password

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.kerberos.realm

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.kerberos.username

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.mac_addr

V53.17.16Z

V72.18.2Z

V60.15.8Z

V53.15.5Z

V53.15.5Z

V53.17.1Z

wlan.mac_raw

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

wlan.operating_mode

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.password

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

—

V72.18.2Z

—

—

—

—

wlan.preamble

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.private_key_password

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.permitted_channels

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

1/31/18

Programming Guide

P1099958-001

1403

1404

SGD Command Support
Printer and Firmware Compatibility

Table 53 • Table Top and Print Engine SGD Firmware Compatibility (Continued)
ZE500
Series

ZT200
Series

XiIIIPlus
105SL, PAX4
Z4MPlus
Z6MPlus

S4M

ZM400
ZM600

Xi4

wlan.roam.interchannel_delay

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

wlan.roam.interval

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.roam.max_chan_scan_time

V53.17.16Z

V72.18.2Z

V60.16.4Z

V53.16.4Z

V53.16.4Z

V53.17.1Z

wlan.roam.max_fail

V53.17.11Z

V72.18.2Z

V60.17.11Z

V53.17.11Z

V53.17.11Z

V53.17.11Z

wlan.roam.rssi

V53.17.11Z

V72.18.2Z

V60.17.11Z

V53.17.11Z

V53.17.11Z

V53.17.11Z

wlan.roam.signal

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.security

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.signal_noise

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.signal_quality

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.signal_strength

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.station_name

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.tx_power

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.tx_rate

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

SGD Commands

wlan.user_channel_list

—

V72.18.2Z

—

—

—

—

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.waveagent.enable

—

V72.18.2Z

—

—

—

—

wlan.waveagent.udp_port

—

V72.18.2Z

—

—

—

—

wlan.wep.auth_type

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.wep.index

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.wep.key_format

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.wep.key1

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.wep.key2

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.wep.key3

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.wep.key4

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

wlan.wpa.psk

V53.17.16Z

V72.18.2Z

V60.15.2Z

V50.15.2Z

V53.15.5Z

V53.17.1Z

zbi.control.add_breakpoint

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

zbi.control.break

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

zbi.control.clear_breakpoints

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

zbi.control.delete_breakpoint

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

zbi.control.line_number

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

zbi.control.restart

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

zbi.control.run

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

zbi.control.step

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

zbi.control.terminate

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

zbi.control.variable_name

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

zbi.control.variable_value

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

zbi.key

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

wlan.username

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

P1099958-001

Programming Guide

1/31/18

SGD Command Support
Printer and Firmware Compatibility

Table 53 • Table Top and Print Engine SGD Firmware Compatibility (Continued)
ZE500
Series

ZT200
Series

XiIIIPlus
105SL, PAX4
Z4MPlus
Z6MPlus

S4M

ZM400
ZM600

Xi4

zbi.last_error

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

zbi.reseller_key

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

zbi.revision

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

zbi.running_program_name

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

zbi.start_info.execute

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

zbi.start_info.file_name

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

zbi.start_info.memory_alloc

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

zbi.state

V53.17.16Z

V72.18.2Z

V60.16.2Z

V53.16.2Z

V53.16.2Z

V53.17.1Z

zpl.caret

—

V72.18.2Z

—

—

—

—

zpl.control_character

—

V72.18.2Z

—

—

—

—

zpl.delimiter

—

V72.18.2Z

—

—

—

—

zpl.label_length

—

V72.18.2Z

—

—

—

—

zpl.left_position

—

V72.18.2Z

—

—

—

—

zpl.system_error

—

V72.18.2Z

—

—

—

—

zpl.system_status

—

V72.18.2Z

—

—

—

—

zpl.zpl_mode

—

V72.18.2Z

—

—

—

—

zpl.zpl_override

—

V72.18.2Z

—

—

—

—

SGD Commands

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

Desktop and Kiosk Printers
Important • All the firmware versions noted in Table 54 refer to the minimum firmware
version required. For .RFID printer support, see Table 55. For Table Top and Print Engines,
see Table 53.
Table 54 • Desktop and Kiosk SGD Firmware Compatibility
G-Series,
LP2824 Plus
TLP 2824 Plus

GK800, GT800,
GK888, GC420d, GC420t

KR403

ZD500R

HC100

appl.bootblock

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

V66.17.2Z

appl.name

V74.19.6Z

V54.16.1Z

V56.15.6Z

V70.17.11Z
V71.17.11Z

—

V70.17.11Z
V71.17.11Z

—

SGD Commands

V61.15.6Z
V61.17.3Z
appl.option_board_version

—

V54.16.1ZC

V56.16.5Z
V61.16.5Z
V61.17.3Z

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

1/31/18

Programming Guide

P1099958-001

1405

1406

SGD Command Support
Printer and Firmware Compatibility

Table 54 • Desktop and Kiosk SGD Firmware Compatibility (Continued)
G-Series,
LP2824 Plus
TLP 2824 Plus

GK800, GT800,
GK888, GC420d, GC420t

KR403

ZD500R

HC100

bluetooth.address

V74.19.6Z

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

bluetooth.afh_map

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

bluetooth.afh_map_curr

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

bluetooth.afh_mode

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

bluetooth.authentication

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

bluetooth.bluetooth_pin

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

bluetooth.date

V74.19.6Z

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

bluetooth.discoverable

V74.19.6Z

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

bluetooth.enable

V74.19.6Z

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

bluetooth.friendly_name

V74.19.6Z

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

bluetooth.local_name

V74.19.6Z

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

bluetooth.radio_version

V74.19.6Z

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

bluetooth.short_address

V74.19.6Z

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

bluetooth.version

V74.19.6Z

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

SGD Commands

bluetooth.radio_auto_baud

card.inserted

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

P1099958-001

Programming Guide

1/31/18

SGD Command Support
Printer and Firmware Compatibility

Table 54 • Desktop and Kiosk SGD Firmware Compatibility (Continued)
G-Series,
LP2824 Plus
TLP 2824 Plus

GK800, GT800,
GK888, GC420d, GC420t

KR403

ZD500R

HC100

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

CISDFCRC16

—

V54.16.1ZC

—

—

—

comm.baud

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

—

V66.17.4Z

comm.halt

V74.19.6Z

—

—

—

—

comm.parity

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

V66.17.4Z

—

V54.16.1Z

V56.17.11Z
V61.17.11Z

V70.17.11Z
V71.17.11Z

V66.17.4Z

comm.stop_bits

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

V66.17.4Z

comm.type

V74.19.6Z

—

V56.17.3Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

cutter.clean_cutter

V74.19.6Z

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

device.command_override.active

—

—

—

—

—

device.command_override.clear

—

—

—

—

—

SGD Commands
card.mac_addr

comm.pnp_option

device.command_override.list

—

—

—

—

—

device.cutter_installed

V74.19.6Z

—

—

—

—

device.download_connection_timeout

V74.19.6Z

V54.16.1ZC

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

device.epl_legacy_mode

V74.19.6Z

—

V56.17.9Z
V61.17.9Z
V61.17.9Z

V70.17.11Z
V71.17.11Z

—

device.friendly_name

V74.19.6Z

V54.16.1ZC

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

—

—

V61.17.11Z,
V56.17.11Z,

V70.17.11Z
V71.17.11Z

—

device.frontpanel.key_press

V74.19.6Z

—

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

device.frontpanel.line1

V74.19.6Z

—

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

device.frontpanel.line2

V74.19.6Z

—

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

device.frontpanel.feedenabled

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

1/31/18

Programming Guide

P1099958-001

1407

1408

SGD Command Support
Printer and Firmware Compatibility

Table 54 • Desktop and Kiosk SGD Firmware Compatibility (Continued)
G-Series,
LP2824 Plus
TLP 2824 Plus

GK800, GT800,
GK888, GC420d, GC420t

KR403

ZD500R

HC100

device.frontpanel.xml

V74.19.6Z

—

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

device.host_identification

V74.19.6Z

—

—

—

—

device.host_status

V74.19.6Z

—

—

—

—

device.jobs_print

V74.19.6Z

V54.16.1ZC

V61.17.3Z

V70.17.11Z
V71.17.11Z

—

device.languages

V74.19.6Z

V54.16.1ZC

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

device.ltu_installed

V74.19.6Z

—

—

—

—

device.orientation

—

—

V61.17.3Z

V70.17.11Z
V71.17.11Z

V66.17.2Z

device.pause

V74.19.6Z

—

—

—

—

device.pnp_option

V74.19.6Z

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

device.position.accuracy

V74.19.6Z

—

—

—

—

device.position.altitude

V74.19.6Z

—

—

—

—

device.position.latitude

V74.19.6Z

—

—

—

—

device.position.longitude

V74.19.6Z

—

—

—

—

SGD Commands

device.print_reprogram_2key

—

—

—

—

—

device.reset

V74.19.6Z

V54.16.1ZC

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

device.restore_defaults

V74.19.6Z

V54.16.1ZC

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

device.super_host_status

V74.19.6Z

—

—

—

—

device.unique_id

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

device.unpause

V74.19.6Z

—

—

—

—

device.uptime

V74.19.6Z

V54.16.1ZC

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

device.user_p1

V74.19.6Z

V54.16.1ZC

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

device.user_p2

V74.19.6Z

V54.16.1ZC

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

device.xml.enable

V74.19.6Z

V54.16.1ZC

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

P1099958-001

Programming Guide

1/31/18

SGD Command Support
Printer and Firmware Compatibility

Table 54 • Desktop and Kiosk SGD Firmware Compatibility (Continued)
ZD500R

HC100

G-Series,
LP2824 Plus
TLP 2824 Plus

GK800, GT800,
GK888, GC420d, GC420t

KR403

display.backlight

V74.19.6Z

—

—

—

—

display.backlight_on_time

V74.19.6Z

—

—

—

—

display.language

V74.19.6Z

—

—

—

—

display.load_card

V74.19.6Z

—

—

—

—

display.text

V74.19.6Z

—

V56.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

external_wired.check

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

external_wired.ip.addr

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

external_wired.ip.arp_interval

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

external_wired.ip.default_addr_enable

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

external_wired.ip.dhcp.cid_all

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

external_wired.ip.dhcp.cid_enable

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

external_wired.ip.dhcp.cid_prefix

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

external_wired.ip.dhcp.cid_suffix

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

external_wired.ip.dhcp.cid_type

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

external_wired.ip.gateway

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

external_wired.ip.netmask

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

external_wired.ip.port

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

external_wired.ip.protocol

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

external_wired.ip.timeout.enable

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

SGD Commands

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

1/31/18

Programming Guide

P1099958-001

1409

1410

SGD Command Support
Printer and Firmware Compatibility

Table 54 • Desktop and Kiosk SGD Firmware Compatibility (Continued)
G-Series,
LP2824 Plus
TLP 2824 Plus

GK800, GT800,
GK888, GC420d, GC420t

KR403

ZD500R

HC100

external_wired.ip.timeout.value

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

external_wired.ip.v6.addr

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

external_wired.ip.v6.gateway

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

external_wired.ip.v6.prefix_length

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

external_wired.mac_addr

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

external_wired.mac_raw

—

—

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ezpl.head_close_action

V74.19.6Z

—

—

—

—

ezpl.label_length_max

V74.19.6Z

—

—

—

—

ezpl.label_sensor

V74.19.6Z

—

—

—

—

ezpl.manual_calibration

V74.19.6Z

—

—

—

—

ezpl.media_type

V74.19.6Z

—

—

—

—

ezpl.power_up_action

V74.19.6Z

—

—

—

—

ezpl.print_method

V74.19.6Z

—

—

—

—

ezpl.print_width

V74.19.6Z

—

—

—

—

ezpl.reprint_mode

V74.19.6Z

—

—

—

—

ezpl.take_label

V74.19.6Z

—

—

—

—

ezpl.tear_off

V74.19.6Z

—

—

—

—

file.delete

V74.19.6Z

V54.16.1ZC

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

file.dir

V74.19.6Z

V54.16.1ZC

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

file.dir_format

V74.19.6Z

—

—

—

—

file.run

V74.19.6Z

V54.16.1ZC

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

file.type

V74.19.6Z

V54.16.1ZC

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

formats.cancel_all

V74.19.6Z

—

—

—

—

SGD Commands

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

P1099958-001

Programming Guide

1/31/18

SGD Command Support
Printer and Firmware Compatibility

Table 54 • Desktop and Kiosk SGD Firmware Compatibility (Continued)
G-Series,
LP2824 Plus
TLP 2824 Plus

GK800, GT800,
GK888, GC420d, GC420t

KR403

ZD500R

HC100

head.latch

V74.19.6Z

V54.16.1ZC

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

input.capture

V74.19.6Z

—

—

—

—

interface.network.active.arp_interval

V74.19.6Z

—

—

—

—

interface.network.active.cable_type

V74.19.6Z

—

—

—

—

interface.network.active.dhcp_received_host_name

V74.19.6Z

—

—

—

—

interface.network.active.gateway

V74.19.6Z

V54.16.1ZC

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

interface.network.active.ip_addr

V74.19.6Z

V54.16.1ZC

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

interface.network.active.mac_addr

V74.19.6Z

V54.16.1ZC

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

interface.network.active.mac_raw

V74.19.6Z

V54.16.1ZC

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

interface.network.active.netmask

V74.19.6Z

V54.16.1ZC

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

interface.network.active.protocol

V74.19.6Z

V54.16.1ZC

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

interface.network.active.protocol_error

V74.19.6Z

—

—

—

—

interface.network.active.rx_errors

V74.19.6Z

—

—

—

—

interface.network.active.rx_packets

V74.19.6Z

—

—

—

—

interface.network.active.server_address

V74.19.6Z

—

—

—

—

interface.network.active.speed

V74.19.6Z

—

—

—

—

interface.network.active.tx_errors

V74.19.6Z

—

—

—

—

interface.network.active.tx_packets

V74.19.6Z

—

—

—

—

interface.network.active.wins_addr

V74.19.6Z

—

—

—

—

internal_wired.auto_switchover

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

internal_wired.ip.addr

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

internal_wired.ip.arp_interval

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

internal_wired.ip.default_addr_enable

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

SGD Commands

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

1/31/18

Programming Guide

P1099958-001

1411

1412

SGD Command Support
Printer and Firmware Compatibility

Table 54 • Desktop and Kiosk SGD Firmware Compatibility (Continued)
G-Series,
LP2824 Plus
TLP 2824 Plus

GK800, GT800,
GK888, GC420d, GC420t

KR403

ZD500R

HC100

internal_wired.ip.dhcp.cache_ip

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

internal_wired.ip.dhcp.cid_all

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

internal_wired.ip.dhcp.cid_enable

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

internal_wired.ip.dhcp.cid_prefix

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

internal_wired.ip.dhcp.cid_suffix

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

internal_wired.ip.dhcp.cid_type

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

internal_wired.ip.dhcp.lease.last_attempt

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

internal_wired.ip.dhcp.lease.length

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

internal_wired.ip.dhcp.lease.server

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

internal_wired.ip.dhcp.lease.time_left

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

internal_wired.ip.dhcp.option12

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

internal_wired.ip.dhcp.option12_format

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

internal_wired.ip.dhcp.option12_value

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

internal_wired.ip.dhcp.requests_per_session

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

internal_wired.ip.gateway

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

internal_wired.ip.netmask

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

SGD Commands

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

P1099958-001

Programming Guide

1/31/18

SGD Command Support
Printer and Firmware Compatibility

Table 54 • Desktop and Kiosk SGD Firmware Compatibility (Continued)
G-Series,
LP2824 Plus
TLP 2824 Plus

GK800, GT800,
GK888, GC420d, GC420t

KR403

ZD500R

HC100

internal_wired.ip.port

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

internal_wired.ip.port_alternate

V74.19.6Z

—

—

—

—

internal_wired.ip.protocol

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

internal_wired.ip.timeout.enable

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

internal_wired.ip.timeout.value

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

internal_wired.mac_addr

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

internal_wired.mac_raw

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.active_network

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.addr

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.arp_interval

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.bootp.enable

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.dhcp.arp_verify

V74.19.6Z

—

—

—

—

ip.dhcp.auto_provision_enable

V74.19.6Z

—

—

—

—

ip.dhcp.cache_ip

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.dhcp.cid_all

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.dhcp.cid_enable

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.dhcp.cid_prefix

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.dhcp.cid_suffix

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

SGD Commands

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

1/31/18

Programming Guide

P1099958-001

1413

1414

SGD Command Support
Printer and Firmware Compatibility

Table 54 • Desktop and Kiosk SGD Firmware Compatibility (Continued)
G-Series,
LP2824 Plus
TLP 2824 Plus

GK800, GT800,
GK888, GC420d, GC420t

KR403

ZD500R

HC100

ip.dhcp.cid_type

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.dhcp.enable

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.dhcp.lease.last_attempt

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.dhcp.lease.server

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.dhcp.lease.time_left

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.dhcp.option12

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.dhcp.option12_format

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.dhcp.option12_value

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.dhcp.request_timeout

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.dhcp.requests_per_session

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.dhcp.session_interval

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.dhcp.vendor_class_id

V74.19.6Z

—

—

—

—

ip.dns.domain

V74.19.6Z

V54.16.1ZC

—

—

—

ip.dns.servers

V74.19.6Z

V54.16.1ZC

—

—

—

ip.ftp.enable

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

—

—

ip.ftp.execute_file

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

—

—

ip.ftp.request_password

V74.19.6Z

—

—

—

—

ip.gateway

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

—

—

ip.http.admin_name

V74.19.6Z

—

—

—

—

SGD Commands

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

P1099958-001

Programming Guide

1/31/18

SGD Command Support
Printer and Firmware Compatibility

Table 54 • Desktop and Kiosk SGD Firmware Compatibility (Continued)
ZD500R

HC100

G-Series,
LP2824 Plus
TLP 2824 Plus

GK800, GT800,
GK888, GC420d, GC420t

KR403

ip.http.admin_password

V74.19.6Z

—

—

—

—

ip.http.custom_link_name

V74.19.6Z

—

—

—

—

ip.http.custom_link_url

V74.19.6Z

—

—

—

—

ip.http.enable

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

—

—

ip.http.faq_url

V74.19.6Z

—

—

—

—

ip.http.port

V74.19.6Z

—

—

—

—

ip.lpd.enable

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

—

—

ip.mac_raw

—

V54.16.1ZC

—

—

—

ip.mirror.appl_path

V74.19.6Z

—

—

—

—

ip.mirror.auto

V74.19.6Z

—

V61.17.3Z
V56.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.mirror.error_retry

V74.19.6Z

—

V61.17.3Z
V56.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.mirror.feedback.auto

V74.19.6Z

—

V61.17.3Z
V56.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.mirror.feedback.freq

V74.19.6Z

—

V61.17.3Z
V56.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.mirror.feedback.odometer

V74.19.6Z

—

V61.17.3Z
V56.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.mirror.feedback.path

V74.19.6Z

—

V61.17.3Z
V56.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.mirror.fetch

V74.19.6Z

—

V61.17.3Z
V56.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.mirror.freq

V74.19.6Z

—

V61.17.3Z
V56.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.mirror.freq_hours

V74.19.6Z

—

V61.17.3Z
V56.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.mirror.last_error

V74.19.6Z

—

V61.17.3Z
V56.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.mirror.last_time

V74.19.6Z

—

V61.17.3Z
V56.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.mirror.mode

V74.19.6Z

—

—

—

—

ip.mirror.password

V74.19.6Z

—

V61.17.3Z
V56.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.mirror.path

V74.19.6Z

—

V61.17.3Z
V56.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.mirror.reset_delay

V74.19.6Z

—

V61.17.3ZA
V56.17.3ZA

V70.17.11Z
V71.17.11Z

—

ip.mirror.server

V74.19.6Z

—

V61.17.3Z
V56.17.3Z

V70.17.11Z
V71.17.11Z

—

SGD Commands

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

1/31/18

Programming Guide

P1099958-001

1415

1416

SGD Command Support
Printer and Firmware Compatibility

Table 54 • Desktop and Kiosk SGD Firmware Compatibility (Continued)
G-Series,
LP2824 Plus
TLP 2824 Plus

GK800, GT800,
GK888, GC420d, GC420t

—

V61.17.3Z
V56.17.3Z

V70.17.11Z
V71.17.11Z

—

V74.19.6Z

—

V61.17.3Z
V56.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.mirror.username

V74.19.6Z

—

V61.17.3Z
V56.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.mirror.version

V74.19.6Z

—

V61.17.3Z
V56.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.netmask

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.pop3.enable

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.pop3.password

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.pop3.poll

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.pop3.server_addr

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.pop3.username

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.port

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.port_alternate

V74.19.6Z

—

—

—

—

ip.primary_network

V74.19.6Z

—

—

—

—

ip.primary_network

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.smtp.domain

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.smtp.enable

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.smtp.server_addr

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.snmp.enable

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ZD500R

HC100

ip.mirror.success

V74.19.6Z

ip.mirror.success_time

SGD Commands

KR403

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

P1099958-001

Programming Guide

1/31/18

SGD Command Support
Printer and Firmware Compatibility

Table 54 • Desktop and Kiosk SGD Firmware Compatibility (Continued)
G-Series,
LP2824 Plus
TLP 2824 Plus

GK800, GT800,
GK888, GC420d, GC420t

KR403

ZD500R

HC100

ip.snmp.get_community_name

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.snmp.set_community_name

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.snmp.trap_community_name

V74.19.6Z

—

—

—

—

ip.tcp.enable

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.telnet.enable

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

ip.udp.enable

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

media.cartridge.part_number

—

V54.16.5Z

—

—

—

media.cut_now

—

—

—

—

V66.17.2Z

media.darkness_mode

—

V54.16.1Z

—

—

—

media.media_low.external

—

—

—

—

V66.17.2Z

media.media_low.warning

—

—

—

—

—

media.present.cut_amount

—

—

—

—

V66.17.2Z

media.present.cut_margin

—

—

—

—

V66.17.2Z

media.present.eject

—

—

—

—

V66.17.2Z

media.present.length_addition

—

—

—

—

V66.17.2Z

media.present.loop_length

—

—

—

—

V66.17.2Z

media.present.loop_length_max

—

—

—

—

V66.17.2Z

media.present.present_timeout

—

—

—

—

V66.17.2Z

media.present.present_type

—

—

—

—

V66.17.2Z

media.printmode

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

media.speed

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

memory.flash_free

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

V66.17.4Z

memory.flash_size

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

V66.17.4Z

memory.ram_free

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

V66.17.4Z

SGD Commands

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

1/31/18

Programming Guide

P1099958-001

1417

1418

SGD Command Support
Printer and Firmware Compatibility

Table 54 • Desktop and Kiosk SGD Firmware Compatibility (Continued)
G-Series,
LP2824 Plus
TLP 2824 Plus

GK800, GT800,
GK888, GC420d, GC420t

KR403

ZD500R

HC100

memory.ram_size

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

V66.17.4Z

netmanage.avalanche.available_port

V74.19.6Z

—

—

—

—

netmanage.avalanche.startup_update

V74.19.6Z

—

—

—

—

netmanage.avalanche.agent_addr

V74.19.6Z

—

—

—

—

netmanage.avalanche.available_agent

V74.19.6Z

—

—

—

—

netmanage.avalanche.encryption_type

V74.19.6Z

—

—

—

—

netmanage.avalanche.interval

V74.19.6Z

—

—

—

—

netmanage.avalanche.interval_update

V74.19.6Z

—

—

—

—

netmanage.avalanche.model_name

V74.19.6Z

—

—

—

—

netmanage.avalanche.set_property

V74.19.6Z

—

—

—

—

netmanage.avalanche.tcp_connection_timeout

V74.19.6Z

—

—

—

—

netmanage.avalanche.text_msg.beep

V74.19.6Z

—

—

—

—

netmanage.avalanche.text_msg.display

V74.19.6Z

—

—

—

—

netmanage.avalanche.text_msg.print

V74.19.6Z

—

—

—

—

netmanage.avalanche.udp_timeout

V74.19.6Z

—

—

—

—

odometer.headclean

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

odometer.headnew

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

odometer.label_dot_length

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

odometer.media_marker_count1

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

odometer.media_marker_count2

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

—

—

—

—

V66.17.2Z

odometer.rfid.valid_resettable

V74.19.6Z

—

—

—

—

odometer.rfid.void_resettable

V74.19.6Z

—

—

—

—

odometer.total_print_length

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

parallel_port.mode

—

—

—

—

—

parallel_port.present

—

—

—

—

—

power.dtr_power_off

V74.19.6Z

—

—

—

—

SGD Commands

odometer.retracts_count

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

P1099958-001

Programming Guide

1/31/18

SGD Command Support
Printer and Firmware Compatibility

Table 54 • Desktop and Kiosk SGD Firmware Compatibility (Continued)
G-Series,
LP2824 Plus
TLP 2824 Plus

GK800, GT800,
GK888, GC420d, GC420t

KR403

ZD500R

HC100

print.tone

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

rfid.country_code

V74.19.6Z

—

—

—

—

rfid.enable

V74.19.6Z

—

—

—

—

rfid.error.response

V74.19.6Z

—

—

—

—

rfid.position.program

V74.19.6Z

—

—

—

—

rfid.reader_1.firmware_version

V74.19.6Z

—

—

—

—

rfid.reader_1.hardware_version

V74.19.6Z

—

—

—

—

rfid.reader_1.model

V74.19.6Z

—

—

—

—

rfid.reader_1.power.read

V74.19.6Z

—

—

—

—

rfid.reader_1.power.write

V74.19.6Z

—

—

—

—

rfid.tag.read.content

V74.19.6Z

—

—

—

—

rfid.tag.read.execute

V74.19.6Z

—

—

—

—

rfid.tag.read.result_line1

V74.19.6Z

—

—

—

—

rfid.tag.read.result_line1

V74.19.6Z

—

—

—

—

rfid.tag.read.result_line1_alternate

V74.19.6Z

—

—

—

—

rfid.tag.read.result_line2

V74.19.6Z

—

—

—

—

rfid.tag.read.result_line2_alternate

V74.19.6Z

—

—

—

—

rfid.tag.test.content

V74.19.6Z

—

—

—

—

rfid.tag.test.execute

V74.19.6Z

—

—

—

—

rfid.tag.test.result_line2

V74.19.6Z

—

—

—

—

usb.device.device_id_string

V74.19.6Z

—

—

—

—

usb.device.device_unique_id

V74.19.6Z

—

—

—

—

usb.device.device_version

V74.19.6Z

—

—

—

—

usb.device.manufacturer_string

V74.19.6Z

—

—

—

—

usb.device.product_id

V74.19.6Z

—

—

—

—

usb.device.product_string

V74.19.6Z

—

—

—

—

usb.device.serial_string

V74.19.6Z

—

—

—

—

usb.device.vendor_id

V74.19.6Z

—

—

—

—

usb.halt

V74.19.6Z

—

—

—

—

weblink.ip.conn[1|2].location

V74.19.6Z

—

—

—

—

weblink.ip.conn[1|2].num_connections

V74.19.6Z

—

—

—

—

wlan.11n.20mhz_only

V74.19.6Z

—

—

—

—

—

—

—

—

SGD Commands

wlan.11n.aggregation
wlan.11n.greenfield

V74.19.6Z

—

—

—

—

wlan.11n.rifs

V74.19.6Z

—

—

—

—

wlan.11n.short_gi_20mhz

V74.19.6Z

—

—

—

—

wlan.11n.short_gi_40mhz

V74.19.6Z

—

—

—

—

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

1/31/18

Programming Guide

P1099958-001

1419

1420

SGD Command Support
Printer and Firmware Compatibility

Table 54 • Desktop and Kiosk SGD Firmware Compatibility (Continued)
ZD500R

HC100

G-Series,
LP2824 Plus
TLP 2824 Plus

GK800, GT800,
GK888, GC420d, GC420t

KR403

wlan.active_channels

V74.19.6Z

—

—

—

—

wlan.adhocautomode

—

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.adhocchannel

—

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.allowed_band

V74.19.6Z

—

—

—

—

wlan.associated

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.bssid

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.channel

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.channel_mask

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.current_tx_rate

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.essid

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.firmware_version

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.ip.addr

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.ip.arp_interval

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.ip.default_addr_enable

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.ip.dhcp.cache_ip

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.ip.dhcp.cid_all

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.ip.dhcp.cid_enable

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

SGD Commands

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

P1099958-001

Programming Guide

1/31/18

SGD Command Support
Printer and Firmware Compatibility

Table 54 • Desktop and Kiosk SGD Firmware Compatibility (Continued)
G-Series,
LP2824 Plus
TLP 2824 Plus

GK800, GT800,
GK888, GC420d, GC420t

KR403

ZD500R

HC100

wlan.ip.dhcp.cid_prefix

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.ip.dhcp.cid_suffix

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.ip.dhcp.cid_type

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.ip.dhcp.lease.last_attempt

V74.19.6Z

V54.16.1Z

V56.15.6Z
V61.15.6Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

V66.17.4Z

wlan.ip.dhcp.lease.length

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.ip.dhcp.lease.server

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.ip.dhcp.lease.time_left

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.ip.dhcp.option12

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.ip.dhcp.option12_format

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.ip.dhcp.option12_value

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.ip.dhcp.request_timeout

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.ip.dhcp.requests_per_session

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.ip.dhcp.session_interval

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.ip.gateway

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.ip.netmask

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.ip.port

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.ip.port_alternate

V74.19.6Z

—

—

—

—

SGD Commands

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

1/31/18

Programming Guide

P1099958-001

1421

1422

SGD Command Support
Printer and Firmware Compatibility

Table 54 • Desktop and Kiosk SGD Firmware Compatibility (Continued)
G-Series,
LP2824 Plus
TLP 2824 Plus

GK800, GT800,
GK888, GC420d, GC420t

KR403

ZD500R

HC100

wlan.ip.protocol

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.ip.timeout.enable

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.ip.timeout.value

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.keep_alive.enable

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.keep_alive.timeout

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.kerberos.kdc

—

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.kerberos.password

—

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.kerberos.realm

—

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.kerberos.username

—

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.mac_addr

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.mac_raw

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.operating_mode

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.password

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.permitted_channels

V74.19.6Z

—

—

—

—

wlan.preamble

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.private_key_password

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

—

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

SGD Commands

wlan.roam.interchannel_delay

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

P1099958-001

Programming Guide

1/31/18

SGD Command Support
Printer and Firmware Compatibility

Table 54 • Desktop and Kiosk SGD Firmware Compatibility (Continued)
G-Series,
LP2824 Plus
TLP 2824 Plus

GK800, GT800,
GK888, GC420d, GC420t

KR403

ZD500R

HC100

wlan.roam.interval

—

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.roam.max_chan_scan_time

—

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.roam.max_fail

—

—

V61.17.11Z
V56.17.11Z

V70.17.11Z
V71.17.11Z

—

wlan.roam.rssi

—

—

V61.17.11Z
V56.17.11Z

V70.17.11Z
V71.17.11Z

—

wlan.roam.signal

—

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.security

—

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.signal_noise

—

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.signal_quality

—

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.signal_strength

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.station_name

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

—

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.tx_rate

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.user_channel_list

V74.19.6Z

—

—

—

—

wlan.username

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.waveagent.enable

V74.19.6Z

—

—

—

—

wlan.waveagent.udp_port

V74.19.6Z

—

—

—

—

wlan.wep.auth_type

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.wep.index

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

SGD Commands

wlan.tx_power

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

1/31/18

Programming Guide

P1099958-001

1423

1424

SGD Command Support
Printer and Firmware Compatibility

Table 54 • Desktop and Kiosk SGD Firmware Compatibility (Continued)
G-Series,
LP2824 Plus
TLP 2824 Plus

GK800, GT800,
GK888, GC420d, GC420t

KR403

ZD500R

HC100

wlan.wep.key_format

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.wep.key1

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.wep.key2

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.wep.key3

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.wep.key4

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

wlan.wpa.psk

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

zbi.control.add_breakpoint

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

zbi.control.break

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

zbi.control.clear_breakpoints

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

zbi.control.delete_breakpoint

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

zbi.control.line_number

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

zbi.control.restart

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

zbi.control.run

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

zbi.control.step

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

zbi.control.terminate

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

zbi.control.variable_name

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

SGD Commands

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

P1099958-001

Programming Guide

1/31/18

SGD Command Support
Printer and Firmware Compatibility

Table 54 • Desktop and Kiosk SGD Firmware Compatibility (Continued)
G-Series,
LP2824 Plus
TLP 2824 Plus

GK800, GT800,
GK888, GC420d, GC420t

KR403

ZD500R

HC100

zbi.control.variable_value

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

zbi.key

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

zbi.last_error

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

zbi.reseller_key

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

zbi.revision

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

zbi.running_program_name

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

zbi.start_info.execute

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

zbi.start_info.file_name

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

zbi.start_info.memory_alloc

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

zbi.state

V74.19.6Z

V54.16.1Z

V56.16.5Z
V61.16.5Z
V61.17.3Z

V70.17.11Z
V71.17.11Z

—

zpl.caret

—

—

—

—

—

SGD Commands

zpl.control_character

—

—

—

—

—

zpl.delimiter

V74.19.6Z

—

—

—

—

zpl.label_length

V74.19.6Z

—

—

—

—

zpl.left_position

V74.19.6Z

—

—

—

—

zpl.system_error

V74.19.6Z

—

—

—

—

zpl.system_status

V74.19.6Z

—

—

—

—

zpl.zpl_mode

V74.19.6Z

—

—

—

—

zpl.zpl_override

V74.19.6Z

—

—

—

—

* On these printers with ZebraNet™ 10/100 Internal Print Server.
** On these printers with ZebraNet™ 10/100 External Print Server, firmware version 1.1.5

1/31/18

Programming Guide

P1099958-001

1425

1426

SGD Command Support
Printer and Firmware Compatibility

RFID Printers
Important • All the firmware versions noted in Table 55, refer to minimum firmware version
required. For non-RFID Table Top printers and Print Engines, see Table 53. For non-RFID
Desktop printers, see Table 54.
Once an RFID Ready printer has been reconfigured as a RFID Printer, Table 55 should be used.
For commands not listed in Table 55, refer to Table 53 and Table 54 and compare your firmware
version to the Vxx.xx.xx firmware to which it most closely corresponds.

Table 55 • RFID Printer SGD Firmware Compatibility
SGD Commands

R110Xi (UHF)
and R170Xi

R110PAX4

R4Mplus

R110Xi HF

RXi4

RZ400/
RZ600

card.inserted

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

card.mac_addr

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.addr

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.arp_interval

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.bootp.enable

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.dhcp.cid_all

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.dhcp.cid_enable

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.dhcp.cid_prefix

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

P1099958-001

Programming Guide

1/31/18

SGD Command Support
Printer and Firmware Compatibility

Table 55 • RFID Printer SGD Firmware Compatibility (Continued)
SGD Commands

R110Xi (UHF)
and R170Xi

R110PAX4

R4Mplus

R110Xi HF

RZ400/
RZ600

RXi4

ip.dhcp.cid_suffix

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.dhcp.cid_type

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.dhcp.enable

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.ftp.enable

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.gateway

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.http.enable

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.lpd.enable

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.netmask

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.pop3.enable

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.pop3.password

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.pop3.poll

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

1/31/18

Programming Guide

P1099958-001

1427

1428

SGD Command Support
Printer and Firmware Compatibility

Table 55 • RFID Printer SGD Firmware Compatibility (Continued)
SGD Commands

R110Xi (UHF)
and R170Xi

R110PAX4

R4Mplus

R110Xi HF

RXi4

RZ400/
RZ600

ip.pop3.server_addr

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.pop3.username

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.port

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.primary_network

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.smtp.domain

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.smtp.enable

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.smtp.server_addr

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.snmp.enable

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.snmp.get_community_name

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.snmp.set_community_name

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.tcp.enable

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

P1099958-001

Programming Guide

1/31/18

SGD Command Support
Printer and Firmware Compatibility

Table 55 • RFID Printer SGD Firmware Compatibility (Continued)
SGD Commands

R110Xi (UHF)
and R170Xi

R110PAX4

R4Mplus

R110Xi HF

RZ400/
RZ600

RXi4

ip.telnet.enable

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

ip.udp.enable

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

media.printmode

—

—

—

—

V53.17.7Z

R53.16.3Z
V53.17.7Z

odometer.rfid.valid_resettable

—

—

—

—

V53.17.7Z

R53.16.3Z
V53.17.7Z

odometer.rfid.void_resettable

—

—

—

—

V53.17.7Z

R53.16.3Z
V53.17.7Z

rfid.error.response

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

rfid.position.program

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

rfid.reader_1.antenna_port

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

rfid.reader_1.power.read

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

rfid.reader_1.power.single_power

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

rfid.reader_1.power.write

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

rfid.tag.calibrate

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

1/31/18

Programming Guide

P1099958-001

1429

1430

SGD Command Support
Printer and Firmware Compatibility

Table 55 • RFID Printer SGD Firmware Compatibility (Continued)
SGD Commands

R110Xi (UHF)
and R170Xi

R110PAX4

R4Mplus

R110Xi HF

RXi4

RZ400/
RZ600

rfid.tag.data

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

rfid.tag.test

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

rfid.tag.type

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.adhocautomode

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.adhocchannel

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.associated

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.channel_mask

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.essid

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.firmware_version

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.keep_alive.enable

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.keep_alive.timeout

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

P1099958-001

Programming Guide

1/31/18

SGD Command Support
Printer and Firmware Compatibility

Table 55 • RFID Printer SGD Firmware Compatibility (Continued)
SGD Commands

R110Xi (UHF)
and R170Xi

R110PAX4

R4Mplus

R110Xi HF

RZ400/
RZ600

RXi4

wlan.kerberos.kdc

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.kerberos.password

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.kerberos.realm

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.kerberos.username

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.operating_mode

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.password

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.preamble

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.private_key_password

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.roam.interval

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.roam.signal

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.security

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

1/31/18

Programming Guide

P1099958-001

1431

1432

SGD Command Support
Printer and Firmware Compatibility

Table 55 • RFID Printer SGD Firmware Compatibility (Continued)
SGD Commands

R110Xi (UHF)
and R170Xi

R110PAX4

R4Mplus

R110Xi HF

RXi4

RZ400/
RZ600

wlan.signal_noise

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.signal_quality

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.signal_strength

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.station_name

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.tx_power

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.tx_rate

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.username

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.wep.auth_type

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.wep.index

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.wep.key_format

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.wep.key1

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

P1099958-001

Programming Guide

1/31/18

SGD Command Support
Printer and Firmware Compatibility

Table 55 • RFID Printer SGD Firmware Compatibility (Continued)
SGD Commands

R110Xi (UHF)
and R170Xi

R110PAX4

R4Mplus

R110Xi HF

RZ400/
RZ600

RXi4

wlan.wep.key2

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.wep.key3

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.wep.key4

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

wlan.wpa.psk

R60.15.8Z

R62.15.8Z
R63.15.8Z

SP994P
SP999F
SP1027F
SP1056E
SP1082F

R65.15.8Z

V53.17.7Z

R53.16.3Z
V53.17.7Z

1/31/18

Programming Guide

P1099958-001

1433

1434

SGD Command Support
Printer and Firmware Compatibility

P1099958-001

Programming Guide

1/31/18

Firmware Features

This appendix covers features added to major firmware releases.

Firmware x.17
Identifies features that are available in printers with firmware version Vx.17.x or later.

The following is an overview of the new and enhanced features available in firmware version
V53.17.x, V56.17.xZ, V60.17.x, V61.17.xZ, and later.

Mirror
Mirror is a feature that gives you the ability to:
• Centrally manage and monitor the deployment of your Zebra printers
• Centrally configure and maintain your Zebra printers through remote updates
• Remotely monitor printer updates – via the “Feedback” feature
• There are several Set/Get/Do (SGD) commands that can initiate Mirror. For details see Mirror
Printer Configuration on page 1452.

Benefits
•

•
•
•

1/31/18

When using Mirror, updating the configuration and firmware on the printer is remotely managed
from a centralized FTP server. Configurations can be uniformly deployed to individual printers or
to groups of printers. Unique configurations can also be targeted to printers as needed. Through
the “Feedback” feature, Administrators can easily log and monitor configuration updates on a
printer-by-printer basis. Typical uses of Mirror include:
Configuring printers as they are first received.
Performing scheduled maintenance updates, sending firmware, fonts, graphics and other objects
to the printer as needed.
Changing printer configurations in order to move printers from one role to another.

Programming Guide

P1099958-001

1436

Features
Firmware x.16

•

Supported printers and print servers:

Printer

Print Servers

Xi4™ -series

•
•

Internal, Integrated 10/100 IPV4 wired
Internal Wireless Plus

ZM400™

•
•

Internal, Integrated 10/100 IPV4 wired
Internal Wireless Plus

ZM600™

•
•

Internal, Integrated 10/100 IPV4 wired
Internal Wireless Plus

S4M™

•

Internal Wireless Plus

Print Servers connected to the parallel port, either externally or internally, are not supported
for Mirror use.

Wireless Markup Language (WML)
WML offers a text-based method of designing customized menus on the LCD front panel of selected
printers. By leveraging Set-Get-Do (SGD) and Zebra Programming Language (ZPL) commands,
menus that feature both display and command features can be created. The WML “card” structure
makes it possible to link from one menu screen to another, creating menus that are as many levels
“deep” as desired or reduced to only those options needed by the printer operator.

Firmware x.16
Identifies features that are available in printers with firmware version V60.16.x, V53.16.x, or
later.
The following is an overview of the new and enhanced features available in firmware version
V53.16.x and V60.16.x, and later; it is ZBI 2.0-Ready. These include:
• ZBI 2.0 can be enabled by placing a ZBI 2.0 key on the printer via the ZBI Key Manager &
Downloader utility. Printers can be ordered from the factory with the ZBI 2.0 option enabled.
Printers can be ZBI-Enabled in the field by purchasing and using a ZBI Key Kit. Printers can be
ZBI-Enabled in the field by purchasing a key at www.zebrasoftware.com.
• Printers which have been ZBI-Enabled will not display a “Z” at the end of the firmware version
string. For example, a printer which has been ZBI-Enabled will display the firmware version as
“V53.16.1”, while a printer which has not been ZBI-Enabled will display the firmware version as
“V53.16.1Z”
• The printer configuration label will display the ZBI status for the printer:

P1099958-001

•

ZBI-Enabled

•

Not ZBI-Enabled

Programming Guide

1/31/18

Features
Firmware x.15

•

The printer configuration label will list which ZBI program is running.

• ZBI 2.0 is backwards compatible with previous versions of ZBI. Any code which was specifically
written to handle a maximum string length of 255 characters will need to be reviewed to ensure
it works with unlimited string lengths.
• Other ZBI 2.0 Features:

•

List ZBI programs from the front panel

•

Start/Stop ZBI programs from the front panel

•

Button presses on front panel can be registered as events in ZBI programs.

•

Applicator port control

•

Support for longer strings, the length of the string dependent on available memory.

•

Support for NULL values in Strings and String operations

•

SNMP & Set/Get/Do (SGD) Control of ZBI

•

On-printer Debugging (via ZBI-Developer)

•

ZBI 2.0 Program Encryption

•

ZBI 2.0 programs can be made hidden and/or persistent

• New ZBI 2.0 Commands:
ACCEPT

INTTOHEX$

ADDBREAK

READ

AUXPORT_GETPIN

REGISTEREVENTS

AUXPORT_RELEASEPIN

SERVERSOCKET

AUXPORT_SETPIN

SPLIT

AUXPORT_STEALPIN

SPLITCOUNT

CLIENTSOCKET

SUB

CLOSE ALL

TCPX

DELBREAK

TRIGGEREVENT

HANDLEEVENT

UNREGISTEREVENTS

HEXTOINT

WRITE

Firmware x.15
Identifies features that are available in printers with firmware version V60.15.x, V50.15.x, or
later.

1/31/18

Programming Guide

P1099958-001

1437

1438

Features
Firmware x.15

The following is an overview of the new and enhanced features available in firmware version
V60.15.x, V50.15.x, or later. These include:
• Additional wireless securities
• New and updated ZPL commands (including wireless commands)
• Extended SNMP features, providing SNMP based control over commonly-needed printer
settings.
• Support for Set / Get / Do (SGD) commands

Wireless Securities
Firmware V60.15.x and V50.15.x offer support for a wider range of wireless securities. These are the
supported wireless securities:
• WEP-40-BIT
• WEP-128-BIT
• EAP-TLS
• EAP-TTLS
• EAP-FAST
• PEAP
• LEAP
• WPA-PSK
• WPA EAP-TLS
• WPA EAP-TTLS
• WPA EAP-FAST
• WPA PEAP
• WPA LEAP
• KERBEROS*
* Use of any given wireless security is dependent on the RF card being used.

ZPL and SGD Commands
Table 56 identifies the new commands and updates to existing commands in firmware version
V60.15.x, V50.15.x, or later. The bolded items are either new commands or new enhancements to
existing commands.

Table 56 • x.15 Features in Detail
Command

P1099958-001

Details

^KC

The ^KC command is a new command with firmware version V60.15.x,
V50.15.x, or later. It allows wireless print servers to have their own client
identifier (CID). When the print server is active is uses the CID on the
printer. When both print servers are active they have the option to use the
CID on the printer, or their own CID.

~DY

Firmware version V60.15.x, V50.15.x, or later supports .NRD (non readable
file) files and .PAC files (protected access credential).

Programming Guide

1/31/18

Features
Firmware x.14

Table 56 • x.15 Features in Detail
Command
~WS

^WX

Details

Firmware version V60.15.x, V50.15.x, or later added these new parameters:
•

wireless pulse—adds a pulse to the network traffic generated by
the printer. To keep the printer online, a pulse is necessary with
some network configurations.

•

wireless pulse interval—when the wireless pulse feature is enabled
this sets the interval at which the wireless pulse is sent.

•

channel mask—for commonly used channel masks.

•

international mode—disables or enables International mode

The ^WX command configures the wireless security settings for printers
using the wireless print server.

SNMP
Firmware V60.15.x, V50.15.x, or later feature support for an extended Management Information
Base (MIB) file. The extended support now covers many of the printer settings, such as darkness,
media type, and other printer specific settings. The MIB file can be downloaded from
www.zebra.com for use with SNMP management systems.

Set / Get / Do Support
Printers with firmware V60.15.x and V50.15.x support a new set of commands known as
Set / Get / Do (SGD) commands. These commands allow you to configure and get status on the
wireless settings in the printer. For details on the supported commands, see SGD Printer
Commands on page 571.

XML-Enabled Printing
Printers with firmware V60.15.8Z, V53.15.8Z, or later support XML-Enabled printing. For details, go
to http://www.zebra.com/xml. This new feature does not alter the ZPL capabilities of the printer.

Firmware x.14
Identifies features that are available in printers with firmware version V60.14.x, V50.14.x, or
later.
Table 57 identifies the new commands and enhancements to existing commands in firmware
V60.14.x, V50.14.x, or later. The bolded items are either new commands or new enhancements to
existing commands.

1/31/18

Programming Guide

P1099958-001

1439

1440

Features
Firmware x.14

Table 57 • x.14 Features in Detail
Command
^CI

Details
The ^CI command selects the encoding and character set. To identify the
encoding, include a ^CI in the ZPL script. These encodings are now supported
with the ^CI command:
These are new variables that were added to the desired character set or
a parameter of the existing ^CI command:
• Big 5 HKSCS (^CI26) with BIGHK.DAT. This supports the Hong Kong
supplementary character set of the Big 5 character set and encoding. You
can download the Big 5 HKSCS DAT table from www.zebra.com.
• Code Page 1252 (^CI27). The ^CI27 command supports code page 1252.
• GB 18030 (^CI26) with GB18030.DAT. This supports the GB 18030
character set and encoding standard.
• Unicode Support. These new values were added to the ^CI command:

28 = Unicode (UTF-8 encoding)
29 = Unicode (UTF-16 Big-Endian encoding)
30 = Unicode (UTF-16 Little-Endian encoding)

P1099958-001

~DY

The ~DY command downloads fonts to the printer. Firmware version V60.14.x,
V50.14.x, or later improves support for TrueType fonts and adds support for
TrueType Extension fonts. When OpenType fonts can be downloaded as a
TrueType font they are supported.

^FH

The ^FH command allows you to enter the hexadecimal value for any character
directly into the ^FD statement. It has been updated to function with Unicode
encodings.

^FL

The ^FL command provides the ability to link any TrueType font, including private
character fonts to associated fonts, such that if the base font does not have a
glyph for the required character, the printer looks to the linked fonts for the glyph.
The font links are user-definable.

^FO, ^FT,
^FW

In firmware version earlier than V60.15.x, V50.15.x or later, the ^FO and ^FT
commands were left-justified. In firmware version V60.14.x, V50.14.x, or later, a
new parameter supports right- and auto-justification. Using the ^FW command
allows you to set justification options.

^HT

Over a communication port, the ^HT command receives the complete list of the
font links.

^LF

The ^LF command prints out a list of the linked fonts.

^PA

The Advanced Text Layout Options command (^PA) is new in firmware version
V60.14.x, V50.14.x, or later.
Advanced text layout, such as bidirectional text layout, character shaping, and
OpenType support, can be activated with the ^PA command. The glyph displayed
when the character is missing from a font (default glyph) can be changed from a
space character to the default glyph of a font, which is often a square box.

^SL

A new parameter was added to the ^SL command to support the Japanese
language in the Real Time Clock feature set.

^TB

The text block (^TB) command is a new command in firmware version V60.14.x,
V50.14.x, or later. The ^FB command allows you to print text into a defined block
type format; it does not support complex text layout. In contrast, the ^TB
command supports a text block with complex text.

Programming Guide

1/31/18

Features
Firmware x.14

Global Printing Solution
The Global Printing solution greatly simplifies international character label printing by supporting
Unicode compatible fonts and encoding (UTF-8, UTF-16BE and UTF-16LE) directly in its printers.

These are new and enhanced features available in firmware version V60.14.x, v50,14.x, or
later:
• Advanced text layout options
• Big 5 HKSCS
• GB 18030
• Unicode support (UTF-8 and UTF-16)
• Code Page 1252
• Field hexadecimal
• Field origin justification
• Font linking
• Improved font support
• Real-time clock – Japanese support
• Text block
For details on these new features, see Table 56 on page 1438.
Zebra firware V60.14.x, V50.14.x, or later continues to support locale-specific encoding formats.
These formats include:
• Code Page 850
• Shift JIS
• GB
• Unified Hangul Code
• Big 5

What Is Unicode?
Unicode is a universal code page (which converts numeric codes into characters) that can be used
with many computer platforms and software applications. While ASCII and other traditional code
page encoding systems support 256 characters or less, Unicode can support almost 100,000
characters for all major languages. The languages include complex non-Western languages that can
be difficult to print.
Unicode encoding and supporting fonts allow the printer to seamlessly output in any language. As a
result, you do not have to select the language, font, code page, or configure or adjust the printer.
Zebra’s printer-resident capabilities provide fast label output and seamless multi-language printing.
You can create private libraries of logos and special characters and include them in labels. The
ability to create custom characters is valuable for creating shipping labels for Asia, as many Asian
fonts don’t support characters for names, street names, and other proper nouns. Firmware V60.14.x,
V50.14.x, or later offers features that support bidirectional printing or complex text layout, including:
• Arabic
• Hindi
• Thai
• Vietnamese
• Other languages

1/31/18

Programming Guide

P1099958-001

1441

1442

Features
Firmware x.14

P1099958-001

Programming Guide

1/31/18

Mirror

This section provides an overview of Mirror, details on how to use it, and configuration examples.

Contents
Mirror Overview ...................................................................................................................... 1444
Benefits................................................................................................................................ 1444
Professional Services for Mirror Configuration ....................................................................... 1445

1/31/18

Programming Guide

P1099958-001

1444

Mirror
Mirror Overview

Requirements .......................................................................................................................... 1445
How Mirror Works................................................................................................................... 1447
Mirror Process Summary ..................................................................................................... 1447
Mirror Process Details ......................................................................................................... 1448
Creating ZPL Files for Use in the
"/files" Directory .............................................................................................. 1449
One Format per File............................................................................................................. 1449
Character Substitution......................................................................................................... 1450
Removing the ^XA and ^XZ commands ............................................................................... 1450
Removing the ^DF command .............................................................................................. 1450
Example Files ....................................................................................................................... 1451
File Naming Recommendations........................................................................................... 1451
Command Use Recommendations ...................................................................................... 1451
Configuration........................................................................................................................... 1452
Mirror FTP Server Configuration.......................................................................................... 1452
Mirror Printer Configuration ............................................................................................... 1452
The Feedback.get File.............................................................................................................. 1452
Example Feedback.get file ................................................................................................... 1454
How to Set Up and Use Mirror ................................................................................................ 1455
Scenario One........................................................................................................................ 1455
Scenario Two ....................................................................................................................... 1456
Troubleshooting ...................................................................................................................... 1457

Mirror Overview
Mirror is a feature that gives you the ability to:
• Centrally manage and monitor the deployment of your Zebra printers
• Centrally configure and maintain your Zebra printers through remote updates
• Remotely monitor printer updates - via the "Feedback" feature
There are several Set/Get/Do (SGD) commands that are used to configure and initiate Mirror. For
details see, Mirror Printer Configuration on page 1452.

Benefits
When using Mirror, updating the configuration and firmware on the printer is remotely managed from
a centralized FTP server. Configurations can be uniformly deployed to individual printers or to
groups of printers. Unique Configurations can also be targeted to printers as needed.
Through the "Feedback" feature, Administrators can easily log and monitor configuration updates on
a printer-by-printer basis.
Typical uses of Mirror include:
• configuring printers as they are first received
• performing scheduled maintenance updates, sending firmware, fonts, graphics and other
objects to the printer as needed
• changing printer Configurations in order to move printers from one role to another
Figure 10 provides an illustration of Mirroring.

P1099958-001

Programming Guide

1/31/18

Mirror
Professional Services for Mirror Configuration

Figure 10 • Mirror Illustration

Workstation — sends SGD commands to the printer to configure it for Mirror use.
FTP Server — Stores configuration files and responds to Mirror requests from the printer.
Receives and stores “Feedback” content.
Access Point — wireless network infrastructure
Hub — wired network infrastructure
Zebra Printer(s) — Configured using SGD commands. Sends Mirror requests to the FTP
server to receive files. Transmits “Feedback” content to the FTP server to log Mirror event
transactions and resulting printer settings.

1
2
3
4
5

Professional Services for Mirror Configuration
Zebra offers a Professional Services group that can help with the configuring the Mirror feature. To
inquire about Zebra's Professional Services, contact your Zebra account representative.

Requirements
These are the requirements for Mirror:
• Zebra printer loaded with Mirror capable firmware and Print Server. For details, see Table 58,
Printers and Print Servers that Support Mirror on page 1446.
• FTP server (with UNIX-style directory listings), configured with the following directories:

•

""/appl - This directory is used for printer firmware updates.
During an update operation, the printer will first check the "/appl"
directory for new printer firmware

•

""/files - This directory is used for printer-resident files. Files in

this directory will be stored locally on the printer's file system. Files are not
processed by the printer; they are only stored.

1/31/18

Programming Guide

P1099958-001

1445

1446

Mirror
Requirements

•

""/commands - This directory is used for a limited number of

printer executable commands. The contents of files in this directory will be sent to
the printer's command interpreter for execution.
•

"" - This optional directory is used to receive Mirror feedback

content from the printer. The content sent to this directory is defined by the
"feedback.get" template file stored on the printer.
• A client account (user name and password) on the FTP server for the printer to use.
• A Terminal Emulation program, used to send SGD commands to the printer to configure Mirror.

Supported Printers and Print Server Types
These are the Zebra printers, firmware versions, and Zebra print servers that support Mirror.

Table 58 • Printers and Print Servers that Support Mirror
Printer

P1099958-001

Firmware

Print Servers

ZT400

V75.19.7Z
(or later)

•
•
•

ZebraNet a/b/g/n Print Server
Internal Wireless Plus
Wireless Plus

ZE500

V53.17.15Z
(or later)

•
•
•

ZebraNet b/g Print Server
Internal Wireless Plus
Wireless Plus

ZT200

V72.18.2Z (or
later)

•
•
•

ZebraNet a/b/g/n Print Server
Internal Wireless Plus
Wireless Plus

105SLPlus

V53.17.15Z
(or later)

•
•
•

ZebraNet b/g Print Server
Internal Wireless Plus
Wireless Plus

Xi4™ series

V53.17.5Z
(or later)

•
•

Internal, Integrated 10/100 IPV4 wired
Internal Wireless Plus

XiIIIPlus™ series

V60.17.5Z
(or later)

•
•

Internal Wireless Plus
Wireless Plus

105SL™

V60.17.5Z
(or later)

•
•

Internal Wireless Plus
Wireless Plus

PAX4™

V60.17.5Z
(or later)

•
•

Internal Wireless Plus
Wireless Plus

ZM400™

V53.17.5Z
(or later)

•
•
•

Internal 10/100 wired
Internal Wireless Plus
Wireless Plus

ZM600™

V53.17.5Z
(or later)

•
•
•

Internal 10/100 wired
Internal Wireless Plus
Wireless Plus

S4M™

V53.17.5Z
(or later)

•
•

Internal Wireless Plus
Wireless Plus

Programming Guide

1/31/18

Mirror
How Mirror Works

Table 58 • Printers and Print Servers that Support Mirror
G™ -series

V56.17.5Z
V61.17.5Z
(or later)

•
•
•

Internal 10/100 wired
Internal Wireless Plus
Wireless Plus

LP 2824 Plus
TLP 2824 Plus

V61.17.3Z
(or later)

•
•
•

Internal 10/100 wired
Internal Wireless Plus
Wireless Plus

Note • Print Servers connected to the parallel port, either externally or internally, are not supported
for Mirror use.

How Mirror Works
Mirror utilizes a network connection and FTP communications to perform remote updates and
feedback operations. At printer startup and/or at regular intervals, the printer will establish a FTP
connection back to a central FTP server and check for updates. During an update operation, the
printer will check for updated files in specific directories at the FTP server.
These are the specific FTP server directories that will be checked:
• ""/appl - This directory is used for printer firmware updates. During an
update operation, the printer will first check the ''/appl'' directory for new printer
firmware
• ""/files - This directory is used for printer-resident files. Files in this
directory will be stored locally on the printer's file system. Files are not processed by the printer;
they are only stored.
• ""/commands - This directory is used for a limited number of printer
executable commands. The contents of files in this directory will be sent to the printer's
command interpreter for execution.
• "" - This optional directory is used to receive Mirror feedback content from
the printer. The content sent to this directory is defined by the "feedback.get" template file
stored on the printer.

Note • '''' refers to the value of the ''ip.mirror.path'' configuration
parameter.
Files in the /files directory should not have download headers in them. They
should be in the exact format they will be in when stored on the printer's file system. Examples of
download headers are: ~DY, ~DG, ! CISDFCRC16 or ~DF.

Important • When the printer is in the Mirror process:
•
•

It is unavailable for other tasks.
The LCD will indicate that it is performing a Mirror function, showing when the printer is
downloading firmware and the names of the object files as they are transferred to the printer.

Mirror Process Summary
The Mirror process follows a specific series of steps:

1. After power-up, the printer will first check the /appl directory on the

FTP server for new printer firmware and update the printer if necessary
1/31/18

Programming Guide

P1099958-001

1447

1448

Mirror
How Mirror Works

2. If the printer did not find new firmware to download, it will then check in the \files and /commands directories for updated files - and

download them as needed.
3. As a final Mirror step, the printer can perform an optional Feedback operation,

transmitting a file of user-defined printer configuration information to  directory on the FTP server.
4. Finally, if any files or commands were downloaded during Step 2:, the printer will

automatically reset itself.

Mirror Process Details
The following items are important to be aware of when configuring the FTP server to support
Firmware updated via Mirror.
• Firmware files must be named using the following format:
.zpl, where  is the exact Firmware revision
contained in the file. For example, for Firmware version “V53.17.5Z”, the filename stored on the
FTP server must be “V53.17.5Z.ZPL”. If the file name and Firmware version do not match, the
update will not succeed.
• The firmware filename stored on the FTP server is not case sensitive. This means that
“V53.17.5Z.ZPL” and “v53.17.5Z.zpl” will be processed in the exact same way.
• The /appl directory can contain only one (1) file at a time. If there is more than 1 file in this
directory, the printer will not download anything and will skip the firmware update.
During a Mirror event, the printer will use  part of the filename contained in
the /appl directory on the FTP server to check if the Firmware stored on the FTP server is different
than the firmware the printer is currently using. If the  part of the Firmware
file name in the /appl directory on the FTP server does not exactly match the printer's Firmware
version, the file on the FTP server will be downloaded and used to update the printer. Once the
printer is updated with the new Firmware, the printer will reset and being using the new Firmware.

Note • Performing the Firmware update first is important because it is possible that the files or
commands to be downloaded via Mirror will be dependent on the new firmware.
After the printer has completed the Firmware portion of an update operation, it will check the
''/files'' directory and ''/commands'' directory (in that order)
for updated files that need to be retrieved. If a file exists on the FTP server and the server timestamp
for the file does not match the printer's archived timestamp for the file, the printer will re-download
the file and update its timestamp info. Files that are on the Mirror FTP server but not currently
present on the printer will be sent to the printer. The supported file types are the standard files
supported on ZPL printers.
If any files are downloaded during this portion of an update operation, the printer will reboot after the
file downloads have completed. At this point, the update operation is complete.

Important •
•
•

P1099958-001

Files in the /files directory should not have download headers in them.
They should be in the exact format they will be in when stored on the printer's file system.
Examples of download headers are: ~DY, ~DG, ! CISDFCRC16 or ~DF.
ZPL files in the /files directory must use the printers internal characters
for the Format Command Prefix (^), Delimiter Character (,) and Control Command Character
(~). This means that the caret (^) should be replaced with a HEX 1E, the comma ( ,) should be
replaced with a HEX 1F and the tilde (~) should be replaced with a HEX 10.

Programming Guide

1/31/18

Mirror
Creating ZPL Files for Use in the "/files" Directory
After an update operation is complete, a printer will perform a feedback operation, if configured to do
so. During a feedback operation, the printer will open its feedback template file (named
feedback.get), populate it based on its contents, and upload the resulting contents file to the FTP
server, in the '''' directory.

Note • "" refers to the value of the "ip.mirror.feedback.path"
configuration parameter

Creating ZPL Files for Use in the
"/files" Directory
When creating ZPL formats that will be stored in the ''/files'' directory it is necessary to
edit the files using the following guidelines:

1. Files must contain only one format. This means that if a file contains multiple ^XA and

^XZ commands, those sections of the file must be split into separate formats, or

combined as one format.
2. The characters used for the Format Command Prefix (^), Delimiter Character (,) and

Control Command Characters (~) must be substituted for their Hexadecimal equivalents.
3. The ^XA and ^XZ commands must be removed from the formats.
4. The ^DF command should be removed.

One Format per File
Files must contain only one format. This means that if a file contains multiple ^XA and ^XZ
commands, those sections of the file must be split into separate formats, or combined as one format.
For example, if a ZPL file contains both an initialization string and a format, the two sections must be
either split into two files, or combined into one format.
For example, given the following formats:

^XA
^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR2,2^LRN^CI0
^XZ
^XA
^FO20,100^IME:ZEBRA.BMP^FS
^A@N,75,75,TT0003M_.TTF
^FO20,400^FDZebra Technologies^FS
^XZ
The following file should be created, which includes all of the command in one file:

^XA
^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR2,2^LRN^CI0
^FO20,100^IME:ZEBRA.BMP^FS
^A@N,75,75,TT0003M_.TTF
^FO20,400^FDZebra Technologies^FS
^XZ
1/31/18

Programming Guide

P1099958-001

1449

1450

Mirror
Creating ZPL Files for Use in the "/files" Directory

Character Substitution
The characters used for the Format Command Prefix (^), Delimiter Character (,) and Control
Command Characters (~) must be substituted for their Hexadecimal equivalents. During normal
operation, this is how the printer works with ZPL formats. For example, when a ZPL format is sent to
the printer via a telnet, RS-232 or Ethernet connection and stored for later use, it automatically
processes the file and makes these character substitutions.
When ZPL formats are sent to the printer from the "/files" directory they are
stored on the printers memory, but not processed. For this reason, it is necessary to preprocess the
files so that they are ready for use.
The following character substitutions must be made to files sent from the

"/files" directory:
Original Character

Substitute Character

Command Prefix
The default is the Caret (^)

HEX 1E

Delimeter Prefix
The default is the comma ( , )

HEX 1F

Control Prefix
The default is the tilde (~)

HEX 10

For example, given the following format:

^XA
^FO20,100^IME:ZEBRA.BMP^FS
^A@N,75,75,TT0003M_.TTF
^FO20,400^FDZebra Technologies^FS
^XZ
It would be necessary to replace the ^ characters with a HEX 1E and the , characters with a HEX 1F.
This can be done using a Text Editor. See Example Files on page 1451 for more information.

Removing the ^XA and ^XZ commands
Additionally, the ^XA and ^XZ commands should be removed from the format. The printer will
automatically add these commands back in to process the file. See Example Files on page 1451 for
more information.

Removing the ^DF command
In some cases, you might have been using files that contain the ^DF command. The purpose of the
^DF command is to instruct the printer to store everything that comes after it in a ZPL file. For
example, you might have a file that contains the following:

^XA
^DFE:STOREFMT.ZPL^FS
^FO25,25^AD,36,20^FN1^FS
^FO165,25^AD,36,20^FN2^FS
^FO25,75^AB,22,14^FDBUILT BY^FS
^FO25,125^AE,28,15^FN1
^XZ
P1099958-001

Programming Guide

1/31/18

Mirror
Creating ZPL Files for Use in the "/files" Directory
The purpose of the above format - when sent to a printer - would be to store a file called
"STOREFMT" to the E memory location on the printer. In production, the goal would be to recall and
print the "STOREFMT" file using the following ZPL commands:

^XA
^XFE:STOREFMT.ZPL^FS
^FN1^FDZEBRA^FS
^FN2^FDPRINTER^FS
^XZ
When this is done using Mirror, the format being sent to the printer must be altered. The line with the
^DF command must be removed - this is because the Mirror process is taking care of storing the
format to the E memory location. In this scenario, the original format would be edited to look like this:

^FO25,25^AD,36,20^FN1^FS
^FO165,25^AD,36,20^FN2^FS
^FO25,75^AB,22,14^FDBUILT BY^FS
^FO25,125^AE,28,15^FN1
The character substitution described above must also be done on the file before it is stored in the
''/files'' directory.
The "recall" format - using the ^XFE:STOREFMT.ZPL command - does not need to be altered
or edited. It can be used as it was previously.

Example Files
Example of files that have already been altered in the manner described above are available as
"Mirror File Examples" at www.zebra.com.
To see an example file, right-click the paper-clip icon and select Open File or
Save Embedded File to Disk.

File Naming Recommendations
• Files in the "/files" directory and
"/commands" directory should not have the same name.
• Files in the "/files" should not contain multiple label formats. If you need
to Mirror multiple formats, the recommended method is to split the formats into separate files.

Command Use Recommendations
• Files in the "/commands" directory should use only SGD commands or the
following ZPL commands:

1/31/18

•

~CC

•

~CD

•

~CT

•

~JA

•

~JL

•

~JS

•

~JX

•

~RO
Programming Guide

P1099958-001

1451

1452

Mirror
Configuration
• Do not add a device.reset SGD command to the end of a file in the
"/commands" directory. Mirror will reset itself automatically after performing
an update, so there is no need for this command.

Configuration
This section provides detail on the configuring the printer and FTP server for Mirror.

Mirror FTP Server Configuration
For a Zebra printer to successfully use Mirror, the Mirror FTP server must have the following:
• A client account (user name and password) for the printer to use
• A root (base) directory for Mirror updates. This root directory must have the following
subdirectories:

/appl
/files
/commands
• A Mirror feedback folder (optional)

Important • The printer's FTP user account must have the necessary permissions to
read/write files in the update and feedback root directories. The /appl, /files, and
/commands subdirectories are read only; the Mirror feedback folder is read/write. If these
permissions are not properly set, the Mirror update and feedback processes will be
unsuccessful.

Mirror Printer Configuration
The following SGD commands are used to configure Mirror on the printer:

•
•
•
•
•
•
•
•
•

ip.mirror.auto on page 1120
ip.mirror.error_retry on page 1121
ip.mirror.feedback.auto on page 1122
ip.mirror.feedback.freq on page 1123
ip.mirror.feedback.odometer on page 1124
ip.mirror.feedback.path on page 1125
ip.mirror.fetch on page 1126
ip.mirror.freq on page 1127
ip.mirror.freq_hours on page 1128

•
•
•
•
•
•
•
•
•
•

ip.mirror.last_error on page 1130
ip.mirror.last_time on page 1131
ip.mirror.password on page 1133
ip.mirror.path on page 1134
ip.mirror.reset_delay on page 1135
ip.mirror.server on page 1136
ip.mirror.success on page 1137
ip.mirror.success_time on page 1138
ip.mirror.username on page 1139
ip.mirror.version on page 1140

The Feedback.get File
The Feedback feature is one of the key benefits of the Mirror process. During a Mirror operation, the
printer can upload a file to the FTP Server that contains information about the configuration of the
printer. This information can then be leveraged by the Administrator to monitor the printer's setup.
Using the Feedback feature is optional.

P1099958-001

Programming Guide

1/31/18

Mirror
The Feedback.get File
The "feedback.get" file is a template file stored on the printer. It controls what content is
uploaded to the""directory on the FTP server. The directory on the FTP server
where the printer will send Feedback content to is controlled by the
"ip.mirror.feedback.path" command.
Within the feedback.get file it is possible to leverage SGD commands to insert current printer status
and configuration strings into the file. This feature can help make the Feedback file on the FTP
server more unique and useful to the Administrator.
Additionally, the first line of the feedback.get file is used to control the name of the file that will be
uploaded and stored on the FTP server.
For example, if first line of the "feedback.get" file was:

"zebra.."
That line would be evaluated by the printer and used as the Feedback destination file name to create
on the FTP server.
Using the example above, if the MAC address of the wireless print server was "00a0f8ae56d7"and
the Feedback odometer was currently at "33", the Feedback file created the FTP server would be
named:

"zebra.00a0f8ae56d7.33.txt"
The "feedback.get" file can be sent to the printer using the !CISDFCRC16 command. For additional
information, see CISDFCRC16 on page 609.

Note • The first line of the feedback.get file is not included when the Feedback data is written to
FTP server.

1/31/18

Programming Guide

P1099958-001

1453

1454

Mirror
The Feedback.get File

Example Feedback.get file
Here is an example of a "feedback.get" file and its resulting uploaded file:

zebra..
Application Name = 
Serial Number = 
Mirror
Mirror
Mirror
Mirror

Success = 
Auto = 
Path = 
Last Update = 

Bootp Enable = 
DHCP Enable = 
Data Port = 
Associated AP = 
RF ESSID = 
RF Firmware = 
RF Signal Strength = 
RF Channel Mask = 
Label Length = 
Print Length = 

P1099958-001

Programming Guide

1/31/18

Mirror
How to Set Up and Use Mirror
When this file is processed by the printer and uploaded to the FTP server, the resulting upload file on
the FTP server would contain data similar to this:

Application Name = V53.17.2Z
Serial Number = ZBR123456
Mirror
Mirror
Mirror
Mirror

Success = Yes
Auto = on
Path = /update-root/ZM400/
Last Update = 12345678

Bootp Enable = on
DHCP Enable = on
Data Port = 9100
Associated AP = 124
RF ESSID = MyEssid
RF Firmware = 5.2.1
RF Signal Strength = 98
RF Channel Mask = FF
Label Length = 100
Print Length = 200

How to Set Up and Use Mirror
This section provides multiple scenarios which include specific examples that demonstrate how to
set up and use Mirror.

Scenario One
In this scenario, the printer is configured to perform a Mirror update operation ("ip.mirror.auto
= on") and feedback operation ("ip.mirror.feedback.auto = on") every time the printer
restarts. On startup, after a network connection has been established, the printer will attempt to
make a FTP connection to the server address 10.14.5.133, using the “user name” and “password” of
the printer.
If the connection is successful, the printer will attempt to perform an update operation using the root
directory "/all_printers/s4m/role1". After the update operation is complete, the printer will
attempt a Feedback operation, uploading the resulting Feedback file to the "/all_feedback"
directory on the server.
Using the command set in the example below, the printer will not attempt any periodic Mirror Update
or Feedback operations. It will only perform Mirror operations on startup or when explicitly instructed
to using the "ip.mirror.fetch" command.

Note • If a file starts with "/" it signifies the base directory of that file system. If a file is contained
in the user’s account, they do not start with a "/".

1/31/18

Programming Guide

P1099958-001

1455

1456

Mirror
How to Set Up and Use Mirror

Example: This example shows a Mirror configuration command set. Each line item of the command
set is identified with a number. For details on each line item, see the table below.

10
20
30
40
50
60
70
80

!
!
!
!
!
!
!
!

1
2
3
4
5
6
7
8

U1
U1
U1
U1
U1
U1
U1
U1

SETVAR
SETVAR
SETVAR
SETVAR
SETVAR
SETVAR
SETVAR
SETVAR

"ip.mirror.auto" "on"
"ip.mirror.username" "printer"
"ip.mirror.password" "printer"
"ip.mirror.server" "10.14.5.133"
"ip.mirror.path" "/all_printers/s4m/role1"
"ip.mirror.feedback.auto" "on"
"ip.mirror.feedback.path" "/all_feedback"
"ip.mirror.feedback.freq" "0"

Configures the printer to perform a Mirror Update operation at power-up.
Configures the FTP Server "user name" for the printer to use
Configures the FTP Server "password" for the printer to use
Configures the FTP server address the printer should make a FTP connection to.
If the FTP connection is successful, the printer should attempt to perform an
Update operation using this root directory.
Configures a printer to automatically perform a Mirror Feedback operation
at start-up.
Configures the printer to upload the resulting Feedback file to the designated directory on
the server.
Configures a printer to repeat the Feedback operation zero times.

Scenario Two
In this scenario, the printer is configured to not perform a Mirror Update function at start-up. It is
configured to perform a Mirror Feedback operation at start-up and thereafter at every 60 minutes.
When the 60 minutes elapses, the printer will attempt to make a FTP connection to the server
address 10.14.5.133. If the FTP connection is successful, the printer will attempt a Feedback
operation, uploading the resulting Feedback file to the "/all_feedback" directory on the server. After
the initial Feedback operation, subsequent Feedback operations will occur at an interval of 60
minutes.

Important • Using the command set in the example below, for the printer to attempt any
Mirror Update operation unless the "ip.mirror.fetch" command is sent to the printer.

P1099958-001

Programming Guide

1/31/18

Mirror
Troubleshooting

3

Example: This example shows a Mirror configuration command set. Each line item of the command
set is identified with a number. For details on each line item, see the table below.

10
20
30
40
50
60
70
80
1
2
3
4
5
6
7
8

!
!
!
!
!
!
!
!

U1
U1
U1
U1
U1
U1
U1
U1

SETVAR
SETVAR
SETVAR
SETVAR
SETVAR
SETVAR
SETVAR
SETVAR

"ip.mirror.auto" "off"
"ip.mirror.username" "printer"
"ip.mirror.password" "printer"
"ip.mirror.server" "10.14.5.133"
"ip.mirror.path" "/all_printers/s4m/role1"
"ip.mirror.feedback.auto" "on"
"ip.mirror.feedback.path" "/all_feedback"
"ip.mirror.feedback.freq" "60"

Configures the printer to not perform a Mirror Update operation at start-up
Configures the FTP Server "user name" for the printer to use
Configures the FTP Server "password" for the printer to use
Configures the FTP server address the printer should make a FTP connection to.
If the FTP connection is successful, the printer should attempt to perform an
Update operation using this root directory.
Configures a printer to automatically perform a Mirror Feedback operation
at start-up.
Configures the printer to upload the resulting Feedback file to the designated directory on
the server.
Configures the printer to attempt a Feedback operation every 60 minutes.

Troubleshooting
If a Mirror process completes unsuccessfully, troubleshooting information can be retrieved by
sending this command to the printer:

! U1 GETVAR "ip.mirror.last_error"
Table 59 lists possible printer responses, an explanation of each, and resolutions. Table 60 provides
problem scenarios and solutions.

Important • A mirror path can have up to 50 characters.

1/31/18

Programming Guide

P1099958-001

1457

1458

Mirror
Troubleshooting

Table 59 • Printer Response Troubleshooting
Printer Response

Explanation

Resolution

"connection failed"

The network connection to the
Mirror FTP server failed while
attempting to perform a printer
update.

•

•
•

"Failed to get File:
[filename]"

During an update operation, the
printer's attempt to retrieve the
file [filename] failed.

•

•

"feedback connection failed"

The network connection to the
Mirror FTP server failed while
attempting to send printer
feedback.

•

•
•

"Failed getting file to
parser : [filename]"

During an update operation, the
printer’s attempt to retrieve a file
[filename] in the

/appl

"Failed to send feedback
file:
/"

•

directory failed.

•

During a feedback operation, the
printer’s attempt to store the
feedback file in the
 directory
failed.

•

•

•
"Too many files in the
firmware download
directory"

The Mirror FTP server has more
than one file in the

/appl

Check the user name, password, and
server address for the Mirror FTP
server and ensure that these values
are set correctly in the printer.
Ensure that the user name assigned to
the printer has the proper permission to
log into the Mirror FTP server.
Check that the printer has a successful
network connection and is able to send
and receive network data.
Ensure that the printer's network
connection has not been interrupted. If
it has, re-establish network connectivity
and retry the update.
Check the server's access permissions
for the user name assigned to the
printer. Make sure the user name is
granted access to read [filename] from
the server.
Check the user name, password, and
server address for the Mirror FTP
server and ensure that these values
are set correctly in the printer.
Ensure that the user name assigned to
the printer have the proper permission
to log into the Mirror FTP server.
Check that the printer has a successful
network connection and is able to send
and receive network data.
Ensure that the printer’s network
connection has not been interrupted. If
it has, re-establish network connectivity
and retry the update.
Check the server’s access permissions
for the user name assigned to the
printer. Make sure the user name is
granted access to read [filename]
from the server.
Ensure that the printer’s network
connection has not been interrupted. If
it has, re-establish network connectivity
and retry the update.
Check the server’s access permissions
for the user name assigned to the
printer. Make sure the user name is
granted access to write to the
 directory.
Ensure that the 
directory exists on the remote server.

Ensure that there is only one (1) firmware
file in the /appl
directory.

directory.

P1099958-001

Programming Guide

1/31/18

Mirror
Troubleshooting

Table 60 • blem Scenario Troubleshooting
Problem Scenario

Solution

I performed a Mirror Update and now
my printer is continuously
reprogramming.

Ensure that the name of the firmware file in /appl
matches the version of firmware contained in that file.
Example: For firmware version V53.17.2Z, the name of the file in the
/appl directory must be V53.17.2Z.ZPL to prevent
the continuous reprogramming cycle.

Every time a Mirror Update is run, a file
is fetched even though no changes
have been made to the files on the
server.

•

•

•

The printer is continually rebooting.

1/31/18

•

Check the names of the files in the /files and
/commands directories. If the names are longer
than 16 characters (minus extensions), then the printer will truncate
them to 16 characters when downloading. If two filenames truncate to
the same 16 characters, the printer will not be able to tell the
difference between them and will re-download one of the two files
during every update operation.
Check the names of the files in the /files and
/commands directories. If any of the names are
the same, then the printer will not be able to tell the difference.
Therefore it will get the one in the files directory, update the
timestamp file, and then it will get the one in the commands directory
and update the timestamp file. Then, the next time through the one in
the files directory will have a different timestamp, so it will get that file
again and then check the commands directory, and so on.
Check the server's access permissions for the user name assigned to
the printer. Make sure the user name is granted access to read all
files in the /files and
/commands directories.
Check the /commands directory. If a file.delete command
resides, then you need to remove file.delete or modify your
script.

Programming Guide

P1099958-001

1459

1460

Mirror
Troubleshooting

Notes • ____________________________________________________________________

__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________

P1099958-001

Programming Guide

1/31/18

WML

Wireless Markup
Language (WML)

Wireless Markup Language (WML) offers a text-based method of designing a menu structure for the
display screen of selected printers. By leveraging Set/Get/Do (SGD) and files containing Zebra
Programming Language (ZPL) commands, customized menus can be created.

Contents
WML Overview ........................................................................................................................ 1432
WML Details ............................................................................................................................ 1432
Supported Printers .................................................................................................................. 1433
Professional Services for WML Content Creation ................................................................... 1434
WML Tags ................................................................................................................................ 1434
Using WML .............................................................................................................................. 1434
Send WML Content to the Printer via FTP........................................................................... 1436
Resetting the "ip.ftp.execute_file setting............................................................................ 1436
Sending WML Content to the Printer via the CISDFCRC16 Command: ............................... 1436
Retrieving WML Content from the Printer using the file.type Command:.......................... 1437
Using .nrd Files from WML Menus ...................................................................................... 1438
Removing WML or .nrd Files from the Printer using the file.delete Command: ................. 1438
WML Examples ........................................................................................................................ 1438
Example 1 ............................................................................................................................ 1439
Example 2 ............................................................................................................................ 1440
Example 3 ............................................................................................................................ 1441
Example 4 ............................................................................................................................ 1443
Example 5 ............................................................................................................................ 1444
Troubleshooting Scenarios ...................................................................................................... 1447

1/31/18

Programming Guide

P1099958-001

1461

1462

Wireless Markup Language (WML)
WML Overview

WML Overview
Wireless Markup Language (WML) offers a text-based method of designing customized menus on
the LCD front panel of selected printers. By leveraging Set-Get-Do (SGD) and Zebra Programming
Language (ZPL) commands, menus that feature both display and command features can be
created. The WML “card” structure makes it possible to link from one menu screen to another,
creating menus that are as many levels “deep” as desired or reduced to only those options needed
by the printer operator.
For details on SGD commands, see SGD Printer Commands on page 571. For details on ZPL
commands, see ZPL Commands on page 31.

P1099958-001

Programming Guide

1/31/18

Wireless Markup Language (WML)
WML Details

WML Details
A WML file is made up of tags, which are similar to HTML tags. For a list of the supported WML tags,
see WML Tags on page 1466.
Using WML on the printer is dependent on the presence of a single index.wml file, stored in the
printer's E: memory. The index.wml file can contain one or more “cards”, with each card defining the
content of a single menu. Everything within the card tag ( ) constitutes one complete
front panel menu. Cards can also contain hyperlinks to other menus. If the index.wml has three
cards, with links between the cards, that means there are three front panel menus. It is also possible
to create multiple .wml files, with links between them and the index.wml file. In cases where multiple
.wml files are used, it is recommended that each file should be structured to provide a link back to
the main menu as described in the index.wml card.

Note • Only one index.wml file can reside on a printer at any time
WML defined menus can use Set-Get-Do (SGD) commands to retrieve or set printer settings. For
example, a menu might display the printer’s current baud rate, while also offering other potential
baud rate settings for the printer selection. In more advanced uses, WML defined menus can cause
ZPL command files, stored in the printer E: memory, to be injected into the printers command engine
– where they will be read in and acted upon. In this use, the ZPL command file files are known as
.nrd files.
For example, a WML defined menu could call an .nrd file that contains a customized set of printer
configuration commands. In this way, different profiles can be created for the printer - making it
possible for the printer operator to select the appropriate configuration profile needed for the task the
printer is being used in.
An important concept to consider is that the WML menu completely defines what is displayed on the
printers screen. If an item is not included in the WML menu definition it will not be displayed to the
user.
3

Note • The index.wml file must reside on the printer’s E: drive for the WML menu to display. If
the index.wml file is on a drive other than E:, then the standard front panel menus display.
3

Note • When a WML menu is resident on the printer, the standard menu system can be easily be
accessed by holding down the Cancel and Setup/Exit buttons (on the ZM400) or the Cancel and
Setup/Exit buttons (on Xi4) or the Select button (on GX) on the front panel while the printer powers
up. Hold the buttons down until the PRINT READY message displays on the front panel. To return
to the WML defined menu, reset the printer again.

1/31/18

Programming Guide

P1099958-001

1463

1464

Wireless Markup Language (WML)
Supported Printers

Supported Printers
NEEDS TO BE UPDATED FOR LINK-OS PRINTERS IN A FUTURE RELEASE (CMM 06/2015)
WML is supported on the following printers, using the indicated firmware. The buttons on the
printers' front panel that are used for Navigating WML defined menus are noted.

Note • When a WML defined menu is in use, the stripes pattern found at the top of selected
printers is not displayed.

Table 61 • WML-Supported Printers
Printer

Number
of “lines”
available

Menu
Navigation
Buttons

Keys to Access
Standard Menu System

105SLPlus

V53.17.15Z
(or later)

5

Select
+ (PLUS )
- (MINUS )

Hold down CANCEL &
SETUP/EXIT during power-up

Xi4™ series

V53.17.5Z
(or later)

5

Select
+ (PLUS )
- (MINUS )

Hold down CANCEL &
SETUP/EXIT during power-up

ZE500™

V53.17.15Z
(or later)

5

Select
+ (PLUS )
- (MINUS )

Hold down CANCEL &
SETUP/EXIT during power-up

ZM400™

V53.17.5Z
(or later)

5

Select
+ (PLUS )
- (MINUS )

Hold down CANCEL &
SETUP/EXIT during power-up

ZM600™

V53.17.5Z
(or later)

5

NEXT/SAV
E
+ (PLUS )
- (MINUS )

V56.17.5Z
(or later)

4

G™ -series

P1099958-001

Firmware

SELECT

Programming Guide

SCROLL

Hold down

CANCEL & SETUP/EXIT
during power-up

Hold down SELECT
during power-up

1/31/18

Wireless Markup Language (WML)
Professional Services for WML Content Creation

Professional Services for WML Content Creation
Zebra offers a Professional Services group that can help with the creation of WML content. To
inquire about Zebra’s Professional Services, contact your Zebra account representative.

1/31/18

Programming Guide

P1099958-001

1465

1466

Wireless Markup Language (WML)
WML Tags

WML Tags
Table 1 shows the WML tags and tag parameters that can be used to create a menu system. As with
other tag-based languages, such as HTML and XML, ending tags should be used to indicate the
end of a structure. An example of an ending tag would be , which indicates the end of a
WML script.

P1099958-001

Programming Guide

1/31/18

Wireless Markup Language (WML)
Using WML

Using WML
Important • Using end tags is required to create well formed and functional WML scripts.
Table 62 • WML Tag Descriptions
 

indicates the beginning/end of the WML script

 

indicates the beginning/end of the content to display on-screen

 

indicates the beginning/end of a card

indicates the beginning/end of a Paragraph
Line break
Menu Hyperlink to another card Controls display timer in 10th of a second increments " ontimer="#main" Controls action to take at timer end alerts="on" Controls display of on-screen alerts $(command.command) $ executes a SGD “get”command Controls execution of do and setvar commands This section provides you with the necessary steps to prepare and transmit WML content to the printer. There are two methods to send WML content to the printer - via the FTP protocol or using the “CISDFCRC16” command. Both methods are detailed below. The & (ampersand) character should not be used within the body of any Paragraph tag (

). If an ampersand is present within the body of a Paragraph tag, a WML-based menu may not function as expected. The ampersand character should NEVER be used within a paragraph tag for any of the printer's soft keys (P1, P2, etc.); doing so can render the menu inoperable. Create a Sample index.wml File: 1. Open a text editor. 2. Type (or copy/paste) the following text:

Hello World!!

3. Save this file with this name: index.wml. 1/31/18 Programming Guide P1099958-001 1467 1468 Wireless Markup Language (WML) Using WML Prepare the Printer to Receive WML Content via FTP: WML files – and any .nrd files used by a WML menu structure – must be stored in the printers E: memory location. While the files are first being transmitted to the printer, they should not be processed by the printers ZPL formatting engine. This can be done by configuring the SGD settings "ip.ftp.enable" and "ip.ftp.execute_file". The “ip.ftp.enable” setting allows the printer to receive content via the FTP protocol. The “ip.ftp.execute_file” setting controls the printers’ ability to process or not process commands received via the FTP protocol using the printers ZPL engine. By default, both settings are enabled. 1. Set "ip.ftp.enable" to "on" and the "ip.ftp.execute_file" to "off". To do this, send these commands to the printer: ! U1 setvar "ip.ftp.enable" "on" ! U1 setvar "ip.ftp.execute_file" "off" 2. To confirm these commands are correctly set, send the getvar command to check the settings. To do this, send these commands to the printer: ! U1 getvar "ip.ftp.enable" ! U1 getvar "ip.ftp.execute_file" If a terminal emulation program is being used, the following response should be returned from the printer. "on""off" Note • Only printers using the Internal 10/100 wired or Internal Wireless Plus & Wireless Plus print server can use the ! U1 setvar "ip.ftp.execute_file" "off" command. For other print servers, use the “CISDFCRC16” command method detailed below. Send WML Content to the Printer via FTP 1. Go to a command prompt. 2. At the command line prompt, type "ftp xxx.xxx.xxx.xxx", where xxx.xxx.xxx.xxx is the IP Address of the printer. For example, if the IP Address of the printer is 10.3.5.34, the command would be: ftp 10.3.5.34 3. Press Enter to connect to the printer. 4. Press Enter to log in to the printer. 5. At the FTP prompt, type "put index.wml" and press Enter. The index.wml file will be transferred to the printer’s E: memory. 6. Type "quit" to disconnect from the printer and exit FTP. P1099958-001 Programming Guide 1/31/18 Wireless Markup Language (WML) Using WML 7. Power cycle the printer. Once the printer completes the power cycle the display should look similar to this: Hello World!! For additional index.wml examples, see WML Examples on page 1472. Note • When a WML menu is resident on the printer, the standard menu system can be easily be accessed by holding down the Cancel and Setup/Exit buttons (on the ZM400) or the Cancel and Setup/Exit buttons (on Xi4) or the Select button (on GX) on the front panel while the printer powers up. Hold the buttons down until the PRINT READY message displays on the front panel. To return to the WML defined menu, reset the printer again. Important • When using the “ip.ftp.execute_file” command, be sure to reset the command back to “on” for use in production processes. If the setting is left in the “off” configuration, when label formats or firmware are sent to the printer via FTP they will not be processed as intended – and the E: memory location can quickly become full. Resetting the "ip.ftp.execute_file setting 1. To reset the "ip.ftp.execute_file" setting to the default state, send the following command to the printer. ! U1 setvar "ip.ftp.execute_file" "on" Sending WML Content to the Printer via the CISDFCRC16 Command: WML files – and any .nrd files used by a WML menu structure – must be stored in the printers E: memory location. While the files are first being transmitted to the printer, they should not be processed by the printers ZPL formatting engine. This can be done by using the CISDFCRC16 command. This command allows content to be written directly to the E: memory location, without being processed by the printers ZPL formatting engine. By using the CISDFCRC16 command, WML content can be transmitted to the printer via the Serial, USB or Parallel ports. For additional information on the CISDFCRC16 command, see page XX. 1/31/18 Programming Guide P1099958-001 1469 1470 Wireless Markup Language (WML) Using WML 1. To send the sample index.wml shown earlier, send the following commands to the printer: ! CISDFCRC16 0000 INDEX.WML 0000004E 0000

Hello World!!

2. Power cycle the printer. Once the printer completes the power cycle the display should look similar to this: Hello World!! For additional index.wml examples, see WML Examples on page 1472. Note • When a WML menu is resident on the printer, the standard menu system can be easily be accessed by holding down the Cancel and Setup/Exit buttons (on the ZM400) or Cancel and Setup/Exit buttons (on Xi4) on the front panel while the printer powers up. Hold the buttons down until the PRINT READY message displays on the front panel. To return to the WML defined menu, reset the printer again. Retrieving WML Content from the Printer using the file.type Command: It is possible to retrieve .wml file content from the printer using the "file.type" SGD command. To do this, open a terminal emulation connection to the printer and issue the command. For example, to retrieve the contents of the INDEX.WML file, use the following command: ! U1 setvar "file.type" "E:INDEX.WML" Note • The file.type command is case sensitive – if the file is stored on the printer as INDEX.WML, the command must use that same case. Additionally, you should note that .nrd files are treated as confidential – they cannot be retrieved from the printer. Using .nrd Files from WML Menus It is possible to have a WML menu send the contents of a ZPL or SGD file to the printer to be processed. In this way, the WML menu can leverage complex command scripts in response to the user pressing a single button on the printer. One possible use for this capability would be to create a series of “profile” files that contain all the settings necessary to reconfigure the printer for different uses. P1099958-001 Programming Guide 1/31/18 Wireless Markup Language (WML) Using WML The command files are known as “.nrd” files and are stored directly on the printers E: memory location. The .nrd files can be created using a standard text editor and sent to the printer via FTP or using the CISDFCRC16 command. Files should have an “.nrd” extension. Removing WML or .nrd Files from the Printer using the file.delete Command: It is possible to remove .wml files from the printer using the file.delete SGD command. To do this, open a terminal emulation connection to the printer and issue the command. For example, to remove the INDEX.WML file, use the following command: ! U1 do "file.delete" "E:INDEX.WML" 1/31/18 Programming Guide P1099958-001 1471 1472 Wireless Markup Language (WML) WML Examples WML Examples The examples shown below “build” from a simple, display-only, WML menu to a more complex interactive example that uses .nrd files containing ZPL commands. In the initial examples, all lines are explained in detail, in the later examples only the new concepts are covered in detail. Indenting is used in the examples below to improve readability, it is not necessary in actual use. Example 1 This example shows a basic WML menu structure that uses only fixed text. The content below shows the WML script plus numbered callouts and a table that identify the function of each of the WML tags. 1 2 3 4 5 6 7 1 2 3 4 5 6 7

Hello World!!

Beginning of the WML file. Beginning of the content to be displayed. The tag begins the definition of this menu. The

beings a paragraph, here displaying Hello World! The

ends the paragraph The
tag ends the definition of this menu. End of the content to be displayed. End of the WML file. In use, this WML menu looks similar to this: Hello World!! P1099958-001 Programming Guide 1/31/18 Wireless Markup Language (WML) WML Examples Example 2 This example demonstrates a WML menu structure that uses fixed text, plus two SGD commands to display the current printer settings for the Baud rate and ESSID settings on the printer. 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9

Baud: $(comm.baud)


AP: $(wlan.essid)

Beginning of the WML file. Beginning of the content to be displayed. The tag begins the definition of this menu. The

begins a paragraph. ‘Baud:’ displays the text Baud: $(comm.baud) retrieves and displays the printers’ current baud rate. The

ends the paragraph. A line break The

begins a paragraph. “AP:” displays the text AP: $(wlan.essid) retrieves and displays the printers’ current ESSID setting. The

ends the paragraph. The
tag ends the definition of this menu. End of the content to be displayed. End of the WML file In use, this WML menu looks similar to this: Baud: 9600 AP: 125 1/31/18 Programming Guide P1099958-001 1473 1474 Wireless Markup Language (WML) WML Examples Example 3 This example demonstrates a WML menu structure with two menus. Fixed text and SGD commands are used to display the current printer settings for the Baud rate and ESSID settings on menu one and the Firmware version and ZBI State on menu two. Through use of the ‘timer’ setting, the menu will automatically return to a defined WML card if no buttons are pressed after a set time period. The menu is configured to allow printer alerts (such as HEAD OPEN) to be displayed. 1 2 3

Baud: $(comm.baud)


AP: $(wlan.essid)



Firmware

5 6 7 8 9 10 11
12 13

Firmware:


$(appl.name)


ZBI State:


$(zbi.key)


Main

14 15 16 17 18 19
20
21 3 4 10 12 13 18 title="" ontimer="#main" alerts="on"> – enables the alerts display feature. – sets the timer to 50 (in 10th of a second increments).

Firmware

– defines a link to the “system” card. – enables the alerts display feature. – sets the timer to 50 (in 10th of a second increments).

Main

– defines a link to the “main” card. In use, these two WML menus look similar to this: P1099958-001 Programming Guide 1/31/18 Wireless Markup Language (WML) WML Examples Firmware: V53.17.2 ZBI State: Enabled Baud: 9600 AP: 125 Main Firmware Note • GX series printers can display four lines of text. If you are using a GX series printer, remove one line of text from each “card” to use this example. 1/31/18 Programming Guide P1099958-001 1475 1476 Wireless Markup Language (WML) WML Examples Example 4 This example demonstrates a WML menu structure that creates two menu screens and a link to a command file – “config.nrd” – that contains a ZPL command that will cause the unit to print a configuration label. 1 2 3

Baud: $(comm.baud)


AP: $(wlan.essid)



Firmware

5 6 7 8 9 10 11
12 13 14 15 16 17 18 1 9 0

Firmware:


$(appl.name)


ZBI State:


$(zbi.key)


Main Config

19 20

Printing


Config Label...



Please wait...


21 22 23 24 25 26
27
28 29 18

Main Config

• Defines two links, positioned next to each other - to the "main" and "config" WML cards 26 • Defines that the SGD command "file.run" should be used on the "e:config.nrd" file. • In this instance, the "e:config.nrd" file contains a single ZPL command - "~wc" P1099958-001 Programming Guide 1/31/18 Wireless Markup Language (WML) WML Examples In use, these WML menus look similar to this: Firmware: V53.17.2 ZBI State: Enabled Baud: 9600 AP: 125 Firmware Main Config Printing Config Label… Printing Please wait… 1 of 1… Note • GX series printers can display four lines of text. If you are using a GX series printer, remove one line of text from each “card” to use this example. Example 5 This example demonstrates a WML menu structure with three cards. The "darkness" card leverages WML and the SGD "print.tone" command to allow the user to both view and configure a setting. 1/31/18 Programming Guide P1099958-001 1477 1478 Wireless Markup Language (WML) WML Examples 1 2

Baud: $(comm.baud)


AP: $(wlan.essid)



Firmware

4 5 6 7 8 9 10 11
12 13

Firmware:


$(appl.name)


ZBI State:


$(zbi.key)


Main Darkness

14 15 16 17 18 19 20
21

Current: $(print.tone)


Change:


Change:



Main Config

22 23 24 25 26 27 28 29 30

Printing


Config Label...



Please wait...


31 32 33 34 35
36
P1099958-001 Programming Guide 1/31/18 Wireless Markup Language (WML) WML Examples 23

Change:

• Defines the fixed text "Change: "
• 24 Defines selecting the word "Up" as equal to sending the value "+1.0" for the SGD command "print.tone". In this case, this increases the setting by 1.0.

Change:

• Defines the fixed text "Change: " do type="accept" label="Down">
• Defines selecting the word "Down" as equal to sending the value "-1.0" for the SGD command "print.tone". In this case, this decreases the setting by 1.0. In use, these WML menus look similar to this: Firmware: V53.17.2 ZBI State: Enabled Baud: 9600 AP: 125 Firmware Main Darkness Printing Config Label… Printing Please wait… 1 of 1… Note • GX series printers can display four lines of text. If you are using a GX series printer, remove one line of text from each “card” to use this example. 1/31/18 Programming Guide P1099958-001 1479 1480 Wireless Markup Language (WML) Troubleshooting Scenarios Troubleshooting Scenarios Problem Scenario Corrective Actions I loaded a WML menu structure on the printer, but the Factory menu structure is displaying. • • • • • • Some characters in the menu are cut off or some lines are not displaying at all. • My WML menu structure is displaying, but one of the “cards” is not displaying or is unreachable. • • • • My WML menu structure uses SGD commands to display current settings, but the settings are not displaying. • • • • • P1099958-001 "The WML files may have syntax errors. Reconfirm that the correct syntax has been used. When creating WML files it is recommended to start with a simple structure, validate that it's functional and build additional content onto the "known good" example "Power cycle the printer and watch the start-up sequence - if a "WML ERROR" message displays during the start-up, the index.wml file has a syntax error that needs to be corrected. "The index.wml file may not have been successfully transferred to the printer. Use a terminal emulation program and the following command to retrieve the index.wml file to the PC for examination: ! U1 setvar "file.type" "E:INDEX.WML" "The index.wml file may not be present in the E: memory location. Validate that the file is present and correctly named. "Confirm that straight quotes were used in all instances where the quote character was used (use the " character - not " or ?). SGD commands require the use of the straight quote. "Confirm that the "WML Menu Cancel" buttons, (Setup and Cancel or Cancel and Setup/Exit or Select) were not held down during start up. These actions will cause the standard menu to display Characters that extend past the width of the display are truncated, reposition the field as needed. Check that you have not exceeded that maximum number of lines the display allows (5 lines on ZM and Xi4 series units, 4 lines on the GX series). The missing "card" may not have been linked to from any of the visible "cards". Review you WML content to ensure that the correct links exist. The WML files may have syntax errors, reconfirm that the correct syntax has been used. When creating WML files it is recommended to start with a simple structure, validate that it’s functional and build additional content onto a known good example. If the missing card content is contained in a separate .wml file, confirm that the necessary .wml files have been transferred to the printer. Validate that the correct syntax was used for the SGD command. Check the manual page for the command being used. Confirm that the command is supported by the printer & firmware. Use a terminal emulation program to send just the command being used to validate it functions outside the WML menu structure. Confirm that straight quotes were used in all instances where the quote character was used (use the " character – not “ or ̋ ). SGD commands require the use of the straight quote. Characters that extend past the width of the display are truncated, reposition the field as needed. Check that you have not exceeded that maximum number of lines the display allows (5 on ZM and Xi4 series units). Programming Guide 1/31/18 Wireless Markup Language (WML) Troubleshooting Scenarios Problem Scenario Corrective Actions My WML menu structure used SGD commands to allow the user to alter printer settings, but the settings are not getting changed as expected. • • • • My WML menu structure uses .nrd files to send commands to the printers ZPL or SGD engine, but the commands don’t seem to be getting sent when the user selects the on-screen link for the action. • • • • I am using the CISDFCRC16 command to transfer files, but the files are either not being transferred to the printer or are showing up with a zero (0) byte size. • • • • 1/31/18 Validate that the value being used in the value= parameter of the tag is supported by the SGD command. Validate that the correct syntax was used for the SGD command. Check the manual page for the command being used. Confirm that the command is supported by the printer & firmware. Use a terminal emulation program to send just the command being used to validate it functions outside the WML menu structure. Confirm that straight quotes were used in all instances where the quote character was used (use the " character – not “ or ? ). SGD commands require the use of the straight quote. Confirm that the .nrd files are present in E: memory and named as expected. Resend or rename the files if necessary. Confirm that the WML menu structure is using the correct file name(s). Confirm that the commands in the files work as expected, independently of the WML menu or .nrd file. Validate that ZPL and SGD commands have not been interlaced. Confirm that the Hexadecimal value used for the File Size parameter is correct. This value must be an eight digit file size specified in hexadecimal which indicates the number of bytes in the section of the command. See the full manual page on the CISDFCRC16 command for additional details. Validate that the CRC and Checksum parameters are correct (using the "0000" value for these parameters is recommended). Confirm that the WML file name and extension are in upper case characters. Confirm that the exclamation mark (!) was included before the command name ("! CISDFCRC16"). Programming Guide P1099958-001 1481 1482 Wireless Markup Language (WML) Troubleshooting Scenarios P1099958-001 Programming Guide 1/31/18 Using Weblink Weblink is a feature of Zebra Link-OS™ printers. Using a secure connection, the Weblink feature allows the printer to directly connect to an internet based server, for the purpose of either sending information to the server or receiving from the server. Weblink can transport data securely through a firewall. Contents When Should Weblink be Used? ............................................................................................. 1483 Configuring Weblink ................................................................................................................ 1484 Basic Configuration.............................................................................................................. 1484 When a Proxy Server is Part of the Network Configuration ................................................ 1484 When HTTP Authentication is Necessary ............................................................................ 1485 Additional Firewall Configuration........................................................................................ 1485 Difference Between Conn1 and Conn2 ............................................................................... 1486 Enable Logging..................................................................................................................... 1486 Navigating the Log Output................................................................................................... 1486 SSL/TLS Certificate Errors ........................................................................................................ 1487 Other Typical Errors................................................................................................................. 1489 Troubleshooting ...................................................................................................................... 1490 HTTP Messages........................................................................................................................ 1491 When Should Weblink be Used? Weblink can transport any information related to device management, transactional data and information to be processed at a later time. It can be used as part of an overall cost reduction solution that leverages web technologies. Typically, an application called a ‘servlet’ is created and run on the internet based server, waiting for printers to connect and interact with the servlet. These servlet applications can provide a variety of functions – from sending operating system updates to the printer, to receiving data from the printer and, in turn, using that data to trigger events in other systems. For example, a solution could be created that would feature the printer consuming data from a Bluetooth® scanner connected to the printer – with that scanned data then being sent from the printer to the internet-based servlet. The servlet would then seek out additional details related to the scanned data, format a document, and then send it to the printer for printing. 1/31/18 Programming Guide P1099958-001 1484 Using Weblink Configuring Weblink Configuring Weblink When any WebLink setting (with the exception of the logging settings) is adjusted either via SNMP, SGD, or JSON it is required that the printer be reset before the new value takes effect. The weblink.printer_reset_required setting will be set to "yes" if there are any settings that have been modified that require a printer reset. Basic Configuration To determine how much configuration is necessary the following questions should be considered: 1. Is the remote server the printer is attempting to connect to outside the corporate firewall? 2. Does the firewall require a username and password to access the remote server? 3. Does the printer require a proxy server to access the remote server? 4. Does the firewall permit HTTPS connections initially or does the printer need to connect via HTTP first? If the answer to any of these questions is ‘yes’, then more than the basic configuration may be necessary. Depending upon the network environment that the printer is in, accessing the remote server may only require that a few settings be set. The minimum requirement is that the URL for the remote server be set. For simplicity, assume that only conn1 is being used (this is the typical scenario). See also Difference Between Conn1 and Conn2 on page 1486. To configure the printer to connect to the remote server: a. Set weblink.ip.conn1.location to the URL of the remote server. The URL must conform to the standards described in RFC3986 (http://www.ietf.org/rfc/rfc3986.txt). For example, if the remote servlet’s full URL is https://www.examplecorpinc.com/zebra/weblink/ Configure the location setting as follows: ! U1 setvar "weblink.ip.conn1.location" "https://www.examplecorpinc.com/zebra/weblink/" b. Reset the printer. When the printer has an IP address, it will attempt to connect to the remote server. In the event that the remote server does not indicate that the printer has connected, logging may need to be enabled in order to determine the failure. When a Proxy Server is Part of the Network Configuration If a proxy server must be used to access the remote server, the printer’s proxy setting must be set to connect to the server. There are typically four properties associated with a proxy server: • The proxy server scheme: HTTP or HTTPS • The proxy server address • The proxy server port (optional) • The username and password for the proxy (optional) To supply the address of the proxy server (assuming a default port and no username/password), configure the proxy setting as follows: ! U1 setvar "weblink.ip.conn1.proxy" "https://my.internal.proxy/" P1099958-001 Programming Guide 1/31/18 Using Weblink Configuring Weblink In this scenario the proxy address is my.internal.proxy and the scheme is HTTPS. The default port (1080) will be used. No username or password will be used to authenticate with the proxy. To specify an alternate port configure the proxy as follows: ! U1 setvar "weblink.ip.conn1.proxy" "https://my.internal.proxy:3128/" To specify a username and password configure the proxy as follows: ! U1 setvar "weblink.ip.conn1.proxy" "https://user:pass@my.internal.proxy/" The proxy username, password, and the rest of the URL must follow the rules specified in RFC3986 (http://www.ietf.org/rfc/rfc3986.txt). When HTTP Authentication is Necessary Use this configuration when, for example, a firewall requires a username and/or password. It may be necessary to specify a username and password to various routers and servers along the path to the remote server. Typically when using a browser to access the server the authentication request will be presented in the form of a dialog window that asks for the username and password. Since the printer’s connection to the remote server is headless and non-interactive, the Weblink configuration allows a user to enter in a server name/username/password triplet. The triplet will be used in the event that the printer is presented with an authentication request (for example, this typically is requested via the HTTP/1.1 401 Unauthorized request). To specify authentication credentials, issue the following: ! U1 setvar "weblink.ip.conn1.authentication.add" "servername.com username password" In this scenario the server requesting authentication is servername.com. The username and password to be supplied are ‘username’ and ‘password’. The server name can be either a DNS name or an IP address. The username and password cannot be retrieved from SGD, SNMP, or JSON once added. Only the server name will be returned. More than one set of authentication triplets can be added. The printer will only use the credentials as they are needed. In other words, the printer will only use the credentials for servername.com if it receives a HTTP/1.1 401 Unauthorized request from servername.com. To see what authentication triplets are specified issue: ! U1 getvar "weblink.ip.conn1.authentication.entries" To remove authentication credentials issue the following: ! U1 setvar "weblink.ip.conn1.authentication.remove" "servername.com" Additional Firewall Configuration Some firewalls do not allow the first connection attempt for a device to be HTTPS or require new connections periodically to keep the initial connections intact. The weblink test branch was provided to address issues that typically arise because the printer is an unattended device. To configure the printer to attempt an HTTP connection anytime the HTTPS connection drops : ! U1 setvar "weblink.ip.conn1.test.location" "http://www.zebra.com/apps/linktest" ! U1 setvar "weblink.ip.conn1.test.test_on" "failure" 1/31/18 Programming Guide P1099958-001 1485 1486 Using Weblink Configuring Weblink The weblink.ip.conn1.test.location can be any valid HTTP address. The default uses a link provided by Zebra that exists for no other purpose than to help developers test their connections to the internet. Setting weblink.ip.conn1.test.test_on to interval or both will force the printer to attempt a connection to the URL in location every weblink.ip.conn1.test.retry_interval seconds (default is 900 seconds/15 minutes). To configure the printer to try an HTTP connection periodically, independent of the HTTPS success: ! U1 setvar "weblink.ip.conn1.test.location" "http://www.zebra.com/apps/linktest" ! U1 setvar "weblink.ip.conn1.test.test_on" "interval" ! U1 setvar "weblink.ip.conn1.test.retry_interval" "900" Difference Between Conn1 and Conn2 The printer has the ability to connect to two different servers. Connection 1 (conn1) and Connection 2 (conn2) are identical in every way in terms of their configuration. It is expected that conn2 will typically be left unmodified unless a user has an alternate server that they wish to use to configure the printer. A typical scenario in which both connections would be used is if a user wishes to have the printer connect to both a configuration server and a data source. Enable Logging If your printer has trouble connecting, you may wish to enable logging. By default logging is not enabled in order to reduce the amount of memory consumed when the Weblink feature is enabled. It is recommended that once the Weblink feature is configured properly and is performing as expected that the logging be disabled or that a very small (less than 100) number of logging entries be permitted. To enable logging, weblink.logging.max_entries needs to be modified. By default it is set to 0, which indicates that no messages are logged. When attempting to troubleshoot connection issues it is recommended that max_entries be set to at least 100 entries. Setting max_entries to 100 means that the 100 newest logging entries will be present in weblink.logging.entries as older entries are discarded once the maximum number of entries is reached. ! U1 setvar "weblink.logging.max_entries" "100" The logging settings are atypical to the Weblink settings as they do not require the printer to be reset before taking effect. This does not mean that previous logging message that would have been logged will appear when the max_entries setting is changed from 0 to a greater value. It means that any new logging messages will be logged from that point forward. Issue the following command to clear any log entries currently in the weblink.logging.entries buffer. ! U1 do "weblink.logging.clear" "" Navigating the Log Output The log will contain useful information, even in the scenario where the printer successfully connects to the remote server. This section explains how to read the log and highlights some of the key entries that will help to determine if the connection was successful. A typical log entry looks as follows: [12-04-2012 14:57:10.625] [conn1.1] Attempting connection to https://www.examplecorpinc.com/zebra/weblink/ P1099958-001 Programming Guide 1/31/18 Using Weblink SSL/TLS Certificate Errors The first column is the date and time that the event occurred. The format of the date and time matches the format of rtc.date and rtc.time. The time, however, also includes the milliseconds to aid in troubleshooting network latency concerns. Note • For printers that do not have a battery to store the Real Time Clock (RTC) value, the date will be restored to the default value upon a power cycle. The default value depends upon how the rtc.date SGD is managed. If it has never been set then it will default to the firmware build date (the value in appl.date). Otherwise, the value in rtc.date will default to the value that it was last set to. This does not mean the value of the rtc.date when it was power cycled. It means that when a user sets rtc.date that becomes the new default value. If the printer has a battery then the rtc.date is never default and continues to track the date as expected. The second column indicates the connection name and channel that the entries are associated with. The connection name will match the weblink branch that was configured with the respective URL (for example, conn1 or conn2). The channel number indicates which channel on the respective connection the entries corresponds to. Note • Channels are additional connections that are requested by the server when the server needs to perform a specific operation that cannot be done on the channel(s) currently open. Typically only the RAW channel is open which operates similar to the RAW TCP port. It is typical to see two channels opened, the main channel and the RAW channel. The third column is the actual message that contains information about what occurred in the printer at the corresponding time in column one. In the above example the printer was initiating the connection to the URL specified in weblink.ip.conn1.location. Review the section titled SSL/TLS Certificate Errors on page 1487 to understand what it means when certain logging messages/errors appear in the log. SSL/TLS Certificate Errors Secure connections to the remote server present the opportunity for several errors when attempting to connect. The errors typically involve the certificates used when connecting via SSL or TLS. This section highlights some of the most common issues involving the certificates. Error Cause / Solution "SSL certificate problem: self signed certificate in certificate chain" One of the situations that prevent a successful connection is not having the correct Certificate Authority certificates installed on the remote server. Zebra requires that the Zebra Root Certificate Authority and the Zebra Subordinate Certificate Authority be installed on the remote server. This error typically indicates that only one of the Zebra Certificate Authority certificates is installed on the remote server. Important • When using certificate files, the time on the printer must be set correctly for the websocket connection to succeed, as the time is used in the certificate validation. 1/31/18 Programming Guide P1099958-001 1487 1488 Using Weblink SSL/TLS Certificate Errors Error Cause / Solution "SSL certificate problem: unable to get local issuer certificate" One of the situations that prevent a successful connection is not having the correct Certificate Authority certificates installed on the remote server. Zebra requires that the Zebra Root Certificate Authority and the Zebra Subordinate Certificate Authority be installed on the remote server. This error typically indicates that neither of the Zebra Certificate Authority certificates are installed on the remote server. Important • When using certificate files, the time on the printer must be set correctly for the websocket connection to succeed, as the time is used in the certificate validation. "SSL certificate problem: certificate has expired" This error indicates that the remote server’s certificate has expired. This is typically an indication that the printer’s date and/or time are incorrect as the Zebra certificates are typically issued for long durations. Check that rtc.date and rtc.time are set correctly. Note • For printers that do not have a battery to store the Real Time Clock (RTC) value, the date will be restored to the default value upon a power cycle. The default value depends upon how the rtc.date SGD is managed. If it has never been set then it will default to the firmware build date (the value in appl.date). Otherwise, the value in rtc.date will default to the value that it was last set to. This does not mean the value of the rtc.date when it was power cycled. It means that when a user sets rtc.date that becomes the new default value. If the printer has a battery then the rtc.date is never default and continues to track the date as expected. Important • When using certificate files, the time on the printer must be set correctly for the websocket connection to succeed, as the time is used in the certificate validation. "SSL certificate problem: certificate is not yet valid" P1099958-001 This error indicates that the remote server’s certificate was incorrectly issued or that the printer’s date and/or time are incorrect. Check that the printer’s date and time (rtc.date and rtc.time) are set correctly and that the certificate’s start and expiration date are valid. Note • For printers that do not have a battery to store the Real Time Clock (RTC) value, the date will be restored to the default value upon a power cycle. The default value depends upon how the rtc.date SGD is managed. If it has never been set then it will default to the firmware build date (the value in appl.date). Otherwise, the value in rtc.date will default to the value that it was last set to. This does not mean the value of the rtc.date when it was power cycled. It means that when a user sets rtc.date that becomes the new default value. If the printer has a battery then the rtc.date is never default and continues to track the date as expected. Programming Guide 1/31/18 Using Weblink Other Typical Errors Error Cause / Solution "subjectAltName does not match 1.2.3.4" Part of the certificate validation process involves making sure that the remote server is who it claims to be. A certificate can be created to validate against several aliases/DNS names. Typically the certificate will not contain the IP address of the server as IP addresses are subject to change. When specifying the remote server’s URL via weblink.ip.conn1.location be sure to specify one of the DNS aliases listed in the certificate. The valid names will be listed either under the Common Name (CN) field and/or the subjectAltName (SAN or Subject Alternate Name) field within the certificate. For example, the certificate may have the CN set to 'examplecorpinc' and the SAN set to 'examplecorpinc.com' or 'alias.for.examplecorpinc.com'. Any of the CN or SAN names can be used, but, as the IP address is not listed in the CN or SAN it cannot. It is not recommended that the IP address be part of the SAN if a DNS name is available to avoid connection issues that may arise due to subnet change or DHCP lease expirations, etc. "SSL certificate subject name 'examplecorpinc.com' does not match target host name '1.2.3.4'" Important • When using certificate files, the time on the printer must be set correctly for the websocket connection to succeed, as the time is used in the certificate validation. "Unknown SSL protocol error in connection to ...” When this message is seen it means that the remote server’s SSL/TLS configuration is incorrect. Refer to Troubleshooting on page 1490 to ensure the server and printer are both configured correctly. I do not see any of these errors, but the printer still does not connect. Refer to Troubleshooting on page 1490 to ensure the server and printer are both configured correctly. Other Typical Errors While SSL/TLS connection errors are the most common, there are issues that can arise that prevent a successful connection. This section highlights the most common issues. Error Cause / Solution "Read failed with an unexpected error" This message typically indicates that connection to the remote server was lost. The connection can either be lost due to the server powering off or resetting, the firewall or proxy server shutting down the connection, or because the remote server gracefully requests that the connection be discontinued. Note • After 60 seconds of inactivity on the connection the printer will attempt to contact the server via a TCP Keepalive. If the connection is still present the server will respond and the connection will remain open. After 10 successive failed attempts to contact the remote the printer will assume the connection is severed and close the connection. The printer will resume it's attempt to connect to the remote server so that when the server comes back online the printer will re-establish communication. 1/31/18 Programming Guide P1099958-001 1489 1490 Using Weblink Troubleshooting Error Cause / Solution "Failed to connect (SP = #, CI = #, UW = #, AC = #, PC = #)" If this error is seen one or more of the ‘#’ values will be set to 0. This is an indication of an incorrect configuration of the remote server. Ensure that the remote server is setup according to the Servlet configuration in the Zebra Link-OS SDK documentation. This typically indicates an incorrect version of the remote Application Server (for example, Apache/Tomcat version may be incorrect). If this issue persists contact Zebra Technical Support.. See Contacts on page 9 and provide the output of the following command (ensure that logging is enabled and that this error appears within the entries). ! U1 getvar "weblink" Troubleshooting Whenever troubleshooting a connection issue, the following questions should be answered to ensure the configuration is correct. 1. Is the printer connected correctly via Wireless or Ethernet? 2. Does the printer have a valid IP address? 3. Can I ping the printer’s IP address from a device on the same network as the printer? 4. Is the remote server URL in weblink.ip.conn1.location correct and does it point to the remote server that is configured for weblink functionality? 5. Can you connect to the location defined in the weblink.ip.conn1.location setting via a browser? 6. Is the remote server I am attempting to connect to outside the corporate firewall? 7. Can the URL specified in weblink.ip.conn1.test.location be accessed? If this is the case, talk with your administrator about altering restrictions for accessing HTTPS connections. 8. Does the firewall require a username and password to access the remote server? 9. Do I require a proxy server to access the remote server? 10. Is the proxy server port the default (1080) or another port (for example, 3128 for the Linux Squid proxy)? Note • If using the Linux Proxy Server Squid, and you are having trouble connecting, note that it may be configured to: a. disallow POST messages b. only operate in HTTP/1.0 mode 3 c. disallow SSL connections. Refer to your Linux Squid documentation for complete details. 11. Does the firewall permit HTTPS connections initially or do I need to connect via HTTP first? P1099958-001 Programming Guide 1/31/18 Using Weblink HTTP Messages 12. Is the remote server configured to use SSL v3.0 or TLS 1.0? TLS1.0 is recommended, but SSL v3.0 is also supported. Versions prior to SSL v3.0 and later than TLS v1.0 are not currently supported. 13. Are the Zebra Certificate Authority Certificates correctly installed on the remote server? 14. Was the server’s certificate issued by Zebra and is it signed by the Zebra Certificate Authority? 15. Has the server’s certificate expired? 16. Is the printer’s date and time within the issue and expired period of the server’s certificate? 17. Does the value in weblink.ip.conn1.location match either the Common Name or one of the names listed in the Subject Alternate Name of the remote server’s certificate? 18. Is the proxy server configured correctly and does the respective proxy server allow HTTPS connections via the HTTP CONNECT method? 19. Are there any HTTP authentication attempts when trying to connect that fail? 20. Are there any HTTP/1.1 4xx messages in the log? If your connection issues persist and the solutions in this document do not help, contact Zebra Tech Support and provide the output of the following command. Ensure that logging is enabled and that the error(s) appear within the entries) ! U1 getvar "weblink" HTTP Messages Message Cause / Solution HTTP/1.1 100 Continue This indicates that the server and printer have begun communicating and is often seen in place of HTTP/1.1 200 OK. HTTP/1.1 101 Switching Protocols This indicates that the basic connection to the server worked and the protocol is being switched to a more efficient protocol for data transfer. HTTP/1.1 200 OK This indicates that an HTTP GET or HTTP POST was successful. HTTP/1.1 30x Moved/Redirect/etc This indicates that the URL specified has moved or that the firewall redirected the printer to another location (typically this is done to authenticate a user in a transparent proxy configuration). HTTP/1.1 401 Unauthorized This indicates that the printer either needs to authenticate with the server or failed to authenticate with the remote server (or server/router along the route to the server). HTTP/1.1 403 Forbidden This typically means that the authentication was provided and valid, however, the user does not have access to the requested resource. HTTP/1.1 404 Not Found This indicates that the remote URL provided points to an invalid location on the server. This does indicate, however, that the server name is valid. Just the path after the domain name is invalid. 1/31/18 Programming Guide P1099958-001 1491 1492 Using Weblink HTTP Messages P1099958-001 Programming Guide 1/31/18 HTTP POST Alerts Link-OS printers can issue alerts to a web server that is listening for HTTP POST requests. The advantage of an HTTP POST alert over the other destinations available (for example, TCP, UDP, SNMP) is that HTTP is firewall friendly. Contents Configuring Alerts Where the Alert Destination is HTTP POST ............................................................................. 1493 How to Parse via PHP .............................................................................................................. 1495 Basic Configuration.................................................................................................................. 1495 When a Proxy Server is Part of the Network Configuration ................................................ 1496 When HTTP Authentication is Necessary ............................................................................ 1497 Enabling Logging...................................................................................................................... 1497 Navigating the Log Output ...................................................................................................... 1498 Understanding Errors in the Alerts HTTP Log .......................................................................... 1498 Troubleshooting ...................................................................................................................... 1498 HTTP Messages........................................................................................................................ 1499 Configuring Alerts Where the Alert Destination is HTTP POST Any setting in the alerts.http branch that is set will take effect for any HTTP POST alerts that occur from that point forward. A printer reset is not required for the settings to take effect. If the server is configured to accept and process HTTP POST messages either via a CGI script or a server-side script such as PHP or ASP then the alert can be forwarded to that server from the printer. The printer will send the alert using the multipart/form-data Content-Type. This allows any type of data, including binary data, to be sent via the POST. The POST will support two variables within the body of the POST: • alertMsg – This is the alert details and the content follows the format of a standard alert when it is issued over one of the other alert destinations (for example, serial, USB, TCP, etc.). 1/31/18 Programming Guide P1099958-001 1494 HTTP POST Alerts Configuring Alerts Where the Alert Destination is HTTP POST • uniqueId – The unique id of the printer. This matches the value in device.unique_id. The HTTP POST request will look as follows (sent when the printer was paused) POST /http_post/alert.php HTTP/1.1 Host: 10.3.4.58 Accept: */* Connection: close Content-Length: 281 Expect: 100-continue Content-Type: multipart/form-data; boundary=---------------------------350c75835f46 ------------------------------350c75835f46 Content-Disposition: form-data; name="alertMsg" ALERT%3A%20PRINTER%20PAUSED ------------------------------350c75835f46 Content-Disposition: form-data; name="uniqueId" XXQLJ120900310 ------------------------------350c75835f46-Important • The message is using HTTP/1.1 and therefore HTTP/1.1 header fields. This is important because some older proxy servers do not handle these fields gracefully and may block the POST message. It is important to note that the message is using HTTP/1.1 and therefore HTTP/1.1 header fields. This is important because some older proxy servers do not handle these fields gracefully and may block the POST message. P1099958-001 Programming Guide 1/31/18 HTTP POST Alerts How to Parse via PHP How to Parse via PHP The following example shows how to parse the POST message. It does not, however, show how to use this information on other pages, store the results in a database, report this to another device on the domain, etc. The response in this example will be sent back to the printer, but it will be ignored by the printer. If you wish to see the response you can use a packet sniffing tool such as Wireshark. \s+(.+))|([\w|\s]+))/", $alertMsg, $matches)== 1) { $alertType = $matches[1]; if ($matches[5] $alertCondition $alertSgdName = $alertSgdData = } else { $alertCondition } } === "SGD SET") { = $matches[5]; htmlspecialchars($matches[6]); htmlspecialchars($matches[7]); = $matches[3]; echo "

Alert Received


\r\n"; echo "

Original Message = $alertMsg


\r\n"; echo "

Alert Type = $alertType


\r\n"; echo "

Alert Condition = $alertCondition


\r\n"; echo "

SGD Name = $alertSgdName


\r\n"; echo"

SGD Value = $alertSgdData


\r\n"; ?> Basic Configuration To determine how much configuration is necessary, consider the following questions: • Is the remote server that the printer is attempting to connect to outside of the corporate firewall? • Does the firewall require a username and password to access the remote server? • Does the printer require a proxy server to access the remote server? If the answer to any of these questions is ‘yes’, then more than the basic configuration may be necessary. Depending upon the network environment that the printer is in access the remote server may only require that a few settings be set. To configure an alert to be sent via HTTP POST to a remote server , issue the following 1/31/18 Programming Guide P1099958-001 1495 1496 HTTP POST Alerts Basic Configuration command: ! U1 setvar "alerts.add" "PRINTER PAUSED,HTTPPOST,Y,Y,http://www.examplecorpinc.com/alerts.php,0,N," The above command will issue an HTTP POST alert to the remote server (http://www.examplecorpinc.com/alerts.php) when the printer is paused or un-paused. • The first parameter indicates the condition to monitor. A list of available alert conditions can be viewed by issuing: ! U1 getvar "alerts.conditions" • The second parameter indicates the alert destination. For the purposes of this section HTTPPOST is the preferred destination. A list of available alert destinations can be viewed by issuing: ! U1 getvar "alerts.destinations" • The third and fourth parameters are ‘Send on Set’ and ‘Send on Clear’, respectively. They can be either "Y" for monitor the alert or "N" for don’t monitor the alert. If both are set to "N" then the alert will not be added or it will be deleted if the alert already existed. To view which alerts already exist issue: ! U1 getvar "alerts.configured" • The fifth parameter holds the URL for the server that will be sent the HTTP POST. It holds a maximum of 255 characters for the URL and it must conform to the URI standards described in RFC3986 (http://www.ietf.org/rfc/rfc3986.txt). • The sixth parameter should be set to 0 for HTTP POST alerts. • The seventh parameter and eighth parameter will not be covered in this section and should be set as indicated in the description above. See the SGD documentation for details on these two parameters. When a Proxy Server is Part of the Network Configuration If a proxy server must be used to access the remote server the printer’s proxy setting must be set to point to the server. There are typically four properties associated with a proxy server. • The proxy server scheme: HTTP is the only supported scheme • The proxy server address • The proxy server port (optional) • The username and password for the proxy (optional) To supply the address of the proxy server, assuming a default port and no username/password, configure the proxy setting as follows: ! U1 setvar "alerts.http.proxy" "http://my.internal.proxy/" In this scenario, the proxy address is my.internal.proxy and the scheme is HTTP. The default port (1080) will be used. No username or password will be used to authenticate with the proxy. To specify an alternate port, configure the proxy as follows ! U1 setvar "alerts.http.proxy" "http://my.internal.proxy:3128/" To specify a username and password, configure the proxy as follows: ! U1 setvar "alerts.http.proxy" "http://user:pass@my.internal.proxy/" The proxy username, password, and the rest of the URL must follow the rules specified in RFC3986 (http://www.ietf.org/rfc/rfc3986.txt). P1099958-001 Programming Guide 1/31/18 HTTP POST Alerts Enabling Logging When HTTP Authentication is Necessary Use this configuration when, for example, a firewall requires a username and/or password. It may be necessary to specify a username and password to various routers and servers along the path to the remote server. Typically when using a browser to access the server the authentication request will be presented in the form of a dialog window that asks for the username and password. Because the printer’s connection to the remote server is headless and non-interactive, the alert http configuration allows a user to enter in a server name, username, password triplet. The triplet will be used in the event that the printer is presented with an authentication request (for example, this typically is requested via the HTTP/1.1 401 Unauthorized request). To specify authentication credentials issue the following: ! U1 setvar "alerts.http.authentication.add" "servername.com username password" In this scenario the server requesting authentication is servername.com. The username and password to be supplied are ‘username’ and ‘password’. The server name can be either a DNS name or an IP address. The username and password cannot be retrieved from SGD, SNMP, or JSON once added. Only the server name will be returned. More than one set of authentication triplets can be added. The printer will only use the credentials as they are needed. In other words, the printer will only use the credentials for servername.com if it receives a HTTP/1.1 401 Unauthorized request from servername.com. To see what authentication triplets are specified issue: ! U1 getvar "alerts.http.authentication.entries" To remove authentication credentials issue the following: ! U1 setvar "alerts.http.authentication.remove" "servername.com" Enabling Logging If your printer has trouble connecting, you may wish to enable logging. By default, logging is not enabled in order to reduce the amount of memory consumed when the HTTP alert feature is enabled. It is recommended that once the alert HTTP feature is configured properly and is performing as expected that the logging be disabled or that a very small (less than 100) number of logging entries be permitted. To enable logging, alerts.http.logging.max_entries needs to be modified. By default it is set to 0, which indicates that no messages are logged. When attempting to troubleshoot connection issues it is recommended that max_entries be set to at least 100 entries. Setting max_entries to 100 means that the 100 newest logging entries will be present in alerts.http.logging.entries as older entries are discarded once the maximum number of entries is reached. ! U1 setvar "alerts.http.logging.max_entries" "100" The logging settings do not require the printer to be reset before taking effect. This does not mean that previous logging message that would have been logged will appear when the max_entries setting is changed from 0 to a greater value. It means that any new logging messages will be logged from that point forward. Issue the following command to clear any log entries currently in the alerts.http.logging.entries buffer. ! U1 do "alerts.http.logging.clear" "" 1/31/18 Programming Guide P1099958-001 1497 1498 HTTP POST Alerts Navigating the Log Output Navigating the Log Output The log can contain much information, even in the scenario where the printer successfully connects to the remote server. This section explains how to read the log and highlights some of the key entries that will help to determine if the connection was successful. A typical log entry looks as follows: [12-04-2012 14:57:10.625] [http] Attempting connection to http://www.examplecorpinc.com/alerts.php The first column is the date and time that the event occurred. The format of the date and time matches the format of rtc.date and rtc.time. The time, however, also includes the milliseconds to aid in troubleshooting network latency concerns. The second column indicates the connection name, which is currently always set to ‘http’. The third column is the actual message that contains information about what occurred in the printer at the corresponding time in column one. In the above example the printer was attempting to POST the alert to the connection to the URL specified in the configured alert. Review Understanding Errors in the Alerts HTTP Log on page 1498 to understand what it means when certain logging messages/errors appear in the log. Understanding Errors in the Alerts HTTP Log Error Cause / Solution Couldn’t connect to host This could mean any number of things occurred that prevented the printer from connecting. This message is always present when the connection to the remote failed and is typically accompanied by an HTTP Response Code. See HTTP Messages on page 1499 for the possible HTTP Response Codes and their meaning. If this issue persists contact Zebra Technical Support.. See Contacts on page 9 and provide the output of the following command (ensure that logging is enabled and that this error appears within the entries). ! U1 getvar "alerts" Troubleshooting Whenever troubleshooting a connection issue, the following questions should be answered to ensure the configuration is correct. 1. Is the printer connected correctly via Wireless or Ethernet? 2. Does the printer have a valid IP address? 3. Can I ping the printer’s IP address from a device on the same network as the printer? 4. Is the remote server URL listed in the output of the alerts.configured SGD or ~HU command output correct, and is the URL of a server iserver that is configured to accept HTTP POST requests? 5. Can you connect to the URL via a browser? P1099958-001 Programming Guide 1/31/18 HTTP POST Alerts HTTP Messages 6. Is the remote server I am attempting to connect to outside the corporate firewall? 7. Does the firewall require a username and password to access the remote server? 8. Does the printer require a proxy server to access the remote server? 9. Is the proxy server port the default (1080) or another portt? 10. Is the proxy server configured to allow HTTP POST messages? 11. Is the proxy server HTTP 1.1 compliant and does it allow HTTP 100 Continue messages? For example, the Squid Proxy Server versions before v3.2 do not fully support HTTP 1.1 requests and may block any HTTP POST attempts from the printer. Note • If using the Linux Proxy Server Squid, and you are having trouble connecting, note that it may be configured to: a. disallow POST messages b. only operate in HTTP/1.0 mode 3 c. disallow SSL connections. Refer to your Linux Squid documentation for complete details. 12. Are there any HTTP authentication attempts when trying to connect that fail? Are there any HTTP/1.1 4xx messages in the log? If your connection issues persist and the solutions in this document do not help, contact Zebra Technical Support.. See Contacts on page 9 and provide the output of the following command (ensure that logging is enabled and that this error appears within the entries). ! U1 getvar "alerts" HTTP Messages Message Cause / Solution HTTP/1.1 100 Continue This indicates that the server and printer have begun communicating and is often seen in place of HTTP/1.1 200 OK. HTTP/1.1 200 OK This indicates that the HTTP POST was successful. HTTP/1.1 30x Moved/Redirect/etc This indicates that the URL specified has moved or that the firewall redirected the printer to another location (typically this is done to authenticate a user in a transparent proxy configuration). HTTP/1.1 401 Unauthorized This indicates that the printer either needs to authenticate with the server or failed to authenticate with the remote server (or server/router along the route to the server). HTTP/1.1 403 Forbidden This typically means that the authentication was provided and valid, however, the user does not have access to the requested resource. HTTP/1.1 404 Not Found This indicates that the remote URL provided points to an invalid location on the server. This does indicate, however, that the server name is valid. Just the path after the domain name is invalid. 1/31/18 Programming Guide P1099958-001 1499 1500 HTTP POST Alerts HTTP Messages P1099958-001 Programming Guide 1/31/18 Advanced Techniques This section presents information and commands for using advanced techniques, such as special effects, serialized data fields, control commands, program delimiters, communications, and memory cards. Contents Special Effects for Print Fields ................................................................................................. 1502 1/31/18 Programming Guide P1099958-001 1502 Advanced Techniques Special Effects for Print Fields Serialized Data......................................................................................................................... 1502 Variable Data ........................................................................................................................... 1503 Stored Formats ........................................................................................................................ 1503 Initialize/Erase Stored Formats ........................................................................................... 1503 Download Format Command .............................................................................................. 1503 Field Number Command...................................................................................................... 1503 Recall Stored Format Command.......................................................................................... 1504 Control Commands.................................................................................................................. 1504 Test and Setup Commands .................................................................................................. 1505 Calibration and Media Feed Commands ............................................................................. 1505 Cancel/Clear Commands ..................................................................................................... 1506 Printer Control Commands .................................................................................................. 1506 Set Dots/Millimeter ............................................................................................................. 1507 Host Status Commands........................................................................................................ 1508 Changing Delimiters and Command Prefixes .......................................................................... 1508 Communication Diagnostics Commands................................................................................. 1509 Graphic Commands ................................................................................................................. 1509 Image Move ......................................................................................................................... 1510 Working with Hex Graphic Images ...................................................................................... 1510 Alternative Data Compression Scheme for ~DG and ~DB Commands ................................ 1510 Recalling a Hexadecimal Graphic Image .............................................................................. 1511 Reducing Download Time of Graphic Images ...................................................................... 1511 Transferring Object Between Storage Devices .................................................................... 1512 Deleting Graphics from Memory ......................................................................................... 1512 Defining and Using the AUTOEXEC.ZPL Function ................................................................ 1513 Memory, Flash Cards, and Font Cards..................................................................................... 1513 Shortcuts and Alternate Schemes for Writing ZPL II Scripts ................................................ 1514 Special Effects for Print Fields Reverse Printing a Field The ^FR (Field Reverse Print) command allows a field to appear as white over black or black over white. When printing a field, the ^FR command indicates that it will print the field the opposite of its background color. Reverse Printing a Label The ^LR (Label Reverse Print) command reverses the printing of all fields in the label format. It allows a field to appear as white over black or black over white. ^LR functions like ^FR, but it applies to all fields in a label. The ^LR command remains active until turned off. Printing a Mirror Image The ^PM (Print Mirror Image of Label) command prints the entire printable area of the label as a mirror image. This command flips the image from left to right. Printing a Label Inverted 180 Degrees The ^PO (Print Orientation) command inverts the label format 180 degrees. In essence, the label is printed upside down. Serialized Data The ^SN (Serialization Data) command allows the printer to index data fields by a selected increment or decrement value (that is, make the data fields increase or decrease by a specified value) each time a label is printed. This can be performed on up to 100 to 150 fields in a given format and can be performed on both alphanumeric and bar code fields. A maximum of 12 of the right-most integers are subject to indexing. The first integer found when scanning from right to left starts the indexing portion of the data field. P1099958-001 Programming Guide 1/31/18 Advanced Techniques Variable Data If the alphanumeric field to be indexed ends with an alpha character, the data will be scanned, character-by-character, from right to left until a numeric character is encountered. Serialization will take place using the value of the first number found. Variable Data To increase throughput, you can set up a program that uses variable data fields. Then, instead of formatting the whole label each time a label is printed, the printer will have to format only the changed data field. To use this capability, you must use the ^MC and ^FV commands. Stored Formats You can create formats and save them in the printers memory. A stored format can then be recalled and merged with downloaded data to form a complete label. This process saves data transmission time but not formatting time. To create a format, complete these steps: 1. Design the label. 2. Replace variable data fields with field numbers. 3. Allocate space for the size of the field. 4. Give the format a name. 5. Save the format on the printer to a memory location (R, E, B, A). You can store multiple formats on the printer, limited only by available memory. If you try to save a format that would overload memory you can confirm that the format has been successfully stored on the printer by printing the LIST FORMATS from the front panel, or by using the ^HW command to return the directory listing to the host. For details see, ^HW on page 213. If the power is turned off, all stored formats in volatile memory (R:) will be lost. Initialize/Erase Stored Formats Stored formats can be selectively erased using the ^ID command. Download Format Command The ^DF (Download Format) command saves the ZPL II format commands as text strings to be later merged using ^XF with variable data. The format to be stored may contain Field Number (^FN) commands to be referenced when recalled. While use of stored formats will reduce transmission time, no formatting time is saved since this command saves the ZPL II as text strings which need to be formatted at print time. Field Number Command The ^FN (Field Number) command is used to number the data fields. This command is used in both Store Format and Recall Format operations. 1/31/18 Programming Guide P1099958-001 1503 1504 Advanced Techniques Control Commands When storing a format, the ^FN command is used where you would normally use the ^FD (Field Data) command. When recalling the stored format, use ^FN in conjunction with the ^FD (Field Data) command. Recall Stored Format Command The ^XF (Recall Format) command recalls a stored format to be merged with variable data. There can be multiple ^XF commands and they can be located anywhere in the label format. When recalling a stored format and merging data utilizing the ^FN (Field Number) function, the calling format must contain the ^FN command to properly merge the data. While use of stored formats will reduce transmission time, no formatting time is saved because the format being recalled was saved as text strings that need to be formatted at print time. Example: These are examples of using stored format: Working with Stored Format commands involves designing and saving a stored format, then recalling and merging the format with some variable data. The following is an example of how to use the various Stored Format commands. First, enter the following format and send it to the printer. Notice that no label is printed. (DATA Indicator went On and Off.) ^XA^DFFORMAT^FS ^LH30,30 ^BY2,3,100 ^FO120,100^CFD^FN1^FA9^FS ^FO120,160^B3^FN2^FA6^FS ^XZ Second, enter the following format and send it to the printer. The label shown will be printed. ^XA^XFFORMAT^FS ^FN1^FDLABEL ONE^FS ^FN2^FDAAA001^FS ^XZ Control Commands Control commands may be sent from the host at any time to elicit an immediate response from the printer. Control commands may be sent in a group or separately. A control command is acted upon when received to perform a variety of actions, such as: • clearing the memory P1099958-001 Programming Guide 1/31/18 Advanced Techniques Control Commands • physical action • a combination of the above such as feeding a label and calculating and storing its length. The basic format for using all of the control commands is: ~(2-letter command) For example: ~DG Test and Setup Commands The following commands, presented in alphabetical order, are used to test various elements of the printer and its status. Table 63 • Test and Setup Commands Command Function ~HM (Memory Status) Sending this command to the printer immediately returns a memory status message to host. Use this command whenever you need to know the status of the memory. ~HS (Host Status) Sending this command to the printer immediately returns a three-line printer status message to the host. Use this command whenever you need to know the status of the printer. ~JR (Power On Reset) This command resets all of the printer’s internal software, performs a power-on self-test, clears the buffer and DRAM, and resets communication parameters and default values. ~JR performs the same function as a manual power-on reset. ~JN (Head Test Fatal) This command resets the printhead element error override, acting as a toggle for ~JO. The printer then goes into fault status (turns head indicator on steadily) if any subsequent execution of the printing element test detects bad printing elements. This command is only functional on certain printer platforms. ~JO (Head Test Non-Fatal) This command overrides a failure of head element status check and allows printing to continue. The override is canceled when the printer is turned off or receives a ~JR or ~JN command. The printhead test will not produce an error if the ~JO override is active. This command is only functional on certain printer platforms. ^JT (Head Test Interval) This command lets you change the printhead test interval from 100 to any desired interval. The printer automatically performs an internal printhead element test, which occurs every 100 labels. This takes place during formatting which minimizes a delay in printing. Therefore, the test may be performed while the printer is in PAUSE. This command is only functional on certain printer platforms. ~WC (Print Configuration Label) The ~WC command is used to generate a printer configuration label. The printer configuration label contains information about the printer setup, such as sensor type, network ID, ZPL mode, firmware version, and descriptive data on the R:, E:, B:, and A: devices. ~HQ (Host Query) The ~HQ command group causes the printer to send information back to the host. Calibration and Media Feed Commands The following commands, presented in alphabetical order, are used to perform various media and ribbon calibrations and also set the media feed mode for the printer. 1/31/18 Programming Guide P1099958-001 1505 1506 Advanced Techniques Control Commands Table 64 • Calibration and Media Feed Commands Command Function ~JC (Set Media Sensor Forces a label length measurement and recalibrates the media and ribbon sensors. Note • In continuous mode, only the media and ribbon sensors are recalibrated. Calibration) ~JG (Graphing Sensor Calibration) Forces a label length measurement, recalibrates the media and ribbon sensors, and prints a graph (media sensor profile) of the sensor values. ~JL (Set Label Length) Sets the label length. Depending on the size of the label, the printer will feed one or more blank labels. ^MF (Media Feed) Dictates what happens to the media at power up and after an error is cleared. Cancel/Clear Commands The following command controls the contents of the Zebra input buffer. Table 65 • Cancel/Clear Commands Command Function ~JA (Cancel All) Cancels all format commands in the buffer. It also cancels any batches that may be printing. The printer stops printing after the current label (if one is printing) is finished printing. All internal buffers are cleared of data. The DATA LED turns off. Printer Control Commands The following commands control various printer operations: Table 66 • Printer Control Commands Command Function ^PF (Slew Given Number of Dot Causes the printer to slew labels (move labels at a high speed without printing) a specified number of dot rows, at the bottom of the label. This allows faster printing when the bottom portion of a label is blank. Rows) ~PH or ^PH (Slew to Home Causes the printer to feed one blank label. The ~PH command feeds one label after the format currently being printing is done or when the printer is placed in pause. • The ^PH command feeds one blank label after the format it is in prints. Position) • ~PP (Programmable Pause) Stops printing after the current label is printed (if one is printing) and places the printer in the Pause mode. The operation is identical to pressing the PAUSE button on the front panel of the printer. The printer will remain paused until the PAUSE button is pressed or a ~PS command is sent to the printer. P1099958-001 Programming Guide 1/31/18 Advanced Techniques Control Commands Table 66 • Printer Control Commands (Continued) Command Function ^PP (Programmable Pause) This command pauses the printer after the format it is in prints. Because this command is not executed immediately, several labels may be printed before the printer is paused. The operation is identical to pressing the PAUSE button on the front panel of the printer. The printer will remain paused until the PAUSE button is pressed or a ~PS command is sent to the printer. ^PQ (Print Quantity) This command gives control over several printing operations. It controls the number of labels to print, the number of labels printed before the printer pauses, and the number of replications of each serial number. ^PR (Print Rate) Determines the media speed during printing and the slew speed (feeding a blank label). The printer will operate with the selected speeds until the setting is resent in a subsequent format or the printer is turned off. Limitations of Higher Print Speeds Print speed is application specific. Because print quality is affected by media and ribbon, printing speeds, and printer operating modes, it is very important to run tests for your applications. • With high print speeds, use thermal transfer mode only. • Horizontal bar codes with a minimum x dimension of 5 mil may be printed at print speeds of 2 in. (51mm) per second. • Rotated bar codes are limited to a minimum x dimension of 10 mil (modulus 2) at higher print speeds. At x dimension of 5 mil (modulus 1), they may be printed at 2 in. per second. • At high print speeds, Font A at a magnification of 1 is not recommended; all other fonts are acceptable. ~PS (Print Start) Causes a printer in the Pause mode to resume printing. The operation is identical to pressing the PAUSE button on the front panel of the printer when the printer is already in the Pause mode. Set Dots/Millimeter Command Function ^JM (Set Dots/Millimeter) Changes the number of dots printed per millimeter. Depending on the printhead, normal dots per millimeter on a Zebra printer are the following: • 24 dots/mm (609.6 dots/inch) • 12 dots/mm (304.8 dots/inch) • 8 dots/mm (203.2 dots/inch) • 6 dots/mm (152.4 dots/inch) In some applications, these high densities are not required. For these applications, a lower density of 4 dots/mm (102 dots/inch) or 3 dots/mm (77 dots/inch) can be selected. If used, this command must be entered before the first ^FS command. 1/31/18 Programming Guide P1099958-001 1507 1508 Advanced Techniques Changing Delimiters and Command Prefixes Host Status Commands Table 67 • Host Status Commands Command Function ~HI (Host Identification) This command is designed to be sent from the Host to the Zebra printer to find out the type of Zebra printer. Upon receipt, the Zebra printer will respond to the Host with a character string that gives information about the printer such as the version of firmware, dots per inch, memory, and printer options. ^SP (Start Print) This command allows a label to start printing at a specified point before the entire label has been completely formatted. On extremely complex labels, this command can increase the overall throughput of the printer. The command works as follows: you specify the dot row at which the ^SP command is to take affect. This then creates a label ‘segment.’ Once the ^SP command is processed, all information in that segment will be printed. During the printing process, all of the commands after the ^SP will continue to be received and processed by the printer. If the segment after the ^SP command (or the remainder of the label) is ready for printing, media motion does not stop. If the next segment is not ready, the printer will stop “mid-label” and wait for the next segment to be completed. Precise positioning of the ^SP command is somewhat of a trial-and-error process as it depends primarily on print speed and label complexity. The ^SP command can be effectively used to determine the worst-case print quality. You can determine if using the ^SP command is appropriate for the particular application by using the following procedure. If you send the label format up to the first ^SP command and then wait for printing to stop before sending the next segment, the printed label will be a sample of the worst case print quality. It will also drop any field that is out of order. ~WC (Print Configuration Label) This command is used to generate a printer configuration label. This command only works when the printer is idle. ~WL Print Network Configration Label This command is used to generate a network configuration label. This command only works when the printer is idle. Changing Delimiters and Command Prefixes Important • The delimiters used in the incoming ZPL script must match the delimiters set on the printer. If you change the delimiters on the printer, any ZPL script that uses the default delimiters will not work. For some applications, you may need to change the ZPL II default delimiter (,) the format command default prefix (^), and/or the control command default prefix (~). Any ASCII character may be set as the delimiter. You might change these characters if you are using a hand-held terminal that does not have a comma to enter the ZPL II commands, if you are working with a mainframe that has trouble processing the caret, or if you find some other character(s) easier to use. Reasons to set an alternate delimiter include, but are not limited to: • you are using a hand-held terminal that does not have a comma to enter the ZPL II commands; • you are working with a host system that does not easily output the default delimiter (for example, AS/400) P1099958-001 Programming Guide 1/31/18 Advanced Techniques Communication Diagnostics Commands • you find some other character(s) easier to use. Communication Diagnostics Commands Zebra printers support communication diagnostics through both hardware and software control. You can use these diagnostics to troubleshoot programs. Table 68 • Communication Diagnostics Commands Command Function ~JD (Enable Communications Initiates a diagnostic mode that produces an ASCII printout (using current label length and full width of printer) of all characters received by the printer. This printout includes the ASCII Characters, the HEX value and any communication errors. Diagnostics) ~JE (Disable Diagnostics) Cancels the diagnostic mode and returns the printer to normal label printing. Graphic Commands In addition to text and bar codes, multiple types of graphics can be printed on a Zebra printer: • boxes and lines (^GB), circles (^GC), diagonal lines (^GD), and ellipses (^GE) • ZPL II label formats saved as graphics images • graphic images in Hexadecimal format • graphic symbols (^GS) • Table 69 • Boxes, Lines, Circles, Diagonal Lines, and Ellipses 1/31/18 Command Function ^GB (Graphic Box) The ^GB command is used to draw boxes and lines as part of a label format. Boxes and lines are used to highlight important information, divide labels into distinct areas, or to improve the appearance of a label. The same format command is used for drawing either boxes or lines. ^GC (Graphic Circle) The ^GC command produces a circle on the printed label. The command parameters specify the diameter (width) of the circle, outline thickness, and color. Thickness extends inward from the outline. ^GD (Graphic Diagonal Line) The ^GC command produces a circle on the printed label. The command parameters specify the diameter (width) of the circle, outline thickness, and color. Thickness extends inward from the outline. ^GE (Graphic Ellipse) The ^GE command produces an ellipse in the label format. ^GS (Graphic Symbol) The ^GS command enables you to generate the registered trademark, copyright symbol, and other symbols. Programming Guide P1099958-001 1509 1510 Advanced Techniques Graphic Commands These label formats can also be stored as graphic images and data can be merged with them at print time. Additionally, ZPL II will permit the printing of graphic images from other sources that have been created in (or converted to) hexadecimal (HEX) format. Such graphic images can come from a variety of sources, including CAD programs, draw and paint programs, and scanned images. Image Move The ^IM (Image Move) command performs a direct move of an image from a storage area into the bitmap. The command is identical to the Recall Graphic command except that there are no sizing parameters. Working with Label Formats as Graphics The ^IS (Image Save) and ^IL (Image Load) commands are used to save a ZPL label format (including text and/or bar codes) in the printer’s DRAM, FLASH, or PCMCIA as a special graphic image. The ^IS (Image Save) and ^IL (Image Load) commands are used to save a ZPL label format (including text and/or bar codes) in the printer’s DRAM, FLASH, PCMCIA, or battery backed up SRAM, as a special graphic image. This increases the throughput of a series of similar but not identical labels. Instead of formatting each individual label completely, store the constant fields as an image (known as creating a template). Then, in subsequent label formats, commands are issued to recall that graphic image format and merge it with variable data. Working with Hex Graphic Images ZPL II can be used to save graphic images in HEX format in DRAM, FLASH, or PCMCIA, depending on the type of memory installed in your printer. ZPL II can be used to save graphic images in HEX format in DRAM, FLASH, PCMCIA, or battery backed up SRAM, depending on the type of memory installed in your printer. The image might be created using a CAD program, a draw or paint program, or a scanner. These images can then be printed on the label. Graphic images may be created using a program that creates files in the .PCX format. These files must then be converted to ZPL II graphic format .GRF (pure hexadecimal data without headers or other extraneous information) for use as part of a label format. You can use ZebraDesigner or ZebraNet Bridge Enterprise to convert the .PCX graphic format into the pure hexadecimal .GRF graphic format. Hexadecimal data may also be directly input as part of a ZPL II program. Manually preparing a string of HEX code is possible but usually impractical. Alternative Data Compression Scheme for ~DG and ~DB Commands There is an alternative data compression scheme recognized by the Zebra printer. This scheme further reduces the actual number of data bytes and the amount of time required to download graphic images and bitmapped fonts with the ~DG and ~DB commands. The following represent the repeat counts 1, 2, 3, 4, 5, ...., 19 on a subsequent Hexadecimal value. Note • Values start with G since 0 through 9 and A through F are already used for HEX values.) G H I J K L M N O P Q R S T U V W X Y 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 These numbers represent the repeat counts 20, 40, 60, 80,....400 on a subsequent hexadecimal value. P1099958-001 Programming Guide 1/31/18 Advanced Techniques Graphic Commands g h I j k l m n o p q 20 40 60 80 100 120 140 160 180 200 220 r s t u v w x y z 240 260 320 340 360 380 400 280 300 Example 1: Sending M6 to the printer is identical to sending the following hexadecimal data: 6666666 The M has the value of 7. Therefore M6 sends seven (7) hexadecimal 6’s. Example 2: Sending hB to the printer is identical to sending the following hexadecimal data: BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB The h has a value of 40. Therefore, hB sends 40 Hexadecimal B’s. Repeat Values Several repeat values can be used together to achieve any desired value. Several repeat values can be used together to achieve any value desired. vMB or MvB will send 327 hexadecimal B’s to the printer. • a comma (,) fills the line, to the right, with zeros (0) until the specified line byte is filled. • an exclamation mark (!) fills the line, to the right, with ones (1) until the specified line byte is filled. • a colon (:) denotes repetition of the previous line. Recalling a Hexadecimal Graphic Image The ^XG (Recall Graphic) command is used to recall one or more graphic images for printing. This command is used in a label format to merge pictures such as company logos and piece parts, with text data to form a complete label. An image may be recalled and resized as many times per format as needed. Other images and data may be added to the format. Reducing Download Time of Graphic Images There is a method of reducing the actual number of data bytes sent to the printer when using the ~DG command. If the HEX string ends in an even number of zeros (0’s), a single comma (,) can be substituted for ALL of the zeros. If the HEX string ends in an odd number of zeros, one zero and a single comma is required. The exclamation mark (!) and the colon (:) described under Repeat Values on page 1511 can also be used. Note • The text rows in your editor may not be the same as the dot rows used by ZPL II. The editor may word wrap or truncate the dot rows. ZPL II ignores the end of a text line (carriage returns and line feed characters). 1/31/18 Programming Guide P1099958-001 1511 1512 Advanced Techniques Graphic Commands Transferring Object Between Storage Devices The ^TO (Transfer Object) command is used to copy an object or group of objects from one storage device to another. It is quite similar to the copy function used in personal computers. Source and destination devices must be supplied and must be different and valid for the action specified. Invalid parameters will cause the command to be ignored. There are no defaults associated with this command. However, the asterisk (*) may be used as a wild card for Object names and extensions. For instance, ZEBRA.* or *.GRF would be acceptable forms for use with ^TO command. The Asterisk (*) can be used to transfer multiple object files (except *.FNT) from the DRAM to the Memory Card. For example, you have several object files that contain logos. These files are named LOGO1.GRF, LOGO2.GRF, and LOGO3.GRF. Example: You want to transfer all of these files to the Memory Card using the name NEW instead of LOGO. By placing an Asterisk (*) after both LOGO and NEW in the transfer command, you can copy all of these files with one command. The format for this would be as follows: ^XA ^TOR:LOGO*.GRF,B:NEW*.GRF ^XZ Note • If, during a multiple transfer, a file is too big to be stored on the Memory Card, it will be skipped. All remaining files will be checked to see if they can be stored. Those that can be stored, will be stored. Deleting Graphics from Memory The ^ID (Item Delete) command deletes objects, images, fonts, and formats from storage areas selectively or in groups. This command can be used within a printing format to delete objects just prior to saving new ones or can be in a stand-alone type format simply to delete objects. The object name and extension support the use of the asterisk (*) as a wildcard. This allows for easy deletion of selected groups of objects. The following are various examples of using the ^ID command. Example 1: To delete just stored formats from DRAM: ^XA^IDR:*.ZPL^XZ Example 2: To delete formats and images named SAMPLE from DRAM regardless of the extension: ^XA^IDR:SAMPLE.*^XZ P1099958-001 Programming Guide 1/31/18 Advanced Techniques Memory, Flash Cards, and Font Cards Example 3: To delete the image SAMPLE1.GRF prior to storing SAMPLE2.GRF: ^XA ^FO25,25^AD,18,10^FDDelete^FS ^FO25,45^AD,18,10^FDthen Save^FS ^IDR:SAMPLE1.GRF^FS ^ISR:SAMPLE2.GRF^FS ^XZ Example 4: To delete everything from DRAM: ^XA^IDR:*.*^XZ Defining and Using the AUTOEXEC.ZPL Function An AUTOEXEC.ZPL file function is supported by the printer. It functions in much the same way as the AUTOEXEC.BAT file in MS-DOS. The AUTOEXEC.ZPL file function can be used for setting up various parameters at the time the printer is powered up (such as ^COY, ^LL, ^CWf). The function can also be recalled at any time after power up. This file must initially be in the extra EPROM, FLASH, or PCMCIA memory. When the printer is powered on, it looks to the extra memory site for the stored format called AUTOEXEC.ZPL. If found, the contents of the file are automatically executed as a stored format. Example: This is an example of an autoexe.zpl file: ^XA ^DFE:AUTOEXEC.ZPL^FS ^SEE:JIS.DAT^FS ^CW1,E:ANMDJ.TTF^FS ^XZ Memory, Flash Cards, and Font Cards Zebra printers come with a variety of memory device, including DRAM, EPROM, PCMCIA, Flash, socket Flash, and battery backed-up RAM. Note • Not all memory options are available on all printers. Most Zebra printers allow you to print a printer configuration label, which will show the letter designation assigned to your printer memory options. For printer models that do not support this feature, use Table 70 to see how the memory IDs are assigned. Memory IDs default to these values when the printer is reset to factory defaults. Table 70 • Letter Designations for Different Memory Options Memory Option 1/31/18 Default Letter Designation EPROM E: PCMCIA B: Flash E: Programming Guide P1099958-001 1513 1514 Advanced Techniques Memory, Flash Cards, and Font Cards Table 70 • Letter Designations for Different Memory Options Memory Option Default Letter Designation DRAM R: Battery backed-up RAM B: or E: Socket Flash B: Compact Flash A: A few ZPL II commands directly affect the types of memory available to Zebra printers. These commands are ~JB, ^JB and ~HM Table 71 • Commands that Affect Available Memory Types Command Function ~JB (Reset Battery Dead) This command is sent to the printer if either of these conditions exist: • If the B: memory card is intentionally cleared (reinitialized). • If the battery supplying power to the Battery Powered Font Card fails and is replaced. (A bad battery would show a “battery dead” condition on the printer configuration label.) Note • If you replace the battery but do not send this command to the printer, the Battery Powered Font Card will not function. ^JB (Initialize Flash Memory) This command is used to initialize the two types of Flash Memory available in the Zebra printers. Note • Link-OS printers use an automatic memory management system that eliminates the need to manually initialize the Flash Memory system. ~HM (Host Memory Status) Sending this command to the printer immediately returns a memory status message to the host. Use this command whenever you need to know the status of the memory. When the Host Memory Status Command, ~HM, is sent to the Zebra printer, a line of data containing three numbers is sent back to the Host. The following is an example: 1024,0780,0780 • • • The first value is the total amount of RAM (Random Access Memory) installed in the printer. This number is in Kilobytes. The second value is the maximum amount of RAM available to the user. This number is in Kilobytes. The third value is the amount of RAM currently available to the user. This number is in Kilobytes. Shortcuts and Alternate Schemes for Writing ZPL II Scripts ZPL II programming scripts can be written in a variety of ways. There are, however, more efficient ways to write a ZPL II script depending on the application and the commands used. The following are certain ways to write the same ZPL II script, each yielding the same result. P1099958-001 Programming Guide 1/31/18 Advanced Techniques Memory, Flash Cards, and Font Cards Example 1: The Code 39 bar code shows the ZPL II script written like this: ^XA^FO100,75^BY3 ^B3N,N,100,Y,N ^FD123ABC^XZ Since it is only one field, however, the entire command can be written as a one line entry: ^XA^FO100,75^BY3^B3N,N,100,Y,N^FD123ABC^XZ Finally, this script can be further simplified by writing it on one line, using the comma (,) delimiter to reduce the default parameters in the ^B3 command and eliminating the default parameters at the end of the ^B3 command: ^XA^FO100,75^BY3^B3,,100^FD123ABC^XZ 1/31/18 Programming Guide P1099958-001 1515 1516 Advanced Techniques Memory, Flash Cards, and Font Cards Example 2: You might write your ZPL II scripts in any way that makes sense to you. Some programmers prefer to write out each format command and field on a line by line basis like this: ^XA ^PR2^FS ^LL935^FS ^LH30,30^FS ^FO20,10^AF^FDZEBRA^FS ^FO20,60^B3,,40^FDAA001^FS ^FO20,180^AF^SNSERIAL NUMBER 00000000111,1,Y^FS ^PQ10^FS ^XZ Although this script will print with no problems, it contains unnecessary ^FS (Field Separator) commands which have been placed after the format commands. Some programmers feel it is required to place a ^FS command at the end of each line, but the ^FS command is only needed to separate specific fields. Therefore, the script would transmit more quickly written like this: ^XA ^PR2 ^LL935 ^LH30,30 ^FO20,10^AF^FDZEBRA^FS ^FO20,60^B3,,40^FDAA001^FS ^FO20,180^AF^SNSERIAL NUMBER 00000000111,1,Y^FS ^PQ10 ^XZ Other programmers prefer to keep the format commands on one line as an organizational preference, like this: ^XA^PR2^LL935^LH30,30 ^FO20,10^AF^FDZEBRA^FS ^FO20,60^B3,,40^FDAA001^FS ^FO20,180^AF^SNSERIAL NUMBER 00000000111,1,Y^FS ^PQ10^XZ The label will print out the same so you should develop a scripting pattern that suits your own organizational style but one which is efficient and is concerned with keeping transmission times to a minimum. P1099958-001 Programming Guide 1/31/18 Advanced Techniques Memory, Flash Cards, and Font Cards Font Shortcuts There are times when you might include a specific font into your script and use it repeatedly within different fields. The following is an example of one way to write this script: ^XA ^FO120,108^A0N,89^FDA Guide to^FS ^FO120,207^A0N,89^FDZPL II^FS ^FO120,306^A0N,89^FDProgramming^FS ^FO120,405^A0N,89^FDLanguage^FS ^XZ Notice that the ^FS command is used on the second to last line to close the field. Actually, it is unnecessary because the ^XZ will accomplish the same thing, so we can remove it from our script. Also, since the font and font size are not changing within the fields, this script can be simplified for quicker transmission by removing the unnecessary font entries and listing the font information once using the ^CF command (see ^CF on page 131): ^XA ^CF0,89 ^FO120,108^FDA Guide to^FS ^FO120,207^FDZPL II^FS ^FO120,306^FDProgramming^FS ^FO120,405^FDLanguage ^XZ This script can be made even more efficient by including the ^FB command to identify the left origin of the text which occurs at the same place each time. For details, see ^FB on page 163: ^XA ^CF0,89 ^FO120,108 ^FB800,6 ^FDA Guide to\&ZPL II\&Programming\&Language ^XZ Note • The entries “\&” within the text indicate a carriage return/line feed as allowed by the ^FB command. For details, see ^FB on page 163. If you wanted to change the font type or size within the script, however, you would need to include the specific font parameters within the field where the change occurs. In this case, you would not want to use the ^FB command because the change in font size (in our example below) will affect the y-axis (up and down) position of the text. You can still use the ^CF command, but you will need to include the specific font information on the line where the change in the field occurs: ^XA ^CF0,89 ^FO120,108^FDA Guide to^FS ^FO120,207^FDZPL II^FS ^FO120,306^A0N,110^FDProgramming^FS ^FO120,426^FDLanguage ^XZ 1/31/18 Programming Guide P1099958-001 1517 1518 Advanced Techniques Memory, Flash Cards, and Font Cards P1099958-001 Programming Guide 1/31/18 Glossary ASCII American Standard Code for Information Interchange. A 7-bit character set that includes Latin characters, as well as control and punctuation characters. bidirectional text layout The arrangement of characters with mixed directionality on a single line. For example, English and Arabic. big-endian In the encoding, the most significant byte is stored first. byte order mark BOM; indicates big-endian (BE) or little-endian (LE). character The smallest component of a writing system that has understanding, refers to the abstract meaning not the specific shape. character code Another term for code point. character set A collection of characters. character shaping Characters assume different glyphic forms depending on the context.They can be used with a script-based language. code point An integral reference number assigned to a character. coded character set An ordered collection of characters that are assigned an integral reference number. combining semantic cluster Consists of an atomic character, a combining character sequence consisting of a base character plus one or more nonspacing marks, enclosing marks, combining word joiner, such as an Indic virama, or a sequence of Hangul jamos equivalent to a Hangual syllable. diacritic A mark that is added to a letter or other character to change its value or meaning. encoding The mapping of a characters code points to a sequence of bytes used to represent the data. 1/31/18 Programming Guide P1099958-001 1520 Glossary font An electronic collection of glyphs used for the visual representation of characters. GB18030 A standard required by the People’s Republic of China for operating systems of non-handheld computers. GB 2312 A Chinese character set and encoding. glyph The visual representation of a character, such as a shape or image. A default glyph character is typically used when the requested glyph is not available in the font. grapheme cluster Consists of an atomic character, a combining character sequence consisting of a base character plus one or more nonspacing marks or enclosing marks, or a sequence of Hangul jamos equivalent to a Hangul syllable. ISO 10646 An international standard that defines the Universal Character Set (UCS) and a character encoding. The UCS matches Unicode. ISO 8859-1 An encoding standard for representing Western European languages using the Latin Alphabet. language A system of sounds and scripts used to represent and communicate concepts, ideas, meanings, and thoughts. ligature A glyph representing a combination of two or more characters. little-endian In the encoding, the least significant byte is stored first. open type A file format for scalable font files that extends the existing TrueType font file format used by Microsoft Windows and Apple Macintosh operating systems.OpenType tables support advanced layout features. presentation form A pre-combined character, ligature or variant glyph that has a separate code point; used for compatibility. rts/cts A method for a hardware handshake via the request-to-send/clear-to-send pins. script A collection of symbols used to represent textual information in one or more writing systems. Shift-JIS A shifted encoding of the Japanese character encoding standard, JIS X 0208, heavily deployed in PCs. True type An outline font format that is scalable without quality loss. Unicode The universal character set and encoding maintained by the Unicode Consortium. UTF-8 The Unicode encoding that assigns each character code point to a sequence of one to four bytes. UTF-16 A Unicode encoding form that represents Unicode code point values in the BMP with 16-bit code units and Unicode code point values in the supplementary planes with pairs of 16-bit code units. P1099958-001 Programming Guide 1/31/18 Glossary UTF-16BE A Unicode encoding scheme based on UTF-16 that serializes the bytes in each code unit in big-endian order. UTF-16LE A Unicode encoding scheme based on UTF-16 that serializes the bytes in each code unit in little-endian order. 1/31/18 Programming Guide P1099958-001 1521 1522 Glossary Notes • ____________________________________________________________________ __________________________________________________________________________ __________________________________________________________________________ __________________________________________________________________________ __________________________________________________________________________ __________________________________________________________________________ __________________________________________________________________________ __________________________________________________________________________ __________________________________________________________________________ __________________________________________________________________________ P1099958-001 Programming Guide 1/31/18 Corporate Headquarters Zebra Technologies Corporation 3 Overlook Point Lincolnshire, IL 60069 USA T: +1 847 634 6700 Toll-free +1 866 230 9494 F: +1 847 913 8766 http://www.zebra.com P1099958-001

Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.5
Linearized                      : No
Create Date                     : 2018:01:31 10:52:22Z
Modify Date                     : 2018:02:26 14:37:25-06:00
Subject                         : P1099958-001
XMP Toolkit                     : Adobe XMP Core 5.4-c005 78.147326, 2012/08/23-13:03:03
Format                          : application/pdf
Title                           : Programming Guide for ZPL II, ZBI 2, Set-Get-Do, Mirror, WML (en)
Creator                         : 
Description                     : P1099958-001
Creator Tool                    : FrameMaker 2017
Metadata Date                   : 2018:02:26 14:37:25-06:00
Producer                        : Acrobat Distiller 11.0 (Windows)
Document ID                     : uuid:a63e74a4-7b88-40b7-b05d-e9c72522c19f
Instance ID                     : uuid:db383d5f-bdd4-40a9-99e9-840d25db3092
Page Mode                       : UseOutlines
Page Count                      : 1524
Warning                         : [Minor] Ignored duplicate Info dictionary
EXIF Metadata provided by EXIF.tools

Navigation menu