Parallel port breakout boards of this ilk run about $14, complete with cable, on eBay:

The PCB has no part number and the inferred URL isn’t productive. The “driver CD” accompanying it has doc for every possible board the vendor might sell and, absent a part number, the file names aren’t helpful. An exhaustive search suggests it corresponds to the HY-JK02-M 5-axis interface board manual.doc
file.
Despite any implication to the contrary, the board does not have optoisolators between the parallel port pins and the outside world. The stepper driver bricks should, but the input signals from limit switches and suchlike connect directly to the guts of your PC.
This overview (from the manual) shows the physical pin layout (clicky for more dots) and reveals the hidden silkscreen legend:

It looks like the board I got added a spindle relay driver transistor, plus a few resistors over by the manual control connector on the right.
Notice that the fourth terminal on each axis is GND, not the positive supply required for the optoisolators on the 2M415-oid driver bricks, which means you can’t just run a section of ribbon cable from the breakout board to the brick. You’ll need a separate +5 V (or whatever) power supply wire for each brick, with a common return to the system ground for this board. Those terminals are firmly bonded to the top and bottom ground planes on the board, so there’s no practical way to re-route them.
The small switch in the upper left, just to the right of the parallel port connector, selects +5 V power from the USB port (which has no data lines) or the power connector in the lower left. The LED near the switch won’t light up until you have both the parallel port cable and the USB cable plugged in.
The doc includes a timing diagram with no numeric values. I established that it can’t keep up with a 500 kHz pulse train and seems content at 100 kHz, but that’s conjecture. Setting the timing to match whatever the stepper driver bricks prefer will probably work. The diagram suggests the setup and hold times for direction changes are whatever you use for the minimum time between step pulses.
This shows the functional labels:

The parallel port connector output pins, sorted by function:
Pin | 9 | 1 | 2 | 14 | 16 | 3 | 7 | 8 | 6 | 5 | 4 | 17 |
Function | Spindle motor |
Enabled | X step | X dir | Y step | Y dir | Z step | Z dir | A step | A dir | B step | B dir |
The parallel port connector input functions, sorted by pin:
X -Limit | Y- Limit | Z- Limit | A- Limit | Emerg Stop |
10 | 11 | 12 | 13 | 15 |
The table uses Chinese for Pin 15: 急停.
It’s not clear whether the pins on the manual control connector are inputs or outputs, nor what the three separate Enabled lines do:
P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | P12 | P13 | P14 | P15 |
B step | B dir | A dir | Z step | Y step | X step | X dir | Enabled | 5V/VDD | 5V/GND | A step | Z dir | Y dir | Enabled | Enabled |
The three white connectors in the middle drive an LED readout board that’s probably most useful as a DRO for CNC-converted manual mills using the pendant for positioning.
The small white connectors duplicate the functions of the green screw terminals. They’re probably useful in a small machine that I’m not building.
This isn’t the board I intend to use in the final setup, because I need far more I/O pins, but it’ll serve for the short term.
Did you look up the Chinese characters, or just paste them from the manual? Copying them into Google translate yields “emergency stop”.
That’s the only way I could get “emergency stop” for pin 15 in that table!
I confess to some astonishment that one can actually copy Chinese characters from a PDF, paste them into a browser, and have the whole chain from author to machine translated output actually deliver something meaningful. The audio version sounds a lot like “tsee tea” to my ears…
OK, dumb(?) question. With parallel port printers gone the way of the dodo, what’s the next generation solution for machine control? Not sure if my oldest box has a standalone parallel port board, but circa 1993, it’s not much of a solution (probably EISA bus, too).
One of these years I’d like to finish porting an old DOS telescope control (Mel Bartell’s Scope) program to Linux. The port is easier if I don’t have to use a serial link for the manual pendant. My 3 parallel port boxes range from EISA-bus 486 to P4…
Basically, you plug in something like the Mesa 5I25 or 6I25 with a 7I76 breakout board to get hardware step generation and a gazillion hardened I/O points with screw terminals. I’ll buy some of those in the near future, but for now cheap eBay boards and an ordinary parallel port suffices to get the software lashed into shape.
I just picked up a brace of off-lease Dell Optiplex PCs with Core 2 Duo CPUs and parallel ports (and 4 GB DRAM / many GB drive / onboard video) for about $200 apiece, which have good real time latency numbers and enough horsepower for my simple needs. Put in a techbargains.com alert for “dell financial services” and wait for a regularly scheduled 35% coupon…
Many thanks! That should take care of matters for a reasonable price, whether Mesa or Dell Financial…
What do you think of cheap parallel port boards as separate cards plugged into pci/pci-e as regards controllers?
They work fine and add a little bit of protection between the nasty outside world and the guts of the PC. Sometimes they take a bit of metal bending, though…
I have this one:
http://leafboy77.com/index.php/en/
from some random e-bay vendor. It seems to work great.
http://www.ebay.com/sch/i.html?_odkw=CNC+3+Axis%2C+Mach3%2C+USB+Card+200KHz%2C+Breakout+Board+Interface%2C&_osacat=0&_from=R40&_trksid=p2045573.m570.l1313&_nkw=CNC++Axis+Mach3+USB+Card+200KHz&_sacat=0
The parallel port one that came with the mill and the original stepper drivers are in one of those “broken stuff” boxes that I’ll never open.
I’ve been hauling those to the electronics recycling events on a regular basis… hate to let it go, but it really is junk!
Hmm, I think I know what you are building but would like to see a sneek peek?
It’ll be an M2 driven by LinuxCNC, used as a testbed to try out some ideas that nobody else seems to be working on. There’s a bunch of infrastructure that needs building before that happens…