Skip to content

An LPT proxy for rpi 4b, based on retro-printer capture code - maintained by Nesto

License

Notifications You must be signed in to change notification settings

nesto-software/LPTProxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LPT Proxy for Raspberry Pi (armhf)

.github/workflows/build-lptproxy.yml https://github.com/nesto-software/ProxySuite

Approach

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.

Development Status

VariantStatus
Software⚙️
Hardware

Install via GitHub Releases Download (binary)

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)"

Usage

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.

Contributors