Zebra ZPL Language
Zebra ZPL Language
for
ZPL II
ZBI 2
Set-Get-Do
Mirror
WML
P1012728-004
2
© 2010 ZIH Corp. The copyrights in this manual and the software and/or firmware in the printer described
therein are owned by ZIH Corp. and Zebra’s licensors. Unauthorized reproduction of this manual or the software
and/or firmware in the printer may result in imprisonment of up to one year and fines of up to $10,000
(17 U.S.C.506). Copyright violators may be subject to civil liability.
This product may contain ZPL®, ZPL II®, and ZebraLink™ programs; Element Energy Equalizer™ Circuit; E3™;
and Monotype Imaging fonts. Software © ZIH Corp. All rights reserved worldwide.
ZebraLink, Element Energy Equalizer, E3 and all product names and numbers are trademarks, and Zebra, the Zebra
head graphic, ZPL and ZPL II are registered trademarks of ZIH Corp. All rights reserved worldwide.
All other brand names, product names, or trademarks belong to their respective holders. For additional trademark
information, please see “Trademarks” on the product CD.
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 Corporation.
Liability Disclaimer Zebra Technologies Corporation takes steps to ensure that its published Engineering
specifications and manuals are correct; however, errors do occur. Zebra Technologies Corporation reserves the right
to correct any such errors and disclaims liability resulting therefrom.
Limitation of Liability In no event shall Zebra Technologies Corporation 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 Corporation 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.
ZPL Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Basic ZPL Exercises and Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Before you begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
^A Scalable/Bitmapped Font . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
^A@ Use Font Name to Call Font . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
^B0 Aztec Bar Code Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
^B1 Code 11 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
^B2 Interleaved 2 of 5 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
^B3 Code 39 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
^B4 Code 49 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
^B5 Planet Code bar code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
^B7 PDF417 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
^B8 EAN-8 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
^B9 UPC-E Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
^BA Code 93 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
^BB CODABLOCK Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
media.cut_now . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669
media.darkness_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670
media.media_low.external . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671
media.media_low.warning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672
media.present.cut_amount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673
media.present.eject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
media.present.length_addition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
media.present.loop_length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676
media.present.loop_length_max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677
media.present.cut_margin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678
media.present.present_timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679
media.present.present_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680
media.printmode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
media.speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683
odometer.headclean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684
odometer.headnew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685
odometer.label_dot_length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686
odometer.media_marker_count1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687
odometer.media_marker_count2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688
odometer.retracts_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689
odometer.rfid.valid_resettable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690
odometer.rfid.void_resettable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691
odometer.total_print_length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692
print.tone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693
rfid.error.response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694
rfid.position.program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695
rfid.reader_1.antenna_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697
rfid.reader_1.power.read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 699
rfid.reader_1.power.single_power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700
rfid.reader_1.power.write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701
rfid.tag.calibrate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703
rfid.tag.data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704
rfid.tag.test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705
rfid.tag.type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706
zbi.control.add_breakpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709
zbi.control.break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710
zbi.control.clear_breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .711
zbi.control.delete_breakpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712
zbi.control.line_number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
zbi.control.restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714
zbi.control.run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715
zbi.control.step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716
zbi.control.terminate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717
zbi.control.variable_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718
zbi.control.variable_value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
zbi.key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720
zbi.last_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
zbi.reseller_key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
zbi.revision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723
zbi.running_program_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724
zbi.start_info.execute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725
zbi.start_info.file_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
zbi.start_info.memory_alloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727
zbi.state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728
internal_wired.ip.dhcp.cid_suffix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
internal_wired.ip.dhcp.cid_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762
internal_wired.ip.dhcp.option12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
internal_wired.ip.dhcp.option12_format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768
internal_wired.ip.gateway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773
internal_wired.ip.netmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774
internal_wired.ip.port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775
internal_wired.ip.protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
internal_wired.ip.timeout.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777
internal_wired.ip.timeout.value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778
internal_wired.mac_addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779
internal_wired.mac_raw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 780
ip.dhcp.cid_prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .811
ip.dhcp.cid_suffix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812
ip.dhcp.lease.length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813
ip.dhcp.cid_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 814
ip.dhcp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815
ip.dhcp.lease.last_attempt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816
ip.dhcp.lease.server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 817
ip.dhcp.lease.time_left . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 818
ip.dhcp.option12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 819
ip.dhcp.option12_format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 820
ip.dhcp.option12_value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 821
ip.dhcp.request_timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822
ip.dhcp.requests_per_session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823
ip.dhcp.session_interval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 824
ip.dns.domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825
ip.dns.servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826
ip.ftp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827
ip.ftp.execute_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 828
ip.gateway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829
ip.http.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 830
ip.lpd.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831
ip.mac_raw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 832
ip.mirror.auto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833
ip.mirror.error_retry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 834
ip.mirror.feedback.auto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835
ip.mirror.feedback.freq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 836
ip.mirror.feedback.odometer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837
ip.mirror.feedback.path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 838
ip.mirror.fetch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839
ip.mirror.freq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 840
ip.mirror.freq_hours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 841
ip.mirror.last_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842
ip.mirror.last_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843
ip.mirror.password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 844
ip.mirror.path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 845
ip.mirror.reset_delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 846
ip.mirror.server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847
ip.mirror.success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 848
ip.mirror.success_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 849
ip.mirror.username . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 850
ip.mirror.version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851
ip.netmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852
ip.pop3.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853
ip.pop3.password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 854
ip.pop3.poll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855
ip.pop3.server_addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 856
ip.pop3.username . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 857
ip.port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 858
ip.primary_network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859
ip.smtp.domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 860
ip.smtp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 861
ip.smtp.server_addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 862
ip.snmp.get_community_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863
ip.snmp.set_community_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 864
ip.snmp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865
ip.telnet.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866
ip.tcp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 867
ip.udp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 868
wlan.adhocautomode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 869
wlan.adhocchannel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 870
wlan.associated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 871
wlan.bssid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872
wlan.channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873
wlan.channel_mask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 874
wlan.current_tx_rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 875
wlan.essid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876
wlan.firmware_version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 877
wlan.ip.addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
wlan.ip.arp_interval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 879
wlan.ip.default_addr_enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 880
wlan.ip.dhcp.cache_ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881
wlan.ip.dhcp.cid_all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 882
wlan.ip.dhcp.cid_enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883
wlan.ip.dhcp.cid_prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884
wlan.ip.dhcp.cid_suffix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885
wlan.ip.dhcp.cid_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 886
wlan.ip.dhcp.lease.last_attempt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 887
wlan.ip.dhcp.lease.length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 888
wlan.ip.dhcp.lease.server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889
wlan.ip.dhcp.lease.time_left . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 890
wlan.ip.dhcp.option12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 891
wlan.ip.dhcp.option12_format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 892
wlan.ip.dhcp.option12_value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 893
wlan.ip.dhcp.request_timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 894
wlan.ip.dhcp.requests_per_session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895
wlan.ip.dhcp.session_interval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896
wlan.ip.gateway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897
wlan.ip.netmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898
wlan.ip.port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
wlan.ip.protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 900
wlan.ip.timeout.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 901
wlan.ip.timeout.value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902
wlan.keep_alive.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903
wlan.keep_alive.timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904
wlan.kerberos.kdc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 905
wlan.kerberos.password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 906
wlan.kerberos.realm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 907
wlan.kerberos.username . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 908
wlan.mac_addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 909
wlan.mac_raw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 910
wlan.operating_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .911
wlan.password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 912
wlan.preamble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 913
wlan.private_key_password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 914
wlan.roam.interchannel_delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915
wlan.roam.interval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 916
wlan.roam.max_chan_scan_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 917
wlan.roam.signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 918
wlan.security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 919
Supporting SGD Commands for Different Security Types . . . . . . . . . . . . . . . . . . . . 920
wlan.signal_noise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927
wlan.signal_quality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 928
wlan.signal_strength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 929
wlan.station_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 930
wlan.tx_power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931
wlan.tx_rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932
wlan.username . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 933
wlan.wep.auth_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934
wlan.wep.index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935
wlan.wep.key1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936
wlan.wep.key2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 937
wlan.wep.key3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 938
wlan.wep.key4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 939
wlan.wpa.psk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 940
wlan.wep.key_format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 941
ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 957
ASCII Code Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 958
Mirror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049
Mirror Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1050
Benefits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1050
Professional Services for Mirror Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1051
Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1052
How Mirror Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054
Mirror Process Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1055
Mirror Process Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1055
Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1089
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1093
Notes • ___________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
SERVERSOCKET . . . . . . . . . . . . . . . . . . . . . 505
SETERR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
SETVAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
SLEEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
SPLIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
SPLITCOUNT . . . . . . . . . . . . . . . . . . . . . . . . . 572
STEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
STORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
STR$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
SUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
TIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601
TIME$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
TRACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
TRIGGEREVENT . . . . . . . . . . . . . . . . . . . . . . 549
TXTLOAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
TXTSTORE . . . . . . . . . . . . . . . . . . . . . . . . . . 538
UCASE$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
UNREGISTEREVENT . . . . . . . . . . . . . . . . . . 546
VAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585
WRITE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
ZPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
Notes • ____________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
This section provides an overview of the entire document, contact information, and details on
document structure and organization.
Contents
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Who Should Use This Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
How This Document Is Organized . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Contacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Document Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
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.
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, please see the Glossary
on page 1089.
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
Mirror
Wireless Markup Language (WML)
Firmware Features
Glossary Glossary of terms.
Contacts
Technical Support via the Internet is available 24 hours per day, 365 days per year.
Regional Headquarters Zebra Technologies Corporation Zebra Technologies Europe Limited Zebra Technologies Asia Pacific
475 Half Day Road, Suite 500 Dukes Meadow Pte. Ltd.
Lincolnshire, IL 60069 USA Millboard Road 120 Robinson Road
T: +1 847 634 6700 Bourne End #06-01 Parakou Building
Toll-free +1 866 230 9494 Buckinghamshire, SL8 5XF Singapore 068913
F: +1 847 913 8766 United Kingdom T: + 65 6858 0722
T: +44 (0) 1628 556000 F: +65 6885 0838
F: +44 (0) 1628 556001
Technical Support T: +1 877 ASK ZEBRA (275 9327) T: +44 (0) 1628 556039 T: +65 6858 0722
For questions on the F: +1 847 913 2578 F: +44 (0) 1628 556003 F: +65 6885 0838
operation of Zebra Hardware: [email protected] E: [email protected] E: China: [email protected]
equipment and software, Software: [email protected] All other areas:
please call your distributor. Kiosk printers: [email protected]
For additional assistance, T: +1 866 322 5202
contact us. E: [email protected]
Please have your model and
serial numbers available.
Repair Service T: +1 877 ASK ZEBRA (275 9327) T: +44 (0) 1772 693069 T: +65 6858 0722
Department F: +1 847 821 1797 F: +44 (0) 1772 693046 F: +65 6885 0838
For back-to-base service and E: [email protected] New requests: [email protected] E: China: [email protected]
repair. To request a repair in the U.S., Status updates: All other areas:
go to www.zebra.com/repair. [email protected] [email protected]
Technical Training T: +1 847 793 6868 T: +44 (0) 1628 556000 T: + 65 6858 0722
Department T: +1 847 793 6864 F: +44 (0) 1628 556001 F: +65 6885 0838
For Zebra product training F: +1 847 913 2578 E: [email protected] E: China: [email protected]
courses. E: [email protected] All other areas:
[email protected]
Inquiry Department T: +1 877 ASK ZEBRA (275 9327) T: +44 (0) 1628 556037 E: China: [email protected]
For product literature and E: [email protected] F: +44 (0) 1628 556005 All other areas:
distributor and dealer E: [email protected] [email protected]
information.
Customer Service T: +1 877 ASK ZEBRA (275 9327) T: +44 (0) 1628 556032 T: +65 6858 0722
Department (US) E: [email protected] F: +44 (0) 1628 556001 F: +65 6885 0836
Internal Sales E: [email protected] E: China: [email protected]
Department (UK) All other areas:
For printers, parts, media, [email protected]
and ribbon, please call your
distributor or contact us.
Key: T: Telephone
F: Facsimile
E: E-mail
Document Conventions
The following conventions are used throughout this document to convey certain information.
Alternate Color (online only) Cross-references contain hot links to other sections in this
guide. If you are viewing this guide online in.pdf format, you can click the cross-reference
(blue text) to jump directly to its location.
Command Line Examples Command line examples appear in Courier New font. For
example, type ZTools to get to the Post-Install scripts in the bin directory.
Files and Directories File names and directories appear in Courier New font. For
example, the Zebra<version number>.tar file and the /root directory.
Icons Used
Identifies features that are available in printers with firmware version Vx.17.x or later.
Identifies features that are available in printers with firmware version V60.16, V53.16, or
later.
Identifies features that are available in printers with firmware version V60.15.x, V50.15.x, or
later.
Identifies features that are available in printers with firmware version V60.14, V50.14, or
later.
Identifies features that are available in printers with firmware version V60.13.x, V50.13.x, or
earlier.
Illustration Callouts Callouts are used when an illustration contains information that needs
to be labeled and described. A table that contains the labels and descriptions follows the
graphic. Figure 1 provides an example.
1 2
^XA
^FO150,100^BY3
^B4N,20,A,A
^FD12345ABCDE^FS
^XZ
1 ZPL Code
2 Generated Label
Description This heading provides an explanation of how the command is used, what it is
capable of, and any defining characteristics it has.
Format 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.
Parameters If a command has values that can be defined to make its function more specific,
these are outlined as parameters. Parameters typically have Accepted Values and Default
Values.
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.
Comment 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.
Example • An example comment is: 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.
Tips
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.
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.
1 ^XA
2 ^FO50,50^ADN,36,20^FDxxxxxxxxxxx
3 ^FS
4 ^XZ
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
• 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 959.
Rotation commands
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
The Graphic Box or ^GB command or is used in some of the speical effects commands.
3. To see the effects, try removing one of the ^GB lines of code.
2. To see the effects, in the first line of code change ^PMY to ^PMN.
Print Orientation
2. To see the effects, in the second line of code change ^POI to ^PON.
3. Reposition and resize the square so that it goes around the name and address uniformly.
2. Try changing each of the parameters in the ^B3 string so you can see the effects.
^B3o,e,h,f,g
^BY
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
5. Print out a ^B3 bar code with the interpretation line on top of the bar code and the bar
code rotated 90 degrees.
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.
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 D A B C D 1 0 0 0 E F G H
^ S F % % % % d d d d % % % %
1 0 0 0 0
2 0 0 0 0
3 0 0 0 0
And on through…
1 0 1 4 0 0 0 0
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.
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.
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.
^XA
^XFR:SAMPLE.GRF
^FN1^FDAcme Printing^FS
^FN2^FD14042^FS
^FN3^FDScrew^FS
^FN4^FD12345678^FS
^FN5^FDMacks Fabricating^FS
^XZ
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.
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
^A
Scalable/Bitmapped Font
Description 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 ^Afo,h,w
Important • Parameter f is required. If f is omitted it defaults to the last value of the ^CF
command.
Command Details
f = font name Accepted 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 Accepted Values:
N = normal
R = rotated 90 degrees (clockwise)
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: the last accepted ^FW value or the ^FW default
h = Character Height Scalable
(in dots) Accepted Values: 10 to 32000
Default Value: last accepted ^CF
Bitmapped
Accepted Values: multiples of height from 1 to 10 times the standard
height, in increments of 1
Default Value: last accepted ^CF
w = width (in dots) Scalable
Accepted Values: 10 to 32000
Default Value: last accepted ^CF
Bitmapped
Accepted Values: multiples of width from 1 to 10 times the standard
width, in increments of 1
Default Value: last accepted ^CF
For reference, see Standard Printer Fonts on page 960, Zebra Code Page 850 — Latin
Character Set on page 944, Fonts and Bar Codes on page 959, and ASCII on page 957.
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 993.
^A@
Use Font Name to Call Font
Description 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:o.x
Parameters Details
o = field orientation Accepted Values:
N = normal
R = rotates 90 degrees (clockwise)
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: N or the last ^FW value
h = character height (in Default Value: specifies magnification by w (character width) or the last
dots) 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 Value: 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 Accepted Values: R:, E:, B:, and A:
Default Value: R:
o = font name Accepted Values: any valid font
Default Value: 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 Accepted Values:
.FNT = font
.TTF = TrueType Font
.TTE is only supported in
.TTE = TrueType Extension
firmware version V60.14.x,
V50.14.x, or later.
Example • This example is followed by a table that identifies the called out lines of code:
For reference, see Zebra Code Page 850 — Latin Character Set on page 944, Fonts and Bar
Codes on page 959, and ASCII on page 957.
^B0
Aztec Bar Code Parameters
Description 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 Accepted Values:
N = normal
R = rotated
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: current ^FW value
b = magnification factor Accepted Values: 1 to 10
Default Value:
1 on 150 dpi printers
2 on 200 dpi printers
3 on 300 dpi printers
6 on 600 dpi printers
c = extended channel Accepted Values:
interpretation code Y = if data contains ECICs
indicator N = if data does not contain ECICs
Default Value: N
d = error control and Accepted Values:
symbol size/type 0 = default error correction level
indicator 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 Value: 0
e = menu symbol Accepted Values:
indicator Y = if this symbol is to be a menu (bar code reader initialization) symbol
N = if it is not a menu symbol
Default Value: N
f = number of symbols Accepted Values: 1 through 26
for structured append Default Value: 1
Parameters Details
g = optional ID field for The ID field is a text string with 24-character maximum
structured append Default Value: no ID
^B1
Code 11 Bar Code
Description 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.
Format ^B1o,e,h,f,g
Parameters Details
o = orientation Accepted Values:
N = normal
R = rotated 90 degrees (clockwise)
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: current ^FW value
e = check digit Accepted Values:
Y = 1 digit
N = 2 digits
Default Value: N
h = bar code height (in Accepted Values: 1 to 32000
dots) Default Value: value set by ^BY
f = print interpretation Accepted Values:
line Y = yes
N = no
Default Value: Y
g = print interpretation Accepted Values:
line above code Y = yes
N = no
Default Value: N
^XA
^FO100,100^BY3
^B1N,N,150,Y,N
^FD123456^FS
^XZ
^B2
Interleaved 2 of 5 Bar Code
Description 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.
Format ^B2o,h,f,g,e,j
Parameters Details
o = orientation Accepted Values:
N = normal
R = rotated 90 degrees (clockwise)
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: current ^FW value
h = bar code height (in Accepted Values: 1 to 32000
dots) Default Value: value set by ^BY
f = print interpretation Accepted Values:
line Y = yes
N = no
Default Value: Y
g = print interpretation Accepted Values:
line above code Y = yes
N = no
Default Value: N
e = calculate and print Accepted Values:
Mod 10 check digit Y = yes
N = no
Default Value: N
^XA
^FO100,100^BY3
^B2N,150,Y,N,N
^FD123456^FS
^XZ
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 974.
^B3
Code 39 Bar Code
Description 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.
Format ^B3o,e,h,f,g
Parameters Details
o = orientation Accepted Values:
N = normal
R = rotated 90 degrees (clockwise)
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: current ^FW value
e = Mod-43 check digit Accepted Values:
Y = yes
N = no
Default Value: N
h = bar code height (in Accepted Values: 1 to 32000
dots) Default Value: value set by ^BY
f = print interpretation Accepted Values:
line Y = yes
N = no
Default Value: Y
Parameters Details
g = print interpretation Accepted Values:
line above code Y = yes
N = no
Default Value: N
^XA
^FO100,100^BY3
^B3N,N,100,Y,N
^FD123ABC^FS
^XZ
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:
^XA
^FO20,20
^B3N,N,100,Y
^FDTEST+$$M$J-$^FS
^XZ
Code 39 can generate the full 128-character ASCII set using paired characters as shown in
these tables:
^B4
Code 49 Bar Code
Description 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.
Format ^B4o,h,f,m
Important • For additional information about the Code 49 bar code is required, go to
www.aimglobal.org.
Parameters Details
o = orientation Accepted Values:
N = normal
R = rotated 90 degrees (clockwise)
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: current ^FW value
h = height multiplier of Accepted Values: 1 to height of label
individual rows Default Value: 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.
f = print interpretation Accepted Values:
line N = no line printed
A = print interpretation line above code
B = print interpretation line below code
Default Value: N
When the field data exceeds two rows, expect the interpretation line to
extend beyond the right edge of the bar code symbol.
Parameters Details
m = starting mode Accepted Values:
0 = Regular Alphanumeric Mode
1 = Multiple Read Alphanumeric
2 = Regular Numeric Mode
3 = Group Alphanumeric Mode
4 = Regular Alphanumeric Shift 1
5 = Regular Alphanumeric Shift 2
A = Automatic Mode. The printer determines the starting mode by
analyzing the field data.
Default Value: A
^XA
^FO150,100^BY3
^B4N,20,A,A
^FD12345ABCDE^FS
^XZ
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
two-character sequence of a shift character followed by a character in the unshifted character
set.
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.
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.
^B5
Planet Code bar code
Description The ^B5 command is supported in all printers as a resident bar code.
Format ^B5o,h,f,g
Parameters Details
o = orientation code Accepted Values:
N = normal
R = rotated
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: current ^FW value
h = bar code height (in Accepted Values: 1 to 9999
dots) Default Value: value set by ^BY
f = interpretation line Accepted Values:
N = no
Y = yes
Default Value: N
g = determines if the Accepted Values:
interpretation line is N = no
printed above the bar Y = yes
code
Default Value: N
^XA
^FO150,100^BY3
^B5N,100,Y,N
^FD12345678901^FS
^XZ
^B7
PDF417 Bar Code
Description 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 187.
• 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 Accepted Values:
N = normal
R = rotated 90 degrees (clockwise)
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: current ^FW value
h = bar code height for Accepted Values: 1 to height of label
individual rows (in Default Value: value set by ^BY
dots) 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.
s = security level Accepted Values: 1 to 8 (error detection and correction)
Default Value: 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 Accepted Values: 1 to 30
columns to encode Default Value: 1:2 (row-to-column aspect ratio)
You can specify the number of code-word columns giving control over the
width of the symbol.
Parameters Details
r = number of rows to Accepted Values: 3 to 90
encode Default Value: 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.
t = truncate right row Accepted Values:
indicators and stop N = no truncation
pattern Y = perform truncation
Default Value: N
Example 3 • This example shows the ^B7 command used with field hex (^FH) characters:
^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
When used with ^B7, the parameters for the ^BY command are:
w = module width (in dots)
Accepted Values: 2 to 10
Default Value: 2
r = ratio
Fixed Value: 3 (ratio has no effect on PDF417)
h = height of bars (in dots)
Accepted Values: 1 to 32000
Default Value: 10
PDF417 uses this only when row height is not specified in the ^B7 h parameter.
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 944, ^CC ~CC on page 140, and
^CT ~CT on page 155.
• 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 (\).
^B8
EAN-8 Bar Code
Description 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.
Format ^B8o,h,f,g
Parameters Details
o = orientation Accepted Values:
N = normal
R = rotated 90 degrees (clockwise)
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: current ^FW value
h = bar code height (in Accepted Values: 1 to 32000
dots) Default Value: value set by ^BY
f = print interpretation Accepted Values:
line N = no
Y = yes
Default Value: Y
g = print interpretation Accepted Values:
line above code N = no
Y = yes
Default Value: N
^XA
^FO100,100^BY3
^B8N,100,Y,N
^FD1234567^FS
^XZ
^B9
UPC-E Bar Code
Description 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.
Format ^B9,h,f,g,e
Parameters Details
o = orientation Accepted Values:
N = normal
R = rotated 90 degrees (clockwise)
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: current ^FW value
h = bar code height (in Accepted Values: 1 to 32000
dots) Default Value: value set by ^BY
f = print interpretation Accepted Values:
line N = no
Y = yes
Default Value: Y
g = print interpretation Accepted Values:
line above code N = no
Y = yes
Default Value: N
Parameters Details
e = print check digit Accepted Values:
N = no
Y = yes
Default Value: Y
^XA
^FO150,100^BY3
^B9N,100,Y,N,Y
^FD1230000045^FS
^XZ
^BA
Code 93 Bar Code
Description 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.
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.
Format ^BAo,h,f,g,e
Parameters Details
o = orientation Accepted Values:
N = normal
R = rotated 90 degrees (clockwise)
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: current ^FW value
h = bar code height (in Accepted Values: 1 to 32000
dots) Default Value: value set by ^BY
f = print interpretation Accepted Values:
line N = no
Y = yes
Default Value: Y
g = print interpretation Accepted Values:
line above code N = no
Y = yes
Default Value: N
Parameters Details
e = print check digit Accepted Values:
N = no
Y = yes
Default Value: N
^XA
^FO100,75^BY3
^BAN,100,Y,N,N
^FD12345ABCDE^FS
^XZ
Code 93 is also capable of encoding the full 128-character ASCII set. For more details, see
Table 4 on page 78.
^BB
CODABLOCK Bar Code
Description 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.
Format ^BBo,h,s,c,r,m
Parameters Details
o = orientation Accepted Values:
N = normal
R = rotated 90 degrees (clockwise)
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: N
h = bar code height for Accepted Values: 2 to 32000
individual rows (in Default Value: 8
dots) This number, multiplied by the module, equals the height of the individual
row in dots.
s = security level Accepted Values:
N = no
Y = yes
Default Value: 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 Accepted Values: 2 to 62 characters
per row (data This is used to encode a CODABLOCK symbol. It gives the you control
columns) over the width of the symbol.
Parameters Details
r = number of rows to Accepted Values:
encode 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 both parameters are specified, the amount of field data must be less
than the product of the specified parameters. If the field data exceeds
the value of the product, either no symbol or an error code is printed (if
^CV is active).
• 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.
m = mode Accepted 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 Value: F
The parameters for the ^BYw,r,h command, when used with a ^BB code, are as follows:
w = module width (in dots)
Accepted Values: 2 to 10 (CODABLOCK A only)
Default Value: 2
r = ratio
Fixed Value: 3 (ratio has no effect on CODABLOCK E or F)
h = height of bars (in dots)
Accepted Values: 1 to 32,32000
Default Value: 10
CODABLOCK uses this as the overall symbol height only when the row height is not
specified in the ^BB h parameter.
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 <nul> character can be inserted using of the ^FH command.
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 <nul>
character can be inserted using of the ^FH command.
^BC
Code 128 Bar Code (Subsets A, B, and C)
Description 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.
Format ^BCo,h,f,g,e,m
Important • If additional information about the Code 128 bar code is required, go to
www.aimglobal.org.
Parameters Details
o = orientation Accepted Values:
N = normal
R = rotated 90 degrees (clockwise)
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: current ^FW value
h = bar code height (in Accepted Values: 1 to 32000
dots) Default Value: value set by ^BY
f = print interpretation Accepted Values: Y (yes) or N (no)
line Default Value: Y
The interpretation line can be printed in any font by placing the font
command before the bar code command.
g = print interpretation Accepted Values: Y (yes) or N (no)
line above code Default Value: N
e = UCC check digit Accepted Values: Y (turns on) or N (turns off)
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 Value: N
Parameters Details
m = mode Accepted 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 Value: N
^XA
^FO100,100^BY3
^BCN,100,Y,N,N
^FD123456^FS
^XZ
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 6 shows the Code 128 Invocation Codes and Start Characters for the three subsets.
Start Characters
>9 103 Start Code A (Numeric Pairs give Alpha/Numerics)
>: 104 Start Code B (Normal Alpha/Numeric)
>; 105 Start Code C (All numeric (00 - 99)
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
^XA
^FO100,75
^BCN,100,Y,N,N
^FD>:CODE128^FS
^XZ
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
^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).
^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.
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:
^ > ~
Code 128, Subsets A and C are programmed in pairs of digits, 00 to 99, in the field data
string. For details, see Table 6 on page 86.
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 C and Figure D below are examples of Subset C. Notice that the bar codes are
identical. In the program code for Figure D, 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
^XA
^FO100,75^BY3
^BCN,100,Y,N,N
^FD>;38D2436^FS
^XZ
^XA
^FO100,75^BY3
^BCN,100,Y,N,N
^FD>935473637171824^FS
^XZ
Figure E: Subset A
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.
UCC/EAN-128 offers several advantages. It is one of the most complete, alphanumeric, one-
dimensional 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 self-checking 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 8, UCC Application Identifier Table on page 93. 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.
^XA
^FO90,200^BY4
^BCN,256,Y,N,Y,N
^FD>;>80012345123451234512^FS
^XZ
^XA
^FO90,200
^BY4^BC,256,Y,N,,U
^FD0012345123451234512^FS
^XZ
^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.
• 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.
Example 7 • This example shows printing the interpretation in a different font with firmware
x.11.x or later:
^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.
• Creating a separate text field allows you to format the interpretation line with
parentheses and spaces.
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.
Note • Table 8 is a partial table showing the application identifiers. For more current and
complete information, search the Internet for UCC Application Identifier.
For date fields that only need to indicate a year and month, the day field is set to 00.
^BD
UPS MaxiCode Bar Code
Description 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 Accepted Values:
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 Value: 2
n = symbol number Accepted Values: 1 to 8 can be added in a structured document
Default Value: 1
t = total number of Accepted Values: 1 to 8, representing the total number of symbols in this
symbols sequence
Default Value: 1
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.
Parameters Details
<hpm> = high priority Accepted Values: 0 to 9, except where noted
message (applicable U.S. Style Postal Code (Mode 2)
only in Modes 2 and <hpm> = aaabbbcccccdddd
3)
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)
<hpm> = aaabbbcccccc
aaa = three-digit class of service
bbb = three-digit country zip code
ccccc = six-digit zip code (A through Z or 0 to 9)
<lpm> = low priority GS is used to separate fields in a message (0x1D). RS is used to separate format
message (only types (0x1E). EOT is the end of transmission characters.
applicable in Modes Message Header [)>RS
2 and 3)
Transportation Data
Format Header 01GS96
Tracking Number* <tracking number>
SCAC* GS<SCAC>
UPS Shipper Number GS<shipper number>
Julian Day of Pickup GS<day of pickup>
Shipment ID Number GS<shipment ID number>
Package n/x GS<n/x>
Package Weight GS<weight>
Address Validation GS<validation>
Ship to Street Address GS<street address>
Ship to City GS<city>
Ship to State GS<state>
RS RS
End of Message EOT
(* Mandatory Data for UPS)
Comments
• The formatting of <hpm> and <lpm> 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 <lpm> 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 ( _ ).
^BE
EAN-13 Bar Code
Description 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.
Format ^BEo,h,f,g
Parameters Details
o = orientation Accepted Values:
N = normal
R = rotated 90 degrees (clockwise)
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: current ^FW value
h = bar code height (in Accepted Values: 1 to 32000
dots) Default Value: value set by ^BY
f = print interpretation Accepted Values:
line N = no
Y = yes
Default Value: Y
g = print interpretation Accepted Values:
line above code N = no
Y = yes
Default Value: N
^XA
^FO100,100^BY3
^BEN,100,Y,N
^FD12345678^FS
^XZ
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 974.
^BF
MicroPDF417 Bar Code
Description 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 Accepted Values:
N = normal
R = rotated 90 degrees (clockwise)
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: current ^FW value
h = bar code height (in Accepted Values: 1 to 9999
dots) Default Value: value set by ^BY or 10 (if no ^BY value exists).
m = mode Accepted Values: 0 to 33 (see Table 9, MicroPDF417 Mode on page 102)
Default Value: 0 (see Table 9)
^XA
^FO100,100^BY6
^BFN,8,3
^FDABCDEFGHIJKLMNOPQRSTUV^FS
^XZ
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).
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 9, MicroPDF417 Mode on page 102 with the information gathered from the
questions above to select the mode of the bar code.
^BI
Industrial 2 of 5 Bar Codes
Description 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.
Format ^BIo,h,f,g
Parameters Details
o = orientation Accepted Values:
N = normal
R = rotated 90 degrees (clockwise)
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: current ^FW value
h = bar code height (in Accepted Values: 1 to 32000
dots) Default Value: value set by ^BY
f = print interpretation Accepted Values:
line N = no
Y = yes
Default Value: Y
g = print interpretation Accepted Values:
line above code N = no
Y = yes
Default Value: N
^XA
^FO100,100^BY3
^BIN,150,Y,N
^FD123456^FS
^XZ
^BJ
Standard 2 of 5 Bar Code
Description 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.
Format ^BJo,h,f,g
Parameters Details
o = orientation Accepted Values:
N = normal
R = rotated 90 degrees (clockwise)
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: current ^FW value
h = bar code height (in Accepted Values: 1 to 32000
dots) Default Value: value set by ^BY
f = print interpretation Accepted Values:
line N = no
Y = yes
Default Value: Y
g = print interpretation Accepted Values:
line above code N = no
Y = yes
Default Value: N
^XA
^FO100,100^BY3
^BJN,150,Y,N
^FD123456^FS
^XZ
^BK
ANSI Codabar Bar Code
Description 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.
Format ^BKo,e,h,f,g,k,l
Important • If additional information about the ANSI Codabar bar code is required, go to
www.aimglobal.org.
Parameters Details
o = orientation Accepted Values:
N = normal
R = rotated 90 degrees (clockwise)
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: current ^FW value
e = check digit Fixed Value: N
h = bar code height (in Accepted Values: 1 to 32000
dots) Default Value: value set by ^BY
f = print interpretation Accepted Values:
line N = no
Y = yes
Default Value: Y
g = print interpretation Accepted Values:
line above code N = no
Y = yes
Default Value: N
k = designates a start Accepted Values: A,B, C, D
character Default Value: A
l = designates stop Accepted Values: A,B, C, D
character Default Value: A
^XA
^FO100,100^BY3
^BKN,N,150,Y,N,A,A
^FD123456^FS
^XZ
^BL
LOGMARS Bar Code
Description 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.
Format ^BLo,h,g
Parameters Details
o = orientation Accepted Values:
N = normal
R = rotated 90 degrees (clockwise)
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: current ^FW value
h = bar code height (in Accepted Values: 1 to 32000
dots) Default Value: value set by ^BY
g = print interpretation Accepted Values:
line above code N = no
Y = yes
Default Value: N
^XA
^FO100,75^BY3
^BLN,100,N
^FD12AB^FS
^XZ
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 43 Check Digit on page 975.
^BM
MSI Bar Code
Description 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.
Format ^BMo,e,h,f,g,e2
Parameters Details
o = orientation Accepted Values:
N = normal
R = rotated 90 degrees (clockwise)
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: current ^FW value
e = check digit selection Accepted Values:
A = no check digits
B = 1 Mod 10
C = 2 Mod 10
D = 1 Mod 11 and 1 Mod 10
Default Value: B
h = bar code height (in Accepted Values: 1 to 32000
dots) Default Value: value set by ^BY
f = print interpretation Accepted Values:
line N = no
Y = yes
Default Value: Y
g = print interpretation Accepted Values:
line above code N = no
Y = yes
Default Value: N
Parameters Details
e2 = inserts check digit Accepted Values:
into the interpretation N = no
line Y = yes
Default Value: N
^XA
^FO100,100^BY3
^BMN,B,100,Y,N,N
^FD123456^FS
^XZ
^BO
Aztec Bar Code Parameters
Description 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 Accepted Values:
N = normal
R = rotated
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: current ^FW value
b = magnification factor Accepted Values: 1 to 10
Default Value:
1 on 150 dpi printers
2 on 200 dpi printers
3 on 300 dpi printers
6 on 600 dpi printers
c = extended channel Accepted Values:
interpretation code Y = if data contains ECICs
indicator N = if data does not contain ECICs.
Default Value: N
d = error control and Accepted Values:
symbol size/type 0 = default error correction level
indicator 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 Value: 0
e = menu symbol Accepted Values:
indicator Y = if this symbol is to be a menu (bar code reader initialization) symbol
N = if it is not a menu symbol
Default Value: N
f = number of symbols Accepted Values: 1 through 26
for structured append Default Value: 1
Parameters Details
g = optional ID field for The ID field is a text string with 24-character maximum
structured append Default Value: no ID
^BP
Plessey Bar Code
Description 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.
Format ^BPo,e,h,f,g
Parameters Details
o = orientation Accepted Values:
N = normal
R = rotated 90 degrees (clockwise)
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: current ^FW value
e = print check digit Accepted Values:
N = no
Y = yes
Default Value: N
h = bar code height (in Accepted Values:
dots) N = no
Y = yes
Default Value: N
f = print interpretation Accepted Values:
line N = no
Y = yes
Default Value: Y
g = print interpretation Accepted Values:
line above code N = no
Y = yes
Default Value: N
^XA
^FO100,100^BY3
^BPN,N,100,Y,N
^FD12345^FS
^XZ
^BQ
QR Code Bar Code
Description 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.
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.
Format ^BQa,b,c,d,e
Parameters Details
a = field orientation Fixed Value: normal (^FW has no effect on rotation)
b = model Accepted Values: 1 (original) and 2 (enhanced – recommended)
Default Value: 2
c = magnification factor Accepted Values: 1 to 10
Default Value:
1 on 150 dpi printers
2 on 200 dpi printers
3 on 300 dpi printers
6 on 600 dpi printers
d = H,Q,M,L Accepted Values:
H = ultra-high reliability level
Q = high reliability level
M = standard level
L = high density level
Default Value:
Q = if empty
M = invalid values
Parameters Details
e = N,A,B.K Accepted Values: 1 - 7
Default Value: 7
^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.
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.
1 2 3
1 4
3
2
Example 3 •QR Code, normal mode with standard reliability and manual data input:
1 2 3 4
^XA
^FO,20,20^BQ,2,10
^FDD03048F,LM,N0123456789,A12AABB,B0006qrcode^FS
^XZ
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
For proper functionality, when encoding Kanji characters in ^CI28-30 (Unicode) be sure
the JIS.DAT table is loaded on the printer and specified.
^BR
GS1 Databar (formerly Reduced Space Symbology)
Description 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 Accepted Values:
N = Normal
R = Rotated
I = Inverted
B = Bottom-up
Default Value: R
b = symbology type in Accepted Values:
the GS1 DataBar 1 = GS1 DataBar Omnidirectional
family 2 = GS1 DataBar Truncated
3 = GS1 DataBar Stacked
4 = GS1 DataBar Stacked Omnidirectional
5 = GS1 DataBar Limited
6 = GS1 DataBar Expanded
7 = UPC-A
8 = UPC-E
9 = EAN-13
10 = EAN-8
11 = UCC/EAN-128 and CC-A/B
12 = UCC/EAN-128 and CC-C
Default Value: 1
c = magnification factor Accepted Values: 1 to 10
Default Value:
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
d = separator height Accepted Values: 1 or 2
Default Value: 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.
Accepted Values: 1 to 32000 dots
Default Value: 25
f = the segment width Accepted Values: 2 to 22, even numbers only, in segments per line
(GS1 DataBar Default Value: 22
Expanded only)
^XA
^FO10,10^BRN,7,5,2,100
^FD12345678901|this is composite info^FS
^XZ
^XA
^FO10,10^BRN,1,5,2,100
^FD12345678901|this is composite info^FS
^XZ
^BS
UPC/EAN Extensions
Description 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.
Format ^BSo,h,f,g
Parameters Details
o = orientation Accepted Values:
N = normal
R = rotated 90 degrees (clockwise)
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: current ^FW value
h = bar code height (in Accepted Values: 1 to 32000
dots) Default Value: value set by ^BY
f = print interpretation Accepted Values:
line N = no
Y = yes
Default Value: Y
g = print interpretation Accepted Values:
line above code N = no
Y = yes
Default Value: Y
^XA
^FO100,100^BY3
^BSN,100,Y,N
^FD12^FS
^XZ
^XA
^FO100,100^BY3
^BSN,100,Y,N
^FD12345^FS
^XZ
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:
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:
^BT
TLC39 Bar Code
Description 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 Accepted Values:
N = normal
R = rotated
I = inverted
B = bottom up
w1 = width of the Code Accepted Value (in dots): 1 to 10
39 bar code Default Value (600 dpi printers): 4
Default Value (200- and 300 dpi printer): 2
r1 = wide to narrow bar Accepted Values: 2.0 to 3.0(increments of 0.1)
width ratio the Code Default Value: 2.0
39 bar code
h1 = height of the Code Accepted Values (in dots): 1 to 9999
39 bar code Default Value (600 dpi printer): 120
Default Value (300 dpi printer): 60
Default Value (200 dpi printer): 40
h2 = row height of the Accepted Values (in dots): 1 to 255
MicroPDF417 bar Default Value (600 dpi printer): 8
code
Default Value (200- and 300 dpi printers): 4
w2 = narrow bar width of Accepted Values (in dots): 1 to 10
the Default Value (600 dpi printer): 4
MicroPDF417 bar
Default Value (200- and 300 dpi printers): 2
code
Use the command defaults to get results that are in compliance with TCIF industry standards;
regardless of printhead density.
1 2
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).
• Must be 6 digits.
• Firmware generates invalid character error if the firmware sees anything but
6 digits.
• This number is not padded.
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.
• If present, must be alphanumeric (letters and numbers, no punctuation).
This value is used if a comma follows the ECI number.
3 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:
^BU
UPC-A Bar Code
Description 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.
Format ^BUo,h,f,g,e
Important • If additional information about the UPC-A bar code is required, go to
www.aimglobal.org.
Parameters Details
o = orientation Accepted Values:
N = normal
R = rotated 90 degrees (clockwise)
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: current ^FW value
h = bar code height (in Accepted Values: 1 to 9999
dots) Default Value: value set by ^BY
f = print interpretation Accepted Values:
line N = no
Y = yes
Default Value: Y
g = print interpretation Accepted Values:
line above code N = no
Y = yes
Default Value: N
e = print check digit Accepted Values:
N = no
Y = yes
Default Value: Y
The font style of the interpretation line depends on the modulus (width of narrow bar) selected
in ^BY:
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 974.
^BX
Data Matrix Bar Code
Description 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 Accepted Values:
N = normal
R = rotated 90 degrees (clockwise)
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: current ^FW value
h = dimensional height of Accepted Values: 1 to the width of the label
individual symbol The individual elements are square — this parameter specifies both
elements 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.
s = quality level Accepted Values: 0, 50, 80, 100, 140, 200
Default Value: 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
Reed-Solomon 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 Accepted 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 Accepted Values: 9 to 49
Parameters Details
f = format ID (0 to 6) — Accepted Values:
not used with quality 1 = field data is numeric + space (0..9,”) – No \&’’
set at 200 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 Value: 6
g = escape sequence Accepted Values: any character
control character Default Value: ~ (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.
a = aspect ratio Accepted Values:
1 = square
2 = rectangular
Default Value: 1
The a parameter is only
supported in V60.16.5Z
and V53.16.5Z or later.
ECC
LEVEL ID = 1 ID = 2 ID = 3 ID = 4 ID = 5 ID = 6
a1
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.
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.
• 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 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)
^BY
Bar Code Field Default
Description 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 Accepted Values: 1 to 10
dots) Initial Value at power-up: 2
r = wide bar to narrow Accepted Values: 2.0 to 3.0, in 0.1 increments
bar width ratio This parameter has no effect on fixed-ratio bar codes.
Default Value: 3.0
h = bar code height (in Initial Value at power-up: 10
dots)
For parameter r, the actual ratio generated is a function of the number of dots in parameter w,
module width. See Table 11 on page 139.
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.
Module width and height (w and h) can be changed at anytime with the ^BY command,
regardless of the symbology selected.
Ratio
Selected Module Width in Dots (w)
(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 2:1 2.5:1 2.6:1 2.75:1 2.8:1 2.8:1 2.85:1 2.87:1 2.8:1 2.9:1
3.0 3:1 3:1 3:1 3:1 3:1 3:1 3:1 3:1 3:1 3:1
Comments Once a ^BY command is entered into a label format, it stays in effect until
another ^BY command is encountered.
^CC ~CC
Change Caret
Description The ^CC command is used to change the format command prefix. The default
prefix is the caret (^).
Parameters Details
x = caret character Accepted Values: any ASCII character
change Default Value: a parameter is required. If a parameter is not entered, the next
character received is the new prefix character.
^BZ
POSTAL Bar Code
Description 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 Accepted Values:
N = normal
R = rotated 90 degrees (clockwise)
I = inverted 180 degrees
B = read from bottom up, 270 degrees
Default Value: current ^FW value
h = bar code height (in Accepted Values: 1 to 32000
dots) Default Value: value set by ^BY
f = print interpretation Accepted Values:
line N = no
Y = yes
Default Value: N
g = print interpretation Accepted Values:
line above code N = no
Y = yes
Default Value: N
t = Postal code type Accepted Values:
0 = Postnet bar code
1 = Plant Bar Code
2 = Reserved
3 = USPS Intelligent Mail bar code
Default Value: 0
^XA
^FO100,100^BY3
^BZN,40,Y,N
^FD12345^FS
^XZ
^XA
^FO100,040^BZ,40,,,3
^FD00123123456123456789^FS
^XZ
^CD ~CD
Change Delimiter
Description 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 (,).
Parameters Details
a = delimiter character Accepted Values: any ASCII character
change Default Value: 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
^CF
Change Alphanumeric Default Font
Description 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 Accepted Values: A through Z and 0 to 9
Initial Value at power-up: A
h = individual character Accepted Values: 0 to 32000
height (in dots) Initial Value at power-up: 9
w = individual character Accepted Values: 0 to 32000
width (in dots) 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:
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.
^CI
Change International Font/Encoding
Description 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.
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 0 - 12 are Zebra Code Page 850 with specific character
replacements. For details, see International Character Sets on page 148 and/or
Zebra Code Page 850 — Latin Character Set on page 944.
Accepted Values:
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
Note • These 9 = Single Byte Encoding - Italy Character Set
parameters are only 10 = Single Byte Encoding - Spain Character Set
valid when (parameter details continued on next page)
parameter
a = 1 - 13
a. The encoding is controlled by the conversion table (*.DAT). The correct table must be present for the conversion to func-
tion. The table generated by ZTools™ is the TrueType fonts internal encoding (Unicode).
b. 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.
c. 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.
d. The ^CI17 command has been deprecated, along with the ^F8 and ^F16 commands that are required for the ^CI17 com-
mand to function. The recommended replacement is the ^CI28-30 commands.
Parameters Details
a = desired character set 11 = Single Byte Encoding - Miscellaneous Character Set
(continued) 12 = Single Byte Encoding - Japan (ASCII with Yen symbol) Character
Set
13 = Zebra Code Page 850 (see page 944)
14 = Double Byte Asian Encodings a
15 = Shift-JIS b
16 = EUC-JP and EUC-CN a
17 = Deprecated - UCS-2 Big Endian d
18 to 23 = Reserved
24 = Single Byte Asian Encodings a
25 = Reserved
26 = Multibyte Asian Encodings with ASCII Transparency a and c
27 = Zebra Code Page 1252 (see page 948)
28 = Unicode (UTF-8 encoding) - Unicode Character Set
29 = Unicode (UTF-16 Big-Endian encoding) - Unicode Character Set
Values 28 to 30 are only 30 = Unicode (UTF-16 Little-Endian encoding) - Unicode Character Set
supported in firmware 31 = Zebra Code Page 1250 (see page 946) is supported for scalable
version V60.14.x, fonts, such as Font 0, or a downloaded TrueType font. Bitmapped
V50.14.x, or later. 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
Values 31 to 36 are only 35 = Code Page 1254
supported in firmware 36 = Code Page 1255
version x.16.x or later. Initial Value at power-up: 0
s1 = source 1 (character Accepted Values: decimals 0 to 255
output image)
d1 = destination 1 Accepted Values: decimals 0 to 255
(character input)
s2 = source 2 (character Accepted Values: decimals 0 to 255
output image)
d2 = destination 2 Accepted Values: decimals 0 to 255
(character input)
… = continuation of Up to 256 source and destination pairs can be entered in this command.
pattern
a. The encoding is controlled by the conversion table (*.DAT). The correct table must be present for the conversion to func-
tion. The table generated by ZTools™ is the TrueType fonts internal encoding (Unicode).
b. 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.
c. 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.
d. The ^CI17 command has been deprecated, along with the ^F8 and ^F16 commands that are required for the ^CI17 com-
mand 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:
^XA
^CI0,21,36
^FO100,200^A0N50,50^FD$0123^FS
^XZ
The font selected determines the shape and resolution of the printed symbol.
^CM
Change Memory Letter Designation
Description 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: Accepted Values: B:, E:,R:, A:, and NONE
Default Value: B:
b = memory alias for E: Accepted Values: B:, E:,R:, A:, and NONE
Default Value: E:
c = memory alias for R: Accepted Values: B:, E:,R:, A:, and NONE
Default Value: R:
d = memory alias for A: Accepted Values: B:, E:,R:, A:, and NONE
Default Value: A:
e = multiple alias Accepted Values: M, or no value
Default Value: 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.
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
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.
^CN
Cut Now
Description 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 295.
Supported Devices
• KR403
Format ^CNa
Parameters Details
a = Cut Mode Override Accepted Values:
0 = Use the “kiosk cut amount” setting from ^KV
1 = Ignore “kiosk cut amount” from ^KV and do a full cut
^CO
Cache On
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.
Description 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 Accepted Values:
N = no
Y = yes
Default Value: Y
b = amount of additional Accepted Values: 1 to 9999
memory to be added Default Value: 40
to cache (in K)
c = cache type Accepted Values:
0 = cache buffer (normal fonts)
1 = internal buffer (recommended for Asian fonts)
Default Value: 0
Example • To resize the print cache to 62K, assuming a 22K existing cache:
^COY,40
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.
^CP
Remove Label
Description 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
^CT ~CT
Change Tilde
Description The ^CT and ~CT commands are used to change the control command prefix.
The default prefix is the tilde (~).
Parameters Details
a = change control Accepted Values: any ASCII character
command character Default Value: 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
^CV
Code Validation
Description 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:
C = character not in character set
E = check-digit incorrect
L = data field too long
S = data field too short
P = parameter string contains incorrect data
(occurs only on select bar codes)
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 Accepted Values:
N = no
Y = yes
Default Value: N
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 GENERATED LABEL
^XA
^CVY
^FO50,50
^BEN,100,Y,N
^FD97823456 890^FS
^XZ
^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.
^CW
Font Identifier
Description 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 Accepted Values: A through Z and 0 to 9
to be substituted, or Default Value: a one-character entry is required
new font to be added
d = device to store font in Accepted Values: R:, E:, B:, and A:
(optional) Default Value: R:
o = name of the Accepted Values: any name up to 8 characters
downloaded font to Default Value: if a name is not specified, UNKNOWN is used
be substituted for the
built-in, or as an
additional font
x = extension Accepted Values:
.FNT = Font
.TTF = TrueType Font
.TTE is only supported in .TTE = TrueType Extension
firmware version V60.14.x,
V50.14.x, or later.
~DB
Download Bitmap Font
Description 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 Accepted Values: R:, E:, B:, and A:
Default Value: R:
o = name of font Accepted Values: 1 to 8 alphanumeric characters
Default Value: if a name is not specified, UNKNOWN is used
x = extension Format: .FNT
a = orientation of native Fixed Value: normal
font
h = maximum height of Accepted Values: 1 to 32000
cell (in dots) Default Value: a value must be specified
w = maximum width of Accepted Values: 1 to 32000
cell (in dots) Default Value: a value must be specified
base = dots from top of Accepted Values: 1 to 32000
cell to character Default Value: a value must be specified
baseline
space = width of space Accepted Values: 1 to 32000
or Default Value: a value must be specified
non-existent
characters
#char = number of Accepted Values: 1 to 256 (must match the characters being downloaded)
characters in font Default Value: a value must be specified
© = copyright holder Accepted Values: 1 to 63 alphanumeric characters
Default Value: a value must be specified
Parameters Details
data = structured The # symbol signifies character code parameters, which are separated with
ASCII data that periods. The character code is from 1 to 4 characters to allow for large
defines each international character sets to be downloaded to the printer.
character in the font 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
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
~DE
Download Encoding
Description 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 Accepted Values: R:, E:, B:, and A:
Default Value: R:
o = name of table Accepted Values: any valid name, up to 8 characters
Default Value: if a name is not specified, UNKNOWN is used
x = extension Format: .DAT
s = table size Accepted Values: the number of memory bytes required to hold the Zebra
downloadable format of the font
Default Value: if an incorrect value or no value is entered, the command is
ignored
data = data string Accepted Values: a string of ASCII hexadecimal values
Default Value: if no data is entered, the command is ignored
~DER:JIS.DAT,27848,300021213001...
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 1
00320042 2
00330043 3
00340044 4
Data must have 0041, 0042, 0043, and 0044 in order. Multiple pairs can be on the same line.
^DF
Download Format
Description 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 Accepted Values: R:, E:, B:, and A:
Default Value: R:
o = image name Accepted Values: 1 to 8 alphanumeric characters
Default Value: 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 47.
Example • This example is generated using the ^XF command to recall this format:
~DG
Download Graphics
Description 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 172.
Format ~DGd:o.x,t,w,data
Parameters Details
d = device to store image Accepted Values: R:, E:, B:, and A:
Default Value: R:
o = image name Accepted Values: 1 to 8 alphanumeric characters
Default Value: if a name is not specified, UNKNOWN is used
x = extension Format: .GRF
t = total number of bytes See the formula in the examples below.
in graphic
w = number of bytes per See the formula in the examples below.
row
data = ASCII The data string defines the image and is an ASCII hexadecimal representation
hexadecimal string of the image. Each character represents a horizontal nibble of four dots.
defining image
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.
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
^F020,20^XGR:SAMPLE.GRF,1,1^FS
^XZ
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.
~DN
Abort Download Graphic
Description 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.
~DS
Download Intellifont (Scalable Font)
Description 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 Accepted Values: R:, E:, B:, and A:
Default Value: R:
o = image name Accepted Values: 1 to 8 alphanumeric characters
Default Value: 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 Fixed Value: this number is generated by ZTools and should not be changed
hexadecimal string
that defines font
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 170, ~DU on page 171, and ~DY
on page 172.
~DT
Download Bounded TrueType Font
Description 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 171. ZTools creates a downloadable file that includes a ~DT command. For
information on converting and downloading Intellifont information, see ~DS on page 169.
Format ~DTd:o.x,s,data
Parameters Details
d = font location Accepted Values: R:, E:, B:, and A:
Default Value: R:
o = font name Accepted Values: any valid TrueType name, up to 8 characters
Default Value: if a name is not specified, UNKNOWN is used
x = extension Fixed Value: .DAT
s = font size Accepted Values: the number of memory bytes required to hold the Zebra-
downloadable format of the font
Default Value: if an incorrect value or no value is entered, the command is
ignored
data = data string Accepted Values: a string of ASCII hexadecimal values (two hexadecimal
digits/byte). The total number of two-digit values must match parameter s.
Default Value: if no data is entered, the command is ignored
~DU
Download Unbounded TrueType Font
Description 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 Zebra-downloadable format.
The Field Block (^FB) command cannot support the large TrueType fonts.
Format ~DUd:o.x,s,data
Parameters Details
d = font location Accepted Values: R:, E:, B:, and A:
Default: R:
o = font name Accepted Values: 1 to 8 alphanumeric characters
Default Value: if a name is not specified, UNKNOWN is used
x = extension Format: .FNT
s = font size Accepted Values: the number of memory bytes required to hold the Zebra-
downloadable format of the font
Default Value: if no data is entered, the command is ignored
data = data string Accepted Values: a string of ASCII hexadecimal values (two hexadecimal
digits/byte). The total number of two-digit values must match parameter s.
Default Value: if no data is entered, the command is ignored
For similar commands, see ~DS on page 169, ~DT on page 170, and ~DY on page 172.
~DY
Download Objects
Description 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.
Format ~DYd:f,b,x,t,w,data
Parameters Details
d = file location Accepted Values: R:, E:, B:, and A:
Default Value: R:
Parameters Details
x = extension of stored Accepted Values:
file B = bitmap
E = TrueType Extension (.TTE)
G = raw bitmap (.GRF)
.TTE and .OTF are only P = store as compressed (.PNG)
supported in firmware T = TrueType (.TTF) or OpenType (.OTF)
versions V60.14.x, X = Paintbrush (.PCX)
V50.14.x, or later. NRD = Non Readable File (.NRD)
PAC = Protected Access Credential (.PAC)
C = User defined menu file (WML)
.NRD and .PAC are only F = User defined webpage file (HTM)
supported in firmware H = Printer feedback file (GET)
versions V60.15.x, Default Value: a value other than the accepted values defaults to .GRF
V50.15.x, or later.
t = total number of bytes Accepted Values:
in file .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
This parameter refers to the actual size of the file, not the amount of
disk space.
.TTE is only supported in
.TTE
firmware versions
V60.14.x, V50.14.x, or This parameter refers to the actual size of the file, not the amount of
later. disk space.
Parameters Details
w = total number of bytes Accepted Values:
per row .GRF images: number of bytes per row
.PNG images: value ignored
.TTF images: value ignored
.TTE is only supported in .TTE images: value ignored
firmware version V60.14.x,
V50.14.x, or later. .NRD images: value ignored
.PAC images: value ignored
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.
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,,
These are some important things to know about this command in firmware version V60.14.x,
V50.14.x, or later:
• 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.
~EG
Erase Download Graphics
See ^ID on page 236.
^FB
Field Block
Description 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 Accepted Values: 0 to the width of the label
line (in dots) Default Value: 0
If the value is less than font width or not specified, text does not print.
b = maximum number of Accepted Values: 1 to 9999
lines in text block Default Value: 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.
c = add or delete space Accepted Values: -9999 to 9999
between lines (in Default Value: 0
dots) Numbers are considered to be positive unless preceded by a minus sign.
Positive values add space; negative values delete space.
d = text justification Accepted Values:
L = left
C = center
R = right
J = justified
Default Value: L
If J is used the last line is left-justified.
e = hanging indent (in Accepted Values: 0 to 9999
dots) of the second Default Value: 0
and remaining lines
Example • These are examples of how the ^FB command affects field data.
^XA
^CF0,30,30^FO25,50
^FDFD command that IS NOT
preceded by an FB command.^FS
^XZ
Comments
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.
^FC
Field Clock
Description 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 Accepted Values: any ASCII character
indicator character Default Value: %
b = secondary clock Accepted Values: any ASCII character
indicator character Default Value: none—this value cannot be the same as a or c
c = third clock indicator Accepted Values: any ASCII character
character Default Value: 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.
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 999.
^FD
Field Data
Description The ^FD command defines the data string for the field. The field data can be
any printable character except those used as command prefixes (^ and ~).
Format ^FDa
Parameters Details
a = data to be printed Accepted Values: any data string up to 3072 bytes
Default Value: none—a string of characters must be entered
Comments The ^ and ~ characters can be printed by changing the prefix characters—see
^CD ~CD on page 143 and ^CT ~CT on page 155. 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 178.
^FH
Field Hexadecimal Indicator
Description 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)).
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 Accepted Values: any character except current format and control prefix (^ and
indicator ~ by default)
Default Value: _ (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.
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
^FL
Font Linking
This command is available only for printers with firmware versions V60.14.x, V50.14.x, or
later.
Description 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, please use the font wizard in
ZebraNet Bridge.
Format ^FL<ext>,<base>,<link>
Parameters Details
<ext> 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
<base> This is the filename of the base font(s) to which <ext> is associated. This can
be partially or fully wild carded; all files that match the wildcard specification
will have this extension associated with it.
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 associated with the specified <ext> font
extension.
<link> This is an indicator that determines if the extension is to be linked with the
base, or unlinked from the base, as follows:
Accepted Values:
0 = <ext> is to be unlinked (disassociated) from the file(s) specified in
<base>
1 = <ext> is to be linked (associated) with the file(s) specified by
<base>
Default Value: 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.
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.
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.
^FM
Multiple Field Origin Locations
Description 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 Accepted Values:
first symbol (in dots) 0 to 32000
e = exclude this bar code from printing
Default Value: a value must be specified
y1 = y-axis location of Accepted Values:
first symbol (in dots) 0 to 32000
e = exclude this bar code from printing
Default Value: a value must be specified
x2 = x-axis location of Accepted Values:
second symbol (in 0 to 32000
dots) e = exclude this bar code from printing
Default Value: a value must be specified
y2 = y-axis location of Accepted Values:
second symbol (in 0 to 32000
dots) e = exclude this bar code from printing
Default Value: a value must be specified
… = continuation of X,Y Maximum number of pairs: 60
pairs
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:
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.
Example • This example assumes a maximum of three bar codes, with bar code 2 of 3
omitted:
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.
^FN
Field Number
Description 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 Accepted Values: 0 to 9999
assigned to the field Default Value: 0
"a" = optional Accepted Values: 255 alphanumeric characters maximum
parameter* (a-z,A-Z,1-9 and space)
Default Value: optional parameter
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.
^FO
Field Origin
Description The ^FO command sets a field origin, relative to the label home (^LH)
position. ^FO sets the upper-left 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 Accepted Values: 0 to 32000
dots) Default Value: 0
y = y-axis location (in Accepted Values: 0 to 32000
dots) Default Value: 0
z = justification Accepted Values:
0 = left justification
1 = right justification
The z parameter is only 2 = auto justification (script dependent)
supported in firmware Default Value: last accepted ^FW value or ^FW default
versions V60.14.x,
V50.14.x, or later.
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 993.
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.
^FP
Field Parameter
Description 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 Accepted Values:
H = horizontal printing (left to right)
V = vertical printing (top to bottom)
R = reverse printing (right to left)
Default Value: H
g = additional Accepted Values: 0 to 9999
inter-character gap Default Value: 0 if no value is entered
(in dots)
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 993.
^FR
Field Reverse Print
Description 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:
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.
^FS
Field Separator
Description 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 ^FS
^FT
Field Typeset
Description 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.
Format ^FTx,y,z
Parameters Details
x = x-axis location (in Accepted Values: 0 to 32000
dots) Default Value: position after last formatted text field
y = y-axis location (in Accepted Values: 0 to 32000
dots) Default Value: position after last formatted text field
z = justification Accepted Values:
0 = left justification
1 = right justification
2 = auto justification (script dependent)
Default Value: last accepted ^FW value or ^FW default
The z parameter is only
supported in firmware The auto justification option may cause unexpected results if variable fields or
version V60.14.x, bidirectional text are used with ^FT. For best results with bidirectional text
V50.14.x, or later. and/or variable fields, use either the left of right justification options.
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 993
^FV
Field Variable
Description ^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 Accepted Values: 0 to 3072 byte string
be printed Default Value: if no data is entered, the command is ignored
Example • This is an example of how to use the ^MC and ^FV command:
^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.
^FW
Field Orientation
Description 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 Accepted Values:
N = normal
R = rotated 90 degrees
I = inverted 180 degrees
B = bottom-up 270 degrees, read from bottom up
Initial Value at Power-up: N
z = justification Accepted Values:
0 = left justification
1 = right justification
The z parameter is 2 = auto justification (script dependent)
available only with printers Default Value: auto for ^TB and left for all other commands
with firmware version
V60.14.x, V50.14.x, or
later.
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).
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.
^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 .
^FX
Comment
Description 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 Creates a non-printable comment.
comment
Comments Correct usage of the ^FX command includes following it with the ^FS
command.
^GB
Graphic Box
Description 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) Accepted Values: value of t to 32000
Default Value: value used for thickness (t) or 1
h = box height (in dots) Accepted Values: value of t to 32000
Default Value: value used for thickness (t) or 1
t = border thickness (in Accepted Values: 1 to 32000
dots) Default Value: 1
c = line color Accepted Values:
B = black
W = white
Default Value: B
r = degree of corner- Accepted Values: 0 (no rounding) to 8 (heaviest rounding)
rounding Default Value: 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.
where the shorter side is the lesser of the width and height (after adjusting for minimum and
default values).
^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
^GC
Graphic Circle
Description 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 Accepted Values: 3 to 4095 (larger values are replaced with 4095)
dots) Default Value: 3
t = border thickness (in Accepted Values: 2 to 4095
dots) Default Value: 1
c = line color Accepted Values:
B = black
W = white
Default Value: B
^XA
^FO50,50
^GC250,10,B^FS
^XZ
^GD
Graphic Diagonal Line
Description 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) Accepted Values: 3 to 32000
Default Value: value of t (thickness) or 3
h = box height (in dots) Accepted Values: 3 to 32000
Default Value: value of t (thickness) or 3
t = border thickness (in Accepted Values: 1 to 32000
dots) Default Value: 1
c = line color Accepted Values:
B = black
W = white
Default Value: B
o = orientation (direction Accepted Values:
of the diagonal) R (or /) = right-leaning diagonal
L (or \) = left-leaning diagonal
Default Value: 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:
^XA
^FO150,100
^GB350,203,10^FS
^FO155,110
^GD330,183,10,,R^FS
^XZ
^GE
Graphic Ellipse
Description The ^GE command produces an ellipse in the label format.
Format ^GEw,h,t,c
Parameters Details
w = ellipse width (in dots) Accepted Values: 3 to 4095 (larger values are replaced with 4095)
Default Value: value used for thickness (t) or 1
h = ellipse height (in Accepted Values: 3 to 4095
dots) Default Value: value used for thickness (t) or 1
t = border thickness (in Accepted Values: 2 to 4095
dots) Default Value: 1
c = line color Accepted Values:
B = black
W = white
Default Value: B
^XA
^FO100,100
^GE300,100,10,B^FS
^XZ
^GF
Graphic Field
Description 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 Accepted 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 Value: A
b = binary byte count Accepted 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 Value: command is ignored if a value is not specified
c = graphic field count Accepted 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 Value: command is ignored if a value is not specified
d = bytes per row Accepted Values: 1 to 99999
This is the number of bytes in the downloaded data that comprise one row
of the image.
Default Value: command is ignored if a value is not specified
Parameters Details
data = data Accepted 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
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
^GS
Graphic Symbol
Description The ^GS command enables you to generate the registered trademark,
copyright symbol, and other symbols.
Format ^GSo,h,w
Parameters Details
o = field orientation Accepted Values:
N = normal
R = rotate 90 degrees clockwise
I = inverted 180 degrees
B = bottom-up, 270 degrees
Default Value: N or last ^FW value
h = character height Accepted Values: 0 to 32000
proportional to width Default Value: last ^CF value
(in dots)
w = character width Accepted Values: 0 to 32000
proportional to Default Value: last ^CF value
height (in dots)
Example • Use the ^GS command followed by ^FD and the appropriate character (A
through E) within the field data to generate the desired character:
~HB
Battery Status
Description When the ~HB command is sent to the printer, a data string is sent back to the
host. The string starts with an <STX> control code sequence and terminates by an
<ETX><CR><LF> control code sequence.
Format ~HB
Comments This command is used for the power-supply battery of the printer and should
not be confused with the battery backed-up RAM.
~HD
Head Diagnostic
Description The ~HD command echoes printer status information that includes the power
supply and head temperature using the terminal emulator.
Format ~HD
^HF
Host Format
Description The ^HF command sends stored formats to the host.
Format ^HFd,o,x
Parameters Details
d = device to recall Accepted Values: R:, E:, B:, and A:
image Default Value: R:
o = image name Accepted Values: 1 to 8 alphanumeric characters
Default Value: if a name is not specified, UNKNOWN is used
x = extension Fixed Value: .ZPL
^HG
Host Graphic
Description 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 Accepted Values: R:, E:, B:, and A:
of object Default Value: search priority
o = object name Accepted Values: 1 to 8 alphanumeric characters
Default Value: 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 233.
^HH
Configuration Label Return
Description 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:
~HI
Host Identification
Description 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-per-millimeter setting, memory size, and any detected objects.
Format ~HI
~HM
Host RAM Status
Description 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:
1 1024,0780,0780 3
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.
~HQ
Host Query
Description 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 219.
Accepted Values:
ES = requests the printer’s status - see Table 13 on page 217 and Table 14
on page 218
HA = hardware address of the internal wired print server
JT = requests a summary of the printer’s printhead test results
MA = maintenance alert settings
MI = maintenance information
OD = odometer
PH = printhead life history
PP = printer’s Plug and Play string
SN = printer’s serial number
UI = USB product ID and BDC release version
Comments The response to the ~HQ command starts with STX, a CR LF is inserted
between each line, and the response ends with ETX.
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
Ribbon Out 1 00000000 X X X X X X X 2
Media Out 1 00000000 X X X X X X X 1
a a a
Clear Paper Path Failed 1 00000000 X X X X 8 X X X
a a a
Paper Feed Error 1 00000000 X X X X 4 X X X
a a a
Presenter Not Running 1 00000000 X X X X 2 X X X
a a a
Paper Jam during Retract 1 00000000 X X X X 1 X X X
a a a
Black Mark not Found 1 00000000 X X X 8 X X X X
a a a
Black Mark Calabrate Error 1 00000000 X X X 4 X X X X
a a a
Retract Function timed out 1 00000000 X X X 2 X X X X
a a a
Paused 1 00000000 X X X 1 X X X X
a. This error flag is supported only on KR403 printers.
No Warning 0 00000000 0 0 0 0 0 0 0 0
Warning Present 1 00000000 X X X X X X X X
b b b
Paper-near-end Sensor 1 00000000 X X X X X X X 8
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
b b b
Sensor 1 (Paper before head) 1 00000000 X X X X X X 1 X
b b b
Sensor 2 (Black mark) 1 00000000 X X X X X X 2 X
b b b
Sensor 3 (Paper after head) 1 00000000 X X X X X X 4 X
b b b
Sensor 4 (loop ready) 1 00000000 X X X X X X 8 X
b b b
Sensor 5 (presenter) 1 00000000 X X X X X 1 X X
b b b
Sensor 6 (retract ready) 1 00000000 X X X X X 2 X X
b b b
Sensor 7 (in retract) 1 00000000 X X X X X 4 X X
b b b
Sensor 8 (at bin) 1 00000000 X X X X X 8 X X
b. This error flag is supported only on KR403 printers.
~HQ Examples
This section provides detail examples of all the available parameters.
1 3 5
PRINTER STATUS
ERRORS: 1 00000000 00000005
WARNINGS: 1 00000000 00000002
2 4 6
1 Flag
2 Nibble 16-9
3 Nibble 8-4
4 Nibble 3
5 Nibble 2
6 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
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 268.
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
0,A,0000,0000,0000
1 2 3 4 5
1 Element failure
2 Manual (M) or automatic (A) range
3 First test element
4 Last test element
5 Failure count
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: 1 km
HEAD REPLACEMENT FREQUENCY: 0 M
HEAD CLEANING INTERVAL: 0 M
HEAD CLEANING FREQUENCY: 0 M
PRINT REPLACEMENT ALERT: NO
PRINT CLEANING ALERT: NO
UNITS: 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 1
The printer responds with data similar to this:
MAINTENANCE ALERT MESSAGES 2
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: 21744 cm
USER RESETTABLE CNTR1: 24 cm
USER RESETTABLE CNTR2: 21744 cm
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:
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 11 • This is an example of how to retrieve the printer’s USB product ID and BCD
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: 0085
RELEASE VERSION: 15.01
~HS
Host Status Return
Description When the host sends ~HS to the printer, the printer sends three data strings
back. Each string starts with an <STX> control code and is terminated by an
<ETX><CR><LF> 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 <STX>aaa,b,c,dddd,eee,f,g,h,iii,j,k,l<ETX><CR><LF>
c. 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 eight-bit binary
number. To evaluate this parameter, first convert the decimal number to a binary number.
aaa = a8 a7 a6 a5 a 4 a3 a2 a1 a0
a 7 = Handshake a 8 a 2 a 1 a 0 = Baud
0 = Xon/Xoff
1 = DTR 0 000 = 110
6 0 001 = 300
a = Parity Odd/Even
0 010 = 600
0 = Odd
0 011 = 1200
1 = Even
0 100 = 2400
a 5 = Disable/Enable 0 101 = 4800
0 = Disable 0 110 = 9600
1 = Enable 0 111 = 19200
1 000 = 28800 (available only on certain printer models)
a 4 = Stop Bits 1 001 = 38400 (available only on certain printer models)
0 = 2 Bits 1 010 = 57600 (available only on certain printer models)
1 = 1 Bit 1 011 = 14400
a 3 = Data Bits
0 = 7 Bits
1 = 8 Bits
String 2 <STX>mmm,n,o,p,q,r,s,t,uuuuuuuu,v,www<ETX><CR><LF>
d. This string specifies the printer’s media type, sensor profile status, and communication diagnostics sta-
tus. As in String 1, this is a three-digit decimal representation of an eight-bit binary number. First, con-
vert the decimal number to a binary number.
e. These values are only supported on the Xi4, RXi4, ZM400/ZM600, and RZ400/RZ600 printers.
mmm = m7 m6 m5 m4 m3 m2 m1 m0
m7 = Media Type m4 m3 m2 m1 = Unused
0 = Die-Cut 0 = Off
1 = Continuous 1 = On
m6 = Sensor Profile m0 = Print Mode
0 = Off 0 = Direct Thermal
1 = Thermal Transfer
m5 = Communications Diagnostics
0 = Off
1 = On
String 3 <STX>xxxx,y<ETX><CR><LF>
xxxx = password
^HT
Host Linked Fonts List
This command is available only for printers with firmware version V60.14.x, V50.14.x, or
later.
Description 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:
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
~HU
Return ZebraNet Alert Configuration
Description 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 350 for complete information on the individual parameter settings.
B,C,Y,Y,[email protected],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,[email protected],0
N,C,Y,Y,[email protected],0
O,C,Y,Y,[email protected],0
P,C,Y,Y,[email protected],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 [email protected].
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.
^HV
Host Verification
Description 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 The value assigned to this parameter should be the same as
specified with the one used in another command.
another command Accepted Values: 0 to 9999
Default Value: 0
n = number of bytes to be Accepted Values: 1 to 256
returned Default Value: 64
h = header to be returned Delimiter characters terminate the string. This field is Field
with the data Hex (^FH) capable.
Accepted Values: 0 to 3072 bytes
Default Value: no header
t = termination This field is Field Hex (^FH) capable.
Accepted Values: 0 to 3072 characters
a = command applies to When ^PQ is greater than 1, send one response for a label
format or one for every label printed.
Accepted Values:
F = Format
L = Label
Default Value: F
^HW
Host Directory List
Description ^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:
<STX><CR><LF>
DIR R: <CR><LF>
*Name.ext(2sp.)(6 obj. sz.)(2sp.)(3 option flags)
*Name.ext(2sp.)(6 obj. sz.)(2sp.)(3 option flags)
<CR><LF>
-xxxxxxx bytes free
<CR><LF>
<ETX>
<STX> = start of text
<CR><LR> = carriage return/line feed
<ETX> = 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 Accepted Values: R:, E:, B:, A:and Z:
object listing Default Value: R:
o = object name Accepted Values: 1 to 8 alphanumeric characters
Default Value: asterisk (*). A question mark (?) can also be used.
x = extension Accepted Values: any extension conforming to Zebra conventions
Default Value: asterisk (*). A question mark (?) can also be used.
Parameters Details
f = format Accepted Values:
c = column format
d = default format
Default Value: d
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
^HY
Upload Graphics
Description 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 Accepted Values: R:, E:, B:, and A:
Default Value: search priority
o = object name Accepted Values: 1 to 8 alphanumeric characters
Default Value: an object name must be specified
x = extension Accepted Values:
G = .GRF (raw bitmap format)
P = .PNG (compressed bitmap format)
Default Value: 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.
^HZ
Display Description Information
Description 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 Accepted Values:
return a = display all information
f = display printer format setting information
l = display object directory listing information
o = display individual object data information
r = display printer status information
Default Value: if the value is missing or invalid, the command is ignored
Format ^HZO,d:o.x,l
Parameters Details
d = location of stored Accepted Values: R:, E:, B:, and A:
object Default Value: R:
o = object name Accepted Values: 1 to 8, or 1 to 16 alphanumeric characters based on
parameter l.
Default Value: 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 Accepted 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 Value: N
Example • This example shows the object data information for the object SAMPLE.GRF
located on R:.
^XA
^HZO,R:SAMPLE.GRF
^XZ
^ID
Object Delete
Description 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 Accepted Values: R:, E:, B:, and A:
object Default Value: R:
o = object name Accepted Values: any 1 to 8 character name
Default Value: if a name is not specified, UNKNOWN is used
x = extension Accepted Values: any extension conforming to Zebra conventions
Default Value: .GRF
Example 2 • To delete formats and images named SAMPLE from DRAM, regardless of the
extension:
^XA
^IDR:SAMPLE.*^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
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.
^IL
Image Load
Description 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.
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 Accepted Values: R:, E:, B:, and A:
object Default Value: R:
o = object name Accepted Values: 1 to 8 alphanumeric characters
Default Value: 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 240 command.
^IM
Image Move
Description 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 Accepted Values: R:, E:, B:, and A:
object Default Value: search priority
o = object name Accepted Values: 1 to 8 alphanumeric characters
Default Value: if a name is not specified, UNKNOWN is used
x = extension Fixed Value: .GRF, .PNG
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.
^IS
Image Save
Description 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.
\
Format ^ISd:o.x,p
Parameters Details
d = location of stored Accepted Values: R:, E:, B:, and A:
object Default Value: R:
o = object name Accepted Values: 1 to 8 alphanumeric characters
Default Value: if a name is not specified, UNKNOWN is used
x = extension Accepted Values: .GRF or .PNG
Default Value: .GRF
p = print image after Accepted Values:
storing N = no
Y = yes
Default Value: Y
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.
~JA
Cancel All
Description 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 ~JA
^JB
Initialize Flash Memory
Description 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 Acceptable Values:
A = Option Flash memory
B = Flash card (PCMCIA)
E = internal Flash memory
Default Value: a device must be specified
Note • Initializing memory can take several minutes. Be sure to allow sufficient time for the
initialization to complete before power cycling the printer.
~JB
Reset Optional Memory
Description 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.
~JC
Set Media Sensor Calibration
Description 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.
~JD
Enable Communications Diagnostics
Description 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 ~JD
~JE
Disable Diagnostics
Description The ~JE command cancels Diagnostic Mode and returns the printer to normal
label printing.
Format ~JE
~JF
Set Battery Condition
Description 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-by-label 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 Accepted 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 Value: Y
~JG
Graphing Sensor Calibration
Description 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.
^JH
Early Warning Settings
Description The ^JH command configures the early warning messages that appear on the
LCD.
Supported Devices
• 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 This parameter is for XiIIIPlus, Xi4, RXi4, PAX3, and PAX4 printers only.
media Accepted Values:
a = supplies warning E = enable
(Xi4 and RXi4 D = disable
printers only)
Default Value: D
b = labels per roll This parameter is for XiIIIPlus, PAX3, and PAX4 printers only.
Accepted Values: 100 to 9999
Default Value: 900
c = media replaced This parameter is for XiIIIPlus, PAX3, and PAX4 printers only.
Accepted Values:
Y = yes
N = no
Default Value: N
Parameter Details
d = ribbon length This parameter is for XiIIIPlus, PAX3, and PAX4 printers only.
The accepted values for the XiIII series printers are 100M through 450M. PAX
series printers allow for values up to 900M.
Accepted Values:
0 = 100M 10 = 600M
1 = 150M 11 = 650M
2 = 200M 12 = 700M
3 = 250M 13 = 750M
4 = 300M 14 = 800M
5 = 350M 15 = 850M
6 = 400M 16 = 900M
7 = 450M
8 = 500M
9 = 550M
Default Value: 7
e = ribbon replaced This parameter is for XiIIIPlus, PAX3, and PAX4 printers only.
Accepted Values:
Y = yes
N = no
Default Value: N
f = early warning This parameter is for Xi4, RXi4, PAX4, ZM400, ZM600, RZ400, RZ600, and
maintenance S4M printers only.
Accepted Values:
E = enabled
D = disabled
Default Value: D
Important • On G-Series printers, this parameter must be enabled for
the ^MA driven system to work.
Parameter Details
g = head cleaning Accepted value exceptions: accepted values for XiIII printer are 100M
interval through 450M; accepted values for 600 dpi XiIII printers are 100M through
150M; accepted values for PAX4 series printers can accept values up to 900M
by increments of 50M; accepted values for ZM400/ZM600, RZ400/RZ600,
and S4M printers are 0M through 450M.
Accepted Values:
0 = 100M 11 = 650M
1 = 150M (default for 96XiIII) 12 = 700M
2 = 200M 13 = 750M
3 = 250M 14 = 800M
4 = 300M 15 = 850M
5 = 350M 16 = 900M
6 = 400M
7 = 450M (default for all except 96XiIII)
8 = 500M
9 = 550M
10= 600M
Default Value: see above
h = head clean Accepted Values:
N = No
Y = Yes
Default Value: N
i = head life Accepted Values:
threshold 0 – 0 in or off
100-3500000 in
Default Value: 1000000
j = head replaced Accepted Values:
N = no
Y = yes
Default Value: N
Comments To permanently save the changes to the ^JH command, send ^XA^JUS^XZ.
^JI
Start ZBI (Zebra BASIC Interpreter)
Identifies features that are available in printers with firmware version V60.16.2Z, V53.16.2Z,
or later.
Description ^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 Acceptable Values: R:, E:, B:, and A:
program to run Default Value: location must be specified
after initialization
o = name of program Accepted Values: any valid program name
to run after Default Value: name must be specified
initialization
x = extension of Fixed Value: .BAS, .BAE
program to run .BAE is only supported in firmware version
after initialization V60.16.0Z or later
b = console control Accepted Values:
Y = console on
N = console off
Default Value: Y
c = echoing control Accepted Values:
Y = echo on
N = echo off
Default Value: Y
d = memory allocation Accepted Values: 20K to 1024K
for ZBI * Default Value: 50K
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.
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.
~JI
Start ZBI (Zebra BASIC Interpreter)
Identifies features that are available in printers with firmware version V60.16.2Z, V53.16.2Z,
or later.
Description ~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
^JJ
Set Auxiliary Port
Description 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 Accepted Values:
auxiliary port 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 Value: 0
b = application mode Accepted 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 Value: 0
c = application mode Accepted Values:
start signal print 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 Value: 0
Parameters Details
d = application label Accepted Values:
error mode 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 Value: f
e = reprint mode Accepted 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 Value: d
f = ribbon low mode Accepted Values:
e = enabled – printer warning issued when ribbon low.
d = disabled – printer warning not issued when ribbon low.
Default Value: e
~JL
Set Label Length
Description 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 ~JL
^JM
Set Dots per Millimeter
Description 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 Accepted Values:
millimeter 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 Value: A
Example • This example of the affects of alternating the dots per millimeter:
^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.
~JN
Head Test Fatal
Description 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.
~JO
Head Test Non-Fatal
Description 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 ~JO
~JP
Pause and Cancel Format
Description 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 ~JP
~JQ
Terminate Zebra BASIC Interpreter
Identifies features that are available in printers with firmware version V60.16.2Z, V53.16.2Z,
or later.
Description 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.
~JR
Power On Reset
Description 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 ~JR
^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 Accepted Values:
A = auto select
R = reflective sensor
T = transmissive sensor
Default Value:
Z series = A
S4M = R
~JS
Change Backfeed Sequence
Description The ~JS command is used to control the backfeed sequence. This command
can be used on printers with or without built-in cutters.
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 Accepted Values:
relation to printing 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 Value: 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.
^JT
Head Test Interval
Description 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 Accepted Values: 0000 to 9999
number of labels If a value greater than 9999 is entered, it is ignored.
printed between head Default Value: 0000 (off)
tests
a = manually select range Accepted Values:
of elements to test N = no
Y = yes
Initial Value at Power-up: N
b = first element to check Accepted Values: 0 to 9999
when parameter a is Initial Value at Power-up: 0
Y
c = last element to check Accepted Values: 0 to 9999
when parameter a is Initial Value at Power-up: 9999
Y
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).
^JU
Configuration Update
Description The ^JU command sets the active configuration for the printer.
Format ^JUa
Parameters Details
a = active configuration Accepted 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 Value: a value must be specified
^JW
Set Ribbon Tension
Description ^JW sets the ribbon tension for the printer it is sent to.
Format ^JWt
Parameters Details
t = tension Accepted Values:
L = low
M = medium
H = high
Default Value: a value must be specified
~JX
Cancel Current Partially Input Format
Description 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 ~JX
^JZ
Reprint After Error
Description 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 Accepted 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.
~KB
Kill Battery (Battery Discharge Mode)
Description 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.
^KD
Select Date and Time Format (for Real Time Clock)
Description 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 Accepted Values:
time format 0 = normal, displays Version Number of firmware
1 = MM/DD/YY (24-hour clock)
2 = MM/DD/YY (12-hour clock)
3 = DD/MM/YY (24-hour clock)
4 = DD/MM/YY (12-hour clock)
Default Value: 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 999.
^KL
Define Language
Description The ^KL command selects the language displayed on the control panel.
Format ^KLa
Parameters Details
a = language Accepted 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 f
15 = Simplified Chinese f
16 = Traditional Chinese f
17 = Russian f
18 = Polish f
Default Value: 1
f. These values are only supported on the Xi4, RXi4, ZM400/ ZM600, and RZ400/RZ600 printers.
^KN
Define Printer Name
Description 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
Parameters Details
a = printer name Accepted Values: up to 16 alphanumeric characters
Default Value: 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 Accepted Values: up to 35 alphanumeric characters
Default Value: 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 an description:
This shows how a configuration looks before using this command and after using this
command:
^XA
^KNZebra1,desk_printer
^XZ
^KP
Define Password
Description 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 four-digit Accepted Values: any four-digit numeric sequence
password Default Value: 1234
b = password level Accepted Values: 1, 2, 3, 4
Default Value: 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.
^KV
Kiosk Values
Description 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 Accepted Values:
0 = normal cut
10-60 = partial cut, value = mm of media left uncut
Default Value: 0
This parameter is ignored if it is missing or invalid. The current value of the
parameter remains unchanged.
b = kiosk cut margin Accepted Values:
2 - 9 = mm of distance
Default Value:
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 Accepted 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 Value: 0
This parameter is ignored if it is missing or invalid. The current value of the
parameter remains unchanged.
d = kiosk present timeout Accepted 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 Value: 0
This parameter is ignored if it is missing or invalid. The current value of the
parameter remains unchanged.
Parameters Details
e = presenter loop length Accepted Values:
0 = paper is fed straight through the presenter
3-1023 = loop length in mm.
Default Value: 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.
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
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
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
^LF
List Font Links
This command is available only for printers with firmware version V60.14.x, V50.14.x, or
later.
Description 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:
^LH
Label Home
Description 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 Accepted Values: 0 to 32000
dots) Initial Value at Power-up: 0 or last permanently saved value
y = y-axis position (in Accepted Values: 0 to 32000
dots) 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.
^LL
Label Length
Description 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 Accepted Values: 1 to 32000, not to exceed the maximum label size.
dots) While the printer accepts any value for this parameter, the amount of
memory installed determines the maximum length of the label.
Default Value: typically set through the LCD (if applicable), or to the
maximum label length capability of the printer.
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.
^LR
Label Reverse Print
Description 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 Accepted 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.
Comments The ^LR setting remains active unless turned off by ^LRN or the printer is
turned off.
^LS
Label Shift
Description 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
Format ^LSa
Important • The ability to save the ^LS command depends on the version of firmware.
Parameters Details
a = shift left value (in Accepted Values: -9999 to 9999
dots) 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.
^LT
Label Top
Description 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 Accepted Values:
rows) HC100: 0 to 120
XiIIIPlus 600dpi: -240 to 240
All other Zebra printers: -120 to 120
Default Value: 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.
^MA
Set Maintenance Alerts
This command is available only for printers with firmware version V60.15.x, V50.15.x, or
later.
Description 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 Accepted Values:
R = head replacement
C = head cleaning
Default Value: 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 Accepted Values:
if the alert prints Y = print a label
a label N = do not print label
Default Value: N
printlabel Accepted Values:
threshold= R = head replacement (unit of measurement for head is km with a range of
distance where 0 to 150 km)
the first alert C = clean head (unit of measurement is 1 meter = 39.37 inches with a
occurs range of 0 to 2000 meters. The range for G-Series printers is 100 to
2000 meters.
0 = off (when set to 0, the selected alert is disabled; otherwise it is
enabled.
Default Value: R = 50 km (1,968,500 inches) and C = 0 (off).
Parameters Details
frequency = The unit of measurement is in meters. The range is 0 to 2000. The range for G-
distance before Series printers is 0 or 5 to 2000 meters.When set to 0, the alert label is only
reissuing the printed on power-up or when the printer is reset.
alert Default Value: 0 (print on power-up).
units = odometer The units parameter reports units of the odometer and printhead maintenance
and printhead commands, as follows: ~HQOD,~HQPH,~WQOD, ~WQPH.
maintenance Accepted Values:
commands C = centimeters (displays as: cm)
I = inches (displays as: ")
M = meters (displays as: M)
Default Value: 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 219.
The intent of this command is to cause a label to print when the defined threshold is reached.
^MC
Map Clear
Description 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
Parameters Details
a = map clear Accepted 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.
^MD
Media Darkness
Description The ^MD command adjusts the darkness relative to the current darkness
setting.
Format ^MDa
Parameters Details
a = media darkness level Accepted 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 label formats.
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.
^MF
Media Feed
Description 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- Accepted Values:
up F = feed to the first web after sensor
C = (see ~JC on page 245 definition)
L = (see ~JL on page 258 definition)
N = no media feed
S = short calibration g
Default Value: C
h = feed action after Accepted Values:
closing printhead F = feed to the first web after sensor
C = (see ~JC on page 245 definition)
L = (see ~JL on page 258 definition)
N = no media feed
S = short calibration g
Default Value: C
g. 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.
^MI
Set Maintenance Information Message
This command is available only for printers with firmware version V60.15.x, V50.15.x, or
later.
Description 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 Accepted Values:
type of alert R = head replacement
C = head cleaning
Default Value: R
message = message The maximum length of each message is 63 characters. All characters
that prints on the following the comma and preceding the next tilde (~) or carat (^) define the
label when a message string. Commas (,) are not allowed in the message.
maintenance Default Value:
alert occurs 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:
^ML
Maximum Label Length
Description The ^ML command lets you adjust the maximum label length.
Format ^MLa
Parameters Details
a = maximum label Accepted Values: 0 to maximum length of label
length (in dot rows) Default Value: 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.
^MM
Print Mode
Description 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 Accepted Values:
T = Tear-off h
P = Peel-off (not available on S-300) h
R = Rewind (depends on printer model)
A = Applicator (depends on printer model) h
C = Cutter (depends on printer model)
D = Delayed cutter h
F = RFID h
L = Reserved h, i
U = Reserved h, i
K = Kiosk j
Default Value:
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
Note • Send ~JK in a separate file - it cannot be sent at the end of a set of commands.
Comments Be sure to select the appropriate value for the print mode being used to avoid
unexpected results.
^MN
Media Tracking
Description The ^MN command relays to the printer what type of media is being used
(continuous or non-continuous) for purposes of tracking.
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 Accepted Values:
N = continuous media
Y = non-continuous media web sensing k, l
W = non-continuous media web sensing k, l
M = non-continuous media mark sensing
A = auto-detects the type of media during calibration k, m
V = continuous media, variable length n
Default Value: a value must be entered or the command is ignored
b = black mark offset in This sets the expected location of the media mark relative to the point of
dots 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.
Accepted Values:
-80 to 283 for direct-thermal only printers
-240 to 566 for 600 dpi printers
-120 to 283 for all other printers
Default Value: 0
k. Provides the same result.
l. This value is not supported on the KR403 printer.
m. This parameter is supported only on G-series printers.
n. This parameter is supported only on the KR403 printer.
^MP
Mode Protection
Description 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 Accepted 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 = disable Pause
F = disable Feed
X = disable Cancel
M = disable menu changes
Default Value: a value must be entered or the command is ignored
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
^MT
Media Type
Description The ^MT command selects the type of media being used in the printer.
Format ^MTa
Parameters Details
a = media type used Accepted Values:
T = thermal transfer media
D = direct thermal media
Default Value: a value must be entered or the command is
ignored
^MU
Set Units of Measurement
Description 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 Accepted Values:
D = dots
I = inches
M = millimeters
Default Value: D
b = format base in dots Accepted Values: 150, 200, 300
per inch Default Value: a value must be entered or the command is ignored
c = desired dots-per-inch Accepted Values: 300, 600
conversion Default Value: a value must be entered or the command is ignored
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.
^MW
Modify Head Cold Warning
Description 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 Accepted Values:
warning Y = enable head cold warning
N = disable head cold warning
^NC
Select the Primary Network Device
Description 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 15 outlines priorities and identifies which device becomes the active print server when
multiple print servers are installed.
X X X Internal
Wired X X External
X Wireless
X X X Wireless
Wireless X X Internal
X External
o. A wireless option board must have an active radio that can properly associate to an access point.
Format ^NCa
Parameters Details
a = primary network Accepted Values:
device 1 = wired primary
2 = wireless primary
Default Value: 1
must be an accepted value or it is ignored
~NC
Network Connect
Description 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 Accepted Values: 001 to 999
number assigned Default Value: 000 (none)
(must be a three-digit
entry)
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.
^ND
Change Network Settings
Description 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 Accepted Values:
being modified 1 = external wired
2 = internal wired
3 = wireless
b = IP resolution Accepted Values:
A = All
B = BOOTP
C = DHCP and BOOTP
D = DHCP
G = Gleaning only (Not recommended when the Wireless Print Server or
Wireless Plus Print Server is installed.)
R = RARP
P = Permanent
Default Value: A
c = IP address Accepted Values: Any properly formatted IP address in the xxx.xxx.xxx.xxx
format.
d = subnet mask Accepted Values: Any properly formatted subnet mask in the xxx.xxx.xxx.xxx
format.
e = default gateway Accepted Values: Any properly formatted gateway in the xxx.xxx.xxx.xxx
format.
f = WINS server Accepted Values: Any properly formatted WINS server in the xxx.xxx.xxx.xxx
address format.
Parameters Details
g = connection Accepted Values:
timeout checking Y = yes
N = no
Default Value: Y
h = timeout value Time, in seconds, before the connection times out.
Accepted Values: 0 through 9999
Default Value: 300
i = ARP broadcast Time, in minutes, that the broadcast is sent to update the device’s ARP cache.
interval Accepted Values: 0 through 30
Default Value: 0 (no ARP sent)
j = base raw port The port number that the printer should use for its RAW data.
number Accepted Values: 1 through 65535
Default Value: 9100
^NI
Network ID Number
Description 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 Accepted Values: 001 to 999
number assigned Default Value: 000 (none)
(must be a three-digit
entry)
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.
~NR
Set All Network Printers Transparent
Description 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.
^NS
Change Wired Networking Settings
Description 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 Accepted Values:
A = ALL
B = BOOTP
C = DHCP AND BOOTP
D = DHCP
G = GLEANING ONLY
R = RARP
P = PERMANENT
Default Value: A
Use of GLEANING ONLY is not recommended when the Wireless Print
Server or Wireless Plus Print Server is installed.
b = IP address Accepted Values: Any properly formatted IP address in the xxx.xxx.xxx.xxx
format.
c = subnet mask Accepted Values: Any properly formatted subnet mask in the xxx.xxx.xxx.xxx
format.
d = default gateway Accepted Values: Any properly formatted gateway in the xxx.xxx.xxx.xxx
format.
e = WINS server address Accepted Values: Any properly formatted WINS server in the xxx.xxx.xxx.xxx
format.
f = connection timeout Accepted Values:
checking Y = Yes
N = No
Default Value: Y
g = timeout value Time, in seconds, before the connection times out.
Accepted Values: 0 through 9999
Default Value: 300
h = ARP broadcast Time, in minutes, that the broadcast is sent to update the device’s ARP cache.
interval Accepted Values: 0 through 30
Default Value: 0 (no ARP sent)
i = base raw port number The port number that the printer should use for its RAW data.
Accepted Values: 1 through 65535
Default Value: 9100
Comments For the Xi4, RXI4, ZM400/ZM600, and RZ400/RZ600 printers, Zebra
recommends that you use the ^ND command instead of the ^NS command.
Example •
^XA
^NSa,192.168.0.1,255.255.255.0,192.168.0.2
^XZ
~NT
Set Currently Connected Printer Transparent
Description 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.
^PA
Advanced Text Properties
This command is available only for printers with firmware version V60.14.x, V50.14.x, or
later.
Description 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.
Accepted 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 Value: 0
b = bidirectional text This determines whether the bidirectional text layout is turned on or off.
layout Accepted Values:
0 = off
1 = on
Default Value: 0
c = character shaping This determines whether character shaping is turned on or off.
Accepted Values:
0 = off
1 = on
Default Value: 0
d = OpenType table This determines whether the OpenType support is turned on or off.
support Accepted Values:
0 = off
1 = on
Default Value: 0
^PF
Slew Given Number of Dot Rows
Description 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 Accepted Values: 0 to 32000
to slew Default Value: a value must be entered or the command is ignored
^PH ~PH
Slew to Home Position
Description 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.
~PL
Present Length Addition
Description 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 Accepted Values:
length 000-255 = additional mm of media to eject
Default Value: 000
The command is ignored if parameters are missing or invalid.
^PM
Printing Mirror Image of Label
Description 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 Accepted Values:
entire label N = no
Y = yes
Default Value: N
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.
^PN
Present Now
Description 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 316).
Supported Devices
• KR403
Format ^PNa
Parameters Details
a = media eject length Accepted Values:
0-255 = additional mm of media to eject
Default Value: none
The command is ignored if parameters are missing or invalid.
^PO
Print Orientation
Description 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 Accepted Values:
180 degrees N = normal
I = invert
Default Value: N
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.
^PP ~PP
Programmable Pause
Description 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.
^PQ
Print Quantity
Description 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
Parameters Details
q = total quantity of Accepted Value: 1 to 99,999,999
labels to print Default Value: 1
p = pause and cut value Accepted Value: 1 to 99,999,999
(labels between Default Value: 0 (no pause)
pauses)
r = replicates of each Accepted Value: 0 to 99,999,999 replicates
serial number Default Value: 0 (no replicates)
o = override pause count Accepted Values:
N = no
Y = yes
Default Value: N
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.
^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.
^PR
Print Rate
Description 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 Accepted Values:
1 = 25.4 mm/sec. (1 inch/sec.) a
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.)
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 b
14 = 14 in/sec b
Default Value: A
a. This value is supported only on the 110Xi4-600dpi, 110XiIIIPlus-600dpi , and RXi printers.
b. This value is supported only on the Xi4 and RXi4 printers.
Parameters Details
s = slew speed Accepted 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.)
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 b
14 = 14 in/sec b
Default Value: D
b = backfeed speed Accepted 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.)
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 b
14 = 14 in/sec b
Default Value: A
a. This value is supported only on the 110Xi4-600dpi, 110XiIIIPlus-600dpi , and RXi printers.
b. 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.
~PR
Applicator Reprint
Description If the ~PR command is enabled (see ^JJ on page 256), the last label printed
reprints, similar to the applicator asserting the Reprint signal on the applicator port.
Supported Devices
• 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.
~PS
Print Start
Description 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 ~PS
^PW
Print Width
Description The ^PW command allows you to set the print width.
Format ^PWa
Parameters Details
a = label width (in dots) Accepted 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 Value: last permanently saved value
~RO
Reset Advanced Counters
Description 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 Accepted Values:
1 = reset counter 1
2 = reset counter 2
3 = reset valid RFID label counter
4 = reset voided RFID label counter
C = reset head cleaned counter p
R = reset head replaced counter p
(R resets the head cleaned counter and the head replaced counter)
Default Value: a value must be specified or the command is ignored
p. 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
Example 2 • This example shows how the counter portion of the printer configuration labels
looks when the RFID counters are reset by sending ~RO3 and ~RO4.
Before
After
^SC
Set Serial Communications
Description 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 Accepted Values: 110 q; 300; 600; 1200; 2400; 4800; 9600; 14400;
19200; 28800; 38400; or 57600; 115200
Default Value: must be specified or the parameter is ignored
b = word length (in data Accepted Values: 7 or 8
bits) Default Value: must be specified
c = parity Accepted Values: N (none), E (even), or O (odd)
Default Value: must be specified
d = stop bits Accepted Values: 1 or 2
Default Value: must be specified
e = protocol mode Accepted Values:
X = XON/XOFF
D = DTR/DSR
R = RTS
M = DTR/DSR XON/XOFF r
Default Value: must be specified
f = Zebra protocol Accepted Values:
A = ACK/NAK
N = none
Z = Zebra
Default Value: must be specified
q. This value is not supported on Xi4, RXi4, ZM400/ZM600, RZ400/RZ600, and S4M printers.
r. This parameter is supported only on G-Series printers. Using the DTR/DSR XON/XOFF mode will cause the printer to re-
spond 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.
~SD
Set Darkness
Description 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 Accepted Values: 00 to 30
setting (two-digit Default Value: last permanently saved value
number)
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.
^SE
Select Encoding Table
Description 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 Accepted Values: R:, E:, B:, and A:
table Default Value: R:
o = name of encoding Accepted Value: 1 to 8 alphanumeric characters
table Default Value: a value must be specified
x = extension Fixed Value: .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
^SF
Serialization Field (with a Standard ^FD String)
Description 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.
Example 1 • This is an example of serializing a ^FD string. The ZPL II code generates three
separate labels as seen in 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.
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:
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.
^SI
Set Sensor Intensity
This command is available only for printers with firmware versions V53.15.x or later.
Description 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 Accepted Values:
to modify 1 = transmissive sensor brightness setting
2 = transmissive sensor baseline setting
Default Value: must be an accepted value or the entire command is ignored
b = the value to use for The ranges for this parameter are the same for the accepted values in
the sensor being parameter a.
configured Accepted Values: 0 to 196
Default Value: must be an accepted value or the entire command is ignored
^SL
Set Mode and Language (for Real-Time Clock)
Description 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 Accepted 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 Value: S
s. These values are only supported on the Xi4, RXi4, ZM400/ZM600, and RZ400/RZ600 printers.
Parameters Details
b = language Accepted Values:
1 = English
2 = Spanish
3 = French
4 = German
5 = Italian
6 = Norwegian
7 = Portuguese
8 = Swedish
9 = Danish
10 = Spanish 2
11 = Dutch
Value 13 is only supported 12 = Finnish
in firmware versions 13 = Japanese
V60.14.x, V50.14.x, or 14 = Korean s
later. 15 = Simplified Chinese s
16 = Traditional Chinese s
17 = Russian s
18 = Polish s
Default Value: the language selected with ^KL or the control panel
s. These values are only supported on the Xi4, RXi4, ZM400/ZM600, and RZ400/RZ600 printers.
For more details on set mode and language with the Real-Time Clock, see Real Time Clock
on page 999.
^SN
Serialization Data
Description 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 Accepted Values: 12-digits maximum for the portion to be indexed
Default Value: 1
n = increment or Accepted Values: 12-digit maximum
decrement value Default Value: 1
To indicate a decrement value, precede the value with a minus (–) sign.
z = add leading zeros (if Accepted Values:
needed) N = no
Y = yes
Default Value: N
^XA
^FO260,110
^CFG
^SN001,1,Y^FS
^PQ3
^XZ
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.
The default value for this parameter is N (do not 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.
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.
The starting value consists of the first number working backwards in the backing store
consecutive sequence of digits, including any leading spaces. The width (number of digits in
the sequence) is determined by scanning from right to left until the first alpha character
(except a space) is encountered. To create a specific width, manually place leading spaces or
zeros as necessary. Suppressed zeros are replaced by spaces. During the serialization process,
when the entire number contains all zeros, the last zero is not suppressed.
The ^SN command replaces the Field Data (^FD) command within a label formatting
program.
^SO
Set Offset (for Real-Time Clock)
Description 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 Accepted Values:
2 = secondary
3 = third
Default Value: value must be specified
b = months offset Accepted Values: –32000 to 32000
Default Value: 0
c = days offset Accepted Values: –32000 to 32000
Default Value: 0
d = years offset Accepted Values: –32000 to 32000
Default Value: 0
e = hours offset Accepted Values: –32000 to 32000
Default Value: 0
f = minutes offset Accepted Values: –32000 to 32000
Default Value: 0
g = seconds offset Accepted Values: –32000 to 32000
Default Value: 0
For more detail on set offset, see Real Time Clock on page 999.
^SP
Start Print
Description 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 Accepted Values: 0 to 32000
printing Default Value: 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
Label Segment 1
Dot position 800
^SQ
Halt ZebraNet Alert
Description The ^SQ command is used to stop the ZebraNet Alert option.
Format ^SQa,b,c
Parameters Details
a = condition type Accepted Values:
A = paper out
B = ribbon out
C = printhead over-temp
D = printhead under-temp
E = head open
F = power supply over-temp
G = ribbon-in warning (Direct Thermal Mode)
H = rewind full
I = cut error
J = printer paused
K = PQ job completed
L = label ready
M = head element out
N = ZBI (Zebra BASIC Interpreter) runtime error
O = ZBI (Zebra BASIC Interpreter) forced error
Q = clean printhead
R = media low
S = ribbon low
T = replace head
U = battery low
V = RFID error (in RFID printers only)
W = all errors (in RFID printers only)
* = all errors (in non-RFID printers)
b = destination Accepted Values:
A = serial port
B = parallel port
C = e-mail address
D = TCP/IP
E = UDP/IP
F = SNMP trap
* = wild card to stop alerts for all destinations
Parameters Details
c = halt messages Accepted Values:
Y = halt messages
N = start messages
Default Value: Y
^SR
Set Printhead Resistance
Description The ^SR command allows you to set the printhead resistance.
Format ^SR####
Parameters Details
#### = resistance value Accepted Value: 0488 to 1175
(four-digit numeric Default Value: last permanently saved value
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.
^SS
Set Media Sensors
Description 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 Accepted Values: 000 to 100
value) Default Value: value shown on the media sensor profile or configuration label
m = media (three-digit Accepted Values: 000 to 100
value) Default Value: value shown on the media sensor profile or configuration label
r = ribbon (three-digit Accepted Values: 000 to 100
value) Default Value: value shown on the media sensor profile or configuration label
l = label length (in dots, Accepted Values: 0001 to 32000
four-digit value) Default Value: value calculated in the calibration process
m2 = intensity of media Accepted Values: 000 to 255
LED (three-digit Default Value: value calculated in the calibration process
value)
r2 = intensity of ribbon Accepted Values: 000 to 255
LED (three-digit Default Value: value calculated in the calibration process
value)
a = mark sensing (three- Accepted Values: 000 to 100
digit value) Default Value: value calculated in the calibration process
b = mark media sensing Accepted Values: 000 to 100
(three-digit value) Default Value: value calculated in the calibration process
c = mark LED sensing Accepted Values: 000 to 255
(three-digit value) Default Value: value calculated in the calibration process
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-to-media.
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.
Maximum values for parameters depend on which printer platform is being used.
^ST
Set Date and Time (for Real-Time Clock)
Description 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 Accepted Values: 01 to 12
Default Value: current month
b = day Accepted Values: 01 to 31
Default Value: current day
c = year Accepted Values: 1998 to 2097
Default Value: current year
d = hour Accepted Values: 00 to 23
Default Value: current hour
e = minute Accepted Values: 00 to 59
Default Value: current minute
f = second Accepted Values: 00 to 59
Default Value: current second
g = format Accepted Values:
A = a.m.
P = p.m.
M = 24-hour military
Default Value: M
For more details on set date and time, see Real Time Clock on page 999.
^SX
Set ZebraNet Alert
Description 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 Accepted Values:
A = paper out
B = ribbon out
C = printhead over-temp
D = printhead under-temp
E = head open
F = power supply over-temp
G = ribbon-in warning (Direct Thermal Mode)
H = rewind full
I = cut error
J = printer paused
K = PQ job completed
L = label ready
M = head element out
N = ZBI (Zebra BASIC Interpreter) runtime error
O = ZBI (Zebra BASIC Interpreter) forced error
P = power on
Q = clean printhead
R = media low
S = ribbon low
T = replace head
U = battery low
V = RFID error (in RFID printers only)
* = all errors
Default Value: if the parameter is missing or invalid, the command is ignored
Parameters Details
b = destination for route Accepted Values:
alert A = serial port
B* = parallel port
C = e-mail address
D = TCP/IP
E = UDP/IP
F = SNMP trap
Default Value: if this parameter is missing or invalid, the command is ignored
* Requires bidirectional communication.
c = enable condition set Accepted Values:
alert to this N = no
destination Y = yes
Default Value: Y or previously configured value
d = enable condition Accepted Values:
clear alert to this N = no
destination Y = yes
Default Value: 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 Accepted Values:
Internet e-mail address (e.g. [email protected])
IP address (for example, 10.1.2.123)
SNMP trap
IP or IPX addresses
f = port number Accepted 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,[email protected]
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).
^SZ
Set ZPL
Description 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 Accepted Values:
1 = ZPL
2 = ZPL II
Default Value: 2
~TA
Tear-off Adjust Position
Description 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###
Parameters Details
### = change in media Accepted Values:
rest position –120 to 120
(3-digit value in dot
rows must be used.) 0 to 120 (on the HC100)
Default Value: last permanent value saved
^TB
Text Blocks
This command is available only for printers with firmware version V60.14.x, V50.14.x, or
later.
Description 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 Accepted Values:
N = normal
R = rotate 90 degrees clockwise
I = invert 180 degrees
B = read from bottom up-270 degrees
Default Value: whatever was specified by the last ^A (which has the default of
^FW)
b = block width in dots Accepted Values:
1 to the width of the label in dots
Default Value: 1 dot
c = block height in dots Accepted Values:
1 to the length of the label in dots
Default Value: 1 dot
^TO
Transfer Object
Description 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 Accepted Values: R:, E:, B:, and A:
stored object Default Value: if a drive is not specified, all objects are transferred to the drive
set in parameter s
o = stored object name Accepted Values: any existing object conforming to Zebra conventions
Default Value: if a name is not specified, * is used — all objects are selected
x = extension Accepted Values: any extension conforming to Zebra conventions
Default Value: if an extension is not specified, * is used — all extensions are
selected
d = destination device of Accepted Values: R:, E:, B:, and A:
the stored object Default Value: a destination must be specified
o = name of the object at Accepted Values: up to 8 alphanumeric characters
destination Default Value: if a name is not specified, the name of the existing object is used
x = extension Accepted Values: any extension conforming to Zebra conventions
Default Value: if an extension is not specified, the extension of the existing
object is used
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.
Transferring Objects
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
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
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.
~WC
Print Configuration Label
Description 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
^WD
Print Directory Label
Description 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 — Accepted Values: R:, E:, B:, A: and Z:
optional Default Value: R:
o = object name — Accepted Values: 1 to 8 alphanumeric characters
optional Default Value: *
The use of a ? (question mark) is also allowed.
x = extension — optional Accepted 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
.TTF and .TTE are only
.BAE = ZBI encrypted program
supported in firmware
version V60.14.x, .STO = data storage
V50.14.x, or later. .PNG = PNG graphic
* = all objects
.TTF = TrueType Font
.TTE = True Type Extension
Default Value: *
The use of a ? (question mark) is also allowed.
~WQ
Write Query
Description 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 362.
Accepted Values:
ES = requests the printer’s status. For details see, Table 16 on page 360
and Table 17 on page 361.
HA = hardware address of the internal wired print server
JT = requests a summary of the printer’s printhead test results
MA = maintenance alert settings
MI = maintenance information
OD = odometer
PH = printhead life history
PP = printer’s Plug and Play string
SN = printer’s serial number
UI = printer’s USB product ID and BCD release version
Default Value: must be an accepted value or the command is ignored
a3a
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
a. This error flag is supported only on KR403 printers.
No Warning 0 00000000 0 0 0 0 0 0 0 0
Warning Present 1 00000000 X X X X X X X X
b b b
Paper-near-end Sensor 1 00000000 X X X X X X X 8
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
b b b
Sensor 1 (Paper before head) 1 00000000 X X X X X X 1 X
Sensor 2 (Black mark)
b 1
b 00000000 X X X X X X 2
b X
Sensor 3 (Paper after head)
b 1
b 00000000 X X X X X X 4
b X
Sensor 4 (loop ready)
b 1
b 00000000 X X X X X X 8
b X
Sensor 5 (presenter)
b 1
b 00000000 X X X X X 1
b X X
Sensor 6 (retract ready)
b 1
b 00000000 X X X X X 2
b X X
Sensor 7 (in retract)
b 1
b 00000000 X X X X X 4
b X X
Sensor 8 (at bin)
b 1
b 00000000 X X X X X 8
b X X
b. This error flag is supported only on KR403 printers.
~WQ Examples
This section provides detailed examples of all the available parameters.
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:
1 3 5
1 Flag
2 Nibble 16-9
3 Nibble 8-4
4 Nibble 3
5 Nibble 2
6 Nibble 1
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).
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 268.
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:
1 2 3 4 5
1 Element failure
2 Manual (M) or automatic (A) range
3 First test element
4 Last test element
5 Failure count
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:
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:
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
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 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:
^XA
Start Format
Description 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.
^XB
Suppress Backfeed
Description 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
Note • To prevent jamming in cutter mode, ^XB suppresses backfeed and cutting.
^XF
Recall Format
Description 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 Accepted Values: R:, E:, B:, and A:
stored image Default Value: search priority (R:, E:, B:, and A:)
o = name of stored image Accepted Values: 1 to 8 alphanumeric characters
Default Value: if a name is not specified, UNKNOWN is used
x = extension l Fixed Value: .ZPL
For a complete example of the ^DF and ^XF command, see ^DF and ^XF — Download
format and recall format on page 47.
^XG
Recall Graphic
Description 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 Accepted Values: R:, E:, B:, and A:
stored image Default Value: search priority (R:, E:, B:, and A:)
o = name of stored image Accepted Values: 1 to 8 alphanumeric characters
Default Value: if a name is not specified, UNKNOWN is used
x = extension l Fixed Value: .GRF
mx = magnification Accepted Values: 1 to 10
factor on the x-axis Default Value: 1
my = magnification Accepted Values: 1 to 10
factor on the y-axis Default Value: 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
^XS
Set Dynamic Media Calibration
Description 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 Accepted Values:
length calibration Y = enable
N = disable
Default Value: Y
threshold = Accepted Values:
dynamic threshold Y = enable
calibration N = disable
Default Value: Y
gain = dynamic Accepted Values:
gain calibration Y = enable
(to be in a future
implementation) N = disable
Default Value: Y
^XZ
End Format
Description 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.
^ZZ
Printer Sleep
Description The ^ZZ command places the printer in an idle or shutdown mode.
Format ^ZZt,b
Parameters Details
t = number of second Accepted Values: 0 to 999999 – setting 0 disables automatic shutdown
(idle time) prior to Default Value: last permanently saved value or 0
shutdown
b = label status at Accepted Values:
shutdown Y = indicates to shutdown when labels are still queued
N = indicates all labels must be printed before shutting down
Default Value: N
Comments The ^ZZ command is only valid on the PA400 and PT400 battery-powered
printers.
Notes • ___________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
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.
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.
and R170Xi
R110Xi HF
R110Xi4
R110Xi
Command Function
Firmware
all
all
all
^HL or ~HL Return RFID Data Log to Host * * *
on page 380
^HR on page 381 Calibrate RFID Transponder Position * * *
^RW on page 413 Set RF Power Levels for Read and Write * * *
^RZ on page 416 Set RFID Tag Password and Lock Tag * — *
* = Supported
— = Not supported
a. Use the ^RF, ^RM, and ^RR commands rather than the ^RT command.
b. Use the ^RF, ^RM, ^RR, and ^WV commands rather than the ^WT command.
R110PAX4
Command Function
Firmware
V53.17.7Z
R53.16.X
R62.X.X
R63.X.X
or later
^HL or ~HL Return RFID Data Log to Host * * * *
on page 380
^HR on page 381 Calibrate RFID Transponder Position * * * *
^RW on page 413 Set RF Power Levels for Read and Write * * * *
^RZ on page 416 Set RFID Tag Password and Lock Tag * * * *
* = Supported
— = Not supported
a. Use the ^RF, ^RM, and ^RR commands rather than the ^RT command.
b. Use the ^RF, ^RM, ^RR, and ^WV commands rather than the ^WT command.
Table 20 • R4Mplus, RP4T, and R2844-Z Printer Command and Firmware Compatibility
R4Mplus
R2844-Z
RP4T
Command Function Firmware
SP1027X
SP1056X
SP1082X
SP994X
SP999X
all
all
^HL or ~HL Return RFID Data Log to Host * * * * * * —
on page 380
^HR on page 381 Calibrate RFID Transponder Position * * * * * * —
^RW on page 413 Set RF Power Levels for Read and Write * * * * * * —
^RZ on page 416 Set RFID Tag Password and Lock Tag * * * * * * —
* = Supported
— = Not supported
a. Use the ^RF, ^RM, and ^RR commands rather than the ^RT command.
b. Use the ^RF, ^RM, ^RR, and ^WV commands rather than the ^WT command.
c. For parameter e, the only accepted value is N for No Action.
^HL or ~HL
Return RFID Data Log to Host
Description 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.
where
C = the RFID operation (R = read, W = write, L = lock, S = RFID settings,
E = log file reset)
EEEE = the RFID error code or the RFID setting (RPWR = read power, WPWR = write
power, ANT = antenna, PPOS = program position, FFFF = indicates that the log file
was reset)
DDDDDDDDDDDDDDDDDDDDDDDD = 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 2000 operations), the data log is cleared
automatically, and data recording restarts. When this happens, the following appears in the
log:
E,FFFF,Logfile automatically reset
• If the printer loses power, the log is lost. If the log results are important to you, retrieve the
information frequently.
^HR
Calibrate RFID Transponder Position
Important • Consider the following before using this command:
• For the R110Xi4 printer, remove all transponders from the first 1.25 in. (32 mm) of
media. Allow this portion of the media to extend out the front of the printer to allow for
backfeed during the transponder calibration procedure.
• This command is not supported by all printers or firmware. See Printer and Firmware
Compatibility on page 376 for the list of printers and firmware with which you can use
this command.
• Do not perform transponder calibration for RFID media that meets the transponder
placement specifications for your printer. Doing so will slow the printer’s throughput
unnecessarily. To order media that is designed for use with your RFID printer, contact
your authorized Zebra reseller, or go to http://www.zebra.com/transponders for more
information.
Description Use this command to initiate transponder calibration for RFID media that does
not meet the transponder placement specifications for the printer. During the process, the
printer moves the media, calibrates the RFID transponder position, and determines the optimal
programming position for the RFID media being used. For the R110Xi4 printer, this command
also selects the best antenna element and read/write power level for the media.
Results of the transponder calibration are returned to the host computer. The RUN option in the
RFID TAG CALIB control panel parameter and the "RUN" option in the rfid.tag.calibrate
SGD command perform the same calibration but do not create a results table.
To return to the printer’s default programming position at any time, use one of the following:
• the RESTORE option in the RFID TAG CALIB control panel parameter
• the "RESTORE" option in the rfid.tag.calibrate SGD command (see rfid.tag.calibrate
on page 703)
Format ^HRa,b,c,d,e
Parameters Details
a = start string This parameter specifies the user text to appear before the results table.
Accepted values: any string less than 65 characters
Default value: start
b = end string This parameter specifies the user text to appear after the results table.
Accepted values: any string less than 65 characters
Default value: end
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.
Accepted 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
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 value:
For the R110Xi4: B20
The printer backfeeds 20 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.
Accepted 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
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 printer)
The printer automatically ends the transponder calibration process
after successfully reading and encoding a consecutive range of 5 mm
on the label.
Default value:
For the R110Xi4: A
For all other supported printers: Label length as shown on the printer
configuration label
Parameters Details
e = antenna and Note • This parameter is valid only on the R110Xi4 printer.
read/write power
level detection
This parameter selects the option to select the antenna and read/write power
level automatically.
Accepted 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 value: A
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.
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 transponder 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 an R110Xi4 printer is using Relative mode and the following command
is sent to the printer:
^HRstart,end,B20,A,A
the printer starts the transponder calibration and returns a results table such as the following:
start
position=F0 MM,A3,29,27
leading edge
B20,R,W,B3,15,17
B19,R,W,B3,11,13
B18,R,W,B3,9,11
B17,R,W,B3,7,9
B16,R,W,B3,5,9
B15,R,W,B3,5,9
B14,R,W,A3,27,29
B13,R,W,A3,27,29
B12,R,W,A3,27,27
B11,R,W,A3,25,25
B10,R,W,A3,15,19
B9,R,W,A3,11,15
B8,R,W,A3,9,13
B7,R,W,A3,7,11
B6,R,W,A3,7,9
B5,R,W,A3,7,9
B4,R,W,A3,7,9
B3,R,W,A3,7,9
B2,R,W,A3,7,11
B1,R,W,A3,11,13
F0,R,W,A3,13,17<---**** F0 MM,A3,29,27
F1,R,W,A3,19,19
F2,R,W,A3,27,25
trailing edge
end
The results are identified at the top of the table (position=F0 MM,A3,29,27) and
with an the arrow (<---****) in the table. These results indicate that the optimal
programming position is F0 (program with the leading edge of the label at the print line). The
optimal antenna element is A3. The optimal read power is 29, and the optimal write power
is 27.
^RA
Read AFI or DSFID Byte
Important • This command is not supported by all printers or firmware. See Printer and
Firmware Compatibility on page 376 for the list of printers and firmware with which you can
use this command.
Description 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 The value assigned to this parameter should be the same as the one used in the
specified with ^RT command.
another command Accepted values: 0 to 9999
Default value: 0
f = format Accepted values:
0 = ASCII
1 = Hexadecimal
Default value: 0
r = number of retries Accepted values: 0 to 10
Default value: 0
m = motion Accepted values:
0 = Feed label after writing.
1 = No Feed after writing. Other ZPL may cause a feed.
Default value: 0
b = type of byte to read Accepted values:
A = AFI byte
D = DSFID byte
Default value: 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
^RB
Define EPC Data Structure
Important • This command is not supported by all printers or firmware. See Printer and
Firmware Compatibility on page 376 for the list of printers and firmware with which you can
use this command.
Description Use this command to define the structure of EPC data, which can be read from
or written to an RFID transponder. 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 transponders can have different partitions defined. This command specifies the number
of partitions and how many bits are in each partition.
Parameters Details
n = total bit size of the Specify the number of bits to include in the partitions.
partitions Accepted values: 1 to n, where n is the bit size of the tag.
Default value: 96
p0 ... p15 = Specify the number of bits to include in the individual partitions. The partition
partition sizes sizes must add up to the bit size specified for the previous parameter. The
largest individual partition size is 64 bits.
Accepted values: 1 to 64
Default value: 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.
Example 3 • This example uses the SGTIN-96 standard, which defines 96-bit structure in
the following way:
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
^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 376 for the list of printers and firmware with which you can
use this command.
Description 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 Accepted values:
E.A.S. bit in the N = Disable E.A.S.
ISO15693 Y = Enable E.A.S.
transponder
Default value: N
r = number of retries Accepted values: 0 to 10
Default value: 0
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
^RF
Read or Write RFID Format
Important • This command is not supported by all printers or firmware. See Printer and
Firmware Compatibility on page 376 for the list of printers and firmware with which you can
use this command.
Description Use this command to read or write to (encode) an RFID tag. 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.
Accepted 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)
Default Value: W
f = format Accepted Values:
A = ASCII
H = Hexadecimal
E = EPC (ensure proper setup with the ^RB command)
Default Value: H
Parameters Details
b = starting block For tag types other Gen 2:
number Specifies the starting block number.
Accepted Values: 0 to n, where n is the maximum number of blocks for the tag.
Default Value: 0
For Gen 2 tag type only:
What you specify for this parameter depends on what you entered for the
operation parameter.
• When W, L, or R are specified for the operation parameter, this parameter
specifies a 16-bit word block number.
Accepted Values: 0 to n, where n is the maximum number of blocks for the
bank specified in the memory bank parameter
Default Value: 0
• When P is specified for the operation parameter, this parameter specifies
which password to read.
Accepted Values:
K = kill password
A = access password
Default Value: K
n = number of bytes to Specifies the number of bytes to read or write.
read or write For high-frequency (HF) printers:
Accepted Values: 1 to n, where n is the maximum number of bytes for the tag.
Default Value: 1
For Gen 2 tag type only:
When E is specified for the memory bank parameter, this value is not required.
Accepted Values: 1 to n, where n is the maximum number of bytes for the tag.
Default Value: 1
For all other printers and tag types:
This parameter applies only when the starting block number is 1.
Accepted Values: 1 to n, where n is the maximum number of bytes for the tag.
For UCODE EPC 1.19, n is 32.
Default Value: 1
m = 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.
Accepted Values:
E = EPC 96-bit (command automatically performs operation on Gen 2 bit
address 20h and accesses 12 bytes of the EPC memory bank)
0 = Reserved
1 = EPC
2 = TID (Tag ID)
3 = User
Default Value: E
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 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.”
^XA
^RS8
^RFR,H,0,8,2^FN1^FS^HV1,,8-byte Tag ID Data:^FS
^XZ
^RI
Get RFID Tag ID
Important • This command is not supported by all printers or firmware. See Printer and
Firmware Compatibility on page 376 for the list of printers and firmware with which you can
use this command.
Description 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 392 to access the TID memory bank.
Format ^RIa,b,c,d
Parameters Details
a = number to be Accepted values: 0 to 9999
assigned to the field Default value: 0
b = specify data order Note • This parameter applies only to the R110Xi HF and R2844-Z
printers.
Accepted 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 value: 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
^RM
Enable RFID Motion
Important • This command is not supported by all printers or firmware. See Printer and
Firmware Compatibility on page 376 for the list of printers and firmware with which you can
use this command.
Description 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 Accepted values:
Y = Yes, move the label
N = No, do not move the label
Default value: Y
^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 376 for the list of printers and firmware with which you can
use this command.
Description 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. This parameter is persistent (carried over from label to label).
Format ^RNe
Parameters Details
e = enable Accepted Values:
Y = Yes, check for multiple tags
N = No, do not check for multiple tags
Default Value: Y
^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 376 for the list of printers and firmware with
which you can use this command.
Description 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 Accepted Values:
A = ASCII
H = Hexadecimal
E = EPC
Default Value: H
c = chip type Accepted Values: 0 (Higgs IC tag)
Default Value: 0
o = option Accepted Values: 0 (write 96-bit EPC)
Default Value: 0
data = the EPC data, Use the ^FD command to specify the passwords in the following format:
access password, and
^FD[EPC],[access],[kill]
kill password
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
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
^RR
Specify RFID Retries for a Block
Important • This command is not supported by all printers or firmware. See Printer and
Firmware Compatibility on page 376 for the list of printers and firmware with which you can
use this command.
Description Use this command to change the number of times that the printer attempts to
read or write to a particular block of a single RFID tag. 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 ^RRn,a
Parameters Details
n = number of retries Accepted Values: 0 to 10
Default Value: 6
a = adaptive antenna Note • This parameter is valid only on the R110Xi4 printer with a label
element selection that is 2 in. (51 mm) or longer.
After the printer has exhausted the number of retries specified by parameter n,
the printer may try other antenna elements. This parameter enables this ability.
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.
Accepted 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,
until the printhead is opened, or until the printer is power cycled.
Default Value: 0
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
^RS
Set Up RFID Parameters
Use this command to set up RFID parameters including tag type, read/write position of the
transponder, and error handling.
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 transponder 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 7 on page 87.
Accepted Values:
UHF Printers
0 = None
1 = EPC Class 0
2 = EPC Class 0 Plus
3 = EPC Class 1 64-bit
4 = EPC Class 1 96-bit
5 = UCODE EPC 1.19
6 = Impinj Class 0 Plus
7 = ISO 18000-06A
8 = EPC Class 1, Generation 2 (Gen 2)
9 = 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 Value: varies by printer (see Table 7 on page 87)
Parameters Details
p = read/write position of This parameter sets the read/write position of the transponder in one of two
the transponder ways: absolute mode (available in all RFID firmware versions) or relative
(programming mode (available in firmware versions V53.17.7Z and later). For more
position) information on these modes, refer to the RFID Programming Guide 2. A copy
is available at http://www.zebra.com/manuals.
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 transponder
calibration procedure is run.
Accepted Values:
Absolute Mode:
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 transponder is already
in the effective area without moving the media.
Relative Mode Forward:
Fxxx = F0 to Fxxx (where xxx is the label length in millimeters or 999,
whichever is less). Move media forward, printing bitmap, for xxx
millimeters before reading or encoding.
Relative Mode Backward:
Byy = B0 to B30 (in millimeters, 30 mm maximum). Move media backward
for yy millimeters before reading or encoding. (Does not apply to the
RP4T printer.)
v = length of void Sets the length of the void printout in vertical (Y axis) dot rows.
printout Accepted values: 0 to label length
Default value: label length
n = number of labels The number of labels that will be attempted in case of read/encode failure.
Accepted values: 1 to 10
Default value: 3
Parameters Details
e = error handling If an error persists after the specified number of labels are tried, perform this
error handling action.
Accepted 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 value: 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).
Parameters Details
s = void print speed 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).
If a label is voided, the speed at which “VOID” will be printed across the label.
Accepted values: any valid print speed
Default value: the printer’s maximum print speed
Supported Tag Types Table 21 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).
RZ400/ RZ600
Printer
R110Xi HF
R110PAX4
R4Mplus
R2844-Z
R110Xi4
R170Xi
R110Xi
Firmware Version
R60.13.X
R62.13.X
R63.13.X
R65.13.X
all
Tag Type
EPC Class 0 — * * * * — — — — — — — — — —
ISO 18000-06A — — — * — — * * * — — — — — —
ISO 18000-06B — * * * * — * * * * * — — — —
RZ400/ RZ600
Printer
R110Xi HF
R110PAX4
R4Mplus
R2844-Z
R110Xi4
R170Xi
R110Xi
R60.13.X
R62.13.X
R63.13.X
R65.13.X
all
Tag Type
ISO 15693 — — — — — — — — — — — — # # *
EPC tag — — — — — — — — — — — — — — *
UID Tag — — — — — — — — — — — — — — —
Mifare UltraLight — — — — — — — — — — — — * * —
Example 1 • The following are examples of Absolute Mode and Relative Mode for the
transponder 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 transponder 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
Example 3 • This example sets the printer to move the media to 800 dots from the top of the
media [or label length minus 800 from the bottom (leading edge) of the media] and voids the
rest of the media in case of an error. The printer will try to print two labels and then will
pause if printing and encoding fail.
^XA
^RS,800,,2,P^FS
^XZ
Figure 3 shows the resulting voided label. Note where the void starts. The media has been
moved 800 dot rows from the top of the label (label length minus 800 dot rows from the
bottom (leading edge) of a label) to bring the transponder into the effective area to read/write
a tag. If the printer fails the operation, the rest of the media is voided.
Top of label
Start of RFID
operation
Bottom of label
Example 4 • This example sets the printer to move the media to 800 dots from the top of the
media [or label length - 500 from the bottom (leading edge) of the media] and prints “VOID”
500 dots in vertical length (Y axis) in case of an error.
^XA
^RS,800,500,2,P^FS
^XZ
Figure 4 shows the resulting voided label. Note where the void starts. The media has been
moved 800 dot rows from the top of the label [label length minus 800 dot rows from the
bottom (leading edge) of a label] to bring the transponder into the effective area to read/write
a tag. If the printer fails the operation, an area that is 500 dot rows of the media is voided
instead of the entire rest of the media.
Top of label
Start of RFID
operation
Bottom of label
^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 376 for the list of printers and firmware with which you should not use this
command.
Description 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 Accepted values: 0 to 9999
assigned to the field Default value: 0
b = starting block Accepted values: 0 to n, where n is the maximum number of blocks for the tag.
number Default value: 0
n = number of Accepted values: 1 to n, where n is the maximum number of blocks for the tag
blocks/bytes to read 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 value: 1
f = format Accepted values:
0 = ASCII
1 = Hexadecimal
Default value: 0
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.)
Accepted values: 0 to 10
Default value: 0
m = motion Enables or disables RFID motion for the current field.
Accepted values:
0 = Feed label after writing.
1 = No feed after writing. Other ZPL may cause a feed.
Default value: 0
Parameters Details
s = special mode Note • This parameter is used only for the printers referenced here.
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.
~RV
Report RFID Encoding Results
Important • This command is not supported by all printers or firmware. See Printer and
Firmware Compatibility on page 376 for the list of printers and firmware with which you can
use this command.
Description 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 = enable/disable Enables or disables the results reporting feature.
Accepted Values:
E = Enable
D = Disable
Default Value: 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.
^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 376 for the list of printers and firmware with which you can
use this command.
Description Use this command to set the RFID read and write power levels. This function
is useful when using different tag types or transponders that require different power levels to
obtain the best read and write abilities. If not enough power is applied, the transponder 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.
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 380) to
view the antenna element and power settings being used.
Format ^RWr,w,a
Parameters Details
r = read power This parameter sets the power level to match the desired output as calibrated in
the factory.
R53.16.3, V53.17.7Z, and later:
Values: 0 to 30
Default Value: 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 Value: L
R65.X and older versions of other firmware:
Accepted Values:
H = high
M = medium
L = low
Default Value: L
Parameters Details
w = 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.7Z, and later:
Values: 0 to 30
Default Value: 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 Value: L
Older versions of firmware:
Accepted Values:
H = high
M = medium
L = low
Default Value: L
Parameters Details
a = RFID antenna Note • This parameter is valid only on the R110Xi4 printer.
element selection
Note • This parameter applies only to the R110Xi HF and the R110Xi4
printers.
R110Xi HF (R65.X):
This parameter selects the antenna port that provides the best results for
reading and writing.
Accepted Values:
1 = antenna port 1
2 = antenna port 2
Default Value: 1
R110Xi4 (V53.17.7Z and later):
This parameter selects an antenna element from the printer’s antenna array.
Accepted 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 Value: A4
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
^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 376 for the list of printers and firmware with which you can
use this command.
Description 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.
Accepted Values: 00 to FF (hexadecimal)
Default Value: 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 392 to
read the passwords.
Accepted Values: 00000000 to FFFFFFFF (hexadecimal)
Default Value: none
m = memory bank Note • This parameter applies to Gen 2 tags only.
Parameters Details
l = lock style Note • This parameter applies to Gen 2 tags only.
Example 1 • On a tag that is not Gen 2, this example encodes 5A as the tag password.
^XA
^RZ5A^FS
^XZ
Example 4 • This example unlocks the locked access password from the previous example.
^XA
^RZ1234ABCD,A,U^FS
^XZ
^WF
Encode AFI or DSFID Byte
Important • This command is not supported by all printers or firmware. See Printer and
Firmware Compatibility on page 376 for the list of printers and firmware with which you can
use this command.
Description Use this command to encode the AFI or DSFID byte to a tag. Error handling is
set by the ^RS command.
Format ^WFr,m,w,f,b
Parameters Details
r = number of retries Accepted values: 0 to 10
Default value: 0
m = motion Accepted values:
0 = Feed label after writing.
1 = No Feed after writing. Other ZPL may cause a feed.
Default value: 0
w = write protect Accepted values:
0 = Not write protected
1 = Write protect
Default value: 0
f = data format Accepted values:
0 = ASCII
1 = Hexadecimal
Default value: 0
b = type of byte to read Accepted values:
A = AFI byte
D = DSFID byte
Default value: 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
^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 376 for the list of printers and firmware with which you should not use this
command.
Description 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.
Accepted Values: 0 to n, where n is the maximum number of blocks for the tag.
Default Value: 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.)
Accepted Values: 0 to 10
Default Value: 0
m = motion Enables or disables RFID motion. (Same function as the ^RM command.)
Accepted Values:
0 = Feed label after writing
1 = No feed after writing (other ZPL may cause a feed)
Default Value: 0
w = write protect Accepted Values:
0 = Not write protected
1 = Write protected
Default Value: 0
f = data format Accepted Values:
0 = ASCII
1 = Hexadecimal
Default Value: 0
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.
Accepted 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 Value: N
For other supported For other supported printers:
printers: For reliability, some manufacturers encode tags with known data (such as
v = verify valid data A5A5). This parameter flags whether the preprogrammed data is verified.
(Same function as the ^WV command.)
Accepted Values:
N = Do not verify
Y = Verify valid data before writing
Default Value: N
Example • This sample encodes data “RFIDRFID” and will try writing up to five times, if
necessary.
^XA
^WT,5^FDRFIDRFID^FS
^XZ
^WV
Verify RFID Encoding Operation
Important • This command is not supported by all printers or firmware. See Printer and
Firmware Compatibility on page 376 for the list of printers and firmware with which you can
use this command.
Description 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 Accepted values: Y or N
Default value: N
This section contains ZPL commands for the Wireless and Wireless Plus print servers.
^KC
Set Client Identifier (Option 61)
Description 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 Accepted Values:
0 = disable (default)
1 = enabled, use MAC address
2 = enabled, ASCII value
3 = enabled, HEX value
Default Value: 0
b = device Accepted Values:
0 = all devices
1 = wireless
2 = external wired e
3 = internal wired
Default Value: 1
c = prefix (optional) Accepted Values: 11 ASCII characters or 22 hexadecimal values.
The prefix can be cleared by defaulting the network settings on the printer.
d = identifier Accepted 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.
e. 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.
^NB
Search for Wired Print Server during Network Boot
Description 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 22 identifies which device becomes the active print server under different conditions.
X X Wireless
Skip X Wired
X Wireless
X X Wired
Check X Wired
X Wireless
f. 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 Accepted Values: C (CHECK), S (SKIP CHECK)
server at boot time Default Value: S
^NN
Set SNMP
Description 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.
Accepted Values: Up to 17 alphanumeric characters
b = system contact Any contact information as desired (such as a name or phrase)
Accepted Values: Up to 50 alphanumeric characters
c = system location The printer’s model information.
Accepted Values: Up to 50 alphanumeric characters
d = get community name Accepted Values: Up to 19 alphanumeric characters
Default Value: public
e = set community name Accepted Values: Up to 19 alphanumeric characters
Default Value: public
f = trap community Accepted Values: Up to 20 alphanumeric characters
name Default Value: public
^NP
Set Primary/Secondary Device
Description 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 425).
Format ^NPa
Parameters Details
a = device to use as Accepted Values:
primary P = PRINTER
M = MPS/PRINTSERVER
Default Value: P
^NT
Set SMTP
Description 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 Accepted Values: Any properly formatted server address in the
xxx.xxx.xxx.xxx format
b = print server domain Accepted 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
^NW
Set Web Authentication Timeout Value
Description 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.
Accepted Values: 0 (no secure pages can be accessed without entering the
printer password) to 255 minutes
Default Value: 5
^WA
Set Antenna Parameters
Description Use this command to set the values for the receive and transmit antenna.
Format ^WAa,b
Parameters Details
a = receive antenna Accepted Values: D (Diversity), L (Left), R (Right)
Default Value: D
b = transmit antenna Accepted Values: D (Diversity), L (Left), R (Right)
Default Value: D
^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 442 to set the security type and related parameters.
Description 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 Accepted Values: OFF, 40 (40-bit encryption), 128 (128-bit encryption)
Default Value: OFF
b = encryption index Tells the printer which encryption key to use.
Accepted Values: 1 (Key 1), 2 (Key 2), 3 (Key 3), 4 (Key 4)
Default Value: 1
c = authentication type Accepted Values: O (Open System), S (Shared Key)
Default Value: O
Note • If you enable Shared Key authentication with Encryption Mode
set to OFF, this value resets to Open.
d = encryption key Accepted Values: H (Hex key storage), S (string key storage)
storage Default Value: H
e, f, g, h = Accepted Values: The actual value for the encryption key
encryption keys The encryption mode affects what can be entered for the encryption keys:
1 through 4 • 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.
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,98765432109876543
210987654
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).
^WI
Change Wireless Network Settings
Description Use this command to change the wireless network settings.
Zebra recommends using ^ND on page 306 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 Accepted Values:
A = All
B = BOOTP
C = DHCP and BOOTP
D = DHCP
G = Gleaning only (Not recommended when the Wireless Print Server or
Wireless Plus Print Server is installed.)
R = RARP
P = Permanent
Default Value: A
b = IP address Accepted Values: Any properly formatted IP address in the xxx.xxx.xxx.xxx
format.
Default Value: 000.000.000.000
c = subnet mask Accepted Values: Any properly formatted subnet mask in the xxx.xxx.xxx.xxx
format.
Default Value: 000.000.000.000
d = default gateway Accepted Values: Any properly formatted gateway in the xxx.xxx.xxx.xxx
format.
Default Value: 000.000.000.000
e = WINS server address Accepted Values: Any properly formatted WINS server in the xxx.xxx.xxx.xxx
format.
Default Value: 000.000.000.000
f = connection timeout Accepted Values:
checking Y = yes
N = no
Default Value: Y
Parameters Details
g = timeout value Time, in seconds, before the connection times out.
Accepted Values: 0 through 9999
Default Value: 300
h = ARP broadcast Time, in minutes, that the broadcast is sent to update the device’s ARP cache.
interval Accepted Values: 0 through 30
Default Value: 0 (no ARP sent)
i = base raw port number The port number that the printer should use for its RAW data.
Accepted Values: 1 through 65535
Default Value: 9100
^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 442 to set the security type and related parameters.
Format ^WLa,b,c
Parameters Details
a = mode Accepted Values: OFF, ON
Default Value: OFF
b = user name Accepted Values: Any 1 to 32 alphanumeric including special characters
Default Value: user
c = password Accepted Values: Any 1 to 32 alphanumeric including special characters
Default Value: password
~WL
Print Network Configuration Label
Description Use this command to generate a network configuration label (Figure 5).
Format ~WL
^WP
Set Wireless Password
Description 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 Accepted Values: 0000 through 9999
password Default Value: 0000
b = new wireless Accepted Values: 0000 through 9999
password Default Value: 0000
^WR
Set Transmit Rate
Description Use this command to change the transmission parameters.
Format ^WRa,b,c,d,e
Parameters Details
a = rate 1 Sets the 1 Mb/s transmit rate.
Accepted Values: Y (On), N (Off)
b = rate 2 Sets the 2 Mb/s transmit rate.
Accepted Values: Y (On), N (Off)
c = rate 5.5 Sets the 5.5 Mb/s transmit rate.
Accepted Values: Y (On), N (Off)
d = rate 11 Sets the 11 Mb/s transmit rate.
Accepted Values: Y (On), N (Off)
e = transmit power Accepted Values: 1, 5, 20, 30, 50, 100
~WR
Reset Wireless Radio Card and Print Server
Description 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
^WS
Set Wireless Radio Card Values
Description 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 Accepted 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 Value: 125
o = operating mode Accepted Values: I (Infrastructure), A (Adhoc)
Default Value: I
p = wireless radio card Accepted Values:
preamble L = long
S = short
Default Value: L
h = wireless pulse Adds a pulse to the network traffic generated by the printer. This pulse is
necessary with some network configurations to keep the printer online.
Accepted Values:
This parameter is 0 = disabled
supported in firmware 1 = enabled
version V60.15.x, Default Value: 1
V50.15.x, R6x.15.x,
R53.15.x, ZSPx, or later.
i = wireless pulse Sets the interval at which the wireless pulse is sent when the wireless pulse
interval feature is enabled.
Accepted Values: 5 to 300 seconds
Default Value: 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 23.
Accepted Values: 4 Hexadecimal digits preceded by “0x” (0x0000 to 0xFFFF)
Default Value: 0x7FF
This parameter is
supported in firmware
version X60.15.x,
V50.15.x, or later.
Parameters Details
k = international mode Accepted Values: 0 (Disabled), 1 (Enabled)
Default Value: 0
This parameter is
supported in firmware
version X60.15.x,
V50.15.x, or later.
^WX
Configure Wireless Securities
Description 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.
This command applies to printers with firmware version X60.15.x, V53.15.x, V50.15.x, or
later.
The ^WX command replaces individual ZPL commands for different security types.
Note • The supporting parameters that are required vary based on the security type that you
select. See Supporting Parameters for Different Security Types on page 446 for instructions
for each security type.
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 446.
Note • Configuring the printer for WPA also allows the printer to be
used in WPA2 environments.
Accepted Values: 01 to 15
01 = No wireless security is active
02 = WEP 40-bit
03 = WEP 128-bit
04 = EAP-TLS
05 = EAP-TTLS
06 = EAP-FAST
07 = PEAP
08 = LEAP
09 = WPA PSK (R6x15.x, R53.15.x, ZSPx, and later.)
10 = WPA EAP-TLS
11 = WPA EAP-TTLS
12 = WPA EAP-FAST
13 = WPA PEAP
14 = WPA LEAP
15 = Kerberos
Default Value: 01
b = WEP encryption Specifies which encryption key to use for WEP encryption. A value must be
index* specified if using WEP 40-bit or WEP 128-bit.
Accepted Values: 1, 2, 3, 4
Default Value: 1
c = WEP authentication Enables the WEP key authentication type. A value must be specified if using
type* WEP 40-bit or WEP 128-bit.
Accepted Values: O or S
O = open system
S = shared key
Default Value: O
* Not used for all security types
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.
Accepted Values: H or S
H = hex key storage
S = string key storage
Default Value: S
e,f,g,h = Specifies the actual values of any WEP encryption keys to be used. A value
WEP encryption keys must be specified for at least one WEP encryption key if you specify 40-bit or
1 through 4* 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.
Parameters Details
j = password* Specifies a password 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
Accepted Values: The actual value for the password.
Default Value: password
k = optional private key Specifies an optional private key password for security types that require one.
password* A value must be specified if using the following security types:
• EAP-TLS
• EAP-FAST
• WPA EAP-TLS
• WPA EAP-FAST
Accepted Values: The actual value for the optional private key.
Default Value: None
l = realm* Specifies the realm for security types that require it. A value must be
specified if using Kerberos.
Accepted Values: The actual value for the realm.
Default Value: kerberos
m = Key Distribution Specifies the KDC for security types that require it. A value must be specified
Center (KDC)* if using Kerberos.
Accepted Values: The actual value for the KDC.
Default Value: krbtgt"
n = Pre-Shared Key Enter the PSK value. This value is calculated and must be the same for each
(PSK) value* 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.
Accepted Values: a minimum of 64 hexadecimal digits
Default Value: None
* Not used for all security types
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
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
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,223344
556677889900,334455667788990011
^JUS
^XZ
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
Format ^WX05,i,j
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
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
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
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
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
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
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
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
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
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
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
This section explains the Zebra Basic Interpreter, its commands, descriptions, formats, and
parameters.
Command/Function NAME
Description This heading has a description of 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 <A>,<B>. The <A> and <B> 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 <A> parameter is
defined as:
<A> = number used to start the auto-numbering sequence
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.
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.
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
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.
Section Organization
The sections in this guide are arranged based on programming topics. A brief description of
the sections is listed below.
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
Time and Date Functions Functions to access the real time clock option
Example Programs More examples to give a head start in creating your applications
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:
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:
NEW
AUTONUM 10,5
Entered
automatically 10 REM "Hello World" Application
when 15 PRINT "Hello World" ! comment...
AUTONUM is
used 20 A blank line
stops
LIST AUTONUM
NEW
LIST
NEW
Description 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
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.
REM
Description A numbered remark line starts with REM and includes text in any form after it.
This line is ignored by the interpreter.
Parameters The comment string can contain any character and is terminated by a carriage
return.
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.
! (EXCLAMATION MARK)
Description 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 !<comment>
Parameters The comment string can contain any character and is terminated by the carriage
return.
Comments None
LIST
Description This command lists the program lines currently in memory.
Format
LIST
LIST <A>
LIST <A>-<B>
Parameters
default = lists all lines in memory
<A> = line to start listing the program
<B> = line to stop listing the program. If not specified, only the line at <A> will print.
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.
AUTONUM
Description This command automatically generates sequential program line numbers.
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.
RENUM
Description 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.
Parameters
<A> = the number to start the renumbering sequence
<B> = the automatic increment between the new line numbers
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.
ECHO
Description 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
<ON/OFF> = 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.
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
This example shows many of the Running and Debug Commands in practice.
Example • Preview:
10 PRINT "TEN"
ZBI Program 20 PRINT "TWENTY"
30 PRINT "THIRTY"
RUN Runs the whole program
TEN
TWENTY
THIRTY
THIRTY
Adds a
ADDBREAK 20 breakpoint on line
RUN 20
TEN
<Program Break> on line: 20
RUN
Description 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
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.
CTRL-C
Description 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.
RESTART
Description 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
STEP
TEN
RESTART
TWENTY
THIRTY
ADDBREAK 20
RUN
TEN
<Program Break> on line: 20
DEBUG ON
TRACE ON
RESTART
<TRACE> 20
TWENTY
<TRACE> 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.
STEP
Description 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
STEP
TWENTY
Comments This is an interactive command that takes effect as soon as it is received by the
printer.
DEBUG
Description 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.
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.
TRACE
Description 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
<ON/OFF> = 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:
<TRACE> Variable = New Value
Every line processed has its line number printed as follows:
<TRACE> 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
<TRACE> 10
<TRACE> A=5
<TRACE> 20
<TRACE> 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.
BREAK
Description This command allows you to stop the program when the program reaches this
line.
Format BREAK
Parameters N/A
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.
ADDBREAK
Description This command allows you to stop the program when the program reaches a
specified line.
Parameters
A = the line number to break on. If the number specified is not in the program, the program
will not break.
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.
This is an interactive command that takes effect as soon as it is received by the printer.
DELBREAK
Description This command allows you to remove existing breakpoints.
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.
RESTART
<TRACE> 20
5
DELBREAK 20
RUN
<TRACE> 10
<TRACE> A=5
<TRACE> 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.
This is an interactive command that takes effect as soon as it is received by the printer.
ZPL
Description This command terminates and exits the ZBI environment.
Format ZPL
Parameters N/A
Comments This is an interactive command that takes effect as soon as it is received by the
printer.
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.
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.
Invalid Names:
W# = Invalid character (# )
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 <variable_name>
DECLARE STRING <variable_name$>
If the variable existed before the DECLARE statement, it will be defaulted.
Implicit:
LET <variable_name> = NUMERIC EXPRESSION
LET <variable_name$> = 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->”<-.
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.
Format
Parameters
<SIZE> = number of entries in a single dimension array
<ROWS> = number of rows in a two dimensional array
<COLUMNS> = number of columns in a two dimensional array
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.
LET
Description 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 483.
Format
LET <variable> [,<variable>]* = <expression>
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
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)
When using division, the number is always rounded down. For example, 5/2=2. Use MOD to
determine the remainder.
Format
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.
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.
Sub-strings
Description 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 <STRVAR$>(<A>:<B>)=<C$>
LET <C$> = <STRVAR$>(<A>:<B>)
Parameters
<A> = the position of the first character in the desired string
<B> = the position of the last character in the desired string.
<STRVAR$> = 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.
Boolean Expressions
Description A Boolean expression holds 0 (zero) as false and non-zero as true.
Formats
<STRING EXPRESSION> <BOOLEAN COMPARE> <STRING EXPRESSION>
<NUMERIC EXPRESSION> <BOOLEAN COMPARE> <NUMERIC EXPRESSION>
NOT(<BOOLEAN EXPRESSION>)
Parameters
<STRING EXPRESSION> = a string variable, string constant or any combination with
concatenation
<NUMERIC EXPRESSION> = any mathematical operation
Numeric expressions can substitute a Boolean expression where a value of 0 (zero) represents
false and a non-zero value represents true.
Expression Result
1< 2 true
2<2 false
2<1 false
Expression Result
1<=2 true
2<=2 true
2<=1 false
Expression Result
1> 2 false
2>2 false
2>1 true
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
Expression Result
1<>2 true
2<>2 false
"A"<>"AA" true
"A"<>"A" false
Expression Result
NOT 1=2 true
NOT 1=1 false
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
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:
FOR Loops A control flow statement which allows code to be executed iteratively.
SUB Allows you to “substitute” names instead of actual line numbers as the target of
GOSUBs and GOTOs.
IF Statements
Description If the value of the <Boolean expression> 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 <Boolean expression> THEN
~~BODY~~
[ELSE IF <Boolean expression> THEN
~~BODY~~]*
[ELSE
~~BODY~~]
END IF
Parameters N/A
DO Loops
Description Processing of the loop is controlled by a <WHILE/UNTIL> 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 <WHILE/UNTIL> 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 <WHILE/UNTIL> statement, the loop continues
indefinitely.
Format
DO [<WHILE/UNTIL> <Boolean expression>]
~~BODY~~
LOOP [<WHILE/UNTIL> <Boolean expression>]
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"
FOR Loops
Description 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 <I> = <A> TO <B> [STEP <C>]
~~BODY~~
NEXT <I>
Parameters
<I> = indicates a numeric variable is used. <I> increments each time through the
FOR-LOOP.
<A> = the value assigned to <I> the first time through the loop
<B> = the last value through the loop
<C> = (Optional) the amount <I> increments each time through the loop
Values of I for the following situations:
Statement Result
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
Comments FOR loops can be nested but cannot overlap. Variables cannot be reused by the
nested loops.
GOTO/GOSUB
Description 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.
GOTO works the same way as GOSUB except that no return address will be stored.
Format
GOSUB <A>
RETURN
GOTO <A>
Parameters <A> = the program location executed immediately after the GOTO or
GOSUB.
Comments These are program commands and must be preceded by line numbers.
SUB
Description 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.
Parameters <A> = the integer variable to use as a target for the GOTO/GOSUB
Comments <A> is a numeric variable. If this variable is changed in the program, any
GOSUB/GOTO to this variable may fail.
EXIT
Description 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.
END
Description 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
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
Creating Connections
Here is a quick list of the commands in this section:
SERVERSOCKET Opens a listening socket for incoming UDP packets or TCP connections.
ACCEPT Accepts incoming TCP or UDP connections and assigns a channel for the
connection.
OPEN
Description This command is used to open a port for transmitting and receiving data.
Parameters
<CHANNEL> = a number to use as a handle to the port for all future communications
Accepted Values: 0 to 9
Default Value: a port must be specified
<PORT$> = port name to open. See Available Ports on page 500.
The port being opened no longer allows data to pass directly into its buffer, it disconnects, and
the interpreter now controls the data flow.
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.
CLOSE
Description 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 #<A>
CLOSE ALL
Parameters
<A> = Numeric value of port to close
Accepted Values: 0 through 9
All = closes all open ports and network connections
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.
DATAREADY
Description This function is used to determine if there is data received on a specified port.
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.
SERVERSOCKET
Description This function opens a listening socket for incoming UDP packets or TCP
connections. It must be used in conjunction with the ACCEPT function.
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
Example • See the examples for TCP Server on page 522 and UDP Server on page 524.
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.
SERVERCLOSE
Description 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.
CLIENTSOCKET
Description 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.
Parameters
TYPE$ = set to "UDP" or "TCP".
IPADDR$ = connects to this address.
PORT = connects to this IP port.
Example • See the examples for TCP Server on page 522 and UDP Server on page 524.
ACCEPT
Description 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.
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.
Example • See the examples for TCP Server on page 522 and UDP Server on page 524.
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.
READ (non-blocking) Reads in all available data up to the maximum amount specified.
SEARCHTO$ (blocking) Reads in data (does not keep) until a search parameter is found.
Non-matching data can be redirected to another port.
INPUT
Description 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 non-numeric 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 [<CHANNEL>:] <A$> [,<B$>]*
INPUT [<CHANNEL>:] <A>[,<B>]*
Parameters
<CHANNEL> = read data from this port. Default = 0.
<A,B,...,N> = variables to write.
When using multiple variables as targets, a corresponding number of lines are read. String
and numeric variables can be intermixed.
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(<PORT>,CHR$(13)&CHR$(10),<INSTRING$>)
Note • The INPUT command does not accept control characters or the delete character. If
these characters need to be processed, please 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.
PRINT
Description This command sends data to the printer to be printed.
Parameters
<CHANNEL> = write data to this port
<expression> = the value to write
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.
OUTBYTE
Description This command outputs a byte to a port.
Format
OUTBYTE [<CHANNEL>:] <A>
OUTBYTE [<CHANNEL>:] <A$>
Parameters
<CHANNEL> = sends the byte to this port. Default = 0.
<A> = This is a numeric expression.
Accepted Values: 0 through 255. If it is not within that range, it is truncated.
<A$> = This is the string expression. The first character is used. In the case of a NULL
string, 0 is sent.
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.
INBYTE
Description 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 [<CHANNEL>:] <A>
INBYTE [<CHANNEL>:] <A$>
Parameters
<CHANNEL> = reads from this port. Default = 0.
<A> = integer value is set to the byte received.
<A$> = 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.
READ
Description This is a non-blocking input function. It will read in all of the bytes available
on the specified port.
Parameters
<CHANNEL> = reads from this port. Default = 0.
<A$> = the string where the data will be placed
<MAXBYTES> = the maximum number of bytes to read
WRITE
Description This is a non-blocking output function. It will write as many bytes as the
output buffer can hold.
Parameters
<CHANNEL> = reads from this port. Default = 0.
<A$> = the string to write out.
<MAXBYTES> = The number of bytes to write
SEARCHTO$
Description 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
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 use SEARCHTO to find a string within a string and
direct the unused part of the string to another string:
10 LET A$ = "The faster you go, the shorter you are - Einstein"
20 LET B$ = SEARCHTO$(A$,"you", C$)
30 PRINT "FOUND:", B$
40 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
STORE
Description This command saves the program currently in memory as the specified file
name. The format listed below is used.
Parameters <filename$> = the name of the file to be stored. Drive location and file
name must be in quotation marks.
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.
LOAD
Description 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.
Parameters <filename$> = 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.
Comments This is an interactive command that takes effect as soon as it is received by the
printer.
DIR
Description 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.
Parameters [<filter$>] = 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:
memory wildcard
Example N/A
Comments This is an interactive command that takes effect as soon as it is received by the
printer.
DELETE
Description This command removes a specified file from the printer’s memory.
Parameters <filename$> = the name of the file to be deleted. Drive location and
filename must be in quotation marks.
Comments This is an interactive command that takes effect as soon as it is received by the
printer.
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.
CSVLOAD
Description 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 DECLARE STRING CSVDB$(1,2)
20 LET FILENAME$ = "E:RECORDS.CSV"
30 LET NUMOFCOLS = CSVLOAD(CSVDB$, FILENAME$)
40 LET NUMOFROWS = ROWSIZE(CSVDB$)
100 FOR I = 1 TO NUMOFROWS STEP 1
110 FOR J = 1 TO NUMOFCOLS STEP 1
120 PRINT CSVDB$(I, J), " ";
200 NEXT J
210 PRINT ""
300 NEXT I
Example • This example shows how to print the values in a CSV file that uses a '|' as a
delimiter.
10 DECLARE STRING CSVDB$(1,2)
20 LET FILENAME$ = "E:EMPLOYEE.CSV"
30 LET NUMOFCOLS = CSVLOAD(CSVDB$, FILENAME$, "|")
40 LET NUMOFROWS = ROWSIZE(CSVDB$)
100 FOR I = 1 TO NUMOFROWS STEP 1
110 FOR J = 1 TO NUMOFCOLS STEP 1
120 PRINT CSVDB$(I, J), " ";
200 NEXT J
210 PRINT ""
300 NEXT I
Comments The maximum CSV file size supported will vary based upon available RAM
within the printer.
The file format should follow the rules in IETF RFC 4180: http://tools.ietf.org/html/rfc4180
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.
CSVSTORE
Description 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 DECLARE STRING CSVDB$(1,2)
20 LET NUMOFCOLS = CSVLOAD(CSVDB$, "E:RECORDS.CSV")
30 LET CSVERROR = CSVSTORE(CSVDB$, "E:NEWREC.TXT", "^")
40 LET NUMOFCOLS = CSVLOAD(CSVDB$, "E:NEWREC.TXT", "^")
50 LET NUMOFROWS = ROWSIZE(CSVDB$)
100 FOR I = 1 TO NUMOFROWS STEP 1
110 FOR J = 1 TO NUMOFCOLS STEP 1
120 PRINT CSVDB$(I, J), " ";
200 NEXT J
210 PRINT ""
300 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.
TXTLOAD
Description This function will read the contents of an ASCII text file into a ZBI string
variable.
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.
TXTSTORE
Description This function will store the contents of a ZBI string in an ASCII text file.
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".
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.
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.
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.
Available Events
ZBI
ZBI Event
Event ID
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
35 ribbon in clear
36 rewind full set
37 rewind full clear
38 cutter jammed set
39 cutter jammed clear
ZBI
ZBI Event
Event ID
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
70 networking default
71 networking factory
72 print width
73 darkness adjust
74 calibrate
75 scroll key
Xi4/RXi4/XiIIIPlus/PAX4/105SL
HC100
ZBI
Front Panel Key ZBI Name
Event ID
Pause pause key
Feed feed key
Eject eject key
ZM400/ZM600/RZ400/RZ600/Z4Mplus/Z6Mplus
ZBI
Front Panel Key ZBI Name
Event ID
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
ZBI
Front Panel Key ZBI Name
Event ID
Menu 1 menu key
Enter 8 enter key
Cancel 4 cancel key
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
G-Series
ZBI
Front Panel Key ZBI Name
Event ID
Feed key 3 Feed key
Select key 10 Select key
Scroll key 75 Scroll key
ZBI
Front Panel Key ZBI Name
Event ID
Feed key 3 Feed key
KR403
ZBI
Front Panel Key ZBI Name
Event ID
Feed key 3 Feed key
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.
Comments None
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)
Returns 0 if the event is a valid event to unregister. A -1 if the event does not exist.
Comments None
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.
Comments None
TRIGGEREVENT
Description 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 on page 542
• 105SL Front Panel Key on page 542
• ZM400/ZM600/RZ400/RZ600/Z4Mplus/Z6Mplus on page 542
• S4M on page 543
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.
ISERROR
Description 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
Comments None
ISWARNING
Description 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
Comments None
SLEEP
Description 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.
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.
Calling SLEEP with <A> 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.
SETERR
Description 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
CLRERR
Description 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
ON ERROR
Description 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 <A>
ON ERROR GOSUB <A>
Parameters <A> = the destination location in the program should an error be triggered on
the previous line.
Comments
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_STEALPIN
Description This function will take control of a pin and allow ZBI to perform other actions
on the pin.
Format AUXPORT_STEALPIN(X)
Comments If this pin is not controlled via ZBI (power pin), this function will return -1.
AUXPORT_SETPIN
Description 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).
Comments If this pin is not controlled via ZBI (power pin), this function will return -1. See
AUXPORT_STEALPIN on page 558.
AUXPORT_GETPIN
Description This function will retrieve the state of the applicator pin.
Format AUXPORT_GETPIN(X)
Returns This function returns 1 if pin is in high state, 0 in low state, and -1 upon failure.
Comments If this pin is not controlled via ZBI (power pin), this function will return -1. See
AUXPORT_STEALPIN on page 558.
AUXPORT_RELEASEPIN
Description This function returns a pin controlled by ZBI to normal printer operation.
Format AUXPORT_RELEASEPIN(X)
Comments If this pin is not controlled via ZBI (power pin), this function will return -1. See
AUXPORT_STEALPIN on page 558.
String Functions
This section identifies how to handle string manipulation. Here is a quick list of these
commands:
CHR$ Takes a value between 0 and 255 and puts that value into a string.
SPLITCOUNT Returns the number of sub-strings that would be returned by the SPLIT
function.
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.
LCASE$
Description This function will convert a string to all lowercase characters.
CHR$
Description This function takes a value between 0 and 255 and puts that value into a string.
Format CHR$(VAL)
Example • This is an example of how to use the CHR$ command to easily put control
characters into strings:
10 LET NULL$=CHR$(0)
20 LET STX$=CHR$(2)
30 LET ETX$=CHR$(3)
40 LET EOT$=CHR$(4)
Comments None
LTRIM$
Description This function removes leading spaces from a string.
Format LTRIM$(A$)
Comments None
REPEAT$
Description 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.
Comments None
RTRIM$
Description This function returns a string with trailing spaces removed.
Format RTRIM$(A$)
Comments None
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.
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.
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, DELCARE STRING MYARRAY$(2,3)) will be
filled from (0,0), then (0,1) up to (2,3).
SPLITCOUNT
Description This function returns the number of sub-strings that would be returned by the
SPLIT function.
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
UCASE$
Description This function converts a string to all uppercase characters.
Format UCASE$(A$)
EXTRACT$
Description 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.
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
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 <END>"
20 LET B$ = EXTRACT$(IN$, "", "<END>")
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 <START> THE DATA"
20 LET B$ = EXTRACT$(IN$, "<START>", "")
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.
ORD
Description This function returns the ASCII value of the first character of string A$.
Format ORD(A$)
Comments None
POS
Description 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.
Comments None
LEN
Description This function returns the length of a string.
Format LEN(A$)
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$
Description This function converts a number to a string.
Format STR$(X)
Comments None
MAX
Description 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
Comments None
MIN
Description 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
Comments None
MAXNUM
Description 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).
Comments None
MOD
Description 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).
Comments None
VAL
Description 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.
PRINT VAL("321A123")
321123
Comments None
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)
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
HEXTOINT
Description This function will convert hexadecimal strings to integers.
Format HEXTOINT(A$)
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
Array Functions
This section describes the functions to search, resize, and query arrays.
REDIM
Description This command will change the dimensions of an array.
Format
REDIM <ARRAYNAME>(<SIZE>)
REDIM <ARRAYNAME>(<ROWS>,<COLUMNS>)
REDIM <ARRAYNAME$>(<SIZE>)
REDIM <ARRAYNAME$>(<ROWS>,<COLUMNS>)
Parameters
<SIZE> = new number of entries in a single dimension array.
<ROWS> = new number of rows in a two dimensional array.
<COLUMNS> = new number of columns in a two dimensional array.
Example • This example shows how to change a one dimensional numeric array.
10 DECLARE NUMERIC SCORES(3)
20 LET SCORES(1) = 85
30 LET SCORES(2) = 92
40 LET SCORES(3) = 98
50 REDIM SCORES(2) ! Discard the last one
Example • This example shows how to change a two dimensional string array.
10 DECLARE STRING NAMEAGES$(3,2)
20 LET NAMEAGES$(1,1) = "Abraham"
30 LET NAMEAGES$(1,2) = "Lincoln"
40 LET NAMEAGES$(2,1) = "Dwight"
50 LET NAMEAGES$(2,2) = "Eisenhower"
60 LET NAMEAGES$(3,1) = "Theodore"
70 LET NAMEAGES$(3,2) = "Roosevelt"
80 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.
INSERTROW
Description This command will insert a new row into an existing array.
Parameters
<ARRAYNAME> = array where the row will be inserted
<INDEX> = 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 DECLARE NUMERIC SCORES(3)
20 LET SCORES(1) = 85
30 LET SCORES(2) = 92
40 LET SCORES(3) = 98
50 INSERTROW(SCORES, 2)
60 LET SCORES(2) = 100
Example • This example shows how to add a row into the end of an array.
10 DECLARE NUMERIC SCORES(3)
20 LET SCORES(1) = 85
30 LET SCORES(2) = 92
40 LET SCORES(3) = 98
50 INSERTROW(SCORES, 4)
60 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.
DELROW
Description This command will delete a row from an existing array.
Parameters
<ARRAYNAME> = the array where the row will be deleted
<INDEX> = 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 DECLARE NUMERIC SCORES(5)
20 LET SCORES(1) = 85
30 LET SCORES(2) = 92
40 LET SCORES(3) = 98
50 LET SCORES(4) = 45
60 LET SCORES(5) = 100
70 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.
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.
ROWSIZE
Description 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 DECLARE STRING NAMES$(3)
20 LET NAMES$(1) = "Fred"
30 LET NAMES$(2) = "Wilma"
40 LET NAMES$(3) = "Barney"
50 REDIM NAMES$(4) ! Make room for Betty
60 LET NAMES$(4) = "Betty"
70 LET NUMOFNAMES = ROWSIZE(NAMES$)
80 PRINT NUMOFNAMES
Example • This example shows how to determine the number of rows in a two dimensional
numeric array.
10 DECLARE NUMERIC SQROFTWOLOOKUP(3,2)
20 LET SQROFTWOLOOKUP (1,1) = 1
30 LET SQROFTWOLOOKUP (1,2) = 2
40 LET SQROFTWOLOOKUP (2,1) = 2
50 LET SQROFTWOLOOKUP (2,2) = 4
60 LET SQROFTWOLOOKUP (3,1) = 3
70 LET SQROFTWOLOOKUP (3,2) = 8
80 LET NUMOFSQRS = ROWSIZE(SQROFTWOLOOKUP)
90 PRINT NUMOFSQRS
COLUMNSIZE
Description 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 DECLARE STRING NAMES$(3)
20 LET NAMES$(1) = "Fred"
30 LET NAMES$(2) = "Wilma"
40 LET NAMES$(3) = "Barney"
50 REDIM NAMES$(4) ! Make room for Betty
60 LET NAMES$(4) = "Betty"
70 LET NUMOFCOLS = COLUMNSIZE(NAMES$)
80 PRINT NUMOFCOLS
Example • This example shows how to determine the number of columns in a two
dimensional numeric array.
10 DECLARE NUMERIC SQROFTWOLOOKUP(3,2)
20 LET SQROFTWOLOOKUP (1,1) = 1
30 LET SQROFTWOLOOKUP (1,2) = 2
40 LET SQROFTWOLOOKUP (2,1) = 2
50 LET SQROFTWOLOOKUP (2,2) = 4
60 LET SQROFTWOLOOKUP (3,1) = 3
70 LET SQROFTWOLOOKUP (3,2) = 8
80 LET COLCNT = COLUMNSIZE(SQROFTWOLOOKUP)
90 PRINT COLCNT
FIND
Description This function will find an element of a string array that contains an identified
search string.
Format
FIND(A$, B$)
FIND(A$, B$, START)
FIND(A$, COLUMN, B$)
FIND(A$, 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 DECLARE STRING NAMES$(4)
20 LET NAMES$(1) = "Fred"
30 LET NAMES$(2) = "Wilma"
40 LET NAMES$(3) = "Barney"
50 LET NAMES$(4) = "Betty"
60 LET BARNEYIX = FIND(NAMES$, "Bar")
70 PRINT "Found Barney in element "; STR$(BARNEYIX)
Example • This example shows how to find a string that occurs more than once in a two
dimensional array.
10 DECLARE STRING CLOTHING$(5,2)
20 LET TYPECOL = 1
30 LET MATERIALCOL = 2
40 LET CLOTHING$(1,1) = "Gloves"
50 LET CLOTHING$(1,2) = "Knit"
60 LET CLOTHING$(2,1) = "Pants"
70 LET CLOTHING$(2,2) = "Cotton"
80 LET CLOTHING$(3,1) = "Gloves"
90 LET CLOTHING$(3,2) = "Leather"
100 LET CLOTHING$(4,2) = "Shirts"
110 LET CLOTHING$(4,2) = "Polyester"
120 LET CLOTHING$(5,2) = "Pants"
130 LET CLOTHING$(5,2) = "Denim"
140 LET GLOVEIX = 1
150 DO
160 LET GLOVEIX = FIND(CLOTHING$, TYPECOL, "Gloves", GLOVEIX)
170 IF NOT GLOVEIX = 0 THEN
180 PRINT CLOTHING$(GLOVEIX, MATERIALCOL), "gloves are available"
190 LET GLOVEIX = GLOVEIX + 1
200 END IF
210 LOOP WHILE NOT GLOVEIX = 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 607 for an example showing how to do this.
DATE$
Description 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 another example of the DATE$ command used with the sub-string
operator to get the day of the month:
10 LET A$=DATE$(7:8)
20 IF A$ <> DATE$(7:8)
30 LET A$=DATE$(7:8)
40 IF A$="01"
50 PRINT "IT IS THE FIRST OF THE MONTH"
60 END IF
70 END IF
80 SLEEP 100
90 GOTO 20
Comments None
TIME$
Description This function returns the current time in a string.
Format TIME$
Parameters N/A
Comments None
DATE
Description 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.
Comments None
TIME
Description 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 627, or type the following:
! U1 getvar "allcv"
SETVAR
Description SETVAR allows the direct setting of printer parameters.
Parameters
PARAM$ = The printer parameter to set.
VALUE$ = the value to set
Comments None
GETVAR$
Description This function retrieves printer parameters.
Parameters
PARAM$ = the printer parameter to get.
Returns The value of the parameter. Refer to SGD Printer Commands on page 627 for
specific parameters.
Comments None
Example Programs
The next section provides example programs of common tasks using ZBI commands.
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.
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.
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.
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
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 [email protected], 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".
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.
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.
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
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
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
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.
1 rem ********************************************************
1 rem if format is not found, create a format and set data value to
1 rem 000
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.
Notes • ___________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
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 1019.
SGD commands are available in printers with the following firmware versions or later:
• V60.16.2Z or later • V53.15.2Z or later
• V60.15.xZ or later • R53.16.3Z or later
• V50.15.xZ or later • R60.15.8Z or later
• V61.15.xZ or later • R62.15.8Z or later
• V56.15.xZ or later • R63.15.8Z or later
• V53.16.x 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:
• 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.
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 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
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)
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.
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.
1 2 3
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"
3 END
1 The command portion of the string does not use the "1" after the "! U".
2 Commands issued after the first command do not require the "! U".
3 The string of commands is terminated by the word "END" with a space after the
word, and by a carriage return/ line feed.
appl.option_board_version
Description This command returns the version number of the firmware running on the
wireless option board. For printer support, see SGD Command Support on page 1019.
Type getvar
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 630.
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 *"
appl.bootblock
Description 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 1019.
Type getvar
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 630.
Example • In this example, the getvar returns the bootblock version number.
! U1 getvar "appl.bootblock"
appl.name
Description This command refers to the printer’s firmware version. For printer support, see
SGD Command Support on page 1019.
Type getvar
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 630.
Example • In this example, the getvar returns the printer’s firmware version.
! U1 getvar "appl.name"
CISDFCRC16
Download Files
The CISDFCRC16 command downloads supported files types to the printer. For printer
support, see SGD Command Support on page 1019.
Type
! CISDFCRC16
<crc>
<filename>
<size>
<checksum>
<data>
Note • For details on SGD command structure, see Command Structure on page 630.
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.
Parameters Details
<crc> = CRC value Accepted Values: a four digit CRC value in hexadecimal. If 0000 is entered,
then the CRC validation is ignored. For examples, see below.
<filename> = file Accepted Values: file name that is stored on the printer’s file system. An
name extension must be specified. Files must be saved to the E: drive.
<size> = file size Accepted Values: an eight digit file size specified in hexadecimal which
indicates the number of bytes in the <data> section.
<checksum> = Accepted Values: a four digit checksum value in hexadecimal. If 0000 is
checksum value entered, then the CRC validation is ignored. The checksum value is calculated
using the sum of the bytes in the <data> section. For examples, see below.
<data> = data Accepted Values: Binary data saved on the printer’s file system as
<filename>. Number of bytes in this field must match the <size>
parameter.
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-----
CRC example
The value of the <crc> 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:
cutter.clean_cutter
Description This command determines if the clean cutter option is enabled or disabled. For
printer support, see SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the status of the clean cutter option.
Format: ! U1 getvar "cutter.clean_cutter"
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"
Note • For details on SGD command structure, see Command Structure on page 630.
device.download_connection_timeout
Description 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 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the connection time out value (in seconds).
Format:
! U1 getvar "device.download_connection_timeout"
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)
Note • For details on SGD command structure, see Command Structure on page 630.
device.epl_legacy_mode
Description This command places the printer in a 2824/2844 compatibility mode for
vertical registration. For printer support, see SGD Command Support on page 1019.
Supported Devices
• G-Series printers
• LP2824 Plus and TLP 2824 Plus
Type getvar;setvar
Commands Details
getvar This command causes the printer to return the current setting for the
device.epl_legacy_mode setting.
Format: ! U1 getvar "device.epl_legacy_mode"
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
Note • For details on SGD command structure, see Command Structure on page 630.
Note • This setting is not defaulted as part of a factory default (^JUF or ^default). The
setting is persistent across a power cycle or reset (~JR or device.reset)
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
New Printer Model ZT Mode ZB Mode
Model
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
a. Setting epl_legacy_mode to "registration" selects the distance shown in the table.
b. Setting epl_legacy_mode to "off" selects a no print zone distance of 1mm.
device.friendly_name
Description This command shows the name assigned to the printer. For printer support, see
SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the name assigned to the printer.
Format: ! U1 getvar "device.friendly_name"
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)
Note • For details on SGD command structure, see Command Structure on page 732.
device.frontpanel.key_press
Description This command instructs the printer to press a button on the front panel. For
printer support, see SGD Command Support on page 1019.
Type setvar
Commands Details
setvar 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: S4M:
"A" = Pause "A" = Pause
"B" = Feed "B" = Feed
"C" = Cancel "C" = Up Arrow
"D" = Setup/Exit "D" = Cancel
"E" = Minus "E" = Menu
"F" = Select "F" = Enter
"G" = Plus Xi4, RXi4:
XiIIIplus: "A" = Pause
"A" = Pause "B" = Feed
"B" = Feed "C" = Cancel
"C" = Cancel "D" = Setup/Exit
"D" = Setup/Exit "E" = Previous
"E" = Previous "F" = Next/Save
"F" = Next/Save "G" = Minus
"G" = Minus "H" = Plus
"H" = Plus "I" = Calibrate
"I" = Calibrate
Note • For details on SGD command structure, see Command Structure on page 630.
device.frontpanel.line1
Description 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 1019. For details on the supported character set, see Character Set on page 1016.
Type getvar;setvar
Commands Details
getvar This command retrieves the content that is shown on line one of the front panel.
Format: ! U1 getvar "device.frontpanel.line1"
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: ""
Note • For details on SGD command structure, see Command Structure on page 630.
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".
device.frontpanel.line2
Description 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 1019. For details on the supported character set, see Character Set on page 1016.
Type getvar;setvar
Commands Details
getvar This command retrieves the content that shows on line two of the front panel.
Format: ! U1 getvar "device.frontpanel.line2"
setvar 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: ""
Note • For details on SGD command structure, see Command Structure on page 630.
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".
device.frontpanel.xml
Description This command retrieves the current content of the front panel in an XML
format. For printer support, see SGD Command Support on page 1019.
Type getvar
Commands Details
getvar 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 630.
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"
<FRONT-PANEL>
<LCD>
<LINE1>PRINTER READY</LINE1>
<LINE2>V53.16.0</LINE2>
</LCD>
<LEDS>
<PAUSE-LED>STEADY-OFF</PAUSE-LED>
<DATA-LED>STEADY-OFF</DATA-LED>
<ERROR-LED>STEADY-OFF</ERROR-LED>
</LEDS>
</FRONT-PANEL>
device.jobs_print
Description This command identifies the number of jobs to be printed. For printer support,
see SGD Command Support on page 1019.
Type getvar
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 630.
Example • In this example, the getvar retrieves the jobs currently being printed or last
printed.
! U1 getvar "device.jobs_print"
"1"
device.languages
Description This command identifies the programming language that the printer is currently
using. For printer support, see SGD Command Support on page 1019.
Supported Devices
• Printers running V60.15.8Z, V53.15.2Z, and later.
Type getvar;setvar
Commands Details
getvar This command retrieves the programming language that the printer is currently using.
Table 24shows the possible response values.
Format: ! U1 getvar "device.languages"
setvar* This command instructs the printer to set the printer to the required programming language .
Format: ! U1 setvar "device.languages"
Values:
"epl" = Eltron Programming Language
"zpl" = Zebra Programming Language
"epl_zpl" = Eltron Programming Language and Zebra Programming Language
"hybrid_xml_zpl" = XML and ZPL Programming Languages
Default Value: "epl_zpl"
Note • For details on SGD command structure, see Command Structure on page 630.
Example • In this example, the getvar result is the current programming language that the
printer is using.
! U1 getvar "device.languages"
device.orientation
Description 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.
Supported Devices
• KR403
Commands Details
getvar This command instructs the printer to respond with the currently set presenter
loop length.
Format: ! U1 getvar "device.orientation"
setvar This command instructs the printer to change the presenter loop length.
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)
Note • For details on SGD command structure, see Command Structure on page 630.
device.pnp_option
Description 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 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the Plug and Play option setting.
Format: ! U1 getvar "device.pnp_option"
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"
Note • For details on SGD command structure, see Command Structure on page 630.
device.reset
Description This command instructs the printer to perform a soft reset. For printer support,
see SGD Command Support on page 1019.
Type setvar
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 732.
device.restore_defaults
Description This command restores to the default of all settings within the specified SGD
branch. For printer support, see SGD Command Support on page 1019.
Type do;setvar
Commands Details
do This command restores the default setting for all items within the specified branch.
Format: ! U1 do "device.restore_default" "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
setvar This command restores to the default of all settings within the specified branch.
Format: ! U1 setvar "device.restore_default" "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 785.
Example • These do and setvar examples restore the network card’s wlan parameters to
their default values.
do ! U1 do "device.restore_default" "wlan"
device.unique_id
Description This command retrieves the printer identifier. For printer support, see SGD
Command Support on page 1019.
Type getvar
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 630.
Example • In this example, assuming the printer’s unique ID is 12345, the getvar shows
"12345".
! U1 getvar "device.unique_id"
device.uptime
Description 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 1019.
Type getvar
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 630.
Example • In this example, the getvar retrieves the amount of time the printer has been
turned on.
! U1 getvar "device.uptime"
device.user_p1
Description This command saves and retrieves user specified values. For printer support,
see SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command saves and retrieves user specified parameters.
Format: ! U1 getvar "device.user_p1"
setvar This command instructs the printer to set user parameters.
Format: ! U1 setvar "device.user_p1" "value"
Values: alphanumeric text string (1 - 20)
Default Value: ""
Note • For details on SGD command structure, see Command Structure on page 630.
device.user_p2
Description This command saves and retrieves user specified values. For printer support,
see SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command saves and retrieves user specified parameters.
Format: ! U1 getvar "device.user_p2"
setvar This command instructs the printer to set user parameters.
Format: ! U1 setvar "device.user_p2" "value"
Values: alphanumeric text string (1 - 20)
Default: ""
Note • For details on SGD command structure, see Command Structure on page 630.
device.xml.enable
Description 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 1019.
Type setvar;getvar
Commands Details
getvar This command enables and disables language parsing support for XML.
Format: ! U1 getvar "device.xml.enable"
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 Value: on
Note • For details on SGD command structure, see Command Structure on page 630.
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".
display.text
Description This command retrieves the text data that is being used on the printer’s LCD.
For printer support, see SGD Command Support on page 1019.
Type getvar
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 630.
Example • In this example, the getvar displays text content that appears on the printer’s
LCD.
! U1 getvar "display.text"
file.delete
Description This command instructs the printer to delete specified files. For printer support,
see SGD Command Support on page 1019.
Type do
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 732.
file.dir
Description This command displays a directory listing on the same port the command was
received. For printer support, see SGD Command Support on page 1019.
Type do;getvar;setvar
Commands Details
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.
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.
Note • For details on SGD command structure, see Command Structure on page 732.
Example • This do example shows the directory listing of the specified directory.
! U1 do "file.dir" "R:"
- DIR R:*.*
- 11172192 bytes free R: RAM
file.type
Description This command displays the contents of the specified file. For printer support,
see SGD Command Support on page 1019.
Type do;setvar
Commands Details
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.
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.
Note • For details on SGD command structure, see Command Structure on page 630.
file.run
Description This command instructs the printer to send a specified file to the parser. For
printer support, see SGD Command Support on page 1019.
Commands Details
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.
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.
Note • For details on SGD command structure, see Command Structure on page 630.
Example • This setvar example will send the file "text.zpl" stored in RAM to the parser.
! U1 setvar "file.run" "R:text.zpl"
head.latch
Description This command identifies if the printhead is open or closed. For printer support,
see SGD Command Support on page 1019.
Type getvar
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 630.
Example • In this example, the getvar retrieves the status of the print head.
! U1 getvar "head.latch"
"ok"
interface.network.active.gateway
Description This command retrieves the gateway address of the active print server. For
printer support, see SGD Command Support on page 1019.
Type getvar
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 630.
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"
interface.network.active.ip_addr
Description This command retrieves the IP address of the active print server. For printer
support, see SGD Command Support on page 1019.
Type getvar
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 630.
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"
interface.network.active.mac_addr
Description This command retrieves the MAC address of the active print server. For printer
support, see SGD Command Support on page 1019.
Type getvar
Commands Details
getvar 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 630.
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"
interface.network.active.mac_raw
Description 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 1019.
Type getvar
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 630.
Example • In this example, the getvar retrieves the RAW MAC address of the active print
server.
! U1 getvar "interface.network.active.mac_raw"
"00074d2408ff"
interface.network.active.netmask
Description This command retrieves the netmask of the active print server. For printer
support, see SGD Command Support on page 1019.
Type getvar
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 630.
Example • In this example, the getvar retrieves the netmask of the active print server.
! U1 getvar "interface.network.active.netmask"
"255.255.255.0"
interface.network.active.protocol
Description This command retrieves IP protocol of the active print server. For printer
support, see SGD Command Support on page 1019.
Type getvar
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 630.
Example • In this example, the getvar retrieves the IP protocol of the active print server.
! U1 getvar "interface.network.active.protocol"
media.cartridge.part_number
Description This printer command retrieves the part number of the media cartridge used in
the printer.
Supported Devices
• HC100
Type getvar
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"
Note • For details on SGD command structure, see Command Structure on page 630.
Example • In this example, the getvar returns the part number of the media cartridge.
! U1 getvar "media.cartridge.part_number" "10006999"
media.cut_now
Description 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 673.
Supported Devices
• KR403
Commands Details
do This command instructs the printer to cycle the media cutter.
Format: ! U1 do "media.cut_now" ""
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 673.
Note • For details on SGD command structure, see Command Structure on page 630.
media.darkness_mode
Description This command instructs the printer to set the darkness mode. For printer
support, see SGD Command Support on page 1019.
Type setvar
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 Value: "cartridge"
Note • For details on SGD command structure, see Command Structure on page 630.
Example • This setvar example shows the darkness mode set to "cartridge".
! U1 setvar "media.darkness_mode" "cartridge"
media.media_low.external
Description This printer setting gets the status of the external media_low warning. For
printer support, see SGD Command Support on page 1019.
Supported Devices
• KR403
Type getvar
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.
Note • For details on SGD command structure, see Command Structure on page 630.
media.media_low.warning
Description This command retrievs the value of, or enables or disables the Supplies
Warning system. For printer support, see SGD Command Support on page 1019.
Supported Devices
• Xi4
• RXi4
Commands Details
getvar This command retrieves the setting for the Supplies Warning system.
Format: ! U1 getvar "media.media_low.warning"
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"
Note • For details on SGD command structure, see Command Structure on page 630.
media.present.cut_amount
Description 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 1019.
Supported Devices
• KR403
Commands Details
getvar This command instructs the printer to respond with the currently set media cut amount.
Format:
! U1 getvar "media.present.cut_amount"
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
Note • For details on SGD command structure, see Command Structure on page 630.
media.present.eject
Description 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 1019.
Supported Devices
• KR403
Commands Details
do This command instructs the printer to eject the document through the presenter module.
Format: ! U1 do "media.present.eject" "value"
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 675.
Note • For details on SGD command structure, see Command Structure on page 630.
media.present.length_addition
Description 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 1019.
Supported Devices
• KR403
Commands Details
getvar This command instructs the printer to respond with the currently set media
present length addition.
Format: :
! U1 getvar "media.present.length_addition"
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
Note • For details on SGD command structure, see Command Structure on page 630.
media.present.loop_length
Description 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 1019.
Supported Devices
• KR403
Commands Details
getvar This command instructs the printer to respond with the currently set presenter loop length.
Format: ! U1 getvar "media.present.loop_length"
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
Note • For details on SGD command structure, see Command Structure on page 630.
media.present.loop_length_max
Description This printer setting determines the maximum allowed length of the presenter
loop. For printer support, see SGD Command Support on page 1019.
Supported Devices
• KR403
Commands Details
getvar This command instructs the printer to respond with the currently set presenter loop length.
Format:
! U1 getvar "media.present.loop_length_max"
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 = gives a loop of approximately 400mm
Note • For details on SGD command structure, see Command Structure on page 630.
media.present.cut_margin
Description This printer setting determines the margin between the cutter and the printhead.
For printer support, see SGD Command Support on page 1019.
Supported Devices
• KR403
Commands Details
getvar This command instructs the printer to respond with the currently set media cut margin
amount.
Format:
! U1 getvar "media.present.cut_margin"
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
Note • For details on SGD command structure, see Command Structure on page 630.
media.present.present_timeout
Description 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 1019.
Supported Devices
• KR403
Commands Details
getvar This command instructs the printer to respond with the currently set presenter
function mode.
Format:
! U1 getvar "media.present.present_timeout"
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.
Note • For details on SGD command structure, see Command Structure on page 630.
media.present.present_type
Description 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 1019.
Supported Devices
• KR403
Commands Details
getvar This command instructs the printer to respond with the currently set presenter
function mode.
Format:
! U1 getvar "media.present.present_type"
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
Note • For details on SGD command structure, see Command Structure on page 630.
media.printmode
Description 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 1019.
Commands Details
getvar This command instructs the printer to respond with the the currently set media print mode.
Format: ! U1 getvar "media.printmode"
setvar This command instructs the printer to change the media print mode.
Format: ! U1 setvar "media.printmode" "value"
Values:
"T" = tear off
"P" = peel off c
"R" = rewind
"A" = applicator c
"C" = cutter
"D" = delayed cutter c
"L" = reserved c, d
"U" = reserved c
"K" = kiosk e
c. This value is not supported on the KR403 printer.
d. This value is supported only on the ZM400/ZM600 and RZ400/RZ600 printers.
e. This value is supported only on the KR403 printer.
Note • For details on SGD command structure, see Command Structure on page 630.
For more details on how each setvar value relates to the getvar responses, see Table 25,
Setvar / Getvar Relation on page 682.
If the setvar is set to … Then the getvar response and control panel display is …
"T" TEAR OFF
"P" PEEL OFF
"R" REWIND
"A" APPLICATOR
"C" CUTTER
"D" DELAYED CUT
"L" RESERVED
"U" RESERVED
"K" KIOSK
media.speed
Description This command specifies media print speed in inches per second (ips). For
printer support, see SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the currently set media print speed.
Format: ! U1 getvar "media.speed"
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"
Note • For details on SGD command structure, see Command Structure on page 630.
odometer.headclean
Description 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. For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to retrieve the values for the head clean counter.
Format: ! U1 getvar "odometer.headclean"
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
Note • For details on SGD command structure, see Command Structure on page 630.
Example • This example shows how to get the odometer head clean, how to reset it, and how
to confirm the settings changed.
odometer.headnew
Description 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. For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to retrieve the values for the head new counter.
Format: ! U1 getvar "odometer.headnew"
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
Note • For details on SGD command structure, see Command Structure on page 630.
Example • This example shows how to get the odometer head new, how to reset it, and how
to confirm the settings changed:
odometer.label_dot_length
Description This command returns the length of the last label printed or fed (in dots). For
printer support, see SGD Command Support on page 1019.
Type getvar
Commands Details
getvar This command returns the length of the last label printed or fed (in dots).
Format:
! U1 getvar "odometer.label_dot_length"
Note • For details on SGD command structure, see Command Structure on page 630.
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.
odometer.media_marker_count1
Description 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. For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to return the current value of the first (count1) user
resettable counter in both inches and centimeters.
Format: ! U1 getvar "odometer.media_marker_count1"
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
Note • For details on the command structure of SGD commands, see Command Structure
on page 630.
Example • This example shows how to get the first user resettable counter, how to reset it,
and how to confirm the settings have changed:
odometer.media_marker_count2
Description 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. For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to return the current value of the second (count2) user
resettable counter in both inches and centimeters.
Format: ! U1 getvar "odometer.media_marker_count2"
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
Note • For details on SGD command structure, see Command Structure on page 630.
Example • This example shows how to get the second user resettable counter, how to reset
it, and how to confirm the settings have changed:
odometer.retracts_count
Description This printer value records the number of times a label has been retracted since
the last time the counter has been reset.
Supported Devices
• KR403
Commands Details
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"
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
Note • For details on SGD command structure, see Command Structure on page 630.
odometer.rfid.valid_resettable
Description This command resets the RFID valid label counter to zero.
Note • For details on SGD command structure, see Command Structure on page 630.
Commands Details
getvar This command instructs the printer to respond with the current RFID valid counter value.
Format: ! U1 getvar "odometer.rfid.valid_resettable"
setvar This command instructs the printer to set the RFID valid counter to zero.
Format: ! U1 setvar "odometer.rfid.valid_resettable" "value"
Values: “reset”
Example • This setvar example shows how the counter portion of the printer
configuration labels looks when the RFID valid counter is reset by sending:
! U1 setvar "odometer.rfid.valid_resettable" "reset"
Before
After
odometer.rfid.void_resettable
Description This command resets the RFID void label counter to zero.
Note • For details on SGD command structure, see Command Structure on page 630.
Commands Details
getvar This command instructs the printer to respond with the current RFID void counter value.
Format: ! U1 getvar "odometer.rfid.void_resettable"
setvar This command instructs the printer to set the RFID void counter to zero.
Format: ! U1 setvar "odometer.rfid.void_resettable" "value"
Values: “reset”
Example • This setvar example shows how the counter portion of the printer
configuration labels looks when the RFID void counter is reset by sending:
! U1 setvar "odometer.rfid.void_resettable" "reset"
Before
After
odometer.total_print_length
Description This command tracks the total length of media that printed over the life of the
printer. For printer support, see SGD Command Support on page 1019.
Type getvar
Commands Details
getvar This command returns the value of the total length of media that printed over the life of the
printer.
Format: ! U1 getvar "odometer.total_print_length"
Note • For details on SGD command structure, see Command Structure on page 630.
Example • This example shows how to get the total length of media that printed over the life
of the printer.
1. To get the total length of media that has printed to date, type:
! U1 getvar "odometer.total_print_length"
Something similar to this is shown:
"8560 INCHES, 21744 CENTIMETERS"
print.tone
Description This command specifies the printer darkness. For printer support, see SGD
Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the printer’s current darkness setting.
Format: ! U1 getvar "print.tone"
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"
Note • For details on SGD command structure, see Command Structure on page 630.
rfid.error.response
Description During an error condition, an error message shows on the second line of the
display. This command can be used to retrieve that error message. For printer support, see
SGD Command Support on page 1019.
Type getvar
\
Note • For details on SGD command structure, see Command Structure on page 630.
Commands Details
getvar This command instructs the printer to respond with 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
rfid.position.program
Description This command sets the read/write position of the transponder (programming
position) in one of two ways: absolute mode (available in all RFID firmware versions) or
relative mode (available in firmware versions V53.17.7 and later). For more information on
these modes, refer to the RFID Programming Guide 2. A copy is available at
http://www.zebra.com/manuals. For printer support, see SGD Command Support
on page 1019.
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 transponder calibration procedure is run.
Note • For details on SGD command structure, see Command Structure on page 630.
Commands Details
getvar This command instructs the printer to respond with the current programming position.
Format: ! U1 getvar "rfid.position.program"
setvar This command instructs the printer to set the programming position.
Format: ! U1 setvar "rfid.position.program" "value"
Values:
Absolute Mode:
"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 transponder is already in the effective area without moving
the media.
Relative Mode Forward:
"Fxxx" = F0 to Fxxx (where xxx is the label length in millimeters or 999, whichever is
less). Move media forward, printing bitmap, for xxx millimeters before reading or
encoding.
Relative Mode Backward:
"Byy" = B0 to B30 (in millimeters, 30 mm maximum). Move media backward for yy
millimeters before reading or encoding.
Note • When using a backward program position, allow enough media or liner to
ensure that the printer can back up the media without the leading edge disappearing
under the printhead mechanism.
Accepted Values:
Default value:
For the R2844-Z and RPAX: 0 (no movement)
For printers using V53.17.7Z 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.)
Example • This setvar 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 "15", the getvar result is "F15".
rfid.reader_1.antenna_port
Description This command selects the RFID antenna port. For printer support, see SGD
Command Support on page 1019.
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 380) to
view the antenna element and power settings being used.
Note • For details on SGD command structure, see Command Structure on page 630.
Commands Details
getvar This command instructs the printer to respond with the current antenna port.
Format: ! U1 getvar "rfid.reader_1.antenna_port"
setvar R110Xi HF (R65.X):
This command instructs the printer to set the antenna port.
Format: ! U1 setvar "rfid.reader_1.antenna_port" "value"
Values:
1 = antenna port 1
2 = antenna port 2
Default: 1
R110Xi4 (V53.17.7Z and later):
This command instructs the printer to set the antenna from an array of antennas.
Format: ! U1 setvar "rfid.reader_1.antenna_port" "value"
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
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".
rfid.reader_1.power.read
Description This command sets the RFID reader power level for reading RFID tags. For
printer support, see SGD Command Support on page 1019.
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 380) to
view the antenna element and power settings being used.
Note • For details on SGD command structure, see Command Structure on page 630.
Commands Details
getvar This command instructs the printer to respond with the antenna’s current read power level.
Format: ! U1 getvar "rfid.reader_1.power.read"
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:
Values: 0 to 30
Default Value: 16
R53.16.4Z, V53.17.7, and later:
Values: 0 to 30, up, down (up and down change the current value by 1)
Default Value: 16
R60.16.x, R62.16.x, R63.16.x, R65.16.x, SP994Q, SP999G, SP1027G, SP1056F,
SP1082G, and later:
Values: 0 to 30, high, medium, low
Default Value: low
Older firmware:
Values:
high
medium
low
Default: low
Example • This setvar example sets the antenna to high power 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".
rfid.reader_1.power.single_power
Description This command sets the RFID reader power level for reading and writing to
RFID tags for readers with a single power level. For printer support, see SGD Command
Support on page 1019.
Note • This command applies only to the R110Xi HF printer, firmware version R65.X.
Note • For details on SGD command structure, see Command Structure on page 630.
Commands Details
getvar This command instructs the printer to respond with the current power
level.
Format: ! U1 getvar
"rfid.reader_1.power.single_power"
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
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".
rfid.reader_1.power.write
Description This command sets the RFID reader power level for writing to RFID tags. For
printer support, see SGD Command Support on page 1019.
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 380) 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 700 to set the
power level for the R110Xi HF printer.
Note • For details on SGD command structure, see Command Structure on page 630.
Commands Details
getvar This command instructs the printer to respond with the antenna’s current write power level.
Format: ! U1 getvar "rfid.reader_1.power.write"
setvar This command instructs the printer to set the write power level on the RFID reader.
Format: ! U1 setvar "rfid.reader_1.power.write" "value"
R53.16.3Z:
Values: 0 to 30
Default Value: 16
R53.16.4Z, V53.17.7, and later:
Values: 0 to 30, up, down (up and down change the current value by 1)
Default Value: 16
R60.16.x, R62.16.x, R63.16.x, R65.16.x, SP994Q, SP999G, SP1027G, SP1056F,
SP1082G, and later:
Values: 0 to 30, high, medium, low
Default Value: low
Older firmware:
Values:
high
medium
low
Default: low
Example • This setvar example sets the antenna to high power 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".
rfid.tag.calibrate
Description This command sets the RFID programming position through a tag calibration,
or it restores the programming position back to the printer default. For the R110Xi4 printer,
this option also selects the best antenna element and read/write power levels for the media.
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. For printer support,
see SGD Command Support on page 1019.
Type setvar
Note • For details on SGD command structure, see Command Structure on page 630.
Commands Details
setvar This command instructs the printer to set the programming position.
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"
rfid.tag.data
Description 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. For printer support, see SGD Command Support
on page 1019.
Type getvar
Note • For details on SGD command structure, see Command Structure on page 630.
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.
rfid.tag.test
Description 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 1019.
Type setvar
Note • For details on SGD command structure, see Command Structure on page 630.
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"
rfid.tag.type
Description This command sets the reader’s RFID tag type. For printer support, see SGD
Command Support on page 1019.
Note • For details on SGD command structure, see Command Structure on page 630.
Commands Details
getvar This command instructs the printer to respond with the reader’s current tag type.
Format: ! U1 getvar "rfid.tag.type"
setvar This command instructs the printer to set the reader’s tag type. For the supported tag types,
see Table 27 on page 706.
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
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 26 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).
RZ400/ RZ600
Printer
R110Xi HF
R110PAX4
R4Mplus
R2844-Z
R110Xi4
R170Xi
R110Xi
Firmware Version
R60.13.X
R62.13.X
R63.13.X
R65.13.X
all
Tag Type
EPC Class 0 — * * * * — — — — — — — — — —
ISO 18000-06A — — — * — — * * * — — — — — —
ISO 18000-06B — * * * * — * * * * * — — — —
ISO 15693 — — — — — — — — — — — — # # *
EPC tag — — — — — — — — — — — — — — *
RZ400/ RZ600
Printer
R110Xi HF
R110PAX4
R4Mplus
R2844-Z
R110Xi4
R170Xi
R110Xi
R60.13.X
R62.13.X
R63.13.X
R65.13.X
all
Tag Type
UID Tag — — — — — — — — — — — — — — —
Mifare UltraLight — — — — — — — — — — — — * * —
zbi.control.add_breakpoint
Description This command instructs the printer to set a ZBI program break point. For
printer support, see SGD Command Support on page 1019.
Type setvar
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 630.
Example • This setvar example shows setting the breakpoint at line "30".
! U1 setvar "zbi.control.add_breakpoint" "30"
zbi.control.break
Description This command breaks the execution of the ZBI 2.0 program that is currently
running. For printer support, see SGD Command Support on page 1019.
Type setvar
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 630.
zbi.control.clear_breakpoints
Description This command deletes all breakpoints in the current ZBI 2.0 program. For
printer support, see SGD Command Support on page 1019.
Type setvar
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 630.
zbi.control.delete_breakpoint
Description This command deletes a breakpoint in the current ZBI 2.0 program. For printer
support, see SGD Command Support on page 1019.
Type setvar
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 630.
zbi.control.line_number
Description 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 1019.
Type getvar;setvar
Commands Details
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"
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"
Note • For details on SGD command structure, see Command Structure on page 630.
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".
zbi.control.restart
Description This command restarts a ZBI 2.0 program that is currently stopped. For printer
support, see SGD Command Support on page 1019.
Type setvar
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 630.
zbi.control.run
Description This command runs the current ZBI 2.0 program that is loaded in the
interpreter. For printer support, see SGD Command Support on page 1019.
Type setvar
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 630.
zbi.control.step
Description This command restarts the execution of the currently stopped ZBI 2.0program
for one line. For printer support, see SGD Command Support on page 1019.
Type setvar
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 630.
zbi.control.terminate
Description This command instructs the ZBI 2.0 program to terminate and shuts down the
interpreter. For printer support, see SGD Command Support on page 1019.
Type setvar
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 630.
zbi.control.variable_name
Description 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 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the variable value that is to show on the front panel.
Format: ! U1 getvar "zbi.control.variable_name"
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: ""
Note • For details on SGD command structure, see Command Structure on page 630.
zbi.control.variable_value
Description This command identifies the variable name. For printer support, see SGD
Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the variable name that is loaded into the variable_name.
Format: ! U1 getvar "zbi.control.variable_value"
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
Note • For details on SGD command structure, see Command Structure on page 630.
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".
zbi.key
Description 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 1019.
Type getvar
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 630.
Example • In this example, the getvar shows the status of ZBI on the printer.
! U1 getvar "zbi.key"
"ENABLED"
zbi.last_error
Description This command identifies the last error that the ZBI 2.0 interpreter encountered.
For printer support, see SGD Command Support on page 1019.
Type getvar
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 630.
Example • This example demonstrates how to make the ZBI 2.0 interpreter return the last
error it encountered.
! U1 getvar "zbi.last_error"
zbi.reseller_key
Description This command allows programs that are encrypted with this key in ZBI-
Developer to run. For printer support, see SGD Command Support on page 1019.
Type setvar
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 630.
zbi.revision
Description This command identifies the current ZBI version. For printer support, see SGD
Command Support on page 1019.
Type getvar
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 630.
Example • In this example, the getvar shows the current ZBI version.
! U1 getvar "zbi.revision"
zbi.running_program_name
Description This command identifies the name of the ZBI 2.0 program that is currently
running. For printer support, see SGD Command Support on page 1019.
Type getvar
Commands Details
getvar 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 630.
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"
zbi.start_info.execute
Description 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 1019.
Type setvar
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 630.
zbi.start_info.file_name
Description 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 1019.
Type getvar;setvar
Commands Details
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".
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
Note • For details on SGD command structure, see Command Structure on page 630.
zbi.start_info.memory_alloc
Description 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 1019.
Type getvar
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 630.
Example • In this example, the getvar shows the amount of memory currently in use.
! U1 getvar "zbi.start_info.memory_alloc"
"17203"
zbi.state
Description This command shows the current state of the ZBI 2.0 program. For printer
support, see SGD Command Support on page 1019.
Type getvar
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 630.
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 1019.
SGD commands are available in printers with the following firmware versions or later:
• V60.16.2Z or later • V53.15.2Z or later
• V60.15.xZ or later • R53.16.3Z or later
• V50.15.xZ or later • R60.15.8Z or later
• V61.15.xZ or later • R62.15.8Z or later
• V56.15.xZ or later • R63.15.8Z or later
• V53.16.x 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:
• 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.
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)
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.
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.
1 2 3
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"
3 END
1 The command portion of the string does not use the "1" after the "! U".
2 Commands issued after the first command do not require the "! U".
3 The string of commands is terminated by the word "END" with a space after the
word, and by a carriage return/ line feed.
external_wired.check
Description This command controls whether to check for external print server during the
network interface search. For printer support, see SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the status of the network interface search.
Format: ! U1 getvar "external_wired.check"
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
Note • For details on SGD command structure, see Command Structure on page 732.
external_wired.ip.addr
Description This command allows you to get or set the external wired print servers’s IP
address. For printer support, see SGD Command Support on page 1019.
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
getvar * This command instructs the printer to respond with its current external wired print server IP
address.
Format: ! U1 getvar "external_wired.ip.addr"
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"
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is
supported.
Note • For details on SGD command structure, see Command Structure on page 732.
external_wired.ip.arp_interval
Description 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. For printer
support, see SGD Command Support on page 1019.
Commands Details
getvar * This command instructs the printer to respond with the ARP interval or the ARP cache time
out value for the external wired print server.
Format: ! U1 getvar "external_wired.ip.arp_interval"
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"
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is
supported.
Note • For details on SGD command structure, see Command Structure on page 732.
external_wired.ip.default_addr_enable
Description This command allows you to default the external wired print server’s IP
address. For printer support, see SGD Command Support on page 1019.
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
getvar * This command instructs the printer to show the status of the setting of external wired print
server’s default IP address feature.
Format: ! U1 getvar "external_wired.ip.default_addr_enable"
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"
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is
supported.
Note • For details on SGD command structure, see Command Structure on page 732.
external_wired.ip.dhcp.cid_all
Description 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". For printer support, see SGD Command Support on page 1019.
Commands Details
getvar * This command instructs the printer to respond with the client identifier prefix and suffix of
the external wired print server.
Format: ! U1 getvar "external_wired.ip.dhcp.cid_all"
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 Value: ""
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is
supported.
Note • For details on SGD command structure, see Command Structure on page 732.
external_wired.ip.dhcp.cid_enable
Description This command determines if DHCP (option 61) on the external wired print
server is turned on or off. For printer support, see SGD Command Support on page 1019.
Commands Details
getvar * This command instructs the printer to respond with the status of the client identifier of the
external wired print server.
Format: ! U1 getvar "external_wired.ip.dhcp.cid_enable"
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"
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is
supported.
Note • For details on SGD command structure, see Command Structure on page 732.
external_wired.ip.dhcp.cid_prefix
Description 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". For printer support,
see SGD Command Support on page 1019.
Commands Details
getvar * This command instructs the printer to respond with the client identifier prefix of the external
wired print server.
Format: ! U1 getvar "external_wired.ip.dhcp.cid_prefix"
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 Value: ""
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is
supported.
Note • For details on SGD command structure, see Command Structure on page 732.
external_wired.ip.dhcp.cid_suffix
Description 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 741 is set to "0" or "2", not "1". For printer
support, see SGD Command Support on page 1019.
Commands Details
getvar * This command instructs the printer to respond with the client identifier suffix on the external
wired print server.
Format: ! U1 getvar "external_wired.ip.dhcp.cid_suffix"
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: ""
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is
supported.
Note • For details on SGD command structure, see Command Structure on page 732.
external_wired.ip.dhcp.cid_type
Description 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". For printer support,
see SGD Command Support on page 1019.
Commands Details
getvar * This command instructs the printer to respond with the client identifier type for the external
wired print server.
Format: ! U1 getvar "external_wired.ip.dhcp.cid_type"
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" = ASCII string
"1" = wired print server’s MAC address
"2" = HEX value
Default Value: "1"
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is
supported.
Note • For details on SGD command structure, see Command Structure on page 732.
external_wired.ip.gateway
Description This command instructs the printer to change the external wired print server’s
gateway address. For printer support, see SGD Command Support on page 1019.
Important • This setting refers to the gateway address. A set value is ignored if the IP
protocol is not set to permanent.
Commands Details
getvar * This command instructs the printer to respond with the external wired printer server’s
gateway address.
Format: ! U1 getvar "external_wired.ip.gateway"
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"
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is
supported.
Note • For details on SGD command structure, see Command Structure on page 732.
external_wired.ip.netmask
Description 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. For printer support, see SGD
Command Support on page 1019.
Commands Details
getvar * This command instructs the printer to respond with the external wired print server’s subnet
mask.
Format: ! U1 getvar "external_wired.ip.netmask"
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"
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is
supported.
Note • For details on SGD command structure, see Command Structure on page 732.
external_wired.ip.port
Description 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. For printer support, see SGD Command Support on page 1019.
Commands Details
getvar * This command instructs the printer to respond with the external wired printer server’s
TCP/UDP port number.
Format: ! U1 getvar "external_wired.ip.port"
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"
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is
supported.
Note • For details on SGD command structure, see Command Structure on page 732.
external_wired.ip.protocol
Description This command configures the IP addressing method used by the external wired
print server. For printer support, see SGD Command Support on page 1019.
Commands Details
getvar * This command returns the IP addressing method used by the external print server.
Format: ! U1 getvar "external_wired.ip.protocol"
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"
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is
supported.
Note • For details on SGD command structure, see Command Structure on page 732.
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".
external_wired.ip.timeout.enable
Description 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. For printer
support, see SGD Command Support on page 1019.
Commands Details
getvar * This command instructs the printer to return whether the timeout checking is enabled on the
external wired print server.
Format:
! U1 getvar "external_wired.ip.timeout.enable"
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"
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is
supported.
Note • For details on SGD command structure, see Command Structure on page 732.
external_wired.ip.timeout.value
Description This network setting refers to the number of seconds before the connection
times out for the external wired print server. For printer support, see SGD Command Support
on page 1019.
Commands Details
getvar * This command instructs the printer to respond with the time of the external wired print
server, in seconds, before the connection times out.
Format:
! U1 getvar "external_wired.ip.timeout.value"
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"
* On SEH print server models PS102-Z or the PS105-Z, only the getvar command is
supported.
Note • For details on SGD command structure, see Command Structure on page 732.
external_wired.ip.v6.addr
Description 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. For printer support, see SGD Command Support
on page 1019.
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.
Type getvar
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)
Note • For details on SGD command structure, see Command Structure on page 732.
Example • In this example, the getvar returns the IPv6 address of the wired print server.
! U1 getvar "external_wired.ip.v6.addr"
external_wired.ip.v6.gateway
Description This command retrieves the IPv6 gateway of the SEH wired print server. For
printer support, see SGD Command Support on page 1019.
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.
Type getvar
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)
Note • For details on SGD command structure, see Command Structure on page 732.
Example • In this example, the getvar returns the IPv6 gateway of the wired print server.
! U1 getvar "external_wired.ip.v6.gateway"
external_wired.ip.v6.prefix_length
Description This command retrieves the IPv6 address prefix length of the SEH wired print
server. For printer support, see SGD Command Support on page 1019.
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.
Type getvar
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)
Note • For details on SGD command structure, see Command Structure on page 732.
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"
external_wired.mac_addr
Description This command retrieves the MAC address of the external wired print server.
For printer support, see SGD Command Support on page 1019.
Type getvar
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"
Note • For details on SGD command structure, see Command Structure on page 732.
Example • In this example, the getvar result is the MAC address of the external wired
print server.
! U1 getvar "external_wired.mac_addr"
external_wired.mac_raw
Description This command specifies the RAW MAC address of the external print server.
The raw mac address is the mac address without the colons (":"). For printer support, see
SGD Command Support on page 1019.
Type getvar
Commands Details
getvar This command retrieves the RAW MAC address of the external print server.
Format: ! U1 getvar "external_wired.mac_raw"
Note • For details on SGD command structure, see Command Structure on page 630.
Example • In this example, the getvar retrieves the RAW MAC address of the external
print server.
! U1 getvar "external_wired.mac_raw"
"00074d2408ff"
internal_wired.auto_switchover
Description 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. For printer support, see SGD Command Support on page 1019.
Supported Devices
• ZM400/ZM600
• RZ400/RZ600
Type getvar;setvar
Commands Details
getvar This command retrieves the current automatic switchover value.
Format: ! U1 getvar "internal_wired.auto_switchover"
setvar This command configures switches between the wireless and wired interfaces.
Format: ! U1 setvar "internal_wired.auto_switchover" "value"
Values:
"on" = switchover enabled
"off" = switchover disabled
Default: "off"
Note • For details on SGD command structure, see Command Structure on page 630.
internal_wired.ip.addr
Description This command allows you to get or set the internal wired print servers’s IP
address. For printer support, see SGD Command Support on page 1019.
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
getvar This command instructs the printer to respond with its current internal wired print server IP
address.
Format: ! U1 getvar "internal_wired.ip.addr"
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"
Note • For details on SGD command structure, see Command Structure on page 732.
internal_wired.ip.arp_interval
Description 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. For printer
support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the ARP interval or the ARP cache time
out value for the internal wired print server.
Format: ! U1 getvar "internal_wired.ip.arp_interval"
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"
Note • For details on SGD command structure, see Command Structure on page 732.
internal_wired.ip.default_addr_enable
Description This command allows you to default the internal wired print server’s IP
address. For printer support, see SGD Command Support on page 1019.
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
getvar This command instructs the printer to show the status of the setting of internal wired print
server’s default IP address feature.
Format: ! U1 getvar "internal_wired.ip.default_addr_enable"
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"
Note • For details on SGD command structure, see Command Structure on page 732.
internal_wired.ip.dhcp.cache_ip
Description This command enables or disables the IP cache on the internal wired print
server. For printer support, see SGD Command Support on page 1019.
Supported Devices
• ZM400/ZM600
• RZ400/RZ600
Type getvar;setvar
Commands Details
getvar This command retrieves the status of the IP cache on the internal wired print server.
Format: ! U1 getvar "internal_wired.ip.dhcp.cache_ip"
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"
Note • For details on SGD command structure, see Command Structure on page 732.
internal_wired.ip.dhcp.cid_all
Description 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". For printer support, see SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command instructs the printer to respond with the client identifier prefix and suffix of
the internal wired print server.
Format: ! U1 getvar "internal_wired.ip.dhcp.cid_all"
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 Value: ""
Note • For details on SGD command structure, see Command Structure on page 732.
internal_wired.ip.dhcp.cid_enable
Description This command determines if DHCP (option 61) is turned on or off of the
internal wired print server. For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the status of the client identifier of the
internal wired print server.
Format: ! U1 getvar "internal_wired.ip.dhcp.cid_enable"
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"
Note • For details on SGD command structure, see Command Structure on page 732.
internal_wired.ip.dhcp.cid_prefix
Description 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". For printer support,
see SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
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"
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 Value: ""
Note • For details on SGD command structure, see Command Structure on page 732.
internal_wired.ip.dhcp.cid_suffix
Description 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". For printer support,
see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the client identifier suffix of the internal
wired 10/100 print server.
Format: ! U1 getvar "internal_wired.ip.dhcp.cid_suffix"
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: ""
Note • For details on SGD command structure, see Command Structure on page 732.
What the setvar value is set to is the getvar result. In this example, the getvar result is
"printer".
internal_wired.ip.dhcp.cid_type
Description 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". For printer support,
see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the client identifier type for the internal
wired print server.
Format: ! U1 getvar "internal_wired.ip.dhcp.cid_type"
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" = ASCII string
"1" = wired print server’s MAC address
"2" = HEX value
Default Value: "1"
Note • For details on SGD command structure, see Command Structure on page 732.
internal_wired.ip.dhcp.lease.last_attempt
Description This command retrieves the last time a DHCP request was sent from the
internal wired print server. For printer support, see SGD Command Support on page 1019.
Supported Devices
• ZM400/ZM600
• RZ400/RZ600
Type getvar
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"
Note • For details on SGD command structure, see Command Structure on page 732.
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"
internal_wired.ip.dhcp.lease.length
Description This command retrieves the original length (in seconds) of the DHCP lease on
the internal wired print server. For printer support, see SGD Command Support on page 1019.
Supported Devices
• ZM400/ZM600
• RZ400/RZ600
Type getvar
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"
Note • For details on SGD command structure, see Command Structure on page 732.
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"
internal_wired.ip.dhcp.lease.server
Description This command retrieves the address of the server that provided the DHCP lease
on the internal wired print server. For printer support, see SGD Command Support
on page 1019.
Supported Devices
• ZM400/ZM600
• RZ400/RZ600
Type getvar
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"
Note • For details on SGD command structure, see Command Structure on page 732.
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"
internal_wired.ip.dhcp.lease.time_left
Description This command retrieves the time (in seconds) left in the current DHCP lease on
the internal wired print server. For printer support, see SGD Command Support on page 1019.
Supported Devices
• ZM400/ZM600
• RZ400/RZ600
Type getvar
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"
Note • For details on SGD command structure, see Command Structure on page 732.
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"
internal_wired.ip.dhcp.option12
Description 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. For printer support, see SGD
Command Support on page 1019.
Supported Devices
• ZM400/ZM600
• RZ400/RZ600
Type getvar;setvar
Commands Details
getvar This command retrieves the status of the DHCP option 12 (host name) in the discovery
packet of the internal wired print server.
Format:
! U1 getvar "internal_wired.ip.dhcp.option12"
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" "values"
Values:
"on" = turns on option 12
"off" = turns off option 12
Default Value: "on"
Note • For details on SGD command structure, see Command Structure on page 732.
internal_wired.ip.dhcp.option12_format
Description 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. For printer support,
see SGD Command Support on page 1019.
Supported Devices
• ZM400/ZM600
• RZ400/RZ600
Type getvar;setvar
Commands Details
getvar 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.
Format:
! U1 getvar "internal_wired.ip.dhcp.option12_format"
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 Value: ""
Note • For details on SGD command structure, see Command Structure on page 732.
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"
"<device.friendly_name>"
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"
internal_wired.ip.dhcp.option12_value
Description This command retrieves the actual value which will be used in the discovery
packet of the internal wired print server. For printer support, see SGD Command Support
on page 1019.
Supported Devices
• ZM400/ZM600
• RZ400/RZ600
Type getvar
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"
Note • For details on SGD command structure, see Command Structure on page 732.
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"
"<device.friendly_name>"
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"
internal_wired.ip.dhcp.request_timeout
Description This command retrieves the maximum amount of time to wait (in seconds) for
a response for a DHCP discover requests on the internal print server. For printer support, see
SGD Command Support on page 1019.
Supported Devices
• ZM400/ZM600
• RZ400/RZ600
Type getvar;setvar
Commands Details
getvar This command retrieves the currently set maximum amount of time to wait for a response
before timing out DHCP discover requests.
Format:
! U1 getvar "internal_wired.ip.dhcp.request_timeout"
setvar This command instructs the printer to set the maximum amount of time to wait for a
response before timing out DHCP discover requests.
Format:
! U1 setvar "internal_wired.ip.dhcp.request_timeout"
"value"
Values: 2-30
Default: "2"
Note • For details on SGD command structure, see Command Structure on page 630.
internal_wired.ip.dhcp.requests_per_session
Description This command retrieves the maximum amount of DHCP discover requests for
a single DHCP session on the internal wired print server. For printer support, see SGD
Command Support on page 1019.
Supported Devices
• ZM400/ZM600
• RZ400/RZ600
Type getvar;setvar
Commands Details
getvar This command retrieves the currently set maximum amount of DHCP discover requests for
a single DHCP session on the internal wired print server.
Format:
! U1 getvar "internal_wired.ip.dhcp.requests_per_session"
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"
Note • For details on SGD command structure, see Command Structure on page 732.
internal_wired.ip.dhcp.session_interval
Description This command retrieves how long it will take (in seconds) for a DHCP session
to time out before a new DHCP session begins. For printer support, see SGD Command
Support on page 1019.
Supported Devices
• ZM400/ZM600
• RZ400/RZ600
Type getvar;setvar
Commands Details
getvar This command retrieves the current DHCP session time out.
Format: ! U1 getvar "internal_wired.ip.dhcp.session_interval"
setvar This command instructs the printer to set the DHCP session time out.
Format:
! U1 setvar "internal_wired.ip.dhcp.session_interval" "value"
Values: 0-60
Default: "10"
Note • For details on SGD command structure, see Command Structure on page 732.
internal_wired.ip.gateway
Description This command instructs the printer to change the internal wired print servers
gateway address. For printer support, see SGD Command Support on page 1019.
Important • This setting refers to the gateway address. A set value is ignored if the IP
protocol is not set to permanent.
Commands Details
getvar This command instructs the printer to respond with the internal wired printer servers
gateway address.
Format: ! U1 getvar "internal_wired.ip.gateway"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
internal_wired.ip.netmask
Description 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. For printer support, see SGD
Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with internal wired print servers subnet mask.
Format: ! U1 getvar "internal_wired.ip.netmask"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
internal_wired.ip.port
Description 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. For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the internal wired printer servers
TCP/UDP port number.
Format: ! U1 getvar "internal_wired.ip.port"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
internal_wired.ip.protocol
Description This command configures the IP addressing method used by the internal wired
print server. For printer support, see SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command returns the IP addressing method used by the internal wired print server.
Format: ! U1 getvar "internal_wired.ip.protocol"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
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".
internal_wired.ip.timeout.enable
Description 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. For printer support, see
SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to return whether the timeout checking is enabled on the
internal wired print server.
Format: ! U1 getvar "internal_wired.ip.timeout.enable"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
internal_wired.ip.timeout.value
Description 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. For printer support, see SGD Command Support on page 1019.
Commands Details
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"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
internal_wired.mac_addr
Description This command retrieves the MAC address of the internal wired print server.
For printer support, see SGD Command Support on page 1019.
Type getvar
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"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar result is the MAC address of the internal wired
print server.
! U1 getvar "internal_wired.mac_addr"
internal_wired.mac_raw
Description This command identifies the RAW MAC address of the internal wired print
server. The raw mac address is the mac address without the colons (":"). For printer support,
see SGD Command Support on page 1019.
Supported Devices
• ZM400/ZM600
• RZ400/RZ600
Type getvar
Commands Details
getvar This command retrieves the RAW MAC address of the internal wired print server.
Format: ! U1 getvar "internal_wired.mac_raw"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar retrieves the RAW MAC address of the internal
wired print server.
! U1 getvar "internal_wired.mac_raw"
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 1019.
SGD commands are available in printers with the following firmware versions or later:
• V60.16.2Z or later • V53.15.2Z or later
• V60.15.xZ or later • R53.16.3Z or later
• V50.15.xZ or later • R60.15.8Z or later
• V61.15.xZ or later • R62.15.8Z or later
• V56.15.xZ or later • R63.15.8Z or later
• V53.16.x 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:
• 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.
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)
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.
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.
1 2 3
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"
3 END
1 The command portion of the string does not use the "1" after the "! U".
2 Commands issued after the first command do not require the "! U".
3 The string of commands is terminated by the word "END" with a space after the
word, and by a carriage return/ line feed.
bluetooth.address
Description This command returns the printer’s Bluetooth device address. For printer
support, see SGD Command Support on page 1019.
Type getvar
Commands Details
getvar This command retrieves the printer’s Bluetooth address.
Format: ! U1 getvar "bluetooth.address"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar command causes the printer to return the printer’s
Bluetooth address.
! U1 getvar "bluetooth.address"
bluetooth.afh_map
Description This command sets or retrieves the default AFH (adaptive frequency hopping)
channel map (Bluetooth radios 1.2 and later); 20 bytes. For printer support, see SGD
Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves default AFH channel map.
Format: ! U1 getvar "bluetooth.afh_map"
setvar This command 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"
Note • For details on SGD command structure, see Command Structure on page 785.
bluetooth.afh_map_curr
Description This command retrieves the current AFH (adaptive frequency hopping)
channel map (Bluetooth radios 1.2 and later). For printer support, see SGD Command Support
on page 1019.
Type getvar
Commands Details
getvar This command retrieves the current AFH channel map.
Format: ! U1 getvar "bluetooth.afh_map_curr"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar command causes the printer to retrieve the current
AFH channel map.
! U1 getvar "bluetooth.afh_map_curr"
bluetooth.afh_mode
Description This command sets or retrieves AFH (adaptive frequency hopping) mode
setting (Bluetooth radios 1.2 and later). For printer support, see SGD Command Support
on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the current setting of the AFH mode.
Format: ! U1 getvar "bluetooth.afh_mode"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
bluetooth.authentication
Description This command sets or retrieves Bluetooth authentication mode and works in
combination with the bluetooth.bluetooth_pin. For printer support, see SGD
Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the current Bluetooth authentication mode.
Format: ! U1 getvar "bluetooth.authentication"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
bluetooth.bluetooth_pin
Description This command is used to connect to the printer only when the command
bluetooth.authentication is set to "setpin". For printer support, see SGD
Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the current Bluetooth pin.
Format: ! U1 getvar "bluetooth.bluetooth_pin"
setvar This command sets the Bluetooth pin value.
Format: ! U1 setvar "bluetooth.bluetooth_pin" "value"
Values: Any text string up to 16 characters
Default: ""
Note • For details on SGD command structure, see Command Structure on page 785.
bluetooth.date
Description This command shows the release date of the Bluetooth module. For printer
support, see SGD Command Support on page 1019.
Type getvar
Commands Details
getvar This command shows the release date of the Bluetooth module.
Format: ! U1 getvar "bluetooth.date"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar command returns the release date of the Bluetooth
module.
! U1 getvar "bluetooth.date"
bluetooth.discoverable
Description This command enables or disables the Bluetooth discoverable mode. For
printer support, see SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the current Bluetooth discoverable mode.
Format: ! U1 getvar "bluetooth.discoverable"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
bluetooth.enable
Description This command enables or disables the Bluetooth radio. For printer support, see
SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the current status of the Bluetooth radio.
Format: ! U1 getvar "bluetooth.enable"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
bluetooth.friendly_name
Description 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. For printer support, see SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the current Bluetooth discoverable mode.
Format: ! U1 getvar "bluetooth.friendly_name"
setvar This command sets the Bluetooth discoverable mode.
Format: ! U1 setvar "bluetooth.friendly_name" "value"
Values: Any text string up to 17 characters
Note • For details on SGD command structure, see Command Structure on page 785.
bluetooth.local_name
Description This command retrieves the local name that is provided during service
discovery. For printer support, see SGD Command Support on page 1019.
Type getvar
Commands Details
getvar This command retrieves the local name that is provided during service discovery.
Format: ! U1 getvar "bluetooth.local_name"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar command returns the local name that is provided
during service discovery.
! U1 getvar "bluetooth.local_name"
bluetooth.radio_auto_baud
Description This command retrieves the Bluetooth radio data rate. For printer support, see
SGD Command Support on page 1019.
Type getvar
Commands Details
getvar This command retrieves Bluetooth radio data rate.
Format: ! U1 getvar "bluetooth.radio_auto_baud"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar retrieves the short Bluetooth address.
! U1 getvar "bluetooth.radio_auto_baud"
bluetooth.radio_version
Description This command returns the version of the currently installed Bluetooth radio.
For printer support, see SGD Command Support on page 1019.
Type getvar
Commands Details
getvar This command returns the version of the currently installed Bluetooth radio.
Format: ! U1 getvar "bluetooth.radio_version"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar command returns the currently installed Bluetooth
radio.
! U1 getvar "bluetooth.radio_version"
bluetooth.short_address
Description This command shortens the Bluetooth address by removing the colons (":").
For printer support, see SGD Command Support on page 1019.
Type getvar
Commands Details
getvar This command retrieves the shortened Bluetooth address.
Format: ! U1 getvar "bluetooth.short_address"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar retrieves the short Bluetooth address.
! U1 getvar "bluetooth.short_address"
bluetooth.version
Description This command returns the Bluetooth library version number. For printer
support, see SGD Command Support on page 1019.
Type getvar
Commands Details
getvar This command returns the Bluetooth library version number.
Format: ! U1 getvar "bluetooth.version"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar command returns the Bluetooth library version
number.
! U1 getvar "bluetooth.version"
card.mac_addr
Description This command retrieves the MAC address of the wireless radio card. For
printer support, see SGD Command Support on page 1019.
Type getvar
Commands Details
getvar This command instructs the printer to respond with the MAC address.
Format: ! U1 getvar "card.mac_addr"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar result is the MAC address for the wireless radio
card.
! U1 getvar "card.mac_addr"
card.inserted
Description This command indicates whether the wireless radio card is or is not inserted.
For printer support, see SGD Command Support on page 1019.
Type 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"
Note • For details on SGD command structure, see Command Structure on page 785.
comm.type
Description 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 1019.
Supported Devices
• LP 2824 Plus
Type getvar;setvar
Commands Details
getvar This command instructs the printer to respond with the curently set sreial port interface type.
Format: ! U1 getvar "comm.type"
setvar This command instructs the printer to change the serial port interface type.
Format: ! U1 setvar "comm.type" "value"
Values:
"auto" = Autodetect
"dte" = Force DTP (Tx on pin 2)
"dcs" = Force DCE (Rx on pin 2)
Default: "auto"
Note • For details on SGD command structure, see Command Structure on page 630.
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"
ip.active_network
Description This command displays if the printer is actively connected to wireless, external
wired, or internal wired. For printer support, see SGD Command Support on page 1019.
Type 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 27 provides details on the
potential return values.
Format: ! U1 getvar "ip.active_network"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar will return the current active network the printer is
connected to.
! U1 getvar "ip.active_network"
ip.addr
Description This command allows you to get or set the printer’s IP address. For printer
support, see SGD Command Support on page 1019.
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
getvar This command instructs the printer to respond with its current IP address.
Format: ! U1 getvar "ip.addr"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
Note • The setvar value of this command can be affected by the ip.dhcp.enable
command.
ip.arp_interval
Description This printer setting allows you to specify the ARP (Address Resolution
Protocol) interval or the ARP cache time out. For printer support, see SGD Command Support
on page 1019.
Commands Details
getvar This command instructs the printer to respond with the ARP interval or the ARP cache time
out value in seconds.
Format: ! U1 getvar "ip.arp_interval"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.bootp.enable
Description 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. For printer support, see SGD Command Support on page 1019.
Note • If you are using static IP addressing, the IP protocol must be set to permanent.
Commands Details
getvar This command instructs the printer to respond with the current BOOTP setting.
Format: ! U1 getvar "ip.bootp.enable"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.dhcp.cache_ip
Description This command enables or disables the IP caching. For printer support, see SGD
Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the status of the IP cache.
Format: ! U1 getvar "ip.dhcp.cache_ip"
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”
Note • For details on SGD command structure, see Command Structure on page 630.
ip.dhcp.cid_all
Description 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". For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the client identifier prefix and suffix.
Format: ! U1 getvar "ip.dhcp.cid_all"
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 Value: ""
Note • For details on SGD command structure, see Command Structure on page 785.
ip.dhcp.cid_enable
Description This command determines if DHCP (option 61) is turned on or off. For printer
support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the status of the client identifier.
Format: ! U1 getvar "ip.dhcp.cid_enable"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.dhcp.cid_prefix
Description 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". For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the client identifier prefix.
Format: ! U1 getvar "ip.dhcp.cid_prefix"
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 Value: ""
Note • For details on SGD command structure, see Command Structure on page 785.
ip.dhcp.cid_suffix
Description 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".
For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the client identifier suffix.
Format: ! U1 getvar "ip.dhcp.cid_suffix"
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 Value: ""
Note • For details on SGD command structure, see Command Structure on page 785.
ip.dhcp.lease.length
Description This command retrieves the original length of the DHCP lease on the wireless
print server. For printer support, see SGD Command Support on page 1019.
Type getvar
Commands Details
getvar This command retrieves the original length of the DHCP lease on the wireless print server.
Format: ! U1 getvar "ip.dhcp.lease.length"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • This command retrieves the original length of the DHCP lease on the wireless
print server.
! U1 getvar "ip.dhcp.lease.length"
"1296000"
ip.dhcp.cid_type
Description 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". For printer
support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the client identifier type.
Format: ! U1 getvar "ip.dhcp.cid_type"
setvar This command instructs the printer to enable "synthetic" Client Identifier.
Format: ! U1 setvar "ip.dhcp.cid_type" "value"
Values:
"0" = ASCII string
"1" = wireless radio card’s MAC address
"2" = HEX value
Default Value: "1"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.dhcp.enable
Definition 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. For printer support, see SGD Command Support on page 1019.
Note • If you are using static IP addressing, the IP protocol must be set to permanent.
Commands Details
getvar This command instructs the printer to respond with the DHCP status.
Format: ! U1 getvar "ip.dhcp.enable"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.dhcp.lease.last_attempt
Description This command retrieves the time from the DHCP server of when the last DHCP
request was sent. For printer support, see SGD Command Support on page 1019.
Type getvar
Commands Details
getvar This command retrieves the last time a DHCP request was sent.
Format: ! U1 getvar "ip.dhcp.lease.last_attempt"
Note • For details on SGD command structure, see Command Structure on page 785.
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"
ip.dhcp.lease.server
Description This command retrieves the address of the server that provided the DHCP lease
on the wireless print server. For printer support, see SGD Command Support on page 1019.
Type 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"
Note • For details on SGD command structure, see Command Structure on page 785.
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"
ip.dhcp.lease.time_left
Description This command retrieves the time left in the current DHCP lease on the wireless
print server. For printer support, see SGD Command Support on page 1019.
Type 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"
Note • For details on SGD command structure, see Command Structure on page 785.
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"
ip.dhcp.option12
Description 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. For printer support, see SGD
Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the status of the DHCP option 12 (host name) in the discovery
packet that is sent from the wireless print server.
Format: ! U1 getvar "ip.dhcp.option12"
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 Value: "on"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.dhcp.option12_format
Description 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. For printer support, see
SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar 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.
Format: ! U1 getvar "ip.dhcp.option12_format"
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 Value: ""
Note • For details on SGD command structure, see Command Structure on page 785.
It is necessary to surround the SGD entry to be used as source for the data with the < and >
characters.
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"
ip.dhcp.option12_value
Description This command retrieves the actual value which will be used in the discovery
packet of the wireless print server. For printer support, see SGD Command Support
on page 1019.
Type 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"
Note • For details on SGD command structure, see Command Structure on page 785.
It is necessary to surround the SGD entry to be used as source for the data with the < and >
characters.
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"
ip.dhcp.request_timeout
Description This command retrieves the maximum amount of time (in seconds) for a DHCP
discovery requests on the wireless print server. For printer support, see SGD Command
Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the currently set the amount of time (in seconds) to wait before
timing out a DHCP discovery request.
Format: ! U1 getvar "ip.dhcp.request_timeout"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.dhcp.requests_per_session
Description This command retrieves the maximum amount of DHCP discovery requests for
a single DHCP session on the wireless print server. For printer support, see SGD Command
Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the currently set maximum amount of DHCP discovery requests for
a single DHCP session on the wireless print server.
Format: ! U1 getvar "ip.dhcp.requests_per_session"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.dhcp.session_interval
Description This command configures the time interval (in seconds) before a new DHCP
session is started on the wireless print server. For printer support, see SGD Command Support
on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the current DHCP session time out value (in seconds).
Format: ! U1 getvar "ip.dhcp.session_interval"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.dns.domain
Description This command identifies the network domain of the wireless print server. For
printer support, see SGD Command Support on page 1019.
Type getvar
Commands Details
getvar This command retrieves the network domain of the wireless print server.
Format: ! U1 getvar "ip.dns.domain"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar retrieves the network domain of the wireless print
server.
! U1 getvar "ip.dns.domain"
ip.dns.servers
Description This command retrieves a space delimited list of the domain name servers from
a wireless print server. For printer support, see SGD Command Support on page 1019.
Type getvar
Commands Details
getvar This command retrieves a list of space delimited DNS wireless print servers.
Format: ! U1 getvar "ip.dns.servers"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar retrieves a list of space delimited DNS wireless
print servers.
! U1 getvar "ip.dns.servers"
ip.ftp.enable
Description This printer setting refers to the FTP protocol setting. This command tells the
printer to turn FTP on or off. For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the FTP status.
Format: ! U1 getvar "ip.ftp.enable"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
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".
ip.ftp.execute_file
Description This command setting controls the printers’ ability to process or not process
commands received via the FTP protocol using the printers ZPL engine. For printer support,
see SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command instructs the printer to respond with the FTP processing ability status.
Format: ! U1 getvar "ip.ftp.execute_file"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • This setvar example shows the FTP processing ability set to "on".
! U1 setvar "ip.ftp.execute_file" "on"
ip.gateway
Description This command instructs the printer to change the gateway address. For printer
support, see SGD Command Support on page 1019.
Important • This setting refers to the gateway address. A set value is ignored if the IP
protocol is not set to permanent.
Commands Details
getvar This command instructs the printer to respond with the gateway address.
Format: ! U1 getvar "ip.gateway"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.http.enable
Description This printer setting refers to the HTTP protocol/web server setting. For printer
support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the HTTP status.
Format: ! U1 getvar "ip.http.enable"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.lpd.enable
Description This printer setting refers to the LPD (Line Printer Daemon) protocol setting.
For printer support, see SGD Command Support on page 1019.
Important • LPD communications from the host should be directed to port 515.
Commands Details
getvar This command instructs the printer to respond with the LPD status.
Format: ! U1 getvar "ip.lpd.enable"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.mac_raw
Description This command specifies the RAW MAC address of the wireless print server.
The raw mac address is the mac address without the colons (":"). For printer support, see
SGD Command Support on page 1019.
Type getvar
Commands Details
getvar This command retrieves the RAW MAC address of the wireless print server.
Format: ! U1 getvar "ip.mac_raw"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar retrieves the RAW MAC address of the wireless
print server.
! U1 getvar "ip.mac_raw"
ip.mirror.auto
Description This command enables the ability to automatically perform a mirror update
(fetch) command on power up. For printer support, see SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command will report whether the printer will perform a mirror update (fetch)
automatically on power up.
Format: ! U1 getvar "ip.mirror.auto"
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 Value: "off"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.mirror.error_retry
Description This command identifies how many times mirroring is retried when an error
occurs. For printer support, see SGD Wireless Commands on page 781.
Type getvar;setvar
Commands Details
getvar This command retrieves the number of times the printer retries mirroring when an error
occurs.
Format: ! U1 getvar "ip.mirror.error_retry"
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 Value: "0"
Note • For details on SGD command structure, see SGD Command Support on page 1019.
ip.mirror.feedback.auto
Description This command identifies if a feedback file is pushed to the mirroring server by
the printer when a mirroring update (fetch) is complete. For printer support, see SGD
Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the mirror feedback setting that the printer is currently using.
Format: ! U1 getvar "ip.mirror.feedback.auto"
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 Value: "off"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.mirror.feedback.freq
Description This command specifies the time interval (in minutes) between performing
feedback file uploads. For printer support, see SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the number of minutes set to wait between feedback file uploads.
Format: ! U1 getvar "ip.mirror.feedback.freq"
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 Value: "0"
Note • For details on SGD command structure, see Command Structure on page 630.
ip.mirror.feedback.odometer
Description This command instructs the printer to set the mirror feedback odometer. For
printer support, see SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the mirror feedback odometer.
Format: ! U1 getvar "ip.mirror.feedback.odometer"
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 2632
Default Value: "0"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.mirror.feedback.path
Description This command identifies where the feedback file is stored on the mirroring
server. For printer support, see SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the path on the mirroring sever that the printer is currently using to
store the feedback file.
Format: ! U1 getvar "ip.mirror.feedback.path"
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 Value: "Zebra/feedback"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.mirror.fetch
Description This command forces a mirroring update sequence. For printer support, see
SGD Command Support on page 1019.
Type do;setvar
Commands Details
do This command forces a mirroring update sequence.
Format: ! U1 do "ip.mirror.fetch" ""
setvar This command forces a mirroring update sequence.
Format: ! U1 setvar "ip.mirror.fetch" ""
Note • For details on SGD command structure, see Command Structure on page 785.
ip.mirror.freq
Description This command defines the frequency of mirroring updates (in minutes). For
printer support, see SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the number of minutes to wait before performing another mirror
update.
Format: ! U1 getvar "ip.mirror.freq"
setvar This command instructs the printer to set the mirror frequency.
Format: ! U1 setvar "ip.mirror.freq" "value"
Values: "0" through "65535" (minutes)
Default Value: "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.
Note • For details on SGD command structure, see Command Structure on page 785.
ip.mirror.freq_hours
Description This command defines the frequency of mirroring updates (in hours). For
printer support, see SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the frequency of mirroring updates (in hours) that the printer is
currently using.
Format: ! U1 getvar "ip.mirror.freq_hours"
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 Value: "0" (disables this feature)
Note • For details on SGD command structure, see Command Structure on page 785.
ip.mirror.last_error
Description This command retrieves the last error encountered during a mirroring
operation. For printer support, see SGD Command Support on page 1019.
Type getvar
Commands Details
getvar This command retrieves the error code of the last mirroring update (fetch).
Format: ! U1 getvar "ip.mirror.last_error"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar retrieves the error code of the last mirroring update.
! U1 getvar "ip.mirror.last_error"
ip.mirror.last_time
Description This command retrieves the timestamp, in seconds, of the last time the system
attempted a mirror update (fetch). For printer support, see SGD Command Support
on page 1019.
Type 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"
Note • For details on SGD command structure, see Command Structure on page 630.
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"
ip.mirror.password
Description This command specifies the user password on the mirroring server assigned for
mirroring updates (fetch). For printer support, see SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the user password the printer is currently using for mirroring
updates (fetch).
Format: ! U1 getvar "ip.mirror.password"
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 Value: "password"
Note • For details on SGD command structure, see Command Structure on page 630.
ip.mirror.path
Description This command identifies the base path on the FTP server where the mirror
directory resides. For printer support, see SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the base path of the FTP server where the mirror directory resides.
Format: ! U1 getvar "ip.mirror.path"
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 Value: "zebra"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.mirror.reset_delay
Description 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. For printer support, see SGD Wireless Commands on page 781.
Type getvar;setvar
Commands Details
getvar 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.
Format: ! U1 getvar "ip.mirror.reset_delay"
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 Value: "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.
Note • For details on SGD command structure, see SGD Command Support on page 1019.
ip.mirror.server
Description This command identifies the IP address of the mirroring server. For printer
support, see SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the IP address of the mirroring server.
Format: ! U1 getvar "ip.mirror.server"
setvar This command sets the IP address of the mirroring server.
Format: ! U1 setvar "ip.mirror.server" "value"
Values: a valid IP address
Default Value: "127.0.0.1"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.mirror.success
Description This command reports the success or failure of the last mirroring update
(fetch). For printer support, see SGD Wireless Commands on page 781.
Type 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
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar retrieves the success or failure of the last mirroring
update (fetch).
! U1 getvar "ip.mirror.success"
ip.mirror.success_time
Description This command provides the timestamp, in seconds, of the last time the system
successfully completed a mirror update (fetch). For printer support, see SGD Command
Support on page 1019.
Type 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"
Note • For details on SGD command structure, see Command Structure on page 785.
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"
ip.mirror.username
Description This command specifies the user name on the mirroring server assigned for
mirroring updates (fetch). For printer support, see SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the user name the printer is currently using for mirroring updates
(fetch).
Format: ! U1 getvar "ip.mirror.username"
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 Value: "user"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.mirror.version
Description This command retrieves the mirror code build date. For printer support, see
SGD Command Support on page 1019.
Type getvar
Commands Details
getvar This command retrieves the mirror code build date.
Format: ! U1 getvar "ip.mirror.version"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar retrieves the mirror code build date.
! U1 getvar "ip.mirror.version"
ip.netmask
Description This setting refers to the subnet mask address. This value is ignored if the IP
protocol is not set to permanent. For printer support, see SGD Command Support
on page 1019.
Commands Details
getvar This command instructs the printer to respond with subnet mask.
Format: ! U1 getvar "ip.netmask"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.pop3.enable
Description This printer setting determines if the printer queries a POP3 mailbox for mail.
For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the POP3 status.
Format: ! U1 getvar "ip.pop3.enable"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.pop3.password
Description This printer setting refers to the POP3 mailbox password. This only applies if
"ip.pop3.enable" is set to on. For printer support, see SGD Command Support
on page 1019.
Commands Details
getvar This command instructs the printer to respond with the POP3 password.
Format: ! U1 getvar "ip.pop3.password"
For protection a single "*" prints.
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: " "
Note • For details on SGD command structure, see Command Structure on page 785.
ip.pop3.poll
Description 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. For
printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the POP3 poll frequency (in seconds).
Format: ! U1 getvar "ip.pop3.poll"
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.
Note • For details on SGD command structure, see Command Structure on page 785.
ip.pop3.server_addr
Description 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. For
printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the POP3 server address.
Format: ! U1 getvar "ip.pop3.server_addr"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.pop3.username
Description This printer setting refers to the POP3 user name. This only applies if the
"ip.pop3.enable" is set to on. For printer support, see SGD Command Support
on page 1019.
Commands Details
getvar This command instructs the printer to respond with the POP3 user name.
Format: ! U1 getvar "ip.pop3.username"
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: " "
Note • For details on SGD command structure, see Command Structure on page 785.
ip.port
Description 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. For
printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the TCP/UDP port number.
Format: ! U1 getvar "ip.port"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.primary_network
Description This command allows you to set the primary network to either wired or
wireless. For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the name of the current primary network
device.
Format: ! U1 getvar "ip.primary_network"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.smtp.domain
Description This printer setting refers to the domain name used by the printer in sending
email with respect to the SMTP server. For printer support, see SGD Command Support
on page 1019.
Commands Details
getvar This command instructs the printer to return the SMTP domain name.
Format: ! U1 getvar "ip.smtp.domain"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.smtp.enable
Description This printer setting refers to the SMTP protocol. For printer support, see SGD
Command Support on page 1019.
Commands Details
getvar This command instructs the printer to return the SMTP status.
Format: ! U1 getvar "ip.smtp.enable"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.smtp.server_addr
Description This printer setting refers to the IP address of the SMTP server used for sending
email. For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the current SMTP server address.
Format: ! U1 getvar "ip.smtp.server_addr"
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
Note • For details on SGD command structure, see Command Structure on page 785.
ip.snmp.get_community_name
Description 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. For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to get the SNMP get community name string.
Format: ! U1 getvar "ip.snmp.get_community_name"
For protection a single "*" prints.
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"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.snmp.set_community_name
Description 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. For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to return the printer’s SNMP set community name string.
Format: ! U1 getvar "ip.snmp.set_community_name"
For protection a single "*" returns.
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"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.snmp.enable
Description This printer setting refers to the SNMP protocol. For printer support, see SGD
Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the SNMP status.
Format: ! U1 getvar "ip.snmp.enable"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.telnet.enable
Description This printer setting refers to the TELNET (port 23) protocol. For printer
support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the TELNET status.
Format: ! U1 getvar "ip.telnet.enable"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.tcp.enable
Description This printer setting refers to the TCP socket protocol. For printer support, see
SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the TCP status.
Format: ! U1 getvar "ip.tcp.enable"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
ip.udp.enable
Description This printer setting refers to the UDP socket protocol. For printer support, see
SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the UDP status.
Format: ! U1 getvar "ip.udp.enable"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.adhocautomode
Description This printer setting refers to enabling or disabling the adhoc auto mode. For
printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the adhoc auto mode status.
Format: ! U1 getvar "wlan.adhocautomode"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.adhocchannel
Description This printer setting refers to specifying the wireless channel for adhoc channel.
For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the wireless channel for adhoc channel
mode.
Format: ! U1 getvar "wlan.adhocchannel"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.associated
Description This command refers to if the printer is or is not associated with an access point
(AP). For printer support, see SGD Command Support on page 1019.
Type 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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.bssid
Description This command returns the MAC address of the access point (AP) with which
the printer is associated. For printer support, see SGD Command Support on page 1019.
Type getvar
Commands Details
getvar This command retrieves the MAC address of the access point (AP).
Format: ! U1 getvar "wlan.bssid"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar result is the MAC address of the access point.
! U1 getvar "wlan.bssid"
wlan.channel
Description This command retrieves the current WI-FI channel the printer is using. For
printer support, see SGD Command Support on page 1019.
Type getvar
Commands Details
getvar This command retrieves the current WI-FI channel the printer is using.
Format: ! U1 getvar "wlan.channel"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar retrieves the current WI-FI channel the printer is
using.
! U1 getvar "wlan.channel"
wlan.channel_mask
Description This printer setting refers to specifying the wireless channel masks to enable
and disable various channels. For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the wireless channel mask value.
Format: ! U1 getvar "wlan.channel_mask"
setvar This command instructs the printer to set the wireless channel mask value.
Format: ! U1 setvar "wlan.channel_mask" "value"
Values: 4 Hexadecimal digits preceded by "0x" (0x0000 to 0xFFFF). For commonly used
channel masks, see Table 28.
Default: "0x7FF"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.current_tx_rate
Description This command retrieves the transmission rate of the wireless print server. For
printer support, see SGD Command Support on page 1019.
Type 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"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar retrieves the transmission rate of the wireless print
server.
! U1 getvar "wlan.current_tx_rate"
wlan.essid
Description This printer setting refers to the printer’s stored ESSID. Setting the ESSID to ""
will set the printer in a "broadcast" mode. For printer support, see SGD Command
Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the stored ESSID value.
Format: ! U1 getvar "wlan.essid"
setvar This command instructs the printer to change the ESSID.
Format: ! U1 setvar "wlan.essid" "value"
Values: 32 character alphanumeric string
Default: "125"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.firmware_version
Description This command refers to the firmware version of the wireless radio card. For
printer support, see SGD Command Support on page 1019.
Type 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"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar result is the version of Symbol 4137 card (for
example, "F3.91-69").
! U1 getvar "wlan.firmware_version"
wlan.ip.addr
Description This command allows you to get or set the wireless print servers’s IP address.
For printer support, see SGD Command Support on page 1019.
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
getvar This command instructs the printer to respond with its current wireless print server IP
address.
Format: ! U1 getvar "wlan.ip.addr"
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.
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.ip.arp_interval
Description 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. For printer support,
see SGD Command Support on page 1019.
Commands Details
getvar 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.
Format: ! U1 getvar "wlan.ip.arp_interval"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.ip.default_addr_enable
Description This command allows you to default the wireless print server’s IP address. For
printer support, see SGD Command Support on page 1019.
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
getvar This command instructs the printer to show the status of the setting of the wireless print
server’s default IP address feature.
Format: ! U1 getvar "wlan.ip.default_addr_enable"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.ip.dhcp.cache_ip
Description This command enables or disables the IP cache of the wireless print server. For
printer support, see SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the status of the IP cache.
Format: ! U1 getvar "wlan.ip.dhcp.cache_ip"
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”
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.ip.dhcp.cid_all
Description 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". For printer support, see SGD
Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the client identifier prefix and suffix of
the wireless print server.
Format: ! U1 getvar "wlan.ip.dhcp.cid_all"
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 Value: ""
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.ip.dhcp.cid_enable
Description This command determines if DHCP (option 61) is turned on or off of the
wireless print server. For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the status of the client identifier of the
wireless print server.
Format: ! U1 getvar "wlan.ip.dhcp.cid_enable"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.ip.dhcp.cid_prefix
Description 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". For printer support, see SGD
Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the client identifier prefix of the wireless
print server.
Format: ! U1 getvar "wlan.ip.dhcp.cid_prefix"
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 Value: ""
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.ip.dhcp.cid_suffix
Description 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". For printer support, see SGD
Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the client identifier suffix on the
wireless print server.
Format: ! U1 getvar "wlan.ip.dhcp.cid_suffix"
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: ""
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.ip.dhcp.cid_type
Description 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". For printer support, see SGD Command Support
on page 1019.
Commands Details
getvar This command instructs the printer to respond with the client identifier type for the wireless
print server.
Format: ! U1 getvar "wlan.ip.dhcp.cid_type"
setvar This command instructs the printer to enable "synthetic" client identifier for the wireless
print server.
Format: ! U1 setvar "wlan.ip.dhcp.cid_type" "value"
Values:
"0" = ASCII string
"1" = wireless radio card’s MAC address
"2" = HEX value
Default Value: "1"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.ip.dhcp.lease.last_attempt
Description This command retrieves the last time a DHCP request was sent from the
wireless print server. For printer support, see SGD Command Support on page 1019.
Type 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"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar retrieves the last time a DHCP request was sent to
the wireless print server.
! U1 getvar "wlan.ip.dhcp.lease.last_attempt"
wlan.ip.dhcp.lease.length
Description This command retrieves the original length (in seconds) of the DHCP lease on
the wireless print server. For printer support, see SGD Command Support on page 1019.
Type 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"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • This command retrieves the original length of the DHCP lease on the wireless
print server.
! U1 getvar "wlan.ip.dhcp.lease.length"
wlan.ip.dhcp.lease.server
Description This command retrieves the address of the print server that provided the DHCP
lease on the wireless print server. For printer support, see SGD Command Support
on page 1019.
Type 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"
Note • For details on SGD command structure, see Command Structure on page 785.
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"
wlan.ip.dhcp.lease.time_left
Description This command retrieves the time (in seconds) left in the current DHCP lease on
the wireless print server. For printer support, see SGD Command Support on page 1019.
Type 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"
Note • For details on SGD command structure, see Command Structure on page 785.
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"
wlan.ip.dhcp.option12
Description 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. For printer support, see SGD
Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar 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.
Format: ! U1 getvar "wlan.ip.dhcp.option12"
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 Value: "on"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.ip.dhcp.option12_format
Description This command specifies the format of the option 12 value to be used in the
discovery packet of the wireless print server. For printer support, see SGD Command Support
on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the format of option 12 value to be used in the discovery packet of
the wireless print server.
Format: ! U1 getvar "wlan.ip.dhcp.option12_format"
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 Value: ""
Note • For details on SGD command structure, see Command Structure on page 785.
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"
"<device.friendly_name>"
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"
wlan.ip.dhcp.option12_value
Description This command retrieves the actual value which will be used in the discovery
packet of the wireless print server. For printer support, see SGD Command Support
on page 1019.
Type 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"
Note • For details on SGD command structure, see Command Structure on page 785.
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"
"<device.friendly_name>"
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"
wlan.ip.dhcp.request_timeout
Description This command sets the maximum time (in seconds) to wait for a response to a
DHCP discovery request on the wireless print server. For printer support, see SGD Command
Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the maximum time (in seconds) to wait for a response to a DHCP
discovery request on the wireless print server.
Format: ! U1 getvar "wlan.ip.dhcp.request_timeout"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.ip.dhcp.requests_per_session
Description This command retrieves the maximum amount of DHCP discover requests for
a single DHCP session on the wireless print server. For printer support, see SGD Command
Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the currently set maximum amount of DHCP discover requests for
a single DHCP session on the wireless print server.
Format: ! U1 getvar "wlan.ip.dhcp.requests_per_session"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.ip.dhcp.session_interval
Description 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. For printer support, see SGD
Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the current DHCP session time out.
Format: ! U1 getvar "wlan.ip.dhcp.session_interval"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.ip.gateway
Description This command instructs the printer to change the wireless print server’s
gateway address. For printer support, see SGD Command Support on page 1019.
Note • This setting refers to the gateway address. A set value is ignored if the IP protocol is
not set to permanent.
Commands Details
getvar This command instructs the printer to respond with the wireless printer server’s gateway
address.
Format: ! U1 getvar "wlan.ip.gateway"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.ip.netmask
Description 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. For printer support, see SGD Command
Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with wireless print server’s subnet mask.
Format: ! U1 getvar "wlan.ip.netmask"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.ip.port
Description 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.For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the wireless printer server’s TCP/UDP
port number.
Format: ! U1 getvar "wlan.ip.port"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.ip.protocol
Description This command configures the IP addressing method used by the wireless print
server. For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command returns the value of the currently selected IP protocol used by the wireless
print server.
Format: ! U1 getvar "wlan.ip.protocol"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
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".
wlan.ip.timeout.enable
Description 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. For printer support, see SGD
Command Support on page 1019.
Commands Details
getvar This command instructs the printer to return whether the timeout checking is enabled on the
wireless print server.
Format: ! U1 getvar "wlan.ip.timeout.enable"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.ip.timeout.value
Description 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. For
printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the time, in seconds, before the
connection times out.
Format: ! U1 getvar "wlan.ip.timeout.value"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.keep_alive.enable
Description 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. For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the wlan.keep_alive.enable
setting.
Format: ! U1 getvar "wlan.keep_alive.enable"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.keep_alive.timeout
Description This printer setting manages the interval at which the LSAP (link service
access point) packet is sent. For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the wlan.keep_alive.timeout
interval value.
Format: ! U1 getvar "wlan.keep_alive.timeout"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.kerberos.kdc
Description 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). For printer support,
see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the current Kerberos KDC.
Format: ! U1 getvar "wlan.kerberos.kdc"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.kerberos.password
Description This printer setting refers to the Kerberos password. The password must
correspond to a user profile established on the Kerberos KDC server in use. For printer
support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the current Kerberos password.
Format: ! U1 getvar "wlan.kerberos.password"
For protection a single "*" prints.
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.kerberos.realm
Description This printer setting refers to the Kerberos realm, an administrative domain with
its own Kerberos server (KDC). For printer support, see SGD Command Support
on page 1019.
Important • If you are using a Windows 2000 Server the realm must be all upper-case. For
details, see Example 2 below.
Commands Details
getvar This command instructs the printer to respond with the current Kerberos realm.
Format: ! U1 getvar "wlan.kerberos.realm"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
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".
wlan.kerberos.username
Description 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. For printer
support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the current Kerberos user name.
Format: ! U1 getvar "wlan.kerberos.username"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.mac_addr
Description This command retrieves the MAC address of the wireless print server. For
printer support, see SGD Command Support on page 1019.
Type 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"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar result is the MAC address for the wireless print
server.
! U1 getvar "wlan.mac_addr"
wlan.mac_raw
Description This command specifies the RAW MAC address of the wireless print server.
The raw mac address is the mac address without the colons (":"). For printer support, see
SGD Command Support on page 1019.
Type getvar
Commands Details
getvar This command retrieves the RAW MAC address of the wireless print server.
Format: ! U1 getvar "wlan.mac_raw"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar retrieves the RAW MAC address of the wireless
print server.
! U1 getvar "wlan.mac_raw"
wlan.operating_mode
Description 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. For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the network-mode value.
Format: ! U1 getvar "wlan.operating_mode"
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
Default: "infrastructure"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.password
Description This printer setting refers to the generic password that is used by the wireless
securities that need a password. For printer support, see SGD Command Support
on page 1019.
Commands Details
getvar This command instructs the printer to respond with a generic password for wireless
securities.
Format: ! U1 getvar "wlan.password"
For protection a single "*" prints.
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.preamble
Description This printer setting selects the radio preamble length to be used. For printer
support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the current preamble length.
Format: ! U1 getvar "wlan.preamble"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.private_key_password
Description This printer setting allows the setting of the optional private key password. For
printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the value of the private key password.
Format: ! U1 getvar "wlan.private_key_password"
For protection a single "*" prints.
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: ""
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.roam.interchannel_delay
Description This command sets how long of a delay before scanning the next channel when
roaming. For printer support, see SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the current set delay time before scanning the next channel when
roaming.
Format: ! U1 getvar "wlan.roam.interchannel_delay"
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: 10 to 30000
Default: "400"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.roam.interval
Description This printer setting refers to specifying the wireless roam interval. For printer
support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the specified roam interval.
Format: ! U1 getvar "wlan.roam.interval"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.roam.max_chan_scan_time
Description This command sets how long the radio waits on a channel looking for probe
responses. For printer support, see SGD Command Support on page 1019.
Type getvar;setvar
Commands Details
getvar This command retrieves the current setting for how long the radio waits on a channel
looking for probe responses.
Format: ! U1 getvar "wlan.roam.max_chan_scan_time"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.roam.signal
Description This printer setting refers to specifying the wireless roam signal. For printer
support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the specified wireless roam signal.
Format: ! U1 getvar "wlan.roam.signal"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.security
Description This printer setting allows you to specify both the wireless encryption type and
authentication type in one command. For printer support, see SGD Command Support
on page 1019.
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 920 for
instructions for each security type.
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.
Commands Details
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"
setvar This command instructs the printer to set the wireless security value.
Format: ! U1 setvar "wlan.security" "value"
Values:
"1" = No wireless security or "none"
"2" = WEP 40-bit or "wep 40-bit"
"3" = WEP 128-bit or "wep 128-bit"
"4" = EAP-TLS or "eap-tls"
"5" = EAP-TTLS or "eap-ttls"
"6" = EAP-FAST or "eap-fast"
"7" = PEAP or "peap"
"8" = LEAP or "leap"
"9" = 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"
Note • For details on SGD command structure, see Command Structure on page 785.
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"
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 setvar "wlan.security" "2"
! U1 setvar "wlan.wep.index" "1"
! U1 setvar "wlan.wep.auth_type" "open"
! U1 setvar "wlan.wep.key_format" "hex"
! U1 setvar "wlan.wep.key1" "A1B2C3D4F5"
Example • This example configures the printer for WEP 128-bit encryption using index
key 2, open authentication, and four hexadecimal WEP keys.
! U1 setvar "wlan.security" "3"
! U1 setvar "wlan.wep.index" "2"
! U1 setvar "wlan.wep.auth_type" "open"
! U1 setvar "wlan.wep.key_format" "hex"
! U1 setvar "wlan.wep.key1" "001122334455667788"
! U1 setvar "wlan.wep.key2" "112233445566778899"
! U1 setvar "wlan.wep.key3" "223344556677889900"
! U1 setvar "wlan.wep.key4" "334455667788990011"
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"
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"
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 setvar "wlan.security" "6"
! U1 setvar "wlan.username" "user"
! U1 setvar "wlan.password" "password"
! U1 setvar "wlan.private_key_password" "private"
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"
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"
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 940)
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..."
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 914)
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"
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 933)
• password (see wlan.password on page 912)
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"
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 933)
• password (see wlan.password on page 912)
• optional private key password (see wlan.private_key_password on page 914)
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 setvar "wlan.security" "12"
! U1 setvar "wlan.username" "user"
! U1 setvar "wlan.password" "password"
! U1 setvar "wlan.private_key_password" "private"
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 933)
• password (see wlan.password on page 912)
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"
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 933)
• password (see wlan.password on page 912)
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"
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.”
! U1 setvar "wlan.security" "15"
! U1 setvar "wlan.kerberos.username" "user"
! U1 setvar "wlan.kerberos.password" "password"
! U1 setvar "wlan.kerberos.realm" "zebra"
! U1 setvar "wlan.kerberos.kdc" "krbtgt"
wlan.signal_noise
Description This command returns the signal noise on the wireless network. Values above
40% represent a very significant noise, and radio communication is not reliable. For printer
support, see SGD Command Support on page 1019.
Type getvar
Commands Details
getvar This command instructs the printer to return the current signal noise on the wireless
network.
Format: ! U1 getvar "wlan.signal_noise"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar result is the current signal_noise value.
! U1 getvar "wlan.signal_noise"
wlan.signal_quality
Description 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. For printer support, see SGD Command Support on page 1019.
Type 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"
Note • For details on SGD command structure, see Command Structure on page 785.
Example • In this example, the getvar result is the current signal_quality value.
! U1 getvar "wlan.signal_quality"
wlan.signal_strength
Description 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. For printer support,
see SGD Command Support on page 1019.
Type getvar
Commands Details
getvar This command instructs the printer to respond with the current signal strength.
Format: ! U1 getvar "wlan.signal_strength"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.station_name
Description This printer setting refers to the station name. For printer support, see SGD
Command Support on page 1019.
Type setvar;getvar
Commands Details
getvar This command instructs the printer to respond with the station name value.
Format: ! U1 getvar "wlan.station_name"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.tx_power
Description This printer setting refers to specifying the wireless transmit power. For printer
support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the wireless transmit power.
Format: ! U1 getvar "wlan.tx_power"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.tx_rate
Description This printer setting refers to specifying the wireless transmit rate. For printer
support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the wireless transmit rate.
Format: ! U1 getvar "wlan.tx_rate"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.username
Description This printer setting refers to the generic user name that is used by the wireless
securities that need a user name. For printer support, see SGD Command Support
on page 1019.
Commands Details
getvar This command instructs the printer to respond with a generic user name for the wireless
securities that need a user name.
Format: ! U1 getvar "wlan.username"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.wep.auth_type
Description 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. For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to retrieve the current WEP authentication type.
Format: ! U1 getvar "wlan.wep.auth_type"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.wep.index
Description 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). For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the encryption key index.
Format: ! U1 getvar "wlan.wep.index"
setvar This command instructs the printer to set the encryption key index.
Format: ! U1 setvar "wlan.wep.index" "value"
Values:
"1" = enables encryption key 1
"2" = enables encryption key 2
"3" = enables encryption key 3
"4" = enables encryption key 4
Default: "1"
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.wep.key1
Description 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. For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the encryption key.
Format: ! U1 getvar "wlan.wep.key1"
For protection a single "*" prints.
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
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.wep.key2
Description 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. For printer support, see SGD Command Support
on page 1019.
Commands Details
getvar This command instructs the printer respond with the encryption key.
Format: ! U1 getvar "wlan.wep.key2"
For protection a single "*" prints.
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
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.wep.key3
Description 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. For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer to respond with the encryption key.
Format: ! U1 getvar "wlan.wep.key3"
For protection a single "*" prints.
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
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.wep.key4
Description 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. For printer support, see SGD Command Support on page 1019.
Commands Details
getvar This command instructs the printer respond with the encryption key.
Format: ! U1 getvar "wlan.wep.key4"
For protection a single "*" prints.
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
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.wpa.psk
Description This printer setting specifies the pre-shared key (PSK) value to use when the
WPA authentication is set to PSK. For printer support, see SGD Command Support
on page 1019.
Commands Details
getvar This command instructs the printer to respond with the pre-shared key.
Format: ! U1 getvar "wlan.wpa.psk"
For protection a single "*" prints.
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...)
Note • For details on SGD command structure, see Command Structure on page 785.
wlan.wep.key_format
Description This printer setting specifies the format for the WEP key. For printer support,
see SGD Command Support on page 1019.
Important • This printer setting should proceed any of the wep.key settings if you select a
non-default value.
Commands Details
getvar This command instructs the printer to respond with the WEP key format.
Format: ! U1 getvar "wep.key_format"
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"
Note • For details on SGD command structure, see Command Structure on page 785.
Notes • ___________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
This section provides you with a visual of the different Zebra Code pages.
Note • For hex 5C, a cent sign prints for all printer resident fonts. A backslash prints for
downloaded fonts.
CHR HEX DEC CHR HEX DEC CHR HEX DEC CHR HEX DEC CHR HEX DEC CHR HEX DEC CHR HEX DEC CHR HEX DEC
CHR HEX DEC CHR HEX DEC CHR HEX DEC CHR HEX DEC CHR HEX DEC CHR HEX DEC CHR HEX DEC CHR HEX DEC
CHR HEX DEC CHR HEX DEC CHR HEX DEC CHR HEX DEC CHR HEX DEC CHR HEX DEC CHR HEX DEC CHR HEX DEC
Notes • ___________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
This section shows the American Standard Code for Information Interchange (ASCII) code
used by Zebra printers.
This section provides information about different fonts (type faces) and bar codes that can be
used with the printer.
Contents
Standard Printer Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 960
Proportional and Fixed Spacing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 962
Scalable Versus Bitmapped Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964
Font Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 966
Bar Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 968
zero
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 7 shows how
these character values are printed.
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 30 • Intercharacter Gap and Baseline Parameters
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.
• 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 160 and ~DS
on page 169.
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
Example:
Base height = 9 dots
Base width = 5 dots
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]
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:.
Font Matrices
Type Key U = Uppercase, L = Lowercase, D = Descenders
aa
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 37 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.
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).
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 11 on page 139.
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.
This section provides information about Mod 10 and Mod 43 check digits.
Contents
Mod 10 Check Digit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974
Mod 43 Check Digit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 975
1. Start at the first position and add the value of every other position together.
0 + 2 + 4 + 6 + 8 + 0 = 20
3. Start at the second position and add the value of every other position together.
1 + 3 + 5 + 7 + 9 = 25
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.
Each character in the Code 39 character set has a specific value, as follows:
0=0 B=11 M=22 X=33
1=1 C=12 N=23 Y=34
2=2 D=13 O=24 Z=35
3=3 E=14 P=25 - =36
4=4 F=15 Q=26 . = 37
5=5 G=16 R=27 Space=38
6=6 H=17 S=28 $=39
7=7 I=18 T=29 /=40
8=8 J=19 U=30 +=41
9=9 K=20 V=31 %=42
A=10 L=21 W=32
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
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.
Notes • ___________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 978
What is a Protocol? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 978
How Protocols Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 978
Request Packet Formats from the Host Computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 979
Header Block Fields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 979
Data Block Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 980
Response From the Zebra Printer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981
Zebra Packet Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981
Header Block Fields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981
Data Block Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 982
Disguising Control Code Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 983
Error Detection Protocol Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 984
Error Conditions and System Faults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 984
How the Zebra Printer Processes a Request Packet. . . . . . . . . . . . . . . . . . . . . . . . . 985
How the Zebra Printer Responds to Host Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . 986
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.
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.
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.
SOH DST. Z-ID SRC. Z-ID TYPE SEQ. # STX FORMAT EXT CRC EOT
1 3 3 1 1 1 1024 1 2 1
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.
SOH DST. Z-ID SRC. Z-ID TYPE SEQ. # STX FORMAT EXT CRC EOT
1 3 3 1 1 1 1024 1 2 1
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.
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.
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.
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 The Zebra printer will return a Negative
printer does not match the one Acknowledgment Response Packet. The Host
received as part of the Request Packet. computer should retry the same Transaction with
the same Sequence Number.
The CRC calculated by the Host The Host computer should retry the same
computer does not match the one Transaction with the same Sequence Number.
received as part of the Response
Packet.
Error Response
A Request Packet from the Host The Host computer times out and resends the
computer is not received by the Zebra Request Packet of the same Transaction with the
printer. same Sequence Number.
A Request Packet from the Host The Host computer times out and resends the
computer is partially received by the Request Packet of the same Transaction with the
Zebra printer. same Sequence Number.
A Response Packet from the Zebra The Host computer times out and resends the
printer is not received by the Host Request Packet of the same Transaction with the
computer. same Sequence Number.
A Response Packet from the Zebra The Host computer times out and resends the
printer is partially received by the Request Packet of the same Transaction with the
Host computer. same Sequence Number.
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 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.
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, please contact your Reseller or
Zebra Representative.
Contents
Introduction to B64 and Z64. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 988
B64 and Z64 Encoding. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 990
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+ZO
edsyibZNNJhlyWhbEJIwYSwJDGNkmwghJIgJYEEEhQIPSggKAjEAiIiVaSoIJ
YNBAkIGgGxUBVUUCGU0JQSC0WFnPvbE+SF18+9H+8f973X+3Jm93umzzNznvn
NSSFGRJ6ARAVZvXK7XDaXLyTiR5B7ontuZPQ824I5RKIa6ew+aba8+pU1rVDZ
iciv
/O6DU5wZ7ie2+g4xzDPwCpwm3nqW2GAPcdclxF4fIP66jHjncmKvKzh/ZUNCx
l9/QQx2HXHYB4m/PkQcdCdx2G7OYt+mszkMh4iZxoifvkh89BFipo87kwD/Bf
/dOcycAAEA:a1b2
Parameter Details
o = font name Accepted Values: any valid TrueType name, up to 8 characters
Default Value: if a name is not specified, UNKNOWN is used
In this example, Arial is the specified font.
s = font size Accepted Values: the number of memory bytes required to hold
the Zebra-downloadable format of the font
Default Value: 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 Accepted Values: a string of ASCII hexadecimal values (two
hexadecimal digits/byte). The total number of two-digit values
must match parameter s.
Default Value: 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.
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.
Notes • ___________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
This section provides you with examples that show how commands interact with various
justification parameters. The examples are in charts for these orientations:
• Normal
• Rotated
• Bottom-up
• Inverted
These charts are designed so that you can identify the location of the field origin and
interactions between the rotation, formatting and justification commands.
Normal Orientation
Table 42 shows you the various normal orientation outputs:
^FO
Left
Justified
^FT
Left
Justified
^FO
Right
Justified
^FT
Right
Justified
Rotated Orientation
Table 43 shows you the various rotated orientation outputs:
^FO
Left
Justified
^FT
Left
Justified
^FO
Right
Justified
^FT
Right
Justified
Bottom Up Orientation
Table 44 shows you the various bottom up orientation outputs:
^FO
Left
Justified
^FT
Left
Justified
^FO
Right
Justified
^FT
Right
Justified
Inverted Orientation
Table 45 shows you the various inverted orientation outputs:
^FO
Left
Justified
^FT
Left
Justified
^FO
Right
Justified
^FT
Right
Justified
Notes • ___________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
This appendix contains the information needed to install, program, and operate the Real Time
Clock (RTC) option.
Overview
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.
Requires this
Supported Zebra Printer and Print Engine Models Firmware Version
or Later
105SL printers that meet any one of the following criteria: 60.13.0.13Z
• 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
PAX Series 170PAX2 print engines 29.9.x or 31.9.x
print engines 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 90XiII, 140XiII, 170XiII & 220XiII printers 18.9.x
printers 90XiIII, 96XiIII, 140XiIII, 170XiIII, and 220XiIII 33.10.0
printers
90XiIIIPlus, 96XiIIIPlus, 140XiIIIPlus, 60.13.0.12
170XiIIIPlus, and 220XiIIIPlus printers
Z4Mplus and Z6Mplus printers 60.13.0.12
ZM400/ZM600/RZ400/RZ600 printers 53.15.xZ
The RTC ZPL II commands apply to all printers/print engines with the Real Time Clock
hardware option and proper firmware.
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.
Note • Invalid dates, such as 2/29/1999, may be entered, but will not be saved.
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.
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 46 for the list of command characters and their functions.
Command
Function
Character
%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
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 ^SL (see page 336) 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.
Important • The %U and %W commands determine the numbering for all weeks in the year.
1 Week 00
First Day of
the Week 2 3 4 5 6 7 8 Week 01
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
1 2 Week 00
First Day of
the Week 3 4 5 6 7 8 9 Week 01
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
1 Week 00
First Day of
the Week 2 3 4 5 6 7 8 Week 01
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
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 shown on page 336.
Cycle the printer/print engine power Off (O) and On (l) to clear the memory before performing
the steps below.
3. Determine the desired maximum number of queued labels with the (D) __________
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.
4. Substitute the values for B through D from the previous page into
the following formula:
The “label queue” memory required (in BYTES)
(E) __________
(B x C x D)/8 =
5. Substitute the values for A and E into the following formula:
The ^CO command memory required (in KBYTES) (F) __________
(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 •
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 10
on page 1012.
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 10
on page 1012 illustrates the printout of this script on a label.
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
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
1 Label 1 6 Label 6
2 Label 2 7 Label 7
3 Label 3 8 Label 8
4 Label 4 9 Label 9
5 Label 5 10 Label 10
^XA
^SL5^FS
^FO187,184^A0N,101,121^FC%^FD%H:%M:%S^FS
^PQ10
^XZ
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 Label 1 6 Label 6
2 Label 2 7 Label 7
3 Label 3 8 Label 8
4 Label 4 9 Label 9
5 Label 5 10 Label 10
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:
Notes • ___________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
This appendix provides you with details identifying which SGD commands can be used with
different printers and firmware versions.
Note • The printer responds with the printer setting of "?" if the printer setting:
• does not exist
• has not been configured yet
Printer Type
Which type of printer do you have?
Standard Printer
Important • All the firmware versions noted in Table 47 refer to the minimum firmware
version required. For RFID printer support, see Table 48.
bluetooth.address — — — — — V61.15.6Z, —
V56.15.6Z
bluetooth.afh_map — — — — — V61.15.6Z, —
V56.15.6Z
bluetooth.afh_map_curr — — — — — V61.15.6Z, —
V56.15.6Z
bluetooth.afh_mode — — — — — V61.15.6Z, —
V56.15.6Z
bluetooth.authentication — — — — — V61.15.6Z, —
V56.15.6Z
bluetooth.bluetooth_pin — — — — — V61.15.6Z, —
V56.15.6Z
bluetooth.date — — — — — V61.15.6Z, —
V56.15.6Z
bluetooth.discoverable — — — — — V61.15.6Z, —
V56.15.6Z
bluetooth.enable — — — — — V61.15.6Z, —
V56.15.6Z
bluetooth.friendly_name — — — — — V61.15.6Z, —
V56.15.6Z
bluetooth.local_name — — — — — V61.15.6Z, —
V56.15.6Z
bluetooth.radio_auto_baud — — — — — V61.15.6Z, —
V56.15.6Z
bluetooth.radio_version — — — — — V61.15.6Z, —
V56.15.6Z
bluetooth.short_address — — — — — V61.15.6Z, —
V56.15.6Z
bluetooth.version — — — — — V61.15.6Z, —
V56.15.6Z
comm.type — — — — — V61.17.3Z, —
V56.17.3Z
cutter.clean_cutter — — — — — V61.15.6Z, —
V56.15.6Z
device.epl_legacy_mode — — — — — V61.17.7Z, —
V56.17.7Z
device.orientation — — — — — — V66.17.2Z
device.pnp_option — — — — — V61.15.6Z, —
V56.15.6Z
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 — — — V53.17.1Z — — —
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
odometer.retracts_count — — — — — — V66.17.2Z
RFID Printers
Important • All the firmware versions noted in Table 48 refer to minimum firmware version
required. For non-RFID printers, see Table 47. Once an RFID Ready printer has been
reconfigured as a RFID Printer, Table 48 should be used.
For commands not listed in Table 48, refer to Table 47 and compare your firmware version to
the Vxx.xx.xx firmware to which it most closely corresponds.
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 1061.
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.
• Supported printers and print servers:
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:
• ZBI-Enabled
• Not ZBI-Enabled
• 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
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.
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.
Command 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).
~WS 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
^WX 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.
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 50 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.
Command Details
^CI 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)
~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, In firmware version earlier than V60.15.x, V50.15.x or later, the ^FO and
^FW ^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.
Command Details
^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.
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
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
Notes • ___________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
This section provides an overview of Mirror, details on how to use it, and configuration
examples.
Contents
Mirror Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1050
Professional Services for Mirror Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1051
Requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1052
How Mirror Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054
Creating ZPL Files for Use in the "<update-root>/files" Directory . . . . . . . . . . . . . . . . 1057
Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061
The Feedback.get File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1062
How to Set Up and Use Mirror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1065
Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1067
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 1061.
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.
1 Workstation — sends SGD commands to the printer to configure it for Mirror use.
2 FTP Server — Stores configuration files and responds to Mirror requests from the
printer. Receives and stores “Feedback” content.
3 Access Point — wireless network infrastructure
4 Hub — wired network infrastructure
5 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.
Requirements
These are the requirements for Mirror:
• Zebra printer loaded with Mirror capable firmware and Print Server. For details, see
Table 51, Printers and Print Servers that Support Mirror on page 1053.
• FTP server (with UNIX-style directory listings), configured with the following
directories:
• "<update-root>"/appl - This directory is used for printer firmware updates.
During an update operation, the printer will first check the "<update-
root>/appl" directory for new printer firmware
• "<update-root>"/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.
• "<update-root>"/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.
• "<feedback-root>" - 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.
Note • Print Servers connected to the parallel port, either externally or internally, are not
supported for Mirror use.
These are the specific FTP server directories that will be checked:
• "<update-root>"/appl - This directory is used for printer firmware updates.
During an update operation, the printer will first check the ''<update-root>/appl'' directory
for new printer firmware
• "<update-root>"/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.
• "<update-root>"/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.
• "<feedback-root>" - 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.
1. After power-up, the printer will first check the <update-root>/appl directory on the
FTP server for new printer firmware and update the printer if necessary
2. If the printer did not find new firmware to download, it will then check in the <update-
root>\files and <update-root>/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 <feedback-
root> directory on the FTP server.
4. Finally, if any files or commands were downloaded during Step 2:, the printer will
automatically reset itself.
During a Mirror event, the printer will use <firmware version> 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 <firmware
version> 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
''<update-root>/files'' directory and ''<update-root>/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 • ZPL files in the <update-root>/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.
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.
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 "<update-root>/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
"<update-root>/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.
Configuration
This section provides detail on the configuring the printer and FTP server for Mirror.
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.
The "feedback.get" file is a template file stored on the printer. It controls what content is
uploaded to the"<feedback-root>"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.
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 634.
Note • The first line of the feedback.get file is not included when the Feedback data is
written to FTP server.
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
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
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 "/".
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.
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.
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.
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 52 lists possible printer responses, an explanation of each, and resolutions. Table 53
provides problem scenarios and solutions.
Notes • ___________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
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. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1072
WML Details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1072
Supported Printers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1073
Professional Services for WML Content Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1073
WML Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074
Using WML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074
WML Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078
Troubleshooting Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1087
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 com-
mand 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 627. For details on ZPL
commands, see ZPL Commands on page 37.
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 1074.
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 (<card> </card>)
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.
Supported Printers
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.
Number Menu
Keys to Access
Printer Firmware of “lines” Navigation
Standard Menu System
available Buttons
Xi4™ series V53.17.5Z 5 Select Hold down CANCEL &
(or later) + (PLUS) SETUP/EXIT during power-up
- (MINUS)
ZM400™ V53.17.5Z 5 Select Hold down CANCEL &
(or later) + (PLUS) SETUP/EXIT during power-up
- (MINUS)
ZM600™ V53.17.5Z 5 NEXT/SAVE Hold down
(or later) + (PLUS) CANCEL & SETUP/EXIT
- (MINUS) during power-up
G™ -series V56.17.5Z 4 SELECT Hold down SELECT
(or later) SCROLL during power-up
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 indi-
cate the end of a structure. An example of an ending tag would be </wml>, which indicates
the end of a WML script.
Using WML
Important • Using end tags is required to create well formed and functional WML scripts.
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 “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.
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.
Hello World!!
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.
1. To send the sample index.wml shown earlier, send the following commands to the printer:
! CISDFCRC16
0000
INDEX.WML
0000004E
0000
<wml>
<display>
<card>
<p>Hello World!!</p>
</card>
</display>
</wml>
2. Power cycle the printer.
Once the printer completes the power cycle the display should look similar to this:
Hello World!!
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.
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, please note that .nrd files
are treated as confidential – they cannot be retrieved from the printer.
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"
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 <wml>
2 <display>
3 <card>
4 <p>Hello World!!</p>
5 </card>
6 </display>
7 </wml>
Hello World!!
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 <wml>
2 <display>
3 <card>
4 <p>Baud: $(comm.baud)</p>
5 <br/>
6 <p>AP: $(wlan.essid)</p>
7 </card>
8 </display>
9 </wml>
Baud: 9600
AP: 125
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 <wml>
2 <display>
3 <card id="main" title="" ontimer="#main" alerts="on">
4 <timer value="50"></timer>
5 <p>Baud: $(comm.baud)</p>
6 <br/>
7 <p>AP: $(wlan.essid)</p>
8 <p> </p><br/>
9 <p> </p><br/>
10 <p> <a href="#system">Firmware</a></p>
11 </card>
12 <card id="system" title="" ontimer="#main" alerts="on">
13 <timer value="50"></timer>
14 <p>Firmware:</p><br/>
15 <p>$(appl.name)</p><br/>
16 <p>ZBI State:</p><br/>
17 <p>$(zbi.key)</p><br/>
18 <p> <a href="#main">Main</a></p>
19 </card>
20 </display>
21 </wml>
Baud: 9600 Firmware:
V53.17.2
AP: 125 ZBI State:
Enabled
Firmware Main
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 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 <wml>
2 <display>
3 <card id="main" title="" ontimer="#main" alerts="on">
4 <timer value="50"></timer>
5 <p>Baud: $(comm.baud)</p>
6 <br/>
7 <p>AP: $(wlan.essid)</p>
8 <p> </p><br/>
9 <p> </p><br/>
10 <p> <a href="#system">Firmware</a></p>
11 </card>
12 <card id="system" title="" ontimer="#main" alerts="on">
13 <timer value="50"></timer>
14 <p>Firmware:</p><br/>
15 <p>$(appl.name)</p><br/>
16 <p>ZBI State:</p><br/>
17 <p>$(zbi.key)</p><br/>
18 <p><a href="#main">Main</a>
1
<a href="#config">Config</a></p>
9
19
</card>
20 <card id="config" title="" ontimer="#main" alerts="on">
21 <timer value="50"></timer>
22 <p>Printing </p><br/>
23 <p> Config Label...</p><br/>
24 <p></p><br/>
25 <p>Please wait...</p><br/>
26 <setvar name="file.run" value="e:config.nrd"/>
27 </card>
28 </display>
29 </wml>
Baud: 9600 Firmware:
V53.17.2
AP: 125 ZBI State:
Enabled
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 <wml>
2 <display>
3 <card id="main" title="" ontimer="#main" alerts="on">
4 <timer value="50"></timer>
5 <p>Baud: $(comm.baud)</p>
6 <br/>
7 <p>AP: $(wlan.essid)</p>
8 <p> </p><br/>
9 <p> </p><br/>
10 <p> <a href="#system">Firmware</a></p>
11 </card>
12 <card id="system" title="" ontimer="#main" alerts="on">
13 <timer value="50"></timer>
14 <p>Firmware:</p><br/>
15 <p>$(appl.name)</p><br/>
16 <p>ZBI State:</p><br/>
17 <p>$(zbi.key)</p><br/>
18 <p><a href="#main">Main</a> <a href="#darkness">Darkness</a></p>
19 </card>
20 <card id="darkness" title="" ontimer="#main" alerts="on">
21 <timer value="50"></timer>
22 <p>Current: $(print.tone)</p><br/>
23 <p>Change: </p><do type="accept" label="Up"><setvar name="print.tone"
value="+1.0"/></do><br/>
24 <p>Change: </p><do type="accept" label="Down"><setvar name="print.tone"
value="-1.0"/></do><br/>
25 <p> </p><br/>
26 <p><a href="#main">Main</a> <a href="#config">Config</a></p>
27 <card id="config" title="" ontimer="#main" alerts="on">
28 <timer value="50"></timer>
29 <p>Printing </p><br/>
30 <p> Config Label...</p><br/>
31 <p></p><br/>
32 <p>Please wait...</p><br/>
33 <setvar name="file.run" value="e:config.nrd"/>
34 </card>
35 </display>
36 </wml>
Baud: 9600 Firmware:
V53.17.2
AP: 125 ZBI State:
Enabled
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.
Troubleshooting Scenarios
ASCII American Standard Code for Information Interchange. A 7-bit character set that
includes Latin characters, as well as control and punctuation characters.
character The smallest component of a writing system that has understanding, refers to the
abstract meaning not the specific shape.
coded character set An ordered collection of characters that are assigned an integral
reference number.
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.
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.
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.
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.
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.
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.
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.
Notes • ___________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
auxiliary port C
set 253, 256 cache on 152
AUXPORT_GETPIN ZBI command 561 calibration
AUXPORT_RELEASEPIN ZBI command 562 using SGD 703
AUXPORT_SETPIN ZBI command 560 using ZPL (^HR) 381
AUXPORT_STEALPIN ZBI command 558 calibration, setting dynamic media 371
cancel all 242
B cancel format 262
backfeed sequence card.inserted 802
change 265, 266, 335 card.mac_addr 801, 909
bar code field default 138 caret
base types & expressions (ZBI) change 140
LET 484 change alphanumeric default font 144
base types and expressions change backfeed sequence 265, 266, 335
variable names 480 change caret 140
base types and expressions (ZBI) 479 change delimiter 143
arrays 481 change international font 145
assignment 483 change memory letter designation 149
boolean expressions 489 change tilde 155
combined boolean expressions 491 channel mask
constants 481 setting via ^WS 440
numeric expressions 485 CHR$ ZBI command 565
string concatenation 487 circle 203
sub-strings 487 CISDFCRC16
variable declarations 481 download files 634
variable names 481 client identifier 741, 762, 814, 886
battery client identifier (CID) 424
set condition 248 CLIENTSOCKET ZBI command 507
battery status 209 CLOSE ZBI command 503
bitmap font CLRERR ZBI command 555
download 160 CODABLOCK 80
bitmapped fonts 960 considerations for ^FD character set 83
bluetooth.address 786 considerations for the ^BY 82
bluetooth.afh_map 787 code 11 55
bluetooth.afh_map_curr 788 code 128
bluetooth.afh_mode 789 subsets 86
bluetooth.authentication 790 subsets A and C 89
bluetooth.bluetooth_pin 791 subsets a, b, and c 84
bluetooth.date 792 code 39 59
bluetooth.discoverable 793 code 49 63
bluetooth.enable 794 automatic mode 66
bluetooth.friendly_name 795 field data character set 66
bluetooth.local_name 796 code 93 76
bluetooth.radio_auto_baud 797 full ASCII mode 77
bluetooth.radio_version 798 code validation 156
bluetooth.short_address 799 COLUMNSIZE ZBI command 594
bluetooth.version 800 comm.type 803
bootp comma separated values (CSV) ZBI commands
enable or disable 807 CSVLOAD 534
box 201 CSVSTORE 536
BREAK ZBI command 474 description 533
TXTLOAD 537
ip.dhcp.lease.time_left 818 K
ip.dhcp.option12 819 Kerberos
ip.dhcp.option12_format 820 password 906
ip.dhcp.option12_value 821 realm 907
ip.dhcp.requests_per_session 823 username 908
ip.dhcp.request_timeout 822 key distribution center (KDC) 905
ip.dhcp.session_interval 824 key rotation
ip.dns.domain 825 firmware version required 448, 923
ip.dns.servers 826 kill battery 273
ip.ftp.enable 827 kill password
ip.ftp.execute_file 828 set via ^RQ 398
ip.gateway 742, 829 set via ^RZ 416
ip.http.enable 830 kiosk values 278
ip.lpd.enable 831
ip.mac_raw 832
ip.mirror.auto 833 L
ip.mirror.error_retry 834 label
ip.mirror.feedback.auto 835 maximum length 294
ip.mirror.feedback.freq 836 reverse print 285
ip.mirror.feedback.odometer 837 shift 286
ip.mirror.feedback.path 838 top 287
ip.mirror.fetch 839 label home 282, 283
ip.mirror.freq 840 label length 284
ip.mirror.freq_hours 841 set 258
ip.mirror.last_error 842 language
ip.mirror.last_time 843 define 275
ip.mirror.password 844 LCASE$ ZBI command 564
ip.mirror.reset_delay 846 LEAP mode
ip.mirror.server 847 setting using ZPL 435
ip.mirror.success 848 LEN ZBI command 578
ip.mirror.success_time 849 LET
ip.mirror.username 850 ZBI command 484
ip.mirror.version 851 Liability 2
ip.netmask 852 linked font
ip.pop3.enable 853 host list 228
ip.pop3.password 854 LIST ZBI command 461
ip.pop3.poll 855 lock RFID tag
ip.pop3.server_addr 856 Gen 2 416
ip.pop3.username 857 not Gen 2 392
ip.port 744, 775, 858, 899 log file for RFID 380
ip.primary_network 859 LOGMARS 109
ip.smtp.domain 860 LPD protocol setting 831
ip.smtp.enable 861 LTRIM$ ZBI command 566
ip.smtp.server_addr 862
ip.snmp.get_community_name 863 M
ip.snmp.server_addr 865
^MA Set Maintenance Alerts 288
ip.snmp.set_community_name 863, 864
MAC address
ip.tcp.enable 867
access point 872
ip.telnet.enable 866
retrieve via external_wired.mac_addr 751
ip.udp.enable 868
retrieve via internal_wired.mac_addr 779
ISERRORd ZBI command 551
maintenance alerts, setting 288
map clear 290
zbi.running_program_name 724
zbi.start_info.execute 725
zbi.start_info.file_name 726
zbi.start_info.memory_alloc 727
zbi.state 728
Zebra Programming Language (ZPL II)
^HL or ~HL, Return RFID Data Log to Host (^HL
or ~HL) 380
^HR, Calibrate RFID Transponder 381
^RA, Read AFI Byte 387
^RB, Define EPC Data Structure 389
^RE, Enable/Disable E.A.S. Bit 391
^RF, Read or Write RFID Format 392
^RI, Get RFID Tag ID 395
^RM, Enable RFID Motion 396
^RN, Detect Multiple RFID Tags 397
^RQ, Quick Write EPC Data and Passwords 398
^RR, Specify RFID Retries for a Block 400
^RS, RFID Setup 402
^RT, Read RFID Tag 410
^RW, Set RFID Read and Write Power 413
^RZ, Set RFID Tag Password and Lock Tag 416
^WF, Write AFI Byte 418
^WT, Write Tag 420
^WV, Verify RFID Write Operation 422
~RV, Report RFID Encoding Results 412
command compatibility with printers and firmware
376
ZebraNet Alert
halt 344
set 350
ZPL
set 352
ZPL commands 423
^B7 68
~HQ 250, 360
^MA 288
^MI 293
Wireless Print Server commands 943, 993
^XS 371
ZPL ZBI command 478
http://www.zebra.com
P1012728-004 Rev. A