Electrónica CNC/impresora 3D (driver, shields y placa)

Bueno chicos pues la vinciDuino evo uSD ha llegado de la mano del Año Nuevo. Una vinciDuino con tarjeta uSD que funciona a las mil maravillas.

Tengo intención de actualizar el SW de control de la CNC de tal forma que compruebe si hay un fichero "job.gcode" en la uSD y en caso de encontrarlo, leerlo directamente del fichero en vez de enviárselo por USB. En el futuro, pondré un pequeño menú de control para poder seleccionar desde un teclado y LCD el fichero a procesar.

Espero que os guste.

fm:
Bueno chicos pues la vinciDuino evo uSD ha llegado de la mano del Año Nuevo. Una vinciDuino con tarjeta uSD que funciona a las mil maravillas.

Tengo intención de actualizar el SW de control de la CNC de tal forma que compruebe si hay un fichero "job.gcode" en la uSD y en caso de encontrarlo, leerlo directamente del fichero en vez de enviárselo por USB. En el futuro, pondré un pequeño menú de control para poder seleccionar desde un teclado y LCD el fichero a procesar.

Espero que os guste.

vas increíblemente bien en esto jajaja hasta que tengas esta versión actualizare las versiones de drivers, ya que quiero ese cuarto eje, y si es posible un quinto jajaja para que quede lo mas profesional que se pueda...
por cierto Fm, hay alguna manera de que en tu SW nuevo incluyas para manejar la velocidad del cabezal??

Gracias por tu respuesta. ya les habia hechado el ojo por ebay a un par de kits en los cuales por unos 160 euros con portes te traia la controladora los tres motores etc, y era la idea que tenia pero era por probar. No obstante muchas gracias. :slight_smile:

si, lastima la diferencia de países, sino seguro te regalaría uno de los nema 14 que tengo por ahi sin uso ya que no son tan potentes para una CNC

Hola

Estoy utilizando la versión 1.0.7 para los drivers de fm y al ir a configurar un relé para automatizar la puesta en marcha de la broca y el aspirador, pensé que con definir el pin en el configMe.h bastaba.

#define MOTOR_PIN        14 // Spindle motor control pin

pero también se tienen que descomentar 2 lineas en processGcode.cpp

digitalWrite(MOTOR_PIN,HIGH);
digitalWrite(MOTOR_PIN,LOW);

ahora al enviar los comandos M3 y M5 vemos como el voltaje varia en el pin seleccionado pero al poner un relé no actúa, por lo que he tenido que añadir en el setup()

pinMode (MOTOR_PIN,OUTPUT);

y ahora si funciona el relé.

Casi me vuelvo loco ya que no sabia que estaba haciendo mal y resulta que en mi vinciduino no funcionan los pines analógicos, por lo que he tenido que poner el relé en el pin D4 en vez del A0, he probado con un duemilanove y a funcionado en el pin A0 sin problemas.

fm, excelente trabajo.

A ver si hago una actualización y dejo los pines activados por defecto.

Por qué no te funcionan los pines analógicos de la vinciDuino?

Pues no sé a que se debe, no me han funcionado A0,A1 y A2, el bus I2C funciona bien (funciona la LCD y la temperatura) y A3 no lo he probado, en principio ya está funcionando la CNC y a menos que se te ocurra alguna ampliación de la leche no creo que necesite más pines. A ver si termino la caja y la dejo fija, que llevo toda la electrónica colgando.

Hola a todos, hoy he estado probando los nuevos drivers ELFDRV3 a fondo mecanizando un par de piezas durante algo más de una hora. Los resultados han sido mucho mejor de los esperado. Los drivers estaban configurados para trabajar a 2A por fase, el incremento de temperatura durante la hora de trabajo no ha sido más que de 2ºC. La temperatura final de la vinciCNC era de 25ºC!

Configuración de los drivers:

  • 2A por fase
  • Alimentación de cada fase 12V.
  • Motores NEMA 21 2.5A max a 3.5V.
  • Temperatura ambiente 23ºC
  • Temperatura final (1 hora después) 25ºC.
  • 1/32 microsteps

En el hilo del foro de la CNC podréis ver lo que he mecanizado.

No está nada, pero que nada mal para unos drivers tan pequeños.

Hola a todos, he publicado la nueva versión del SW de la CNC: versión 1.0.8.
Novedades:

  • Corrige la velocidad de los movimientos. Antes eran un poco lentos (30% más lentos).
  • Añade aceleración al movimiento. La velocidad va incrementándose progresivamente hasta alcanzar velocidad de crucero.
  • Usa la librería FastIO, así se pierde menos tiempo con el dichoso digitalWrite
  • Pequeñas correcciones de código

Ojo, que está configurada para hacer micro-stepping de 1/32. Hay que entrar en el fichero confirMe.h y cambiar:

