Arduino Thermal Receipt Printer Upside-down Text

Hey everyone!

I am currently struggling to find some sort of documentation that can teach me how to print upside-down text with Adafruit's Mini Thermal Receipt Printer (Mini Thermal Receipt Printer : ID 597 : $49.95 : Adafruit Industries, Unique & fun DIY electronics and kits). Does anybody have any kind of suggestion that could remedy my problem? I am desperate so any kind of assistance is appreciated.

Thank you so much!

--Ben

http://www.adafruit.com/datasheets/CSN-A2%20User%20Manual.pdf

The link above is the user manual for the specific printer I own. It says something about "upside-down mode" but I don't know how it translates to my code.

bennyscot27:
http://www.adafruit.com/datasheets/CSN-A2%20User%20Manual.pdf

The link above is the user manual for the specific printer I own. It says something about "upside-down mode" but I don't know how it translates to my code.

Would you care to tell us where upside-down printing is mentioned in the manual, or do we have to search the 70 pages for it ourselves?

And just to add to the fun, I see it's written in pigeon English. :slight_smile:

Edit: OK, so I found the relevant section of the manual and had a very quick read. I don't understand what the problem is. It's very clear how to turn upside-down printing on and off.

To turn it on, you send (ASCII):- ESC { 1
To turn it off, you send " :- ESC { 0

or, in hex, it's:-

Turn it on: 0x1B 0x7B 0x01
Turn it off: 0x1B 0x7B 0x00

See atached image.

You did not struggle much.

char upsideOn[] = { 27, 123, 1, 0};
char upsideOff[] = { 27, 123, 0, 0};
This command is enabled only when processed at the beginning of a line in standard mode.

Whandall:
You did not struggle much.

char upsideOn[] = { 27, 123, 1, 0};

char upsideOff[] = { 27, 123, 0, 0};





This command is enabled only when processed at the beginning of a line in standard mode.

I forgot the '\0'. :smiley:

Thank you! Also, I am having ridiculous issues with bitmap printing. Below is my code and an attached photo of the receipt printer output. I am in desperate need. Thanks.

#include "Adafruit_Thermal.h"
#include "Shit.h"

#include "SoftwareSerial.h"
#define TX_PIN 6 // Arduino transmit  YELLOW WIRE  labeled RX on printer
#define RX_PIN 5 // Arduino receive   GREEN WIRE   labeled TX on printer

SoftwareSerial mySerial(RX_PIN, TX_PIN); // Declare SoftwareSerial obj first
Adafruit_Thermal Thermal(&mySerial);     // Pass addr to printer constructor



// -----------------------------------------------------------------------

void setup() {

 


  mySerial.begin(19200);  // Initialize SoftwareSerial

  Thermal.begin();        // Init printer (same regardless of serial type)

  Thermal.write(27);
  Thermal.write(42);
  Thermal.write(33);
  Thermal.write(50);
  Thermal.write(1);
  Thermal.write(50);

  Thermal.write(27);
  Thermal.write(69);
  Thermal.write(1);

 
  Thermal.printBitmap(Shit_width, Shit_height, Shit_data);

}

void loop() {
}

Are you waiting long enough for the printer to initialise?
What is "shit"?

Have you tried any of the example code?

Yes I am waiting long enough. Sorry "shit" is an image converted into bitmap information for the arduino. I attached the "shit" file and the processing sketch I used to convert the image into the bitmap information.

BitMapConverter.pde (2.39 KB)

Shit.h (20.4 KB)