Makita RT0701C - G-code control of spindle speed project

I have been working on a project (off and on) for a couple of months to control the functionality of the Makita RT701C via software.

So far, I have worked on several modules and have each one working by themselves to the point where I know that I can make it work. I just haven’t put it all together yet.

What the device can do: M3/M4 (on only, non-directional) and M5 work. S0 works (when the S parameter is set to zero the spindle stops rotating). The S parameter works to set spindle rotational speed (RPM). Right now the speed control software is hard coded to match the min and max settings specified in the grbl config.h file. This device works with grbl version 1.0c (the edge fork). It could be used with version 0.9j with a small reduction in functionality.

What it doesn’t do. The prototype does not maintain constant RPM with changing load on the router. The Makita has this function built in.

At present, this is a Makita only device. Depending on final implementation it might work with other routers (I only have the Makita for testing).

At this time I have not decided on the exact modifications that will be required to make the Makita work with my device (there are options).

Any method that I choose as the final modification will VOID the Makita warrantee.

I’m in the prototyping phase so I don’t have any idea at this point what the final cost of the device will be, or even if there will be a device. I’m going to put it on my machine.

Would like to hear from the forum members as to whether or not there is any interest in having this device available for sale (maybe partial kit, or plug and play).


well i build the controls outside the machine and put the controls on my table for adjusting the speed. Its just 3 wires.
If you looking for what number the speed is, it’s standing in you’re users manual

You’ve missed the point of this project.

What I am doing is setting things up so that the spindle speed is controllable by G-code.

I use V-carve Pro and it let’s you enter a spindle speed as part of the set up for a specific tool, either mill or bit.

Once this is done all I’ll have to do is select the tool that I want and V-carve Pro knows the correct spindle speed for that tool and sets the speed in the G-code file.

What my project does is to allow the Makita router speed control to be controlled by the value that is in the G-code.

1 Like

This sounds very interesting, I am “working” on a DIY PID,
I would love to be able to let Vcarve alter the speed in Gcode.
How far are you from release?

I’d be interested but only if it works with 230V.

There would be a requirement for a low level voltage source for the electronics (at this time it looks like it would be somewhere in the 7-24 VDC range) and the appropriate Solid State Relay. Most of the SSRs I’ve looked at handle 230-240 VAC.

I was a little surprised at the lack of interest in this, so it may turn out to be an interesting exercise and a nice addition to my X-carve.

At this time my project doesn’t do the PID function as the Makita has that built in.

Interestingly, there is a PID library for the Arduino.

I may have a spare Makita soon, so I would be interested in this.

@LarryM I am making an honest attempt at using a Arduino Leonadro to try and do a DiyPid you can look in X-carve/Upgrades for my explaination, your Vcarve speed control will slot into my “system” very well, if and when I get it working.

I’ve made some progress on this project.

At this point I would like some input from those users that have variable speed spindles.

How do you select the spindle speed for a project, and do you really use the ability to finely tune the spindle speed?

Would you typically use say 8000 rpm, 9000 rpm, 10000 rpm?

Or, would you use something like 8010, 8020, 8030, 8040 8050, etc.?

What is the granularity of the spindle speeds that you actually use?

Does it make a difference to use 8000 rpm as opposed to 8002 rpm?

What percentage of drift is not important 1 percent, 10 percent, 20 percent?


Here’s the setup for the Makita speed controller. Left foreground is a standard SSR for turning the AC voltage on and off. Router in the back left.

Back right is a board stack that is acting like an X-carve (easier than putting the X-carve on my desk)

Center foreground is a standard RC servo hooked to a dual gang potentiometer that is substituted for the speed control potentiometer in the router.

Center back is the brains. All the hardware is working and I have some rudimentary software installed just to check out the hardware. It can control the speed of the router based on standard output from grbl so any program that generates G-code can use the device. It has the capability of implementing a tachometer as a future project. Would just require an external pickup for measuring the RPM.

