Introduction: Arduino CNC

Picture of Arduino CNC

Hi, this is my first instructable and I hope to do more.

This project was for 'Creative Electronics', a Beng Electronics Engineering 4th year module at the University of Málaga, School of Telecommunications.

It's a cnc using Arduino UNO R3 , GCode Sender and GRBL. The cnc is made of wood thanks to the help of my father. It has taken us many hours to do the mechanical part however the electronic part is faster to do, but is very gratifying. I based my project on these videos and I have received much support from the author of the first video.

[Reproducir video]

[Reproducir video]

The total cost of the project is about 450€.

Step 1: Materials and Components

Picture of Materials and Components

From experience I recommend buying all the necessary materials before starting the realization of any project.

Materials and components:

  • Laminated Wood
  • Screwed Steel rods
  • Steel bars
  • Ball bearings
  • Nuts
  • Screws
  • Stepper motors (in my case Nema 23)
  • Stepper motors drivers TB6560
  • Switching power supply 24V 15A
  • Arduino UNO R3
  • Some wires
  • Nylon and metal bearings

Step 2: X Axis

Picture of X Axis

To build the base we have been cut several wooden boards which have made holes and blind holes. These tables form the support of the machine. The screwed steel rods operates as a worm drive. The blind holes serve as a stop for the steel bars that act as guides for the x-axis, in the middle, we put the screwed steel bar, that when turning, generates displacement in the x-axis. Above, we have put a wooden board greater weight and thickness for stability.

Step 3: Y Axis

Picture of Y Axis

Bridge construction (y-axis) is very similar to that of the base, but this is supported on a table that is moved in the x-axis by a fixed nut below table. You see it at the last picture.

Step 4: Z Axis

Picture of Z Axis

And finally the z-axis, similarly fact that the other two axes and carries a support for a milling or engraving machine. To test I used a screwdriver to move the axis. :)

Step 5: Assembling All of Axes

Picture of Assembling All of Axes

The final assembly is simple with some screws. I have not used glue to replace parts if broken.

Step 6: Electronic Connections

Picture of Electronic Connections

The connectiosn are simple. You need to use one driver for each motor. Each driver need power supply to work. I use a 24V 15A power supply. I select in the drivers my motors amperage. The A+, A-, B+, B- correspond with each of two coils of the motors and his poles. CLK+ (Clock) connects with the step pin on Arduino, CW+ (Clock Wise) connects to direction pin, CLK- and CW- connects to GND pin. EN+ and EN- not need to connect.

In the link below are the Arduino pin diagram of GRBL and some descriptions.

Step 7: Load and Configuration of GRBL on Arduino Uno R3

I see this video to load GRBL on Arduino Uno R3. In the description of this are the links to the programs and files of GRBL. Is very simple. With XLoader load the GRBL code (grbl_v0_8c_atmega328p_16mhz_9600. hex) on your arduino, then open GCodeSender to conect your Arduino to your pc and it's ready to use.

This video explains how to configure GRBL according your stepper motors.

Step 8: Finish

You can use any CAD program to design your projects and CAM programs to machining the GCode for different needs work. I use MasterCam X7 that is CAD and CAM program.

And this is the final result and I hope you like it.

Thanks so much for watch this instructable and enjoy!


Swansong (author)2017-10-13

This is a great build! It would be really helpful to include the dimensions for the pieces as well for those who also would like to make one. :)

JoemarkS1 (author)2017-10-10

please help me. how to use gcode and transfer it to arduino

Ay31415 (author)2017-09-01

Thank you very much for sharing.


prof_raul_gomes (author)2017-07-06

Hi, congratulations. could you send me the measurements and the plans for this project? My email is, I'm a teacher and I would like to make your project in my school. Thank You, I hope your support.

akankit114 (author)2017-04-28

