The Raspberry Pi has no IEEE 1284 connectors. In order to proxy bi-directional parallel communications, one needs a type A (DB-25 25 pi) connector for the host connection and a type B (Centronics aka "Micro Ribbon") 36-pin connector for the printer or device connection. That is the case for standard IEEE 1284-I cables which are common for e.g. thermal printers.
We rely on the retro-printer module to extend the pi with a Centronics connector over GPIO. That way, the pi is presented as an LPT printer to the host side, e.g. a POS system.
We forward the data to the actual printer using a SBT-UPPC USB to Printer Cable. The intercepted data is simultaneously extracted via ZMQ and can be further processed by a client of your choice (see nodejs-client example).
Although our approach needs some special hardware to work, we call this a software approach because the data on the host <-> printer connection is forwarded using the pi's CPU. Generally, we strive for a pure hardware solution which omits the pi's hardware completely to forward the data, but we could not find any vendor which provides such a solution. Pure hardware-based solutions exist for other interfaces in the ProxySuite though.
Variant | Status |
---|---|
Software | ⚙️ |
Hardware | ❓ |
Method | Command |
---|---|
curl | bash -c "$(curl -fsSL https://raw.githubusercontent.com/nesto-software/LPTProxy/master/scripts/install-from-release.sh)" |
wget | bash -c "$(wget -O- https://raw.githubusercontent.com/nesto-software/LPTProxy/master/scripts/install-from-release.sh)" |
lptproxy
Note: Currently the application only writes the incoming data into files in /home/pi/raw/.
For active development look into the initial implementation milestone.
- Rich Mellor
- Martin Löper
<[email protected]>