You have such a useless
USB ParallelPrinter Adapter
and need a true parallel port?
With some extra components and
you get one! Almost:
No kernel hacks. No driver. Simple user-mode privilege.
Compatible from Windows 98 upto Windows 10 64 bit.
- Upto eight output lines, with output rate of about 100 kSa/s
- Much more lines and speed than for Serial-to-USB adapters
- Upto three input lines, with input rate of 1 kSa/s
- Same as for Serial-to-USB adapters
Perfect for serial microcontroller programming equipment, solves the
Such converters implement the
USB printer class
on the USB end, and a suitable parallel port for old-style printers
on the other end.
Simple, but nothing more.
As a negative side effect, such adapters keep their data port in high-impedance state
Therefore, a latch is needed for capturing the last output data byte.
- Every byte transferred over USB is sent to the parallel interface with a SROBE pulse
- Three parallel status lines are reported to the USB side:
- Handshaking ist built into the converter and is hard-wired
- Querying the IEEE1284 device ID from printer via nibble mode and forwarding to USB side
Such adapters often said to have a “bidirectional” interface.
This is only true for the
in Nibble Mode, not for the 8-bit data port.
However, forget using the IEEE1284 Negotiation for your data input!
It will definitely introduce more trouble than you ever expect.
If you really need a higher data input rate,
forget using your USB→ParallelPrinter adapter for that purpose.
For querying status lines
no extra hardware is necessary. Changing software by using my inpout32.dll is the only task.
- PaperEnd (Bit 5, Pin 12)
- Online (Bit 4, Pin 13)
- Error (Bit 3, Pin 15)
Pin numbers are for D-Sub 25, not for the 36-pin Centronics printer connector!
For the 8 Data bits you need a latch oder flipflop circuit!
Valid data only appears some microseconds around
(Edge-triggered) flipflops advance over latches that clock polarity
is out of concern.
If someone needs less bits, a smaller flipflop
IC is still suitable.
For six bits, use 74HC(T)174.
For four bits there are 74HC(T)175, '192, '193, '195 …
or CMOS 4029, 4035, 4042 …
The necessary flipflop can be powered by the parallel port.
The eight LEDs represent the outputs and have to be omitted for true application
In case of older bi-polar ICs (74LS), the IC must be powered externally.
But even for CMOS, you should consider external powering when available.
The schematic above draws power from INIT pin.
Hint: In no case, CCD picture data should be transferred via such a “solution”!
It would be incredile slow!
In such a case, a microcontroller, customized firmware, and customized DLL is necessary.
This board is an excellent starting point
with a good price.
- Telescope positioner (compensates earth rotation)
“Non-Linar” Routing or More I/O Lines
Some applications need other output or input lines, so, once building
an adapter with the flipflop IC, one can swap the lines between the two sides.
But that requires some more virtualization inside inpout32.dll,
which is currently not implemented.
More complex circuitry at the output of your USB ParallelPrinter converter
may enable more output (12) and input (5) lines but needs a very
specialized build of inpout32.dll for parallel-port virtualization.
Having a full-fledged slower parallel port would require
four standard logic ICs and some clever software control
Ask me if you need support in this case!
Parallelizing of S3
boosts speed by factor 3.
Therefore 3 kBit/s. The absolute limit for such an adapter.
More speed for synchronous-serial input
The added CMOS flipflops parallelize one serial input onto three parallel lines.
This will boost bit-serial devices by factor 3.
Sounds not much, but it's still worth to implement for some cases.
The majority of chip programmers I've seen uses BUSY for serial read data.
Therefore I choosed that pin for de-serializing.
Negative examples are there too:
[Details and thoughts are explained on German page.]
The circuitry fits into a dongle-style shell.
Keep the parallel port wires as short as possible!
In case of more distance needed, prefer extending the USB wire.
The ready-made device with a small schematic that clarifies what's inside