USB SmoothStepper (USS) Documentation Page




Safety Information


Any machine tool is potentially dangerous. Computer controlled machines are potentially more dangerous than manual ones.

Warp 9 Tech Design, Inc. does not accept responsibility for the performance of any machine or any damage or injury caused by its use. It is your responsibility to ensure that you understand the implications of what you design and build and to comply with any legislation and codes of practice applicable to your country or state.

Please read this link for our complete article on Safety Information.



This documentation page provides the information necessary to install the USB SmoothStepper in a CNC system controlled by Mach3.  It is assumed that you are using the correct Windows driver for the USS, that the recommended version of Mach3 is installed on your computer, and that you are using the current USS Plugin for Mach3.  Each of the 3 previous links provides a short video and documentation on how to install the respective pieces of software.

It is outside the scope of this documentation page to explain the operation or configuration of CNC systems and Mach3 except for information that is specific to the SmoothStepper. For information pertaining to the operation of Mach3 and CNC systems in general, there is a wealth of sources already available:

Installation of the USB SmoothStepper is meant to follow the order of the sections on this documentation page.  Please follow this sequence and you should have a successful installation.


USB SmoothStepper Description

Please visit our Products Page for a detailed capabilities chart.

The USB SmoothStepper (USS) is a 6 axis motion control device that connects to the USB port of a computer. It accepts commands from a trajectory planner (i.e. Mach3) and produces a very high quality pulse train to stepper and servo motors. At this time the SmoothStepper only works with Mach3, but we will be releasing a Mach4 Plugin in the near future.

When used with Mach3, the USB SmoothStepper can act as a replacement for two printer ports, both in terms of function and connections.  It can be viewed as a super printer port. If your system is currently using Mach3 with one or two printer ports, changing to the SmoothStepper should be very easy. The SmoothStepper allows computers with no printer ports, such as laptops, to control motion with Mach3. 

Great care was taken to make the SmoothStepper an easy replacement for the parallel ports. Initial wiring in most existing systems will be as simple as unplugging the printer port cables from the back of the computer and plugging them into the two 26 pin headers on the Smooth Stepper using an adapter. An advantage here is that the ports & pins setup under Mach3 for the printer port, should work without change with the SmoothStepper.

The only connection required between the SmoothStepper and the host computer is through a USB port. This connection provides power and allows communication between the computer and the SmoothStepper.  The SmoothStepper may also be powered from an external regulated source of 5V DC.

The SmoothStepper receives movement instructions from the motion planner in Mach3 and produces step and direction pulses for motor controllers that accept that form of control, either servo or stepper.  In addition, the SmoothStepper provides spindle control and can handle all the other Input/Output (I/O) functions that are normally handled by the two printer ports under Mach3. By taking over the task of producing step and direction signals, the SmoothStepper relieves the host computer of most of the CPU load normally involved in running Mach3. The dedicated hardware in the SmoothStepper produces pulse streams up to 80 times faster, and with more precise timing than Mach3 using the printer port.

The Software for the USB SmoothStepper consists of two parts. The first consists of the SmoothStepper USB drivers that allow your computer to recognize and communicate with the SmoothStepper hardware. The installation of the drivers is the same as it is for any new hardware in Windows and need only be done once. The second part is the Mach3 Plugin, which allows Mach3 to send motion and I/O information to the SmoothStepper. The Mach3 Plugin for SmoothStepper is installed once on initial setup, and whenever you choose to upgrade to a new version.

When Mach3 loads and runs the SmoothStepper Plugin, the first thing the Plugin does is download the computer program (called firmware) into the SmoothStepper hardware. This happens automatically and invisibly.  The firmware contains the instruction set for all the SmoothStepper functions.  All of the digital hardware, including the pulse generators, is included in the firmware.  The firmware is actually a component of the Plugin file, so no action is required on the part of the user.  With the firmware being a component of the Plugin, it insures that the firmware and the Mach3 Plugin software are of the same versions.  This eliminates the costly headache of mismatched firmware and software.  Upgrades are also trivial with this arrangement.


