The Cube - Assimilating Technology

The Cube

Epson Stylus Photo R285

For Humans only


Epson Stylus Photo R285 Print E-mail

Hi,

I recently bought a new printer, as the title of this document describes, it was a Epson Stylus Photo R285. Not a bad printer, but unfortunately not very Linux friendly. If you do use Linux, and plan to buy this printer, I would suggest that you move on and look at another model.

The main issue with this printer was the fact that it would just stop printing, and no matter what I tried, it would just not restart. I had to turn it off, and back on in order to reinitialise, and even that did not help every time (more not)

Added to this is the fact that neither cups nor guttenprint had dedicated drivers for this model, thus I had to use the generic drivers (which could be the reason for this issue)

All is not lost, as I did find a way to soft-initialise the printer using a tool called 'ttink' which is part of a package called 'mtink' 

Basically you have to install/compile mtink, but make sure you build it to include the command line tools, which builds ttink.

wget  http://www.dedmeet.com/files/mtink-1.0.16.tar.gz ./

unpack it

tar xvf  mtink-1.0.16.tar.gz

cd into the folder

cd mtink-1.0.16

Compile it

./Configure --prefix / --no-x --no-gimp  
make clean
make

Copy the compiled ttink file to /usr/bin (or any convenient execute location) and make it executable

Now you must setup the udev rules to run this file whenever the printer is connected/detected.

edit the base udev rules file.

cd /etc/udev/rules.d

vi 50-udev.rules 

look for the line with  BUS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k"

and change it to

BUS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k"  RUN+="/bin/restart_printer.sh"

and save the file.

now create the /bin/restart_printer.sh file. 

vi /bin/restart_printer.sh 

paste this into the file - my printer detects as /dev/usb/lp0, so adjust the line accordingly

#!/bin/sh
/usr/bin/ttink -r -d /dev/usb/lp0

save the file, make it executable

chmod +x /bin/restart_printer.sh

test by tailing your log file 

tail -f /var/log/messages

switch the printer off and on and look for a message like

run_program: '/bin/restart_printer.sh' returned with status 0

exit status 0 is good, anything else is an error. Look in the file, it will tell you what the problem was if it is not 0. The most obvious thing that it worked is that the printer will do an extra initialise routine after the initial startup.

you can also run the command sudo /usr/bin/ttink -r -d /dev/usb/lp0 manually in a console if the printer stops responding.

Well, thats it.

I hope this guide was helpfull.

 
 
Share on facebook