LabelWriter and DYMO are registered trademarks of Sanford, L.P. All other trademarks are the property of their
respective holders.
Legal Notice:
Sanford, L.P. has used reasonable efforts to ensure that the information provided by Sanford,
L.P. in this manual is accurate and up to date, but Sanford, L.P. reserves the right to make
changes or corrections and does not warrant that any of the information is accurate or complete.
Sanford, L.P. hereby disclaims all liability, and makes no warranties (including any implied
warranties of merchantability or fitness for a particular purpose), in relation to the manual or the
information it contains. Sanford, L.P. provides limited or no support for the activities
referenced in this manual. You expressly understand and agree that Sanford, L.P. shall not be
liable for any direct, indirect, consequential, incidental, special, punitive or exemplary damages
(including but not limited to lost profits, loss of data or damage to hardware or software) arising
from your use or inability to use the information in this manual, even if Sanford, L.P. has been
informed of the possibility of such damages.
LabelWriter 450 Series Technical Reference Manual Page 2
Table of Contents
About the LabelWriter 450 Series Printers....................................................................................7
The Print Head...........................................................................................................................7
Printer Commands and Control .....................................................................................................8
<esc> C – Set Tape Type.....................................................................................................24
<esc> E – Cut Tape..............................................................................................................25
<esc> A – Get Status............................................................................................................25
Appendix C Debugging Printer Output....................................................................................27
LabelWriter 450 Series Technical Reference Manual Page 4
NOTE: The purpose of this manual is to serve as a reference to knowledgeable developers
wishing to communicate directly with the LabelWriter printer without the use of printer drivers.
Because the printer is a raster-based printer, this is not a simple task, and Sanford, L.P. reserves
the right to limit development support for such implementations.
LabelWriter 450 Series Technical Reference Manual Page 6
About the LabelWriter 450 Series Printers
The LabelWriter 450 series printers (LabelWriter 450, 450 Turbo, 450 Twin Turbo, and 450
Duo) are high-performance, low-cost printers used for printing mailing labels, postage, file
folder labels, bar code labels, and more. The printers have a 57 mm wide, 300-dpi print head
and a 63 mm wide paper path. The LabelWriter Twin Turbo printer has two side-by-side label
printing mechanisms in a single printer. The LabelWriter Duo printer has a label printing
mechanism as well as a tape-printing mechanism that can print continuous-length labels in
several different widths (6 mm, 9 mm, 12 mm, 19 mm, or 24 mm), using a 128-dot, 180-dpi
print head.
The 57 mm wide thermal print head uses 672 individually addressable dots to form individual
raster lines of data at 300 dots per inch across the print head and either 300 or 600 dots per inch
in the travel direction as directed by the print control data. Because they use specially treated,
heat-activated paper, the printers require no ink, toner, or other refills.
All 450 series printer models connect to a host computer through a standard full-speed USB
2.0-compatible interface. There are no built-in fonts. The host computer is responsible for
sending commands and data to the printer to form each individual raster line of data. This is
generally performed by printer drivers in the host computer that convert the image of the label
into the proper command and data stream required by the printers.
The Print Head
The print head prints the image onto the label by heating a row of resistive elements; this
blackens the thermally sensitive label material. These 672 resistive elements are .085 mm
square and are spaced at 300 per inch on the print head. To print a line, the control electronics
load the desired data into a serial shift register. This shift register has one register for each print
element. A "1" in a register causes the corresponding dot to be printed; a "0" leaves the dot
blank.
The darkness or density of the image depends upon the amount of heat applied to the label
material. The heat depends upon both the temperature of the print head and the amount of
energy applied to the resistive elements. The energy applied to the resistive elements depends
upon the voltage applied and the length of time that the voltage is applied. In order to maintain a
constant density, the control electronics measure the print voltage and the head temperature
before each print cycle, and then calculate the required print strobe time.
The power supply is designed to handle printing an average of 37% of the total dots per line at
full speed. If the voltage drops below 19.3 volts at the print head, printing is suspended until the
power supply recovers to 21 volts.
In order to protect the print head from excessive heat, the control electronics halt printing if the
print head temperature exceeds 70° C. Printing resumes when the print head cools to 56° C.
The printers support two types of commands through the USB interface: data commands and
USB interface commands. As with all USB printers, data commands for imaging a page are
provided to the printer through the Bulk OUT endpoint. For information on USB interface
commands, refer to the Universal Serial Bus Device Class Definition for Printing Devices
document.
Data commands for printing consist of print data and ESC commands. Print data is used to
define the dot pattern to print for each raster line. ESC commands (commands preceded by an
ASCII <esc> character, 0x1b) are commands that change printer parameters, such as margins
and raster line offsets. All printer parameters are set to specific default values by a power-on
reset or software reset command from the host computer. Parameters can be modified by the
host computer at any time and will take effect as soon as the modifications are sent.
Print Data
Print data is encoded in strings of 8-bit bytes, preceded by a single synchronization character.
Two print line commands specify whether the data format is uncompressed or compressed.
Uncompressed data is preceded by an ASCII <syn> character (0x16), and compressed data is
preceded by an ASCII <etb> character (0x17). Appendix A describes the compressed data
format.
The Bytes-per-Line variable controls the number of bytes required for each line of print data.
The default value for all 450 series printers is 84 bytes per line (84 * 8 = 672, the number of
dots in the print head). The host computer can send fewer bytes than the maximum by
preceding the print data with the Set Bytes per Line command (<esc> D n, where n is the
number of bytes). The control electronics do not check the validity of the new value. Therefore,
it is the responsibility of the host software to send only those values which are valid for the
width of the print head.
In addition to sending fewer bytes per line, the host computer also has the ability to adjust the
starting point on a line by using the Set Dot Tab command (<esc> B n, where n is the starting
byte number; valid values are 0-83). If the host computer modifies the starting byte, the number
of bytes per line must be adjusted downward by a corresponding amount. The control
electronics do not check the validity of the dot tab against the bytes per line. Therefore, it is the
responsibility of the host software to send correct combinations of these two variables.
Both the dot tab variable and the bytes-per-line variable are held by the control electronics until
they are changed by a new command sequence or are reset to default values by a power-on reset
or a software reset command.
Data Synchronization
After the printer receives a <syn> or <etb> character, it takes the following n value and puts it
into the RAM buffer. The value for n is determined by the number of bytes required to specify a
full line of data. This value is affected by the setting for Bytes per Line and, in the case of
<etb>, the data compression of the bit pattern. It is important to note that the n values which
follow <syn> or <etb> characters are interpreted only as graphical data. This means that
LabelWriter 450 Series Technical Reference Manual Page 8
additional <syn>, <etb>, or <esc> characters will be treated as print line data, representing
pixels to print, until the required number of bytes for the print line are received.
The character received by the printer after the last data character should be an <esc> character,
denoting a command sequence, or a <syn> or <etb> character, denoting another line of raster
data. Any other characters are ignored.
To reset the printer after a synchronization error or to recover from an unknown state, the host
computer needs to send at least 85 continuous <esc> characters to the printer. This 85-character
sequence is required in case the printer is in a mode in which it expects a raster line of data. The
85 <esc> characters exceed the default number of bytes required for a full line of raster data
(84); this ensures that the printer looks for an ESC command.
Note: A minimum of 85 <esc> characters are required, as this is one more than the longest
possible string of data bytes that the printer could encounter.
Label Positioning
A motor-driven platen, which acts as a pinch roller, controls label movement within the printer.
The control electronics track the logical position on a label by counting motor steps. An infrared
LED photocell detects the top-of-form sense hole that is located between labels. The sense hole
re-syncs the logical counter to a known value that corresponds to the number of motor steps
between the sensor and the cutter bar. Top-of-form position (the inter-label gap over the cutter
bar) is reached when the logical counter decrements to zero.
Top-of-Form Sync
At power up, label position is always assumed to be correct due to the self re-syncing described
above. If an Out of Paper condition is detected at power up, an Advance to Top-of-Form
command is issued and the stepper motor will advance until either a top-of-form sense hole is
detected, causing a re-sync, or until the counter has advanced the equivalent of one full label.
This Load Paper condition also causes the stepper motor to step at a slower rate to help
overcome the frictional drag caused by the print head rubbing directly on the rubber platen.
Label Length
At power up, the label length variable is set to a default value of 3058 (in 300ths of an inch
units), which corresponds to approximately 10.2 inches. The Set Label Length command
sequence (<esc> L nl n2) allows the host software to change the label length variable to
accommodate longer lengths. If longer length labels are used, it is the responsibility of the host
computer to load (and/or re-load) the required label length variable every time the printer is
reset by a power-on reset or a software reset.
When the label length variable is set to any negative 2 byte integer value (0x8000-0xFFFF), it
allows for the use of continuous form paper. In the continuous form mode, the Form Feed
command (<esc> E) is changed to feed enough dot lines to allow for the last line of print data to
extend past the printer tear-bar.