Frequently Asked Questions

Some questions and answers in this section are very technical in nature, others are not. Ability Systems Software is used in diverse applications and by people of various of experience levels, ranging from educational projects to sophisticated machinery and scientific applications.

snap over numbers for answer

1) Do I need specialized knowledge to use Ability Systems' software?
You need to have enough technical knowledge to follow a wiring diagram and to work safely with dangerous voltages and physically moving components. If you doubt your ability to work safely with these components, get qualified help or do not use the product! Don't put yourself and others at risk.

You will also need to understand enough about computers to copy files, install programs, and modify text files.

2) Are manuals available in electronic format?
Yes. Manuals in PDF format are available on request. We only ask that you provide us with contact information, and honor our copyright by directing anyone who may wish to have a copy to us instead of duplicating yours. The manuals provide more detailed answers to most of these frequently asked questions.

3) Is Indexer LPT considered a motor controller?
The word "controller" generally refers to the motor control system consisting of an "indexer" together with a "translator". The "translator" is the portion of the control system that applies the power to the motor windings. The indexer portion of the system is the intelligence. It accepts verbal (ASCII text) commands and in turn generates the electronic signals used to control acceleration, deceleration, interpolations etc. Indexer LPT temporarily converts your PC compatible computer into the indexer portion of the control system, allowing you to use it to directly control the step motor translators. The "How it Works" portion of this web site was written to address this question in more detail.

4) What is the difference between Indexer LPT, G Code Controller and HPGL Controller?
Basically, Indexer LPT is comparable to expensive plug in hardware controllers designed for IBM PC type computers. Indexer LPT is typically used with either our G Code Controller or HPGL Controller for CNC type applications. However, Indexer LPT is also designed to be easily incorporated into other programs written in standard programming languages, such as Visual BASIC, "C", or Delphi (Pascal), in order to accommodate a great range of applications and highly specialized machine and user interaction.

5) Why is Indexer LPT sold separately from G Code Controller and HPGL Controller?
This modular approach gives machine designers the greatest measure of flexibility. Since all external sensing and control occurs through Indexer LPT, and access into Indexer LPT is clearly defined, application programs can be easily interchanged. The "Pictures" section of this web site shows examples of machinery that use application programs written by Ability Systems (G Code Controller, HPGL Controller) and others. In some cases, different application programs can be run on the very same machine, depending on the needs of the job at hand.

6) Does Indexer LPT require a special plug-in card?
Indexer LPT software adapts industry standard parallel interface adapters (printer cards) for special use as a motion controller. Indexer LPT comes with a small "Hardware Assist Module" that contains electronics necessary to continuously monitor a speed control dial. This module plugs into an available parallel port.

7) Why not also support "industrial" digital I/O cards?
Since the first "Standard" parallel interface adapter was introduced by IBM in 1981, it has proven itself to be rugged, inexpensive and readily available from numerous manufacturers. The design of the parallel port has been further standardized under the IEEE-1284 specification, commonly known as "ECP". Unless there emerges a compelling reason to change to a less standardized and more expensive "industrial" type card, we feel that oldest "Standard" and the newest IEEE-1284 parallel interface adapter provides the most optimum hardware platform for our software.

8) Why not use the USB port?
USB is a serial method of communication, and as such does not support the number of input and output signals that are necessary to directly control translators, servo amplifiers, relays etc. Parallel communication adapters have the necessary number of signals available for our use to control numerous inexpensive components.

9) As an OEM, should I be concerned about computers that are being sold without "slots" that accept adapter cards?
When personal computers first appeared on the market few people predicted that they would be used less for for computing than for word processing, no less E-commerce. Yet throughout its history of change, the use of personal computers for industrial control has increased, not decreased. Perhaps soon revolutionary electronics will integrate your telephone, computer and wireless LAN into a package supplied almost for free with an Internet access account. That would not necessarily mean that computer hardware will not be available to run Indexer LPT. On the contrary, as computing becomes more commonplace we feel that the demand for industrial computing will increase - and that the market will continue to meet this demand with reasonably priced hardware, as it has done in the past. (See the FAQ entitled "What is meant by "backward compatibility").

10) What about optical isolation?
Indexer LPT can be used directly with most translators that are on the market: those that are optically isolated and those that are not. Wiring diagrams in the Indexer LPT users guide show both cases. There are, however, physical considerations in applying optical isolation which are necessary to make it effectively reject electrical noise. Technical assistance is available to help you adapt to the translator (or servo amplifier) of your choice into its intended environment.

