De Único Paquetes Sello del Bolso Paquete Nuevo Mujeres Vertical Negro GAOXIA Bolso Plaza Hit Remache Pequeños Color El Los Negro De Diagonal Paquete Ocio 5ZPxqUw0t

¿No sería increíble que pudieses crear tu propia maquina robotizada casera?

Siempre has tenido ganas de montar una, estoy seguro.

Hoy voy a enseñarte el software que necesitas para convertir un sencillo Arduino en una controladora para tus motores paso a paso.

No hay nada que nos fascine más que tener nuestro propia máquina controlada por ordenador. Yo mismo me paso horas asombrado mirando como se mueve la impresora 3D.

En este mega post vas a aprender todo lo que necesitas para configurar tu propia máquina.

La teoría es sencilla. Necesitas unos motores paso a paso, unas correas, unas poleas, unos drivers y un Arduino que controle todo.

Pero cuando te pones a buscar motor paso a paso es cuando la cosa se complica. Que si hay que mandar un pulso, que si el driver va a 12V, que si la interrupción del timer…

Te encuentras con una cantidad enorme de datos, técnicas, y lo que es peor, líneas y líneas de código fuente.

Por eso existe GRBL

Hablar el mismo lenguaje que el motor paso a paso

La teoría de los motores paso a paso es sencilla. Cuando el Arduino manda un pulso al driver del motor, este avanza un pasito.

Esta técnica es muy popular en las máquinas robotizadas porque como sabes cuantos  pulsos has enviado, sabes cuánto ha avanzado la máquina.

Lo que necesitas es pasar de un lenguaje de pulsos, a algo más sencillo de explicar, como son las coordenadas de los motores.

Por decirlo de alguna manera, cuando hablamos con el motor, le decimos: quiero que avances 200 pulsos. Pero asi es difícil saber lo que va a hacer la máquina exáctamente.

Lo que queremos es decir avanza 10 centímetros. Mucho más útil.

Lenguaje G-CODE

La forma más o menos estándard de comunicarse con un robot es usando el lenguaje G Code. Es un sencillo sistema de texto con los movimientos de la máquina. Es uno de los formatos más veteranos, ya que su primera versión se remonta a los años 50.

CNC y G-Code
Las máquinas robotizadas se denominan CNC, y viene de “Computador de Control Numérico”. Es la forma común para no decir “maquina robotizada con motores”.
El lenguaje universal de las máquinas CNC se llama G-Code. Es un fichero de texto con todos los movimientos de la máquina.

No voy a entrar en los detalles del g code, pero para que os hagáis una idea, os voy a poner unos comandos de ejemplo:

G00 X0Y0Z0

Esto nos lleva a la posición 0,0,0

G01 Z1 F5

Esto avanza lentamente la altura 1 mm, a la velocidad de 5 mm/minuto (feed rate)
G00 es avance rápido.

Avanza todos los ejes de tal forma que llegue lo antes posible.

¿Qué ocurre en ese caso? Que la velocidad de movimiento es la máxima, pero los movimientos no van en línea recta. Si los motores X e Y avanzan la velocidad máxima (por ejemplo, a 200 mm por minuto) la máquina hace una linea de 45º, hasta que uno de los motores llega al borde.

Este comando se usa cuando la CNC no está cortando, y queremos mover el cabezal a una posición concreta, y no nos importa la ruta que tome, sólo la velocidad.

G01 es avance en línea recta. Se usa cuando estamos cortando y si que nos importa la ruta que tome la máquina.

Si queremos que la máquina haga una línea recta, uno de los motores tiene que ir más lento que el otro, para que se mantenga por el rumbo que queremos.

Lo mejor es verlo con esta infografía (no seáis muy malos conmigo):

La buena noticia es que no tenemos que escribir el G Code a mano. La mayoría de programas tienen formas de exportar y generar G Code por nosotros.

Puedes diseñar sus logotipos en Adobe Illustrator, Corel Draw o Inkscape (si quieres tener todo Open Source) y exportar a G-code usando un plugin.

Si estás usando una impresora 3D, programas como Cura o Slic3r, precisamente lo que hacen es convertir tu modelo 3D en un programa de G-Code que luego enviamos a la impresora.

Aqui te dejo un completo tutorial para generar código G-Code desde un logotipo, usando Ink Scape

 

GRBL aparece en la escena del Arduino

El autor original del firmware GRBL es el noruego Simen Svale Skogsrud. En el 2007 se encontró exáctamente con el mismo problema que tienes ahora: cómo controlar un motor paso a paso. Así que decidió investigar, diseñar un planificador (usando el software mathematica) y comenzó a desarrollar para Arduino, que estaba haciéndose popular en aquel tiempo. Además está basado en el chip de Atmel AVR (que estoy seguro que no sabías que se diseñó en Noruega!)

Poco tiempo después de publicar el código, Sonny Jeon estaba buscando una forma de controlar sus motores, y descubrió este firmware. En menos de un año, se convirtió en uno de los principales desarrolladores del firmware.

Puedes ver este hangout con Sonny Jeon, contando su experiencia con el firmware, ideas para futuros desarrollos, etc.

Porqué deberías usar GRBL

Todo el mundo tiene un Arduino cerca para cacharraear y probar. Y el entorno de desarrollo es popular y muy documentado.

GRBL es un firmware que está funcionando en muchos proyectos, con una base de usuarios importante. Si tienes dudas o algo no te funciona, va a ser muy fácil encontrar ayuda.

Asi que, con un Arduino, una placa preparada para CNC (hablaremos de esto en muy poco tiempo!), unos drivers como los Navidad Bandolera Bolsos Las señoras Bolsos de de de Bolsos señoras la WWAVE Mujeres de Cuero para Las Las diseñador del 8HqgPwx o los más potentes DRV8825, y unos motores paso a paso, ya tienes toda la electrónica para empezar.

Una comunidad enorme
GRBL está presente en multitud de proyectos y es sencillo encontrar mucha gente que te puede ayudar.

¿Qué proyectos usan GRBL?

La lista es enorme, y no voy a intentar hacer un recopilación de proyectos que usan GRBL. Es un poco excesivo.

Pero voy a destacar el más popular de todos: la CNC Shapeoko. Esta CNC tiene un precio muy asequible, sobre los $1000, y tiene una comunidad muy potente detrás. Es bastante normal ver una Shapeoko en los fablabs más conocidos.

Si quieres algo más lowcost, un proyecto muy barato (menos de $60) es Cartesio, un plotter que hace unos dibujos artísticos muy buenos, con unas piezas impresas en 3D, dos motores paso a paso y un servo.

¿Quieres una aceleración suave? Este es tu firmware

La primera vez que pensamos en mover motores paso a paso, nos imaginamos el arduino enviando un pulso para mover el motor. Pero aquí hay un problema: la inercia.
Cuando el motor está parado, cuesta mucho trabajo hacer que la máquina pase de estar en reposo a estar en movimiento. Por este motivo, tenemos que ir acelerando poco a poco (igual que cuando arrancamos el coche).

Al principio del movimiento, el firmware va subiendo la velocidad poco a poco hasta llegar a la velocidad deseada, y ahí se mantiene hasta que va llegando al final del movimiento. Entonces va decelerando poco a poco hasta que se para, o comienza un nuevo segmento.

Lo que hace el GRBL es convertir cada movimiento en una lista de trapecios.

Este es el núcleo del algoritmo de GRBL. Despedazar los movimientos en trapecios para cada motor. Dividir los movimientos en una lista de líneas rectas y calcular la aceleración y frenada de cada segmento, en cada eje.

La lista de trapecios se envían a la parte más importante del programa, la interrupción de timer, donde se transforman esos trapecios en pulsos, a una velocidad perfectamente definida para que los motores se muevan de forma coordinada. Todo esto se tiene que ejecutar de forma perfectamente sincronizada.

Qué es el Look Ahead Planning y porqué lo necesitas

Hablamos de la aceleración en un movimiento sencillo, pero el GRBL va un paso más allá y calcula las aceleraciones según los movimientos futuros de la máquina. Una característica fundamental para que las líneas y las curvas sean suaves y fluidas.

El G-Code nos define los movimientos línea a línea. Avanza tantos centímetros a la derecha, ahora avanza en otra dirección, y así hasta terminar de cortar nuestra pieza

Imagínate que el programa le dice que avance en linea recta a toda velocidad durante un buen rato. El cabezal de la máquina irá a toda pastilla hasta el final.

Entonces pueden pasar 2 cosas.

La primera opción es que el siguiente movimiento sea un giro brusco, por ejemplo, en una esquina. El cabezal tiene que empezar a frenar mucho antes de llegar al la esquina, si no, con la inercia, se pasará de frenada y nos quedará una marca fea.

¿Pero qué pasa si la en vez de un giro brusco, la línea continua pero con una mínima diferencia? Por ejemplo, si solo nos desviamos unos grados de nuestro rumbo. Entonces no hace falta frenar, el cabezal puede mantener la velocidad y todo irá más suave. Incluso las marcas serán más limpias.

Lo que hace GRBL es leer las siguientes líneas del programa, y recalcular la lista de trapecios y sus aceleraciones, teniendo en cuenta los siguientes movimientos. De esta forma, el cabezal frenará antes, porque conoce lo que le va a venir más adelante.

Recalcular la aceleración
GRBL lee los siguientes movimientos de la máquina, y ajusta la aceleración y frenada para que todo vaya suave y fluido.

Adaptive Multi-Axis Step Smoothing

GRBL usa el algoritmo de Bresenham para calcular el movimiento de los ejes. Los que sepan algo de programación gráfica conocerán este popular algoritmo. Lo que hace GRBL es subdividir los movimientos rectos, y suavizarlos (como el antialias de los videojuegos, pero aplicado a CNC). Esto se nota especialmente cuando un eje es dominante en el movimiento. El único problema es que ahora hay una velocidad mínima de avance. Si tu máquina necesita ir muy despacio (1 mm por minuto o algo asi) entonces no podrás usar esta técnica, pero bueno, tu movimiento ya será suave de todos modos

Linux y Máquinas CNC

Estoy seguro que en algún momento te has preguntado porqué no usar un procesador más potente para mover una CNC. Por ejemplo, porqué no usar una Raspberry Pi para hacer los cálculos.

El problema está en cómo linux maneja el tiempo.

En un procesador más avanzado (que ejecuta linux), es el kernel quién gestiona la interrupción del timer, y bloquea el acceso al resto de programas. Y esto es algo positivo, ya que es lo que permite que podamos usar las Raspberry Pi o un ordenador normal. Si un programa logra tomar el control de esta interrupción, es posible que bloquee todo. Y cuando digo todo, digo absolutamente todo: el ratón, la tarjeta de video, la conexión de internet, etc. Por eso el kernel nos protege para que eso no ocurra.

El kernel de linux asigna un tiempo a cada programa. El servidor web, el gestor de ventanas, etc. Según la CPU disponible, y los recursos que están usando en ese momento, permite ejecutar un programa u otro.

Por este motivo, dependemos del resto de programas para garantizar que todo se llama a tiempo. Si un programa pide mucha CPU, el kernel haría que nuestro programa funcionase más lento. Y si estamos cortando un círculo con la CNC, puede que perdamos pasos, y el circulo se parezca más a un huevo.

En todo lo que tiene que ver con motores usamos un procesador tipo Arduino. Técnicamente lo llamamos de tiempo real, porque si programas para que se lance una interrupción cada 100 milisegundos, va a hacerlo exactamente en ese momento.

Linux
Las máquinas con linux no sirven para controlar una máquina CNC por la forma en la que gestiona la multitarea.

Marlin para la Impresora 3D

Estoy seguro que has escuchado alguna vez sobre el firmware Marlin para las impresoras 3D. Es el firmware más usado para la RAMPS 1.4, por ejemplo.

