Discussion:
[Gimp-print-devel] Epson PrecisionCore head tech untanglement ( WF-7620)
Branko
2017-04-05 21:00:45 UTC
Permalink
Hi to all,

I've got myself WF-7620, which works great. On Windows. Well, as far as
Windows can work great themselves.
On Linux, it's pure equivalent of ripping ones pubic hairt with hot wax
engulfed pliers.

Sure, Epson offers their Universal Linux driver to anyone that asks, but
I strngly suspect this is some kind of internal
company joke.

So, after many lost hours with their "driver", I decided to dig through
available documentation ( none of them covers anything with
PrecisionCore head, but one has to start somewhere, so i started
brsuhing my
ESC/PR and WF-75xx Programming Guide).

After that, I installed GIMP on fresh Win10 with Epson's full Win-10
driver and printed a couple trivial drawings into a file.

For example, I have 10x10 pixels white with one black pixel with set 600
dpi resolution in GIMP ( I think printer is set to maximal).

Resulting file is around 90k. It contains expected headers at the start
( that "@EJL 1284 etcetc" for exit packet mode "ESC (R REMOTE1" to enter
remote mode,
few remote mode commands ( TI- timers set, JS, JH,HD) then "ESC 0x00
0x00 0x00" exits remote mode.
And then I have first surprise:
- ESC (d 0xff 0x7f
- 0x7FFF zero bytes

- another ESC (d 0xff 0x7f
- 0x7FFF + 2 ( so 0x8001 ) zero bytes

- "@EJL 1284 etc etc" for exit packet mode
- "ESC (R REMOTE1" to enter remote mode
- within remote mode:
- TI ( set timer)
- DP
- SN
- 6 * US directives
- DR
-PP
-ESC (A
-ESC (R...ESCPR /which i think enters ESCPR mode/

-ESC q + few directives I don't yet understand.

After that I have more or less repetition of many sequences with a
period of 169 bytes

each repetitions looks like this:

ESC d 0x9f 0x00 0x00 0x00 / those two are payload lenght ( 169 = A9 =
0x9f + 10 )
- 0x00 0x64 0x73 0x6E
-0x64 0x00 0x00 0x01
-0xB9 0x01 0x00 0x98
- 37 * 0x80 0xFF 0xFF 0xFF ( those seem to be KMYC groups
- 0xD2 0xFF 0xFF 0xFF ( last group in repetition)


Questions:

- what the heck is "ESC (d / + 0xff 0x7f/" ? THose two trailing bytes
are obviously data length.
If this is some kind of raster print sequence, is it normal that it's
uused twice with all-zero payload ?

- where could I get meaning of US ( User space) directives ?

- does anyone happen to have ESC/P-R reference laying around ?
Robert Krawitz
2017-04-06 02:15:47 UTC
Permalink
Post by Branko
Hi to all,
I've got myself WF-7620, which works great. On Windows. Well, as far
as Windows can work great themselves. On Linux, it's pure
equivalent of ripping ones pubic hairt with hot wax engulfed pliers.
Sure, Epson offers their Universal Linux driver to anyone that asks, but I strngly suspect this is some kind of internal
company joke.
So, after many lost hours with their "driver", I decided to dig through available documentation ( none of them covers anything with PrecisionCore head, but one has to start somewhere, so i started brsuhing my
ESC/PR and WF-75xx Programming Guide).
ESC/PR is a higher level language; it takes RGB input and generates
the dots itself.
Post by Branko
After that, I installed GIMP on fresh Win10 with Epson's full Win-10
driver and printed a couple trivial drawings into a file.
For example, I have 10x10 pixels white with one black pixel with set
600 dpi resolution in GIMP ( I think printer is set to maximal).
few remote mode commands ( TI- timers set, JS, JH,HD) then "ESC 0x00 0x00 0x00" exits remote mode.
- ESC (d 0xff 0x7f
- 0x7FFF zero bytes
I think that that's just to make sure that the printer's in a sane
state before printing (I believe that that command simply swallows the data).
Post by Branko
- another ESC (d 0xff 0x7f
- 0x7FFF + 2 ( so 0x8001 ) zero bytes
- "ESC (R REMOTE1" to enter remote mode
- TI ( set timer)
- DP
- SN
- 6 * US directives
- DR
-PP
-ESC (A
-ESC (R...ESCPR /which i think enters ESCPR mode/
Yes.
Post by Branko
-ESC q + few directives I don't yet understand.
Not familiar with that command.
Post by Branko
After that I have more or less repetition of many sequences with a period of 169 bytes
ESC d 0x9f 0x00 0x00 0x00 / those two are payload lenght ( 169 = A9 = 0x9f + 10 )
- 0x00 0x64 0x73 0x6E
-0x64 0x00 0x00 0x01
-0xB9 0x01 0x00 0x98
- 37 * 0x80 0xFF 0xFF 0xFF ( those seem to be KMYC groups
- 0xD2 0xFF 0xFF 0xFF ( last group in repetition)
- what the heck is "ESC (d / + 0xff 0x7f/" ? THose two trailing bytes are obviously data length.
If this is some kind of raster print sequence, is it normal that it's uused twice with all-zero payload ?
Like I said, I think that the payload of the ESC(d command is
ignored. It's a good way to send a long stream of nulls to the
printer to ensure that it's in a sane state.
Post by Branko
- where could I get meaning of US ( User space) directives ?
Which particular directives?
Post by Branko
- does anyone happen to have ESC/P-R reference laying around ?
Not handy. I was basically told "read the code for the PIPS-LITE
driver", which is open source.
--
Robert Krawitz <***@alum.mit.edu>

*** MIT Engineers A Proud Tradition http://mitathletics.com ***
Member of the League for Programming Freedom -- http://ProgFree.org
Project lead for Gutenprint -- http://gimp-print.sourceforge.net

"Linux doesn't dictate how I work, I dictate how Linux works."
--Eric Crampton
Loading...