11) How many parallel ports are necessary to control a three axis machine?
We suggest three, although it can be done with two. We recommend that you use one parallel port to connect to user controls options: feed hold, feed rate override, joystick and cycle start. The remaining two parallel ports will support up to four axes as well as numerous outputs and inputs that can be used for spindle control, solenoids, switch sensors etc. (This still leaves room to expand with an additional port, which would add capability to control two more motor axes, and more auxiliary inputs and outputs).

12) Why doesn't Indexer LPT support more motors per parallel port?
Parallel ports are inexpensive, rugged and readily available. Indexer LPT associates a set of inputs and outputs to a group that it calls an "axis". Each "axis" includes outputs for "pulse", "direction", two limit switch inputs to sense extents of positive and negative motion, a general purpose input and two general purpose outputs. Two sets of these groups are designated on each parallel port connector. Every group (axis) is identical in function and handled similarly in software, thereby greatly simplifying application design, and avoiding the types of compromises that would otherwise be necessary. Outputs and inputs can be software configured for general and special purposes as well. Indexer LPT can control and monitor up to eight outputs and six inputs on each parallel port, and support as many as four parallel ports per system - though one of these ports, which is used for the Hardware Assist Module (that houses the feed rate override electronics), has four outputs and six inputs available. Thus Indexer LPT can control up to seven motors simultaneously, with high and low limit switch inputs for each motor and numerous inputs and outputs.

13) What is a step motor "translator"?
A translator is a special type of power amplifier used for stepper motors. Translators typically are controlled by two electronic signals entitled "pulse" (or "step") and "direction". In its dormant state, the translator powers the step motor in such a manner so as to hold the shaft position in place. When a translator receives a single pulse, it immediately applies the appropriate currents to the motor windings so that the motor rotates from its present position by an incremental angle. The logic level of the "direction" signal (high or low) at the time of the pulse determines which direction the shaft will rotate, clockwise or counterclockwise. One translator is required for each motor. Some companies package two or more translators together as one unit, but they are each controlled by independent "pulse" and "direction" signals. Indexer LPT can control up to seven translators simultaneously.

14) How does Indexer LPT control the translator?
Indexer LPT responds to its "plain English" (ASCII character) command set by generating the necessary pulse and direction signals directly from the parallel port connector. In most cases the parallel port is wired point to point to the translator, requiring no additional electronics.

15) What determines the amount of shaft rotation for of each step?
Indexer LPT generates pulses in response to commands designed to effect motion. (For example, the Indexer LPT command "move:a,200" generates 200 pulses from pin 2 on the printer port associated with the axis entitled "a".) Each pulse corresponds to an angular displacement of the step motor shaft called a "step". The motor shaft rotation corresponding to each pulse is determined by the internal geometry of the motor that is chosen and the translator that is used.

The geometry of most two phase industrial motors defines a complete revolution of the shaft by 200 step positions, making each step angle 1.8 degrees. In other words, when Indexer LPT applies a single pulse to this type of motor/translator, the motor shaft will rotate 1.8 degrees. 200 pulses, therefore, will effect a complete rotation of the shaft, 360 degrees.

Most translators can be configured so that they can excite the step motor in such a manner as to move the motor shaft to intermediate positions mid-way between the alignment of the shaft and the surrounding magnetics that define each "step". These intermediate positions are call "half steps", and the control process is called "half stepping". Thus a single pulse applied to a translator set up for "half stepping" will rotate a 200 step/revolution step motor 0.9 degrees, requiring 400 pulses to effect a complete rotation of the shaft.

The step angle is considered the step resolution of the motor. The accuracy of the motor is defined by the capacity of the motor to hold its angular position. Generally speaking, when driving step motors in full or half step configurations, the accuracy of the shaft position is much finer than the resolution of each step.

Step motors are manufactured with full step resolution of 200 and 400 full steps per revolution, and can be "half stepped" to 400 and 800 steps per revolution respectively. Step motors are also manufactured with full step resolution of 500 and 1000 steps per revolution, and can be "half stepped" to 1000 and 2000 steps per revolution.