Pues si miras el código, sobre todo la parte de movimientos, verás que el Marlin no es más que un GRBL con vitaminas.

La base es la misma. Lo que han añadido los programadores es toda la gestión de temperaturas, lo que mantiene el extrusor caliente mientras hacemos la pieza. También han metido la parte del menú y la pantalla LCD, que es un trabajo importante.

Además de eso, el GCODE tiene una sección de comandos, M (de “machine”). Por decirlo de alguna manera, cada máquina tiene sus peculiaridades. Por ejemplo, una máquina puede necesitar que hagamos un pitido. En el caso de Marlin, han programado el comando M300.

M300 S300 P1000

Aqui tienes la lista de comandos GCODE que se usan en Marlin y en los firmwares más comunes de impresoras 3D.

Versión compatible con Arduino Mega

El firmware GRBL está pensado para trabajar con Arduino Uno. Todos los pines de salida está ocupados, y el pobre, ya no puede más.

Pero si estás  pensando en usar 4 ejes, y necesitas más potencia, hay versiones adaptadas para Arduino Mega.

Yo no las he probado, tengo que decirlo, pero me parece interesante mencionar este enlace: https://github.com/dguerizec/grbl-Mega-4axis

Ahora te toca Instalar GRBL

GRBL mantiene toda su configuración en la memoria EEPROM, que es una memoria permanente que llevan los procesadores. Puede pasar que en algún caso, los datos que ya estaban almacenado en el arduino, afecte a la configuración por defecto. Si has usado el Arduino antes, es aconsejable borrar la memoria EEPROM.

Compilar GRBL

Este proyecto está muy testeado y ya ha pasado por varias revisiones completas. Afortunadamente, el código se compila sin problema desde el IDE de Arduino.

Lo primero de todo es descargar el código fuente de GRBL desde github.com y descompirir el ZIP

 

Descarga el fichero https://github.com/grbl/grbl/archive/master.zip
Descomprime el fichero GRBL, y fijate que hay otra carpeta GRBL

 

Lo que vamos a hacer es agregar el GRBL como una librería. Para ello, añadimos la carpeta grbl desde el menú add library en el IDE de Arduino.

Agrega la libreria como un ZIP (aunque sea una carpeta!)
Selecciona la carpeta GRBL

Una vez hagamos esto, si queremos compilar el GRBL, tenemos que ir al menú de programas de ejemplo de Arduino, y buscar el grbl (sí, al agregar la librería, te agrega automáticamente el GRBL como programa de ejemplo!)

GRBL como programa de ejemplo

Recuerda que hay que seleccionar la placa Arduino Uno! (GRBL por defecto viene preparado para esta placa)

Y antes de compilar, seleccionamos el puerto serie donde tenemos conectado el Arduino.

Ya está! Le damos a compilar y upload, y nos subirá el nuevo firmware a nuestro Arduino.

Ahora podremos ver si está correctamente configurado, simplemente conectándonos al puerto serie (recuerda que la velocidad es de 115200 baudios)

Compilar GRBL desde línea de comandos (para usuarios expertos)

Si estás usando linux, no es necesario que compiles desde Arduino, puedes hacerlo desde línea de comandos, siempre que tengas instalado el avr-gcc (el compilador de c para AVR) y el paquete avr-libc. Para enviar el binaro a nuestro arduino usaremos avrdude. La propia distribución de GRBL incluye las instrucciones para compilar todo.

make clean
make grbl.hex
sudo avrdude -p m328p -D -P /dev/ttyUSB0 -c arduino -b 115200 -U flash:w:grbl.hex

Verano Bolso Bolsa Gules De Dama Negro SJMMBB qS16wS

Cómo Configurar GRBL

Para comunicarnos con el GRBL, lo podemos hacer directamente a través de un terminal serie, como minicom. Pero si preferimos algo más gráfico, podemos usar el programa Universal-G-Code-Sender

Otro programa que está muy de moda es el bCNC. En windows es algo más complicado de instalar porque funciona con python, y hay que instalar alguna libería. Te lo recomiendo sólo si eres un usuario experimentado.

Si utilizas windows, para conectarte por primera vez y ver si el GRBL funciona, te recomiendo usar putty. Es un ejecutable muy sencillo que nos abre el puerto serie sin tener que instalar nada.

Esta es una aplicacion en Java que nos permite enviar ficheros gcode e interactuar con nuestra CNC de forma sencilla.
GRBL interpreta directamente G-CODE, pero para configurar tu CNC, el intérprete incluye una serie de comandos especiales.

$$ : Esto nos muestra una lista con todos los parámetros que podemos configurar.

Lo primero es ajustar los pasos por milímetro. Esto es, cuantos pasos tiene que enviar el Arduino al motor para que tu CNC avance 1 mm.

Vamos a hacer los cálculos. El motor stepper normalmente es de 200 pasos. Esto quiere decir que con 200 pasos, el motor da una vuelta completa.

Necesitamos el paso de nuestra varilla roscada. Una varilla de 8mm tiene un paso de 1.25mm. Esto quiere decir, que en cada vuelta, avanza 1.25mm (tienes que mirar el paso de la varilla que has comprado)

Si es de 8mm, con 200 pasos avanzaremos esos 1.25 mm.

Los drivers suelen tener micropasos. Esto es, que dividen 1 paso completo, en 16 pequeños avances, para que el movimiento sea más suave y fluido. Asi que, si tenemos una varilla roscada de 8mm, con un motor de 200 pasos, a 16 micropasos, la fórmula seria :

(200*16) / 1.25 = 2560 pasos!

De este modo, para configurar el eje X, escribiremos:

$101 = 2560

Sencillo verdad! Y además, automáticamente queda almacenado en la memoria EEPROM.

El siguiente valor que vamos a cambiar es la velocidad por defecto. Esto depende muchísimo de nuestra máquina. Si está bien engrasada, si usa husillos o patines lineales, etc.

$4 es para la velocidad de avance. Imaginad que estamos cortando madera con la máquina, o metacrilato con el láser. Con este comando calibramos la velocidad máxima a la que podemos realizar este corte (el comando G1 en gcode). Esto quiere decir que, aunque el gcode diga que vamos a cortar a 1000mm por minuto, nosotros nunca pasaremos de 500mm/min.

Con esto nos aseguramos que el taladro no se va a romper cuando está cortando, porque pusimos demasiada velocidad en el gcode, o que el láser va a pasar demasiado rápido sobre el metacrilato, por poner un ejemplo.

$5 es la velocidad de búsqueda. Esto es el movimiento cuando la maquina no está cortando (el comando G0 en gcode). Por ejemplo, cuando le decimos que vaya a una posición antes de bajar para cortar.

Obiamente, podemos ir más rápido cuando la maquina no está cortando, que cuando estamos cortando.

Lo mejor es bajar la velocidad, como a 50 mm/min. Probamos, y vamos subiendo.

Si nos pasamos, lo que va a ocurrir es que el motor no es capaz de ir tan rápido, y se bloqueará. Asi que tenemos que ir buscando la velocidad adecuada.

Si estamos cortando, lo que nos va a pasar es que se va a romper la fresa, o el láser no va a quemar suficientemente. Pero depende también del material, y de la fresa que estemos usando.

A mi me ha pasado que una máquina parece que está bien calibrada, pero cuando se calienta, por ejemplo, o al funcionar durante una hora, la fricción hace que le cueste más esfuerzo a los motores moverse, y acaban bloqueados.

Mi consejo personal aquí es que si estás empezando, no vayas a lo más rápido posible. Primero acostúmbrate a usar la CNC y céntrate en que el resultado del corte sea bueno y limpio. No pasa nada porque tarde una hora más en terminar. Cuando esto lo tengas dominado, ya irás subiendo velocidad. Pero tendrás un resultado anterior para comparar si te merece la pena ir más rápido.

Si quieres profundizar en las opciones que hay disponibles, en este enlace tienes toda la información sobre cómo configurar GRBL

Mini Blanco de del Harajuku femenino de cubo Yuanben planta Mensajero de tela hembra buena hombro nueva Corea paquete bolsa bolsa LANDONA de nSpRq1

En la propia página del projecto también tenéis una lista de programas para usar GRBL.

Lista de comandos de GRBL
$$ (mostrar los parámetros de GRBL)
$# (mostrar los parametros #)
$G (mostrar el estado del parseador de GCODE)
$I (mostar la informacion del firmware, build, etc)
$N (mostrar los bloques de inicio)
$x=value (almacenar un valor el la EEPROM)
$Nx=line (almacenar un bloque de inicio)
$C (comprobar el modo actual de GCODE)
$X (desactivar el bloqueo de alarma)
$H (hacer un ciclo homing)
! (pausar el avance)
~ (reiniciar un ciclo o el continuar despues de la pausa)
? (mostrar el estado actual, posicion, etc)
ctrl-x (reiniciar GRBL)

Qué es y cómo configurar el Homing

Una de las operaciones más importantes en una CNC es el Home. Cuando encendemos la máquina, el Arduino no tiene ni idea de donde está y no sabe desde donde tiene que empezar a contar.

Para poder hacer esto, tenemos que incluir unos botones que nos indican donde está exáctamente el principio del movimiento.

La máquina se mueve despacio hasta que hace click en el botón, y entonces sabe que tiene que empezar desde ese punto. Por este motivo, los botones se denominan límites.

Homing es el proceso de buscar estos botones y poner la posición en cero.

GRBL comienza buscando la Z máxima (para subir el cabezal si tenemos una fresadora), y asi nos podemos mover tranquilamente sin saber que vamos a tocar nada. Después buscamos el eje X y el eje Y.

Nota sobre los límites
GRBL por defecto espera unos límites que conecten los pines de la placa a GND.
Hay que comprobar que los configuramos de esta forma:
Cuando no está pulsado, el pin debería de medir 5V.
Cuando está pulsado, el pin debería de medir 0V.
La mayoría de los límites (microswitches) tienen 3 patas que se llaman: C (common), NO (normally open), NC (normally closed).
Deberías de usar C y NO, y dejar la patilla NC sin conectar.

Si activamos el Homing, la máquina estará bloqueada hasta que hagamos el Homing! Esto es importante saberlo. Yo me pasé un buen rato enviando comandos sin recibir respuesta (forever alone!). Con esto nos defendemos de error de posicionamiento.

Para activar el Homing, usaremos el comando $22=1 , para ejecutar el homing, usamos el comando $H.

En una CNC casera, ajustar los límites de la X y la Y no es tan crítico, pero el límite de la Z es muy importante. Nos dice dónde está la punta de la fresa. Y tiene que estar exáctamente en la posición adecuada si quieres que los cortes tengan la profundidad que has configurado. Mi consejo es invertir un poco en un sensor inductivo (si tenemos algo de metal) o un sensor capacitivo para que detecte siempre la Z en el mismo punto. Yo he perdido incontables horas de pruebas y ajustes por culpa de esto.

Os dejo aquí un vídeo en castellano para configurar el GRBL paso a paso.

Conectando los drivers a mano

Si usas una placa tipo Arduino CNC Shield, no tienes más que conectar los drivers en el lugar adecuado.

Pero quizás estás montando tu propio proyecto, y vas a conectar los drivers mediante cables, porque quieres probar antes, o por el motivo que sea.

En ese caso, te dejo el esquema de cómo conectar los pines del Arduino Uno, al driver de los motores, limites, etc.

Esquema de coneexión de Arduino uno y gbrl

 

Cómo Hackear el GRBL y hacer tus propios comandos

Huy, aquí ya nos metemos en el siguiente nivel.

Si realmente quieres llevar tu proyecto al siguiente nivel, y tienes algo de conocimientos de programación, puedes ir un paso más allá y escribir comandos de GCODE específicos para tu proyecto.

¿A qué me refiero? igual que la impresora 3D tiene comandos para encender y apagar el extrusor o la cama caliente, tu robot puede necesitar un comando especial para que empiece a bailar o para que se autodestruya (muahahaha!)

