Making your own powerful Controller on the cheap side

I will make you one up today and get it in the mail. Is your mailing address the same as it was when you placed your original order on 4/6/16?

I think that may require some modifications to the vertical column to allow the ballscrew to pass through and a longer Y axis screw. Having the motor on front does extend it out further than the hand wheel is originally but I haven’t found it to be a problem to be honest. As for a step one two three, I don’t think it really matters. I just made all the similar parts as I went along. Making the square tube parts first though will allow you to test fit the bearing blocks and motor mounts as you make them to insure a proper fit. Probably the most critical part to make are the bearing blocks. When boring the holes for them, be sure to take very small passes when you are getting close. They bearings should fit without any wobble. Not a press fit but definitely not loose either.

One of the first things I made was the controller so I could do test fits with the X axis first and run it side to side making sure that it worked smoothly before I started on the Y axis assembly and tested it. The last thing to assemble is the
Z axis. If you are doing it by yourself you might want to invest in a Engine Hoist. The head of that thing is heavy and you darn sure don’t want to drop it. Also be sure to watch the video of removing the spindle motor. Mine was stuck on just like the one in the video and when it finally breaks free it can bight. I bought a engine lift from harbor freight and it works perfect for removing the head with the motor still attached. That way I don’t think you will even have to remove spindle motor. Just make sure it is securely strapped in when removing the head.

Thanks! I was actually thinking about assembling the electronics first, so I’m glad I asked. I figured I could get the electronics and the steppers first thing, get that setup and all 3 turning, then proceed with the aluminum and lastly the modification of the base … which does look terrifying from what I saw on the video.

As long as you don’t think that the Y axis stepper sticking out the front is a problem then I won’t mess with it, just wondered if perhaps there was room for improvement.

As for the hoist, I have the very same one from Harbor Freight, I needed it when my Precision Matthews engine lathe was delivered, and it’s safely tucked out of the way waiting for the mill to arrive. Just out of curiosity, did you buy the optional stand, or build your own? Wondered what the quality of their stand was like.

thanks again!

Yes sir, same address. Where do you want me to paypal the $$, just go pay on your site?

As Phil (OP of this thread) have left this forum along with his posts I wanted to share my current controller re-build. This image show the core components in a simplistic manner.

You need at a minimum:
Arduino UNO (if you have the old gshield, you have the Arduino already)
Power supply (Xcarve default is 24V)
Stepper drivers suitable for the PSU voltage and current value for the stepper motors. (typical 2,8-3A for generic Nema23 motors)

In my case I wanted a more capable controller and the components as shown cost approx $225 incl shipping via the slow boat.

48V PSU and Leadshine DM556 used in this example, the increased voltage allow better top-end speed and torque at speed is lifted aswell.

Here it is running a initial test carve at 4000mm/min (about 160ipm) in aluminium.
(FWIW since this isn’t an Xcarve)
4mm 2F
17k RPM
8mm DoC
0.1mm WoC

Phil’s information about his controller can still be found on his website:

The Leadshine drivers posted by Haldor, while nice, are also about 4-6x the cost (cheapest is aliexpress at $64 each) of the drivers that are more than adequate for a “drop-in” Gshield replacement (as posted by LarryM, here).

Add in a 48V power supply ($75) with adequate current (need a 600W supply assuming 4x 2.8A steppers, they need 11.2A potentially, and margin) and when you add up the costs of these components, you’re at $331 which is more than the Xcontroller price excluding shipping. And the Xcontroller has a very limited amount of interconnects (and ideally “fool proof” connectors) to get it going, includes customer service and board replacement for when a problem happens, etc.

Do you get a much more capable controller with the Leadshines and 48V? Yes, but is it on the “cheap” side, which is the point of this post? No.

Even the quoted $225 shipped is not cheap compared to the approx. cost of $80 of Phil’s demon controller considering the level of reuse. That’s about 3x more expensive.

The price point I provided wasn’t to highlight it as a “cheap side” approach. The post and images was posted to show the simplicity of a diy-controller and is directly comparable to a “Demon” or otherwise. Posting Phils www-link is good to keep it within this thread.

The X-controller is capable and match the power requirements for the typical Xcarve. I don’t think the Xcontroller is overpriced, considering turn-key and continuous support and all.

