Back

A thermoprinter using LTP3445 thermal printing head by Seiko Epson

(2001-2003 This project allows to print the graphic images prepared on a computer using a 104 mm width thermal paper with a speed up to 50 mm/s. This is done using LTP3445 thermal printing head. Performance of a 386 based PC (single board PC) is enough for preparing of images on the fly. Thus, you can build e.g. a receipt printer for ATM using junk hardware that is I believe present in your garage :)

The project (together with this description) can be downloaded as a single zip file.

Initially the project has been designed for EPP PC parallel port, but later it has been altered to make it work over SPP.

The project consists of two parts: hardware (the circuit and firmware) and PC software for preparing and sending data into a controller.

The hardware

The following components are used: LTP3445 thermal printing head, Atmel AVR AT90S8515 microcontroller, MOSFET transistors IRF9540 or IRF7309 and glue logic. The circuit is in zip archive, or here (110 K) (a microcontroller part) and here (180 K) (overheat protection and power management).
The basic characteristics:
Power requirements: +3,3 V 0,1 A; +5 V, 0,2 A; +8 V max 3,6 A (peak value, depends on printing speed and blackness of the image. Basically, it is possible to print even from battery source).
Printing speed: up to 50 mm
Resolution: 8 points / mm

The firmware for this thermoprinter was written on free-of-charge C. In brief: a FIFO buffer approximately for two-three printed lines is organized in controller RAM. The data are transferred through LPT (controller is interrupted for this operation). Thermal head state (no paper, the mechanism is open, overheating, etc.) and number of bytes in FIFO are sent to PC side. Duration of a heating pulse depends on the measured printing head temperature to prevent image contrast changes. For a given head it is possible to adjust heat pulse width table.
Some comments on installation and compiling the project (sorry, in Russian yet) can be found in a file howto.txt. It is convenient to compile the project from inside Visual C ++ 6 IDE or from command line (assume WinAVR C is installed in default location).

In July, 2004 I have put newer source codes It could be compiled under WinAVR 20040404.

Software part

PC program part was written in Borland C 3.1. The basic sequence is to generate a bitmap file in the size (104*8) *n byte with the raster image to be printed, and to send it into the controller FIFO byte by byte over LPT parallel port. The program for monochrome *.bmp files printing can be found here. It can be used as a sample for own program or driver. It is easily debugged and everything should be clear.
A probably unclear item: it is necessary to send commands to printer, for example, change maximal printing speed, etc. (For the list of commands, see mail loop in thermo.c) They are sent in the same sequence as the printed data.
Probably, this program won't work with the latest firmware (from the moment of its creating something could change), but you can try and will see.

The project has been completed in a couple of months in the evenings.

As this project was paid it would be dishonest to distribute the release version. However, the firmware placed here is a fine working pre-release.

You can use and modify it freely as you leave a line about me in the beginning of source code. The Line can look like: "The developer of the original firmware version - D.Korobkov, dkorobkov@mail.ru"


Mailbox