¿Cómo puedes hacerlo? Muy sencillo.

En el código del grbl hay un fichero de texto, gcode.c, donde se analizan los comandos que vamos recibiendo.

Si miras la parte donde se analizan los comandos de tipo M (de machine), ves que tiene un gran case donde va configurando los valores. Como es muy especifico de la máquina, hay muy pocos.

Ahí es donde meteremos nuestras garras.

Si quieres hacer algo especifico, tienes que asignarte un numero, por ejemplo, el 1234, y escribir:

case 1234:
{
}

Ahi meteríamos el código de lo que queremos ejecutar cuando recibimos el G-CODE M1234 ,por ejemplo, encender un pin de Arduino, o lo que se te ocurra. (ya te veo pensando la cantidad de cosas que puedes hacer con este truco!)

cruzados mujer Ahomy para M de Lona Bolso multicolor CUzxRT

Como os he dicho, esto ya depende de vuestro proyecto, y de vuestra capacidad para programar. La ventaja del GRBL es que ya hace todo lo demás, como el parseado de los comandos o la lectura del puerto serie.

Ahora te toca a tí

Madre mía!!!

Si has llegado hasta el final del artículo, entonces sí que tienes ganas de usar GRBL y montar tu CNC casera.

Asi que ya sabes, sólo necesitas unos perfiles de aluminio, unos motores paso a paso, un Arduino, una controladora, y ganas de montar tu propia máquina.

¿Porqué no escribes un comentario y nos cuentas qué te ha parecido? Tu opinión es lo más importante para mejorar el blog y los contenidos futuros.

Por ejemplo, si ya conocías el GRBL, o si ya tienes una CNC, nos puedes contar tu experiencia.

Y si además, este post te ha ayudado a decidirte sobre tu próxima CNC, tienes que decirlo!

Un saludo y nos vemos en el próximo artículo!!!

 

294 commentarios

  1. Siempre he querido montar una CNC, he comprado una cortadora laser este mes de las baratas y tal vez me anime a ver si puedo crear algo que se le parezca. La controladora que lleva esta maquina es bastante malilla, y viene de fabrica con un Corel Draw del 2003 pirata chino que necesita una llave USB para funcionar!

    Es realmente irónico que necesites una llave para ejecutar un programa pirata. No me importaría cambiarla por algo que sea mas util y fácil de usar. Me leeré el articulo con calma

      • Muy buen articulo. Yo he construido mi cnc casera pero tengo unos problemas que no he podido solucionar. Hice la prueba manual de los tres ejes y funcionan bien. Cuando traté de hacer un dibujo, la maquina empieza con una linea diagonal y luego levanta el eje z pero lo deja a unos mm del papel y continúa haciendo el dibujo en el aire. He revisado la velocidad y la aceleración para ver si está perdiendo pasos, pero está bien. Agradecería su ayuda.

        • pues me parece que el gcode no baja el boligrafo

          mira por un comando del tipo G1Z.. (goto z)

          si no, pon aqui las lineas iniciales del GCODE y lo revisamos

          saludos!

          • Buenos dias Javier. Muchas gracias por responder. De programación en Gcode no se nada. En las instrucciones que he podido ver están $0=25 supongo que corresponde a uno de los ejes y el número de pasos por mm. $1=25, $2=25, los otros dos números corresponden a los otros dos ejes. De pronto $1=25 puede ser eje Z. Agradezco su valiosa ayuda. Guillermo.

      • Hola javier co estas espero que eates bien, me he animado en hacer una frezadora cnc para ella estoy usando nema17 un arduinonuno y una cnc shield con pululo drv8825 geacias a Dios todl anda muy bie ecepto el eje Z, no consigo por nada del mundo que se mueba solo somba y nada nada de moverse si me puedes ayudar te lo agradeseria en el arma ya que le he hechado tantas ganas al proyecto!!

        • No sé si ya solucionaste. De todos modos concta la salida que no funciona a un motor que si lo hace y también prueba una salida que funcione bien al motor que no avanza (el z) con eso puedes descartar que sea el motor el que esté dando problemas y si el motor que funciona ya no lo hace entonces significa que no tienes bien conectados los pines o es muy alta la velocidad que tienes programada

  2. Genial, aprovecho para preguntarte por que se me ha quedado la duda (o varias).
    Y el driver en todo esto donde va? Es el que recibe los pulsos que genera el arduino tras convertir los gcodes y habla con el motor? Y si quiero alimentar unos motores gordos que tengan mucho par, tendré que meter algo porque me imagino que no los alimentas directo del arduino (salvo que quieras tener un arduino tostado) no?

efectivamente

Ocio Paquete Negro Paquetes Vertical Remache Bolso Pequeños del De Hit El Color Mujeres Los Diagonal Bolso Negro Único Plaza Nuevo De GAOXIA Paquete Sello aqui tenemos que hablar de la diferencia entre “señal” y “potencia”. El arduino solo enciende y apaga unos pines, pero apenas permite pasar corriente.

El driver lo que hace es, por un lado está conectado al arduino, pero por el otro, está conectado a una fuente de alimentación potente. Cuando el arduino le envia el pulso, el driver permite pasar la corriente al motor.

Por eso, aunque tengas unos mega motores, se pueden mover con un sencillo arduino. Solo necesitas unos drivers potentes.

