CNC Router

by ffska in Workshop > CNC

13456 Views, 44 Favorites, 0 Comments

CNC Router

gg.png
IMG_20190910_162352.jpg
IMG_20190904_142834.jpg
IMG_20190805_191530.jpg

Here's a basic overview of how my desktop CNC was built, I can't really provide a step by step guide, because this project has a lot of small details, and also some questionable design choices. So this article is meant to serve as inspiration to others, who are considering a simular build.

It is a small 3 axis CNC router, controlled by GRBL, it is capable of milling wood ( plywood, MDF and stuff ), plastics like PE, HDPE and acrylic and aluminium, with reasonably high precision and speed.

Off the Shelf Parts - Do the Shopping

IMG_20180709_202856.jpg
IMG_20180718_151156.jpg
69952319_737433930051233_8039749977167101952_n.jpg

This machine uses a 400w BLDC spindle motor, that comes with it's own inverter - relatively inexpensive and easy to find, very common solution with hobbyists. But needs a 40V/ 10A industrial power supply. Something like this, but I didn't buy the mounting bracket and power supply with the motor:

https://www.ebay.com/itm/400W-Air-cooled-Spindle-M...

Also don't forget to buy tooling and collets.


The machines axes are powered by NEMA 17 40Ncm torque motors, this works fine however, the more torque the better. These are connected to ACME trapezoidal leadscrews, I got online.

https://www.ebay.com/itm/Acme-Leadscrew-8mm-trapez...

Also the Z axis moves on linear bearings, these are the same as on a 3D printer. ( SC8UU )

https://www.ebay.com/itm/Aluminum-Linear-Motion-Ba...

Also, also it has a separate power supply for the stepper motors. A 12V/10A industrial power supply.

That's it, at least for the mechanical build...


Building this CNC, I used various tools, so I'm not going to list them. Obviously you can figure something out, if you don't have the tools. This bulid has a lot of 3D printed parts, printed on an Anet A8 printer, using ABS plastics - I recommend ABS over PLA for these applications because it's not as brittle.

The Frame

IMG_20190804_225112.jpg
53347556_1574752692668438_3113429601120944128_n.jpg
55476724_2213499228696688_1008362182552846336_n.jpg
IMG_20180728_155522.jpg
IMG_20180728_155529.jpg
IMG_20180729_121353.jpg
IMG_20190804_223506.jpg
IMG_20190804_224920.jpg
IMG_20190804_223538.jpg

The frame is composed of mild steel box sections, welded to each other.

A few different kind of steels profiles are used:

40x40 and 20x20 for the X axis,

40x80 for the vertical supports of the X axis

50x30 for the Y carriage and the 'legs'

50x50 for the main Y axis support

25x25x3 L profile steel for the roller mounts

25x25x2.5 aluminium L profile for the 'sliders'

These were cut to length, drilled, tapped, welded and painted.

Before welding some of the box sections shut, they were filled with sand and gravel - this reduces the vibration noises, and also makes the base heavier, and harder to move.

The frame is constructed, so that there is space for a removable baking pan at the bottom of the machine - it's meant to collect chips, and it kinda works... but the shavings get everywhere nonetheless.

XY Slider Sistem

54255341_1033519023525711_8174853666725953536_n.jpg
54458158_2125675524184599_8516481472893288448_n.jpg
53919178_534590820397421_2431482484932739072_n.jpg
54518725_408928876343706_3318791349255274496_n.jpg
54514965_425820701524685_5821188039212269568_n.jpg
53905707_329279957589858_7945836522920476672_n.jpg
53795399_413978492765068_8317877052640329728_n.jpg
54515418_2264289673834465_1499150509238386688_n.jpg
IMG_20190804_223527.jpg
IMG_20190804_223546.jpg

Obviously this kind of machine should use proper linear sliders, but those cost a lot of money...

So I decided to build my own linear-slider system. On the X and Y axis, as the carriage is moving, the ball bearings ( 608 'skateboard' bearings ) are rolling on the aluminium L brackets on both sides. This can handle reasonably big loads, but it needs to be manufactured very precisely, which is very time consuming and difficult especially in this case, because it involves welding.

The parts were screwed together, test fitted onto the axes before welding, then tack welded, and test fitted again, and finally welded again. The tension between the bearings and the rolling surface can be adjusted using bolts and washers.

