- Build
- OS Catalogue
- CNC Milling Machine

Open source CNC Milling Machine
This page will guide you through all the necessary steps to build a fully functional 3-axis CNC router. Available as a kit, you can also purchase it on our e-shop and have everything delivered to you right away.
An Accessible professional CNC router
Mechanical parts
First of all, we decided to use ball screws to drive each axis. They have a very high mechanical efficiency compared to classical lead screws, they are more precise without having any backlash, they require little maintenance and have a much longer lifespan. That said, if you want to decrease the overall price of the machine, you can easily switch those with 16mm lead screws without having to change much in our original design.
Electronics & Software
Working area | 650 x 1050mm (can be modified) |
Z clearance height | 115mm with a travel distance of 70mm |
Overall size | 1400x1000x600mm (can be modified) |
Linear Guides | 16mm SBS supported rails (unsupported for the Z axis) |
Drive system | 16mm Ball screws |
Accuracy | 0,01mm - 0,05mm, with a repeatability of 0,01mm |
Maximal travel speed | 10.000mm/min |
Motors (X, Y1, Y2, Z) | 4 High-torque Nema23 stepper motors |
Structure | Aluminium profiles and digitally manufactured steel plates |
Controller & Software | PlanetCNC software installed on a Raspberry Pi 4B |
In the project directory, you will find a document referencing all the parts and components needed to build the machine. They are separated in three lists :
-
The mechanical elements list, containing all elements needed to build your machine, from screws and nuts to steel custom parts.
-
The structural elements list, containing all aluminium profiles, ball screws, rails and brackets.
-
The electronic components list, containing the control box and all electronic parts to be mounted on the machine (motors, inductive sensors and cables).
With all those parts, you will be able to build a fully functional 3-axis CNC router. Yet, you will need to add the following elements to be able to start cutting anything correctly :
-
A spoiler board At first, we recommend using a simple wood panel, which is enough to get a grasp on CNC machining. We recommend reading our article on spoilerboards to find what works best for you.
-
A screen with an HDMI input, a USB mouse and a USB keyboard , to connect to your electronic box as the main control interface for your machine.
-
A CAM software . You will need a Computer Aided Manufacturing software to translate your 3D models into a G-code readable by the machine. We suggest you to use free options like Fusion360 or SketchuCAM.
-
A table which can bear the weight of the machine and which has enough space to put your control interfaces: screen, keyboard and mouse. It needs to be robust and stiff, as vibrations will affect the precision of your cuts.
Mechanics
We created a playlist of videos to show you how to assemble your CNC machine. Everything is on our Youtube channel, so don't hesitate to check out the rest of our content, such as tutorials, how-to's and testimonials (we have two channels, one in French and one in English)
Electronics

-
Raspberry Pi 4, 2GB RAM, 32GB SD card (also works with a Raspberry Pi 3B or 3B+ and a 16GB card) ;
-
Screen with HDMI input ;
-
Mouse and keyboard with USB output ;
-
Emergency stop button, contact NC, red mushroom head pushbutton, latching turn to release ;
-
Touch probe device for tool length measuring function (optional) ;
-
PlanetCNC USB controller Mk3/4 (breakout board) ;
-
PlanetCNC motor driver 6A – 256 ;
-
NEMA23 2-phases hybrid stepper motor, high torque and 1,8° step angle ;
-
Inductive sensors PNP NC, M12, 10-30V DC ;
-
4 Channels Optocoupler 3.6-30V ;
-
Switch mode power supply 48V 10A, 480W ;
-
Switch mode power supply 24V 2,2A, 52W ;
-
24V to 5V DC 3A adapter ;
-
IEC 220V 10A connector, with a 10A T fuse ;
-
Rocker switch DPST (on/off power switch) ;
-
Axial fan 24V, 60x60mm ;
We highly recommend you to use shielded cables for your motors, in order to avoid the undesirable effects of EMI. We don't use shielded cables on the sensors since they are connected to an optocoupler and use a 24V logic signal, which makes them very robust against interferences.
-
Motors : GX16 5 pins (1 pin being used for the shield) or XLR 4 pins ;
-
Sensors : GX12 3 pins or M12 4 pins ;
-
Emergency Stop & Probe : GX12 2 pins or RCA connector.

Software
The software used to control the machine, PlanetCNC TNG, can be downloaded here : https://planet-cnc.com/software/
All the documentation related to that software can be found inside the software directory of this project. If you prefer to control your machine using a different software (LinuxCNC, Mach3...), it is of course possible. Just bear in mind that you will have to change the break-out-board and the motor drivers from the ones detailed above.
On the PlanetCNC website, you will also have to download the software used to configure the motor drivers: https://planet-cnc.com/product/motordriver-6-0a-256/
This .zip includes a Windows program called "PoStep60v0.63.exe", that you can execute to configure your motor drivers. Just plug each driver to your computer using a USB-A to USB-B cable and enter the values required by your stepper motors. We reccommend using the 1/32 microstepping mode and keeping the default idle current values.
You will also find our PlanetCNC settings and configuration file in the software directory of the project. Once everything is set up and correctly installed, simply use the import settings functionality and you will be good to go !
In this directory, we also included a post-processor compatible with Fusion360 CAM that will allow to you generate G-code that can be read by PlanetCNC (file: "PlanetCNC_USB_Controller.cps"). If you want to use a different CAM software, don't hesitate to contact us to see what can be done.
This machine is licensed under the Creative Commons BY-NC-SA 4. More details here : https://creativecommons.org/licenses/by-nc-sa/4.0/
Mekanika is an open project and we are eager to welcome other designers, engineers or creative people on board. We have tons of ideas that we want to develop, so if you share our values and views on open source hardware and modular design, drop us an email at: ask@mekanika.io
At last, we would be glad to hear from you when you're finished building your own CNC router. Any feedback is of course greatly appreciated too, so don't hesitate to get in touch with us !
Cheers,
The Mekanika Team