Me guardo la idea para un futuro articulo sobre drivers.

  • Excelente artículo, gran introducción a este tipo de programación. Mi pregunta es, existe alguna colección de hacks para GRBL? Sería interesante saber lo que hace otra gente.

    Felicitaciones y a seguir así.

    • la verdad es que la lista de proyectos es enorme!!! estuve pensando en poner unos cuantos, pero el articulo se alargaba ya exageradamente

      gracias!

  • …cuantos motores puedo mover con arduino uno? con la shield que estas diseñando veo que podemos mover 4 drivers… algún servo y algún dc? estas preparando un megatutorial sobre la placa ? con la arduino mega y la ramps podemos mover 5 y algún servo…no sería interesante hackear la ramps para mover mas nemas y servos?
    Una duda, en el post indicas “Necesitamos el paso de nuestra varilla roscada. Si es de 8mm, con 200 pasos avanzaremos esos 8 mm. Dividiendo tenemos que 25 pasos avanza 1 mm.” , creo que el avance de una varilla de 8mm grueso o métrica 8 es de 1,25mm a completar una vuelta, por lo que el cálculo sería 160 pasos avanzamos 1,00 mm
    si m4 el paso es de 0.70 > 1mm avance es 285 pasos
    si m5 el paso es de 0.80 > 1mm avance es 250 pasos
    si m6 el paso es de 1 > 1mm avance es 200 pasos
    http://www.gewinde-normen.de/en/iso-coarse-thread.html
    En el caso de correas, la proporción paso avance sería relativo al diámetro de la polea, si diámetro polea de gt2 de 20 dientes es de 17mm el avance sería 200/17 = 11,76 pasos/milímetro. Es correcto??
    Gran articulo!!!

    • Hola alberto!

      El avance de la polea es Pi veces el diámetro. Asi que seria 200/(17*Pi) = 3.74 pasos, avanza 1 mm.

      Si tienes reductora, tendrias que hacer una regla de 3 para calcular cuanto se mueve el eje cuando la polea del motor da una vuelta completa, y luego dividir por los pasos de una vuelta completa.

  • Estupendo artículo, super detallado! Me han gustado mucho las secciones con trucos y “gotchas” para que los demás no tengamos que tropezar en las mismas piedras que ya has tropezado tú.

    Sabes si hay gente usando GRBL para robots autónomos? En plan bípedos o cuadrúpedos.

  • Cando dis que Marlin é un GRBL con vitaminas queres dicir que é un fork de GRBL? Non coñecía GRBL, pero Marlin destaca pola súa robustez e ter a maior cota de instalacións en impresoras 3D.

    No tema de que GNU/Linux non é bo para xestionar unha CNC ou steppers hai que afondar un pouco máis, pois existen versións e módulos de kernel RT para procesamento en tempo real que xunto con librerías de xestión de GPIO como WiringPi poden comandar unha impresora 3D / CNC.

    Con todo, coincido que é máis lóxico delegar o control dos motores e funcionalidade crítica a módulos como Arduino + Drivers con custe reducido e tempo real sen capa de sistema operativo.

    Agora si, hai que ter coidado porque a tendencia é engadir máis dispositivos complexos como displays ou interfaces de rede que sobrecargan con tarefas non críticas ao pobre Arduino que incluso chegan a invalidar o sistema RT.

    Pero iso é outro conto. De momento toca montarse unha CNC e probar GRBL!

    Bestial o artigo, felicitacións!

  • Las CNC eran el sueño de cualquier maker, y ahora están al alcance de cualquiera. Es muy interesante todo lo que cuentas sobre el smoothing y el look ahead. Dan ganas de estudiar el código! Jajajaja. Una vez más, chapeau

  • Gran articulo, ya que me a sacado de un problema de pérdida de pulsos por el exceso de velocidad.
    Si alguna ves pudieras explicar el GRBL de 22 programas y el de 132 sus diferencias y cual es mejor y para que te lo agradeceria.
    Un gran saludo y estare pendiente de tu blog.
    Saludos y un gran abrazo por tu entusiasmo.

    • Javier Loureiro Plaza Diagonal Bolso Único De Hit Paquete Negro Ocio GAOXIA Sello Los Paquete El Nuevo Bolso Pequeños Remache Negro De Paquetes Color del Mujeres Vertical dice:

      hola! gracias por el comentario

      qué es exáctamente el grbl de 22 programas? no lo acabo de entender…

  • Buenas.
    Gracias por el blog, me ha servido de gran ayuda. No he hecho ninguna CNC casera o impresora 3D. He creado un sistema de tomas fotográficas automático. Solamente controlo los ejes X e Y, puesto que el Z sería, por así decirlo, la cámara.
    Mi duda es como retrasar el movimiento durante 5 segundos. Me explico: eje X, se mueve 100 mm (G0 X100), ahora quiero que se vuelva a mover otra vez, pero entre ambos movimientos quiero que haya un lapso de tiempos de 5 segundos. ¿Se puede hacer? ¿Cómo sería?

  • Hola, gracias por este tutorial muy bien explicado.

    He montado todo con arduino uno, cnc shield y A4988, pero no logro hacer girar unos motores que saque de impresoras, tengo motores de 4, de 5 y 6 cables, identifique las bobinas y lo conecte a la salida del eje x, luego desde el gcode sender le doy que mueva 100 pasos el eje x y no va, queda haciendo ruido.
    Te consulto, si mido el voltaje de uno de los 4 pines de la salida del eje x mientras el programa está moviendo el eje no debería cambiar entre 0 y 12v?

  • la mejor forma de verificar cuales son las bobinas del motor es tomando una punta cualquiera e ir uniendo con las otras puntas al mismo tiempo que se gira el motor con la mano se sentira que el motor se vuelve mas duro cuando se ha encontrado la bobina correcta marcas esos dos cables y haces el mismo proceso para encontrar la otra bobina con la cual harias 4 cables

  • Hola no entendí una cosa, par amodificar el programa GRBL, dices que puedo “encender y apagar” pines GPIO de arduino, pero eso es en el soft de la pc o en el programa que cargas en ARDUINO?
    Porque la verdad soy nuevo en el tema arduino, se programación de microcontroladores pic en assembler y basic, programación en phyton de rpi pero arduino nada y por lógica entendería que primero debo modificar el programa que cargo en el arduino y luego en soft de windows

    • Hola,

      Si eres completamente nuevo, te aconsejo hacer alguna práctica antes de meterte con el GRBL a este nivel.

      Pero puedes aprovechar lo que ya tienes

      Los comandos para encender y apagar el taladro, lo que hacen es esto. M3 enciende el taladro, y M5 lo apaga. Puedes usar el pin para encender y apagar un relé.

      Si necesitas algo más avanzado, como comento en el artículo, lo que puedes hacer es meterte en el codigo del GRBL, y crear tu propio comando gcode, por ejemplo el M5555 y el M6666 para encender o apagar el pin. Luego envias el comando M5555/M6666 a través del programa del PC. Pero esto ya requiere alguna experiencia programando.

      Un saludo.

  • Hola, muy buen post!
    Quisiera saber si se puede hacer con el sitema corexy, mas que nada el sistema que usa la nueva axidraw, y si se puede modificar los valores de los diametros de las poleas en el software, para que el motor se mueva como corresponde.
    Gracias!

    • Hola,

      No lo he probado, pero hace un tiempo que el soporte CoreXY está incluido en el codigo fuente del GRBL

      Tienes que ir al config.h y descomentar la linea #define COREXY

      Como te digo, no lo he probado. Si lo consigues hacer funcionar, por favor, pásate por aqui y comentanos qué tal ha funcionado.

      // Enable CoreXY kinematics. Use ONLY with CoreXY machines.
      // IMPORTANT: If homing is enabled, you must reconfigure the homing cycle #defines above to
      // #define HOMING_CYCLE_0 (1<

  • Javier como estas tu post me ha aclarado ciertas dudas pues decidí hacer una CNC utilizando el armazón de una Printrbot 1405 pues bien todo trabaja excepto los finales de carrera que no se activan(debo de decir que utilizo una Arduino Uno y un shield GBRL copia de Protoneer, todo chino) y aparte tengo la duda del con el auto level del eje Z(poseo sensores inductivos para botar) pero en que parte modificó el sketch( pues cargue GBRL con el XLoader).

    • Sobre los finales de carrera, pues no sabría decirte asi de primeras. Revisa que has activado los limites con $21=1 ? Tambien mira si están normalmente abiertos o cerrados, y ajusta $5 para ello.

      sobre el autolevel… en teoria es simplemente un limite más, el de la Z, que salta cuando está cerca del metal. Autolevel es para las impresoras 3D, que tiene que ajustar el plano donde van a imprimir, pero en CNC seria mas correcto usar “probe”

      te dejo un video que te puede ayudar: https://www.youtube.com/watch?v=f4ybGiXNN24

      un saludo y gracias por visitar la web!

  • Gracias de nuevo por realizar tan estupendo post.
    Me voy a poner con un proyecto de una CNC por hilo caliente, y para ello utilizaré 4 NEMA17, una fantástica Arduino Shield RAMPS 1.4 SB que ya tengo, unos drivers DRV8825 y mi pregunta es si puedo utilizar un Arduino MEGA 2560 R3, en vez de un Arduino UNO y hacerlo funcionar todo igual, cargarle el GRBL…

    Saludos de nuevo y gracias

    • Para usar la RAMPS 1.4 SB, tienes que usar el Arduino Mega seguro. El GRBL entiendo que funciona bien. Solo tienes que decirle en el IDE de Arduino que tu placa es un Arduino Mega (aunque no lo he probado)

  • Hila, quisiera que me orientarais. Hay algún programa que permita que dibuje por ejemplo con el dedo en la pantalla del movil y el dibujo resultante lo mande lo transforme en código gcode y la cnc lo interprete? Hasta ahora lo que veo es imágenes prediseñadas y preguardadas en un formato, que se mandan a la cnc..y yo quería crear algo como lo que os expuse antes.
    Gracias

    • anda, que buena pregunta!

      yo no lo conozco. Normalmente uso programas como inkscape, pero si me entero, lo pongo por aqui. Voy a ver unos amigos que quizás sepan algo asi. Voy a preguntarles.

      Entiendo que lo que buscas es que la CNC haga el mismo movimiento que has dibujado con el dedo, verdad?

      Saludos!

      • Hola, si, yo por ejemplo abro una aplicación en el móvil, y dibujo una casita, con su chimenea y su humo y en el mismo orden que he dibujado, la cnc dibuja. Lo que veo es que hay programas para dibujar a partir de imágenes prediseñadas, pero…existirá alguna aplicación que te permite dibujar algo y darle a un botón “dibujar” para que la cnc empiece a dibujar??

  • Hola javier.. me encanto tu post.. lo lei todo.. primero que nada gracias es un gran trabajo. Yo quiero hacer una bordadora.. tendras información para ese tipo de proyectos.. y me gustaria saver si tu vendes los arduinos y los driver.. por volumen y buen precio.. gracias

    • pues estoy preparando una tirada de drivers, y los arduino tambien es algo que quiero vender, pero por el momento no he encontrado la forma de hacerlo que me guste

      te aviso, de acuerdo?

    • sobre la bordadora, no, no tengo información, pero voy a preguntar en la maker faire de santiago, que va a ser dentro de unos dias y seguro que alguien tiene esa información

  • Hola Javier. yo tambien me llamo Javier. jeje. te queria preguntar como conectar un servo a la cnc shield con arduino uno para usarlo de eje z en una maquina drawing que estoy haciendo. mas o menos tengo una idea de como poner el servo a los pines pero por el universal gcode slender no he conseguido que me funcione el servo. ¿Habra que escribir algunos comandos g code para que suba y baje el servo? si es asi que comandos seria y si hay que modificar algo. Un saludo desde Granada.

    • Hola tocayo

      El servo funciona por PWM. Asi que puedes hacer este truco (no lo he probado, pero he escuchado de gente que lo ha probado)

      Usa la salida del spindle de PWM. Para ello usa el comando S, que cambia la velocidad del Spindle.

      Este ejemplo enciende el spindle a una velocidad, espera 5 segundos, y lo apaga.


      S1000
      M3
      G4 P5000
      M5

      Con eso, varias el PWM que se envía al servo, y podrías moverlo.

      Un saludo!

  • Hola quisiera saber si ustedes saben como implementar la cinematica inversa de un brazo robotico en la configuracion del grbl y el software g code sender? Estoy algo enrredado con esto

    • el tema de la cinemática inversa supera al tema del gcode. Te recomiendo investigar el tema de los videojuegos, porque de ahí puedes sacar mucha informacion

      pero yo no he probado nunca, sorry…

  • Hola Javi, tengo una duda. ya tengo todo pero al enviar me aparece que el tamaño del buffer es muy pequeño, a que se refiere esto y como lo soluciono??
    gracias.

  • Hola,
    muy util toda la informacion que publicaste…
    como veo que manejas muy bien el tema me atrevo a consultarte algo que me ha pasando en mi proyecto de construir una CNC en casa.
    Estoy usando arduino UNO y la Shield CNC. el punto es que cuando compre la shield me llego con una placa nueva de Arduino Uno con puerto microUSB. Al instalar todo nunca me funciono el el motor del eje Y (Z y X funcionan bien). Asi que despues de varios dias de revisar y revisar se me ocurrio cambiar la placa de arduino por otra que ya tenia (mas viejita) la cual trae puerto USB-B y entonces todo me funcionó.
    tu que opinas sera que la placa nueva me llego dañada o que simplemente ese tipo de placa no es compatible con la shield CNC???

    • Hola,

      pues el conector USB no debería de tener nada que ver la CNC. Asi que yo apuesto a que, o la placa tiene alguna diferencia más, o la placa estaba dañada.

      Un saludo y gracias por leer el artículo!

  • Hola estoy tratando de montar mi propia CNC para cortar acrilico o madera, pero aun estoy consiguiendo las partes. Ya tengo los motores paso a paso y aunque estaba buscando unos de bajo amperaje me toco con unos que consumen unos 1.7 A, y como son 3 en este caso cuando la maquina vaya a usar los 3 realmente se estarán consumiendo aprox. 5.1 A, solamente en los motores. Ahora estoy indesiso si usar una correa para el movimiento o usar los tornillos que ya tengo, ahora tengo unos tornillos de 1 mm de paso, que como pueden ver son muy lentos, podria programar mas velocidad en los motores pero hasta no comenzar a probar no sabria, de ahi la duda con usar o no las correas.

    Aun no tengo la “armadura” o los soportes, también estoy pensando en si usar madera o aluminio.

    Por lo demas ya tengo mi Arduino con el GRBL instalado y ajustado para los motores, y con la Shield CNC tambien con sus 4 placas driver ajustadas con sus VRef según vi en la ficha tecnica, tengo los microswitches para el famoso Homming, me hacen falta los conectores del motor con los tornillos por que realmente estan costosos y no los he comprado (Mande a traer unos de china que salieron super economicos pero se perdieron en el envío, nunca llegaron que triste).

    Como pueden ver estoy trabajando en ese proyecto pues estoy comenzando pero ya tengo varias cosillas.

    A otra cosa, he decidido usar unos rieles en lugar de las varillas aceradas por costos, pero no se como se comporte mi CNC en un trabajo final.

    Gracias por leerme cualquier consejo es muy apreciado. Una cosa mas no entendi lo de los sensores capacitativos o inductivos, como es eso, como se usan como se compran.. como son como se instalan y por que esos en lugar de los mecanicos.

    Gracias nuevamente. Saludos XD

  • Hola

    Sobre las correas, eso depende de si la maquina va a hacer corte. La verdad, para cortar acrilico o madera, no te recomendaria usar unas correas, a no ser que sean muy buenas (y caras)

    yo usaria un husillo de paso algo mas largo. 1mm es muy poco!

    los sensores capacitivos o inductivos lo que hacen es detectar la presencia de metal, o de una superficie. Son mas exactos que poner un sencillo boton, porque nunca toca, y no depende de que un boton haga click

    para la X y la Y, da un poco igual, pero para la altura, es muy importante que todo vaya en su sitio en micras.

    seguro que los has visto en fotografias. Son los que tienen un boton azul o naranja…

    Un saludo, por favor, vete contandonos como va esa CNC!

  • Hola Javier.
    Excelente artículo…excelente información. Quisiera saber como se envía el comando M1234 de tu ejemplo, es decir, si requiero que cuando llegue a cierta posición se active el comando, o que al recibir la señal de un pin de arduino se ejecute el codigo que creamos.

    • hola,

      la verdad que esto requiere bastante trabajo de programacion. En la interrupcion del tiempo, puedes comprobar la posicion y leer el pin para saber si tienes que activar un nuevo movimiento.

      en gcode, eso no se puede hacer, efectivamente, tienes que ir leyendo la posicion dentro del codigo del GRBL, e ir actuando en consecuencia.

      un saludo!

  • Hola Javier
    Muchas Gracias por tan elaborado Tutorial y positiva predisposición para ayudar.
    Podrías ayudarme con el esquema eléctrico del Mega 2560, ULN2003. (Ya que tengo los pequeños BYJ-48)
    Ya instalé el GRBL y cargado archivos (Con Universal G Code Sender) *.ngc creados con Inkspace y pareciera que funciona todo bien, pero desconozco cableado desde los drivers hacia el Mega.
    Abrazos !!!

    • GAOXIA del Paquete Negro Sello Color Paquete Paquetes Único Los De Mujeres Negro Diagonal Bolso Plaza Pequeños Vertical El Ocio Hit Remache Bolso Nuevo De Javier Loureiro dice:

      mmn, vas a tener un problema, porque el GRBL está pensado para drivers paso a paso avanzados, que tienen un pin para el paso y otro para la dirección

      el driver ULN2003 es un driver unipolar, y necesita más lineas de control. Quizás hay una forma de conectarlo, pero yo no la conozco.

      un saludo!

  • QUISIERA SAVER QUE VELOSIDAD LE DOY A UN MOTOR PEQUEÑO DE LOS DE UN CD ROM ESTOY REALIZANDO LA MINI IMPRESORA A MANERA QUE NO SE BRINQUE PASOS Y NO SE CALIENTE EL MOTOR YA QUE AVECES TIEMBLA

    • hola daniel

      tienes que entender que el motor de un cdrom es muy fragil y no puede mover apenas nada. Solo puedo decirte que bajes la velocidad hasta que no pierdas pasos

      un saludo

  • has probado el comando M3 para encender y M5 para apagar?

    un saludo!

  • Buenas noches Javier,
    Acabo de terminar de construir una CNC y al ir a probarla por primera vez me sale tanto en el monitor serial de arduino como en el Universal G code un error que dice error:Bad number format
    No se a que es debido he repasado las conexiones, he cambiado de arduino, he cambiado de shield CNC, no se que hacer.
    Te estaría agradecido si me pudieses ayudar

    Gracias de antemano

    • has probado a contectarte directamente por consola? con el putty o algun programa de terminal?

      en el monitor de serial grbl te sale algo como “grbl 0.9” ?

      prueba a escribir G0X0 a ver qué te dice…

      un saludo y gracias por pasarte por aqui!

  • Hola muy buena informacion, te hago una consulta: estoy haciendo mi cnc y tengo en mente hacerlo con un arduino ATMEGA 2560 porque es el que ya tengo es estos momentos para no comprar un UNO, ya tengo los Drivers y quiero probar la electronica sin la ramp 1.4. Queria saber si este modelo sirve para el ARDUINO MEGA 2560 o solo para el modelo UNO? ya que cambian los pines de salida, desde ya muchas gracias espero tu respuesta. Saludos.-

  • Hola estoy trabajando en una cnc casera usando arduino con grbl ,usando la shield cnc de arduino y deseo poder prender y apagar el taladro de manera automatica al inicio y fin del proceso ,mencionaste que con el comando M3 y M5,pero mi duda como configuro eso o que pin del arduino deberia usar para obtener una señal de salida para un rele.

    • si, cuando usas el comando M3-M5 lo que haces es encecer el pin SpinEnable.

      Entonces, ese pin lo conectas a un rele. Por ejeplo, uno que soporte corriente alterna de 220v.

      Entonces, conectas el cable de la fresadora al rele, como si fuese un interruptor. Dejas la fresadora encendida, y cuando envias el comando, el pin activa el rele, y la fresadora comenzará a girar.

      El pin en concreto , en el Arduino Uno, segun viene el GRBL por defecto, es el D11

      lo puedes ver aqui, en el arduino: https://github.com/staticboards/sb-cnc-shield/blob/master/sb-cnc-shield.pdf

      Un saludo!

  • Hola;
    Muy interesante me parece tu publicacion sobre el tema CNC GRBL, del cual he sacado mucho provecho puesto que soy nuevo en esto, gracias.
    Tengo una maquina cnc Sable 2015 y la adapte para trabajar con arduino y el
    soft GRBL. La maquina al hacerle la prueba manual de los ejes, el eje Z y el eje Y funcionan, pero en el eje X el motor gira pero el carro no se mueve se queda estatico. No creo que sea el software; pienso que el problema es mecanico.
    Por favor me podrian ayudar?, de Nuevo Gracias.
    JAIME.

    • Hola,

      si el motor gira, y el carro no se mueve, pues obiamente es un problema de la maquina. Has mirado que los husillos estén bien apretados? Usas correas?

      un saludo

  • Que excelente pos. te felicito. He aclarado muchas dudas. Re hago una pregunta. Tengo dos motores Nema 17 montados en una CNC que estoy armando pero no se visualizan bien de cuantos amperios son, como ajustar entonces los driver sin correr el riesgo de quenarlos en este proceso?

    • pues sin la hoja de datos, no puedes estar seguro al 100%. Vigila que los motores no estén muy calientes, eso seguro. Baja el potenciómetro del driver todo lo que puedas, justo un poco por encima del punto donde los motores te pierden pasos.

      un saludo y muchas gracias!!

  • HOLA ANTEMANO UN SALUDO CORDIAL OJALA ME PUEDAS AYUDAR ARME MI CNC RAUTER CON ARDUINO UNO Y DRIVER POLULU A4988 LA USAMOS PARA CORTAR ACLILICO CON GRBL Version 0.9 PODEMOS MOVER LOS MOTORES A 1000MM/MN PERO COMO CORTAMOS ACLILICO LO HACEMOS A 400MM/MN AHORA QUE REMOS SABER SI HAY ALGUNA FORMA QUE CUANDO LA MAQUINA ESTE TRABAJANDO SE DESPLACE A LA VELOCIDAD MAXIMA O SEA 1000MM/MN CUANDO PASA DE UN PUNTO A OTRO ESPERO ME QUE ME HALLA EXPLICADO BIEN Y AUQUE LO REPITA TE MANDO UN SALUDO DESDE MEXICO

  • Hola,

    A ver, te pongo aqui los comandos
    Para configurar las velocidades, tienes estos comandos

    Cuando usas el comando G0, por ejemplo G0X100, entonces la velocidad es la velocidad travel máxima que tienes en el GRBL
    Cuando usas el comando G1, tienes que especificar la velocidad con la F: G1X100F100 quiere decir “muevete 100 en la X a 100mm/min)”

    Seguramente, tu programa tiene en algun sitio la velocidad de 400MM, y genera el GCODE con un F400 por ahi. Abre el fichero y busca “F400”.

    Un saludo

    Responder
  • Una duda (varias)

    Cómo se puede trabajar sin finales de carrera?
    Compré una cnc diy laser, parecida a la benbox. La máquina no trae finales de carrera, se puede poner un puente o cómo hago que los reconozca?

    Otra duda.

    Con el comando “x1” se debe mover 1mm sobre el eje x, cómo podría otener el valor de pasos por mm? se mueve a travéz de correa. A 200 S/mm cada unidad avanza 4 cm, entonces 200/40 (con un valor de 50 avanza 1cm por unidad) me da el valor de pasos por mm, para que avanze 1mm por unidad? pero si le pongo el valor de 5 debo incrementar la aceleración y los valores $4 y $5 (arriba de 500)

  • Hola, una felicitación, tengo una pregunta y me gustaria me puedas ayudar, necesito montar un laser y necesito configurar que solo dispare cuando corre por la figura y no dispare cuando hace el trayecto de punto a punto gracias espero puedas ayudar y te felicito nuevamente

  • Buenos días:
    Lo primero que quiero decirte: Enhorabuena por tu trabajo, es uno de los mejores que circula por Internet.
    Lo segundo: Estoy haciendo una CNC cuya electrónica será a base de Arduino+HY-DIV268N-5A+steppers NEMA y tengo problemas para saber qué software libre será el más aconsejable para poder fresar piezas a partir de archivos SolidWorks *.dxf o *.stl . Podrías recomendarme alguno?.
    Soy un Ingeniero Técnico jubilado pero, aunque no es mi especialidad, me gusta mucho la robótica y el bricolaje, además ahora uno de mis nietos (8 años) comparte mis aficiones. Trato de estar al día y gracias a personas como tú, aprendemos personas como yo.
    Saludos cordiales

  • Hola Javier, felicidades por el blog, me está sirviendo mucho de ayuda.

    Me estoy montando mi cnc y resulta que quiero poner finales de carrera sólo en el eje X y el eje Y pero no lo quiero poner en el eje Z, ¿esto es posible?
    ¿Como se tendría que configurar el GRBL?

    Un saludo

  • Hola Javier:
    Tengo en mente hacerme una CNC, pero, quiero que cambie herramientas, entonces, la pregunta va enfocada a como se enviarían los códigos T con GRBL y cual sería tu recomendación al respecto del cambiador a utilizar.
    haberlas hailas

  • hola Javier,

    me gustaria montarme una yo mismo dado que las que hay en el mundo o no cumplen mis expectativas o son muy caras y cerradas. Que me recomiendas para empezar? Existe algun sitio donde pueda comprar frames a medida menos electronica? Creo q toy un poco perdido

    Saludos y gracias de antemano.

  • Waoo que buen articulo, ya monte una cnc casera, solo que cuando conecto en el pin spnEn para que prenda la herramienta ( conectado con su respectivo relay) el relay cuando le doy que comiense a trabajar la maquina el relay se apaga, siento como que algo esta invertido y no e podido solucionarlo, ya tengo dos dias asi.

  • Hola javier
    la verdad es que esta muy bueno tu trabajo, me esta ayudando mucho en construir mi cnc casera,no tengo tanto conosimieto en estas cosas pero me la rebusco un poco, tengo un arduino uno con cnc shield driver A4988 Motores PaP de 12v /0,33A los driver regulados a 0,22A por motor, Cargado el grbl en arduino con universal gcode me funciona manualmente todo bien,cuando cargo el dibujo, los motores no se mueven para nada el programma termina muy rapido en 3seg cambie los parametros de velosidad,paso,aceleracion pero nada,bueno espero que me haya esplicado. Gracias por tu tiempo

  • Hola Javier:

    Felicidades, la verdad es que lo has explicado todo perfectamente. Me estoy haciendo un CNC y el artículo me está siendo de gran ayuda, pero es muy específica y necesitaría el firmware. En todos lados veo que solo están para descargarse los archivos.hex de la versión v0.8c. ¿Tu no sabrías dónde puedo encontrar el firmware completo para poder variarlo a mi antojo, verdad?.

    Muchas gracias por todo de antemano, y felicidades de nuevo por el artículo. Un saludo

    Rob

  • Hola mi nombre es Harry he puesto mucha atención en todo este foro y te dejo una inquietud no se programar soy diseñador industrial y para mi proyecto de grado diseñe una CNC 5 ejes todo marcho bien logré un muy buen prototipo en madera pero ya después de graduarme quiero hacer que tenga vida me compre un Arduino mega motores de paso y un escudo de rams 1.4 con sus drivers existe algún software que ya esté armado y listo para poder diseñar y cortar o que me. Aconsejas gracias

  • Estimado, gracias por la info.

    Ya he terminado la cnc con materiales reutilizados y otros conseguibles en la ferreteria. Lo único importado son los motores step, arduino uno y el shield cnc con sus drivers pololu. Funcion a la perfeción tallando algunas, mi problema es cuando trabajan los motores vibran demasiado y se escuchan como tarro al cargar un gcode, pero cuando muevo los ejes manualmente funciona muy suave. He varia la velocidad de carga ($5) pero sigue igual, por ahí he leído que se debe a la resonancia y se corrige variando el ancho de pulso, lo he hecho pero nose cuales son los limites de este valor. ¿Podrías ayudarme con esto?

  • Hola, tengo varias consultas. He hecho unas pruebas con láser y pasa que cuando va en línea paralela a x o y, pasa muy rápido y no corta como se esperaría. No hace caso a la reducción de feedrate que he puesto varias veces. He quebrado esas líneas presumiendo algo como lo que indicas sobre los trapecios y solo hace un punto cuando termina cada trazo. No se dónde estará el problema. Tal vez en la aceleración (ahora no puedo dárte el valor). La máquina tiene arduino uno, driver pololu, GRBL 0.9j (con 9600 bps porque también probé bluetooth con el celular y funcionó) y está construida sobre poleas (un escáner viejo en y una impresora HP vieja). También he detectado que pierdo paso cuando el trabajo es sobre 15 cm. ¿Podrías ayudarme con el problema de la velocidad antes que todo?
    Cuando hablabas de meter mano en comandos personalizados… ¿existe la forma de cambiar los bps de comunicación con un truco? Porque el bluetooth solo trabaja con 9600 y no me gusta tener que recompilar el hex cuando quiera usarlo. Ahora voy a instalar el grbl 1.1
    El láser es azul de 2 W y 12V, que controlo con un mosfet desde el pin11, pero no me da toda la potencia que tiene (lo he probado directo y es más). Puede que sea que el control del mosfet da el máximo con 5V. No se cómo arreglarlo. ¿qué me sugieres?

  • hola antes que todo muy buen post.

    estoy construyendo una cnc con la tipica cnc shield que conectas sobre arduino uno.. mi duda es la siguiente:

    quiero usar Labview para controlar un par de parametros como pararla, boton home reinciiar boton de emergencia…. mi duda es que pines tengo que poner a 1 para que esto suceda y si pasa algo al conectar el arduino a labview con el grbl cargado y poner a 1 dichas salidas con el cnc shield conectado,,

    gracias por todo

  • Hola, estoy intentando montar mi CNC con motores mena 17 0.4 A 1.8º. El problema es que el motor del eje X gira en sentido contrario que los de Y y Z. esto es normal? cómo puedo cambiarlo? en el parámetro $6 del RGBL se puede cambiar? cómo se hace?. Tu que harías?. Gracias y un saludo

  • Hola buenas, te comento cuando mando el programa no quiero que este empieza automático, si no que quiero darle yo manualmente, tengo entendido que hay una opción para esto, pero no se que pin es.. un saludo!

  • Saludos..
    tengo un inconveniente en cuanto a la escala real del impreso. es decir en linkspace grafico algo a una medida y a la hora de ejecutar el trabajo real queda reducida casi 4 veces.
    he venido sobredimensionando 3,67 veces para obtener un resultado aproximado pero para hacer las pcb no es tan exacto. tengo grbl v 0.8c

    agradezco su atención y colaboracion.

  • Hola.
    Buena pagina, he visto la de motores paso a paso y me encanto.
    Tengo un problema por ser un ignorante del mundo arduino.
    Tengo una mega 2560 cargada con grbl pero al intentar configurarla con universalgcodesender primero me sale que tengo la version 0.8c que le cargue pero despues me salen lineas que yo no escribo ,cosas raras No me deja usar comandos ni nada, no se que hago mal.
    W7 pro, tarjeta OSOYOO mega 2560.
    un saludo

  • hola
    Javier Loureiro
    me ha encantado tu articulo, me ha servido de mucha ayuda, estoy en la etapa inicial en construir una CNC, y este material me ha marcado la diferencia

    quería hacerte una pregunta, intente realizar el cambio en el archivo que indicastes para poder encender un pin en el arduino y poder controlar el encendido de un rele, pero al hacer el cambio e intentar subir el archivo al Arduino mediante el Arduino IDE me tira un error, no se si entendi bien, pero utilize la manera que conozco para asignar un pin y encenderlo de manera normal, te mostrare como escribi el codigo:
    case 03:{int pin=1; pinMode(pin, OUTPUT); digitalWrite(pin,HIGH);}
    y todo eso esta dentro del Case que mencionastes,
    me dice que no reconoce las funciones de HIGH y OUTPUT
    cual podría ser el error que estoy cometiendo?
    agradecere tu ayuda

    saludos desde Honduras

  • Hola.
    Estupendo artículo.
    Estoy montando una CNC con una Arduino UNO y CNC shield. Me gustaría saber si es posible con esto hacer funcionar una fresadora y un láser para hacerla dual, es decir, que con la misma estructura y electrónica pudiera tener fresadora y grabadora-láser.

  • Carteras totes Carteras Para Bolsos Bolsos mano Cuero bandolera de asa mujer de Fekete con mano Barna 8wgqw0

    Hola Javier
    Mis felicitaciones por poner tanto conocimiento en esta página

    Tengo un problema con el benbox, que es que la ventana de trabajo es muy pequeña (7’5cmx 4,5cm) cuando la superficie de trabajo de mi maquina es de 17 x 22cm. He buscado informacion por todo internet, pero no he encontrado la manera de cómo ampliar ese tamaño y se me queda un area de trabajo ridícula

  • Acabo de terminar de diseñar mi CNC, y ahora toca la parte de electrónica y software. Muchísimas graciasssss!!!!, me ha sido de mucha ayuda tanto el post como el vídeo.

  • Disculpame tenes idea de como funciona step pulse X axis; Y axis ; Z axis,(intente leerlo con otro arduino y el serial pero segun si avanza en diagonal o en linea recta manda distintos pulsos) para armar un codificador para motores dc. Necesitaría que, por ejemplo en la salida pwm 2 (step pulse X) mande HIGH durante el tiempo que corresponda para que avance lo que tenga que avanzar. Estoy usando el Easel de inventables. Gracias

  • Hola Javier, gracias por compartir esta información con todos. Estoy construyendo mi cnc y, quiero poner finales de carreras en los limites de cada eje. El problema es como hacer reset de la alarma y sacar al eje de limite alcanzado. Un saludo

  • Hola Javier, te agradezco este buen tutorial, quiero aprovechar de hacer unas consultas ya que veo muchos con un amplio conocimiento en arduino. Mira tengo una maquina de corte para madera que tiene un solo eje “Z” en la cual necesito ajustar la medida con un joystick o un mpg, que en una lcd me de la medida absoluta y la incremental. Ademas agregarle unas 4 memorias.
    Tengo un motor nema34 con su driver y lo probe en la maquina con mach3 y funciona bien, pero la maquina es portatil por lo que no puedo usar un pc. Estuve probando con arduino y tuve problemas con la frecuencia y sobretodo con la rampa de aceleracion, la que me hace perder pasos en el motor. Hasta que vi este Post y supe sobre el “GRBL” el problema que en las salidas de los pines no tiene como conectar una entrada para simular un boton o algo que haga mover el motor. Existe alguna forma de reconfigurar los pines del GRBL para agregar esto? Considerando que no se usaran los motores “X” y Y” y esas salidas quedarían disponibles.
    Puse un enlace de youtube para que se hagan una idea de lo que necesito. Obviamente mas sensillo.
    https://www.youtube.com/watch?v=RlTarYJkiw8

    Muchas Gracias.

  • hola javier excelente trabajo me a aclarado muchas dudas pero aun no logro aclara una:
    como logro hacer que funcione el 4 eje como independiente rotatorio con un arduino uno y shield cnc v3; tengo que utilizar el mega y la ramp? y si es asi como configuro el 4 eje muchas gracias.

  • Hola javier Muy bien explicado me sirvio mucho.y ya estan en movimento mis motores.
    Hay una opcion que no me quedo claro la Numero $19 está en 25 y vos decis que es una velocidad rapida para tu maquina, y luego la cambias a 500 ahi no entendi.
    y la opcion $8 quiero desactivar la asceleracion y la llevo a 999 como estas explicando, y mi motor se bloquea , la tengo que dejar entre 5 y 25 para que funcione
    Gracias Atte. Carlos,

  • Hola Javier , mira tengo unas cuantas dudas pero las más importantes creo que sean las siguientes : quiera fabricar una CNC para corte con plasma pensaba hacerla con unos motores nema 23 mi problema es si la quiero hacer funcionar con arduino uno que más debo comprar aparte de los driver, ósea necesito el arduino más una controladora ?
    O que exactamente porfavor me podrías ayudar

  • Hola Javier , mira tengo unas cuantas dudas pero las más importantes creo que sean las siguientes : quiera fabricar una CNC para corte con plasma pensaba hacerla con unos motores nema 23 mi problema es si la quiero hacer funcionar con arduino uno. que más debo comprar aparte de los driver, ósea necesito el arduino más una controladora ?
    O que exactamente porfavor me podrías ayudar
    También me podrías ayudar al decirme si me iría bn comprar el arduino sb cnc shield
    Ya que veo que puede controlar también para encender o apagar el taladro,plasma que en este caso es lo que quiero hacer
    La parte mecánica no tengo problema pero la verd esroy perdido en la electrónica

  • Tengo una duda, he investigado y en algunos lugares encuentro respuestas positivas y en otros negativas.
    La version de GRBL v1.1, es compatible con la CNC Shield?
    Hay que realizar algun tipo de ajuste nuevo para esta version de GRBL?

    Saludos!

  • Hola :))
    Excelente publicación.
    Alguien me puede ayudar a instalar el GRBL en mi arduino? Cuando lo descargo y le digo ingluir libreria, el ide me dice que no mi archivo .zip no contiene ninguna librería válida o algo así :((
    Con un enlace a al archivo correcto me serviría.
    Gracias de antemano!

  • Hola, nunca he utilizado el GRBL, pero me gustaría utilizarlo en unas piernas tipo exoequeleto, tiene cuatro motores 2 nema 23 y dos nema 17, ambos con reductores sinfin corona.. tengo la gráfica en excel de los movimiento emparejados de motor de cadera y motor de rodilla de una pierna, la otra es igual desfasada 180 grados del ciclo completo.. Esto no es con fines comerciales..

    Alguien me podrá ayudar un poco para saber si puedo utilizar la CNC shield con los cuatro motores???

    Gracias de antemano
    Paquete Remache De GAOXIA Vertical Sello Color Pequeños De Bolso Mujeres Plaza Paquetes Bolso Nuevo Negro Paquete Hit Negro Diagonal Único Los del Ocio El
    Oscar Acuña

  • Buenas tardes,
    Tengo una versión antigua de GRBL y me gustaría poner la 0.9, pero me pregunto que tengo que hacer para “borrar” arduino y poder poner la versión nueva.
    He visto en el articulo, que hay un código para borrar la eprom y dejar arduino vació y quería saber si cargando ese programa, ya podría después instalar nueva versión.
    Gracias

  • Hola teng problemas para configurar cual es punto 0 en el eje Z, como se configura , segun lo que entendi hay que conectar al pin A5, pero despues como se guarda la configuracion?

  • Un cordial saludo. Estoy tan liado como Teseo en busca del minotauro, y veo una esperanza en encontrar y salir llevándome el minotauro. Gracias por el artículo.

  • Buenos días, una consulta el mini torno, se cuando usamos una fresadora. se conecta a la arduino, para prender y apagar. O eso se hace manualmente?
    Muchas gracias. Excelente explicación.

  • Nuevo Mujeres GAOXIA De Paquete Color Bolso De del Pequeños Los Hit Ocio Sello Paquete Diagonal Remache Negro Vertical Plaza El Bolso Único Negro Paquetes hola amigo…

    amigo tengo un cnc, el cual tenia un driver a4988en el eje Z pero tenia muchos problemas, y opte por cambiar el driver y ponerle un tb6560… asi como en los demas ejes…

    todo funciona muy bien, pero ahora el problema que tengo es que si mi material a cortar es de 22mm solo me corta la mitad o unos 12mm… aprox..

    si yo genero un codigo g diciendo que mi material es de 34 o 35mm engañando a la maquina, me lo corta muy bien cuando el material la medida real es de 22mm…

    donde tengo que modificar el valor para arreglar eso.. te mando la configuracion de mi grbl

    Grbl 0.9i [‘$’ for help]
    >>> $$
    $0=10 (step pulse, usec)
    $1=25 (step idle delay, msec)
    $2=0 (step port invert mask:00000000)
    $3=0 (dir port invert mask:00000000)
    $4=0 (step enable invert, bool)
    $5=0 (limit pins invert, bool)
    $6=0 (probe pin invert, bool)
    $10=3 (status report mask:00000011)
    $11=0.020 (junction deviation, mm)
    $12=0.002 (arc tolerance, mm)
    $13=0 (report inches, bool)
    $20=0 (soft limits, bool)
    $21=0 (hard limits, bool)
    $22=0 (homing cycle, bool)
    $23=0 (homing dir invert mask:00000000)
    $24=5000.000 (homing feed, mm/min)
    $25=500.000 (homing seek, mm/min)
    $26=250 (homing debounce, msec)
    $27=1.000 (homing pull-off, mm)
    $100=34.850 (x, step/mm)
    $101=34.850 (y, step/mm)
    $102=632.000 (z, step/mm)
    $110=5000.000 (x max rate, mm/min)
    $111=5000.000 (y max rate, mm/min)
    $112=500.000 (z max rate, mm/min)
    $120=150.000 (x accel, mm/sec^2)
    $121=150.000 (y accel, mm/sec^2)
    $122=30.000 (z accel, mm/sec^2)
    $130=200.000 (x max travel, mm)
    $131=200.000 (y max travel, mm)
    $132=200.000 (z max travel, mm)

  • Excelente artículo y claramente explicado. Por ahora estoy en la etapa de documentación para pronto iniciar con el proyecto de una CNC y la verdad me ha gustado mucho este post.

    Saludos desde Panamá!!

  • Hola Javier, excelente post.
    Mira, lo que pasa es que tenemos planeado realizar una CNC para la creación de PCBs, donde desde una pagina web, se suben los archivos convertidos en inkscape a codigo G. A través de un programa basado en python, toma estos desde la pagina web y la idea es que sean enviados al arduino para posteriormente proseguir con la creación de las PCBs. Mi pregunta era si tenias alguna idea de cómo, con python poder enviar estos archivos al arduino.

    Gracias

  • Excelente
    tengo un problema haber si me puedes ayudar
    no puedo cargar el programa grbl al arduino me sale este error
    GRBLtoArduino.ino: In function ‘void setup()’:
    GRBLtoArduino:31: error: ‘startGrbl’ was not declared in this scope

  • Hola, he montado una CNC segun el profesor Garcia y me ha ido bastante bien se entiende por bien, que se mueve correctamente. El problema lo tengo al querer hacer la pieza, su movimiento es para todos los sitios menos al de la pieza. Utilizo grbl 0.8, UniversalGcodeSender_1.08, Aspire 4.0 y windows 10. y la configurasion es:
    $0=50.000 (x, step/mm)
    $1=50.000 (y, step/mm)
    $2=50.000 (z, step/mm)
    $3=15 (step pulse, usec)
    Bolso Bolso Paquetes Plaza Único Pequeños Paquete Diagonal El Ocio Negro Remache Vertical Color De Negro Sello Los Paquete Nuevo Mujeres De del GAOXIA Hit
    $4=1000.000 (default feed, mm/min)
    $5=1000.000 (default seek, mm/min)
    $6=192 (step port invert mask, int:11000000)
    $7=15 (step idle delay, msec)
    $8=500.000 (acceleration, mm/sec^2)
    $9=0.050 (junction deviation, mm)
    $10=0.100 (arc, mm/segment)
    $11=25 (n-arc correction, int)
    $12=3 (n-decimals, int)
    $13=0 (report inches, bool)
    $14=1 (auto start, bool)
    $15=0 (invert step enable, bool)
    $16=1 (hard limits, bool)
    $17=0 (homing cycle, bool)
    $18=0 (homing dir invert mask, int:00000000)
    $19=500.000 (homing feed, mm/min)
    $20=600.000 (homing seek, mm/min)
    $21=100 (homing debounce, msec)
    $22=10.000 (homing pull-off, mm)
    Si alguien me puede ayudar le estare eternamente agradecido.

  • Buenas amigo Javier Loureiro, me gustaria por favor me aclares en que parte de la libreria grbl.h y en que linea se puede introducir nuevos cambios, por ejemplo;
    Deseo colocar un display lcd 20×4 con acople I2C donde muestre las cordenadas de los ejes “X,Y,Z” mientras este realizando el fresado y otras funciones mostradas por ese display,
    De ante mano muchas gracias por su atencion y tiempo.

  • podrias explicarme en muy pocos y basicos pasos como si fuera un niño desde cero como hacer un grabado en una cnc fresadora q he montado y no tengo ni idea, muchisimas gracias, un buen trabajo felicitaciones y perdona mi torpeza con esto

  • Hola,me parece excelente el articulo, tengo unas pregunta, ¿el grbl es exclusivo para Arduino?
    Ya que necesito trabajar con una cnc pero la diferencia es que en vez de trabajar con Arduino tengo que utilizar con una fpga trabajando con vhdl, en caso tal de que el grbl también se pueda trabajar con la fpga ¿el grbl sería configurado de la misma manera para la fpga o cambiaría de manera considerable?

  • Desde ya el link esta agregado a marcadores en barra de herramientas.
    Genial tu aporte, hace muchos años se de la existencia del cnc pero con este para de artefactos geniales (Arduino y CNC Shield) por fin estan al alcance de nuestras manos.
    Mi proyecto es construir mi cnc para labrado sobre madera, seria algo como 3D, con un dremel. Hatsa ahorita solo tengo el arduino los motores y la idea.
    Ya que tengfa avances agradecere tus respuestas a mis dudas.

    Saludos.

  • Hola que tal, quiero intentar agregarle a la cnc un control externo, algo así como el control manual del Gcode Sender pero con pulsadores y conectandolo a la arduino, sabes que lineas de código usar para modificar la posición de los ejes? sería añadir un nuevo archivo .h? había pensado que cada vez que presione un botón sea como mandar la la instrucción “X1”, “X-1” y así sucesivamente con los 3 ejes, se como mover de pronto motor por motor con el arudino, pero al hacerlo perdería la posicion, me explico, si estoy en x30, y presiono el boto de x de tal manera que retroceda 3 centimetros fisicamente estaria en x27 pero para el Gcode Sender el sigue estando en x30, entonces por eso había pensado usar algo estilo mandar Gcode pero en vez de usar la comunicación serial entre el pc y el arduino serían comandos internos directamente con el arduino, te agradeceria si pudieras echarme una mano

  • Mujeres hombro Bolsas Adornado PU Pantalón Moda Marrón Casual VogueZone009 de dY8qOd

    Saludos y muy agradecido por la experiencia y horas de trabajo transferidas a esta página,estoy comenzando en esto,Ya armé mi CNC(aunque me falta aun el eje Z),he ido paso a paso.Ahora estoy en vísperas de mi primera prueba(utilizaré un lapiz) para ver como va la calibración de la máquina.La monté a lo grande(para mí) de 50x50x25 cm. Completamente metálica(aprendi a soldar con ella). Cualquier sugerencia en este punto me será de mucha ayuda(debo “digerir bien” el cumulo de informacion de esta página):El entusiasmo ,perseverancia y ganas de ver esto funcionar, me han tenido insomne por varios meses.Un abrazo y los insto a estudiar y a HACER COSAS.

  • Hola estimado Javier tengo una mini cnc 3018 q la compre de china esta tiene la opción de trabajar con grabado a laser o trabajar con cnc el problema q tego es q la cnc trabaja bien pero cuando quiero trabajar con el laser tengo problemas no termina los grabados q le envio o se detiene la maquina y el laser sigue encendido o se apaga el laser y la maquina sigue funcionando, espero me puedas ayudar, gracias de antemano por tu respuesta.

  • gracias por el articulo, ya practicamente tengo mi cnc hecho de escaner que encontre por ahi, impresora viejas,etc.
    pero tengo un problema, los 3 ejes tienen correa que los mueven unos engranajes y a la hora de hacer un circulo no lo hace perfecto, no sale ovalado y tampoco incompleto sino es un circulo deforme se puede decir (creo que es por la correa y engranaje).
    ahora que me entero que se puede modificar el codigo y agregar uno propio se me ocurrio que ese problema que tengo se pueda corregir por soft, vere si lo soluciono y lo publicare por si algien tiene el mismo problema
    nuevamente gracias por la info.
    saludos!!!

  • Holaaaa, primero que nada, estoy muy agradecido porque deveras que aclaré muchas dudas al respecto, y ahora todo me parece posible.

    Dejo un esquema de como he entendido las cosas hasta ahora:

    Arduino => CNC Shield => driver stepper => motor stepper
    firmware lenguaje instruccion bobinas
    (GRBL) (G-code) (un/bi-polar) (movimiento)

    Pero porfavor me podrías confirmar si hagarré bien la idea: Osea que el GRBL interpreta una serie de coordenadas en G-code, y elige una ruta que debe seguir el movimiento de… por ejemplo una impresora 3D, cada paso de esa trayectoria se la envia como G-Code a la cnc shield, quien a su vez le dice a los driver stepper “paso a paso” cuando y como mover los motores paso a paso.

    si es que no es así, ¿cual sería entonces la función de la CNC Shield?.

    en cualquier caso gracias por tu dedicacion!!

  • Tu articulo me ha gustado mucho. Lo leeré más despacio dentro de unos días.
    Tengo pensado hacer una mini cnc con dvds y otra más grande, aproximadamente de un metro cuadrado para hacer carteles, esquemas, figuras geométricas… el objetivo es hacerla en un colegio con niños y sus padres para mejorar la convivencia, motivarles hacia el aprendizaje de ciencias, matemáticas, arte…
    En otro cole llevamos dos años haciendo reproducciones del tesoro visigodo de Guarrazar.
    Muchas gracias.

  • Me ha gustado mucho tu blog estoy haciendo una CNC con lectores de cds he aprendido un montón cuando ka acabe de armar te envió imágenes de antemano gracias like

  • Hola Javier, muy bueno esto del GRBL, estoy avanzando en este tema, estoy queriendo hacer una cortadora de Polifan, telgopor o como le digan por ahi. tengo todos los materiales y la electronica podriamos decir que funciona. Mi tema es la parte “mecanica”, necesito saber si alguien tiene planos de una. Esta usa solo dos motores, eje X (desplazamiento) y eje Z (donde va el alambre caliente). Me ayudaria mucho. Otro tema, hay algun G-code en el que se pueda utilizar un display?, aunque tenga que agregar otro arduino para ver datos?, gracias!

  • Soy novato en lo de la CNC pero tengo estudios en electronica e informatica y voy a empezar a construir mi CNC sencilla hasta llegar a una CNC de 3D para empesar la CNC he leido suficiente teoria y ya es tiempo de pasar a los hechos asi es que a empezar dandole las gracias a toda la comunidad por todos sus articulos publicados

  • Felicidades Javier, un post interesantisimo y revelador.
    Estoy con la idea de montar una cnc para dibujo utilizando como base mecánica este proyecto: https://www.thingiverse.com/thing:1214438

    dispongo ademas de un Arduino Uno y una shield cnc V3

    Mi consulta viene por que no sé como configurar el servo que permite levantar el rotulador o pluma para que la cnc realice algún tipo de posicionamiento.

    Podrías aportar algo de luz a mis tinieblas?

    Gracias!

  • Me ha encantado la verdad, pero tengo mis dudas y a ver si me las puedes despejar.
    Voy hacer mi primer CNC, ya trabajo con 3d printers y puedes ver el proyecto aquí; https://www.thingiverse.com/thing:790533.

    En este proyecto se usa ramps y arduino mega. NO se que software se usara para manejar el cnc… Tambien veo la posibilidad de usar cnc shield y arduino uno en grbl, y no se que soft usa cada uno para mover todo…. unos seran archivos stl y otros rgbl y la verdad no se que usar. NI como hard ni como soft, si me comentaras un poco… te lo agradecería.

  • Como ya he escrito por otro sitio,mi problema son el orden de pasos que hay que hacer para instalar los componentes,es decir,un guia para los que no tenemos ni idea de flashear firmware etc.etc.Si el arduino esta enchufado o no.Respecto al codigo G no tengo problema pues hice dos cursos de operador de maquinas cnc,fresa y torno

  • hola, buen articulo !!! tengo un arduino uno R3, motores nema 23, driver drv8825 obviamente quiero hacer mi cnc, tengo muchisimas dudas en cuanto al grbl y el software de diseño como tal, he visto que para diseñar se usa el artcam, mach 3 entre otros, ahi viene la otra duda esos programas sustituyen al grbl ?? o son dos cosas diferentes que se necesitan ?? mucho quisiera que por favor me aclares esto gracias !

  • Acabo de comprar,por amazon,otro conjunto de Uds.el antrior y los motores chinos ,este experimento ya me esta costando un pastón,menos mal que no tengo vicios menores y me puedo permitir lujos.Ahora los drivers son 8825,voy camino de Suecia por el Nobel,se regulan igual que los 4988?,cum laudem.
    Sr Loureiro,donde vive que voy para allà.Es broma.

  • Saludos
    Exc informacion Javier, asi la info de los drivers y steppers… me han ayudado bastante en la construccion de mi CNC… al punto que ya puedo iniciar con la parte mecanica de la misma.
    Sin embargo me nace una duda.
    GRBL me funciona a la perfeccion, pero en Windows… actualmente tengo un proyecto de migrar 100% a Linux… pero me preocupa la parte de q el GRBL no se puede utilizar en la plataforma.
    Siendo asi, que otras alternativas hay… conoces alguna?

    Saludos, y gracias

  • Me llamo Miguel y tengo el siguiente problema: cuando conecto la placa de arduino uno al pc y abro el universal gcode sender me salta una alarma en rojo, (Active State: Alarm). El código GRBL lo cargue con Xloader y si pongo $$ e intro salen los comandos, eso si precedidos de “error: Alarm lock ” y no se a que es debido. Te agradecería una ayuda, gracias y saludos.

  • hola despues de ver algunos videos y buscar algunas cosas fabrique mi primer cnc, ya se mueve y he realizado algunas pruebas.
    creo que los motores me quedaron chicos para la maquina pero logro hacer algunas cosas pequeñas sin problemas, solo en un plano.
    la duda es si con GRBL usando g-code sender se pudiera cortar una rampa que no sea a un solo valor de z?

  • quisiera utilizar correas en vez de perno en el eje z en mi cnc el problema es que cuando el motor se detiene la por el peso del router el eje cae, moviendo el $7 en el grbl puedo lograr que se quede en su lugar? o hay otra solución para esto, de antemano gracias por tu respuesta

  • Hola Javier, estoy navengado por internet en busca a una solución para una fresadora que hemos montado. Te pregunto por si puedes ayudarnos. Lo tenemos todo aparentemente bien montado. GRBL 1.1 y Universal GCode Sender 2.0. Hemos cargado el código y la máquina anda, pero al desplazarse, hace ruido (y como si no fuera un desplazamiento continuo, como a pulsos). Estoy buscando para los parámetros $, pero no hago que vaya fluido. ¿Podrías darme alguna idea sobre qué hacer? ¿Necesitas alguna información más?

  • Javier muchas gracias por estos articulos tan interesanres. He terminado mi CNC y mi problema es que cuando programo una macro en Universal Gcode sender y apago el programa, no se graba y cuando enciendo otra vez , ha desaparecido. Que tengo que hacer para que no se pierda la macro o macros?. Muchas gracias.

  • Hola buenas tardes, estoy considerando utilizar este software para crear un CNC. Mi plan es hacer un atornillador autonomo. Ya tengo el atornillador con su dispensador de tornillos. Entonces, me gustaría hacer que el atornillador coloque aproximadamente 48 tornillos sobre una placa. Le puedo configurar puntos especificos para que el atornillador se mueva en eje (X,Y) para luego bajar el atornillador (Z) y este atornille?
    Gracias

  • hola buenos días,tu post me inspiró a armar una cnc usando un servomotor,pero no he podido hacer que este se mueva,he configurado las librerias,probado los comandos m05 m03 sxxx,etc y el servo no se mueve,este esta bueno ya que lo voy probando en otra placa arduino con un codigo simple para verificar que no este dañado,seria genial si me pudieras aconsejar que puedo estar haciendo mal…
    saludos

  • Hola, soy un aficionado a la robótica y he hecho algún proyecto con motores paso a paso pero en el campo de las cnc y 3d soy un neófito. Estoy terminando de preparar un proyecto para automatizar un cortador de oxi-corte a un amigo y me ha surgido una duda que estaré enormemente agradecido si alguien del foro arroja un poco de luz. Si quiero cortar una aro necesito empezar a cortar por la circunferencia interior para después cortar la exterior, así la pieza no se separa de la chapa de metal hasta el final, mi pregunta es ¿esto lo hace gcode automáticamente? o puedo o debo indicarle que empiece a cortar por dentro primero. Gracias por su ayuda.

  • Hola Javier, gran artículo. He montado una CNC para pcb’s recientemente, con un Arduino UNO, y me gustaría saber si cabe la posibilidad de usar alguno de los pines libres (el A0 por ejemplo), para hacer un “auto tool zero”. La idea es conectar la herramienta a una pinza de cocodrilo que cuando toque la base metálica (tierra) cierre el circuito y establezca el Z0 del material. He visto dibujos del MEGA donde hay un pin específico para ello, pero tengo todo el montaje con el UNO y no me queda espacio físico para el otro.
    Se puede hacer esto?
    Muchas gracias de antemano!!

  • Hola Javier antes que nada muchas gracias por el aporte, es un excelente artículo. Busco una solución por este medio ya que tengo montada y parece que calibrada mi CNC es una típica mini router que adquirí por internet. He hecho pruebas de calibración y la he puesto a trabajar con Universal Gcode Sender con éxito sin embargo no termina los maquinados sino que en ocasiones los motores se detien por completo y emiten un zumbido repentinamente al estar trabajando a veces desde el principio, a veces casi al terminar, a veces en medio… aunque la interfaz no necesariamente muestre un error sino que sigue “enviando los comandos” como si siguiera trabajando normal. Es necesario reiniciar el arduino para poder volver a establecer la comunicación. ¿Tienes alguna idea de lo que pueda estar pasando? Cómo observación en ocasiones (muy pocas) sí ha logrado terminar los maquinados con éxito de inicio a fin sin detenerse y otro detalle: todos los motores y varillas son idénticos y están configurados igual pero el eje Y va mucho más lento que el eje X aunque esto no afecta al parecer el grabado lo hace más lento al grabar un cuadrado lo hace rápido en un lado y la línea perpendicular recorre mucho más lento. Gracias de antemano y espero tengas alguna idea de lo que está pasando.

  • hola a ver si me ayudáis ( soy novato ) monte mi cnc como la del profe gracia pero no me convence la veo de vil pero uno de mis problemas es que no se como configurar el grbl para distintos materiales como aluminio,metacrilato,etc y eso me trae de cabeza decir que la cnc con bolígrafo va de maravilla pero a la hora de trabajar con las fresas ya me pierdo
    pd: que maquina puedo montar que sea mas robusta en plan casera salu2

  • Buenos dias, he conectado la placa de staticboards, y cargado el programa según la guía, pero ningún motor se mueve al aplicar los comando.

    ¿Que podra ser?.

  • acabo de publicar los comentarios que tenía aqui pendientes :/

    a partir de ahora los responderemos al momento, para que no se vuelvan a acumular de nuevo

  • Buenas noches Javier, Deseo me ayudes con una cnc que he montado con arduino uno y la shiel de protoneer, la máquina niene un espacio de trabajo de 1.90 metros en el eje x, 1.70 metros en el eje y, y 30 cm en el eje z, trabaja bien en cosas de hasta 70 cm x 70 cm, pero la hice grande para poder hacer piezas talladas de mayor tamaño. Mi pregunta es por qué se para en dimensiones mayores, como puedo modificar el GRBL 9g para aprovechar todo el espacio de trabajo. Desde ya muchas gracias

  • Excelente información.

    Estaba buscando otra cosa relacionada, nuevos comandos de GRBL en UGD 2.0 dado que no tienen la misma numeración y descripción ($$0, $$1, etc. no lo encontré acá ), pero de gran aporte.

    Gracias por compartirla.

  • Javier me construi una grabadora cortadora Laser tengo instalado GRBL 1.1 y el TTL del laser conectado a Z+ de la CNC Shield, he comprado un acesorio que es una aguja termica para poder cortar Tergopol (corcho blanco que tambien le dicen) dado que el laser a este material no lo corta ni lo graba refracta la luz del mismo, para este aceesorio como debe de bajar y subir la aguja termica que cortara el tergopol mi idea es colocarle un servo motor conectado al pin SPin En de la CNC shield para que opere este pin cuando quiero trabajar con la aguja termica debo cambiar alguna configuracion y comando pra que en vez de actuar el Laser actue el servo Motor? Espero me puedas ayudar,desde ya gracias y saludos!!! Heber

  • Hola a Todos. Quisiera saber si alguien sabe donde puedo mirar las instrucciones para hacer que mi máquina CNC sea standalone, quiero no depender del computador, sino leer directamente de una memoria SD, y obviamente poder incluir una pantalla LCD para poder seleccionar archivos, cambiar configuraciones, etc.

    Saludos y Gracias!

  • Hola ,yo acabo de imprimir en 3D un CNC de dos ejes para usarlo como grabador laser,porque ya he probado a grabar con la impresora 3d haciendo los dibujos con Inkscape y no da los resultados que yo espero ,porque no me apaga el laser ni me lo controla en modo TTL,por eso quiero hacerlo directamente con un arduino UNO y ramps 1,4 para poder controlar el laser,de todos los progrmas GRBL, cual crees que es mejor para laser? ,gracias por todas las explicaciones que das,Saludos

  • Hola te consulto de que forma puedo cargar manualmente varias lineas
    en el programa g code center , porque cuando coloco una linea y aprieto ENTER me la ejecuta .
    Me interesaria manualmente cargar varias lineas sin usar un programa que de un dibujo me lo transforme a codigo G y luego ejecutarlas.
    gracias.
    saludos.

  • Se que es una tonteria, per el Aduino almacena todo el programa en la flash,hasta32kb. Su EEPROM es de solo 2kb. Por si alguien se planteaba algun truco con la EEPROM.

  • Hola.entrè un pequeño programa y cada vez que hago una línea de comando y la entro la máquina se mueve a la posiciòn.Que hago al final para que se ejecute el programa completo.gracias

  • HOLA AMIGO MUY BUEN TUTORIAL, ME PODRIAS AYUDAR ESTOY REALIZANDO UNA CNC PARA MONTAR UNA PLASMA, Y QUIERO ACTIVAR CON UN RELE, EL PROBLEMA O DUDA ES COMO CONECTO DE FORMA FISICA EL RELE A LA TARJETA CNC SHIELD V3 GRACIAS POR TU AYUDA

  • Hola excelente informacion, grcias, consulto: tengo un codigo G que ejecuto en mi CNC-arduino uno desde universal gcode sender, en forma repetitiva
    Puedo poner un botón físico para que repita el ciclo sin tener que aceptar el fin del ciclo y enviar de nuevo el código con send desde la PC?

    o podria ejecutar el codigo desde una SD
    gracias por la ayuda

  • Deja un comentario

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Mujeres Único Paquete del De Negro Diagonal Color Paquetes Nuevo El Paquete Vertical Sello Ocio Bolso Pequeños Hit Remache GAOXIA Bolso De Los Negro Plaza

    Índice

    Últimos Artículos

    De Único Paquetes Sello del Bolso Paquete Nuevo Mujeres Vertical Negro GAOXIA Bolso Plaza Hit Remache Pequeños Color El Los Negro De Diagonal Paquete Ocio 5ZPxqUw0t

    CONTACTO

    info@staticboards.es

    C/Emilio González López, 29

    15113 Malpica, A Coruña

    Spain

    SÍGUENOS

    Uso de cookies

    Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

    Aviso de cookies

    ¿Te ha gustado?

    ¡Compártelo con tus amigos!

    de Blanco Bolsa estilo bordado de TOOGOO de bolsa nuevo cuadrada Blanco pequena bloqueo de BOlsa Bolso con de bordado mensajero nacional PU de Remaches cadena de cuero nWwqf0xCpw

    ¿Te está gustando el artículo?

    Déjame tu dirección de correo,

    y recibirás un aviso cuando publique el siguiente

    Muchas Gracias!

    Recuerda que tienes que confirmar tu correo

    si quieres recibir las actualizaciones

    ¿Necesitas ayuda?