I’ve been working on backwards engineering a Prolight 1000’s control box so I wouldn’t have to hunt down a controller card for my mill or be forced to use the older software that comes with it. I’ve gotten to the point of a fully functional mill and it turns out to be a surprisingly easy hack once the circuits were traced. Here is what I've found out.

Disclaimer. Use what is posted here at your own risk! Your control box maybe different than mine.

All that is needed for basic functionality is a parallel port cable, knife, and some time. The port has to give out strong 5 volt signals to work. Most of the PCI cards I’ve tested struggle to get 3.5 volts. They simply can't drive the optoisolators on the inputs. Also the cheap parallel port cards do not give out good signals with strong peaks and floors. One I have runs 1.8 volts off and 3.1 on. The problem can be rectified by using transistors, hex buffers or any number of other circuits to amplify the weak signals and properly drive the control box. I simply used the parallel port on the motherboard . All outputs from the control box (lid open, e-stop, home, limit) NEED to be filtered. There is over 18 volts of PK-PK noise in them from the chopper in the stepper drivers and no amount of debounce can help it. If left unfiltered the feedback is enough to heat up the stepper drivers and cause the motors to scream. 0.1-0.2 µf caps are optimal. Anymore and it will just delay signals. The following table is the pinout for the computer connection on the control box. I/O marks if the pin is for input or output. Active notes if the pin is signaling when high, low or both in the case of directions.

Code:
Pin  I/O   Desc      Active    Remarks

   1. I    Acc 1        H    Normally high, pull low to disable the Acc1 plug.
   2. I    Acc 2        H    Normally high, pull low to disable the Acc2 plug.
   3. ?    ???          ?
   4. ?    ???          ?
   5. I    Z Direction  B
   6. I    X Direction  B
   7. -    Ground       -
   8. I    ???          ?
   9. I    ???          ?
  10. ?    ???          ?
  11. O    Lid Open     L    Best to wire this in (or to estop). The mill will kill the spindle on low regardless of the control box or computer’s output. Great way to snap bits.
  12. ?    ???          ?
  13. O    X/Y/Z Limit  L
  14. I    ???          ?
  15. I    TTL Output 1 H     Robotic output 1
  16. I    TTL Output 2 H     Robotic output 2
  17. I    Full/Half Step H    Default high is half steps. Pull low for full steps.
  18. I    Y Direction  B
  19. I    Z Step       L    Normally high, steps on low pulse.
  20. I    Y Step       L    Normally high, steps on low pulse.
  21. I    X Step       L    Normally high, steps on low pulse.
  22. I    Enable       H
  23. O    E Stop       L
  24. O    X/Y/Z Home   L
  25. ?    ???          ?
As you can see there are some holes. Notably I'm missing the TTL inputs for the robotic interface. Since I'd just run any robot off the computer directly these other pins were not important to me.

Code:
DE-9
Pin    I/O    Desc

   1.   I      + Spindle speed signal
   2.   I      - Spindle speed signal

The spindles works off varying voltage to pins 1 and 2 on the DE-9 connector. Mine came setup for a 0 - 9 volt scale but is adjustable via pot under the back cover of the machine marked sig_adj. It is perfect for a PWM drive signal. Regretfully the pot can’t adjust down low enough for a 5 volt signal to max the spindle. I used an NPN transistor driven by the parallel port’s output hooked to the computer’s 12 volt rail to up the output voltage to 0-12 then adjusted the pot to match. Works like a charm. Only problem is I have no idea how fast the spindle is actually moving so I've just been guessing.

My interface for reference is as follows.
Code:
Computer pin    Mill pin    Function
    2    22    Enable
    3    6     X Direction
    4    21    X Step
    5    18    Y Direction
    6    20    Y Step
    7    5     Z Direction
    8    19    Z Step
    9    X     Spindle PWM (goes to a diode->resistor->transistor which switches DE-9's pin 2.)
    10   24    X/Y/Z Home
    11   13    X/Y/Z Limit
    15   23/11 E Stop/Lid Open
    16   1     Acc 1
    17   2     Acc 2
General setup information:
X Travel: 12
Y Travel: 6
Z Travel: 9
Stepper drivers: L297/L298
Steppers: 150 Oz/in 200 SPR
Gearing: 2:1
Thread pitch: 5 tpi
Steps per inch: 4000
IPM: spec'd at 60 but can do 120 if you keep the L298's cool.
Debounce can be left at 0 with proper filter caps.