Posiflex PP7000II usb printer adapter reverse engineering
posts hardware Posiflex PP7000II reverse engineering FTDI FT232BMThis is useful for those who is seeking a way to interface directly to a Posiflex PP7000II, with a micro controller. This was done by looking at the pcb board of the usb printer adapter for the Posiflex PP7000II printer. Read this if you have a similar printer, and you are hoping to interface to it via say an arduino, or a PIC, or AVR, or even a raspberry pi.
On the PCB board, the main component that does the serial to usb conversion is the "FTDI FT232BM 518-1" chip. I previously tried to get the adapter to work normally, but however the driver for the printer was too old, and the manufacture no longer supplies the driver for it. This would usually mean that this printer would go to the landfill, but aside from the driver issue, it was a perfectly good working printer (Which is quite a shame that manufactures would create products that they would eventually render as obsolete, forcing it into the landfill. I'm looking at you ink jet manufactures).
Anyway straight to business. Here is the results by tracing the pinouts from the FT232BM converter ICs to the header pins that connects to the printer.
GND = 0V
VCC = 5V
TxD = Printer Transmit Pin
RxD = Printer Recieve Pin
DSR = Data Set Ready
RTS = Ready TO Send
RST = RESET ( i think...)
{ Pins from printer facing upwards }
| GND | GND | GND | VCC | VCC |
| RST# | DSR# | RTS# | TxD | RxD |
`````
```
GND = 0V
VCC = 5V
TxD = Adapter Transmit Pin
RxD = Adapter Recieve Pin
{ Pins from adapter to slot into printer adapter port}
| GND | GND | GND | VCC | VCC |
| RST# | DTR# | CTS# | RxD | TxD |
```
```
DTR - Data Terminal Ready
DSR - Data Set Ready
RTS - Request To Send
CTS - Clear To Send
RTS --> CTS
DTR --> DSR
```
## Raw Reverse Engineering log:
```
Interface is a serial 5V pinout, which is shown in the back already.
Currently using an FTDI chip to make it work. Via Hercules SETUP utility by HW-group.com
Serial setup as 19200 baud, 8 bits, no parity, with RTS/CTS handshake, at Mode Free.
Suspected to accept ESC / POS commands
e.g.
Print text:
0x1B , "@Hello World" :- Prints Hello World, auto wordwrap
0x1B , "@Hello World", 0x0A :- Gets a "Hello World" text printed in the thermal paper and then increment paper.
0x1B , "-@Hello World", 0x0A :- Gets an UNDERLINED "Hello World" text printed on next line feed.
0x1D, B, 0x1B, "Black or White", 0x0A :- Creates a black and white print of "Black or White"
FEED paper:
0x0A :- Moves the thermal paper up once.
Beep:
0x1B, o :- Beeps a sound using the internal speaker in printer
Cut Paper:
0x1D, V, 0 :- Auto feeds 1 inch and then, Full Cut (Reverts to partial cut if full cut cannot be done)
0x1D, V, 1 :- Auto feeds 1 inch then, Partial cut
----------
0x1B :- Hex ASCII code for Escape command
0x0A :- Hex ASCII code for Line Feed
0x1D :- Hex ASCII code for GS control character (Group Separator)
@ :- ASCII command char for printing a line of text
=-----
http://support.epostraders.co.uk/support-files/documents/21/XRx-PP7000-II-PP7000IIU_Technical_Information.pdf
http://printarduino.blogspot.com.au/2010/02/arduino-and-thermal-printers.html
http://content.epson.de/fileadmin/content/files/RSD/downloads/escpos.pdf pg 6
http://support.epson.ru/products/manuals/000350/part1.pdf
http://nicholas.piasecki.name/blog/2009/12/sending-a-bit-image-to-an-epson-tm-t88iii-receipt-printer-using-c-and-escpos/
-------------
On installing an ESC/POS driver for this serial printer
http://www.kbytes.co.uk/Articles.asp?articleid=58 - installing generic drivers
Trying out EPSOM> EPSOM ESC/P Standard 10 V4 Class driver
-------
```