Ethernet SmoothStepper (ESS) Documentation Page

Our Getting Started guide will walk you through the specifics of setting up your SmoothStepper.  However, this documentation page contains a large amount of information that is not covered in the Getting Started guide.



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 Ethernet SmoothStepper in a CNC system controlled by Mach3 or Mach4.  It is assumed that you have the recommended version of Mach3 or the recommended version of Mach4 installed on your computer and that you are using the current ESS Plugin for Mach3 or ESS Plugin for Mach4 respectively.  Each of the 2 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 or Mach4 except for information that is specific to the SmoothStepper. For information pertaining to the operation of Mach3 and Mach4 and CNC systems in general, there is a wealth of sources already available:

Installation of the Ethernet 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.



Installing the SCU (System Configuration Utility)

Our Getting Started guide will walk you through the specifics of setting up your SmoothStepper and the computer, and test out the communications. The new version 2.0 of the SCU also includes our Windows Performance Tuning feature which will optimize your PC to run with Mach and a SmoothStepper.

Click here to download and install the SCU. A short video is also provided to help guide you along with other documentation. 



Getting Started & Settings

This section is out of place from where I would like to have it in the documentation, but it is here to grab your attention quickly.  Please read the rest of the documentation though, since it will answer a lot of questions and fill in a lot of details that you should know!

With that being said, the Getting Started Guide will help to walk you through the setup process for your new ESS.  In there there is also a section for Mach4 (and another for Mach3) that will walk you through the ESS and Mach setup steps and fill in a lot of the details about how each area works. There are also other sections there that will fill in other details that you should know.


Ethernet SmoothStepper Description

Please visit our Products Page for a detailed capabilities chart.

The Ethernet SmoothStepper (ESS) is a high-performance, 6 axis external motion controller for Mach3 and Mach4. Because it has a connector that conforms to the Parallel Port standard, it integrates seamlessly with most devices that the Parallel Port driver of Mach interfaces with. It accepts high-level commands from Mach and produces Step & Direction signals that are compatible with nearly all step & direction motor drivers (it also has a quadrature mode for high-end motor drivers, but those are not common). Because it is a dedicated hardware device, it is capable of producing pulses at very high frequencies and with extremely low jitter compared to the Parallel Port driver and microcontroller based solutions. In addition, the SmoothStepper is able to run on any flavor of Windows, both 32-bit and 64-bit. Mach will run under 32-bit or 64-bit, but an external controller such as the SmoothStepper is needed for 64-bit editions.


