Since several months I couldn’t decide between a 3D printer and a CNC router. Their goals are definitely different but they are pretty similar in many ways. There were several possibilities : Buying a complete system, it’s more expensive but it’s safer, building my own creation from scratch, very risky, or a kit, which is a good compromise.
Finally, I’ve taken a fourth path, I’ve had the book ‘Build your own CNC machine’ on my hands and it has been a revelation … complete and detailed instructions on how to build your own CNC router which have a decent size ( workspace of +/- 1000mmx500mm) built in MDF. This is not the state of the art for a router, but it looks feasable even if it was my first project of that size. Moreover, I’d just bought a table saw and it was the perfect project to test it.

I will not go into technical details on how to make the router and even less post the plans, as everything is in the book. I will just post some pictures of the differents steps to make something that works.
The work you can see here is at least a hundred hours of work … maybe more, I’ve not really tracked the time spend building it. I’ve made some adjustements here and there, especially because the plans were in imperial units and I’m working in metrics.
For the mecanical parts, I’ve tried to find stuff around here, but it’s was pretty difficult to find what I really want. I’ve searched ebay and found a lot of stuff, but the prices weren’t that interesting … especially as I was still doubtful about the result and wanted to reduce the risks. Finally, I’ve ordered eveything on the website of the book (http://buildyourcnc.com), where you can have cheap parts even when you consider the delivery. I’ve ordered the ball bearings, the stepper motors, the motor controllers and the couplings :

Once I had the material, I’ve started working on the base, which is made of 2 pieces of MDF of 1200x600x18mm bolted together. Two rails are attached to the panels, they will support the gantry :


Before going any further, I’ve made my first correction : the original rails were a bit small and were not that reliable, especially if you consider that everything will be moving on top of them, I’ve changed them for bigger ones. It was much better and the bigger ones stays straight even when the bolts were tightened.

It’s far better! The gantry is also attached using two aluminium rails were I’ve placed four bolted ball bearings :




The placement of the ball bearings requires accuracy as the gantry needs to be extremely stable.
Before placing the gantry I had to finish the feet of the base. On those feet you can see 2 ball bearings which will drive the main axis. A perfect alignement is also required in order avoid any load on the motor :




The axis itself will be placed later. I’ve tried to find one which is longer than one meter, but it looks that it’s not standard at all over here. Ideally I had to use lead screw and anti backlash nuts, which are really made for this, but the price was a bit high, so I’ve chosen cheaper material. I can change that later if necessary.
The next step was the placement of the side and lower part of the gantry :

The rails with the ball bearings are tightened by bolts. This is very strong and adjustable, which is necessary.


The final size of the lower part has been measured once the sides has been made, as it depends of the size of the rail and the position of the ball bearings.
You can also see ball bearings for the secondary axis :

The top part of the gantry is reinforced in order to consolidate the structure. You can also see two aluminium rails that will support the mobile head.



And here we go for the last axis :


I’ve then put the head together :



Once the three axis were done, I’ve chosen a router. I’ve bought a small and light model that will not affect the structure due to its weight. Moreover it was pretty cheap (+/- 60€). The on/off button is a push button and, as I was thinking about keeping the warranty valid, I’ve made a piece of wood that keep the button un place …


After thinking about the different ways of attaching the router to the base, I’ve finally disassembled the router (bye bye warranty) and placed the pad under it. It has two advantages : it lowers the router (so I can route deeper) and it allows an easy unmounting of the router when I’ll had to change the mill.

The axis of the router is close to the center of the structure, which is an ideal position that reduces the lever effect.
The three axis can be installed now. I’ve started with the shortest one :

The placement looks simple, so ‘ve tried the secondary axis and the motor supports :

But after testing the motor, it was definitely unusable as there were too much vibrations. The sources of the problem were the spacing between the axis and the inside of the ball bearing as well as the spacing between the axis and the coupling : everything was off axis. I was unable to tighten the coupling and keep the axis centered, so I’ve used aluminium foil which does not compress at all. And, for the ball bearing, I’ve used teflon which is softer and handles all residual vibrations.

Same thing for the third axis, and I’ve started to manage my cables as well :

I’ve used flexible insulation tubes for the cables coming from the stepper motors (4 wires per motor) : 
I still had the problem with the axis larger than one meter, so I’ve bolted two axis together with a larger bolt. That bolt is glued to the axis and I’ve placed another small bolt next to it to lock it.

After placing stepper motors and wiring them to controllers, I had to manage them. I’ve chosen a light solution as I’ve tried to avoid the full pc in my basement: an arduino seems correct to do the job. I’ve used a mega to simplify the wiring and avoid extra multiplexers and/or external chips. I’ve made an hardware debounce shield to handle the buttons of the panel. The result is clean and simpler on the software side.
The first revision of the panel was using pushbuttons very sensitive to dust, I’ve ruined two of them in two days …. So I’ve finally used sealed pushbuttons that I had in stock. They are harder to activate but better for the job. A joystick is used to control the manual operation of the router, it’s more intuitive than buttons placed in a plus shape.
When the router will be operational, I’ll certainly make another more polished panel.

Once everything was wired, I’ve run the integrated tests :

So, as everything was running correctly, I had to send more complex stuff to the machine. That’s why I’ve added an SD card reader which allows me to read Gcode files, but some debugging is still necessary, the router tends to go deeper and deeper as the code gets complex … I had some cold sweats doing the tests, but it looks promising anyway :

I still need to improve the software side in order to use it in a confortable manner.
Beside that, I’ve put two varnish layers on the MDF to stop the humidity. I’ve also placed some end curse switches which will allow me to calibrate the machine accurately. This will ensure a good placement of the routing area.
To conclude, here is a short video of the machine in action :