Hey thanks for your help.I have built a CNC machine using Threaded rods and unipolar stepper motors as bipolar but it is not working. I Don't know what's going wrong. Even I have applied microstep settings. But it is still not working. Can you give me you WhatsApp no. I will video call you and show you my problem. I am not getting anything. Please do share your number I needed to solve my problem as soon as possible because I have to this project at my college and it's date is 1st may 2017. please help me.

akankit114 (author)2017-04-23

Hey I have made one using your designs but it is not working. I have used unipolar stepper motors as bipolar but still only vibration is achieved till now. No exact moment.
I am not able to recognise the problem. can you please help me?

akankit114 (author)2017-03-11

great project, Can you give me measurements of body parts that you have made ? I need it please. if you don't want to share here please send the details to me at my email id :-
thanks bro

JohnnieT made it! (author)akankit1142017-03-17

Hello and thank you very much!

I am very sorry but I have no plans made of the machine, therefore I do not know what are the measurements of the parts that compose it. I only have the approximate measurements in the following image.

I hope they help you.

akankit114 (author)JohnnieT2017-03-17

Thank you very much for this

prabhakarp2 (author)2016-12-02

can you give me steel tube size

JohnnieT (author)prabhakarp22017-03-17

I don't know which are the real measurement because I did not take measures. In the picture you can see the approximate measures.

I hope that will help you.

PørtgàsÐ (author)2016-11-17

can u give me stl parts of this build please i wonna build the same !! send me in my email :; thanks

JohnnieT (author)PørtgàsÐ2017-03-17

Hi, sorry but I don't have stl parts.

LoysE (author)2016-10-22

Hola excelente trabajo!.. te queria consultar si tenes los planos o algo para sacar las partes de madera. gracias!

JohnnieT made it! (author)LoysE2017-03-17

Hola y muchas gracias!

Lo siento mucho pero no tengo planos hechos de la máquina ya que toda fue hecha sobre la marcha sin ninguna anotación, por lo tanto no se cuales son las medidas de las piezas que la componen. Solo tengo las medidas aproximadas en la imagen siguiente.

Espero que te sean de ayuda.

jdellavecc (author)2017-02-17

Hi - great project!

Could you send plans and measurements, etc.?

My email is

JohnnieT made it! (author)jdellavecc2017-03-17

Hello and thank you very much!

I am very sorry but I have no plans made of the machine, therefore I do not know what are the measurements of the parts that compose it. I only have the approximate measurements in the following image.

I hope they help you.

lime6 (author)2017-02-27

Hello sir, what a great project. Can i have the measurements and the plans for this project? My email is Thank You sir.

JohnnieT made it! (author)lime62017-03-17

Hello and thank you very much!

I am very sorry but I have no plans made of the machine, therefore I do not know what are the measurements of the parts that compose it. I only have the approximate measurements in the following image.

I hope they help you.

solboricua (author)2016-09-07

Hi, where did you find nylon linear bearings? I'm searching on Aliexpress or banggood site but I can't find it. Could you post a link where i can find it, please? 10x in advace.

solboricua (author)solboricua2017-02-16

thanks a lot to everybody

evandene (author)solboricua2017-02-16

Lookup IGUS.COM download the application manual and pick your stuff.

JohnnieT (author)solboricua2016-10-09

The nylon bearings I did not buy them for Internet. They were made-to-measure in a company of my city. Provided that it is a small company and does not have web page, say to me the measures and the quantity and I can ask the price.

Pablos Casita (author)solboricua2016-10-07

check at

Vignesh2212 (author)2016-12-17

i am robo by vinoth kumar

MikeC312 (author)2016-12-07

I have a 1up 3d printer that the company just can't get it together with the wiring, so this is the next thing for the parts I have, kick ass project!!!

JTronix (author)2016-10-07

Hi i was just curoius if you cold attach a high speed motor and mini chuck to actually have a CNC machine

JohnnieT (author)JTronix2016-10-09

Yes, you can connect whatever you want, either a high-speed motor or a laser.

wmahesa (author)2016-06-01