Special types of translators are available that provide for greater number of intermediate positions between each step. The technology that these translators use is called "micro-stepping".

16) What is "micro-stepping"?
"Micro-stepping" is entirely a function of a special type of step motor translator which is capable of modulating the current to the motor windings in such a way as to effect a smoother transition from step to step. When "micro-stepping", a multiple number of control pulses are required for the step motor to transition from one of the motor's step positions to the next. The number of pulses per step is usually referred to as "steps per step". For example, a micro-stepping translator configured for ten (10) steps per step will require 2000 indexer pulses to rotate the shaft of a 200 step/rev step motor a full revolution. In this case, the control resolves to a shaft displacement of 0.18 degrees per pulse. However, since micro-step transition from step to step is more elastic than full or half stepping, the shaft accuracy is more dependent on load, and may even exceed the angular resolution for each pulse. Micro-stepping offers advantages over full and half stepping in smoothness of operation, but not necessarily accuracy. Since the number of pulses per shaft revolution is increased using micro-stepping, the pulse frequency required to attain any particular shaft velocity is increased by a corresponding amount.

17) Does Indexer LPT support micro-stepping?
Indexer LPT can generate pulses at sufficient rates to support micro-stepping applications.

18) What is Indexer LPT's maximum step rate?
The maximum frequency that Indexer LPT can generate pulses is dependent on the speed of the CPU and the bandwidth of the Input/Output bus of the computer. We generally advise customers to expect a maximum step rate of about 100,000, which can be obtained from most low grade Pentium's, though more than twice that rate can be attained on some computers.

19) How fast can Indexer LPT accelerate?
The maximum pulse acceleration rate is 300,000 steps per second per second. The actual rate your system is capable of accelerating depends on the forces involved (mass, friction etc.), and the power of the drive components being used (motor and translator).

20) What is the maximum number of steps for a single command?
About two billion - more than you will need for most applications.

21) How many inches per second is Indexer LPT capable of?
Indexer LPT operates in units of steps for distance, steps per second for velocity, and steps per second squared for acceleration. The actual velocity of a linear transport mechanism depends on the coupling ratio between the motor shaft and stage. For lead screw driven devices, the step rate AND the number of steps per revolution the motor-translator accepts AND the pitch of the lead screw together determine the linear velocity of the stage. Setup menus in G Code Controller and HPGL Controller are designed to accept your machine design criteria (such as "number of steps that correspond to an inch, centimeter, arc-degree etc.), and thus provide a means for you to manipulate your machine in units of motion that are most relevant to the application: such as inches for distance, inches per minute for velocity, and inches per minute per second for acceleration.

22) Can Indexer LPT be used to control servo motors?
Yes. There are numerous manufacturers of special servo amplifiers which accept pulse and direction type control inputs. These amplifiers close the control loop local to the amplifier (the encoder signals are fed back into the amplifier itself, not the indexer) essentially making the servo motors "appear" like stepper motors to the indexer.

23) Why might I use step motors instead of servo motors?
Stepper systems are typically less expensive than servos.

Stepper electronics are easier to implement than servos, since they can be statically tested and do not need to be tuned.

Since stepper electronics are "open loop", they are much easier to troubleshoot than closed loop servos.

"Following error", which is the positional error introduced by load, is legible for steppers. Servos, on the other hand, require some measure of following error in order to generate torque, and the servo amplifier must be tuned to keep this error within acceptable boundaries. Thus, while steppers are not necessarily more accurate than servos (since the total accuracy depends on several aspects of the design), the accuracy of a stepper system is more easily estimated.

24) Why might I use servo motors instead of step motors?
Servo systems monitor and continuously correct for position errors, and are not typically subject to ill effects of mechanical resonance. See the FAQ's entitled "What might cause a stepper driven system to miss steps?" and "What is 'resonance'?".

25) What is "contouring"?
Contouring is the ability of a machine to follow the contour of a curved path in multiple dimensions.

26) What is the difference between contouring and interpolation?
Interpolation coordinates the motion of multiple motor controlled stages along a simple path. Contouring is the process of traversing a succession of interpolated commands along a complex path.

