I have an automation project that I am work on with a client. In a nutshell, I need to write a completely new custom interface (and underlying code to control the parallel port) that will control a set of 4 stepper motors via the parallel port, using a "standard" CNC-type breakout board and some Gecko G203V stepper drives.

This is very similar to most other stepper systems used for controlling a 4-axis CNC machine, and in fact, the electronics and hardware came from a CNC control box.

The device we are modifying is a bike fitting machine, used for custom sizing a bike (as in bicycle), to a rider's specific requirements. Basically it has 4 hand cranks that control the positioning of various parts of the bike such as seat height, handlebar height, etc which we have already replaced with stepper motors to actuate the axes.

We are currently using Mach3 with a custom "wizard" which displays a screen that has been customized to show a view of the bike, with buttons placed strategically in the image of the bike that allow a user to raise and lower the seat, handlebars, etc by pressing a button in the wizard.

This does work, however, it's not the ultimate solution that we are looking for. What I need is information, links, books, or any advice that will help me create the underlying code for controlling the parallel port, especially in regards to creating a way to control the timing "pulses" sent via the parallel port to the breakout board and drives.

I have a background in programming Java, C, and C++ so it's not the languages that I need help with, but rather my unfamiliarity with writing this type of code to control the parallel port, especially in regard to properly timing the pulses.

I have considered purchasing TurboCAD and either using remote procedure calls through a Java interface, or since TurboCAD is open source, simply reverse engineering the parts of the code that control the parallel port.

Any tips, hints, links, etc would be much appreciated. Thanks!