When I first started my project to build a CNC, I looked around at existing designs. I looked carefully at Mostly Printed CNC and OX CNC. However, I didn’t like the idea of installing and tightening so many bearings or V wheels. So, I went ahead and designed a CNC based on linear motion ball bearing and smooth rod.
Design objectives and decisions:
My design objective was to create a relatively stiff DIY 3 axis CNC with no need to drill holes in metal for assembly. I also wanted it to be compact and low profile. Therefore, I decided to use a moving gantry design and use 40mm x 20mm aluminum extrusion for the gantry structure.
For additional challenge, I decided to use servo motor for this project. I’ve chosen a low cost 370 size geared motor with a hall sensor rotary encoder.
Since CNC need a lot more torque than a typical 3D printer, I chose to use leadscrew instead of belt to further gear down the motor to increase torque.
Initially, I wanted to use 2 Y-axis motor. However, synchronizing the 2 Y-axis servo motor to move smoothly together have been difficult.
After testing the CNC with just one Y-axis motor, I found the performance of this CNC satisfactory for routing wood. The motor has enough torque to break a 1/8” milling bit. I’ve broke one accidentally by forgetting to switch on the rotary tool before I start running the gcode. The Z-axis plunged the milling bit into the wood I was going to cut. When the gantry moved in the Y-axis, the milling bit stuck in the wood was broken in half.
Below is a recording of the CNC cutting wood in actual speed.
The Y axis this CNC flexes when the Z-axis motor pushes the rotary tool into the base. I’ll be changing the smooth rod to SBR10 linear rail for extra Y axis strength.
March 27th 2017 Update:
The Y axis have been changed to SBR10 linear rail and SBR10UU linear bearings. I have updated the photos and STL files to show the new design.
Using SBR10 linear rail have allowed me to align the Y axis leadscrew much better as compared to the earlier design. I’ve added a tab at the side of the Y axis motor holder and the lead screw bearing holder so that when I push them against the SBR10 linear rail, the lead screw would be parallel to the linear rail.
As the leadscrew is much better aligned now, I have been able to add a 2nd Y axis motor on the right side. The jerky motion with two Y axis motor in the first design was because of misaligned leadscrew. It had nothing to do with synchronization of the 2 Y-axis servo motor.
This revised design have improved the Y axis and Z axis stiffness.
Parts for the build
The printed parts are shown in green in the attached drawings. All other parts listed below are purchased online:
8mm rod (132mm) x2
10mm rod (300mm) x2
SBR10 linear rail (500mm) x2
T8 leadscrew (100mm) x1
T8 leadscrew (300mm) x1
T8 leadscrew (400mm) x2
T8 leadscrew nut x4
Motor coupler x4
370 size geared motor with encoder x3
2040 aluminium extrusion (170mm) x4
2040 aluminium extrusion (266mm) x2
90 degree bracket (Single width) x6
90 degree bracket (Double width) x2
April 30th 2017 Update:
This 3rd iteration of my Mostly Metal Servo CNC is finally stiff enough to mill aluminium. It can mill through a 2mm thick alumium with a nice finishing.
I will be uploading the revised Z-axis design once I have time.