To match it by DIY`ing one can get 4x TB6600´s for like $65 and is definitely cheap - no argument. My past controller was built around the older TB6560 and was even cheaper. ($7/driver, shipped, I have posted to this thread about it earlier)

For those with gshields, to upgrade to match the Xcontroller can do so by spending less than $100.
Repurposing the PSU and Arduino you are only out by $65 which is a bargain.

For those who wish to upgrade beyond the Xcarve at some point and still DIY it, my approach is more viable and cheap by skipping one upgrade point in the future. I could go to an official Leadshine dealer and spend $80 per driver, but I didn’t. In total, my core components (PSU and DM556´s) cost me $185 including shipping, as I had the Arduino on hand already.

I am venturing a guess but I think this thread main intent was to boost aspiring upgradees and demystify DIY´ing it, the Demon is - a Demon and cheap too :slight_smile:
With a little extra cash it is equally easy to upgrade beyond that if the desire to move past the typical Xcarve on a later date linger.


Hello. I just finished building a CNC Controller based on Phil’s Demon Controller. It basically works (read: the axis move in the right directions). However, the motors are making some funny/ticking noises, like what your car makes when there is a stone caught in your tires.

I have not yet changed any GRBL settings and was wondering if someone could please share theirs. I have the stock NEMA 23 motors and a CNCNewbies Z axis.
I should mention that I’m mostly interested in the Acceleration and Speed settings, I know how to calibrate the steps/mm. My previous controller was Arduino/GShield.

Thank you in advance.

Did you set your micro-step and current limit switches on the stepper motor drivers?

Hi Larry, thanks for your reply.

I did set X and both Ys to 2.5A and 1/8 micro stepping. The Z axis is also set to 2.5A, but I’m using the 2A micro stepping setting. These were the settings that Phil originally recommended in his diagrams.

I’m not sure about the acceleration and max speed settings.


What are the settings now?
Start slow and increase until you have issues. Drop back down 10% and test a few more times.

Hi Neil:

These are my settings on GRBL 1.1f

$1 = 255 (Step idle delay, milliseconds)
$2 = 0 (Step pulse invert, mask)
$3 = 0 (Step direction invert, mask)
$4 = 0 (Invert step enable pin, boolean)
$5 = 0 (Invert limit pins, boolean)
$6 = 0 (Invert probe pin, boolean)
$10 = 115 (Status report options, mask)
$11 = 0.020 (Junction deviation, millimeters)
$12 = 0.002 (Arc tolerance, millimeters)
$13 = 0 (Report in inches, boolean)
$20 = 1 (Soft limits enable, boolean)
$21 = 0 (Hard limits enable, boolean)
$22 = 1 (Homing cycle enable, boolean)
$23 = 3 (Homing direction invert, mask)
$24 = 25.000 (Homing locate feed rate, mm/min)
$25 = 750.000 (Homing search seek rate, mm/min)
$26 = 250 (Homing switch debounce delay, milliseconds)
$27 = 1.000 (Homing switch pull-off distance, millimeters)
$30 = 12000 (Maximum spindle speed, RPM)
$31 = 0 (Minimum spindle speed, RPM)
$32 = 0 (Laser-mode enable, boolean)
$100 = 40.072 (X-axis travel resolution, step/mm)
$101 = 40.000 (Y-axis travel resolution, step/mm)
$102 = 49.880 (Z-axis travel resolution, step/mm)
$110 = 8000.000 (X-axis maximum rate, mm/min)
$111 = 8000.000 (Y-axis maximum rate, mm/min)
$112 = 2000.000 (Z-axis maximum rate, mm/min)
$120 = 500.000 (X-axis acceleration, mm/sec^2)
$121 = 500.000 (Y-axis acceleration, mm/sec^2)
$122 = 300.000 (Z-axis acceleration, mm/sec^2)
$130 = 790.000 (X-axis maximum travel, millimeters)
$131 = 790.000 (Y-axis maximum travel, millimeters)
$132 = 100.000 (Z-axis maximum travel, millimeters)

I’m worried about the clicking/ticking noise when moving, doesn’t look like missing steps, but I haven’t carved anything yet. With the GShield I had no noise, so I’m ruling out something mechanical, especially because both X and Y do it.


Cut your 110-122 down to a fourth of what they are. Do you still get the clicking?

Also, check your wiring of the step, direction, and enable inputs to the driver modules for loose, broken, shorted wires.

$0 should be 10 for spindle work and $10 should be 1 for grbl 1.1f

1 Like

Thanks Neil and Larry.

I will try this tomorrow morning when I have access to the machine and will give you a proper answer then.


Larry: I set $10 to 1, $0 was already 10.

Neil: I set 110-111 to 2000, 112 to 500 and 120,121 to 125, 122 to 75

Same noise and missing steps, I marked the motor shafts and executed a macro to jog in a square and diagonal patter multiple times. With the lower settings it took 2:11. With the previous settings the same macro only took 35 seconds, also noisy and losing steps.

I also tried the drivers at the 2.8A setting and same results.

The noise sounds to me like driving in gravel at low speed…

My machine was running fine with no strange noises before the new controller. I just wanted a stronger controller with individual Y axis drivers.

Any other ideas I could try?

Thanks again.


Disconnect all but one of the stepper motors and see if the remaining motor works ok.

I guess that would be X axis motor…

Sounds the same with only X connected.

The movement is very strong I can’t stop it applying force with my hand as it is moving… But it is still missing steps, so weird. The test I just did was using the slower settings Neil had suggested before.

With all of the motors hooked up, do each of the motors seem to have the same strength?

Yes, they all seem very strong, can’t stop them.

The X motor seems to be making a bit of noise while idling, like the sound you hear when the water is running in another room from a different place in the house. But it not very loud.

I’m mainly concentrating on the X and Y axes right now, the Z axis also makes an awful sound, especially at these low settings.