System Requirements

  • A Windows PC from XP to Windows 8.1 (Windows 10 will be supported shortly).
  • The PC needs to be able to run Mach3, if it can do that it should work fine with the USS.
  • If running Windows 7 or newer, we recommend at least 4 GB of RAM.  However, 6+ GB will help to make it a more enjoyable experience for you.  Some people run with less than 4GB of RAM, but the OS works much more efficiently with 4GB or more.
  • If running Windows XP, we recommend at least 2 GB of RAM.  Some people can run it with 1GB, but 2GB or 3GB will help to make it a much more enjoyable experience for you.
  • USB 1.1, 2.0, or 3.0
  • Breakout Board:  

The SmoothStepper was designed to be a parallel port replacement.  You should be able to connect its I/O ports directly to a breakout board and follow the instructions for that piece of hardware.   A breakout board is a device that connects to the SmoothStepper’s I/O connectors, and connects each I/O line to buffer ICs or terminal blocks.  The terminal blocks provide a convenient method of connecting motor drivers, limit switches, etc. to the SmoothStepper.  These buffer ICs may be “optical isolators”, which are ICs that transfer a signal by way of light rather than electricity.  By converting electricity to light and back again, an electrical path for damaging voltages and currents is eliminated. 


Can the USS drive my motors directly?

The USS is not a high-power device. Its drivers are strong, but not nearly strong enough to drive a motor. Its drivers must drive a “motor driver”, which is a device that accepts a low level input and essentially amplifies it so that the motor can turn with force.


Unpacking And Preparing Your USB SmoothStepper

Your SmoothStepper will be packaged in an anti-static bag.  Please be careful to handle it in a static-free environment.  Depending upon what you ordered, the package should include the following:

  • USS (USB SmoothStepper) board
  • 4 small shorting jumpers.  These jumpers are plugged onto the board already, though the power jumper is the only one of them doing any shorting.  The other three are only attached to one of the two posts.  You should note where they came from and store them for safe-keeping if you do not use them (see the next section for a picture of the SmoothStepper and further description of what the jumpers are used for). 


What else will I need?

At a minimum, you will need to obtain the following:

  • An USB cable to connect to your PC.
  • Ribbon cables to connect to a BOB or a BOB to connect to your motor drivers and other CNC equipment.

We do sell some of these items on our store, and you may also find the other items sold by our Distributors and Solution Partners.


USB SmoothStepper Connectors and Information

USS v1.2 Board Info

Click here for a larger image.



Initial Setup and Testing

The USB SmoothStepper does not need to be connected to motors and breakout boards in order to test its operation with Mach3.  Place the USB SmoothStepper on a static-free surface near your computer.  You may mount it in your chassis/control box, but do not connect anything to it yet.  Please use USB power for the initial test.  The SmoothStepper is shipped in this configuration, so you will not need to do anything to select it.  Later on you may use an external 5V source for power, but please read the section on that before doing so.



Installing the Windows Driver for the USS

Click here to download and install the correct Windows driver for the USS.   A short video is also provided to help guide you along with other documentation.



Installing Mach3

Click here to download and install the recommended version of Mach3 on your computer.   A short video is also provided to help guide you along with other documentation.



Installing the Current USS Plugin

Click here to download and install the current USS Plugin for Mach3.   A short video is also provided to help guide you along with other documentation.



Connecting The SmoothStepper to Your Machine

The SmoothStepper is intended to be used with breakout boards that make it easier to wire motors and switches, as well as protect it from damaging voltages by way of optical isolation.  Optical isolation also keeps electrical noise from one circuit away from another since the signals are transferred by light rather than electricity.  If you are using an external 5V supply, please see the next section before connecting the SmoothStepper to anything.


Using an External 5V Supply (OPTIONAL)

The SmoothStepper may be powered from either the 5V of the USB cable, or a regulated 5V supply.  It absolutely must not peak any higher than 5.5V, otherwise you will damage the device.  External 5V may be applied via the pluggable screw terminal J7, or it may also be applied via jumpers JP2 and JP3.  These jumpers are meant for breakout boards, and it is not recommended to use them unless you’re using them that way.  If you are using this method of powering the SmoothStepper, you should be very sure to move the power selection jumper JP4 to the External 5V position.  Otherwise, you would be connecting the external 5V on pin 26 of the header to the computer’s USB supply.

There is no reverse polarity protection for JP2 and JP3.  However, J7 has a PMOS transistor in series with the positive lead to protect against the accidental connection of power in the wrong polarity.  But before you connect the 5V to the device, disconnect all cables, including the USB cable.  Otherwise, if you have the polarity backwards, you will be connecting +5V to the ground of your system.  This can damage your computer and the ground of the SmoothStepper.  If there is no return path to ground, there is nothing to worry about.  The PMOS transistor blocks the current in the reverse direction, and current from the +5V supply goes nowhere because the ground of the SmoothStepper is insulated from everything.