Since I had to go with the servo/potentiometer solution it would most likely work on any variable speed router.

It’s been a fun project. Now it’s just a matter of how much I want to tweak the software to improve accuracy and repeatability.

Sorry I didnt see your input regarding variable speed “notches” as I was away in England visiting my sister…

I suspect 1000rpm increments is good enough.

Drift… I have no way of assessing, but I would imagine plus or minus 500rpm is way better than anything I have now.

It looks like your doing fine, keep up the good work.

regards Neal

What resistance potentiometer are you using?
Depending on what it is, it may be easier to replace the servo with a digitial potentiometer.
Or it may not even be needed. The Makita may be using the potentiometer to adjust a voltage reference which tells the router how fast to go. Emulate that directly and get rid of the potentiometer completely. Use simple analog circuitry to convert a PWM into a flat voltage.
Any ideas on how the speed is controlled on the Makita?

Tried the digital. That was my first choice, but that didn’t work (even Microchip guys couldn’t figure it out).

Any connection to the control wires caused the router to run full speed.

So, I just isolated the pot.

I maybe way off target but there is a guy called AVE on youtube and he does tear downs of different machines, i think he says they used a Hall sensor switch, I will try and find it.

I finally got some more time to work on this project and since I was messing around in the electronics I decided to go ahead and build a controller for my next machine. I still have some clean up work to do on the Makita and some software tweaking to finish. I went ahead and added the tachometer to the system.

Now all I need is that robust machine I’m hoping Inventables is working on. :smile:

1 Like

Here’s the wrap-up for this thread.

All of the hardware is working as expected including the added tachometer function.

Now I have a little software clean-up to do and then I can put this controller to work. It’s a little overkill for what I have now, but it is very expandable for the next machine that I build.


Master A/C switch (all non USB power)
One master switch A/C outlet
Two G-code controlled ganged A/C outlets (one SSR controls both, could be split if needed)
600 watt 24 volt power supply
Reset/Feed Hold/Cycle start switches
Probe/XYZ Homing switch inputs
Router speed control output
4 axis (two can be used as Y1/Y2) 4.5 amp stepper motor controllers
Main controller is the Arduino running grbl version 0.9j (and sometimes testing with 1.0c)

I’ve had a lot of fun putting this together.


It took me about 4 different circuit designs to get it working. I destroyed my router the day I got it as I had no idea what was inside the potted control box. After a autopsy I found out that there was no microcontroller inside. There was a Telefunken U211B3 chip instead, which is designed in 1996 by the way. I think I killed the chip as I tried to connect it straight to my Arduino which was powered by an earthed USB. I got a new control box from Ebay and for some reason its voltage was 5.2V and my first one’s was 3.6V. Maybe it has completely different chip inside it.

Next I tried my circuit with an opto-isolator. The problem was that the control box could supply next to no current at all. 0.5mA of current collapsed the controllers voltage and limited the RPM range I could get from it. The solution was to add a double insulated power supply and a linear regulator that I used to fine adjust the voltage. This way I did not have to worry about current consumption of the digital potentiometer and the isolator. Now I can even widen the RPM range on the router by making the voltage just a bit higher.

I attached a schematic below. I have only tested it on the bench as I have not yet built my CNC. I have no idea if the router has enough torque on the low RPMs.

I take no responsibility so use this circuit at your own risk and only if you understand what is going on with it. If you have questions I can try to answer them but I am not an expert on electronics.
Makita_speed_controller_MCP4161.pdf (66.8 KB)

1 Like


Thanks, for posting your control hookup. I’ll check it out. It is a better solution than what I came up with, but I didn’t have any information on the internals of the Makita control circuit.

Do you remove the Makita speed controller, or parallel your device with the Makita controller?

I just removed the original potentiometer. You could add a switch to switch between the two though.
The leads with alligator clips are coming from the routers control box. The 9V power supply is coming to the back side of the breadboard.

1 Like