Menu

#743 Please add Epson ET-8550 (same as L8180)

open
nobody
None
5
2025-07-21
2022-12-11
No

First of all, thanks for your efforts! Besides gutenprint, quality printing on POSIX systems is in a sad state...
Please consider adding Epson ET-8550 / L8180. It's a decent device for a photographer or a small studio, featuring quite unusual ink set. Currently it is supported by escpr2 that has crippled abilities for quality printing, while Epson's linux printing app is still based on already anscient qt4. I'm not a programmer, yet ready do my best in testing or whatever is needed to make this happen.
Thanks beforehand!

Discussion

  • John-Paul Herold

    I'd like to second this. I have the smaller variant called the Epson EcoTank Photo ET-8500; it has a smaller 8.5" x 11.7" flatbed scanner and only supports up to 8.5" x 11" paper size. Would love to have better print support for photography on linux and happy to help test, contribute, whatever to help get things moving.

    Note: as Nick mentioned there are different names for these two models. From the Rtings review, "In Europe, the ET-8550 is known as the Epson EcoTank L8180, while the ET-8500 is known as the Epson EcoTank L8160." (https://www.rtings.com/printer/reviews/epson/ecotank-photo-et-8550)

    Thanks!
    JP

     
  • Solomon Peachy

    Solomon Peachy - 2024-11-12

    Epson has, to my knowledge, never published documentation for their ESC/P-R language, and their
    linux drivers for the ET-8500/8550 rely on a proprietary library.

    Reverse-engineering how ESC/P-R (and their proprietary library) works is not something I have any particular interest in doing -- I barely have time to handle basic maintenance these days, and there's a very long list of more pressing things that need doing.

     
    • Sami Liedes

      Sami Liedes - 2025-07-09

      Are you sure it requires ESC/PR? I tried some things with my ET-8550, and here's my current impression of things; but I would assume you would have much more insight on this. I've been reading Gutenprint source code and would be happy to experiment with this, so any pointers would be appreciated.

      • The proprietary Epson driver sends RGB data to the printer. It uses the sometimes mentioned and dreaded RHV2 compression. In any case, just by changing the compression type I was able to get it to take uncomperssed RGB. That's the ESC/PR part. It's my current impression that ESC/PR means "eat RGB, do rasterization on the printer" whereas ESC/P uses process colors and expects the driver to do the raserization.

      • I see no indication that ESC/PR can be used to print in CMYK+Gray+Photo black, but then I haven't really been able to find any captures of fancier RIPs printing to the printer.

      • Using ESC/P2, I was able to print the process colors combining some information I found on the web, although so far I only got it to work at 360 dpi (perhaps it needs some of the weaving stuff, or just enabling a different print mode, for higher resolutions?) and didn't try varying the dot size.

      • Now, I'm pushing just scripted bytes to the printer, so might well work out of the box with what Gutenprint does with other Epson models.

      • The colors are K=0, M=1, C=2, Y=4, Gray=16, Photo Black=64. There is nothing preventing printing K (pigment matte black) and PB (dye photo black) on the same page; the black inks do not seem to be in any way special.

      Things that are a bit unclear to me:

      • Looking at Gutenprint, some of the closer printer models are probably XP-15000 (another six ink printer, except with Red instead of Photo Black—crucially, it also has Gray). It uses Claria Photo HD inks instead of the Claria (ET) Premium inks of the ET-8550. There are also printers that use Light Cyan and Light Magenta. Someone on the web had an Epson representative say that the inks ET-8550 uses are "essentially the same" but with Gray and PB replacing LC and LM. It feels like XP-15000 would be a good starting point to try to get this to work in Gutenprint?

      • How much programming/redesigning, as opposed to calibrating, do you think it takes to support CMYK+GY+PB as an ink set? Based on above, I'd guess we have a good starting point for calibration, especially if the XP-15000 Gray is the same. Perhaps the 15000 uses the Photo Black ink, so the matte black needs calibrating. Are the calibrations fundamentally for the whole set of inks, so that there's not much that can be reused if the Red is not available? Does Gutenprint somehow intelligently calculate what to do based on what inks are available, or do I need to implement some CMYK+GY without Red code somewhere?

      • How do people usually debug/try out commands with the printer? Do you send them one by one to the printer? I've seen that the printer ejects the page on error, which is likely useful to tell where we went wrong. OTOH the printers also seem to send a status back periodically, but only over USB?

      • Does anyone know if it's possible to cancel/reset the printer over network? :D I'm quite frustrated at it getting stuck to "Printing..." or "Canceling..." and needing to interact with the touch screen on the printer.

      I think next I'll try to just print something on it using Gutenprint XP-15000 driver and see what goes wrong apart from the red ink.

       
      ❤️
      1
      • Sami Liedes

        Sami Liedes - 2025-07-09

        I got it to work by cloning the XP-15000 driver, including at 1440 dpi, though not yet with all the nozzles aligned (I think "headOffset").But I didn't get it to use Gray.

        Looking at the ink xml files:

         <InkName translate="text" name="CMYKk" text="Six Color Photo" InkID="OTHER">
          <Channels>
           <channel name="claria_photo_black" index="0">
            <subchannel color="0" subchannel="0" name="Black" text="Black" translate="text">
             <ChannelDensityParam name="BlackDensity"/>
             <SubchannelTransitionParam name="LightBlackTrans"/>
            </subchannel>
            <subchannel color="0" subchannel="1" headOffset="2" name="LightBlack" text="Light Black" translate="text">
             <ChannelDensityParam name="BlackDensity"/>
             <SubchannelTransitionParam name="GrayTrans"/>
             <SubchannelValueParam name="GrayValue"/>
             <SubchannelScaleParam name="GrayScale"/>
            </subchannel>
           </channel>
           <channel name="claria_cyan" index="1">
             ...
           </channel>
        ...
        

        I have a few questions / deductions that I'd like to verify. I'm sorry for this many questions; perhaps these are best taken as indicative of areas where I'd need pointers.

        1. The "color" numbers seem to correspond to what is sent to the Epson printer. Is this correct?
        2. A "channel" is a Gutenprint concept meaning something that produces one hue. Thus, cyan and light cyan, or black and grey, should go in the same channel (if the hues are the same). Correct?
        3. Transitions between subchannels are somehow defined by the ChannelDensityParam and SubchannelTransitionParam, and perhaps some SubchannelValueParam and SubchannelScaleParam. Where are these defined? How do they relate to the <Shades> block in the ink files—I assume those define how black gray is or how cyan light cyan is?
        4. Whenever I print any gray (I tested Gray05..Gray95 with steps of 5), it gets mixed from CMY. Is this expected?
        5. What is an "ink group"? Since this is a different set of inks from what the previous printers support—CMYK + Gray + Photo Black—would I make a new ink group?
        6. What is an "ink list"? How odes it differ from an ink group?
        7. What do the indices in <channel name="standard_cyan" index="0"> do? Should those just be numbered from 0 on, arbitrarily?
        8. I see that the ink files have hue, luminosity and saturation maps. But these do not seem to be tied to any of the individual colored inks (like cyan). How does this work? They probably do something different from what I think.
        9. I think Light Black is the same as Gray. Is this correct?
        10. I see that the model files define escp2_ink_type with values like 16, 18 or 19. What does this do? Somehow select e.g. glossy vs matte inks? How do these get mapped to the ink sets/groups/lists?
         
        ❤️
        2
  • John-Paul Herold

    @Sami Liedes, I can't help with any of those questions but happy to help test anything you're working on with my ET-8500. Was pumped to see the email notification and your thorough digging!

     
  • Paul Slabowski

    Paul Slabowski - 2025-07-19

    I just joined SourceForge to reply here and to subscribe. I just recently purchased an ET-8550 and would LOVE to be able to use Gutenprint to make use of extended ICC profiles without needing to boot into Windows. I'm going to DL to source and try to follow along.

    BIG THANK YOU to Sami for pursuing this!!!

     
  • Sami Liedes

    Sami Liedes - 2025-07-19

    Then I should probably give an update.

    My branch of gutenprint at https://github.com/sliedes/gutenprint/tree/msg-20250719 (tagged as of today) is a bit of a mess, but

    • the printer is there and seems to work
    • it can print, but doesn't seem to want to use gray, and the colors are obviously off (like red becoming orange). I didn't manage to understand the code well enough to grok how to make it use gray.
    • I haven't done any color or dot size calibration
    • I also don't know if all the paper sizes etc. are correct and/or limited to what the printer can do; it works for A3 and A4. I mainly suspect it might try to print A2 if you passed it that, and fail.

    Instead of doing all the calibration stuff, I decided to move on to a model where I pass the printer the process colors (raw amounts of CMYKk) and only have Gutenprint do the dithering. I'm printing on rather funky papers so it helps to have that control anyway. I don't know if there really are any workflows that use CMYKk, although obviously you could do that with a CMYK workflow—you'll just have to linearize the ink amounts somehow (or calibrate the gutenprint driver; I believe there are even instructions for that somewhere in the Gutenprint documentation); I'm making it up as I go.

    Maybe there would have been an easier way to do this, but I ended up bypassing CUPS and PDF; https://github.com/sliedes/gutenprint/blob/msg-20250719/src/testpattern/printraw.c (yes, I know, the directory doesn't make sense; I just copied testpattern.c and used it as a template) contains code to read a 5-channel TIFF and produce the PCL that needs to be sent to the printer to print a dithered version of it. Not sure if that will be helpful for anybody else. Also, as a word of warning, it works on the raw ink amounts, and turns out that the maximum is a lot. I get nice pastel colors by using 5% of the maximum of ink (that is, C+M+Y+K+k <= 0.05 * 255). 50% is already quite dark.

    What I think it is is a solid beginning that has all the important printer control functionality working and showing that (and how) the ET-8550 can be controlled using ESC/P2.

     
  • Paul Slabowski

    Paul Slabowski - 2025-07-21

    Thanking you again, Sami. I understand this is a work-in-progress. That, in itself, gives more hope than if this printer was simply being ignored. I wish I could offer more to the project, but I fear this is all (way) above my level.

    But who knows? Maybe I'll surprise myself ;-)

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.