hi can i use nema 17 unipolar 6 wire?

TimothyJ999 (author)wmahesa2016-09-06

You can, but you need to identify the two center tap wires and leave them disconnected. Start by using a meter to measure the resistance between all the wire pairs. You'll see that there are 2 sets of 3 wires that are connected.

Now for each set of 3 wires, you'll see one pair that has 1/2 the resistance. Those are the wires that you connect to the motor driver. The pair that has higher resistance will be the center tap wires, just leave them disconnected. That way you can use a unipolar driver to drive a bipolar motor.

JohnnieT (author)wmahesa2016-06-02


I honestly could not tell because I used 4 wire bipolar motors.

alejandrom47 (author)2016-08-31

Hola muy interante tu proyecto me gustaria hacer una cnc asi pero para trabajar acero me puedes dar un consejo? gracias

JohnnieT (author)alejandrom472016-09-02

Muchas gracias!

Pues el tema del trabajo en metal se me escapa un poco de las manos, aunque si es verdad que me gustaría probar con aluminio, ya que solo he trabajado con madera, pero con una estructura así de robusta y con las fresas específias para cada tipo de material no creo que tengas problema alguno.

Un saludo!

R Jordan Kreindler (author)2016-07-11

Very interesting post. Thank you for taking the time to upload this.

Thanks so much!!

Thank you for such a nice comment. It is appreciated.

The very best.

Lava94 (author)2016-07-14

Very cool project but expensive..

JohnnieT (author)Lava942016-08-02


It may be, but considering a CNC of this size can cost mounted about 1000 €, I think it's not so expensive.

JuanJ35 (author)2016-07-05

Como estas Johnnie yo estoy recien iniciandome en esto, soy ingeniero mecanico asi que estoy mas flojo con la parte de control. Tendras el codigo para arduino asi lo tomo como referencia¿

JohnnieT (author)JuanJ352016-08-02

Muy bien Gracias!

Te dejo el enlace al código que metí en el arduino, pero debes hacerlo como explica en el primer vídeo del paso 7 ya que no es un código .ino, si no que es un código hexadecimal que solo podrás cargar con XLoader.

nandohaze (author)2016-06-30

buenas, estoy buscando realizar un proyecto similar para mi carrera de diseño, y me gustaria si pudieras compartir info que usaste para desarrollar tu cnc, me parecio un diseño muy bueno y lo otro , como se podria conectar una dremel a este diseño y es necesario controlarlo? un modulo para corte laser se podria instalar tmb?

JohnnieT (author)nandohaze2016-07-03

Buenas, todo lo que he utilizado para desarrollar el proyecto está explicado en los pasos anteriores. En estos momentos yo tengo montada una fresadora, pero de igual modo puedes montarle una dremel, la cual no es necesario controlar. De igual modo, si quisieses controlar la activación y desactivación de la dremel al iniciar y terminar los trabajos, se podría hacer conectando la salida del arduino "spindle enable" a un relé, también conectado a la dremel, el cual hace de interruptor para ésta. También se puede poner un módulo de corte laser, ya que iría conectado del mismo modo que te acabo de explicar.

Espero que te sea de ayuda.

Un saludo.

DanijelA1 (author)2016-06-30

This is fantastic. Where can I get the draft and the necessary materials?

JohnnieT (author)DanijelA12016-07-03

I'm sorry but I don't have the draft

JohnnieT (author)DanijelA12016-07-03


You can get the necessary materials at hardware stores and electronics stores.

krugger1976 (author)2016-06-09

Hola, excelente aporte, un diseño hermoso. Quiero hacer mi propia CNC y la tuya me sirve muchisimo para comenzar. tiene el area adecuada pues la que queiro hacer es un prototipo para futuros proyectos y solo voy a fresar madera, acrilico y superficies similares. Me gustaría si es posible un par de preguntas:

1. Que medidas usaste para tu diseño? Puedo usar MDF o Triplex?

