This is how to actually only the head of thermal printer and the printer does not complete. Management of the whole printer would be much easier, just send a couple of AT commands and it starts to print the desired information. In this case, the author had to make a "font" in the firmware, to control two servo motors and warming elements on the print head.
Microcontroller that is used with the Atmel AVR Arduino bootloader-om. Warming elements are controlled with a ULN2801A Darlington transistors that are again controlled by SN74164 shift register to preserve a lot of IO pins. See the video printer in action.