27) How does Indexer LPT control the speed during interpolation?
Indexer LPT automatically regulates the vector (feed) rate in up to three dimensions. In a three axis gantry type cutting machine, the vector rate is the actual speed of the tool across the surface of the work. By regulating the feed rate to the vector speed, the quality of the cutting is consistently maintained regardless of the direction of the tool path.

When using rapid traverse commands, Indexer LPT automatically chooses the axis which is being moved the greatest extent as the "master". The remaining (optional) axes are automatically slaved to the master. The master axis is accelerated and moved according to rapid traverse set-up parameters for that axis. By slaving all axes to the master axis, all axes start together and finish together.

28) How do I determine the size and power of my motors and drives?
The amount of torque that your motor must be capable of is dependent on the amount of force that your application requires. Power is determined by the product of the required torque and the speed at which it must be applied. Manufacturers of motors and drives generally publish graphs showing the available torque at different shaft velocities. Torque diminishes at higher speeds.

Motor torque must be sufficient to overcome inertia (for acceleration), friction, load, and transient forces that might occur within the speed range of the application. Calculations can be made to approximate these requirements, but performance is ultimately tested when the machine is put into service. For this reason drive components are often specified to exceed the estimated requirements by a reasonably safe margin.

In contouring applications, since Indexer LPT (and associated applications software) allows you to specify and automatically control the amount of transient force applied due to changes in direction throughout all contoured paths, you can thereby size drive components to conform more closely to other requirements that are more easily estimated. Thus the amount of power applied does not need to compensate for the these transient forces, as it must under less sophisticated control techniques. (See the FAQ "Why is Indexer LPT's contouring considered so advanced?). Indexer LPT assists you in making your completed system more efficient AND more economical.

29) Will someone at Ability Systems assist me in choosing motors and drives?
Ultimately you are responsible for the performance of the components that you choose to work together in your system design. That said, we will try as best as we are able to provide you with guidelines for selecting appropriate motors and drives, whether or not you purchase them from us.

30) What might cause a stepper driven system to miss steps?
A properly designed stepping system should never miss a step. Since a stepper system runs open loop, if the motor does skip steps it may either stall or continue with succeeding operations "as if" it were on track, but off by the amount of steps that had been lost. There are two major causes for skipping steps: overload and mechanical resonance.

Overload happens when the motor is subjected to more torque than it has the power to overcome. To avoid overload you must use a step motor and drive capable of the acceleration, speed and torque your that your application requires.

31) What is "resonance"?
Mechanical resonance happens when the motor driven mechanical components vibrate at a natural frequency sympathetically with the step frequency that the motor is being driven at. If this sympathetic vibration exerts a transient force exceeding the pull out torque of the motor, steps may be lost or the motor may stall. This condition is usually easy to detect because it makes an audible and unmistakable growling sound. If resonance occurs to the extent that it affects machine operation, the problem can be addressed in several manners. Mechanical components can be stiffened and/or made heavier to raise its natural frequency out of the operating range of the motor. Friction can be added to dampen resonant vibration. Micro-stepping drives, which are smoother and thus less prone to induce to resonance, can be incorporated. Alternately, servo drives (which are typically immune to this type of resonance) can be incorporated.

32) Why is Indexer LPT's contouring considered so advanced?
Indexer LPT will accelerate and decelerate as necessary to maintain a consistent vector (cutting) speed. Transition points, however, present transient stresses to the control system due to changes of speed on each axis inherent in tracking the geometry of direction changes. Indexer LPT will look ahead, and smoothly adjust the velocity in order to negotiate the transition points without over-stressing the system. Indexer LPT will look ahead AS MANY TRANSITION POINTS AS NECESSARY to avoid over-stress, while at the same time following the geometry of the contour exactly. (Even some of the most expensive controllers have only a two object look-ahead). When used with stepper drives, this advanced feature guards against missed steps due to pull out. When used with servo drives, inaccuracy due to following error is tightly controlled and thereby minimized.

33) I wish to write a custom program using Indexer LPT. How does my program know when the motion in completed?
Your program knows the motion is complete implicitly when control returns from Indexer LPT back to your program.

34) What type of feedback does Indexer LPT provide to my program?
A one line buffer, which we call the "mailbox", contains information concerning the completion of the previous Indexer LPT command. The "mailbox" may include position, error conditions, set-up values, or the status of designated inputs. Application programs like G Code Controller and HPGL Controller use this feedback for such things as updating position readouts and monitoring external control switches.

