How to fix an Epson R2880 Printer with Flashing Paper and Ink Lights

I recently got a used Epson R2880 printer and immediately ran into trouble when I first tried to power it on. It would run through a bit of initialization then it would stop and flash both the paper and ink light simultaneously. It would not function at all and in the driver panel it just had some “general error” type of unhelpful message. Epson says this error is caused by a printer head malfunction:

power power off
paper paper and ink ink flashing fast

The print head is obstructed by paper or another foreign material. Turn off the printer, remove any obstructions, and turn it back on. If the error persists, contact Epson.

Except in my case there was no obstruction. I noticed that the printer was making a loud “whurr” or grinding sound right before it would get the error that just didn’t sound right. On the left side inside the printer there is a gear towards the bottom and I could see it move when it made that that sound so apparently the error occurred as the printer tried to test the paper feed mechanism. Upon closer inspection I noticed that there is a plastic piece that locates the feed rod and it had popped out. What this did is allow the gear to move around as the printer tried to turn it, causing the gear to slip. The printer was recognizing that it could not feed paper and stopping with the above error. So, nothing to do with the print head and everything to do with the feed mechanism.

WARNING:  Do any of the following at your own risk. There are delicate mechanisms inside the printer that could easily be damaged and as this is an electric powered device there could be safety issues. The safest thing to do is get a professional to do the work, otherwise it is up to you to take proper safety precautions and protect your equipment. None of the following information and pictures depict any necessary safety measures or techniques.

The fix was simple. What I did it take some angled pliers and tap that piece back into the metal bracket. Sorry I don’t have any “before” pictures with the plastic piece loose but the problem is that it gets pushed out to the right and was not firmly seated.

The following shows a red arrow pointing to the plastic piece on the left side of the printer. This is after I seated it back into place.


Before positioning my pliers I first turned the plastic piece with my fingers so that the “wings” on the side were positioned so that I could put the end of the pliers against them. I then took the pliers and carefully placed them all the way back in there to the side against the metal bracket. I then took a long screwdriver and lightly tapped against the side of the pliers, causing them to push the plastic piece into place. Regular pliers would probably work as well, you just have to be careful.

WARNING: Be extraordinarily careful with bare metal tools inside the printer like this. You do not want to scratch the print head rod just above. It might be a good idea to wrap the end of your tools in electrical tape or something before attempting this.  Don’t clean any of the oil/grease off either, the printer needs that lubrication.


A few taps against the side of the pliers seated that plastic piece back in place. The printer works now! It might be hard to see in the previous picture but the gear behind the metal bracket has lost the ends of its teeth due to being stripped off. Definitely not a desirable condition for an expensive printer like this but the printer works for now. I wonder if it’s possible to buy a replacement gear. I will have to keep an eye on that piece to make sure it doesn’t pop out again.

Filesystem encryption for Android

I have compiled a static version of cryptsetup for Android that can be used to create encrypted partitions/filesystems. I actually compiled it on my phone as that was easier than cross-compiling due to cryptsetup’s numerous dependencies. It seems to work fine on my rooted HTC G2 running CyanogenMod 7.0.0. Even though it’s a static binary it still has a few runtime libc dependencies so your mileage may vary.

You must have root and be comfortable using a command prompt to use this. You’re messing with the filesystem here so be careful and use at your own risk (keep backups).

This is mostly just an interim solution for my personal needs until Google gets their act together and adds system-wide encryption to Android. In these modern times I can’t believe anyone would even design a specification for devices like this without including encryption from the very beginning. But I digress…

Performance is adequate, I get about 8 MB/s when running the CPU at 1 Ghz and using my slow class 4 SD card (the card is slightly faster than what the CPU can do at that clock). I’m not sure how much that could be improved with this hardware but it could certainly use a boost.

Check /proc/crypto to see which algorithms your kernel supports. I tested aes-plain with the stock Cyanogen kernel.

I put cryptsetup in /system/xbin so it’s in the default path.

There is a lot of information out there on how to use cryptsetup, losetup, and the other commands I’m using here. Be sure you know what you’re doing before trying anything. To create an encrypted filesystem within a file (obviously modify the paths/filenames/size/etc for your needs):

dd if=/dev/zero of=container.dat seek=100000000 bs=1 count=1
losetup /dev/block/loop5 container.dat
cryptsetup --cipher=aes-plain luksFormat /dev/block/loop5
cryptsetup luksOpen /dev/block/loop5 dmc1
mkfs.ext2 /dev/mapper/dmc1

To mount that container later:

losetup /dev/block/loop5 container.dat
cryptsetup luksOpen /dev/block/loop5 dmc1
mount /dev/mapper/dmc1 /data/local/mnt/dmc1

To unmount the encrypted container:

umount /data/local/mnt/dmc1
cryptsetup remove dmc1
losetup -d /dev/block/loop5

There may be shortcuts for some of that if you’re using a more functional version of mount that understands LUKS volumes.

cryptsetup sha1: c1192f3aa1f316ad07d2fcf7f786d8a21640ea8c

Visual Studio color scheme for Qt Creator

Close QtCreator if you have it open then save this VisualStudio.xml file in your Qt Creator styles directory. The directory is located as follows:

Linux: ~/.config/Nokia/qtcreator/styles/
Windows: %APPDATA%Nokiaqtcreatorstyles
OS X: Unknown; I haven't installed Qt Creator in OS X yet (will update)

Then in Qt Creator look under Tools->Options->Text Editor->Font & Colors and select the Color Scheme “VisualStudio”.

I will probably make adjustments to this over time as this is just my first cut. Send me any improvements.

Display IP address in bash shell prompt

I have seen some other methods but this is my technique using the relatively lightweight sed:

export PS1=`/sbin/ifconfig eth0 | sed -n '0,/^s+inet addr:([0-9]+[.][0-9]+[.][0-9]+[.][0-9]+).*$/s//1/p'`':w$ '

Or you can use whatever interface you want instead of eth0.  If left blank then it will display the first interface.

Manually add theme to Firefox without a file manager

If you have a locally downloaded theme it can be installed by dragging it into the Add-ons Themes window. Seems simple enough but if you don’t have a graphical file manager on the machine then you may not have an obvious way to drag the file.  All hope is not lost though.

Firefox’s own open-file dialog can act as a file manager allowing you to drag the file.


  1. Open the Add-ons window and select Themes at the top
  2. Open Firefox’s open-file dialog by selecting “File->Open File…” from the menu
  3. Browse to your locally downloaded theme then drag it from the Open File dialog to the Add-ons/Themes window
  4. It should install at this point
  5. Cancel/close the Open File dialog