Pot Noodle Engineering
Date: Thursday, October 23, 2014
As a part of our growing kiosk capabilities, we have been integrating with more and more hardware to help develop a fuller solution. In addition to the payment devices that were discussed in a previous blog post, we have been integrating with a receipt printer called the Zebra TTP 2030.
Receipt printers provide one of the key requirements of a transactional kiosk - the ability to issue receipts. These small pieces of thermal-coated paper provide proof of purchase, or in some cases proof of voided transactions when things don't quite go to plan.
There are hundreds of receipt printers available on the market, but we have been working with a client who requested the use of the Zebra model. We found that implementing the TTP2030 was, for the most part, relatively straight forward and required very little configuration. However, you must learn ZPL (Zebra Programming Language) to harness the full capability.
The Zebra Printer (formerly manufactured by Swecoin), presents itself automatically as a printer within the Microsoft Windows operating system. You can download specific drivers from the Zebra website, which in turn allow you to control more advanced functionality such as fine adjustment of cut lengths etc. The standard print management available in Windows offers far less adjustment, but for our solution we opted to use this as it offers the capability to use it as a standard printer via the .NET Framework. This restricts the ability to send it raw ZPL, meaning we had to create our own receipt template markup to generate nicely-formatted receipts.
In addition to printing text on paper, we also need to interrogate the printer's status at set intervals for maintenance monitoring. As the device is a part of a kiosk solution, the health of the system needs to remotely monitored to ensure all of the vitals are in check. A receipt printer such as the Zebra TTP2030 isn't like your standard laserjet/inkjet, so it uses different status codes to report device-specific information. For example, thermal receipt printers do not use ink, therefore the ink-low status reported by the Windows printer driver doesn't correlate to the actual status being reported by the Zebra. For this purpose we had to create a mapping between the reported statuses and translate them into the true statuses from the TTP2030.
Finally, you may be wondering about the relevancy of the title - what do Pot Noodles have in common with receipt printers? It turns out that two used pots, combined with a pen, provide the cheapest and quickest receipt roll holder. Despite being extremely portable and secure when sellotaped to a desk, I don't think they'll be available on the market any time soon. Let's stick to writing software!