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.
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.
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!.
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);
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.
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.
Page last edited March 08, 2024
Text editor powered by tinymce.