System Requirements

  • A Windows PC from XP to Windows 10.
  • We recommend against single core Celeron processors, since we have had to trouble shoot multiple computers with those processors (they are very under powered to be running Windows 8 or higher).  If you have at least a dual core i3 processor (or AMD equivalent), your computer should perform well.
  • 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.
  • 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 more enjoyable experience for you.
  • The PC needs to be able to run Mach3 or Mach4, if it can do that it should work fine with the ESS. 
  • An Ethernet port on board -OR- a PCI/PCI Express Ethernet Adapter -OR- a USB 2.0 or 3.0 Ethernet Adapter.
    • The ESS microprocessor has has an internal PHY that  is 100Base-TX with Auto MDI-X (so you don't need to worry about a crossover cable). It can and will run on either a 10Base-T, 100Base-T or Gigabit network. 
    • The Gigabit network segment (assuming a switch or direct PC connection) would drop down to 100 Base-T to talk with the ESS.  Gigabit will perform essentially the same as 100 Base-T when connected to the ESS.
    • The 100 Base-T network would operate at it's full speed with the ESS is what most people run it at now.
    • On 10 Base-T the ESS would only operate at 10 Base-T speeds. 10-BaseT Ethernet adapters are likely only found on old Win XP PCs at this point. 
    • While 10 Base-T will work, the 100 Base-T or Gigabit is preferred.
    • USB 3.0 Ethernet adapters will typically provide Gigabit capability.
  • 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. 

  • Cooling:  The Ethernet SmoothStepper does not require any active cooling for itself; you don't need to give it a dedicated fan, and please don't use a heat sink on it.  If the ESS is in a normal room temperature environment, then you don't need to do anything. Basically, if the environment is fine for you, it is fine for the SmoothStepper. If the environment is too hot, just cool down the environment and the ESS will be fine. If you have the SmoothStepper in a small box that also has motor drivers or power supplies, then you should have a fan for the box. My system only has a fan to keep fresh (filtered) air flowing into the control box.


How does the ESS connect to my system?

The computer connects to the ESS via a standard inexpensive Ethernet cable. The cable may be shielded or unshielded. An advantage of Ethernet compared to USB is that the cable length may be as long as 100 meters (328 feet). The maximum length for a USB cable is 5 meters, and that is pushing it in a noisy environment. Another advantage is that Ethernet uses transformers for coupling the data signals, which galvanically isolates the computer from the downstream electronics. The ESS connects to the rest of your equipment via its three “parallel port” connectors. Since the ESS emulates parallel ports, Mach’s documentation for the Parallel Port Driver of Mach applies to the ESS as well.

The ESS is intended to connect to your equipment via a “parallel port breakout board”, sometimes called a “BOB”. This is a board that has one or more connectors that have a parallel port interface. Typically it is a 26-pin header that is identical to the connector on the ESS, or a DB25 just like the parallel port of a computer. This connection is usually made via a ribbon cable. An inexpensive alternative to a breakout board is to connect a ribbon cable to the ESS that has a 26-pin header at one end, and no connector at the other. Simply connect the wires of the ribbon cable to each component in your system. This method isn’t encouraged because you can’t easily swap things out when something is wrong. Breakout boards are very inexpensive and worth the money invested. Voltages are limited to a maximum of 5V when interfacing directly with the ESS, so this is a limitation that is easily overcome with a breakout board.


Can the ESS drive my motors directly?

The ESS 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.


What are Opto-Isolators and Ground Loops?

An opto-isolator (often called “opto-isolator” or simply “opto”) is a device that has an LED inside that emits light. You don’t see the light because it is buried inside of the package it is in. A photo diode or transistor receives the light and allows electrical current to flow in proportion to the light. Thus no electrical current flows from one side of the opto to the other. Motor drivers often have opto-isolators in them to block current flow from the controller (ESS) to the high-current motor driver. There are other types of isolators, but the most common is an optical isolator because of its low cost. Isolation can also be achieved through capacitance, inductance (transformers), and RF (Radio Frequency). The ESS relies on the breakout board for isolation, though the ESS isolates the PC and user by virtue of the transformers in its Ethernet jack.

A ground loop is an unwanted current that flows from one circuit to another that are supposed to be at the same potential (voltage). If you have “ground” in one circuit, “ground” in another circuit might not be at the same voltage. If you hook a voltmeter between the two you would measure a voltage if the two were not the same. Having a different voltage at each end of a wire that connects the two grounds will result in a current flow, and that is undesirable. An electrical isolator blocks these currents because information is transferred from one circuit to the other without electrons (light or electromagnetic fields).


Unpacking And Preparing Your Ethernet SmoothStepper

Your SmoothStepper will be packaged in an anti-static bag.  Please be careful to handle it in a static-free environment.  The anti-static bag should include the following:

  • One (1) ESS (Ethernet SmoothStepper) board
  • Four (4) small shorting jumpers.  These jumpers are plugged onto the board already, but they are not jumpering anything. 
    1. One is provided for BOOTP/JP1 which is only used to modify the ESS's IP address with the configurator utility. (We strongly recommend that you leave the ESS at its default IP address of unless there are very strong reasons to change it.)
    2. The other three are used to provide 5V power to the ports on pin 26, and are on JP2, JP3 and JP4.  (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:

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.

Ethernet SmoothStepper Connectors and Information

ESS Board Rev 2

 Ports 1, 2, and 3: 

Parallel Port connectors. These connectors are standard 26-pin low-profile male headers (0.100" or 2.54mm pitch). If a ribbon cable is connected that has a DB25 on the other end, the DB25 will have the pinout of the Parallel Port of a PC.

External 5V Input:

Power input for the board. This supply must be a regulated supply with a tolerance of ± 10% (± 5% is preferable).  Please read the next section for more information on power supply requirements.

Pin 26, 5V Jumper for each port (JP2, JP3, and JP4):

Pin 26 of each header may be connected to the 5V power rail of the ESS board. Some breakout boards also have this feature, which enables one of the two boards to supply power to the other. This is a simple connection without any electronics involved. Multiple breakout boards with their own power supplies may be connected to the ESS. Be careful not to bridge the supplies!

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 ESS is able to supply that amperage plus at least 0.5 A for the ESS, and maintain a stable 5.0 V.

Ethernet Jack:

Connect a standard Ethernet twisted pair cable (CAT5 or better) with RJ45 connectors to this jack. Connect the other end to the computer or a network switch.

Status LEDs:

Displays connection and fault status.  Click here for the ESS LED status codes.

Expansion Port:

This connector will be used to connect to expansion boards that provide additional I/O. High-speed I/O will need to be on the main Port 1, 2, or 3 pins. The Expansion Port I/O will be suitable for slow-speed signals such as tool changers, relays, etc.

Config Jumper:

This jumper is for programming the static IP address into the board. It may also be used for updating the bootloader in the microcontroller. For normal operation this jumper should be off.

Initial Setup and Testing

The Ethernet SmoothStepper does not need to be connected to motors and breakout boards in order to test its operation with the SCU (System Configuration Utility), Mach3 or Mach4.  Place the Ethernet 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.  You will need to supply 5V power to it and an Ethernet connection for the initial test.  The SmoothStepper is shipped configured with the correct jumper settings and an IP address of, so you will not need to do anything else to test it.  



Using an External 5V Supply

The Ethernet SmoothStepper (ESS) requires an external 5 V power supply to operate. The ESS has a typical current draw of 0.3 A (when Ethernet communications are active) but can consume up to 0.5 A. We strongly recommend at least a 1.0 A supply since they don't cost much more, and the extra 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.

ESS Voltage limits:

  • 4.5 V minimum operating voltage (below this things will not work)
  • 4.75 V minimum recommended operating voltage
  • 5.0 V nominal operating voltage
  • 5.25 V maximum recommended operating voltage
  • 5.5 V maximum operating voltage (above this things will not work)
  • 6.0 V chip manufacture surviveability voltage, not a normal operating voltage - chips will start dying on the ESS above this point

Keep in mind that the 0.5 A is for the ESS only, and if you power a BOB through pin 26, you will need to add more amperage.  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 ESS is able to supply that amperage plus at least 0.5 A for the ESS, and maintain a stable 5.0 V.

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. The barrel connector or USB connector must be cut off in order to attach the 5V and GND to the ESS’s screw terminals. A very common source of these are cell phone or smart phone chargers.  Chargers for smart phones are usually very good choices for powering the SmoothStepper.  (While these are Switched Mode Power Supplies {SMPS}, their minimum turn on current is typically much less than what the SmoothStepper requires, therefore they work very well.) 

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


Please keep in mind, that if you are using a power supply that is more than 0.5A to 1 A larger than the total current required by the ESS and BOB you are using, you should consider adding a fuse to the power supply's output.  If the power supply's output shorts to ground, the fuse will blow and help to prevent serious damage caused by unexpectedly high currents.


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

  • Using a switching supply:  High power switching power supplies may require a 10% load before they start to operate correctly!  This means a 5 A switching supply (like a spare PC power supply) could 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.  Cell phone chargers have a minimum turn on current is typically much less than what the SmoothStepper requires, therefore they work very well.
  • Using 5V power from your computer:  This is always BAD!  The first issue is that it creates ground loops with your computer's electronics which can add electromagnetic noise to both your computer and ESS.  The second and more important issue is that the motor drivers can create voltage and current spikes that can flow back into your computer and DESTROY it!  Always use a power supply separate from your PC’s power supply.
  • 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. 
  • Supplying other 5V devices with your power supply:  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 ESS and cause random resets.   
  • 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%). 
  • Using a DC Step Down power supply to take your motor power (24V DC, 36 V DC, 48 V DC, etc...) and stepping it down to 5V.  If your Step Down power supply does not provide isolation, then you will be tying your ESS ground to your motor driver ground, which will introduce lots of noise to your ESS.  This nose will likely cause many problems in your system.  Also I have seen several *cheap* step down power supplies fail, and when they did, the shunted the full input voltage into the ESS and BOB, destroying them instantly.
  • Bench top power supplies: These have the ability to adjust the output voltage with the turn of a potentiometer (dial), which unfortunately if it glitches (or turns too fast) it will go above the ESS's 6.0 Vsurviveability voltage, and chips start to die. We recommend against using an adjustable bench top power supply for this very reason. If your supply has a fixed 5V output, that would be fine to use.


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.

2 Pin Power Plug


Wurth Electronics Part Number: 691361100002     DigiKey PN: 732-2751-ND    ---OR---

Dinkle Part Number: EC350V-02P     but the minimum order quantity for Dinkle is usually 100 or 1000 pieces.   ---OR---

Degson  15EDGK-3.5-02P-14-00AH


Testing ESS Voltage Levels

The ESS uses the incoming 5V power supplied to it, in the previous section, and generates 3.3V and 1.2V power supplies for use by the microprocessor and FPGA.  Most users will never need to do anything more that make sure they supply 5V DC to the ESS.

If the ESS is not functioning correctly, we will need to ensure that the required voltages are provided. Please make sure that the 5V that powers the board is a stable 5V at all times within 5% (4.75V to 5.25 V) .  If the 5V power supply is failing, weak, or has too low of an output current, the 5V level may drop when the ESS consumes more current.  More current will be consumed when:

  • Mach3 or Mach4 and the ESS plugin connects to the ESS.
  • If a BOB (Break Out Board) is connected to the 5V supply directly or through the ESS.
  • When you are running all of your motors at full speed, and driving your outputs (this loads down the power supply feeding the motors, and if that power supply also feeds the switcher generating the 5V for the ESS, it might cause that power supply to droop in voltage). 

If the 5V supply is OK, look for a red LED near the large chip on the board (Xilinx FPGA).  If the red LED is lit, it either means the 1.2V and 3.3V power supplies are not within spec, or it means the FPGA can't clear its memory.  When you first power the board, you should see this red LED blink for a very short moment. However, if this red LED if it stays lit, then there is a hardware problem. 

If you look closely at the board you will see test points for the 1.2V and 3.3V power supplies.  The 1.2V test point is very close to the edge of the board between the 16-pin header and a 220 uF electrolytic capacitor.  The 3.3V test point is between the crystal and that same electrolytic capacitor.  You can find ground either at the power input to the board, or right next to the Ethernet jack.  These supplies should be within 5% of the required voltage.    (Stable 1.14V to 1.26V for the 1.2V power supply and stable 3.135V to 3.465V for the 3.3V power supply.)

If you cannot measure 1.3V, 3.3V or 5.0V (and the 5V power is connected to the ESS), then there is a possibility that the L16 ferrite bead blew. Unplug the power to the ESS and then measure resistance from the J6 power jack, 5V power pins (both are number 2), to the green arrow's 5.0V power test point. If the result is infinite resistance or an open, then the ferrite bead popped.

We only see the ferrite failure about 2 times a year (and have since replaced the original ferrite with a much better ferrite). We suspect that the issue is that the 5V power supply produces a large inrush current (possibly due to a large load attached to the BOB) and the ferrite blows like a fuse (after being stressed by the inrush current many times previously).

 Test Points

Test Points with L16




Connecting The SmoothStepper to Your PC

Our Getting Started guide will walk you through the specifics of setting up your SmoothStepper.

Use the SCU to setup your system so Mach can communicate with the ESS.

The best way to connect your ESS to your PC is to use the Direct Connect method: hook the Ethernet cable directly from your ESS to the network adapter in your PC.  This will make trouble shooting easier since there are no switches or routers between the ESS and your PC.  (A switch should be fine since it only operates in the lower 3 layers of the TCP/IP stack, but why add extra equipment if you don't need it.  A router should be fine if you only have your ESS and PC connected to it, but this will require more work to configure and setup.  As a result we highly recommend the direct connection, which is what the SCU [System Configuration Utility] expects.)

If you don't have an Ethernet Adapter on your PC, we recommend using a a PCI or PCI Express Ethernet Adapter -OR- a USB 2.0 or USB 3.0 Ethernet Adapter. Quite a few people use these alternatives successfully, including myself.

We STRONGLY discourage using a wireless connection to communicate with your ESS.  There can be much more latency or delay involved with wireless communications, along with a much higher risk of dropped packets.   The ESS needs a fast, stable, and consistent link to your PC.

Many people use a second Ethernet connection or their wireless connection on the PC so they may easily connect to the internet, which is fine. 

While you are running Mach and your CNC system, we recommend that you refrain from browsing the internet, gaming or streaming music or videos.  This can cause your computer to take too much time away from Mach which could cause lost communications with your ESS (which can ruin your project).

We also recommend that you disable power saving options (monitor sleep and power off timers, hard drive sleep timers, and computer sleep timers); these have been know to cause lost communications with your ESS. 

We also recommend that you set Windows Update to notify you that there are updates available instead of automatically installing them on its own.

We also know of cases where antivirus and anti-malware software have caused problems.  We recommend that you disable them while you are running Mach, IF your PC is not connected to the internet.  

Note that you do not need to assign a static IP address to your computer if you program the ESS to use an address that is in the same subnet as your computer. The subnet is the same if the first 3 groups of numbers in the IP addresses are the same. Quite often Internet routers will assign addresses in the 192.168.0.x or 192.168.1.x ranges. If you wish to use a DHCP server for your computer, you can do that but the ESS still needs to use a static IP address in the same subnet. A direct connection to the ESS is the preferred way to go because there is no question as to whether there is enough bandwidth available to run your machine reliably.

We STRONGLY RECOMMEND THAT YOU DO NOT hook your ESS up to the same Ethernet adapter that you connect to the Internet with. There is no telling how much CPU and Ethernet bandwidth is being used up by other applications or other devices on the network. It is therefore officially discouraged. You are on your own if you wish to mix the Internet with your CNC data. However, if you wish to change the IP address of the ESS, you may do so with the Configurator Utility.

If the remainder of this section confuses you, don't worry.  The SCU in the next section will do all of the work for you in just a few mouse clicks!  The remainder of this section is just to document what the ESS uses and needs, you may skip to the SCU section.

The ESS comes configured from the factory with a default static IP address of  With your ESS at, you will need to assign your network adapter to use or another valid and unused address in the subnet.  We recommend that you keep the IP address assigned to your ESS, since all of our documentation and videos will use that value.  In fact MOST users keep this value assigned to their ESS.  However, if there is a need to change it, you may do so with the Configurator Utility.



ESS LED Status Codes

Near the middle of the ESS board is a red LED that should not be lit (silkscreen labeled "INIT").  When you first power the board, the red LED should blink for a short period ( about 1/4 of a second) and then go off.  Once you run Mach3, a green LED in the vicinity of the red INIT LED should light up.




Red LEDs

The Upper Left Red LED is not used, it will never be on, unless the microprocessor can't write to flash (a critical hardware failure that we have only seen once).

The Lower Left Red LED indicates the ESS device’s EStop input signal (controlled by your EStop Button):

  • If the Lower Left Red LED is on, the EStop is active inside the ESS, and the ESS will not generate any motion.  The EStop state inside the ESS can be caused by: Mach3/4 being in the disabled state (instead of enabled); Your EStop switch activated, forcing the EStop state; Your BOB is sending an EStop signal; a limit switch activated and forced an EStop condition.

  • When the Lower Left Red LED is OFF, you can generate signals with the ESS.


Green LEDs

The Upper Right LED indicates the ESS Mode.

The Lower Right Green LED indicates communications with the PC. 

  • Upper Green LED ON for 2 QUICK SHORT blinks; the Lower Green LED is OFF.  The ESS may be pinged in this mode.  This is the Normal Wait mode for the ESS when it first powers up, and it is waiting for a connection with Mach3 or Mach4. 
  • Upper Green LED ON SOLID.  The ESS may be pinged in this mode.  This is the Normal Run mode for the ESS, which means that it is (or was) connected to Mach3 or Mach4.  The Lower Green LED will do a very short and quick flash every time there is a data transmission with Mach.  You will typically see 10 or more blinks every second from the Lower Green LED when it is communicating properly with Mach.  When the ESS is in this mode, it cannot accept a new connection from Mach.   If Mach is closed and the ESS is still in this mode, you will need to power cycle the ESS before it can accept a new connection from Mach.
  • Upper Green LED ON for about 1 second then off for about 1 second; the Lower Green LED is OFF.  The ESS cannot be pinged in this mode. This means that the ESS is in BootP Configuration mode, which is only for use with the Configurator.  This mode can only happen when the small plastic jumper shorting out both of the BootP pins (JP1).  To exit this mode, remove the small plastic jumper from the BootP pins (JP1) and power cycle the ESS.
  • Upper Green LED ON for 1 LONG blink and 2 SHORT blinks; the Lower Green LED is OFF.  The ESS cannot be pinged in this mode.  This means that the ESS lost its IP address configuration in its flash memory.  The only way to fix this is to run the Configurator and give it an IP address again.  After running the Configurator, you will need to power cycle the ESS, and it should go into normal Wait mode (as long as there is not a jumper on JP1).



The Ethernet Jack has two LEDs on it. The upper left one is yellow. This is an important status LED. It represents the status of the Link Layer. If a link has not been established, the yellow LED will not be on. The link layer is a low-level Ethernet layer that needs to be present between your ESS and your PC in order for the higher-level communications to run.

The upper right LED on the Ethernet Jack is a green LED.  This green LED will flash whenever data is transmitted or received through the Ethernet Jack. 

  • When in normal operating mode (BOOTP jumper removed) connected to Mach it will blink multiple times per second, or appear to be on almost solid. 
  • When in config mode (BOOTP jumper shorting out both pins) the ESS transmits a request for an IP address about once per second.

The Red Led next to the FPGA (Init) should have one quick blink right after power is applied on a functional ESS.  The LED should then turn off for the rest of run time.  If the the Red Init LED is on solid, that means that the FPGA cannot clear its memory, or that there is a voltage problem on the 1.2V or 3.3V internal power rails.



Pin Numbering

Numbering of the 26 pin headers (0.100" or 2.54mm pitch)

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 use this parallel port numbering format (since that is where this industry started).

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


Here is a color coded map to all of the ESS ports and the IO types for their pins. 



Dedicated Input Pins

Pins 10, 11, 12, 13, and 15 of all 3 ports

These pins are rated for 0 to 5V.   Never go negative or exceed 5.5V or damage will occur!

Please note that the 4.7kOhm pull up resistor will pulled up the input if there is not an external circuit adequate to pull it low.  The Schmidt trigger will be high impedance and not consume any input signal current (of significance). 

  • The 4.7kOhm pull up resistor, will constantly try to pull the Schmidt trigger's input pin up to 5V (Okay I am neglecting that diode drop, but it will still be above the Schmidt trigger's high voltage threshold). If the pin has no external circuitry connected to it, it will be pulled high.
  • Applying an external 5V to the pin will just assist the pull up resistor. Since there is no circuitry to consume current, you can try to input as much current as you would like to at 5V, it just won't consume any current (other than a very small amount during the transition from low to high).
  • An external 0V applied to the pin, will will need to fight the pull up resistor. Since I = V/R =5V/4.7kOhm = 1.06mA you will need to be able to sink a little over 1mA to pull that node low. (if you include the diode drop, the pull up current is just under 1mA.) You will need to be able to sink at least 1mA to overcome the pull up resistor, and sinking at least 2mA will quickly defeat the 1nF cap and allow for reasonable switching times.  Your external circuit can have the capability to sink much more than that, but 2mA is the recommended minimum.
  • When the ESS is powered, but not yet controlled by Mach3 or Mach4, these pins will be pulled high (about 4.5V up to 5.5V based upon your power supply voltage).  Any external circuitry that is sourcing or sinking a current to/from the pin will change the state of the pin. 
  • The low pass filter of the 1 nF capacitor and the 100 Ohm resistor has a 3 dB cutoff frequency of 1.5 MHz, which will limit the maximum frequency to about there instead of the 4 MHz capable on the bidirectional input pins 2-9 on ports 2 and 3.

Dedicated Input Pins



Dedicated Output Pins

Pins  1, 14, 16, and 17 of all 3 ports.  Plus pins 2 through 9 of Port 1

These output pins are rated to deliver 0V to 5V, but may go as high as 5.5V if your power supply is sourcing that voltage.  These outputs may drive (source) up to +24mA of current (in positive logic or active high mode) or sink up to 24 mA of current (in negative logic or active low mode).

Please note that each of these pins has a dedicated 47.0kOhm pull down resistor.

When the ESS is powered, but not yet controlled by Mach4 or Mach3, these pins will be pulled low, down to GND.  After Mach takes control of the ESS, the unconfigured pins will stay the same, and the configured pins will be determined by your settings.  Any external circuitry that is sourcing or sinking a current to/from the pin will change the state of the pin, but since this is a dedicated output, there should not be any circuity trying to control this pin. The external circuitry should only be reading this pin's value.

Dedicated Output Pins

On Rev 2 and earlier versions of the ESS, the 74ACT541MTC was used on the Dedicated output pins.  We then made a Rev 3 board that replaced the 74ACT541MTC with the 74LVC8T245PW to reduce part numbers and provide a 32 mA drive instead of 24 mA drive.  This is shown in the Bidirectional I/O section just below, but is limited to outputs only for the dedicated output pins.


Bidirectional I/O Pins

Pins 2 through 9 of Ports 2 and 3

These pins are rated for outputting 0 to 5V, but may go as high as 5.5V if your power supply is sourcing that voltage.  Their output current is designed to drive (sink) +(-) 32 mA.

These pins are rated for an external input voltage of 0 to 5V.   Never go negative or exceed 5.5V or damage will occur!

Please note that each of these pins has a dedicated 47.0kOhm pull down resistor.  This pull down resistor will not have any significant effect in output mode, other than assuring the output will be pulled low in an un-powered state.

In input mode:

  • The 47.0kOhm pull down resistor, will constantly try to pull the input pin down to 0V. If the pin has no external circuitry connected to it, the input pin will be pulled low.
  • Applying an external 0V to the pin will just assist the pull down resistor. Since there is no circuitry to consume current, you can try to sink as much current as you would like to at 0V, it just won't consume any current (other than a very small amount during the transition from high to low).
  • An external 5V applied to the pin, will will need to fight the pull down resistor. Since I = V/R =5V/47kOhm = 0.106mA you will need to be able to source a little over 0.1mA to pull that node high. You will need to be able to source at least 0.1mA to overcome the pull down resistor, and sourcing at least 0.2mA will allow for reasonable switching times.  Your external circuit can have the capability to sink much more than that, but 0.2mA is the recommended minimum.
  • When the ESS is powered, but not yet controlled by Mach4 or Mach3, these pins will be pulled low, down to GND.  After Mach takes control of the ESS, the unconfigured pins will stay the same, and the configured pins will be determined by your settings.  
    Any external circuitry that is sourcing or sinking a current to/from the pin will change the state of the pin.  If the pin is set as an output, there should not be any external circuity trying to control this pin; the external circuitry should only be reading this pin's value.

Bidirectional IO Pins




Expansion Port Header

The Expansion Port header is not operational this time. Boards will be available for it soon. These I/O signals have a maximum voltage of 3.3V.

Din RailExpansion Port





Mechanical Details

The mounting hole that is in the upper right corner (next to the 5V power input) is grounded to the shield of the Ethernet jack.

The other 3 mounting holes are not connected to anything. If you use a shielded Ethernet cable, the shield will be connected to the chassis if you use a metal standoff that connects to the chassis.

It is best to ground a shielded cable at one end only.  It’s hard to say whether it may or may not be connected to Earth ground on the PC side.

Here is a drawing showing the board dimensions, mounting hole locations, and the locations of the connectors: Mechanical Diagram in PDF.

Here is the Eagle PCB file for Breakout Board Designers.  It shows the ESS's outline, holes and connectors.

Technical Details

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


PC Shutdown and Restart Procedure

This is our recommended shutdown and startup procedure for your PC, Mach, ESS and CNC rig.



1) Activate the hardware E-Stop (this should prevent any more movement by your machine by removing power and/or enables from your motors)

2a) If your ESS has a separate power supply that you can control (RECOMMENDED):  

  • Power down the CNC rig
  • (This allows the ESS to still be in control of all output pins for your CNC rig)
  • Close Mach, which will also gracefully shut the ESS down now
  • Power down the ESS

2b) If your ESS is powered by the main shutoff for your whole CNC rig:

  • Close Mach, which will also gracefully shut down your ESS
  • Power down your CNC rig including the ESS

3) Close related CAM applications like SheetCam (we don't recommend running other software at the same time as Mach, just in case it crashes or slows your machine down, but we realize many of you use it anyways)

4) Shutdown Windows. Power off your PC



1) Start your PC.  Allow it to fully load into Windows and initialize all hardware and software (especially the Ethernet port).

2a) If your ESS has a separate power supply that you can control (RECOMMENDED): 

  • Power up the ESS (This will allow the ESS to control all output pins for your CNC rig before it is powered)
  • Start Mach
  • Power up the CNC rig

2b) If your ESS is powered by the main shutoff for your whole CNC rig:

  • Power up your CNC rig which includes the ESS
  • Start Mach

3) Clear Hardware E-Stop (this will supply power or enables to your motors)

4) Clear Software E-Stop in Mach


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. 

The User's Manual is in PDF format, and was a rough draft, and contains a few short videos:

Go to top