Select external 5V by moving jumper JP4 (unfortunately the “JP4” designator is hidden by the large yellow capacitor) to the two terminals away from the USB connector.  The middle pin of the three pins is the 5V for the board, and this is either jumpered to the USB 5V or the external 5V (screw terminals).   The unconnected pin on JP4 is highlighted by a red oval in the next pictures.

Jumper in USB 5V Position  Jum p er in External 5V Position

The screw terminals are “pluggable”, that is, they may be unplugged from the board.  The 11-pin terminal is actually composed of several 2 and 3-pin connectors, so don’t be alarmed if it starts to come apart as you pull it off.  Also note that these connectors can be plugged onto their headers in one of two orientations.  One is with the wires facing out (Green Arrow), and one with them facing up (Blue Arrow). The unconnected pin on JP4 is highlighted by a red oval in the next picture.

External Power Header
Either Orientation Is OK

The polarity of the external 5V is printed on the PCB in front of 2-terminal screw terminal.  Ground is the terminal closest to the mounting hole.  This is the only mounting hole of the four that connects to the ground of the circuit board (all the other holes do not connect to anything).  Jumper JP5 right next to the hole connects this hole to the ground of the PCB.  You may connect it as you see fit.  If you connect the 5V with the correct polarity, the blue power LED will be lit.  If not, no LEDs will be lit.  Once you have the 5V connected properly, then you may proceed.  If you are using the 5V from the USB, there is no way to connect it improperly.

The USS has a typical current draw of around 0.1 A when idle. However, we recommend providing at least 0.5 A since that is what a USB hub would provide.  If you are using your USS to power a BOB or other circuits, we strongly recommend a 1.0 A supply since they don't cost much more.  Extra current capacity will prevent random hard to diagnose issues if you are too close to the supply's maximum current. The 5 V supply must be a regulated supply with a tolerance of ± 10%, however ± 5% is preferable.

Small 5V, 1.0A (or larger) power supplies are inexpensive, and are offered by our distributors.  Make sure that they have a good voltage regulation and can supply that voltage from 0A up to their maximum rating. Common power supply types are:

  • Wall Transformers are inexpensive and convenient if you have an AC receptacle available. They are available with a single style of AC prongs, or they are also available as plug-on attachments depending upon the country you are using it in. Most of these transformers are capable of running from 100-240V and 50 or 60 Hz. A very common source of these are cell phone chargers.  The barrel connector or USB connector must be cut off in order to attach to the ESS’s screw terminals.

Wall Transformer

  • Table-Top Power Supplies are similar to wall transformers but they get their name because they sit on a table rather than in a wall receptacle. The advantage of a table-top supply is that you can cut the AC power cord’s plug and wire it in with the rest of your AC power. The barrel connector must be cut off in order to attach to the ESS’s screw terminals. The supply shown in the picture uses a standard computer style of power cord with a “C13” plug.

Table Top

  • Open Frame Power Supplies are inexpensive, small, and lend themselves well to wiring the AC power without needing an AC receptacle. The board pictured here does not have a frame. Often they include an aluminum enclosure that only covers a portion of the PCB.Open Frame


  • Din Rail Mount power supplies are handy if you have a DIN Rail in your cabinet.Din Rail


