Fitting the TMC Spindle Speed Controller to a Sherline Mill

This note details a recent project that fitted a serial spindle speed controller (SSSC) to my Sherline 5400 mill.


The controller in question is the serial (RS232) driven controller from Randy Ray at Texas Micro Circuits

The setup notes that Randy supplies with this unit are a MUST READ item. The information here is supplemental and is designed specifically for folks who aim to use this fine controller with a Sherline mill.

Further, the details here will show how to configure the excellent Mach3 software to work with this spindle speed controller.

The name 'Serial Spindle Speed Controller' really doesn't do justice to this unit. It actually is a 'Spindle On/Off' AND a 'spindle speed controller'. The ability for the controller to turn off power to the spindle motor is a great facility. If you have ever left a long milling job running unattended, you will know that it is annoying to come back to find that the job is complete, but the motor is still running. With this unit fitted, this will no longer happen.

I also wanted to keep the option to control the speed of the spindle manually - via the potentiometer on the Sherline, so this project will add a small 'manual/auto' select toggle switch to the existing control box that is mounted onto the mill.

This note assumes that:

  • you have Mach3 as your CNC control software
  • your copy of Mach3 is a registered one (the demo version won't drive the SSSC)
  • your Mach3 control PC has a spare serial (RS232) port

You will need (at least) the following:

  • a TMC, Serial Spindle Speed Controller
  • a relay module to act as an automatic on/off switch for power to the motor
  • a suitable enclosure for the controller unit
  • a power cord to supply mains power to the controller unit
  • a small single pole, double way, toggle switch
  • a multimeter capable of measuring DC voltages
  • a suitable hex key and small screwdriver to open the Sherline control box
  • a soldering iron, solder, some insulated hookup wire and wire cutters/strippers
  • a bottle of tipex for marking components
  • an appreciation of the dangers of working with 'mains' voltages
  • the ability to read and follow instructions
  • basic soldering skills
  • the ability to copy and edit files under Windows
  • allow three hours, more if you work slowly

Safety First! Since we are going to connect mains power to the unit and we are also going to open up the speed regulator box that is mounted onto the Sherline mill, we must take special care. Mains voltages can be lethal. You certainly don't want water or cans of beer on the workbench (especially if you have drunk any of the beer!). Ideally, you won't work alone.

A mandatory read is the User Guide that Jim publishes on his support webpage. This contains important caveats and disclaimers. Do read all of this document. The notes on this page are designed to complement the formal User Guide from Sound Logic, not to replace it.

Next, it is a good idea to check that the existing spindle control on your mill is still operational. Check that there are no loose tools fitted to the spindle, then power it on and check that adjusting the potentiometer on the existing controller actually varies the spindle speed - if it doesn't you will need to get this fixed before proceeding.

Now, flick the power switch back off, unplug your mill from its power supply and attempt to power back on - just to be sure that you have actually disconnected it properly. Of course, the motor should now no longer power on.

I started by mounting the Spindle controller unit into a small enclosure. When doing this, keep in mind that you should allow sufficient space around the edge of the unit for wiring up the terminal blocks. The case that I used measured approximately 7“ x 6” x 2.5“

You will need four standoffs to allow the unit to sit above the bottom of the case.


Randy provides a handy .dfx file which contains the drill hole info for mounting the standoffs on his support webpage.

Ideally, I'd have used a case that was big enough to house both the spindle speed controller and the relay board. However, I didn't have a large enough case to hand. Being of the 'use what you have' school, I decided to use a second, smaller, case from my stock of parts. This will mount on top of the main case - a little more work, but keeps my costs down.

The spindle controller is powered by a mains supply. There are two jumpers (J4) on the PCB which allow the selection of 115V or 230V operation. Be sure to set these to suit your local supply (mine is 230V). The unit draws very little current. I decided that the best way to power this was via an old 'kettle lead style' PC power cable. Rather than bother to fit an appropriate socket to my enclosure, I simply cut off the female end and drilled a hole in the enclosure to allow a strain relief grommet to be fitted. It's important to fit strain relief of some sort as we don't want an unintentional 'pull' on the cable to unseat the internal wiring.

Fit a low rating of fuse to the plug on your cable (I used a 3A fuse).

The spindle speed control board can switch an external relay to control power to the Sherline motor. Note that you have to find your own relay. There are a couple of ways of attaching this relay. If you have a 12V relay you can attach this to the 'Run' terminal on the edge connector.

Alternatively, if you have an opto-isolated relay module, you can solder a couple of wires acress the 'Run' LED (the green one) and drive your opto isolator directly. Since I had an opto isolated relay module to hand, I used the second of these options.

See the circuit below for details of how to add a non-opto isolated relay.

The next step hooks the controller up to the Mach3 PC.

Connect the serial port on the controller to the serial port on your Mach3 PC (using the supplied DB9 cable).

The controller is driven by a custom written Plugin for Mach3. The latest version of this Plugin is available to download from here.

Copy this Plugin into the Mach3\plugin folder on your Mach3 PC.

Next, you need to edit your Mach3 xml configuration file. Use the Windows Notepad editor to do this. Add the following text near the end of the file - just before the last </profile> tag.


Now, start Mach3 and open the Config/Pulleys menu. Set the 'Max pulley' to the maximum RPM of your spindle. Set 'Minimum pulley' to the slowest RPM that your motor can run at without over heating. Set the 'Ratio' to 1.

Navigate to the Mach3 'Run' screen and enter the 'Max pulley' value into the RPM DRO.

We are now ready for the Bench Test.

  • Plug in the controller power cable
  • Using Mach3, toggle the spindle on - you should see the Green 'Run' LED and the 'CW' Red LED come on
  • Using your multimeter, measure the voltage between TP-1 and TP-2. Adjust VR1 for 10.0VDC.
  • Set the RPM on the DRO to ½ maximum RPM. Verify that the voltage drops to 5.0VDC
  • Load the following G-Code into Mach3
M3  (Spindle On)
S1000  (1000 RPM)
S2000  (2000 RPM)
S5000  (5000 RPM)
M5  (Spindle Off)

Start this job in Mach3 and observe that the relay switches on and off at the appropriate times.