/*!
 @defined    MICRO_STEP
 @abstract   Stepper driver micro stepping.
 @discussion Stepper driver micro stepping configuration:
 1: 1    step
 2: 1/2  step
 4: 1/4  step
 8: 1/8  step
 16: 1/16 step
 32: 1/32 step
 Default configuration (1/8).
 
 TO BE CONFIGURED for each machine and stepper. (CONFIG ME)
 */
#define MICRO_STEP       (32)

Por los pasos que tenga vuestro controlador.

Como siempre, la podéis encontrar en: https://bitbucket.org/fmalpartida/cnc-controller/downloads o descarga directa: https://bitbucket.org/fmalpartida/cnc-controller/downloads/CNC_V1.0.8.zip

@vic20 - perdona pero al final se me olvidó poner el código para activar un motor externo. En la versión 1.0.9 lo llevará de serie!

No hay nada que perdonar y menos con la maravilla que nos dejas.

Gracias por compartir tu trabajo, en cuanto pueda lo pruebo.

Saludos.

Muchas gracias! Prometo que en la siguiente versión viene de serie. Quiero refactorizar un pelin el código, toda la inicialización está un poco de aquella manera y no termina de gustarme, además quiero mejorar las aceleraciones para que tengan una aproximación numérica un poco más constantes.

Despues de leerme todo el post entero y otros varios como el del ferroviaro de la maquetaza de tren y algunos cuantos mas de Txapuzas... me dejais flipando del poder que tiene mi pequeño arduino jejeje, tengo en mente montar una CNC en un principio pequeña para hacer alguna que otra placa y bueno pues para aprender y ya si se tercia.. pues igual mas grande jeje. De momento quiero probar con unos motores que tengo de una impresora un 257, 258 de una Epson y un M49-SP2K de una HP, lo que nose que drivers montar, he visto los que tiene Txapuzas con el TxapuChino y 3 puentes H con el L298N. Que opinais? estos motores son "pequeños" tienen un consumode 0,35 - 0,5 y 1 A respectivamente, esque he estado mirando los de ELFDRV1 y 2 y son la leche pero para igual es para un uso mas profesional no? Espero vuestra respuesta y muchas gracias por compartir tanta informacion!!

Un saludo.

Lo único es ver si aguantan bien los motores sin regular la corriente. Si te soy sincero, tal vez empezaría usando los que están basados en los L298 y después pasar a algo un poco más serio para la máquina final.

Ahora ya sólo monto los ELFDRV3 con unas prestaciones algo mejoradas.

Muchas gracias por tus comentarios y bienvenido al mundo CNC e impresión 3D!

Como los que estan basados en los L298? los L298N no? que diferencia hay? he visto tu plava la ELFDRV1 y 2, en la web subiste el diseño del pcb? es que soldar smd.. es dificil no? Me gustaria montar unos de esos tuyos pero me da miedo tambien estropearlos por no tener los suficientes conocimientos :D.

Si, empieza a usar uno basado en un L298N. Los driver que yo monto no son ideales para iniciarse en soldadura SMD. Tienen un pad en la parte inferior del ASIC.

Por cierto, si Montás una placa basada en el M298N, puedes construir un circuito para controlar la corriente de cada fase usando un L297N. En el datasheet puedes encontrar una nota de aplicación.

Oks apunto eso del 297, pues me fijare en el Txapuzas CNC pero no voy a perder de vista todo lo que poneis por aqui, que de todo se aprende. Muchas gracias y adelante mucho animo que estas haciendo unas cosas espectaculares!!!

Un Saludo

Muchas gracias. Saludos

Hola a todos otra vez. Hoy he publicado la nueva versión V 1.0.9 con algunas mejoras:

  • Cambio del algoritmo de aceleración para que sea lineal y constante
  • Optimización de los parámetros de aceleción
  • Control de la fresadora con su correspondiente comando M3 y M4 (en el fichero configMe.h hay que cambiar el pin asociado control del motor MOTOR_PIN que por defecto está a A0).

La podéis descargar aquí: https://bitbucket.org/fmalpartida/cnc-controller/downloads/CNC_V1.0.9.zip

Aun me queda hacer un cambio un poco más profundo a todo el SW de control pero de momento funciona muy bien y más o menos está organizado.

No me habia enterado de estas actualizaciones, me quede en la 1.0.7

Es impresionante el cambio que da la maquina, sobre todo el sonido de los motores al acelerar.

He tenido algun problema para que me funciona y no me va bien del todo, el caso es que he cambiado la varilla M10 de los ejes X e Y por correa dentada y tengo que configurar 5 pasos/mm, en un principio nada mas cargar el sketch, la cnc va a camara lenta, no llega a acelerar, he modificado la linea #define ACCELERATION          0.400000 y funciona bien en las lineas rectas, pero en curvas baja muchisimo la velocidad.

He cambiado eso curioseando en el programa, pero no tengo ni idea de lo que es XD

Saludos

Es la aceleración. En curvas debería ir más lento porque las curvas las programa como segmentos rectos pequeños y no llega a la velocidad nominal.

Con esa velocidad te irá muy lento. Sube la velocidad de los comandos del gcode y aumenta un poco la velocidad.

Me alegro que te guste.