35) Does Indexer LPT support velocity profiling?
Indexer LPT uses a constant acceleration approximation (linear velocity ramping). The user sets parameters of starting speed, acceleration, and running (slewing) speed. For the vector commands, the user sets parameters of starting speed, acceleration, and vector velocity.

36) Why is Indexer LPT considered to support "open architecture"?
Since Indexer LPT supports an industry standard pulse and direction control format, it can be used with most step motor translators (or "pulse/direction" controlled servo amplifiers) available from numerous manufacturers. In this manner, Indexer LPT is open in its architecture with regard to component hardware.

With regards to software, Indexer LPT can be easily controlled from a variety of different application programs: programs which you may write yourself in BASIC, C, Pascal, Delphi etc, or commercially available programs written by Ability Systems or third party developers.

37) What are the advantages of "open architecture"?
The advantages are numerous. Here are a few:

a) Ability Systems application programs can be customized, and as such are "open" to a certain degree. Using Indexer LPT from a user written application program is "open" to the greatest degree, and the Application Programming Interface (API) is comprehensively published, with examples, in the Indexer LPT users guide. Writing your own application program requires more effort, but can accommodate highly specialized machines.

b) Since Indexer LPT can be used with different application programs, a single machine design can be used for different purposes simply by running the program most suitable for the manufacturing job at the moment.

c) Drive components are modular and industry standard. If a motor drive component fails, and is no longer available for purchase, a compatible one from another manufacturer can be substituted.

d) The strengths of different manufacturers can be combined in modular systems.

e) Modular systems can be initially designed with basic functionality. The basic design can be extended in time, while preserving the initial investment.

f) Custom programs can be easily written to accommodate specialty manufacturing requirements.

g) The printer port interface is industry standard. If the printer port fails, it is easily and inexpensively replaced.

h) IBM PC compatible computers have become commonplace, and are easy and inexpensive to service - even to replace if necessary.

38) I have several machines at my location which I wish to automate using Indexer LPT. Can I purchase one copy to use on all of these machines?
The license agreement specifically limits the use of one license to one computer at any particular time.

39) I am developing an automated machine which I intend to sell. How do I incorporate Indexer LPT?
Indexer LPT is commercially licensed software and in many ways similar to major applications which you may have purchased from other companies. One license of Indexer LPT must be purchased for each computer on which it is run.

Indexer LPT was written with the OEM (Original Equipment Manufacturer) in mind. For this reason we have drafted an OEM Agreement which outlines the responsibilities of the OEM, as well as the discounts which apply to multiple purchases. You must be a licensed user of Indexer LPT to obtain an OEM application form. Discounts only apply to manufacturers of products for re-sale, and do not apply to multiple purchases for in-house use.

40) What are the advantages of a software driven system to the OEM?
The advantages are price, upgrades and service. Since the machine is software driven, its functionality can be extended by means of software upgrades. Since the hardware components are industry standard and readily available, maintenance is greatly simplified.

41) What is meant by "backward compatibility"?
"Backward compatibility" is the ability to accommodate existing technology with emerging technology. For example, from the standpoint of hardware if you were to purchase a new computer and you are able to use the new computer with the particular video monitor that you had been using, the new computer would be considered "backward compatible" with the older monitor. From the standpoint of software, if (for example) application software that you are using is capable of running on a new operating system, then the new operating system software would be considered "backward compatible" with your existing application software. Backward compatibility is important to OEM's because recurring development costs must be sustained when the emerging technology of component parts fail to maintain backward compatibility.

42) I have an old machine running Indexer LPT. Does it need to be modified to use the latest version?
With regard to the hardware components controlled by Indexer LPT, and all associated wiring, the latest versions of Indexer LPT for Windows 95/98/Me and Windows XP have maintained 100% backward compatibility with the first version for of Indexer LPT written in 1989 for DOS 2.2.

43) Can I use PCi bus parallel ports with Indexer LPT?
Yes, as long as it conforms to the IEEE-1284 standard, commonly called "ECP". Parallel port manufacturers that conform to this standard generally say "IEEE-1284" in the advertisement and on external packaging of the product.

