Posts: 1
Joined: Mon Jan 15, 2018 7:56 pm

Capturing Print Data from (Serial>>Parallel Port) - Citizen POS Printer

Mon Jan 15, 2018 8:33 pm

Okay I'll try to keep this as concise as possible. Also keep in mind I'm somewhat new to Linux but I built a little raspberry pi to run Retropie and I work in a pretty traditional sysadmin (Windows) role so I think I can pull this off. Also, if there is somewhere else this post would be more relevant please point me in the right direction and I'll move/delete/re-post over there.

Essentially I would like to automate a ticket printing process - its an industrial waste oil measurement system (of sorts) and the device outputs the data to this little Citizen printer via a Serial to Parallel port cable. The industrial device side of the cable is a female Serial port connection and the printer side is a male Parallel port connection. When I saw the connection between the devices I figured.... well it can't be that hard can it? I mean no matter what the device is that's sending it, if its sending it to a common printer we should be able to read that somehow yeah?

So the idea is, we'll insert a little raspberry pi in-between the printer and the machine. Or really.... stop printing analog, just capture the data and send it to some server or email it or literally anything else once the raspberry pi has it. The question is - is there an easy way to read this data? I know the Citizen printer supports CUPS so there's already a general driver that sends data to that printer correctly so..... just a matter of reverse engineering that somehow I'm guessing? Sorry, just spitballing here. I googled around reading data on the pi from a parallel port and it nothing really jumped off the page whereas reading from Serial port seemed more straight forward like here ... pberry-Pi/

I guess I also need help understanding the serial >> parallel connection. I sort of read through some electrical diagrams as far as how that conversion works but i didn't understand it. Should I just buy a new cable and read data from a serial connection to the raspberry pi?

Secondarily, once i have the data captured somewhere I need to store it easily and send it. What do you think is the easiest way? Is it possible to setup some sort of cellular device and have it texted or something like that? Or make sure the raspberry pi has wifi and trigger and email or something like that? I need more info from my friend on what he wants exactly but any kind of ideas or direction would be helpful on this front as well.

Thanks much!

Posts: 17
Joined: Tue Aug 09, 2016 8:49 am

Re: Capturing Print Data from (Serial>>Parallel Port) - Citizen POS Printer

Tue May 22, 2018 8:24 pm

We have been working on the Retro-Printer module over the last few years (I know...) which connects to a centronics port and captures the data -

This might help (we are expecting to have some for sale in July as they are currently at the factory).

To make things easier, we have also left space to add a serial port connection in the future - however, that will not be anytime soon.

However, the main issue we have found with POS printers is that some equipment expects a bi-directional connection (eg to check when the till drawer has been closed). This is a bit of an issue for our existing solution, and we are looking to develop a different type of HAT to cater for this, which basically will have a back to back serial port (or centronics port) but with the ability for software to monitor data being passed between the two ports and/or insert extra pages into the data stream if that is what you need to do.

Another option is a software only solution. We developed the RWAP Interceptor software which was originally to capture data being passed to a USB POS printer, but can of course be used with the correct crossed serial cable and serial-USB convertors ( input and output) for connecting a serial POS printer.

The main problem with this is that the USB-OTG port is required and that cannot be used on the Raspberry Pi, so we had to move to using either a Banana Pi or Odroid C1 / C2 to run the interceptor software.

Return to “Interfacing (DSI, CSI, I2C, etc.)”