I'm not getting it to work!

First thing to try is the power up test. You do not need an Arduino for this.

Make sure the paper is in the bay correctly, it should feed under and up so that the paper comes through the slot without bending.

For mini and tiny printers, hold down the button on the top, then plug in the printer to power. It should print out a test page. On nano printers and guts, connect power first, then tap the button.

The printer’s LED will not be on solid, it will blink once in a while, that's normal.

I'm trying the self test and it's still not working.

Make sure you have a good power supply that can deliver the required current. If you are trying to operate at 5V, your power supply must be able to maintain a constant 5V even when the current demand spikes during printing. If your printer is making an attempt to print, but then struggling, then it is likely your power supply is dipping below 5V.

If you have one available, try a higher voltage power source, but no more than 9 Volts.

I'm having difficulty getting a printout.

Make sure the paper is in the bay correctly, it should feed under and up so that the paper comes through the slot without bending.

Make sure the paper roll is not 'stuck' feeling in the bay, it should rotate easily!.

My Arduino sketch used to work, but doesn't compile now!

Some changes have been made to support a broader range of Arduino-like boards. Older code will require updating. Fortunately it's just a few lines around the global declarations and the setup() function.

Old syntax:

Adafruit_Thermal printer(RX_PIN, TX_PIN);

New syntax: declare a SoftwareSerial object and pass its address to the Adafruit_Thermal constructor, like so:

SoftwareSerial mySerial(RX_PIN, TX_PIN);

Adafruit_Thermal printer(&mySerial);

Then, in the setup() function:

mySerial.begin(19200);

printer.begin();

Some boards (e.g. Arduino Due) have multiple hardware serial ports, and the extras might be named Serial1, Serial2, etc. These can be used by passing the address of the serial device like so:

Adafruit_Thermal printer(&Serial1);

My sketch compiles, but the output is different than before.

The printer's features and behavior have changed over various firmware releases.

First, check the PRINTER_FIRMWARE value in Adafruit_Thermal.h, make sure it matches the value at the bottom of the printer test page (hold down the paper feed button when connecting power to print out a test page).

Some features just behave a little differently among releases…barcodes, line feeds, etc.…if you were previously using an older library or an older printer, you may need to tweak the code to produce the desired formatting with a current setup.

The printer is connected to a computer’s USB port but not showing up as expected.

How a USB-attached printer manifests can vary by OS, USB adapter, printer firmware version and what other devices are attached. In Linux (e.g. Raspberry Pi), you might find the printer device at /dev/serial0, /dev/usb/lp0, /dev/ttyAMA0, /dev/tty.USBserial0 or other names, and the digit(s) at the end might be different.

It’s common to snoop around in the system’s /dev directory, comparing with the USB cable disconnected and then connected, to find the printer’s device name. The lsusb command also sometimes helps.

Earlier model Tiny (USB) printers might appear by one of two different device names. Switching between them is explained toward the bottom of the “Making Connections” page. Newer units always appear in the /dev/usb subdirectory.

This guide was first published on Sep 02, 2012. It was last updated on Sep 02, 2012.

This page (Troubleshooting!) was last updated on Jul 30, 2014.

Text editor powered by tinymce.