Z Axis

IMG_20190713_182318.jpg
IMG_20190805_175325.jpg
IMG_20190910_162412.jpg

The Z axis carriage is made of box section steel, who's inner dimensions are larger than the spindle motor diameter, so the motor is located inside the metal part, and it is fixed using 3D printed shims ( wedges ), that are bolted to the box steel. - This works great, as long as the shims and the housing have a tight tolerance.

The carriage moves on 8mm stainless shafts, and the whole thing is supported by 3D printed parts.

Motormounts and Couplers

IMG_20190808_115059.jpg
IMG_20190805_191510.jpg
IMG_20190806_234458.jpg
IMG_20190807_180721.jpg

The motor mounting brackets are made out of the same steel sections as the frame.

The shaft couplers are 3D printed parts, with a rubber block between them. This shows of the capability of 3D printing to get functional parts fast and cheap!

The connection has to be somewhat flexible, because all the holes were hand drilled, and won't align perfectly.

This works OK, but real flexible couplers would be even better.

Control Electronics

IMG_20180817_221602.jpg
IMG_20180817_221554.jpg
IMG_20180817_221625.jpg

The controller is running GRBL firmware, which is a firmware designed for small CNC machines, it's easy to use and opensource:

https://github.com/grbl/grbl

The machine is controlled by an Arduino Nano, running GRBL, it gets the Gcode instructions over USB, and controls each NEMA 17 stepper via A4988 stepper motor drivers. The A4988 boards get their power supply from a 12V/10A power supply.

I would not recommend using an Arduino Nano, because the newer GRBL firmware does not support it, also this cheap CNC shield for the Nano has some design flaws: stepper micro stepping can't be enabled, because one side of the jumper header is connected to GND instead of 5V; The power connector is prone to oxidation and it can lose connection due to vibrations. - Thease faults were corrected using a soldering iron, and it is working OK now.

All and all it is usable, but an Arduino UNO with it's own CNC shield would be a much better option.

The circuit is simple enough, so I tried making my own CNC shield, witch works fine, but doesn't look very nice...

I had lots of issue with electrical noise. For now I made sure to ground all power supplies and the frame of the machine, and to use a proper grounded mains plug.

Planning to make my own proper PCB shield, soon!

CAM and Controll Software

IMG_20190810_162740.jpg
Screenshot_2019-03-30_22-59-28.png

To make the machine move, it needs Gcode commands from a computer.

Gcode can be written by hand, or generated by programs. I mostly use Fusion 360 for generating Gcode, because it's easy to use and has a lot of features. But there are alternatives such as Freecad, which is opensource and rapidly improving.

I'm a beginner machinist, and mostly just do 2.5D parts, so really any software is fine.

Next step is postprocessing the Gcode. This step is optional, depending on the machine, there are existing postprocessors for machines runing GRBL. I wrote my very own in python that works for this machine.

Finally, the lines of Gcode have to be sent over USB to the CNC control board. Programs exist, such as Universal Gcode sender to do just that. But even a simple python script can do the job, so I wrote my own sender script in python.

Would not recommend using my scripts, but I will share the code if anyone's interested:

https://github.com/ffoska/Cnc_controller

Also the code from my attempt at a CNC firmwara: ( fair warning, it does not always work - or rather it mostly doesn't work )

https://github.com/ffoska/CNCfirmware

Parts Made Using It

IMG_20190904_143707.jpg
IMG_20190811_165937.jpg
45739843_506495289848418_2763581824549519360_n.jpg
53419616_305128363493775_5880045296079077376_n.jpg
53435027_2250777978313831_6492015893093023744_n.jpg
53735609_1996899907278805_2284964172460457984_n.jpg
53868154_971947939861952_8027468024262950912_n.jpg
IMG_20190904_152423.jpg
IMG_20190910_162352.jpg
IMG_20190910_162542.jpg

The machine is usable, but it has a lot of room for improvements.

It's nice to have my very own machine, it can be used for other projects, or as a way to learn CAM and machining in general. Works great for beginners like me, because I don't have to worry about damaging an expensive machine.

Hope these insights helped you, if you're planning to build your own machine.

Feel free to ask questions, or point out if any important detail was left out.