Resources for Epson Inkjet Printers


FAQ + Tips + Techniques to get the utmost from your Epson Inkjet printer.
created May 21, 2000 -- updated January 06th, 2007
Alternative Inks B & W Printing Bulk Inks/CFS/CIS Calibration
Files Ink Levels Orange Shift Profiling FAQ
Papers Paper Table PhotoShop Printers
Repair Manuals Reseting Carts Resolution Resources
Reviews Scanners Settings Troubleshooting
Suggestions Working Space Linux Drivers ASCII commands
Pizza Wheels Weaving/Dither What's New Disclaimer


New Digitital Printing Book available, see books section



Epson printer related mailing lists

Leben List

  • Subscribe/unsubscribe to Epson-Inkjet list
  • Instructions on Mitch's Consulting site (APPEARS TO HAVE DIED)
  • Search the mailing list Archive
  • Yahoo Groups maintains an archive of messages
  • Search the mailing list Archive alt.
  • Spinics thread aware archive of Leben list
  • Epson Consumer inkjets
  • Many members of Leben list here now
  • Epson Inkjet Mailing list
  • Started by members after demise of Leben list

    Yahoo Groups Lists

  • Subscribe/Unsubscribe to Epson 9000 list
  • Epson 7xxx/9xxx/10000 printers

    Paper Links

  • www.Epson.Com
  • Genuine Epson Papers Inks
  • www.InkSupply.com
  • MIS Supply, paper, inks, CFS Archival Inks
  • www.MediaStreet.Com
  • Archival Papers, Accessories Generations Inks
  • Piezography, Papers...
  • Jon Cones pages Archival Inks
  • Osprey + Redtail
  • Hawk Mountain ART PAPERS
  • INKJETART.COM
  • Distributes Many papers Inks
  • www.RedRiverCatalog.com
  • Red River Paper
  • www.weber-valentine.com
  • Weber-Valentine
  • www.InkJet.com
  • Sentinel Imaging, now part of Charrette
  • www.DigitalArtSupplies.com
  • DigitalArtSupplies
  • www.specialty-paper.com
  • Specialty Papers
  • www.Pictorico.com
  • Pictorico Inkjet papers
  • WWW.Cad-Paper.Com
  • Papers, canvas, Cad products
  • Mile High Engineering
  • Papers, Supplies Inks
  • www.WeInk.Com
  • Specialty Papers, Supplies Inks
  • WWW.FoxRiverPaper.com
  • Stonehedge Art Paper
  • European Sources
  • Papers, Inks, supplies
  • www.HPMarketingcorp.com
  • Tetenal Papers
  • www.Atlex.com
  • Genuine Papers and Inks and good discounts! OEM Inks
  • www.HP.com
  • Hewlete Packard papers are normally incompatible with Epson OEM Inks
  • www.mworks.co.uk
  • European distributor of CIS, INKS and some papers
  • Paper Size conversions
  • Metric Sizes to USA and Back
  • Paper Compatability Table
  • Based on Epson-Inkjet list users
  • Overhead Transparancies
  • tips on how to make them look great
    Back to top

    Epson Paper Part Numbers

  • Archival Matte paper
  • 08.5" X 11.0" 50 sheets S041341
  • COLORLIFE PHOTO PAPER
  • 08.5" X 11.0" 20 sheets S041500
  • COLORLIFE PHOTO PAPER
  • 13.0" X 19.0" 20 sheets S041501
  • Matte Paper - Heavy Weight
  • 08.5" X 11.0" 50 sheets S041257
  • Photo Quality Ink Jet Paper
  • 08.5" X 11.0" 100 sheets S041062
  • Photo Paper
  • 08.5" X 11.0" 60 sheets (costco) S041141-60
    Back to top

    Alternative Inks

  • www.nomorecarts.com
  • Never empty ink (almost)
  • www.MediaStreet.Com
  • Generations Archival Inks
  • www.MISSupply.com
  • MIS inks, archival
  • www.InkjetMall.com
  • Quad Inks, Piezography
  • www.InkJetArt.com
  • Lyson Inks (Small Gamut,Quads, +)
  • www.Lumijet.com
  • Inks
  • www.VanSonInk.com
  • Offset press Ink company
  • How inkjet ink dries
  • short explanation from John Nollendorf

    Back to top

    Bulk Inks Systems / Continuous Flow System / Continuous Ink System


    Q: What is a CFS/CIS?

    A: CFS stands for "continuous feed system" and CIS stands for "continuous inking systems".
    CFS is the term used by MIS Associaties Inc and CIS is used by the folks at No More Carts.
    The basic idea behind using bulk inks is large bottles of ink (that are easily
    refillable) that continuously refill the small cartridges that are installed
    in the printer. As your work is being printed, the printhead pulls ink out
    of the small installed cartridges, and that ink is replaced by ink in the
    large storage bottles through a 4 or 6 tube wide strip of tubing.

    
    Features to look for: 
    
    
    
    - Is the system fully assembled and pressure tested? 
    
    - Easy vacuum fill method
    
    - Very high quality tubing 
    
    - Does the system require permanent modification to your printer?
    
    - System to reduce or eliminate evaporation of the ink in the storage bottles 
    
    - Does it allow you to print with the cover closed? (yes - 1 to 2 inch gap)
    
    - Easy ink priming and printer installation 
    
    
    
    Features for the newer 'chipped' printers: (870, 890, 1270, 1280, 1290, 2000P)
    
    
    
    - Some way of getting around the limiting microchips on the OEM cartridges.
    
    
    
    No More Carts uses  a custom write protected microchip. It always reads 100 percent
    
    full, so you can print as much as you like. If the ink level reported by
    
    the 'status monitor' ever reads below 100 percent, all you have to do is
    
    turn the printer off for 15 seconds, and it will revert back the 100 percent
    
    full reading found on the microchips.
    
    
    
    Cartridge swapping technique:
    
    Some people have found that by swapping a full and empty cartridge back and
    
    forth, they can trick the printer into thinking the empty cartridge is full.
    
    This method is not great for cis type systems, because it requires multiple
    
    removals and reinsertions of the cartridges.  This potentially introduces air into
    
    the printhead, which can take many frustrating hours to force out.
    
    
    
    Software to reset the status monitor:
    
    This may be a viable solution in the future, but right now it has some
    
    serious limitations. It only works with operating systems that are DOS
    
    based such as the Win9x versions. To use with NT or Win 2000, you have to
    
    reboot your computer each time with a DOS boot disk. It does not work with
    
    printers connected with USB cables at this time. You have to either run
    
    your printer via the parallel port, or switch to that type of connection
    
    each time you need to reset the chips. Some users can have both cables connected.
    
    You can only use the software with one printer. If for some reason you have to 
    
    get a replacement printer or a new printer, you have to repurchase the software. 
    
    If the ink out lights come on before you run the software, the program cannot 
    
    reset the chips.  You have to remember to reset the chips before they get too 
    
    low or you will be forced to get new chips.
    
    There is a new version of the sofware coming out which will deal with, "oops I'm out
    
    of ink."
    
    
    
    Worldwide Imaging Supplies, LLC now offers the Ultra-FLO II Continuous Re-Inking Systems.  This new
    
    introduction supports a wide range of printers including the 1520 series.
    
    
    
    
    www.nomorecarts.com
    www.InkSupply.com Look for the CFS Link
    www.WeInk.comUltra-FLO II Continuous Re-Inking System
    www.mwords.co.ukEuropean Distributor for CIS


    Back to top

    Suggested Settings for Ink/Media Combinations


    Settings are suggestions from members of the mailing list:
    You should be consistant with how your print your images in order to
    customize sliders for your particular printer.
    If you are printing from PhotoShop you should use a Space or Source of RGB
    this prevents a second profile from being applied by the Epson Drivers.
    In the Epson dialogs, you have to select advanced to get the color control sliders.
    Make sure you use the recommended media settings to get started, they have
    and affect on color and ink density.

    Most users are printing in 1440 mode, High speed off, and highest quality dithering.


    Paper Name Model Ink Set Media Bright Cont. Satur. Cyan Mag. Ylw
    Archival Matte 1160 GEN4 Heavy Weight Matte -10 0 +15 0 0 0
    Colorlife Paper 1270 OEM Photopaper 0 +2 +2 0 +6 0
    Heavy Weight Matte 1270 OEM Heavy Weight Matte 0 +1 +2 +4 0 -5

    Back to top

    Epson Printer Models

    Model Colors - Note Picos Max Media Made When Comments
    Photo Stylus C40UX 4 pigment chipped 3 8.5" x 44" + Aug 2001 to ??
    Photo Stylus C60 4 pigment chipped 3 8.5" x 44" + Aug 2001 to ??
    Photo Stylus C80 4 pigment chipped 3 8.5" x 44" + Aug 2001 to ??
    Photo Stylus EX 6 Dye # 11.7" x 44" + unknown
    Photo Stylus 750 6 Dye # 8.5" x 44" + Mar 1999 to April 2000
    Photo Stylus 870 6 Dye Chipped # 8.5" x 44" + Nov 1999 to Spring 2001
    Photo Stylus 875 6 Dye Chipped # 8.5" x 44" + Nov 1999 to Spring 2001 Built In Digital Camera Card reader
    Stylus 880 4 Dye 4 8.5" x 44" + Nov 1999 to Spring 2001
    Photo Stylus 890 6 Dye Chipped 4 8.5" x 44" + March 2001 to Full bleed (edge to edge) printing
    Photo Stylus 1200 6 Dye 6 12.7" x 44" + May 1999 to Spring 2001
    Photo Stylus 1270 6 Dye Chipped # 13" x 44" + Nov 1999 to Spring 2001 "Lightfast" Dye Ink 1440x720 dpi
    Photo Stylus 1280 6 Dye Chipped # 13" x 44" + March 2001 to Full bleed (edge to edge) printing
    "Lightfast" Dye Ink 2880x720 dpi
    Photo Stylus 2000P 6 Pigment Chipped # 13" x 44" + Summer 2000 to Archival pigment Ink 1440x720 dpi
    Photo Stylus 2200 7 Pigment Chipped? # 13" x 44" + Summer 2002 to Archival pigment Ink 2880x1440 dpi
    Epson 3000 4 Dye # 16.12" x 44" 1997 to ?? Dye Ink 1440x720 dpi
    Stylus Pro 9500 6 Pigment 44" x ?? ?? to ?? Pigment Ink, 1440x720 dpi
    Stylus Pro 10000 6 Either 5 44" x ?? 2001 to ?? Dye or Pigment Ink, 1440x720 dpi
    Stylus Pro 4000 ? ? ?? x ?? 200? to ??
    Stylus Pro 4800 ? ? ?? x ?? 2005 to ??
    Stylus C80 4 pigment 3 8.5" x 44" Sep 2001 to ?? Pigment Ink, 2880x720 dpi
    Back to top
      Color   Black  
    Model Nozzles Spacing Nozzles Spacing
    Stylus Color 15 4 15 4
    Stylus Color Pro 48 8 3 48 3
    Stylus Color 400 48 3 48 3
    Stylus Color 440 21 4 21 4
    Stylus Color 460 21 4 21 4
    Stylus Color 480 15* 3 47 3
    Stylus Color 500 48 3 48 3
    Stylus Color 580 15* 3 47 3
    Stylus Color 600 32 4 32 4
    Stylus Color 640 32 4 64 2
    Stylus Color 660 32 4 64 2
    Stylus Color 670 32 4 64 2
    Stylus Color 680 48 3 144 1
    Stylus Color 740 48 3 144 1
    Stylus Color 760 48 3 144 1
    Stylus Color 777 48 3 144 1
    Stylus Color 800 64 2 64 2
    Stylus Color 810 48 3 48 3
    Stylus Color 820 48 3 48 3
    Stylus Color 830 48 3 44 1
    Stylus Color 850 64 2 128 1
    Stylus Color 860 48 3 144 1
    Stylus Color 880 48 3 144 1
    Stylus Color 900 48 4 96 4
    Stylus Color 980 96 2 192 1
    Stylus Color 1160 48 3 144 1
    Stylus Color 1500 ? ? ? ?
    Stylus Color 1520 64 2 64 2
    Stylus Color 3000 64 2 128 1
    Stylus Photo 32 4 32 4
    Stylus Photo 700 32 4 32 4
    Stylus Photo EX 32 4 32 4
    Stylus Photo 720 32 4 32 4
    Stylus Photo 750 48 3 48 3
    Stylus Photo 780 48 3 48 3
    Stylus Photo 790 48 3 48 3
    Stylus Photo 870 48 3 48 3
    Stylus Photo 890 48 3 48 3
    Stylus Photo 960 96 2 192 2
    Stylus Photo 1200 48 3 48 3
    Stylus Photo 1270 48 3 48 3
    Stylus Photo 1280 48 3 48 3
    Stylus Photo 1290 48 3 48 3
    Stylus Photo 2000P 48 3 144 1
    Stylus Pro 5000 64 4 64 4
    Stylus Pro 5500 64 4 64 4
    Stylus Pro 7000 64 4 64 4
    Stylus Pro 7500 64 4 64 4
    Stylus Pro 9000 64 4 64 4
    Stylus Pro 9500 64 4 64 4
    Stylus C20UX 15 3 48 3
    Stylus C20SX 15 3 48 3
    Stylus C40UX 15 3 48 3
    Stylus C40SX 15 3 48 3
    Stylus C60 48 3 144 1
    Stylus C70 60 2 180 2
    Stylus C80 60 2 180 2

    Back to top

    B & W Printing Resources

  • Luminos Landscape Process for 1270 B&W
  • Michael Reichman Photography
  • www.InkjetMall.com
  • Piezography System for B & W Printing
  • www.InkSupply.com
  • B & W curves and workflows for Quadtone inks
  • www.PaulRoark.com
  • Cold tone, warm tone ink mixes, B & W curves, Quadtone work flow
  • www.JNevins.com
  • B & W curves, Quadtone work flow
  • www.LincolnInks.com
  • Quadtone work flow under spectratone quads button
  • Dan Cubertson's Pages
  • Printing Quadtones from RGB sources
  • Dan Cubertson's Pages
  • Gradients and test images Dan uses
  • Dan Cubertson's Pages
  • Examples of Dan's Work
  • Dan Cubertson's Pages
  • Additional details on quadtone work
  • Dan Cubertson's Pages
  • Photoshop 6 Hi-Bit workflow
    Back to top

    File Resources / Downloads

  • PhotoDisc Target
  • Known good test image JPG only How to use the image
  • PhotoDisc Target TIFF 40meg+
  • Known good test image TIFF & Jpg How to use the image
  • Dan Culbertsons Gradient
  • To test which media setting to use for printing profiling target on a given paper. How to use the Dan Cubertson Gradient
  • Shadow different image
  • Used to see if given media setting shows difference in blacks vs. dark grays.
  • Gray Scale Step Wedge
  • Each step is 1/2 Square in PhotoShop curves dialog. Will help you make adjustments for a more neatral grayscale print with color inks.
    Back to top

    Other VERY valuable resources

  • Hamrick Software
  • Fabulous program for many film scanners & flatbeds
  • Computer Darkroom!
  • Ian Lyons's 1270 info, color management, Film Scanning
  • Andrew Rodney's Digital Dog
  • Color management, reviews, PhotoShop tips
  • Dan Margulis Articles
  • Color Correction, Photoshop articles, author
  • www.CPPFAW.Com
  • The Official comp.periphs.printers FAQ website
  • Subscriber Photos
  • Epson-Inkjet list subscriber pages
  • Really Usefulpage
  • Dozens of links to explore!
  • Wilhelm Research
  • Archival Testing and longevity
  • Knoware University
  • Epson's Inside knowledge and training
    Back to top

    Books helpful to digital printing/Imaging


    Back to top

    Hardware / Software reviews


  • EzColor 2.0 review
  • User review vs. Profiler RGB
  • Acer ScanWit review
  • Much useful information
  • L2uminos Landscape Revies (many)
  • Michael Reichman Photography, Film Scanners, Printers
  • Epson 900 vs 960 quick tech review
  • Compare pricing/features/speeds

    Back to top

    LINUX/UNIX support for Epson printers


  • gimp-print.sourceforge.net
  • Linux drivers and RIP for Epson printers
  • Linux/Unix ICC Profiler
  • Build and use ICC profiles for your Unix Box!
    Back to top

    Using PhotoShop with your Epson Inkjet


  • Epson/PhotoShop ICM
  • Bruce Fraser explains EXACTLY how to get ICM to work your Epson Printer
  • Working Spaces
  • By Bruce Fraser brief discussion of AdobeRGB (1998) vs. BruceRGB space
  • High Pass/Hard Light Sharpening
  • An excellent method to sharpen your scans and prints!
  • Computer Darkroom!
  • Ian Lyons's site with Printer profiles info, look for PhotoShop Articles
  • What does the PCM checkbox do?
  • Bruce Fraser explains its function and a link to an article
  • What does the Space Pop-up do?
  • Bruce Fraser explains its function in the print dialog
    Back to top

    Scanner Software, Calibration, Review Sites, General Help

  • Ed Hamrick's VueScan
  • Excellent program for dozens of slide & flatbed scanners
    Color correction, faded image restoration.
  • Art Scan
  • Alternative TWAIN driver for many scanners
  • www.Scantips.com
  • Getting started with your scanner!
  • HSDesign Scanning
  • More specific scanning details
  • Tony Sleep Photography
  • British page dedicated to film scanners
  • Archive of Filmscanners
  • Enthusiatic user has archived thousands of messages
  • Panoramic Tools
  • Stiching tools, Muti-scanning tools
  • Wolf Faust Manufacturing
  • Inexpensive IT8 targets
  • Do it yourself
  • Mister Print *(requires photoshop)
  • KW Lee's IPhoto Software
  • Free scanner profile generator, ICC viewer
    Back to top

    Profiling Software

  • www.Colorvision.com
  • Profiler RGB, Doctor, Profiler Pro Printers only
  • www.PraxiSoft.com
  • WIZIWIG Monitor, Scanner, Printer
  • www.MonacoSys.com
  • Monaco EZColor Monitor, Scanner, Printer
  • Adjusting Printer Profiles
  • Extension on Inkjet Arts Method For non editing profile makers

    Back to top

    Paper Sizes Metric to USA

    European Size

    American Size

    Metric

    A1 23.4" x 33.1" 594mm x 841mm
    A2 16.5" x 23.4" 420mm x 594mm
    A3 11.7" x 16.5" 297mm x 420mm
    A3+ 13.0" x 19.0" 329mm X 483mm
    A4 08.3" x 11.7" 210mm x 297mm

    US Name

    Inch Size

    Epson "Panoramic" 08.3" x 23.4" 210 X 594 mm
    B "Ledger" 11.0" x 17.0" 279 X 432 mm
    Super B 13.0" x 19.0" 329 X 483 mm
    C 17.0" x 22.0" 432 X 559 mm
    D 22.0" x 34.0"

    Further paper sizes including envelopes and Japanese paper sizes can be found at: http://www.twics.com/~eds/paper/index.html
    Back to top

    Troubleshooting Help!


    1. Aborted print job
    2. My printer bangs as it prints
    3. Banner Paper, how to load
    4. Banner's Printing longer than 44" in Windows
    5. Banner's Printing longer than 44" in Windows Plan B
    6. Banding is appearing in my printouts, how do I fix this?
    7. Black lines are appearing on my 3000 printer!
    8. Blobs of ink are appearing on my printouts, how do I fix this?
    9. I have done ## cleaning cycles and I still have a clog! What do I do now?
    10. I have some paper that never seems to dry, what causes this?
    11. PhotoShop locks up accessing menu
    12. Ejects the paper instead of printing on it
    13. How to print a PRN or Print to file file
    14. How do I get my 860 to let me change carts?
    15. Self tests on the 1160 printer
    16. Self tests on the 1270 printer
    17. Remove "Pizza Wheels on 1160"
    18. Remove "Pizza Wheels on 3000"
    19. Remove "Pizza Wheels on 1200"
    20. search on "pizza" and look for "Pizza Wheel-Shimming it!!"
    21. What is the recommeded dilution of XG inks for the 1160?

      Back to top


    
    Q:  Sometimes when printing a full page photo the printer just stops and windows reports an error.
    
    

    There have been five reported "cures" for this problem:

    SOLUTION NUMBER 1

    1. Click on START | SETTINGS | PRINTERS 2. Right click on your epson printer from the window that opens. 3. Choose Properties from the menu. 4. Choose the DETAILS tab 5. Choose the SPOOL SETTINGS button at the bottom of window 6. Click the check box for "PRINT DIRECTLY TO PRINTER" 7. Click OK, then Click OK, then close the PRINTERS window. SOLUTION NUMBER 2 (ADVANCED) 1. Shutdown windows choosing RESTART 2. Watch for how to enter your BIOS 3. Enter your BIOS and change your Parrallel port type to SPP. 3.a You might also try SPP/EPP as SPP is very slow 4. Save your BIOS changes and exit the BIOS 5. Reboot your computer SOLUTION NUMBER 3 1. Rotate your images to Landscape mode 2. Try printing the image this manner. Appears that most printers abort about 3/5s through the job and this seems to get the print job out "quicker" since the paper isn't as long fewer lines need to be printed. SOLUTION NUMBER 4 1. If your Parrallel port is configured as Epson Printer Port or EPC Parrallel port. Try changing the driver to just Printer Port. 2. Go to Start|Settings|Control Panel|System 3. From the Device Manager choose Ports, then choose the printer port 4. Click on PROPERTIES, Choose driver tab, choose change driver. 5. Choose options to see drivers in a specified location. 6. Select the show all hardware and choose the Printer Port 7. Ignore the warning 8. Reboot and try printing now. SOLUTION NUMBER 5 You may be running out of room on your spooling disk, this causes the print job to abort in mid-print also. To make more room, you can three choices: A: You want to move the Windows swap file B: You want to move the PhotoShop swap file(s) C: You want to move the Epson printer spooling file. A: at your desktop, right click the My Computer icon and choose properties, then look for the performance tab at the top of the resulting dialog window. Click this tab, then at the bottom you will see a virtual memory button, click this and tell windows you want to manage your swap file and specify your other drive letter. B: Start photoshop and go to Files | Preferences look for the memory and disk settings. C: Click Start button / click settings / click printers / right click on your 1270's icon. Choose properties. Choose the utility tab. Choose speed and progress buttom at the bottom of the dialog.Then change the location of the high speed copies spool location.




    As the cariage on my printer goes back at forth is bangs and makes a rukus!

    
    Although it's possible your printer needs a service call for electronic or mechanical 
    
    failure, it is more likely the guide bar is dirty and or dry.
    
    
    
    Try wiping the bar with a lint free cloth, and then oil slightly with a precision oiler,
    
    or a drop or two of household 3 in 1 type oil. Just a small amount will go a long ways.
    
    
    
    This has cured many a banging printer.  The banging is likely a result of the cariage "sticking"
    
    and the printer loosing track of where it is.  Stepper motors are used to move the carriage
    
    back and forth extremely precisly.  If the carriage where to stop even for fraction of a second
    
    the printer thinks it's someplace else and keeps on telling the carriage to move.  If the assumed
    
    position, and the actual position are different enougth, the carriage hits the end of the bar.
    
    
    
    Second possible solution is to turn the printer off, so that the printer re "homes" the printhead
    
    carriage and knows where it is.  This was common on dot matrix printers in years past.
    
    

    Back to top

    Printing banners longer than 44" using Epson printers

    
    Works on Printers with ROLL paper options:
    
    
    
    
    
    In printer properties dialog, set up a roll paper size for ### x 44''.
    
    Then select Banner Mode and then check the Save Roll Paper option.
    
    This will print the first 44'' section and then advance the paper only about 1/4 inch before
    
    starting the next 44'' section.
    
    
    
    
    
    

    Back to top

    Printing banners longer than 44" using Epson printers PLAN B

    
    
    
    Using Corel Draw 8.0 and the tile option in print setup.
    
    
    
    To print a banner 17" x 96 " I would do the following in Corel:
    
    
    
    1. set the Corel Draw page to 17" x 96" landscape (this is the working page
    
    in Corel not the print setup page size)
    
    2. do my page layout including vector and/or bitmap images
    
    3. do File|Print and click the printer properties button and set my paper
    
    source to manual feed paper banner slot, and set the paper size to long
    
    paper 17"x32" (we're aiming for 96" wide so we'll use 3 pages each 32"
    
    wide). Click ok to close the properties box.
    
    4. click the layout tab and click the print tile pages option button
    
    5. click print preview and your art work should be previewed on three end to
    
    end pages each 17x32 for a total of 17x96.
    
    6. Click print
    
    
    
    In case you are wondering the images print continuously with no gaps from
    
    page to page. Also I have found this works very well with Corel Draw v8
    
    (Windows) but v9 appeared to want to add pages above and below my image
    
    instead of just a series of side by side pages.
    
    
    
    Also the Epson Banner paper turns a brown tint in a few days and looks
    
    terrible in a matter of weeks when not laminated or treated. Also, the 1520
    
    accepts 17" wide paper but it can only print to about 13" of width, so you
    
    are stuck with a 3-4" margin on the top of your banner. An 8' banner can use
    
    lots of ink, too.
    
    
    Back to top

    
    Q:  There are faint lines running horizontally on my print outs, how do I fix this?
    
    
    
    A:  There are one to four normal causes to this problem: 1: you have a clogged nozel in the print
    
    head of your Epson, 2: the resolution of the image you are printing is causing the artifact to
    
    appear from the printer driver, or 3: your print head is mis-aligned.  And finally,
    
    you may have your paper thickness lever on + vs. 0.
    
    
    
    To eliminate the clogged nozel, first diagnose the problem by:
    
    
    
    1.  Clicking on START (button)| SETTINGS | PRINTERS
    
    2.  Right click on your epson printer from the window that opens.
    
    3.  Choose Properties from the menu.
    
    4.  Choose the UTILITIES tab
    
    5.  Click the Nozzle check button, following instructions
    
    6.  If you determine there are gaps in the nozzle check printout, choose the 
    
    	HEAD CLEANING button next.
    
    
    
    
    
    Next possible cause can be elimated by printing the image at a resolution that is a factor
    
    of the printers resolution (e.g. 360 or 720) a few of them are:
    
    
    
    720, 480, 360, 288, 240, 180, 160
    
    
    
    Print outs at 240 look very good, some members of the Epson-Inkjet list has noted improvement at even higher resolutions
    
    but the consensus on the list is that requires magnification to see!
    
    
    
    SEE ALSO: I've done ## cleaning cycles and I still have a clog!  Now what to do I do now?  Tough clogs
    
    
    
    
    
    Next possible cause is a mis-alignment of the print head.  You check this by going to:
    
    
    
    1.  Clicking on START (button)| SETTINGS | PRINTERS
    
    2.  Right click on your epson printer from the window that opens.
    
    3.  Choose Properties from the menu.
    
    4.  Choose the UTILITIES tab
    
    5.  Click the HEAD ALIGNMENT button, following instructions.
    
    6.  Examine the alignment on the SAME paper as you are printing to
    
    	Use a Loupe or SCAN the alignment to increase the magnification
    
    	of the pattern.  The dots should lay ON TOP of the other dots
    
    	choose the closest on each pattern.
    
    7.  Repeat the head alignment printout again, repeat until you get
    
    	all three of the rows to agree on column 8.  Many users
    
    	have reported this taking 3 or more passes through the
    
    	utility, but that all banding was eliminated.
    
    
    
    
    
    The triple alignment procedure takes the following form:
    
    
    
    Do your normal alignment check. Pay VERY CLOSE attention to selecting the
    
    absolutely closest math between the sets of paired lines on each row.
    
    
    
    Make your initial realignment selection, if needed. Then, run the procedure
    
    two more times.
    
    
    
    It's very important to be sure you're making the correct choice when
    
    selecting realignment numbers. Many times it's difficult to see differences
    
    between the printed pairs of lines. Some people like to scan and enlarge
    
    their findings. I've found moving my eyes back and forth several times
    
    helps. Also, tilting the paper away from you makes it easier to see the best
    
    fit. Strong illumination on the printed tests is also recommended.
    
    


    Random Black Lines on 3000

    
    1. Turn the printer off.
    
    2. Remove the interface cable from the back of the printer.
    
    3. Hold down the Pause, LF/FF, Micro Adjust UP, and Micro Adjust Down
    
    	buttons.
    
    4. While holding these, turn the printer on.
    
    5. Wait five seconds after the printer is on and release all of the
    
    	buttons.
    
    6. All of the lights on the printer should momentarily come on.
    
    
    
    



    Clog Cleaning

    
    Q:  I have done ## cleaning cycles and I still have a clog!  What do I do now?
    
    
    
       - Cause the printer to want to change the ink carts
    
    		1270/1280/1290/870 Press the orange button under the lid
    
    		1160 hold the paper eject button 3 seconds
    
    
    
       - Unplug the printer (do not turn it off first!)
    
    
    
       - Fold a half piece of paper towel over a few times until it will fit into
    
    	the galley _beneath_ the print head.  Some people tape it down.
    
    
    
       - Position the ink carriage over the paper towel.
    
    
    
       ~ Remove the Ink cartridge
    
    
    
         ~ Cut a 1.5 inch long piece of 3/32 of an inch diameter heat shrink tubing.
    
    
    
             Heat shrink tubing = Available at Radio Shack or in electrical supply
    
                                   sections of hardware stores.
    
    
    
         ~ Slip it over the ink inlet tubes as to create
    
                       a reservoir for a cleaning solution.
    
    
    
                       Note:  You can do one at a time or cut 6 pieces of tubing
    
                                   and clean all the print heads simultaneously.
    
    
    
         ~ I do did this in six steps.
    
    
    
           Step 1 ~ I filled the tube with glass cleaner (Windex) and let it set for
    
                       15 minutes, as to give it a chance to flow through the print
    
                       head nozzles and break the bonds of any dried ink particles
    
                       in the print head.  Recently, users have reported even better
    
    			 results using Fantasik cleaner, it appears to be a better
    
    			 solvent for the Epson inks.  Do NOT however, try even more
    
    			 aggresive cleaners such as 409, or bathroom cleaners or FULL
    
    			 strength ammonia.
    
    
    
    			Move the Paper towel over so a new section absorbs ink/windex.
    
    
    
           Step 2 ~ WARNING!! - Forcing air through the heads _could_ damage them.
    
    			Better to be patient and allow the fluid to work its way
    
    			into the clog.  One list reader reports hearing this WILL damage
    
    			more print heads than it will fix by forcing fluids through at
    
    			high pressure.
    
    
    
    		    Refill the tube with glass cleaner and force it through the
    
                       print heads with a syringe.
    
    
    
    			Syringe - available at most pharmacies without the needle of course!
    
    				    also available from www.missupply.com with bottom fill adapter.
    
    
    
           Step 3 & 4 ~ I repeat step 1 and step 2 with glass cleaner.
    
    
    
           Step 5 & 6 ~ I repeat step 1 and step 2 with denatured alcohol to avoid
    
                         any residue which might cause problems with the ink to
    
                         follow.  Some users have reported this step as unneccessary.
    
    
    
    	 Step 7 - Make sure the paper towel is not completely soaked and not absorbing
    
    			any more liquids, replace as necessary.
    
    

    Further reading on clogs, their causes and other possible solutions:

    Jon Cone's Inkjet Mall discussion of clogs and clearing them

    Back to top
    
    Q: I am getting black blobs on my prints or my rollers are getting ink on them?
    
    
    
    A:  You have hair or lint on your printhead nozzles and it is wiping ink on the 
    
    rollers with each pass.
    
    
    
    Press your eject button for 3 seconds to get the printhead 
    
    in cartridge change position and pull the plug.
    
    
    
    Take a piece of paper towel and cut it in half and fold it a number of times until it
    
    fits in the little area in front of the printhead between the rubber rollers
    
    and pizza wheels. (about half an inch wide). 
    
    
    
    Tape each side of the paper towl down well. Take a syringe and slightly soak
    
    the paper towl with Windex - trying to stay away from the tape. 
    
    
    
    Grab your printhead and slowly pull a few times over the paper towl. 
    
    (back and forth) You will get a big mess of ink and fuzz on the paper towl. 
    
    Remove it and discard.. (One tiny piece of lint or cat hair can easily cause 
    
    this problem) 
    
    
    
    Repeat this again with a new piece of towel with more Windex. 
    
    
    
    Take your syringe and make the pad where the printhead rests wet with Windex.
    
    Be careful here not to do this quickly. You can make this pad very wet if you
    
    do it slowly - which is good.
    
    
    
    Clean your rubber rollers with Q-tips wet with Windex. Dry them by running a
    
    sheet of plain paper through with the paper feed button. 
    
    
    
    Move your printhead manually back to the right cartridge parking position and plug 
    
    back in.
    
    
    
    Run a couple cleaning cycles to thouroughly clean the nozzles and your
    
    problem should be gone. 
    
    
    
    It is very important to keep lint out of your printer. Make sure you blow of each 
    
    sheet of art or watercolor paper before putting into your printer. These papers 
    
    attract and hold little hairs and lint and must individually be checked before insertion
    
    into your printer.
    
    
    
    You might think of keeping a soft, wide paint brush next to your printer to wipe
    
    off these particular papers.
    
    

    Back to top

    
    Q:  My printer when feeding a new sheet of paper feeds it all the way through several times before
    
    	it accepts the paper and starts printing.
    
    
    
    A:  It seems that some art papers are stiff enough or thick enough or smooth enough to not get pulled in by the
    
    	 rollers to the point where the printer is expecting to find the leading edge.
    
    
    
            This can be caused by either dirty, worn out paper rollers or a sticky paper sensor switch.
    
    
    
            Usually putting a little pressure on the back end of the paper as it goes in helps the rollers pull it 
    
            to the point where the printer knows it's in the proper position. And therefore, the printer doesn't eject the paper as being
    
           mispositioned..
    
    
    
    

    
    Q:  Why do some papers dry with inkjet ink and others do not?
    
    
    
    A:  Ink jet inks all contain humectants that keep the inks from drying on the
    
    printing heads and thereby clogging the nozzles. When you print on paper,
    
    these inks are absorbed into the ink receptor coating, and the water
    
    evaporates rather quickly. BUT, there is that residual humectant base that
    
    never really dries. On some papers, such as the Kodak, Epson inks don't
    
    really want to dry at all.
    
    
    
    Because of the humectants, the inks will absorb water out of the air, and
    
    have been known to "bleed", or increase "dot gain" thereby changing the
    
    color balance of the print.
    
    
    
    
    
    

    Back to top

    
    Q:  While using PhotoShop sometimes when I choose a menu item my PC locks up requiring rebooting.
    
    
    
    A.  Your fonts registry may be corrupted.  Try clicking on Start | Run and type in FONTREG
    
    	This will cause Windows 98 to rebuild the fonts registry and your problem might vanish!
    
    



    
    Q:  How do I remove the "Pizza Wheels" on my 1160?
    
    
    
    A. The pizza wheels on the ESP 1160 are a combination of single and double 
    
    wheels that are spring mounted in three plastic holders that are held on to 
    
    the mounting plate by tiny hooked pins at the back of each holder and plastic 
    
    clips at the front.  ( I recommend removing the pizza wheels before 
    
    installing a CIS system.  I had already installed the CIS, and it made 
    
    removing the pizza wheels much more difficult since removing the top cover on 
    
    the printer was impossible without removing the CIS cartridges, and I was 
    
    afraid that to do so might cause ink spillage.)  Without the CIS system 
    
    installed, it may be possible to remove the wheel mounting plate entirely, 
    
    which would make the following procedure much easier. There are, I believe, 
    
    three screws that attach the mounting plate to the printer.  The following 
    
    procedure is what I had to use, since I could not entirely remove the printer 
    
    cover and mounting plate.
    
    
    
    1)  Remove the screw on the left side of the pizza wheel mounting plate and 
    
    the screw that is located beneath the print head when it is in parked 
    
    position. To remove the screw under the parked printer head, follow the 
    
    procedure for replacing cartridges. After the print head has moved to the far 
    
    left, unplug the printer.  Remove the right screw.  You may then slide the 
    
    head back to the parked position by hand.
    
    
    
    2) Lift the mounting plate slightly, release the clips at the front of the 
    
    plastic assemblies with a little sideways and downwards pressure, and each 
    
    assembly should drop out.  The clip and wheel configurations are different 
    
    for each assembly, so it should be nearly impossible to replace them 
    
    incorrectly.  However, just in case, the left assembly has 7 wheel groups and 
    
    4 clips. The center assembly has 7 wheel groups and 3 clips, and the right 
    
    assembly has 6 wheel groups and 3 clips.
    
    
    
    3) The pizza wheels are held in place by springs that go through the center 
    
    of the wheels and are held into the assembly by the design of the assembly 
    
    and the tension on the springs. Each spring has an enlarged section on one 
    
    side. Lift the enlarged end of the spring that goes through the wheels that 
    
    you wish to remove with a penknife, needle, toothpick, whatever, grab it with 
    
    a pair of tweezers (or your fingers if you are more dextrous than I am), and 
    
    slide it out. The wheels will then fall out.  All wheels are the same size, 
    
    so you don't need to keep track of which ones go where.
    
    
    
    Remove all of the sets of wheels except those that line up with the edges of 
    
    the paper that you are going to use. I believe that it is necessary to leave 
    
    the wheels that grip the edges in order to insure proper tracking and to 
    
    prevent the image portion of the paper from contacting any part of the 
    
    printer while the ink is wet. I have not yet tried printing with all the 
    
    wheels removed.  I did find that the wheel configuration had to be the same 
    
    on each side (double, or single), or the paper would turn as it came out of 
    
    the printer.  Single wheels are easy to replace, since they just snap back 
    
    in.  The double wheels are trickier because you have to thread the spring 
    
    back through both wheels while they are in place in the assembly.
    
    
    
    4) Replace the plastic mounts.  Make sure that the tiny hooked pins at the 
    
    back of the mounts are seated properly or you will not be able to reseat the 
    
    clips at the front.  Even when the assembly is properly aligned, it may still 
    
    be difficult to reseat, but it can be done.  If the assemblies are not 
    
    reseated properly, they will press down on the paper and cause damage. 
    
    
    
    5) Replace the mounting plate screws.
    
    
    
    6) Plug the printer back in. The print head should recycle back to the start 
    
    position.
    
    
    
    6) There are two additional pizza wheels mounted beyond the main banks of 
    
    wheels which may also cause problems if the paper comes in contact with them. 
    
     This should not be a problem unless there is excessive curvature in the 
    
    paper ( I have run into this problem with Ilford Photo Gloss paper near the 
    
    end of the roll).  These wheels have two pins at the back which, when 
    
    depressed, allow the assembly to be slid off towards the front.  If these 
    
    wheels are removed, care has to be taken to remove the paper as soon as the 
    
    print is done, otherwise the wet ink may cause the print to stick to the 
    
    printer assembly at any point of contact.
    
    
    
    Alan R. Smith
    
    

    Back to top



    
    Try the following to replace the ink cartridges for the SC860:
    
    
    
    1.) With the printer on. Hold down the Load/Eject button for 6 seconds then release. 
    
    2.) Lift the lid(s) on the ink head and replace the ink cartridge(s).
    
    3.) Close the lid(s) and press and release the Load/Eject button. This should start a cleaning cycle.
    
    4.) Once the cleaning cycle is over try printing.
    
    
    

    Back to top



    RESETTING THE CHIPPED CARTRIDGES


    Go to this website for an illustrated method to have your Epson chipped cartridge reset to full! This will allow you to refill the carts, or simply get a few more prints out of your "empty" ones.
    Resetting Chipped Cartridges
    MIS Associates, who run the www.InkSupply.com website have published a program to reset the the chipped series of printer cartridges to full. Now you can reset those carts without even taking them out of the printer! Perfect for Continues Ink systems using bulk inks!
    Back to top

    Self Test on 1160


    
    Make sure it (and the computer were they connected) is turned off.
    
    
    
    Disconnect the interface cable from the printer.
    
    
    
    Have paper loaded, one sheet for every week or so I guess.
    
    
    
    Hold down the load/eject button, then press and release the power button.
    
    
    
    When the power light starts to flash, release the load/eject button.
    
    
    
    It then prints on one page the ROM version number, ink counter, and a 
    
    nozzle check pattern.
    
    
    
    Turn off the printer.
    
    

    Back to top

    Self tests available on 1270 Printer

    Cleaning Cycle

    - Verify there there ist ink in the cartridges (meaning no color of black ink light indicators flashing). Make sure the printer is not printing. Turn OFF the printer. Press the cleaning button (to the left of the paper feed button), and hold it while you turn the printer back on. You must hold the button for approx 3 seconds after the printer turns on. This will cause the printer to start a cleaning cycle of the print head. The cycle lasts approxiamately 60 seconds and will emit a few clicks and whirs from your 1270. When completely finished your power light will be on steady.

    Printer's Nozzle Check Pattern


    Make sure the printer is turned off. Hold down the load/eject button and then press the power button. Release the load/eject button after the power light starts to flash. After it prints the page, turn off the printer.
    Back to top

    Suggested Dilution for XG inks in 1160


    
    Approximates OEM color on 1160 with these dilutions:
    
    
    
    100ml of black ink, add 22ml of 100 percent isopropanol
    
    100ml of cyan, add 25ml of isopropanol
    
    100ml of magenta, add 30ml
    
    100ml of yellow, add 21ml
    
    
    
    David also recommended pouring off and storing half the mix because the 
    
    99-100% isopropanol is quite volatile and will spirit off even with 
    
    NoMoreCarts nifty little breather tubes.
    
    
    
    
    
    

    Back to top

    How to Print a PRN file or a Print to File file


    
    from the DOS prompt:
    
    
    
    copy filename /B lpt1:
    
    
    
    obviously replace filename with the path and or name of your print file with extension.  The /B
    
    incates a BINARY file copy, which is important for printer data.  lpt1: uses the reserved DOS
    
    work for the first printer port.  If you have multiple printer ports on your machine via add in
    
    cards, then you will have to change the 1 to the appropriate port.
    
    
    
    I am unaware of how to get DOS to print to a USB based printer via the COPY command.
    
    
    
    

    Back to top

    What does the PCM checkbox do in the Photoshop Print Dialog
    OR
    What is the Space pop-up in the PhotoShop Print Dialog

    The "space" pop-up is a mechanism for making Photoshop do the color conversion from the RGB working space to the printer space. If you set it to RGB Color, it does nothing (assuming you're printing an RGB doc) because the color is already in RGB Color. (Throughout Photoshop, "RGB Color" is a shorthand for "the RGB space specified in RGB Setup.") If you choose the Epson 1270 profile that matches your paper type, Photoshop will convert the data to the Epson space as it sends it to the print driver, using whatever the default rendering intent is for the profile (almost always Perceptual). If you choose to print this way (it's been working very well for me for a couple years), you need to uncheck "Printer Color Management" in the first screen of the driver, and make sure that "No Color Adjustment" is set in the Advanced options, otherwise you'll get a double correction, which usually does not produce desirable results. I have an article at that describes in mind-numbing detail the three correct ways to print to an Epson from Photoshop using color management. One of them is Mac-centric, the other two apply equally to all platforms.
    Back to top

    Frequently Asked Questions about PROFILING

    This FAQ is meant to be a general document about profiling as applied to inkjet printing. It does not cover the specifics of any particular hardware or OS platform, or application. Specifics, as they are known to me, may be found in the online resources section below.

    Q: What is "profiling"?

    A: "Profiling" is a method of calibrating a computer peripheral to a standard color setup. The current standard has been put forth by International Color Consortium (ICC).

    The method of encoding color samples used by computers assumes that the full range of color that a device can handle can be described linearly with equal spacing. This means that if you were to draw a graph with color samples on the horizontal axis running from 0 to 255 (a common sampling depth) and color values on the vertical axis the line would be straight from 0 in the lower left corner to 255 in the upper right corner, and the spacing from 0 to 1 would match that of from 127 to 128 and from 254 to 255. Unfortunately human vision and various devices are not linear in how they perceive color. If you were to redraw the above graph based on how a particular device reproduces color (e.g., your framebuffer and monitor) you would find that the line is not straight, and the samples are not equally spaced. If you were to draw another graph for a different device (e.g., your printer) you would find that you have a different graph. In fact each computer peripheral (and your vision) has a differently shaped graph. This means that no two devices (even two devices of the same make and model) represents color the same way. Profiling transforms the non-linear data from input devices to a linear color representation (known as a color space), and transforms linear color data to the non-linear values used by output devices.

    Q: Why profile?

    A: One of the prerequisites to producing consistent output is to know how your equipment works. In the darkroom this is done by measuring negatives and prints with a sensiometer, or comparing them to a known standard (e.g., a grey card or color chart).

    In the computer world there has not been this level of standardization until relatively recently. Computer monitors are derived from TV standards. Computers make the asumption that everything is linear. Scanners make asumptions about the density (or reflectance) range of their input. Printers make asumptions about the inks and media that is being printed on. When all of this is put together, none of these asumptions work well together.

    The ICC was formed to try and bring some level of standardization to computer color set up. By defining standardized viewing conditions and a method of describing the relationship of the input to the output of a device the ICC provides a method of matching the color abilities of various computer peripherals.

    Many hardware manufacturers and Operating Systems now support ICC color profiles. However, due to variations in individial pieces of equipment, as well as usage not recommended by the manufacturer, the profiles distributed by the manufacturers should be considered as a starting point to profiling, not the finished profile.

    Q: What needs to be profiled?

    A: All of input and output peripherals that are used to manipulate image data need to be profiled. This includes scanners, digital cameras, monitor and framebuffer combinations, and ink, paper and printer combinations.

    Because of the idiosyncrasies of various equipment and materials you must profile each combination of equipment and media. For example you use printer A with paper 1 and inkset i to produce one profile. If you then switch to printer A with paper 1 and inkset ii you'll need to produce a second profile. Printer A with paper 2 and inkset i would be used for a third profile. This is similar to testing different paper types and grades in the darkroom.

    Although people tend not to switch monitors and framebuffers as frequently, due to aging of components you'll want to profile your framebuffer and monitor combination every so often.

    Q: What affects profiling?

    A: The biggest effect on profiling is viewing conditions. A room with an East facing window will look different in the morning with sunlight dominating the lighting than it will in the afternoon with a mix of reflected sunlight and artificial light and different yet again at night with artificial light dominating.

    Lighting affects profiling due to the adaptability of human vision. Human vision views sunlit scenes as being neutral. Because of variations in the color of sunlit scenes through out the day and through out the year, human vision automatically adapts to a wide range of color balances. The color balance of a light source is usually referred to as its color temperature and is measured in degrees Kelvin.

    As you move from one place to another with lighting dominated by sources having differing color temperatures your vision will automatically adjust to see each light source as being a neutral white.

    This means that under varying lighting conditions you can not trust your vision to tell you when two color samples match. The same pair of samples will look different compared to each other under sun light, tungsten, and fluorescent lighting.

    The effects of lighting on profiling can be lessened by using calibrated measuring devices. For monitors and framebuffers this device is a colorimeter, often called a "puck". The colorimeter is attached to the face of the monitor and used by the profiling software to automatically characterize the monitor and framebuffer.

    For scanners a target is scanned and compared to a file that would be produced by a perfect scanner and target.

    For printers a prepared file is printed and compared to a target.

    In order to minimize the effects of viewing conditions a print viewing booth is used to look at prints. This can be as simple as an box with white walls and a lamp of known color temperature, usually 5000K.

    Q: What does profiling effect?

    A: A profile effects how an input or output device responds to color samples.

    Q: How do you profile?

    Q: What online resources are available?
    Back to top


    Why Not use ColorMatch RGB as my working space?



    
    >Maybe I don't understand this. If the printers will only reproduce a
    
    >certain amount of color space, and ColorMatch RGB seems to be the one
    
    >that is accepted by some, why would you want to display an even wider
    
    >space on your monitor. If you can not print it why would you want to
    
    >display it? What am I missing?
    
    
    
    The facts. ColorMatch can only hold about 80% Cyan based on the gamut of a 
    
    CMYK SWOP press (and what a small gamut that is!). This will be an even small 
    
    percentage of what an Epson can print (my tests show 60% Epson Cyan on a 
    
    glossy paper). A similar patch converted from AdobeRGB will offer 92% Cyan in 
    
    SWOP... and be more saturated. But even if your Epson printer could only 
    
    print to the ColorMatch space, would you be comfortable processing and 
    
    archiving your images for all future uses in such a limited color gamut? Most 
    
    photographers would prefer to grab as big an original file as possible (max 
    
    practical scan resolution, max available bit depth, and max practical color 
    
    space) for their archival original, and only dumb it down to the needed 
    
    resolution, 8 bit per channel, and printer gamut as needed for specific uses.
    
    
    
    Let me try a different approach here: lets say you are a kid, and all you 
    
    have to color with is a set of crayons. I'm suggesting that you should not 
    
    further limit yourself to those crayon colors that match the numbers listed 
    
    in your coloring book or to those that your friends even paler colored 
    
    pencils can match. You can get brighter pictures using all the colors the 
    
    crayons can make even if you have to be a bit more creative to do it; and 
    
    besides, your mom might just buy you a set of brilliant felt tipped markers 
    
    for Christmas. It would be an even bigger shame to limit yourself to those 
    
    dull colored pencil colors once you have those!
    
    
    
    C. David Tobie
    
    
    
    
    
    


    Back to top


    Evaluation the PhotoDisc target from your printer

    
    - First and foremost, the four faces at the bottom. Different subtle flesh
    
    tones, shouldn't exhibit any color casts (too yellow? too blue? too warm?)
    
    The shadow transitions at the edge of the faces should be smooth, not banded.
    
    There should be subtle shading in the shadows. The light faces should look
    
    smooth, not shiny and "sweaty".
    
    
    
    - The circuit board in the upper left corner should show some color, and lots
    
    of detail, it shouldn't be blocked up. Same for those wheels, or gears,
    
    or whatever they are. 
    
     
    
    - The flowers in the upper right should be nicely saturated.
    
    
    
    - The leather bag in the center should be smooth, have some saturated warmth
    
    and shadow detail on the right edge. The purple thing (cloth? canvas?) behind
    
    the binoculars should show the shadow/edge along the top. (interestingly
    
    enough, this disappears on the 1270 when printing through the standard Epson profile).
    
    
    
    - The greens in the cactus plants and sunflower leaves should look natural,
    
    not excessive or oversaturated. 
    
    
    
    - The purple stones at the bottom of the fish tank should show color and
    
    subtle shadow gradations and detail 
    
    
    
    - The letter blocks that are scattered throughout the image - the wood behind
    
    the yellow letters should look like wood, not like the yellow of the letters.
    
    
    
    - You should be able to see the gap between the elephant's tail and the wall
    
    behind it (it's in shadow). If a profiler blocks up the shadows, this gap
    
    may visibly disappear.
    
    
    
    - The color of the back wall should be neutral. Not greenish. All of the subtle 
    
    shadings on these walls should be perceptually neutral shades of gray.
    
    
    
    - The 8 step grayscale in the chart of the largest color squares should be
    
    perfectly neutral (the image contains "perfect" RGBs for them).
    
    
    
    - The grayscale in the Kodak test pattern won't look perfectly neutral, because
    
    the RGB grays it contains are NOT perfectly neutral.
    
    
    
    - The football next to the little red robot: the darker shadows should be
    
    distinguishable from each other.
    
    
    
    above courtesy of David Miller of Color Vision
    
    

    Back to top

    Evaluation of the CMYK Gradient

    
    Open it with no conversion in Photoshop - ie tell Photoshop not to change
    
    anything when it is opened. Print with "No Color Adjustment" in the RGB
    
    driver and make sure that the Photoshop 6 print space is "same as source"
    
    which should be Adobe RGB. Then print at various media type selections. If
    
    there is any bleeding in the CM, MY, or CY patches select another media type
    
    setting. If there is a nice separation between the 95% patch and 100% patch
    
    on all prints select the media setting which printed the deepest C, M, Y
    
    patches. If the 95% and 100% patch in any one ink look identical you may
    
    want to select a media setting which puts down less ink - such as the glossy
    
    film settings. In a nutshell - the CM, MY, and CY patches are all 200% ink
    
    patches and show the colors that will bleed (if any), the top C, M, Y
    
    patches are all 100% ink patches and show the true ink saturation. The
    
    black step gradient shows how the Epson RGB driver switches between color
    
    inks and black ink for grayscale at various media type selections - but this
    
    doesn't tell you much other than which media type selection gives the
    
    blackest black. Since the C,M, and Y step gradients print single ink colors
    
    any head problems will be very apparent at about the 50 to 80% range - dark
    
    enough to see contrast between light and dark bands but not so heavy that
    
    the ink blending is masking the problem.
    
    
    
    The results will vary considerably between different printer models but
    
    usually only a small amount between different printers of the same model
    
    using the same driver version. On some printers there is considerable
    
    difference between media type settings and on others (most notably the 3000)
    
    the media types print similarly with the exception of glossy film which is
    
    always a lighter ink load. 720 vs 1440, and microweave change the ink load
    
    and potential for banding so you may want to test those variables as well.
    
    Basically you are looking for the combination of settings that has the most
    
    saturated color without bleeding or banding.
    
    
    
    
    
    

    Back to top

    Printing Resolution

    
    
    
    Q:  What resolution should I scan at to print to my Epson printer?
    
    
    
    A: For an exhaustive answer to this try www.Scantips.com but the quick answer is:
    
    	Color Photograph printed at mini lab	300DPI
    
    	Line Art (black and white)		720+
    
    	B&W on Fiber paper			400DPI
    
    	B&W on Resin Coated paper		300DPI
    
    	35mm film				2700+DPI
    
    
    
    Color minilab photos have the resolution of 200-300 dots per inch, more than that
    
    and you are only wasting time and disk space
    
    
    
    Line art is only a DOT, its either there or not there, so scanning at the maximum
    
    resolution of your scanner is reasonable, but is wasted on an Epson beyond 720
    
    
    
    I am guessing that a B&W print on Fiber would tend to be of higher detail than
    
    RC paper since a color RC has less detail.  Please correct me if my assumption is
    
    incorrect.
    
    
    
    Film holds detail beyond what prints do, you may scan those at your maximum unless 
    
    you need to consider disk space or another resource.
    
    
    

    Back to top

    Ranking of amount of ink various paper settings use on 1200

    
    
    
    This is based on average densities of RGB. Shipping version of the NT4 drivers. Measurements
    
     made with a Microtek Paragon 1200SP scanner (not the world's most accurate instrument). All
    
     test strips printed onto Epson matte paper - heavyweight. Settings were 1440DPI (except for
    
     a couple of papers which don't permit this). No color managment.
    
    
    
    Most to least
    
    --------------
    
    Premium glossy
    
    Ink jet transparency
    
    Glossy film
    
    Photo quality inkjet
    
    Photo paper
    
    Plain paper
    
    Matte heavy
    
    360 dpi inkjet paper
    
    Backlight film
    
    
    
    The curves for "plain paper" and "photo quality inkjet" have large nonlinearities in the
    
     middle of the curves. Plain paper is the worse, and this curve probably will make a real
    
     mess of the profiles. All the curves generate maximum density at an average RGB value of
    
     around 40, and density actually decreases betond this, so something strange is going on in
    
     the Epson black generation algorithm (or with my measuring technique).
    
    
    
    By: Joseph S. Wisniewski  6/13/2000
    
    
    
    

    Ranking of amount of ink various paper settings use on 1270

    Most to least -------------- Photo paper Backlight Film Glossy film Premium Quality Inkjet Paper Premium glossy Photo Paper Plain paper Matte Heavy Weight Paper as measured on a Densitometer using 0,0,0 and 5,5,5 and 30,30,30 patches on 02-05-2001. A couple of the papers cross over each other at different ranges in RGB values. It is recommended you print Dan Cubertson's CMYK RGB gradients with each media setting on your particular printer on your particular paper stock and observe the evenness of the step wedges. The gradient file is available in this section of the FAQ: Files Section

    Back to top

    Service Manuals are available from this company



    www.nationalparts.com
    31 Elkay Drive
    Chester New York
    10918.

    They have a $25.00 minimum order policy and a
    shipping and handling charge of $7.50.
    They do not accept returns on manuals or any written literature.

    Vance Baldwin Electronics
    2701 West NcNab Road
    Pompano Beach, FL 33069
    Phone: (954) 969-1811 - (800) 964-2237
    Fax: (954) 969-0226 - (800) 552-1431
    Epson manuals for download


    Back to top

    High Pass/Hard Light method of sharpening


    
    Make a duplicate of your image or layer. It will appear on top of the
    
    original. Select Hard light as the blending mode. Choose from the filter
    
    menu "other" then "High pass". You can use any amount you want, but
    
    usually about 4-6 pixels is plenty. Then you probably would want to
    
    reduce the opacity of the duplicated layer to about 75 percent, and
    
    merge the two. You haven't even added any unsharp masking yet, and
    
    already the image is much sharper. Now you can add just a touch of
    
    unsharp masking.  This way, you won't get nearly as much grain or
    
    artifacts as you would if you just used the unsharp masking filter.
    
    Also, if you are working with a color image, you can REALLY get a lot of
    
    different shades of red to appear in an image that would otherwise just
    
    be one or 2 shades. This is really nice in flower images, when reds tend
    
    to blur into just a couple shades. 
    
    
    
    Note: it was suggested you might need to desaturate the high pass layer
    
     of all color to avoid a color shift in some portions of your image.  Do this
    
     step after you have choosen the Hard Light blending mode and adjusted your 
    
     opacity.
    
    
    
    Note: also suggested you might try Soft Light blending mode for some images.
    
    
    
    HighPass/HardLight article was in Design Graphics #50, author Carl Stevens...
    
    
    
    

    Back to top

    Suggestions for printing Overhead Transparencies


    
    Having spent several years at 3M developing training programs for users of
    
    presentation systems and materials, including a wide range of overhead
    
    projectors and film, I have a bias. My bias is toward simplicity. In terms
    
    of what film, Epson's film is likely to work well with OEM ink using the
    
    default settings for that material in your 1160 - however, 3M makes a wide
    
    variety of materials that are often considered the standards by which
    
    others are judged. For the 1160 the CG3410 is is recommended and the CG3490
    
    is rated as 'superior.' (just make sure you print on the correct side and
    
    allow each slide to dry thoroughly before filing.) 
    
    
    
    In overheads, borders matter - give yourself at least 1.5 inches all around (the 
    
    central area of roughly 5X7 inches is the richest in terms of where the attention lies) -
    
    when projected on a screen that is maybe 6 feet across and only maybe 10
    
    feet from the nearest viewer you don't want the viewers' eyes to have to
    
    shift too much to capture the entire image. Size matters, too - if you
    
    cannot read the material easily from a distance of about 6 - 8 feet when
    
    printed on an letter-sized piece of paper, the last row in your audience
    
    probably will not be able to either. Rules of thumb on organization: one
    
    idea per slide, no more than 5 points on that idea per slide, and no large
    
    bodies of text (bullets and enumeration work best), charts should not have
    
    too fine detail to be distinguished by the viewers. Color works better than
    
    patterns in this regard, and the fewer and simpler they are the better -
    
    rich, vibrant, standard colors (avoid yellow unless needed, it doesn't
    
    project particularly well and sometimes looks washed out). 
    
    
    
    Consistancy counts - no more than two type faces per slide and sans serif 
    
    is easiest to read at a distance (avoid complex script faces and those with 
    
    fine lines at all costs) - Helvetica, Arial, Eras, Eraser, etc. are fonts with rich
    
    variations that allow for variety in layout for emphasis. At all costs
    
    avoid having the material on screen simply replicating material from other
    
    sources, spoken or printed. The transparency is best used to illustrate and
    
    illuminate a point made by the presenter or found in other materia, not
    
    duplicate it. As in other works of art, frames work. The presentation will
    
    look more professional and polished - keep in mind that if the presentation
    
    is to be given more than once, frames make handling and organizing the
    
    material easier. Frames also serve to focus the attention and provide a
    
    line of demarkation to issolate the viewers' eyes. Print the entire
    
    presentation on good, bright white, plain paper and frame as you would the
    
    transparency. Use this in fine-tuning and editing the material prior to
    
    printing the actual slides. 
    
    
    
    Suggested:
    
    
    3 Com Transparancie help (click on link to 'Inkjet Printers')
    central contact point for a variety of presentation help
    Jim Wingo 08-2001

    Back to top



    Banner Paper Loading Tip

    
    Q:  How do I load banner paper into my Epson printer?
    
    
    
    A:  Use a magazine or brochure (I use the epson paper manual that comes with
    
    the roll paper).  Put the end of the paper in the middle of the pages.
    
    Then roll the manual in the opposite direction to the roll paper curl.
    
    Roll it into a tight curl about 3 inches (or so) around.  Hold it that way
    
    for 10 sec or so, the remove the paper end and insert it into the printer.
    
    Hit the button and it should load cleanly.
    
    
    
    

    Back to top

    900 vs 960 quick review


    
    EXAMPLE: A 960 can crank out an 8x10 image on 8.5x11 paper 
    
    in about 2 minutes.  It takes a 900 or a 1280 printer a little longer 
    
    to do the same.  BUT when you ask these two printers to make a 
    
    borderless 8x10 print on the borderless paper, it take about 3 
    
    times as long!  Many of my customers would just a soon trim the 
    
    8.5 x 11 print down to the 8x10 image (with a good RotaTrim 
    
    paper cutter)!
    
    
    
    (The 960 will do 5x7 and 4x6 borderless, but not 8x10 --the 900 
    
    can do 8x10 borderless, as you mentioned.)
    
    
    
    Now let's compare some the other difference between the 900 
    
    and the 960:
    
    
    
    900 price is $199
    
    960 price is $349
    
    
    
    The 960 has a roll feed system and auto paper cutter 
    
    attachment, the 900 does not.  (In my recent post on the 2200 
    
    printer, you'll see that I'm not too keen on roll paper systems 
    
    because of their lack of economy, but they are very useful if you 
    
    plan to print odd sizes, especially panorama images.)
    
    
    
    Both have a rear feed path that can handle thick media (up to 
    
    1.3mm), which is why they both can print on CDs.
    
    
    
    As you mentioned, the 960 uses individual ink carts for each 
    
    color, whereas the 900 uses the two cart system like your 1270.  
    
    Individual ink tanks can save you between 20% and 40% on your 
    
    color ink costs, especially when you are doing a lot of prints of 
    
    the same image file, where one color or two colors are being 
    
    used more than the other colors.  But even without doing that, 
    
    most images will use up the light magenta or the light cyan (or 
    
    both) more than the other colors --causing you to toss the 900 
    
    carts sooner (with the other color cells being wasted --and your 
    
    money).  In addition, the 960 carts have about 33% more color 
    
    ink capacity than each of the same color cell in the 900 color 
    
    cartridge.
    
    
    
    On the speed side, the 960 is much faster than the 900, and 
    
    faster than your old 1270.  The 960 has twice as many nozzles 
    
    (96) per color as the 900 (48), and the 960 has 4 times as many 
    
    black nozzles (192) as the 900 (48) --making it very fast when 
    
    printing text.  Although the 960 is a 6-color printer (black and 5 
    
    colors), it actually uses 7 carts (2 black carts and 5 color carts).  
    
    The 2 black cartridges are the same SKU#, you just need 2 of 
    
    them to operate the printer.
    
    
    
    On the resolution side, the 900 will give you up to 5760 horizontal 
    
    resolution and 720 vertical resolution (5760 x 720 dpi).  However, 
    
    I believe the 960's ability to produce 1440 vertical resolution is 
    
    more useful and important even though it has a lower horizontal 
    
    resolution of 2880 (2880 x 1440 dpi).  You'll rarely need to go 
    
    2880 x 1440 (most prints look just as good at 1440 x 720), but 
    
    occasionally you'll run into a color scheme and image pattern 
    
    that causes banding at 1440 x 720, and going to 2880 x 1440 will 
    
    eliminate the problems.  The ability to go to 5760 dpi horizontal 
    
    on the 900 doesn't usually fix as many of these problems --its 
    
    more often used as a fix for smoothing type in black ink printing.
    
    
    
    The fact that the 960 has a minimum ink droplet size of 2 
    
    picoliters, vs. the 900's 4 picoliter is another advantage for the 
    
    960.  Smaller droplet size can significantly improve the 
    
    smoothness and tonal separation of your image highlight areas.
    
    
    
    In overall reliability, the 960 has a higher duty cycle rating 
    
    (25,000) than the 900 (16,000).
    
    
    
    

    Back to top

    How Epson Printers Print (Technical)


    
    Date: Wed, 7 Jun 2000 08:15:15 -0400
    
    From: Robert L Krawitz 
    
    Sender: owner-epson-inkjet@leben.com
    
    Subject: How softweave works on Epson ESCP/2 Raster printers
    
    Reply-to: epson-inkjet@leben.com
    
    To: epson-inkjet@leben.com
    
    
    
    A lot of people asked for this information, so I'm posting it to the
    
    list.  Enjoy.
    
    
    
    
    
    The Epson Stylus Color/Photo printers don't have memory to print
    
    using all of the nozzles in the print head.  For example, the Stylus Photo
    
    700/EX has 32 nozzles.  At 720 dpi, with an 8" wide image, a single line
    
    requires (8 * 720 * 6 / 8) bytes, or 4320 bytes (because the Stylus Photo
    
    printers have 6 ink colors).  To use 32 nozzles would require 138240 bytes.
    
    It's actually worse than that, though, because the nozzles are spaced 8
    
    rows apart.  Therefore, in order to store enough data to permit sending the
    
    page as a simple raster, the printer would require enough memory to store
    
    256 rows, or 1105920 bytes.  Considering that the Photo EX can print
    
    11" wide, we're looking at more like 1.5 MB.  In fact, these printers are
    
    capable of 1440 dpi horizontal resolution.  This would require 3 MB.  The
    
    printers actually have 64K-256K.
    
    
    
    With the newer (740/750 and later) printers it's even worse, since these
    
    printers support multiple dot sizes.  But that's neither here nor there.
    
    
    
    Older Epson printers had a mode called MicroWeave (tm).  In this mode, the
    
    host fed the printer individual rows of dots, and the printer bundled them
    
    up and sent them to the print head in the correct order to achieve high
    
    quality.  This MicroWeave mode still works in new printers, but the
    
    implementation is very minimal: the printer uses exactly one nozzle of
    
    each color (the first one).  This makes printing extremely slow (more than
    
    30 minutes for one 8.5x11" page), although the quality is extremely high
    
    with no visible banding whatsoever.  It's not good for the print head,
    
    though, since no ink is flowing through the other nozzles.  This leads to
    
    drying of ink and possible permanent damage to the print head.
    
    
    
    By the way, although the Epson manual says that microweave mode should be
    
    used at 720 dpi, 360 dpi continues to work in much the same way.  At 360
    
    dpi, data is fed to the printer one row at a time on all Epson printers.
    
    The pattern that the printer uses to print is very prone to banding.
    
    However, 360 dpi is inherently a low quality mode; if you're using it,
    
    presumably you don't much care about quality.
    
    
    
    Printers from roughly the Stylus Color 600 and later do not have the
    
    capability to do MicroWeave correctly.  Instead, the host must arrange
    
    the output in the order that it will be sent to the print head.  This
    
    is a very complex process; the jets in the print head are spaced more
    
    than one row (1/720") apart, so we can't simply send consecutive rows
    
    of dots to the printer.  Instead, we have to pass e. g. the first, ninth,
    
    17th, 25th... rows in order for them to print in the correct position on
    
    the paper.  This interleaving process is called "soft" weaving.
    
    
    
    This decision was probably made to save money on memory in the printer.
    
    It certainly makes the driver code far more complicated than it would
    
    be if the printer could arrange the output.  Is that a bad thing?
    
    Usually this takes far less CPU time than the dithering process, and it
    
    does allow us more control over the printing process, e. g. to reduce
    
    banding.  Conceivably, we could even use this ability to map out bad
    
    jets.
    
    
    
    What makes this interesting is that there are many different ways of
    
    of accomplishing this goal.  The naive way would be to divide the image
    
    up into groups of 256 rows, and print all the mod8=0 rows in the first pass,
    
    mod8=1 rows in the second, and so forth.  The problem with this approach
    
    is that the individual ink jets are not perfectly uniform; some emit
    
    slightly bigger or smaller drops than others.  Since each group of 8
    
    adjacent rows is printed with the same nozzle, that means that there will
    
    be distinct streaks of lighter and darker bands within the image (8 rows
    
    is 1/90", which is visible; 1/720" is not).  Possibly worse is that these
    
    patterns will repeat every 256 rows.  This creates banding patterns that
    
    are about 1/3" wide.
    
    
    
    So we have to do something to break up this patterning.
    
    
    
    Epson does not publish the weaving algorithms that they use in their
    
    bundled drivers.  Indeed, their developer web site
    
    (http://www.ercipd.com/isv/edr_docs.htm) does not even describe how to
    
    do this weaving at all; it says that the only way to achieve 720 dpi
    
    is to use MicroWeave.  It does note (correctly) that 1440 dpi horizontal
    
    can only be achieved by the driver (i. e. in software).  The manual
    
    actually makes it fairly clear how to do this (it requires two passes
    
    with horizontal head movement between passes), and it is presumably
    
    possible to do this with MicroWeave.
    
    
    
    The information about how to do this is apparently available under NDA.
    
    It's actually easy enough to reverse engineer what's inside a print file
    
    with a simple Perl script.  There are presumably other printer commands
    
    that are not documented and may not be as easy to reverse engineer.
    
    
    
    I considered a few algorithms to perform the weave.  The first one I
    
    devised let me use only (jets - distance_between_jets + 1) nozzles, or
    
    25.  This is OK in principle, but it's slower than using all nozzles.
    
    By playing around with it some more, I came up with an algorithm that
    
    lets me use all of the nozzles, except near the top and bottom of the
    
    page.
    
    
    
    This still produces some banding, though.  Even better quality can be
    
    achieved by using multiple nozzles on the same line.  How do we do this?
    
    In 1440x720 mode, we're printing two output lines at the same vertical
    
    position.  However, if we want four passes, we have to effectively print
    
    each line twice.  Actually doing this would increase the density, so
    
    what we do is print half the dots on each pass.  This produces near-perfect
    
    output, and it's far faster than using (pseudo) "MicroWeave".
    
    
    
    The current algorithm is not completely general.  The number of passes
    
    is limited to (nozzles / gap).  On the Photo EX class printers, that limits
    
    it to 4 -- 32 nozzles, an inter-nozzle gap of 8 lines.  Furthermore, there
    
    are a number of routines that are only coded up to 8 passes.  Fortunately,
    
    this is enough passes to get rid of most banding.  What's left is a very
    
    fine pattern that is sometimes described as "corduroy", since the pattern
    
    looks like that kind of fabric.
    
    
    
    Newer printers (those that support variable dot sizes, such as the 740,
    
    1200, etc.) have an additional complication: when used in softweave mode,
    
    they operate at 360 dpi horizontal resolution.  This requires FOUR passes
    
    to achieve 1440x720 dpi.  Thus, to enable us to break up each row
    
    into separate sub-rows, we have to actually print each row eight times.
    
    Fortunately, all such printers have 48 nozzles and a gap of 6 rows,
    
    except for the high-speed 900, which uses 96 nozzles and a gap of 2 rows.
    
    
    
    I cannot let this entirely pass without commenting on the Stylus Color 440.
    
    This is a very low-end printer with 21 (!) nozzles and a separation of 8.
    
    The weave routine works correctly with single-pass printing, which is enough
    
    to minimally achieve 720 dpi output (it's physically a 720 dpi printer).
    
    However, the routine does not work correctly at more than one pass per row.
    
    Therefore, this printer bands badly.
    
    
    
    Yet another complication is how to get near the top and bottom of the page.
    
    This algorithm lets us print to within one head width of the top of the
    
    page, and a bit more than one head width from the bottom.  That leaves a
    
    lot of blank space.  Doing the weave properly outside of this region is
    
    increasingly difficult as we get closer to the edge of the paper; in the
    
    interior region, any nozzle can print any line, but near the top and
    
    bottom edges, only some nozzles can print.  We've handled this for now by
    
    using the naive way mentioned above near the borders, and switching over
    
    to the high quality method in the interior.  Unfortunately, this means
    
    that the quality is quite visibly degraded near the top and bottom of the
    
    page.  Algorithms that degrade more gracefully are more complicated.
    
    Epson does not advertise that the printers can print at the very top of the
    
    page, although in practice most or all of them can.  I suspect that the
    
    quality that can be achieved very close to the top is poor enough that
    
    Epson does not want to allow printing there.  That is a valid decision,
    
    although we have taken another approach.
    
    
    
    To compute the weave information, we need to start with the following
    
    information:
    
    
    
    1) The number of jets the print head has for each color;
    
    
    
    2) The separation in rows between the jets;
    
    
    
    3) The horizontal resolution of the printer;
    
    
    
    4) The desired horizontal resolution of the output;
    
    
    
    5) The desired extra passes to reduce banding.
    
    
    
    As discussed above, each row is actually printed in one or more passes
    
    of the print head; we refer to these as subpasses.  For example, if we're
    
    printing at 1440(h)x720(v) on a printer with true horizontal resolution of
    
    360 dpi, and we wish to print each line twice with different nozzles
    
    to reduce banding, we need to use 8 subpasses.  The dither routine
    
    will feed us a complete row of bits for each color; we have to split that
    
    up, first by round robining the bits to ensure that they get printed at
    
    the right micro-position, and then to split up the bits that are actually
    
    turned on into two equal chunks to reduce banding.
    
    
    
    Given the above information, and the desired row index and subpass (which
    
    together form a line number), we can compute:
    
    
    
    1) Which pass this line belongs to.  Passes are numbered consecutively,
    
       and each pass must logically (see #3 below) start at no smaller a row
    
       number than the previous pass, as the printer cannot advance by a
    
       negative amount.
    
    
    
    2) Which jet will print this line.
    
    
    
    3) The "logical" first line of this pass.  That is, what line would be
    
       printed by jet 0 in this pass.  This number may be less than zero.
    
       If it is, there are ghost lines that don't actually contain any data.
    
       The difference between the logical first line of this pass and the
    
       logical first line of the preceding pass tells us how many lines must
    
       be advanced.
    
    
    
    4) The "physical" first line of this pass.  That is, the first line index
    
       that is actually printed in this pass.  This information lets us know
    
       when we must prepare this pass.
    
    
    
    5) The last line of this pass.  This lets us know when we must actually
    
       send this pass to the printer.
    
    
    
    6) The number of ghost rows this pass contains.  We must still send the
    
       ghost data to the printer, so this lets us know how much data we must
    
       fill in prior to the start of the pass.
    
    
    
    
    
    

    Back to top

    Epson ESCP/2 Commands


    
    This is a description of the ESCP/2 raster commands used by the
    
    gimp-print plugin and Ghostscript driver, which is a subset of the
    
    complete command set. The full documents are found on
    
     Note that these are NOT
    
    always correct, and are certainly not complete.
    
    
    
    All ESCP/2 raster commands begin with the ESC character (1b hex),
    
    followed by either one or two command characters and arguments where
    
    applicable. Older commands generally have one command character.
    
    Newer commands usually have a '(' (left parenthesis) followed by a
    
    command character and a byte count for the arguments that follow. The
    
    byte count is a 16-bit (2 byte) binary integer, in little endian
    
    order.
    
    
    
    All arguments listed here are of the form "name[bytes]" where [bytes]
    
    is the number of bytes that comprise the argument. The arguments
    
    themselves are usually one, two, or four byte integers, always little
    
    endian (the least significant bits come first). Presumably this is to
    
    match Intel processors.
    
    
    
    In some cases, the same command sequence identifies different versions
    
    of the same command, depending upon the number of bytes of arguments.
    
    
    
    ESC @
    
    Reset the printer. Discards any output, ejects the existing
    
    page, returns all settings to their default. Always use this
    
    before printing a page.
    
    
    
    ESC (G BC=1 ON1
    
    Turn on graphics mode. ON should be 1 (turn on graphics
    
    mode).
    
    
    
    ESC (U BC=1 UNIT1
    
    Set basic unit of measurement used by printer. This is
    
    expressed in multiples of 1/3600". At 720 DPI, UNIT is 5; at
    
    360 DPI, UNIT is 10.
    
    
    
    ESC (U BC=5 PAGEUNITS1 VUNIT1 HUNIT1 BASEUNIT2
    
    Set basic units of measurement used by the printer. PAGEUNIT
    
    is the unit of page measurement (for commands that set page
    
    dimensions and the like). VUNIT is the unit of vertical
    
    measurement (for vertical movement commands). HUNIT is the
    
    unit of horizontal movement (for horizontal positioning
    
    commands). All of these units are expressed in BASEUNIT,
    
    which is in reciprocal inches. Typically, BASEUNIT is 1440.
    
    In 720 DPI mode, PAGEUNIT, VUNIT, and HUNIT are all 2; in
    
    1440x720 DPI mode, PAGEUNIT and VUNIT are normally set to 2;
    
    HUNIT is set to 1.
    
    
    
    ESC (K BC=2 ZERO1 GRAYMODE1
    
    Set color or grayscale mode, on printers supporting an
    
    explicit grayscale mode. These printers can be identified
    
    because they are advertised as having more black nozzles than
    
    nozzles of individual colors. Setting grayscale mode allows
    
    use of these extra nozzles for faster printing. GRAYMODE
    
    should be 0 or 2 for color, 1 for grayscale. ZERO should
    
    always be 0.
    
    
    
    ESC (i BC=1 MICROWEAVE1
    
    If MICROWEAVE is 1, use microweave mode. On older printers,
    
    this is used to turn on microweave; on newer printers, it
    
    prints one row at a time. All printers support this mode. It
    
    should only be used at 720 (or 1440x720) DPI. The Epson
    
    Stylus Pro series indicates additional modes: 2= Full-overlap,
    
    3= four-pass, 4="Full-overlap 2". Any of these commands can
    
    be used with the high four bits set to either 3 or 0.
    
    
    
    ESC U DIRECTION1
    
    If DIRECTION is 1, print unidirectionally; if 0, print
    
    bidirectionally.
    
    
    
    ESC (s BC=1 SPEED1
    
    On some older printers, this controls the print head speed.
    
    SPEED of 2 is 10 inches/sec; SPEED of 0 or 1 is 20.
    
    
    
    ESC (e BC=2 ZERO1 DOTSIZE1
    
    Choose print dotsize. DOTSIZE can take on various values,
    
    depending upon the printer. Almost all printers support 0 and
    
    2. Variable dot size printers allow a value of 16. Other
    
    than the value of 16, this appears to be ignored at
    
    resolutions of 720 DPI and above.
    
    
    
    ESC (C BC=2 PAGELENGTH2
    
    ESC (C BC=4 PAGELENGTH4
    
    Set the length of the page in "pageunits" (see ESC (U above).
    
    The second form of the command allows setting of longer page
    
    lengths on new printers (these happen to be the printers that
    
    support variable dot size).
    
    
    
    ESC (c BC=4 TOP2 LENGTH2
    
    ESC (c BC=8 TOP4 LENGTH4
    
    Set the vertical page margins of the page in "pageunits" (see
    
    ESC (U above). The margins are specified as the top of the
    
    page and the length of the page. The second form of the
    
    command allows setting of longer page lengths on new printers
    
    (these happen to be the printers that support variable dot
    
    size).
    
    
    
    ESC (S BC=8 WIDTH4 LENGTH4
    
    Set the width and length of the printed page region in
    
    "pageunits" (see ESC (U above).
    
    
    
    ESC (v BC=2 ADVANCE2
    
    ESC (v BC=4 ADVANCE4
    
    Feed vertically ADVANCE "vertical units" (see ESC (U above)
    
    from the current print head position.
    
    
    
    ESC (V BC=2 ADVANCE2
    
    ESC (V BC=4 ADVANCE4
    
    Feed vertically ADVANCE "vertical units" (see ESC (U above)
    
    from the top margin.
    
    
    
    ESC ($ BC=4 OFFSET4
    
    Set horizontal position to OFFSET from the left margin. This
    
    command operates on printers of the 740 class and newer (all
    
    printers with variable dot size).
    
    
    
    ESC $ OFFSET2
    
    Set horizontal position to OFFSET from the left margin. This
    
    command operates on printers of the 740 class and newer (all
    
    printers with variable dot size).
    
    
    
    ESC (\ BC=4 UNITS2 OFFSET2
    
    Set horizontal position to OFFSET from the previous print head
    
    position, measured in UNITS. UNITS is measured in inverse
    
    inches, and should be set to 1440 in all cases. This operates
    
    on all 1440 dpi printers that do not support variable dot size.
    
    
    
    ESC (/ BC=4 OFFSET4
    
    Set horizontal position to OFFSET from the previous print head
    
    position, measured in "horizontal units" (see ESC (U above).
    
    This operates on all variable dot size printers.
    
    
    
    ESC \ OFFSET2
    
    Set horizontal position to OFFSET from the previous print head
    
    position, measured in basic unit of measurement (see ESC (U
    
    above). This is used on all 720 dpi printers, and can also be
    
    used on 1440 dpi printers in lower resolutions to save a few
    
    bytes. Note that OFFSET may be negative. The range of values
    
    for this command is between -16384 and 16383.
    
    
    
    ESC r COLOR1
    
    ESC (r BC=2 DENSITY1 COLOR1
    
    Set the ink color. The first form is used on four-color
    
    printers; the second on six-color printers. DENSITY is 0 for
    
    dark inks, 1 for light. COLOR is 0=black, 1=magenta, 2=cyan,
    
    4=yellow. This command is not used on variable dot size
    
    printers in softweave mode.
    
    
    
    ESC . COMPRESS1 VSEP1 HSEP1 LINES1 WIDTH2 data...
    
    Print data. COMPRESS signifies the compression mode: 0=no
    
    compression, 1=TIFF compression (incorrectly documented as
    
    "run length encoded"), 2=TIFF compression with a special
    
    command set. VSEP depends upon resolution and printer type.
    
    At 360 DPI, it is always 10. At 720 DPI, it is normally 5.
    
    On the ESC 600, it is 40 (8 * 5). On some other printers, it
    
    varies. HSEP1 is 10 at 360 DPI and 5 at 720 or 1440 DPI (1440
    
    DPI cannot be printed in one pass; it is printed in two
    
    passes, with the dots separated in each pass by 1/720").
    
    LINES is the number of lines to be printed. It should be 1 in
    
    microweave and 360 DPI. At 720 DPI softweave, it should be
    
    the number of lines to be actually printed. WIDTH is the
    
    number of pixels to be printed in each row. Following this
    
    command, a carriage return (13 decimal, 0A hex) should be
    
    output to return the print head position to the left margin.
    
    
    
    The basic data format is a string of bytes, with data from
    
    left to right on the page. Within each byte, the highest bit
    
    is first.
    
    
    
    The TIFF compression is implemented as one count byte followed
    
    by one or more data bytes. There are two cases:
    
    
    
    1) If the count byte is 128 or less, it is followed by [count]
    
    + 1 data bytes. So if the count byte is 0, it is followed
    
    by 1 data byte; if it is 128, it is followed by 129 data
    
    bytes.
    
    
    
    2) If the count byte is greater than 128, it is followed by
    
    one byte. This byte is repeated (257 - [count]) times. So
    
    if [count] is 129, the next byte is treated as though it
    
    were repeated 128 times; if [count] is 255, it is treated
    
    as though it were repeated twice.
    
    
    
    ESC i COLOR1 COMPRESS1 BITS1 BYTES2 LINES2 data...
    
    Print data in the newer printers (that support variable dot
    
    size), and Stylus Pro models. COLOR is the color: 0=black,
    
    1=magenta, 2=cyan, 4=yellow, 17=light magenta, 18=light cyan.
    
    COMPRESS signifies the compression mode: 0=no compression,
    
    1=TIFF compression (incorrectly documented as "run length
    
    encoded"), 2=TIFF compression with a special command set.
    
    BITS is the number of bits per pixel. BYTES is the number of
    
    bytes wide for each row (ceiling(BITS * width_of_row, 8)) --
    
    note that this is different from the ESC. command above.
    
    LINES is the number of lines to be printed. This command is
    
    the only way to get variable dot size printing. In variable
    
    dot mode, the size of the dots increases as the value (1, 2,
    
    or 3) increases.
    
    
    
    ESC (D BC=4 BASE2 VERTICAL1 HORIZONTAL1
    
    Set printer horizontal and vertical spacing. It only applies
    
    to variable dot size printers in softweave mode (and possibly
    
    other high end printers). BASE is the base unit for this
    
    command; it must be 14400. VERTICAL is the distance in these
    
    units between printed rows; it should be
    
    (separation_in_nozzles * BASE / 720). HORIZONTAL is the
    
    horizontal separation between dots in a row. Depending upon
    
    the printer, this should be either (14400 / 720) or (14400 /
    
    360). The Stylus Pro 9000 manual suggests that the settings
    
    should match the chosen resolution, but that is apparently not
    
    the case (or not always the case) on other printers.
    
    
    
    ESC (R BC=8 00 R E M O T E 1
    
    Enters "remote mode". This is a special, undocumented command set
    
    that is used to set up various printer options, such as paper feed
    
    tray, and perform utility functions such as head cleaning and
    
    alignment. It does not appear that anything here is actually
    
    required to make the printer print. Our best understanding of
    
    what is in a remote command sequence is described in a separate
    
    section below.
    
    
    
    ESC 01 @EJL [sp] ID\r\n
    
    Return the printer ID. This is considered a remote mode
    
    command, although the syntax is that of a conventional
    
    command. This returns the following information:
    
    
    
    @EJL ID\r
    
    MFG:EPSON;
    
    CMD:ESCPL2,BDC;
    
    MDL:[printer model];
    
    CLS:PRINTER;
    
    DES:EPSON [printer model];
    
    \f
    
    
    
    After all data has been sent, a form feed byte should be sent.
    
    
    
    All newer Epson printers (STC 440, STP 750) require the following
    
    command to be sent at least once to enable printing at all. This
    
    command specifically takes the printer out of the Epson packet mode
    
    communication protocol (whatever that is) and enables normal data
    
    transfer. Sending it multiple times is is not harmful, so it is
    
    normally sent at the beginning of each job:
    
    
    
    ESC 01 @EJL[space]1284.4[newline]@EJL[space][space][space][space][space][newline]ESC@
    
    
    
    
    
    
    
    The proper sequence of initialization commands is:
    
    
    
    magic command
    
    ESC @
    
    remote mode if needed
    
    ESC (G
    
    ESC (U
    
    ESC (K (if appropriate)
    
    ESC (i
    
    ESC U (if needed)
    
    ESC (s (if appropriate)
    
    ESC (e
    
    ESC (C
    
    ESC (c
    
    ESC (S
    
    ESC (D (if needed)
    
    ESC (V (optional -- this can be accomplished with ESC (v)
    
    
    
    For printing, the proper sequence is:
    
    
    
    ESC (v
    
    
    
    repeat for each color:
    
    ESC ($ or ESC (\ or ESC \
    
    ESC (r or ESC r (if needed -- not used with ESC i and not needed if
    
    the color has not changed from the previous printed line)
    
    ESC . or ESC i ...data... [return] (0A hex)
    
    
    
    To terminate a page:
    
    
    
    [formfeed] (0C hex)
    
    ESC @
    
    
    
    
    
    Remote Mode Commands
    
    ====================
    
    
    
    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:
    
    
    
    ESC (R BC=8 00 R E M O T E 1
    
    
    
    Remote mode commands are then sent, and terminated with the following
    
    sequence:
    
    
    
    ESC 00 00 00
    
    
    
    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:
    
    
    
    * NC BC=2 00 00 print a nozzle check pattern
    
    
    
    * VI BC=2 00 00 on my 740, prints the following:
    
    W01286 I02382\r\n
    
    probably "version information"
    
    
    
    * AI BC=3 00 00 00 Prints a "printer ID". On one 870,
    
    prints the following:
    
    51-51-50-51-49-48\r\n
    
    The Windows driver has a text entry
    
    field where this number can be
    
    entered, but its purpose is unknown.
    
    
    
    * LD BC=0 Load 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.
    
    
    
    * CH BC=2 00 xx perform a head cleaning cycle.
    
    The heads to clean are determined
    
    by parameter xx:
    
    
    
    00 = clean all heads
    
    01 = clean black head
    
    02 = clean color heads
    
    
    
    While xx = 00 is probably supported
    
    by all printers, xx = 01 and 02
    
    may well not be.
    
    
    
    * DT 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.
    
    
    
    * DU BC=6 00 xx 00 09 00 yy Print another alignment pattern.
    
    It isn't entirely clear what xx
    
    and yy are, but it appears that
    
    xx takes on the values 1 and 2,
    
    and yy takes on the values 0 and
    
    1. This may only work on the 580
    
    and/or 480.
    
    
    
    * DA BC=4 00 xx 00 yy Set results for the first
    
    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.
    
    
    
    * DA BC=6 00 xx 00 yy 09 00 Set results for alternate
    
    alignment pattern. xx appears to
    
    be the pass, and yy appears to be
    
    the optimum pattern. This does
    
    not save to NVRAM, so when the
    
    printer is powered off, the
    
    setting will be lost.
    
    
    
    * SV BC=0 Save the current settings to NVRAM.
    
    
    
    * RS BC=1 01 Reset the printer.
    
    
    
    * IQ BC=1 01 Get ink quantity. This requires
    
    direct access to the printer
    
    port. The return looks like
    
    IQ:KKCCMMYY or IQ:KKCCMMYYccmm
    
    (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.
    
    
    
    * IR 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.
    
    
    
    * FP BC=3 00 xx yy xx=00 and yy=00 selects the
    
    printer's normal left margin
    
    (about 3mm). xx=0xb0 and yy=0xff
    
    selects zero-margin mode, where the
    
    left-most print position is shifted
    
    to a point about 0.1" to the left
    
    of the left-hand edge of the paper,
    
    allowing printing up to (and off)
    
    the left-hand edge of the paper.
    
    
    
    The commands below are partially documented in the Stylus Pro 9000
    
    manual. Much of this information is interpreted; none is tested.
    
    
    
    * SN 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):
    
    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
    
    printer's 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.
    
    
    
    * PP BC=3 00 xx yy Set Paper Path. xx=2 indicates
    
    manual feed, xx=3 is for roll
    
    paper. yy selects "paper path
    
    number".
    
    
    
    * AC 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.
    
    
    
    * DR 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.
    
    
    
    * IK 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.
    
    
    
    * PZ BC=2 00 xx 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.
    
    
    
    * EX 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.
    
    
    
    * EX 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.
    
    
    
    * EX BC=3 00 xx yy Appears to be a synonym for the
    
    SN command described above.
    
    
    
    * PH BC=2 00 xx Select Paper Thickness. Set the
    
    paper thickness 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" .6 mm, since the
    
    other case reads "less than 0.5
    
    mm"), the platen gap is set high
    
    irrespective of the SN command.
    
    
    
    * PM BC=2 00 00 Function unknown. Used on the STC
    
    3000 at least when using roll feed,
    
    and on the STP 870 in all print
    
    files analysed to date.
    
    
    
    * ST 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:
    
    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:
    
    
    
    00 Fatal error
    
    01 Interface not selected
    
    04 Paper jam
    
    05 Out of ink
    
    06 Paper out
    
    
    
    IQ is the amount of ink left, as
    
    a (decimal!) percentage expressed
    
    in hexadecimal. The values are
    
    black, cyan, magenta, and yellow
    
    (presumably 6-color printers
    
    supply light cyan and light
    
    magenta inks as additional
    
    parameters).
    
    
    
    WR, if provided, is the warning
    
    status:
    
    
    
    10 Black ink low
    
    11 Cyan
    
    12 Magenta
    
    13 Yellow
    
    (again, presumably 14 and 15 are
    
    light cyan and light magenta)
    
    
    
    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
    
    (?)
    
    
    
    INK: and MI are not documented.
    
    
    
    * SM 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.
    
    
    
    * ST BC=1 01 Reply Printer Status. The reply
    
    is formatted as
    
    
    
    @BDC PS\r\nST:xx;\f
    
    
    
    (\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.
    
    
    
    * SM BC=1 01 Reply Printer Status Rate. The reply
    
    is formatted as
    
    
    
    @BDC PS\r\nST:xx;\f
    
    
    
    (\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!
    
    
    
    * SM BC=2 00 02 Function unknown. Used on the
    
    STC 3000 at least when using roll
    
    feed.
    
    
    
    
    
    Appropriate Remote Command Sequences
    
    ====================================
    
    
    
    All of the remote commands described above are wrapped up with the usual
    
    boilerplate. The files always start with 00 00 00 and the "magic"
    
    command described above, then two ESC @s to reset the printer. The
    
    remote command sequences come next; if they print anything that is usually
    
    followed by a FF (0C hex) character to feed the page, then the file ends
    
    with another two ESC @s to get back to the ground state.
    
    
    
    An alignment sequence goes like this:
    
    
    
    1. Host uses DT to print an alignment sheet
    
    
    
    2. User eyeballs the sheet to see which is the best aligned pattern.
    
    
    
    3. Host sends a DA command indicating which pattern the user chose
    
    
    
    4. If the user said "realign", meaning he isn't done yet, go to step 1.
    
    
    
    5. We are done: host sends a SV command and exits.
    
    
    
    
    
    The sequence used (by the STC 3000, at least) to print from the roll
    
    feed is (with byte count omitted)
    
    
    
    PM 00 00
    
    SN 00 00 00
    
    EX 00 00 00 00 05 01
    
    ST 00 01
    
    SM 00 02
    
    
    
    The sequence used by the STP 870 to print on plain paper is
    
    
    
    PM 00 00
    
    IR 00 03
    
    SN 00 00 01
    
    SN 00 01 00
    
    SN 00 02 01
    
    EX 00 00 00 00 05 00
    
    FP 00 00 00
    
    
    
    and the job finishes with
    
    
    
    IR 00 02
    
    LD
    
    
    
    For different paper type settings on the STP 870, the arguments to SN
    
    vary. The arguments to the first and third SN commands are as
    
    outlined in the description of the SN command above; the arguments to
    
    the second ("platen gap") are "00 01 01" for thick papers ("matte
    
    paper - heavyweight", "photo paper" and "premium glossy photo paper")
    
    and "00 01 00" for all others.
    
    
    
    For roll-mode printing, the STP 870's sequence changes as follows.
    
    IR's arguments become "00 01" in the header, and "00 00" after the
    
    job, and EX's last argument changes from 00 to 01.
    
    
    
    For zero-margin printing on the STP 870, the arguments to FP become
    
    "00 0xb0 0xff". This moves the origin about 5.5mm to the left, to a
    
    point one tenth of an inch to the left of the left-hand edge of the
    
    paper, allowing printing right up to (and beyond) the edge of the
    
    paper. Some printers (at least the STP 870) include white absorbent
    
    pads at the left margin position and other positions (89mm and 100mm
    
    on the STP 870) to soak up ink which misses the edge of the paper.
    
    Printing off the edge of paper of a width not aligned with a pad could
    
    result in making a mess of the inside of the printer and ink getting
    
    on the reverse of the paper.
    
    
    
    ================================================================
    
    
    
    -- 
    
    Robert Krawitz   
    
    
    
    Tall Clubs International --  or 1-888-IM-TALL-2
    
    Member of the League for Programming Freedom -- mail lpf@uunet.uu.net 
    
    Project lead for Gimp Print/stp -- 
    
    
    
    "Linux doesn't dictate how I work, I dictate how Linux works."
    
    --Eric Crampton
    
    
    
    
    
    

    Back to top

    Weaving for inkjet printers

    ---------------------------

    by Charles Briscoe-Smith and Robert Krawitz

    
    
    
    The Epson Stylus Color/Photo printers don't have memory to print using
    
    all of the nozzles in the print head. For example, the Stylus Photo
    
    700/EX has 32 nozzles. At 720 dpi, with an 8" wide image, a single
    
    line requires (8 * 720 * 6 / 8) bytes, or 4320 bytes (because the
    
    Stylus Photo printers have 6 ink colors). To use 32 nozzles per color
    
    would require 138240 bytes. It's actually worse than that, though,
    
    because the nozzles are spaced 8 rows apart. Therefore, in order to
    
    store enough data to permit sending the page as a simple raster, the
    
    printer would require enough memory to store 256 rows, or 1105920
    
    bytes. Considering that the Photo EX can print 11" wide, we're
    
    looking at more like 1.5 MB. In fact, these printers are capable of
    
    1440 dpi horizontal resolution. This would require 3 MB. The
    
    printers actually have 64K-256K.
    
    
    
    With the newer (740/750 and later) printers it's even worse, since these
    
    printers support multiple dot sizes; of course, the even newer
    
    2880x720 printers don't help either.
    
    
    
    Older Epson printers had a mode called MicroWeave (tm). In this mode,
    
    the host fed the printer individual rows of dots, and the printer
    
    bundled them up and sent them to the print head in the correct order
    
    to achieve high quality. This MicroWeave mode still works in new
    
    printers, but in some cases the implementation is very minimal: the
    
    printer uses exactly one nozzle of each color (the first one). This
    
    makes printing extremely slow (more than 30 minutes for one 8.5x11"
    
    page), although the quality is extremely high with no visible banding
    
    whatsoever. It's not good for the print head, though, since no ink is
    
    flowing through the other nozzles. This leads to drying of ink and
    
    possible permanent damage to the print head.
    
    
    
    By the way, although the Epson manual says that microweave mode should be
    
    used at 720 dpi, 360 dpi continues to work in much the same way. At 360
    
    dpi, data is fed to the printer one row at a time on all Epson printers.
    
    The pattern that the printer uses to print is very prone to banding.
    
    However, 360 dpi is inherently a low quality mode; if you're using it,
    
    presumably you don't much care about quality. It is possible to do
    
    microweave at 360 DPI, with significantly improved quality.
    
    
    
    Except for the Stylus Pro printers (5000, 5500, 7000, 7500, 9000,
    
    9500, and when it's released the 10000), which can do microweave at
    
    any resolution, printers from roughly the Stylus Color 600 and later
    
    do not have the capability to do MicroWeave correctly in many cases
    
    (some printers can do MicroWeave correctly at 720 DPI). Instead, the
    
    host must arrange the output in the order that it will be sent to the
    
    print head. This is a very complex process; the jets in the print
    
    head are spaced more than one row (1/720") apart, so we can't simply
    
    send consecutive rows of dots to the printer. Instead, we have to
    
    pass e. g. the first, ninth, 17th, 25th... rows in order for them to
    
    print in the correct position on the paper. This interleaving process
    
    is called "soft" weaving.
    
    
    
    This decision was probably made to save money on memory in the
    
    printer. It certainly makes the driver code far more complicated than
    
    it would be if the printer could arrange the output. Is that a bad
    
    thing? Usually this takes far less CPU time than the dithering
    
    process, and it does allow us more control over the printing process,
    
    e. g. to reduce banding. Conceivably, we could even use this ability
    
    to map out bad jets.
    
    
    
    Interestingly, apparently the Windows (and presumably Macintosh)
    
    drivers for most or all Epson printers still list a "microweave" mode.
    
    Experiments have demonstrated that this does not in fact use the
    
    "microweave" mode of the printer. Possibly it does nothing, or it
    
    uses a different weave pattern from what the non-"microweave" mode
    
    does. This is unnecessarily confusing, at least for people who write
    
    drivers who try to explain them to people who don't.
    
    
    
    What makes this interesting is that there are many different ways of
    
    of accomplishing this goal. The naive way would be to divide the
    
    image up into groups of 256 rows (for a printer with 32 jets and a
    
    separation of 8 rows), and print all the mod8=0 rows in the first
    
    pass, mod8=1 rows in the second, and so forth. The problem with this
    
    approach is that the individual ink jets are not perfectly uniform;
    
    some emit slightly bigger or smaller drops than others. Since each
    
    group of 8 adjacent rows is printed with the same nozzle, that means
    
    that there will be distinct streaks of lighter and darker bands within
    
    the image (8 rows is 1/90", which is visible; 1/720" is not).
    
    Possibly worse is that these patterns will repeat every 256 rows.
    
    This creates banding patterns that are about 1/3" wide.
    
    
    
    So we have to do something to break up this patterning.
    
    
    
    Epson does not publish the weaving algorithms that they use in their
    
    bundled drivers. Indeed, their developer web site
    
    (http://www.ercipd.com/isv/edr_docs.htm)  does not even describe how to
    
    do this weaving at all; it says that the only way to achieve 720 dpi
    
    is to use MicroWeave. It does note (correctly) that 1440 dpi
    
    horizontal can only be achieved by the driver (i. e. in software).
    
    The manual actually makes it fairly clear how to do this (it requires
    
    two passes with horizontal head movement between passes), and it is
    
    presumably possible to do this with MicroWeave.
    
    
    
    The information about how to do this is apparently available under
    
    NDA. It's actually easy enough to reverse engineer what's inside a
    
    print file with a simple Perl script, which is supplied with the
    
    Gimp-Print distribution as tests/parse-escp2. In any event, we
    
    weren't particularly interested in the weaving patterns Epson used.
    
    There are many factors that go into choosing a good weaving pattern;
    
    we're learning them as we go along. Issues such as drying time
    
    (giving the ink a few seconds more or less to dry can have highly
    
    visible effects) affect the quality of the output.
    
    
    
    The Uniprint GhostScript driver has been able to do weaving for a long
    
    time. It uses patterns that must be specified for each choice of
    
    resolution and printer. We preferred an algorithmic approach that
    
    computes a weave pattern for any given choice of inputs. This
    
    obviously requires extensive testing; we developed a test suite
    
    specifically for this purpose.
    
    
    
    I considered a few algorithms to perform the weave. The first one I
    
    devised let me use only (jets - distance_between_jets + 1) nozzles, or
    
    25. This is OK in principle, but it's slower than using all nozzles.
    
    By playing around with it some more, I came up with an algorithm that
    
    lets me use all of the nozzles, except near the top and bottom of the
    
    page.
    
    
    
    This still produces some banding, though. Even better quality can be
    
    achieved by using multiple nozzles on the same line. How do we do
    
    this? In 1440x720 mode, we're printing two output lines at the same
    
    vertical position. However, if we want four passes, we have to
    
    effectively print each line twice. Actually doing this would increase
    
    the density, so what we do is print half the dots on each pass. This
    
    produces near-perfect output, and it's far faster than using (pseudo)
    
    "MicroWeave".
    
    
    
    Yet another complication is how to get near the top and bottom of the
    
    page. This algorithm lets us print to within one head width of the
    
    top of the page, and a bit more than one head width from the bottom.
    
    That leaves a lot of blank space. Doing the weave properly outside of
    
    this region is increasingly difficult as we get closer to the edge of
    
    the paper; in the interior region, any nozzle can print any line, but
    
    near the top and bottom edges, only some nozzles can print. We
    
    originally handled this by using the naive way mentioned above near
    
    the borders, and switching over to the high quality method in the
    
    interior. Unfortunately, this meant that the quality is quite visibly
    
    degraded near the top and bottom of the page. We have since devised
    
    better algorithms that allow printing to the extreme top and bottom of
    
    the region that can physically be printed, with only minimal loss of
    
    quality.
    
    
    
    Epson does not advertise that the printers can print at the very top
    
    of the page, although in practice most of them can. The quality is
    
    degraded to some degree, and we have observed that in some cases not
    
    all of the dots get printed. Epson may have decided that the
    
    degradation in quality is sufficient that printing in that region
    
    should not be allowed. That is a valid decision, although we have
    
    taken another approach.
    
    
    
    
    
    The initial problem is to calculate the starting position of each
    
    pass; the row number of the printer's top jet when printing that pass.
    
    Since we assume the paper cannot be reverse-fed, the print head must,
    
    for each pass, start either further down the page than the previous
    
    pass or at the same position. Each pass's start point is therefore at
    
    a non-negative offset from the previous pass's start point.
    
    
    
    Once we have a formula for the starting row of each pass, we then turn
    
    that "inside out" to get a formula for the pass number containing each
    
    row.
    
    
    
    First, let's define how our printer works. We measure vertical
    
    position on the paper in "rows"; the resolution with which the printer
    
    can position the paper vertically. The print head contains J ink
    
    jets, which are spaced S rows apart.
    
    
    
    Consider a very simple case: we want to print a page as quickly as
    
    possible, and we mostly don't care how sparse the printing is, so long
    
    as it's fairly even.
    
    
    
    It's pretty obvious how to do this. We make one pass with the print
    
    head, printing J lines of data, each line S rows after the previous
    
    one. We then advance the paper by S*J rows and print the next row.
    
    For example, if J=7 and S=4, this method can be illustrated like this:
    
    
    
    pass number
    
    | row number------->
    
    | | 111111111122222222223333333333444444444455555555556666666666
    
    | 0123456789012345678901234567890123456789012345678901234567890123456789
    
    0 *---*---*---*---*---*---*
    
    1 *---*---*---*---*---*---*
    
    2 \-----------------------/ *---*---*---*---*---*-
    
    7 jets \---/
    
    4 rows offset from one jet to the next
    
    \---------------------------/
    
    7*4=28 rows offset from one pass to the next
    
    
    
    In these examples, the vertical axis can be thought of as the time axis,
    
    with the pass number shown at the left margin, while the row number runs
    
    horizontally. A "*" shows each row printed by a pass, and a row of "-"
    
    is used to link together the rows printed by one pass of the print head.
    
    The first pass is numbered 0 and starts at row 0. Each subsequent pass
    
    p starts at row p*S*J. Each pass prints J lines, each line being S rows
    
    after the previous one. (For ease of viewing this file on a standard
    
    terminal, I'm clipping the examples at column 80.)
    
    
    
    This method covers the whole page with lines printed evenly S rows apart.
    
    However, we want to fill in all the other rows with printing to get a
    
    full-density page (we're ignoring oversampling at this stage). Where we
    
    have previously printed a single pass, we'll now print a "pass block":
    
    we print extra passes to fill in the empty rows. A naive implementation
    
    might look like this:
    
    
    
    0 *---*---*---*---*---*---*
    
    1 *---*---*---*---*---*---*
    
    2 *---*---*---*---*---*---*
    
    3 *---*---*---*---*---*---*
    
    4 *---*---*---*---*---*---*
    
    5 *---*---*---*---*---*---*
    
    6 *---*---*---*---*---*---*
    
    7 *---*---*---*---*---*---*
    
    8 *---*---*---*---*---*-
    
    9 *---*---*---*---*---*
    
    10 *---*---*---*---*---
    
    11 *---*---*---*---*--
    
    
    
    (Now you can see why this process is called "weaving"!)
    
    
    
    This simple weave pattern prints every row, but will give conspicuous
    
    banding patterns for the reasons discussed above.
    
    
    
    Let's start improving this for our simple case. We can reduce banding
    
    by making sure that any given jet never prints a row too close to
    
    another row printed by the same jet. This means we want to space the
    
    rows printed by a given jet evenly down the page. In turn, this
    
    implies we want to advance the paper by as nearly an equal amount
    
    after each pass as possible.
    
    
    
    Each pass block prints S*J lines in S passes. The first line printed
    
    in each pass block is S*J rows lower on the page than the first line
    
    printed in the previous pass block. Therefore, if we advance the
    
    paper by J rows between each pass, we can print the right number of
    
    passes in each block and advance the paper perfectly evenly.
    
    
    
    Here's what this "perfect" weave looks like:
    
    
    
    start of full weave
    
    |
    
    0 *---*---*---*---*---*---*
    
    1 *---*---*---*---*---*---*
    
    2 *---*---*---*---*---*---*
    
    3 *---*---*---*---*---*---*
    
    4 *---*---*---*---*---*---*
    
    5 *---*---*---*---*---*---*
    
    6 *---*---*---*---*---*---*
    
    7 *---*---*---*---*---*---*
    
    8 *---*---*---*---*---*-
    
    9 *---*---*---*--
    
    10 *---*---
    
    11 *
    
    
    
    You'll notice that, for the first few rows, this weave is too sparse.
    
    It is not until the row marked "start of full weave" that every
    
    subsequent row is printed. We can calculate this start position as
    
    follows:
    
    
    
    start = (S-1) * (J-1)
    
    
    
    For the moment, we will ignore this problem with the weave. We'll
    
    consider later how to fill in the missing rows.
    
    
    
    Let's look at a few more examples of perfect weaves:
    
    
    
    S=2 J=7 start=(2-1)*(7-1)=6
    
    
    
    starting row of full weave
    
    |
    
    0 *-*-*-*-*-*-*
    
    1 *-*-*-*-*-*-*
    
    2 *-*-*-*-*-*-*
    
    3 *-*-*-*-*-*-*
    
    4 *-*-*-*-*-*-*
    
    5 *-*-*-*-*-*-*
    
    6 *-*-*-*-*-*-*
    
    7 *-*-*-*-*-*-*
    
    
    
    S=7 J=2 start=6
    
    
    
    start
    
    |
    
    0 *------*
    
    1 *------*
    
    2 *------*
    
    3 *------*
    
    4 *------*
    
    5 *------*
    
    6 *------*
    
    7 *------*
    
    8 *------*
    
    9 *------*
    
    
    
    S=4 J=13 start=36
    
    
    
    start
    
    |
    
    0 *---*---*---*---*---*---*---*---*---*---*---*---*
    
    1 *---*---*---*---*---*---*---*---*---*---*---*---*
    
    2 *---*---*---*---*---*---*---*---*---*---*---*---*
    
    3 *---*---*---*---*---*---*---*---*---*--
    
    4 *---*---*---*---*---*---*-
    
    5 *---*---*---*
    
    
    
    S=13 J=4 start=36
    
    
    
    start
    
    |
    
    0 *------------*------------*------------*
    
    1 *------------*------------*------------*
    
    2 *------------*------------*------------*
    
    3 *------------*------------*------------*
    
    4 *------------*------------*------------*
    
    5 *------------*------------*------------*
    
    6 *------------*------------*------------*
    
    7 *------------*------------*------------*
    
    8 *------------*------------*------------*
    
    9 *------------*------------*------------*
    
    10 *------------*------------*-----------
    
    11 *------------*------------*-------
    
    12 *------------*------------*---
    
    13 *------------*------------
    
    14 *------------*--------
    
    15 *------------*----
    
    16 *------------*
    
    17 *---------
    
    18 *-----
    
    19 *-
    
    
    
    S=8 J=5 start=28
    
    
    
    start
    
    |
    
    0 *-------*-------*-------*-------*
    
    1 *-------*-------*-------*-------*
    
    2 *-------*-------*-------*-------*
    
    3 *-------*-------*-------*-------*
    
    4 *-------*-------*-------*-------*
    
    5 *-------*-------*-------*-------*
    
    6 *-------*-------*-------*-------*
    
    7 *-------*-------*-------*-------*
    
    8 *-------*-------*-------*-------*
    
    9 *-------*-------*-------*-------*
    
    10 *-------*-------*-------*---
    
    11 *-------*-------*------
    
    12 *-------*-------*-
    
    13 *-------*----
    
    14 *-------
    
    15 *--
    
    
    
    S=9 J=5 start=32
    
    
    
    start
    
    |
    
    0 *--------*--------*--------*--------*
    
    1 *--------*--------*--------*--------*
    
    2 *--------*--------*--------*--------*
    
    3 *--------*--------*--------*--------*
    
    4 *--------*--------*--------*--------*
    
    5 *--------*--------*--------*--------*
    
    6 *--------*--------*--------*--------*
    
    7 *--------*--------*--------*--------*
    
    8 *--------*--------*--------*--------*
    
    9 *--------*--------*--------*-----
    
    10 *--------*--------*--------*
    
    11 *--------*--------*----
    
    12 *--------*--------
    
    13 *--------*---
    
    14 *-------
    
    15 *--
    
    
    
    S=6 J=7 start=30
    
    
    
    start
    
    |
    
    0 *-----*-----*-----*-----*-----*-----*
    
    1 *-----*-----*-----*-----*-----*-----*
    
    2 *-----*-----*-----*-----*-----*-----*
    
    3 *-----*-----*-----*-----*-----*-----*
    
    4 *-----*-----*-----*-----*-----*-----*
    
    5 *-----*-----*-----*-----*-----*-----*
    
    6 *-----*-----*-----*-----*-----*-----
    
    7 *-----*-----*-----*-----*----
    
    8 *-----*-----*-----*---
    
    9 *-----*-----*--
    
    10 *-----*-
    
    11 *
    
    
    
    This perfect weave is not possible in all cases. Let's look at another
    
    example:
    
    
    
    S=6 J=4
    
    
    
    0 *-----*-----*-----*
    
    1 *-----*-----*-----*
    
    2 *-----*-----*-----*
    
    3 *-----*-----*-----*
    
    4 ^ *-^---*-----*-----*
    
    5 | ^ | *-^---*-----*-----*
    
    OUCH! ^ | ^
    
    | |
    
    
    
    Here we have a collision. Some lines printed in later passes
    
    overprint lines printed by earlier passes. We can see why by
    
    considering which row number is printed by a given jet number j
    
    (numbered from 0) of a given pass, p:
    
    
    
    row(p, j) = p*J + j*S
    
    
    
    Because J=4 and S=6 have a common factor of 2, jet 2 of pass 0 prints
    
    the same row as jet 0 of pass 3:
    
    
    
    row(0, 2) = 0*4 + 2*6 = 12
    
    row(3, 0) = 3*4 + 0*6 = 12
    
    
    
    In fact, with this particular weave pattern, jets 0 and 1 of pass p+3
    
    always overprint jets 2 and 3 of pass p. We'll represent overprinting
    
    rows by a "^" in our diagrams, and correct rows by "*":
    
    
    
    S=6 J=4
    
    
    
    0 *-----*-----*-----*
    
    1 *-----*-----*-----*
    
    2 *-----*-----*-----*
    
    3 ^-----^-----*-----*
    
    4 ^-----^-----*-----*
    
    5 ^-----^-----*-----*
    
    
    
    So what causes the perfect weave cases to be perfect, and the other cases
    
    not to be? In all the perfect cases above, S and J are relatively prime
    
    (i.e. their greatest common divisor is 1). As we mentioned above, S=6
    
    and J=4 have a common factor, which causes the overprinting. Where S
    
    and J have a GCD of 1, they have no common factor other than 1 and, as
    
    a result, no overprinting occurs. If S and J are not relatively prime,
    
    their common factor will cause overprinting.
    
    
    
    We can work out the greatest common divisor of a pair of natural numbers
    
    using Euler's algorithm:
    
    
    
    Start with the two numbers: (e.g.) 9 24
    
    Swap them if necessary so that the larger one comes first: 24 9
    
    Subtract the second number from the first: 15 9
    
    Repeat until the first number becomes smaller: 6 9
    
    
    
    Swap the numbers again, so the larger one comes first: 9 6
    
    Subtract again: 3 6
    
    
    
    Swap: 6 3
    
    Subtract: 3 3
    
    And again: 0 3
    
    When one of the numbers becomes 0, the other number is the GCD of the
    
    two numbers you started with.
    
    
    
    These repeated subtractions can be done with C's "%" operator, so we
    
    can write this in C as follows:
    
    
    
    unsigned int
    
    gcd(unsigned int x, unsigned int y)
    
    {
    
    if (y == 0)
    
    return x;
    
    while (x != 0) {
    
    if (y > x)
    
    swap (&x, &y);
    
    x %= y;
    
    }
    
    return y;
    
    }
    
    
    
    gcd(S,J) will feature quite prominently in our weaving algorithm.
    
    
    
    If 0 <= j < J, there should only be a single pair (p, j) for any given row
    
    number. If S and J are not relatively prime, this assumption breaks down.
    
    (For conciseness, let G=GCD(S,J).)
    
    
    
    S=8 J=6 G=2
    
    
    
    0 *-------*-------*-------*-------*-------*
    
    1 *-------*-------*-------*-------*-------*
    
    2 *-------*-------*-------*-------*-------*
    
    3 *-------*-------*-------*-------*-------*
    
    4 ^-------^-------^-------*-------*-------*
    
    5 ^-------^-------^-------*-------*-------*
    
    
    
    In this case, jets 0, 1 and 2 of pass p+4 collide with jets 3, 4 and 5
    
    of pass p.
    
    
    
    How can we calculate these numbers? Suppose we were to print using
    
    fewer jets, say J/G jets. The greatest common divisor of J/G and S is 1,
    
    enabling a perfect weave. But to get a perfect weave, we also have to
    
    advance the paper by a factor of G less:
    
    
    
    0 *-------*-------* - - -
    
    1 *-------*-------* - - -
    
    2 *-------*-------* - - -
    
    3 *-------*-------* - - -
    
    4 *-------*-------* - - -
    
    5 *-------*-------* - - -
    
    
    
    If we left the paper advance alone, we'd get a sparse weave; only one
    
    row can be printed every G rows:
    
    
    
    0 *-------*-------* - - -
    
    1 *-------*-------* - - -
    
    2 *-------*-------* - - -
    
    3 *-------*-------* - - -
    
    4 *-------*-------* - - -
    
    5 *-------*-------* - - -
    
    ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
    
    These rows need filling in.
    
    
    
    The rows that would have been printed by the jets we've now omitted
    
    (shown as "-") are printed by other jets on later passes.
    
    
    
    Let's analyse this. Consider how a pass p could collide with pass 0.
    
    Pass p starts at offset p*J. Pass 0 prints at rows which are multiples
    
    of S. If p*J is exactly divisible by S, a collision has occurred,
    
    unless p*J >= J*S (which will happen when we finish a pass block).
    
    
    
    So, we want to find p and q such that p*J=q*S and p is minimised.
    
    Then p is the number of rows before a collision, and q is the number
    
    of jets in pass 0 which are not involved in the collision. To do this,
    
    we find the lowest common multiple of J and S, which is L=J*S/G. L/J is
    
    the number of rows before a collision, and L/S is the number of jets in
    
    the first pass not involved in the collision.
    
    
    
    Thus, we see that the first J/G rows printed by a given pass are not
    
    overprinted by any later pass. However, the rest of the rows printed by
    
    pass p are overprinted by the first J-(J/G) jets of pass p+(S/G). We will
    
    use C to refer to S/G, the number of rows after which a collision occurs.
    
    
    
    Another example:
    
    
    
    S=6 J=9 G=3 C=S/G=2
    
    
    
    0 *-----*-----*-----*-----*-----*-----*-----*-----*
    
    1 *-----*-----*-----*-----*-----*-----*-----*-----*
    
    2 ^-----^-----^-----^-----^-----^-----*-----*-----*
    
    3 ^-----^-----^-----^-----^-----^-----*-----*-----*
    
    4 ^-----^-----^-----^-----^-----^-----*-----
    
    5 ^-----^-----^-----^-----^-----^--
    
    ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^
    
    These rows need filling in.
    
    
    
    In this case, the first J-(J/G) = 9-9/3 = 6 jets of pass p+(6/3)=p+2
    
    collide with the last 6 jets of pass p. Only one row in every G=2 rows
    
    is printed by this weave.
    
    
    
    S=9 J=6 G=3 C=3
    
    
    
    0 *--------*--------*--------*--------*--------*
    
    1 *--------*--------*--------*--------*--------*
    
    2 *--------*--------*--------*--------*--------*
    
    3 ^--------^--------^--------^--------*--------*
    
    4 ^--------^--------^--------^--------*--------*
    
    5 ^--------^--------^--------^--------*--------*
    
    
    
    Here, the first J-(J/G) = 6-6/3 = 4 jets of pass p+(9/3)=p+3 collide
    
    with the last 4 jets of pass p.
    
    
    
    Note that, in these overprinting cases, only rows divisible by G are
    
    ever printed. The other rows, those not divisible by G, are not touched
    
    by this weave.
    
    
    
    We can modify our weave pattern to avoid overprinting any rows and
    
    simultaneously fill in the missing rows. Instead of using J alone to
    
    determine the start of each pass from the previous pass, we adjust the
    
    starting position of some passes. As mentioned before, we will divide
    
    the page into pass blocks, with S passes in each block. This ensures
    
    that the first jet of the first pass in a block prints the row which
    
    the Jth jet of the first pass of the previous block would have printed,
    
    if the print head had one extra jet.
    
    
    
    Looking back at an example of a perfect weave, we can divide it into
    
    pass blocks:
    
    
    
    S=7 J=2 G=1
    
    
    
    imaginary extra jet
    
    |
    
    0 *------* * <--start of pass block 0
    
    1 *------* |
    
    2 *------* |
    
    3 *------*|
    
    4 *-----|*
    
    5 *---|--*
    
    6 *-|----*
    
    |
    
    7 *------* <--start of pass block 1
    
    8 *------*
    
    9 *------*
    
    
    
    We can now calculate the start of a given pass by reference to its pass
    
    block. The first pass of pass block b always starts at row (b*S*J).
    
    The start row of each of the other passes in the block are calculated
    
    using offsets from this row.
    
    
    
    For the example above, there are 7 passes in each pass block, and their
    
    offsets are 0, 2, 4, 6, 8, 10 and 12. The next pass block is offset
    
    S*J=14 rows from the start of the current pass block.
    
    
    
    The simplest way to modify the "perfect" weave pattern to give a correct
    
    weave in cases where G!=1 is to simply change any offsets which would
    
    result in a collision, until the collision disappears. Every printed
    
    row in the weave, as we have shown it up to now, is separated from each
    
    of its neighbouring printed rows by G blank rows. We will add an extra
    
    offset to each colliding pass in such a way that we push the pass onto
    
    these otherwise blank rows.
    
    
    
    We have seen that, unless G=1, the plain weave pattern results in each
    
    pass colliding with the pass S/G passes before. We will now subdivide
    
    our pass block into subblocks, each consisting of B=S/G passes. There are
    
    therefore G subblocks in a pass block.
    
    
    
    For each subblock, the passes in that subblock have a constant offset
    
    added to them. The offset is different for each subblock in a block.
    
    There are many ways we can choose the offsets, but the simplest is to
    
    make the offset equal to the subblock number (starting from 0).
    
    
    
    Thus, the passes in the first subblock in each pass block remain at
    
    the offsets we've already calculated from J. The passes in the second
    
    subblock each have 1 added to their offset, the passes in the third
    
    subblock have 2 added, and so on. Thus, the offset of pass p (numbered
    
    relative to the start of its pass block) is p*J + floor(p/B).
    
    
    
    This gives us a weave pattern looking like this:
    
    
    
    S=6 J=9 G=3 B=2
    
    
    
    0 *-----*-----*-----*-----*-----*-----*-----*-----*
    
    1 ^ *-----*-----*-----*-----*-----*-----*-----*-----*
    
    2 | +-> *-----*-----*-----*-----*-----*-----*-----*-----*
    
    3 | | *-----*-----*-----*-----*-----*-----*-----*-----*
    
    4 | | +-> *-----*-----*-----*-----*-----*-----*---
    
    5 | | | *-----*-----*-----*-----*-----*
    
    6 | | | +-> *-----*-----*-----*-----
    
    7 | | | | *-----*-----*--
    
    | | | start of pass block 1
    
    | | | (offset returns to 0)
    
    | | start of subblock 2 (offset 2 rows)
    
    | start of subblock 1 (following passes offset by 1 row)
    
    start of passblock 0, subblock 0 (pass start calculated as p*J)
    
    
    
    S=9 J=6 G=3 B=3
    
    
    
    0 *--------*--------*--------*--------*--------*
    
    1 *--------*--------*--------*--------*--------*
    
    2 *--------*--------*--------*--------*--------*
    
    3 *--------*--------*--------*--------*--------*
    
    4 *--------*--------*--------*--------*--------*
    
    5 *--------*--------*--------*--------*--------*
    
    6 *--------*--------*--------*--------*---
    
    7 *--------*--------*--------*------
    
    8 *--------*--------*--------*
    
    9 *--------*--------*-----
    
    10 \---/ *--------*--------
    
    11 small offset *--------*--
    
    12 *----
    
    
    
    This method of choosing offsets for subblocks can result in an occasional
    
    small offset (as shown above) between one pass and the next, particularly
    
    when G is large compared to J. For example:
    
    
    
    S=8 J=4 G=4 B=2
    
    
    
    0 *-------*-------*-------*
    
    1 *-------*-------*-------*
    
    2 *-------*-------*-------*
    
    3 *-------*-------*-------*
    
    4 *-------*-------*-------*
    
    5 *-------*-------*-------*
    
    6 *-------*-------*-------*
    
    7 *-------*-------*-------*
    
    8 *-------*-------*-------*
    
    9 \/ *-------*-------*-------*
    
    very small offset!
    
    
    
    We can plot the offset against the subblock number as follows:
    
    
    
    subblock number
    
    | offset
    
    | |
    
    | 0123
    
    0 *
    
    1 *
    
    2 *
    
    3 *
    
    0 *
    
    1 *
    
    2 *
    
    3 *
    
    
    
    The discontinuity in this plot results in the small offset between passes.
    
    
    
    As we said at the beginning, we want the offsets from each pass to the
    
    next to be as similar as possible. We can fix this by calculating the
    
    offset for a given subblock b as follows:
    
    
    
    offset(b) = 2*b , if b < ceiling(G/2)
    
    = 2*(G-b)-1 , otherwise
    
    
    
    We can visualise this as follows, for G=10:
    
    
    
    0123456789
    
    0 *
    
    1 *
    
    2 *
    
    3 *
    
    4 *
    
    5 *
    
    6 *
    
    7 *
    
    8 *
    
    9 *
    
    0 *
    
    1 *
    
    2 *
    
    3 *
    
    4 *
    
    5 *
    
    6 *
    
    7 *
    
    8 *
    
    9 *
    
    
    
    And for G=11:
    
    
    
    1
    
    01234567890
    
    0 *
    
    1 *
    
    2 *
    
    3 *
    
    4 *
    
    5 *
    
    6 *
    
    7 *
    
    8 *
    
    9 *
    
    10 *
    
    0 *
    
    1 *
    
    2 *
    
    3 *
    
    4 *
    
    5 *
    
    6 *
    
    7 *
    
    8 *
    
    9 *
    
    10 *
    
    
    
    This gives a weave looking like this:
    
    
    
    S=12 J=6 G=6 B=2
    
    
    
    0 *-----------*-----------*-----------*-----------*-----------*
    
    1 *-----------*-----------*-----------*-----------*-----------*
    
    2 *-----------*-----------*-----------*-----------*-----------*
    
    3 *-----------*-----------*-----------*-----------*---------
    
    4 *-----------*-----------*-----------*-----------*-
    
    5 *-----------*-----------*-----------*-------
    
    6 *-----------*-----------*-----------*
    
    7 *-----------*-----------*------
    
    8 *-----------*-----------*--
    
    9 *-----------*--------
    
    10 *-----------*----
    
    11 *----------
    
    12 *-----
    
    
    
    This method ensures that the offset between passes is always in the range
    
    [J-2,J+2].
    
    
    
    (This might seem odd, but it occurs to me that a good weave pattern might
    
    also make a good score for bell ringers. When church bells are rung,
    
    a list of "changes" are used. For example, if 8 bells are being used,
    
    they will, at first, be rung in order: 12345678. If the first change is
    
    for bells 5 and 6, the bells will then be rung in the order 12346578.
    
    If the second change is 1 and 2, the next notes are 21346578. After a
    
    long list of changes, the order the bells are rung in can become
    
    quite complex.
    
    
    
    For a group of bell-ringers to change the order of the notes, they
    
    must each either delay their bell's next ring, hasten it, or keep it
    
    the same as the time it takes to ring all the bells once. The length
    
    of time between each ring of a given bell can only be changed a little
    
    each time, though; with an ink-jet weave pattern, we want the same to
    
    apply to the distance between passes.)
    
    
    
    Finally, knowing the number of jets J and their separation S, we can
    
    calculate the starting row of any given pass p as follows:
    
    
    
    passesperblock = S
    
    passblock = floor(p / passesperblock)
    
    offsetinpassblock = p - passblock * passesperblock
    
    subblocksperblock = gcd(S, J)
    
    passespersubblock = S / subblocksperblock
    
    subpassblock = floor(offsetinpassblock / passespersubblock)
    
    if subpassblock < ceiling(subblocksperblock/2)
    
    subblockoffset = 2*subpassblock
    
    else
    
    subblockoffset = 2*(subblocksperblock-subpassblock)-1
    
    startingrow = passblock * S * J + offsetinpassblock * J + subblockoffset
    
    
    
    We can simplify this down to the following:
    
    
    
    subblocksperblock = gcd(S, J)
    
    subpassblock = floor((p % S) * subblocksperblock / S)
    
    if subpassblock * 2 < subblocksperblock
    
    subblockoffset = 2*subpassblock
    
    else
    
    subblockoffset = 2*(subblocksperblock-subpassblock)-1
    
    startingrow = p * J + subblockoffset
    
    
    
    So the row number of jet j of pass p is
    
    
    
    subblocksperblock = gcd(S, J)
    
    
    
    subblockoffset(p)
    
    = 2*subpassblock , if subpassblock * 2 < subblocksperblock
    
    = 2*(subblocksperblock-subpassblock)-1 , otherwise
    
    where
    
    subpassblock = floor((p % S) * subblocksperblock / S)
    
    
    
    row(j, p) = p * J + subblockoffset(p) + j * S
    
    
    
    Together with the inequality 0 <= j < J, we can use this definition
    
    in reverse to calculate the pass number containing a given row, r.
    
    Working out the inverse definition involves a little guesswork, but one
    
    possible result is as follows. Given a row, r, which is known to be
    
    the first row of a pass, we can calculate the pass number as follows:
    
    
    
    subblocksperblock = gcd(S, J)
    
    subblockoffset = r % subblocksperblock
    
    pass = (r - subblockoffset) / J
    
    
    
    If G==1, we can determine the pass number with this algorithm:
    
    
    
    offset = r % J
    
    pass = (r - offset) / J
    
    while (offset % S != 0)
    
    {
    
    pass--
    
    offset += J
    
    }
    
    jet = offset / S
    
    
    
    Generalising, we come up with this algorithm. Given r, S and J:
    
    
    
    G = gcd(S, J)
    
    passespersubblock = S/G
    
    subblockoffset = r % G
    
    subpassblock = subblockoffset / 2 , if subblockoffset % 2 == 0
    
    = G - (subblockoffset+1)/2 , otherwise
    
    baserow = r - subblockoffset - (subpassblock * passespersubblock * J)
    
    offset = baserow % J
    
    pass = (baserow - offset) / J
    
    while (offset % S != 0)
    
    {
    
    offset += J
    
    pass -= 1
    
    }
    
    subblockretreat = floor(pass / passespersubblock) % G
    
    pass -= subblockretreat * passespersubblock
    
    pass += subpassblock * passespersubblock
    
    jet = (r - subblockoffset - pass * J) / S
    
    
    
    Let's look at some examples of imperfect but correct weave patterns:
    
    
    
    S=6 J=4 gcd=2
    
    passesperblock=S=6
    
    passespersubblock=S/G=6/2=3
    
    
    
    0 *-----*-----*-----*
    
    1 *-----*-----*-----*
    
    2 *-----*-----*-----*
    
    3 *-----*-----*-----*
    
    4 *-----*-----*-----*
    
    5 *-----*-----*-----*
    
    6 *-----*-----*-----*
    
    7 *-----*-----*-----*
    
    8 *-----*-----*-----*
    
    9 *-----*-----*-----*
    
    10 *-----*-----*-----*
    
    11 *-----*-----*-----*
    
    12 *-----*-----*-----*
    
    13 *-----*-----*-----*
    
    14 *-----*-----*-----*
    
    15 *-----*-----*----
    
    16 *-----*-----*
    
    17 *-----*--
    
    18 *-----
    
    19 *-
    
    
    
    S=8 J=6 G=2
    
    passesperblock=S=8
    
    passespersubblock=S/G=8/2=4
    
    
    
    0 *-------*-------*-------*-------*-------*
    
    1 *-------*-------*-------*-------*-------*
    
    2 *-------*-------*-------*-------*-------*
    
    3 *-------*-------*-------*-------*-------*
    
    4 *-------*-------*-------*-------*-------*
    
    5 *-------*-------*-------*-------*-------*
    
    6 *-------*-------*-------*-------*-------*
    
    7 *-------*-------*-------*-------*--
    
    8 *-------*-------*-------*-----
    
    9 *-------*-------*-------
    
    10 *-------*-------*-
    
    11 *-------*---
    
    12 *----
    
    
    
    S=6 J=12 G=6
    
    passesperblock=S=6
    
    passespersubblock=S/G=6/6=1
    
    
    
    0 *-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*
    
    1 *-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*---
    
    2 *-----*-----*-----*-----*-----*-----*-----*-----*-
    
    3 *-----*-----*-----*-----*-----*-----*
    
    4 *-----*-----*-----*-----*--
    
    5 *-----*-----*----
    
    6 *-----
    
    
    
    We have now solved the basic weaving problem. There are two further
    
    refinements we need to consider: oversampling, and filling in the
    
    missing rows at the start of the weave.
    
    
    
    Oversampling
    
    ------------
    
    
    
    By oversampling, we mean printing on the same row more than once.
    
    There are two reasons for oversampling: to increase the horizontal
    
    resolution of the printout and to reduce banding.
    
    
    
    Oversampling to increase horizontal resolution is necessary because,
    
    although the printer might be able to position an ink drop to, for
    
    example, 1/1440" horizontally, it may not be able to lay down two such
    
    drops 1/1440" apart. If it can print two drops 1/720" apart, 2x
    
    oversampling will be necessary to get a 1/1440" horizontal resolution.
    
    If it can only print two drops 1/360" apart, 4x oversampling will be
    
    necessary for a 1/1440" horizontal resolution. The printer enforces
    
    this "drop spacing" by only accepting raster passes with a horizontal
    
    resolution matching the spacing with which it can print dots, so we
    
    must print passes at different horizontal positions if we are to
    
    obtain a higher horizontal resolution. (Another reason it does this
    
    may be to reduce the amount of memory needed in the printer.)
    
    
    
    Oversampling can also be done to decrease the banding apparent in an
    
    image. By splitting a row into two or more sets of dots ("lines") and
    
    printing each line on the same row, but with a different nozzle for
    
    each line, we can get a smoother print.
    
    
    
    To quantify these two kinds of oversampling, we'll introduce two new
    
    constants: H shows how many different horizontal offsets we want to
    
    print at (the "horizontal oversampling") while O shows how many times
    
    we want to print each row, over and above the number of times
    
    necessary for horizontal oversampling (the "extra oversampling").
    
    
    
    It is necessary for all the lines printed by a given pass to have the
    
    same horizontal offset, but there need not be any relation between
    
    them in terms of extra oversampling. For the moment, however, we will
    
    treat all oversampling as potentially requiring this alignment; all
    
    lines in one pass must be derived from the original row data in the
    
    same way. Thus, we'll assume O=1 for now.
    
    
    
    So, how do we do this oversampling? In fact, it can be done easily:
    
    advance the paper by a factor of H less between each pass. We'll
    
    define a new variable, A, to show how much we advance the paper
    
    between passes. Previously, we'd have defined A=J; we now let A=J/H.
    
    This also affects our pass blocks. Printing one pass block used to
    
    involve advancing the paper S*J rows; it now advances the paper S*J/H
    
    rows. We therefore name a group of H pass blocks a "band". Printing
    
    one band involves advancing the paper S*J rows, as a pass block did
    
    before.
    
    
    
    To keep our weave pattern working correctly, so that overprinting does
    
    not occur within a pass block, we also have to redefine G as GCD(S,A).
    
    Here's an example of an oversampled weave pattern:
    
    
    
    S=4 J=10 H=2 A=J/H=10/2=5 G=GCD(4,5)=1
    
    passesperblock=S=4
    
    passespersubblock=S/G=4/1=4
    
    
    
    0 *---*---*---*---*---*---*---*---*---*
    
    1 *---*---*---*---*---*---*---*---*---*
    
    2 *---*---*---*---*---*---*---*---*---*
    
    3 *---*---*---*---*---*---*---*---*---*
    
    4 *---*---*---*---*---*---*---*---*---*
    
    5 *---*---*---*---*---*---*---*---*---*
    
    6 *---*---*---*---*---*---*---*---*---*
    
    7 *---*---*---*---*---*---*---*---*---*
    
    8 *---*---*---*---*---*---*---*---*---*
    
    9 *---*---*---*---*---*---*---*---*
    
    10 *---*---*---*---*---*---*---
    
    11 *---*---*---*---*---*--
    
    12 *---*---*---*---*-
    
    13 *---*---*---*
    
    14 *---*---
    
    15 *--
    
    
    
    Now we have to determine which line is printed by each jet on each
    
    pass. If we number each line generated as we split up a row, we can
    
    use these numbers. We'll number the lines in our diagram by replacing
    
    the "*"s with integers in the range [0..H-1].
    
    
    
    Overprinting occurs once per pass block, so we can simply print pass
    
    block 0 with line 0, pass block 1 with line 1, pass block 2 with line
    
    2, etc, wrapping to 0 when we've run out of lines.
    
    
    
    0 0---0---0---0---0---0---0---0---0---0
    
    1 0---0---0---0---0---0---0---0---0---0
    
    2 0---0---0---0---0---0---0---0---0---0
    
    3 0---0---0---0---0---0---0---0---0---0
    
    4 1---1---1---1---1---1---1---1---1---1
    
    5 1---1---1---1---1---1---1---1---1---1
    
    6 1---1---1---1---1---1---1---1---1---1
    
    7 1---1---1---1---1---1---1---1---1---1
    
    8 0---0---0---0---0---0---0---0---0---0
    
    9 0---0---0---0---0---0---0---0---0
    
    10 0---0---0---0---0---0---0---
    
    11 0---0---0---0---0---0--
    
    12 1---1---1---1---1-
    
    13 1---1---1---1
    
    14 1---1---
    
    15 1--
    
    
    
    S=4 J=12 H=2 A=J/H=12/2=6 G=GCD(4,6)=2
    
    passesperblock=S=4
    
    passespersubblock=S/G=4/2=2
    
    
    
    0 0---0---0---0---0---0---0---0---0---0---0---0
    
    1 0---0---0---0---0---0---0---0---0---0---0---0
    
    2 0---0---0---0---0---0---0---0---0---0---0---0
    
    3 0---0---0---0---0---0---0---0---0---0---0---0
    
    4 1---1---1---1---1---1---1---1---1---1---1---1
    
    5 1---1---1---1---1---1---1---1---1---1---1---1
    
    6 1---1---1---1---1---1---1---1---1---1---1
    
    7 1---1---1---1---1---1---1---1---1--
    
    8 0---0---0---0---0---0---0---0-
    
    9 0---0---0---0---0---0---
    
    10 0---0---0---0---0
    
    11 0---0---0--
    
    12 1---1-
    
    
    
    But what do we do if J is not an exact multiple of H? This is a
    
    difficult problem, which I struggled with for quite a few days before
    
    giving in and taking the easy (but less elegant) way out. The easy
    
    solution is to round J/H down, then add on the accumulated error at
    
    the end of each band.
    
    
    
    S=4 J=11 H=2 A=floor(J/H)=floor(11/2)=5 G=GCD(4,5)
    
    passesperblock=S=4
    
    passespersubblock=S/G=4/1=4
    
    
    
    Band 0:
    
    0 0---0---0---0---0---0---0---0---0---0---0
    
    1 0---0---0---0---0---0---0---0---0---0---0
    
    2 0---0---0---0---0---0---0---0---0---0---0
    
    3 0---0---0---0---0---0---0---0---0---0---0
    
    4 1---1---1---1---1---1---1---1---1---1---1
    
    5 1---1---1---1---1---1---1---1---1---1---1
    
    6 1---1---1---1---1---1---1---1---1---1---1
    
    7 1---1---1---1---1---1---1---1---1---1---
    
    
    
    Band 1:
    
    8 | 0---0---0---0---0---0---0---0---0-
    
    9 \-----------------------------------------/ 0---0---0---0---0---0---0---0
    
    10 S*J rows 0---0---0---0---0---0---
    
    11 0---0---0---0---0--
    
    12 1---1---1---1-
    
    13 1---1---1
    
    14 1---
    
    
    
    We can calculate the starting row and subpass number of a given pass
    
    in this scheme as follows:
    
    
    
    A = floor(J / H)
    
    subblocksperblock = gcd(S, A)
    
    subpassblock = floor((p % S) * subblocksperblock / S)
    
    if subpassblock * 2 < subblocksperblock
    
    subblockoffset = 2*subpassblock
    
    else
    
    subblockoffset = 2*(subblocksperblock-subpassblock)-1
    
    band = floor(P / (S * H))
    
    passinband = P % (S * H)
    
    startingrow = band * S * J + passinband * A + subblockoffset
    
    subpass = passinband / S
    
    
    
    So the row number of jet j of pass p is
    
    
    
    A = floor(J / H)
    
    subblocksperblock = gcd(S, A)
    
    
    
    subblockoffset(p)
    
    = 2*subpassblock , if subpassblock * 2 < subblocksperblock
    
    = 2*(subblocksperblock-subpassblock)-1 , otherwise
    
    where
    
    subpassblock = floor((p % S) * subblocksperblock / S)
    
    
    
    band(p) = floor(p / (S * H))
    
    passinband(p) = p % (S * H)
    
    
    
    row(j, p) = band(p) * S * J + passinband(p) * A + subblockoffset(p) + j * S
    
    row(j, p) = p * J + subblockoffset(p) + j * S
    
    
    
    --- To be continued... ---
    
    ================================================================
    
    
    
    -- 
    
    Robert Krawitz   
    
    
    
    

    What is New on Site


    
    June 2nd 2001 -
    
    		Updated Epson printer table
    
    
    
    June 6th 2001 -
    
    
    
    		updated paper table with Epson Semi Gloss and Generations user observation
    
    
    
    June 9th 2001 - 
    
    
    
    		updated Epson printer table, updated scanner section, updated titles,
    
    		changed link colors, added 1160 self test instructions.
    
    
    
    June 10th 2001 -
    
    
    
    		updated Epson printer table, updated troubleshooting on clogs, added archive
    
    		link for Tony Sleep Filmscanners list, added link to inkjetart for TIFF
    
    		version of PhotoShop image, added head alignment in banding issues
    
    
    
    July 1st 2001 - 
    
    		Added picoliter drop size to the printers information
    
    
    
    July 7th 2001 - 
    
    		Added link to Inkjet Mall Clogging proceedures
    
    
    
    July 15th 2001 -
    
    		fixed broken link to www.inksupply.com
    
    
    
    July 20th 2001 -
    
    		corrected information on Epson Printers
    
    
    
    July 21st 2001 -
    
    		Updated ESC/P technical documentation from gimp-print author, added
    
    		weaving techinical discussion from gimp-print authors, added
    
    		nozzle technical details from gimp-print authors.  Added links to B & W Section
    
    		added CFS/CIS Section, changed section headings to be similar
    
    
    
    July 22nd 2001 -
    
    		added "Triple Alignment" to banding solutions
    
    
    
    July 24th 2001 - 
    
    		fixed bulk inks link.  Added reviews section, placed two reviews there.
    
    
    
    July 29th 2001 -
    
    		added additional links to quadtone/B&W Section, added We-Ink ultraflow to Hulk Inks
    
    		added XG dilution for 1160 to troubleshooting.
    
    
    
    August 3rd 2001 -
    
    		added colorlife paper part numbers
    
    August 10th 2001 -
    
    		removed www.99th.com, they have stopped online sales
    
    August 13th 2001 -
    
    		added Jim Wingo's transparancy suggestions (like overhead)
    
    August 18th 2001 -
    
    		added suggested settings for papers section, colorlife first
    
    August 19th 2001 -
    
    		removed egroups subscription information, added lever to banding
    
    		possibilities, added working space section.  Corrected some grammer.
    
    August 20th 2001 -
    
    		added additional slider settings
    
    August 22nd 2001 -
    
    		added additional information to other settings before sliders
    
    August 24th 2001-
    
    		added link to Dan Margulis articles
    
    September 2nd 2001-
    
    		added drying inks answer to troubleshooting, cleaned up html code for table(s),
    
    		added 3000 random black lines fix
    
    September 3rd 2001-
    
    		added Lumijet and Lyson inks link
    
    September 8th 2001-
    
    		added C80 to printer list
    
    September 22nd 2001-
    
    		added C60,C40UX to printer list
    
    November 19th 2001-
    
    		added Epson9000 mailing list and mailing list section
    
    December 28th 2001-
    
    		updated meta tags to include archive
    
    January 05th 2002-
    
    		modified disclaimer, added new paper supplier link.
    
    January 11th 2002-
    
    		added new models to printer models section and their nozzles details.
    
    February 03rd, 2002-
    
    		added spinics to the mailing list section, added PRN file printing to troubleshooting.
    
    		Further Banner printing details.
    
    February 4th, 2002-
    
    		corrected link error on Bruce Fraser PCM/Space print explanation
    
    February 17th, 2002-
    
    		added link for modifying printer profiles in photoshop
    
    August 15th, 2002-
    
    		added links for two yahoo groups based epson mailing lists, added 2200 printer
    
    July 17th, 2003
    
    		added 900 and 960 nozzle information, fixed tag error on reviews link
    
    July 18th, 2003
    
    		added new manual site, but site appears down today, check latter
    
    July 20th, 2003
    
    		modified cleaning section on forcing air through heads, fixed spelling error same.
    
    
    
    

    Back to top

    SUGGESTIONS


    Please feel free to contact me at the following address:
    E-mail:arwomack01@att.net

    Disclaimer and Legal Notice

    
    This website is compilation of the best efforts from hundreds of Epson printer users.  All information here is
    
    believed to be reliable and safe, however, Neither I nor the authors of the information, accept any responsibility
    
    for relying on this information and the results of the use or mis-use of this information.  Errors should be
    
    brought to my attention and they will be fixed quickly after verification.
    
    

    Google


    Accesses: