The following description of remote commands comes out of an examination of the sequences used by the printer utilities bundled with the Windows drivers for the ESC740, and from other sources (some Epson manuals, experimentation, analysis of print files). It is largely speculative as these commands are not all documented in the Epson documentation we have access to. Generally, newer manuals provide more thorough documentation.
Remote command mode is entered when the printer is sent the following sequence:
Remote mode commands are then sent, and terminated with the following sequence:
All remote mode commands must be sent before the initial ESC (G command is sent.
This introductory sequence is then followed by a sequence of commands. Each command is constructed as follows:
Two ASCII bytes indicating the function
A byte count (two bytes, little-endian) for the parameters
Binary parameters, if any
This is a list of all remote commands we have seen:
ESC/P2 Remote Mode Commands
BC
=2 00
00Print a nozzle check pattern.
BC
=2 00
00On my 740, prints the following, probably “version information”:
BC
=3 00 00 00Prints a “printer ID”. On one 870, prints the following:
The Windows driver has a text entry field where this number can be entered, but its purpose is unknown.
BC
=0Load printer defaults from NVRAM, DIP switches, and/or ROM. This apparently does not load factory defaults per se, but any settings that are saved. This is commonly used right at the end of each print job after the ESC @ printer reset command.
BC
=2 00
xx
Perform a head cleaning cycle. The heads to clean are
determined by parameter xx
:
Table 5-5. Head cleaning parameters
xx | Description |
---|---|
00 | Clean all heads |
01 | Clean black head |
02 | Clean color heads |
While xx
= 00
is
likely supported by all printers, xx
= 01
and 02
are not.
BC
=3 00
xx
00
Print an alignment pattern. There are three patterns,
which are picked via the choice of
xx
. Pattern 0
is coarse, pattern 1
is medium, and
pattern 2
is fine.
BC
=4 00
xx
00
yy
Set results for the alignment pattern.
xx
is the pattern
(1
--3
);
yy
is the best choice from the set
(1
--7
or
1
--15
). This
does not save to NVRAM, so when the printer is powered
off, the setting will be lost.
BC
=0Save the current settings to NVRAM.
BC
=1
01Reset the printer.
BC
=1
01Get ink quantity. This requires direct access to the printer port. The return looks like
or
(for 4-color and 6-color printers respectively), where each pair of digits are hexadecimal representations of percent.
The following two commands have been observed on an STP 870.
BC
=2 00
xx
Function unknown. This command has
been observed on an STP 870 with
xx
=03
at the start
of a job and xx
=02
at the end of a job (where it is followed by an
LD command). When in roll mode, the
values change to
xx
=01
at the start
of a job and xx
=00
at the end of a job.
BC
=3 00
pos
[2]
Specify the horizontal left margin in units of 1/360 inch.
The default value for pos
is
0
. For borderless printing on
printers that support it, a value of
-80
(FFB0h
)
should be used.
The commands below are partially documented in the Stylus Pro 9000 manual. Much of this information is interpreted; none is tested.
BC
=3 00
xx
yy
Select Mechanism Sequence. xx
controls which sub-operation is performed.
xx
=00
selects
the “Feed paper sequence setting”.
yy
can take on the following values
(on the STP 870, at any rate):
Table 5-6. Media types
yy | Media type |
---|---|
0 | Default |
1 | Plain paper |
2 | Postcards |
3 | Film (photo quality glossy film, transparencies) |
4 | Envelopes |
5 | Plain paper (fast load) |
6 | Back light film (although this has been observed with heavyweight matte paper) |
7 | Matte paper (observed with 360 dpi inkjet paper, and photo quality inkjet paper) |
8 | Photo paper |
Experimentation suggests that this setting changes details of how the printers' cut sheet feeder works, presumably to tune it for different types of paper.
xx
=01
controls
the platen gap setting;
yy
=00
is the
default, yy
=1
or
2
are higher settings.
xx
=02
controls
paper loading speed
(yy
=0
is normal,
1
is fast, 2
is slow). It appears that 1
is
used when printing on “plain paper”,
“360dpi ink jet paper” or “ink jet
transparencies”, and
yy
=00
for all
other paper type settings.
xx
=07
controls
duplex printing for printers with that capability
(yy
=0
is default,
for non-duplex printing; 1
is front
side of the paper, and 2
is back
side).
xx
=09
controls
zero margin printing on the printers with the capability
of printing zero-margin on all sides (Stylus Photo
780/790, 890, and 1280/1290).
yy
=0
is the
default; 1
enables zero margin
printing.
BC
=3 00
xx
yy
Set Paper Path.
xx
=2
indicates
manual feed,
xx
=3
is for roll
paper. yy
selects “paper path
number”.
BC
=2 00
xx
Set Auto Cutting State.
xx
=0
selects
auto cutting off,
xx
=1
selects
auto cutting on, and
xx
=2
indicates
horizontal print page line on. It appears that with
auto cutting on, roll paper is cut automatically at the
point a formfeed character is sent. The formfeed
character is normally used to eject a page; with this
turned on, it also cuts the roll paper. Horizontal
print page line on prints a narrow line of black dots at
the position the paper should be cut manually.
BC
=4 00 xx
DT2
Set Drying Time.
xx
=00
sets the
drying time “per scan” (per pass?);
xx
=01
sets the
drying time per page. DT
indicates
the drying time, which is in seconds if page mode is
used and in milliseconds if scan mode is used.
DT
must not exceed 3600 seconds in
per-page mode and 10000 milliseconds in per-scan mode.
BC
=2 00
xx
Select Ink Type.
xx
=00
selects
dye ink. Pigment ink is apparently selected by
xx
=01
. This
probably does not apply to the consumer-grade printers.
Set Pause After Printing.
xx
=00
selects no
pause after printing;
xx
=01
selects
pause after printing. If turned on, the printer is
paused after the page is ejected (by the FF byte). If
cutting is turned on, the printer is paused
after the cutting or printing of
the horizontal cut line.
BC
=6 00 00 00 00 0x14
xx
Set Vertical Print Page Line Mode.
xx
=00
is off,
xx
=01
is on. If
turned on, this prints vertical trim lines at the left
and right margins.
BC
=6 00 00 00 00 0x05
xx
Set Roll Paper Mode. If xx
is
0
, roll paper mode is off; if
xx
is 1
, roll
paper mode is on.
BC
=3 00
xx
yy
Appears to be a synonym for the SN command described above.
BC
=2 00
xx
Select Paper Thickness. Set the paper thickness
xx
in .1 mm units. This must not
exceed 0x10
(1.6 mm). If the
thickness is set “more than” .6 mm (which
probably means “at least” 0.6 mm, since the
other case reads “less than 0.5 mm”), the
platen gap is set high irrespective of the
SN command.
BC
=2 00
00Function unknown. Used on the STC 3000 at least when using roll feed, and on the STP 870 in all print files analysed to date.
BC
=2 00
xx
Epson's STP 750/1200 programming guide refers to the
ST command as “Set printer
state reply”. If xx
is
0
or 2
, the
printer will not send status replies. If
xx
is 1
or
3
, the printer will send status
replies. The status replies consist of state, error
codes, ink leve, firmware version, and warning status.
The actual reply is documented as
@BDC ST\r ST: xx; [ER: yy;] IQ: n1n2n3n4; [WR: w1,w2...;] RV: zz; AI:CW:02kkccmmyy, MI:mm [TC:tttt;] INK:...; \f |
(\r is carriage return; \n is newline; \f is formfeed.)
ST is the printer status:
Table 5-7. Printer status codes
Status code | Description |
---|---|
00 | Error |
01 | Self-test |
02 | Busy |
03 | Waiting while printing |
04 | Idle |
07 | Cleaning/filling ink heads |
08 | Not yet initialized/filling heads |
ER, if provided, is the error status:
Table 5-8. Printer error codes
Error code | Description |
---|---|
00 | Fatal Error |
01 | Interface not selected |
04 | Paper jam |
05 | Out of ink |
06 | Paper out |
0D | Paper gap error |
10 | Maintenance request |
11 | Tear-off mode selected |
12 | Double feed error |
1C | Cutter position error |
1D | Cutter jam |
1E | Ink color error |
23 | Ink combination error |
IQ is the amount of ink left, as a (decimal!) percentage expressed in hexadecimal. The values are black, cyan, magenta, and yellow. 6 and 7 color printers usually specify two or three additional values for light cyan, light magenta, and gray. However, some low end 6-color printers specify only four values.
For printers with different ink cartridge options, the following additional values may appear:
Table 5-9. Printer additional ink codes
Ink code | Description |
---|---|
NA | Ink cartridge is not inserted |
RE | Ink cartridge information cannot be read |
WE | Ink cartridge information cannot be written |
CI | Ink cartridge is inserted, but has not been read |
WR, if provided, is the warning status:
Table 5-10. Printer warning codes
Warning code | Description |
---|---|
10 | Black ink low (Photo black on printers using UltraChrome® ink) |
11 | Cyan |
12 | Magenta |
13 | Yellow |
14 | Light cyan (presumably) |
15 | Light magenta (presumably) |
17 | Gray (with UltraChrome-compatible printers) |
18 | Matte black 1 (UltraChrome) |
19 | Matte black 2 (UltraChrome) |
RV is the firmware revision (one byte ASCII).
AI is actuator information. These are two byte ASCII codes that indicate ``ink weight rank ID'' of KCMY, respectively.
TC, if provided, is the total time of cleaning or ink filling (?).
RC, if provided, is the firmware revision.
INK: and MI are not documented.
BC
=2 00
xx
Set Status Reply Rate. xx
is the
repeat interval in seconds. If xx
is
0
, the status is returned only when
the printer's state changes.
BC
=1
01Reply Printer Status. The reply is formatted as follows:
\r is carriage return;
\n is newline; \f is
formfeed). If xx
(the reply value) is
0
or 2
,
automatic status update is disabled; if
1
or 3
, it is
enabled.
BC
=1
01Reply Printer Status Rate. The reply is formatted as follows:
\r is carriage return;
\n is newline; \f is
formfeed). See SM
BC
=2 above for the meaning of
the return value.
BC
=xx
y
[1] …
y
[xx]
Echo Parameters (perhaps better described as Echo
Commands). The command string is executed (it would
appear from the documentation), and the string sent is
returned using a sequence similar to that described in
the ST BC
=1 and
SM BC
=1 commands.
Note that in this case the number of bytes is variable!
BC
=2 00
02Function unknown. Used on the STC 3000 at least when using roll feed.
BC
=1
00Function unknown. On new printers (STC 740 or newer), this command should be sent after all data has been sent. If this command is not sent, and the printer is connected to a Windows system, the last page of the job will not print completely. The most likely explanation for for this is that the Windows driver typically puts the printer in 1284.4 packet mode, and this command has the effect of flushing the buffer in the printer.
BC
=8 00
cutter
[1] page
[1]
unit
[1]
position
[4]
Specify paper cutting on Stylus Photo 2200 (and perhaps
some other printers). cutter
must be
0. page
should be one of the
following:
unit
should be one of the following:
This command should be used twice. The first CO command specifies where the page will be cut at the top, and the second specifies where the page will be cut at the bottom. This permits cutting both the top and the bottom of the page.