Indexer LPT commands assume control over output pins on multiple printer ports by associating letter names ("a", "b", "c", "d" etc.) with the different standard port addresses. However, since PCi parallel ports can assume non-standard addresses, later versions of Indexer LPT allow you to associate any port address with any of the letter names that Indexer LPT uses, thereby allowing existing application software to maintain forward compatibility with the newer port types.

44) I have an older, 16 bit version of Indexer LPT for DOS. Why doesn't it function under Windows 95/98/Me?
These versions of Windows are not entirely backward compatible with MSDOS device drivers. (The 16 bit version of Indexer LPT is a "character type MSDOS device driver"). For this reason, Indexer LPT was rewritten to accommodate Windows 95/98/Me. Indexer LPT has also been more recently rewritten to accommodate Windows 2000/XP/Vista/7.

45) Can I use my old (user written or 3'rd party) DOS application programs with Indexer LPT under Windows?
In most cases programs written for the DOS version of Indexer LPT will run with the latest Windows version of Indexer LPT in a Windows 95/98/Me "DOS Window" without modification. In other words, the latest version of Indexer LPT for Windows 95/98/Me is backward compatible with DOS software. If you make your DOS Window full screen, it will even look like an older system. However, some safety considerations apply. Even though Indexer LPT temporarily turns Windows multi-tasking off while the motors are moving, between motion commands the user can press "Alt->Tab" to change focus to a different window, thereby losing control over the application program. Ability Systems' G Code Controller and HPGL Controller address this issue, but third party programs may not, and older DOS programs cannot.

The more recently introduced "feed rate override" can be enabled independently of the application program, and so you may take advantage of this new feature, even while using older application software.

46) Can I use older application programs with Indexer LPT under Windows 2000/XP?
The generation of operating systems beginning with Windows NT, which was later to evolve into Windows 2000 and then into "XP", dropped support for character type device drivers. Since the method of communicating with Indexer LPT had been maintained under the standard for character type devices, Windows 2000/XP no longer maintains backward compatibility. For this reason, Indexer LPT was rewritten specifically for Windows XP, and the method of communications between application programs and Indexer LPT had to change slightly - and so application programs must be changed. For this reason, DOS software written for Indexer LPT will not run under Windows 2000/XP. Later Windows application programs, written for Indexer LPT's character device interface, will not run under Windows XP without modification.

Ability Systems application programs, G Code Controller and HPGL Controller, are available in both Windows 9598Me and Windows 2000/XP versions. Numerous third party developers have followed suit.

47) Is there any advantage to using Indexer LPT under Windows XP over Windows 95/98/Me?
The time that it takes for the application program to communicate with Indexer LPT has been substantially reduced under Windows XP. Communication was very fast anyway (microseconds), but when loading the look-ahead buffer with large numbers of Indexer LPT commands the difference between versions becomes readily apparent.

HPGL Controller takes advantage of improved graphics capabilities of Windows XP.

48) This whole issue of "backward compatibility" is confusing. Is there anyone at Ability Systems that is available and willing to explain it to me in more detail?
YES! This is a very important issue, especially for OEM's - so please call with any questions that you may have.

49) Can I export Indexer LPT to any country?
Some trade restrictions apply. Indexer LPT/XQ employs a level of technology that the US Bureau of Industry and Security (BIS) considers applicable for individual licensing when exported to most countries (except Canada and Great Britain, where individual licensing is not required). For this reason (to reduce lead time and paperwork), we developed a special "export" version, Indexer LPT/XQE, which can be exported to most countries under general license. The only difference between Indexer LPT/XQ and Indexer LPT/XQE is the number of axes that can be moved simultaneously. Both products support up to seven axes, but Indexer LPT/XQE can move only four of these axes simultaneously, while Indexer LPT/XQ can move all seven simultaneously. If your application requires contouring in more than four axes, you are welcome to contact Ability Systems to determine the documentation that is required from you, and if we can export to your country using a BIS license exception. Both our HPGL Controller and our G Code Controller products have been classified by the BIS under "EAR-99 NLR", which means no licensing is required to export these products to most countries. Please also note that if you are exporting a completed system, of which Indexer LPT is an embedded component, you may need to obtain individual licensing based on the level of technology of the completed system.

back to top