2. Solo tengo 3 motores Nema 17. El presupuesto no es muy grande. Se puede hacer? Se utiliza el mismo driver?

3. Es posible que nos coloques la programacion del Arduino y el programa con el que enlazaste el diseño?

Un abrazo inmenso y muchas gracias.

JohnnieT made it! (author)krugger19762016-06-13

Muchísimas gracias!

Ante todo perdón por la tardanza de la respuesta.

1. Las medidas son las que aparecen en la imagen que te dejo más abajo, las cuales son aproximadas, ya que todo lo fuimos haciendo sobre la marcha y sin apuntar ningún tipo de medidas y sinceramente no he tenido tiempo de medir todo con exactitud. Yo usé Triplay porque es bastante ligero y muy resistente a las deformaciones. Puedes usar igualmente MDF, pero creo que sería demasiado pesada la máquina.

2. No hay problema en montar esos NEMA 17, siempre y cuando tengas en cuenta, por un lado la fuerza que son capaces de ejercer, y por otro lado la corriente que necesitan para funcionar. Si la corriente que necesiten es menor de 2A te recomiendo usar unos drivers POLOLU (A4988), ya que llegan a suministrar 2A como máximo y son bastante más baratos que los TB6560, los cuales proporcionan un máximo de 3A y son los que yo tuve que usar, ya que mis motores funcionaban 2,6A.

3. En cuanto a la programación del Arduino, lo tienes todo en el paso 7 del Instructable, incluido vídeo de un muchacho que lo explica paso a paso.

Sin más, un saludo y espero que te sean de ayuda mis respuestas. Ponte en contacto de nuevo conmigo si te surge alguna duda e intentaré contestarte lo antes posible.

krugger1976 (author)JohnnieT2016-06-14

Hola, Muchísimas gracias por tu respuesta. No te digo la emoción por tu respuesta. He comenzado inmediatamente a construir la CNC con tu aporte. Disculpa si te molesto pero me gustaria saber las dimensiones de las varillas de acero y las varillas roscadas asi como las de los rodamientos. Una cosa mas, el cajoncito que hay detras del taladro o base para el, que dimensiones tiene? ahi va la electronica? o se construye un cajon debajo para contenerla?. Te haremos caso y ya pedimos los Nema 17 y los controladores que sugeriste. Solo nos queda duda con la parte mecanica pero espero poder aclararlo pronto. De nuevo mil gracias y nos has hecho muy felices con tu colaboración. Desde Colombia un abrazo inmenso.

JohnnieT (author)krugger19762016-06-16

Muchas gracias a ti y no te preocupes, no es molestia, solo que ahora estoy de exámenes finales y ando poco por el portal. En cuanto al tema de medidas, ahora mismo no te puedo decir exacto, ya que estudio fuera de mi ciudad, no tengo la CNC conmigo y tendría que medirlas, solo recuerdo que las varillas lisas son de 20mm de radio las de los ejes X e Y, y las del eje Z son de 16mm de radio, por lo tanto los rodamientos han de tener los diametros internos del mismo radio que las varillas, 20 y 16 mm respectivamente, y en cuanto a las roscadas todas son de 14mm de radio. La electrónica, si te fijas bien en las fotos que hay en el paso 6, verás que la tengo en un cajoncito a parte.

Espero que te sea de ayuda.

Un abrazo desde España.

krugger1976 (author)JohnnieT2016-06-16

Muchas gracias por tu respuesta. Las varillas lisas que se consiguen en mi pais son de 8mm, 10mm y 5/16, el largo minimo es 1m, pero se consguen de la medida que desees. Las roscadas vienen de 8mm x 1m o de 8mm x 500mm. Una pregunta: dimensiones de estas varillas. Bueno espero que te vaya muy bien en los finales. Esperare a ver si luego me puedes enviar la longitud de las varillas. Un abrazo y cuidate mucho.

About This Instructable




More by JohnnieT:Arduino CNC
Add instructable to: