News Archive
Buy Now
Payment, Shipping & Returns
Privacy Policy

  Sample Gcode
Leadscrew Cover
PCB Cutout
Pinion Gear
G64 Path Blending
Fusion 360 Clamps
Fusion 360 Threads

  Hardware Example
Shapeoko 2
Gecko G540
Sherline 3D Printer











rt-stepper products
USB to DB25 dongle
Arduino Leonardo dongle
4-axis motor drive
sensor kit
  • Converts parallel port CNC controller to USB.
  • Both manual and auto CNC operations supported.
  • PC software runs on Windows, Linux and Mac OS X.
  • EMC/LinuxCNC compatible.
  • CAM compatible with Fusion 360.
  • Measure spindle speed in RPM.
  • Synchronized threading.
  • Integrated 4-axis motor drive CNC controller
Please note, rt-stepper dongle hardware does NOT use Mach3 software.

March 24 2023, Sorry the last PIC16F1459 rt-stepper dongle has been sold.

January 2023, My current inventory is now down to one PIC16F1459 rt-stepper dongle plus sensor kit. Once that is gone I will be fully retired. I will still maintain this web site for product documentation and to answer any questions. I feel there are 32-bit USB/CNC solutions available now and I plan on checking some of them out myself with my own CNC project. Note the Arduino Leonardo rt-stepper dongle FW is still available free for DIY projects.

May 2022, announcing the rt-stepper dongle firmware REV-3f for Arduino Leonardo is now FREE. No more FW lock to the customer's ATmega32U4 processor SN. You may download the FW here from this web site unencumbered. The free Arduino Leonardo FW is fully functional, no crippled functionality. I have sold many FW copies since it was first released in June 2020 so it is well tested. Note the FW will only run on an ATmega32U4 processor like the Arduino Leonardo, Pro Micro or Arduino Micro. I will continue to sell my current products based on the on the PIC16F1459 until my current inventory runs out.

February 2022, note I'm using a different email address now. Godaddy no longer has free domain hosted email such as So please use my gmail email account listed at the bottom of the page.

July 2021, announcing new lower price for the rt-stepper dongle with case. Now each PIC16F1459 based rt-stepper dongle comes with a custom 3D printed case. The custom 3D printed case is very similar to the original custom CNC case. If you have a rt-stepper dongle without a case the stl files are available here - case top, case bottom. The case is held together with two M3x20 screws and nuts. Material used is ABS with 0.1mm layer.

April 2021, If you want make your own rt-stepper dongle case here is a nice 3D printed case that snaps together. Special thanks to Nyles Nettleton for designing this case. His stl files are available here - case top, case bottom. Material used was PETG with 0.2mm layer. This case is for the PIC16F1459 based rt-stepper dongle. Eventually the custom CNC built dongle case will be retired once inventory is gone.

June 2020, announcing rt-stepper dongle firmware REV-3f for Arduino Leonardo. Right now this is a firmware only product that you can download electronically then flash on your own Leonardo board. This is exciting because Arduino Leonardo boards are very inexpensive and easily obtain world wide. You can now have a working rt-stepper dongle without the cost of shipping. Note the firmware will only run on an ATmega32U4 processor like the Arduino Leonardo, Pro Micro or Arduino Micro. Based on the new Leonardo support the previous rt-stepper dongle breakout board has been retired. I will continue to sell my current products based on the on the PIC16F1459 until my inventory runs out.

The REV-3f firmware supports all the same functions as the old dongle plus the following new features.

  • Step resolution is 62,500 hz versus 46,875 hz
  • ATmega32U4 is 25% faster than the old dongle based on the PIC16F1459
  • Four digital INPUT0-3 instead three
  • Three digital OUTPUT0-2 instead of two
  • INPUT2-3 are programmable digital or ADC
  • OUTPUT0-1 are programmable digital or PWM
  • User can flash firmware on Windows, Linux or Mac OS X
You will need PyMini software release 2.10 in order to use the new REV-3f firmware features. PyMini 2.10 is still backward compatible with the older dongles.

For previous announcements see the News Archive.

Eckler Software offers a unique USB solution for CNC controllers with the rt-stepper USB-to-Parallel dongle. Users can use the rt-stepper dongle to convert a parallel port CNC controller into a USB CNC controller. Designers can integrate the rt-stepper dongle hardware into there own CNC controller. The rt-stepper 4-axis motor drive CNC controller is a good example of integrating the dongle hardware with the Pololu/StepStep A4988 carriers.

Most CNC controllers are designed to be driven with a PC parallel port. Unfortunately parallel ports are thing of the past and many new PCs have no parallel port. Commercial USB-to-Parallel dongles do exist, but these dongles are designed for printers not CNC controllers. CNC controllers require XYZ step/direction signals. With the rt-stepper dongle you can now drive XYZ step/direction signals over the USB bus.

Driving a CNC controller with a PC parallel port requires a real time OS otherwise the stepper motors can loose synchronization. With the rt-stepper dongle this restriction is removed. The rt-stepper dongle provides the real time stepper motor control which means you can now use your favorite OS such as Linux, Mac or Windows. Each dongle provides a step resolution of 46,875 Hz.

Most commercial gcode interpreters do NOT support laptops with parallel port chipsets. This is not a problem with the rt-stepper dongle. You can use any Linux, Mac or Windows laptop or netbook with USB support. Laptops can provide dedicated CNC setups with minimal investment and work space.

PyMini is a powerful minimalist graphical user interface written in python which has the same look and feel in Linux, Mac and Windows. A user can write their own gcode program using their favorite text editor or run a CAM generated gcode program on PyMini. You can verify the gcode program with or without the dongle connected and view the xyz paths executed on the backplot panel.

There is only one process that runs on the PC - PyMini. PyMini is a GUI front-end program that communicates to the dongle. Both manual and auto CNC operations are supported. With a index pulse connection the dongle will measure spindle speed in RPM. PyMini main screen is showed below, for information see the PyMini documentation.

The PyMini software uses the same gcode interpreter and trajectory planner as the EMC/LinuxCNC project. In fact PyMini GUI functionality is based on the EMC/LinuxCNC Mini GUI which was written in TCL/TK instead of python. See the "Gcode Overview" section at for gcode syntax. Note, mcodes are handled differently in PyMini. Most mcodes are implemented via python plugin scripts. This means spindle, coolant and homing can be executed via custom python scripts.

I started using EMC back in 2002. I developed this product after using EMC for several years with my Sherline CNC mills. EMC worked great, but requires a PC with a real-time kernel and a parallel port to control the mill. Now I have the best of both worlds EMC/LinuxCNC based software with no real-time kernel requirements.

I have two mills and two CNC controllers - Camtronics and Xylotex. I now use the PyMini software exclusively. I can use the latest notebooks, which have no parallel port, with my old CNC controllers. I have since retired my old Camtronics and Xylotex controller, now I use the Sherline 8760 and rt-stepper 4-axis motor drive which are faster.

Originally I built the dongle PCB and custom case on my mill. Now the dongle PCB is made at a local USA circut board manufacturer, and the custom case is 3D printed in house. I still cutout the PCBs with PyMini, you don't get a feel for a product unless you use it.

I used Eagle CAD to develop and build the PCB. The engraving software I used for the original CNC case is called engrave-11-inline. Engrave-11-inline is a good example of using a real programming language, in this case python, to develop gcode output. In the interest of saving time I do not engrave the custom 3D printed case.


A 3D printed custom case now comes standard with each rt-stepper dongle.

Buy one rt-stepper dongle $68 + 5.35 shipping (US address only).
Option Retired!

Buy one rt-stepper dongle $68 + 16.95 shipping (non-US address only).
Option Retired!

Buy one rt-stepper dongle with sensor kit $85 + 5.35 shipping (US address only).
Option Retired!

Buy one rt-stepper dongle with sensor kit $85 + 16.95 shipping (non-US address only).
Option Retired!

Download the free rt-stepper dongle REV-3f firmware for Arduino Leonardo here.

The Arduino Leonardo rt-stepper dongle is available for breadboarding or hard wiring your own connectors. No we are not selling Arduino Leonardo boards, but we are giving away the rt-stepper dongle REV-3f firmware (hex file) that runs on the Leonardo. Note the FW will only run on an ATmega32U4 processor like the Arduino Leonardo, Pro Micro or Arduino Micro. For example the FW will NOT run on the Arduino Uno or Arduino Mega 2560. Reference the above picture for leonardo pin and LED identification. By convention for each step/direction name the Pn number corresponds to a DB25 pin number which is recognized by PyMini software.

The REV-3f firmware supports all the same functions as the old dongle plus the following new features.

  • Step resolution is 62,500 hz versus 46,875 hz
  • ATmega32U4 is 25% faster than the old dongle based on the PIC16F1459
  • Four digital INPUT0-3 instead three
  • Three digital OUTPUT0-2 instead of two
  • INPUT2-3 are programmable digital or ADC
  • OUTPUT0-1 are programmable digital or PWM
  • User can flash the FW on Windows, Linux or Mac OS X

See the PyMini documentation on how these signals are used.

Arduino Leonardo board requirements.

  • Board must be 5v, 16mhz
  • A ICSP programmer (USBasp) must be used to flash the FW (I use this 6-pin programmer ebay)
  • Use Avrdude with the ICSP programmer to flash the FW with the following command
  •    avrdude -p atmega32u4 -c usbasp -u -U flash:w:rtusb_leonardo.hex
  • The bootloader will be replaced by the FW
  • The Arduino IDE can NOT be used to flash the FW
  • Once the FW is flashed the board will function as a rt-stepper dongle
  • After downloading the REV-3f FW be sure to verify the hex file with the md5 checksum after unzipping. I had a report that the windows default unzip munged the hex file.
  • Once the board is flashed run the command line program rt-test to verify the FW. rt-test is a python program that comes with the PyMini package.
  • The free REV-3f FW has a unique USB SN descriptor. This means multiple Arduino Leonardo boards flashed with the FW will have the same USB SN. This not a problem unless you try to run multiple Arduino Leonardo boards from the same PC. PyMini will not be able to identify which board is which via the USB SN.

For wiring reference here is a schematic which shows how a Pro Micro ATmega32U4 can be used to replicate the standard rt-stepper dongle. This configuration can be used with the Sherline 8760 CNC controller. Use the leonardo.ini file with this configuration. The Pro Micro is very similar to the Arduino Leonardo, the same REV-3f FW works for both. Here is another rt-stepper dongle example using an Arduino Leonardo with all off-the-shelf parts.

Board Retired!

The rt-stepper 4-axis motor drive is a complete CNC controller with the rt-stepper dongle hardware fully integrated. Each axis is independently controlled using standard StepStick A4988 carriers. This 4-axis motor drive lets you control bipolar (4 wire) stepper motors. Unipolar (6 or 8 wire) stepper motors can also be controlled as bipolar stepper motors when properly connected.

The StepSticks that come with the 4-axis motor drive are adjusted to 1A current limit. These StepSticks use 0.1 ohm sense resister with a max current of 1.5 amps. You can set the current limit using this formula.

0.8 = 1 * 8 * 0.1 (vref = current * 8 * sense-resister)
For a 1A current limit the StepStick pot is adjusted 0.8VDC (vref). You can do this with no motor plugged in. Measure vref at the pot wiper, clockwise increases vref, counterclockwise decreases vref.

All StepSticks in the 4-axis motor drive are socketed so they can be replaced. Stepsticks need heat sinks for 1A or higher operation. The heat sinks must be installed using thermal glue otherwise the heat sink will fall off once the sticky tape heats up.

The 4-axis motor drive is designed to handle 12-24VDC 5A. This means the design allows for 4 motors running at 1.25A or 3 motors running at 1.66A. This is plenty of power for running NEMA 17 or NEMA 23 stepper motors. Even with StepSticks set to 1A current limit I had no problem running my Sherline machines.

Please note, the 4-axis motor drive does NOT come with a DC power supply. You can purchase an appropriate power supply here at amazon.

There are four jumper areas JP1-4 for selecting motor step size. Use this table for selecting the step size for each motor.

1, 2
3, 4
5, 6
JPn pins
full step
1/2 step
1/4 step
1/8 step
1/16 step
The X specifies what pins to jumper. In the above picture each motor was set to 1/4 step size, JP1-4 pins 3 and 4 are jumpered together.

PyMini uses a configuration file to set runtime options. Here are two configuration file examples - stepstick_5000.ini and stepstick_shapeoko.ini. The stepstick_5000.ini is for my Sherline 5000 mill and stepstick_shapeoko.ini is for my Shapeoko 2 CNC router. In the configuration file you can define how each axis maps to a motor connector. For example stepstick_5000.ini axis X,Y,Z,A are mapped to connector X1,X2,X3,X4 respectfully and stepstick_shapeoko.ini axis X,Y,Z,Y are mapped to connector X1,X2,X3,X4 respectfully.

The RJ-11 connector is fully compatable with rt-stepper sensor kit. This connector is also useful for wiring limit switches and digital outputs see the PyMini documentation. The 4-axis motor drive schematic can be referenced here.

Here is an example of how to wire a Sherline 6-wire stepper motor to the 4-axis motor drive 4-wire connector. If the stepper motor wire colors do not match you can confirm the coil wires with an ohm meter. Note the black and white center tap wires are not connected.

By default the stepstick ini files will define connector X1 = X-axis, X2 = Y-axis, X3 = Z-axis and X4 = A-axis.
Overall Dimensions: 4.04 in.(L) x 3.11 in.(W) x 0.85 in.(H)

Buy one rt-stepper sensor kit $22 + 5.35 shipping (US address only).
Option Retired!

Buy one rt-stepper sensor kit $22 + 16.95 shipping (non-US address only).
Option Retired!

The rt-stepper sensor kit creates the index pulse for measuring the spindle speed. The kit as shown in the above picture provides all the necessary hardware for mounting to a Sherline spindle motor. Each kit bolts on to the DC speed controller case with no modification made to the Sherline equipment. Use the above picture for reference when installing.

The plastic sensor mount is made out of ABS. The black disk with reflector tape is made out of light absorbing black construction paper. Since the disk center hole is a tight fit it can be placed on the spindle pulley with or without using a glue stick. The 3/4 inch socket head screw replaces the original 1/2 inch socket head screw.

Use the provided RJ-11 cable to connect the sensor board to the rt-stepper dongle. No additional wiring is necessary for the sensor when using the rt-stepper dongle with RJ-11 connector. The generated index pulse is connected to the dongle on INPUT0 (DB10). A straight through RJ-11 cable is required not a reversed wired cable.

For optimal sensor sensitivity the distance between the sensor and the black reflective disk should be 1/16 inch (0.0625). After tightening down the sensor mount make sure the distance is correct. The mount is slotted so you can adjust it up or down with the socket head screw.

Save on shipping with multiple orders to the same address. Here are two options for multiple orders.

  • Send me your order reqest via my email address below and I can email you a PayPal money request. Be sure to include your shipping address with your email request.
  • Click the PayPal button for each order and I will refund you the extra shipping cost. Actual shipping will be adjusted to a single shipping charge (at shipping time).

The rt-stepper dongle hardware is based on the Microchip PIC18F2455/PIC16F1459 processor. If you are board designer and would like to integrate the dongle hardware into your own application. I am willing to sell you preprogrammed pic chips for your application. Based on my sublicense agreement with Microchip this arrangement works best because each pic chip must be programmed with unique USB descriptors (ie: pid/vid, serial number, product ID).

Be sure to use the rt-stepper dongle as your reference design with your application. Because any hardware or software support would be based on the dongle only. Please email me for more information.

© 1996-2023 Eckler Software

Last updated March 24, 2023