Here are some commonly encountered problems due to incorrect power supply choices:

  • Using a switching supply:  Switching power supplies may require a 10% load before they start to operate correctly!  This means a 5 A switching supply would need 0.5A before it would start to regulate, which is more than the ESS would draw on its own, and as a result the ESS may never start up or it may switch off intermittently.   If you know that you will always be above the minimum current draw of the switching supply, this can be a good choice.
  • Using 5V power from your computer:  This is always BAD!  Always use a power supply separate from your PC’s power supply.
    • The first issue is that it creates ground loops with your computer's electronics which can add electromagnetic noise to both your computer and USS.  This is because the USB cable is already creating a ground connection.
    • The second and more important issue is that the plasma systems and motor drivers may create noise, voltage and current spikes that can flow back into your compute! The ESS uses Ethernet which by its nature isolates your PC from your CNC equipment. USB isolators are available online to provide isolation similar to that of Ethernet.
  • Using a power supply that only outputs 0.5 A (or less):  This means that the supply may not have enough current to supply the ESS when it is under full load, and the voltage may drop enough to cause the ESS to turn off and/or reset.  This is not always any easy problem to diagnose, but it can be avoided by using a power supply with at least 1.0 A available. 
  • Suppling other 5V devices with your power supply (BOBs or Break Out Boards):  As other devices are added that also use 5V, you increase the total current draw.  This is a common practice, but you need to make sure that you do not exceed the current limit of your power supply.  A secondary issue is if you are hooking up a very noisy device, it may disrupt the voltage being fed to your USS and cause random resets.  A USS (USB SmoothStepper) will require the use of an external power supply (i.e. not powered by the USB cable) if you are powering a BOB.  Make sure that the power supply can source enough current to satisfy the SmoothStepper's and BOB's requirements, with a clean 5V.  Each individual 5V jumper pin 26 is rated to carry up to 1.8 A to a Break Out Board, but all 3 combined are limited to the same 1.8 A.  If you do this, make sure that your power supply feeding the USS is able to supply that amperage plus at least 0.5 A for the ESS, and maintain a stable 5.0 V. 
  • Taking 5V power from a breakout board:  This can be a very difficult issue to troubleshoot, since most of the time it will work fine.  However, if the breakout board is not specifically designed to supply 5V power to the ESS it may not have the ability to supply sufficient current when the ESS needs it, and a reset may occur.  
  • Using a poorly regulated power supply:  If the voltage from the power supply drops below 4.5 V or goes above 5.5 V (5.0 V +/-  10%) at any point, YOU WILL HAVE PROBLEMS.   You really want to try and use a power supply that will stay between 4.75 V and 5.25 V (5.0 V +/-  5%). 

Small 5V, 1.0A (or larger) power supplies are inexpensive, and are offered by our distributors.  Make sure that they have a good voltage regulation and can supply that voltage from 0A up to their maximum rating.


Another problem that we hear of occasionally, is noise coming into the SmoothStepper through the power line.  The noise can cause weird glitches, random crashes, or just make the program halt running.  This noise can be caused by TIG welders, plasma torches, air compressors and other large motors being on the same AC power circuit as the SmoothStepper.  Switching to a different AC circuit can commonly fix the noise issue, as well as testing when other machines are not running at work (after hours or on a weekend).  If this is a problem for you, a Power Backup designed for PCs that has good noise filtering can also help solve the problem.   Another possible solution is to use debounced or filtered inputs in the SmoothStepper setting inside Mach on your EStop, home and limit switch inputs.






Numbering of the 26 pin headers

This picture shows how a 2x13 header is numbered outside of the parallel port world.  This is NOT how we number them!

Not how we number


We adhere to the parallel port standard (since that is where this industry started and all of the BOBs expect it).

DB25 pin numbering


DB25 to 26-pin Low-Profile Header Ribbon Cable

This schematic shows pictorially how the wires are oriented in a DB25 to 26-pin header ribbon cable. The pin numbering for the header is the unconventional numbering that matches the DB25.

DB25 to 26





Parallel Port Connector: Pin 26

Pin 26 of each parallel port connector is attached to a set of header pins. When these pins are shorted together, the 5V of the board and the 5V of the breakout board are connected to each other.  These are jumpers JP2, JP3 and JP4.

Parallel Port Pin 26



All USS Port IO

Here is a color coded map to all of the USS port IO.  The 3 single ended inputs and the 3 differential ended inputs are all dedicated inputs.  USS Port 3 exists on both J6 and J5, with the only difference being the styles of the connectors.


USS Port Connections


Port3 of the USS has Silk Screen names on the board that don't match up with the port and pin values in the plugin.  This image shows the mapping you will use when assigning ports and pins. 

Port3 Names



Technical Details

 The technical details and specifications for the USS may be found here.


Configuring Mach3 to work with your USB SmoothStepper

Your USB SmoothStepper should be ready to configure within Mach3 now.  Since the USB and Ethernet SmoothSteppers are so similar when configuring in Mach3, we have a set of dedicated pages to deal with that. 



Deprecated Manuals

This documentation page provides all of the updated and relevant information for the USB SmoothStepper.  For archival purposes we have the original manual below, but it is to be considered outdated and therefore deprecated:


Go to top