He estado haciendo algunas pruebas con el firmware, y creo que hay un problema cuando se inicia la conexión, hay cosas que hace que ningún otro sketch que tengo en los que uso comunicaciones serie me ocurren, como yo no he programado el firmware me costara un poco mas mirarme todo el código a ver si detecto el error.
Me gustaría si podéis probar una cosa los que tenéis la arduino MEGA y es meter el firmware de txapuzas e intentar conectar con el programa, en principio os dirá que no ha podido cargar el firmware, pero después os tiene que dejar mover los ejes perfectamente, si podéis decirme que os pone en la ventanita de log
Hola, he realizado la prueba de cargarle al MEGA el firmware de Txapuzas. En principiole he puesto la velocidad a 19200. Cuando he arrancado tu software se ha encendido el led como unos 10 segundos, luego a continuacion me ha dado el error de que no podia cargar el firmware, y el error de conexión. Lo bueno es que he podido mover los ejes de la maquina sin ningun tipo de problema. Lo que me ha puesto en las primeras lineas de la ventana de log ha sido:
start
Huh?105
ok
Adjunto captura de pantalla.
Un tema que he visto es que aparece en la pestaña de informacion el estado como desconectado, cuando sabemos que no es así. Que no haya leido el firmware no debería implicar estado desconectado, aunque esto es un mal menor.
De todo esto, por lo que veo el tema de el led L encendido 10 segundos,me parece que va a ser debido en principio al tipo de sistema operativo, ya que tal como comente en un post anterior, si cogemos la IDE de Arduino, con el firmware de Txapuzas, en windows esta los 10 segundo encendido, y en ubuntu,hace un parpadeo y se conecta.
En cuanto a que no se conecte a 19200 si que puede ser un tema de firmware ya que el de Txapuzas se conecta a tu software a 19200 sin problema.
Otro problemilla que tengo ahora, es que me he comprado un gamepad para mover la maquina, en concreto un Thrustmaster Dual Analog 4. En windows aparece correctamente instalado, y cuando me meto en el test de dispositivo puedo chequear todos los botones del gamepad de manera correcta. El caso es que el icono de control me aparece desactivado y no tengo forma de activarlo, es como si no detectase el gamepad, (tambien te adjunto pantallazo).
Un saludo.
Un saludo
Hola ngc1300, he estado haciendo mas pruebas viendo el firmware de Txapuzas y el de fm. He mantenido la conexión a 19200 y le he añadido igual que tiene el firmware de Txapuzas la linea Serial.println("start"); en el sketch CNC, despues de ajustar la velocidad de conexion.
Serial.begin(19200);
Serial.println("start");
El resultado es que ahora si conecta la maquina a 19200, pero me da el error de lectura de firmware. En la ventana de log veo:
start
ok
Pero puedo mover la maquina, eso si con limitacion de ejes, ya que no puedo acceder a la configuracion de dichos limites.
Lo curioso es que si entro en la pestaña de informacion, no tengo la informacion del firmware ya que no la he podido obtener al conectarme, pero si envío el comando M115 si me responde el Arduino correctamente y me rellena los datos de la version de firmware en la pestaña de informacion.
Viendo estos resultados en principio el Arduino MEGA si se conectaria a 19200 si le hacemos que nos envie una orden en cuanto conectemos. Podría ser interesante cambiar la forma en la que compruebas la conexion al Arduino, primero habilitar la conexión desde el programa, una vez que recibimos un start por ejemplo, de esta manera tendriamos garantizada dicha conexion y a continuacion enviarle la peticion del M115 y en funcion de lo que nos devuelva habilitar las opciones de limites de ejes. No se que te parecerá la propuesta, ahora tal como lo tengo segun me devuelve el arduino el start y me aparece un ok, me sale la ventana de que no se puede leer el firmware,y a continuacion que hay un error de conexion.
hola carferu, al final parece que el firmware es el que tiene un problema al hacer la conexión, en mi arduino UNO cuando conecto con el IDE de arduino el led L esta encendido menos de 1 segundo (esto es en windows), y en el monitor me aparece un carácter ilegible, he hecho lo mismo que tu de poner al establecer la conexión en el firmware a que mande un mensaje y desde el IDE me aparecen caracteres ilegibles. en cambio en el firmware de txapuzas esto no ocurre.
Una cosa que me parece muy extraña es que si tienes la ultima versión que puse te tiene que dar el aviso del firmware pero no te tiene que dar ningún error de conexión.
En cuanto a la propuesta que dices, en las primeras versiones del programa se hacia así, esperaba a recibir un dato, ya que como te he comentado antes cuando conecto mi arduino me manda siempre un dato (ilegible), pero un usuario tenia problemas y no le conectaba(ahora supongo que a el no le pasaba) y lo cambie a esta otra forma que parece que iba bien. Por lo que parece los arduinos no se comportan todos igual con lo que pensare a ver una solución para que nos funcione a todos y no sea muy dependiente de un firmware en concreto.
En cuanto al gamepad, en principio el programa lo detecta de forma automática, si el botón esta desactivado es por que lo ha detectado, si no lo detecta es cuando el botón se activa y lo tienes pulsar para conectar con el, esto ocurre en el caso de que conectes el gamepad una vez se ha abierto el programa.
Prueba a mover los ejes con el, no se si tiene modo analógico o no, en el mio tengo que activar el modo analógico, ademas para no saturar al arduino tienes que mover para donde quieres que vaya la maquina y mantener la posición como 1 segundo aproximadamente. Esta parte hay que refinar la un poco mas mas adelante.
Hola ngc1300, he estado probando el gamepad de nuevo y por fin me ha funcionado. El problema es que no esperaba el tiempo suficiente con el mando analogico en la posicion para que enviase la orden. En principio he estado moviendo la maquina sin problema. Como sugerencia para mas adelante, sería interesante que cuando el mando analogico se encontrase en una posicion fija, el motor se moviera sin parar hasta que se soltase el mando, es decir de forma continua. Ahora si lo dejo fijo en una posicion se va moviendo a intervalos, dependiendo del avance que tenga puesto en el software. He probado a poner avance 1, y dejar el mando fijo para que se mueva el motor y este se va moviendo a tirones, se mueve 1, para y acelera para avanzar 1 y se vuelve a parar.
Se podría crear algunas ordenes de tipo M especificas (parecida a la que envia la version de firmware), de manera que al llamarlas me hagan un movimiento seguido del motor, para evitar que constantemente se este parando y acelerando en avances pequeños.
Tambien sería interesante poder asignar los botones que hay en la pantalla a los del gamepad, de esta manera podriamos posicionar la maquina, arrancar los motores, hacer los cero de maquina o cero de pieza desde los botones que asignasemos al gamepad.
De momento estas sugerencias las propondría como mejora a largo plazo, ya que entiendo que ahora lo mas importante sería resolver el tema de la conexión a 19200 con el Arduino.
Por ahora todo lo que he estado probando me ha parecido genial, sobre todo la parte de configuracion de limites de maquina, y la posibilidad de tener un cero pieza y un cero maquina. Mi enhorabuena de nuevo por tu trabajo.
Tienes toda la razón, la funcionalidad actual del gamepad es un poco escasa, pero como solo lo usaba para movimientos cortos pues ya me iba bien, ademas hay que tener en cuenta que el arduino tiene limitaciones de hardware, me gustan mucho las sugerencias que haces. la verdad que hasta ahora no tenia constancia de si alguien usaba el software, con lo que soy el único testeador, eso implica un desarrollo lento de la aplicación, y que este diseñada para mis necesidades, te animo a que pongas incidencias tanto de errores que puedas encontrar como de mejoras que se te ocurran, así los que estén interesados pueden opinar y yo puedo gestionar mejor el desarrollo.
He puesto una nueva versión con cambios en la conexión, en esta nueva versión, el programa intenta conectar con el arduino durante 25 segundos, si consigue comunicarse antes de ese tiempo el programa continua normalmente, si durante los 25 segundos no ha conseguido comunicarse con el da un error.
Hacía tiempo que no ponía nada aquí, pero no dejo de mirar a ver que novedades pones ngc1300, ahora ando en un par de cosas y tengo el láser otra vez averiado, así que la tengo un poco aparcada... tengo que ponerme con ella de nuevo, pero empezaré como tu, a utilizar como base un paper-duino y montar una solo placa, que por cierto ¿como llevas la que estabas proyectando?.
Bueno, a lo que iba. he estado probando las nuevas versiones de tu programa y me pasa algo raro al abrir los archivos. Yo los genero con el inkscape y la extensión laserengraber, todas la versiones anteriores a la 2 me los abren perfectamente, pero de la 2 en adelante me sale "El archivo no es válido" (sin tener el arduino conectado, solo para abrir el archivo). Lo veo extraño ya que siendo simple archivo de texto, no debería dar problemas, ¿no?.
Y ahora que me estoy fijando, si tengo un archivo seleccionado para abrirlo y en vez de abrir cierro la ventana, me sale el mismo mensaje de error.
Adjunto uno de los archivos por si le puedes echar un vistazo.
La siguiente prueba:
delay de 10 segundos y ver si aparece algo en el terminal.
Yo no puedo hacer las pruebas porque sólo uso la vinciduino con interfaz nativa USB y eso no pasa.
Hola a todos, de momento no he podido probar la nueva version de software de control en mi Arduino Mega, pero si he podido ver el problema de Miguel75. He visto el programa en código G y por lo que veo le falta referenciar al eje Z su programa. Aunque se que él no usa ese eje ya que por lo que veo corta con laser, se ve que el simulador necesita esta referencia.
Su programa al principio empieza :
Le he puesto despues del G0 X102.6346 Y25.2278, un G0 Z-0.125, es decir, que la maquina baje 0.125 mm, que en su caso no sería mucho y el programa se abre y puedo ver la simulacion.
El programa quedaría en sus primeras lineas como sigue:
G90
G21
G0 X102.6346 Y25.2278
G0 Z-0.125
M03
G1 F90.000000
G1 X118.7912 Y25.2278
G1 X118.7912 Y5.4486
G1 X102.6346 Y5.4486
G1 X102.6346 Y25.2278
G1 X102.6346 Y25.2278
M05
Por si acaso lo adjunto para que lo probeis. He definido una pieza de 1001003 mm.
Tan pronto como pueda probaré tambien el cambio en el firmware que comenta fm.
A falta de que ngc1300 mire a ver si tiene otra solución, carferu ha dado en el clavo. Lo he probado con la referencia al eje z y ya lo abre el programa sin problemas.
Muchas gracias.
ngc1300, dado que si no me equivoco soy él único que usa un láser, y que por ello mi cnc es un poco a medias por no tener nada del eje z, tampoco te compliques con este tema, edito el archivo, hago la referencia al eje y listo.
Lo que si te comento es que en la última versión, en la pestaña del gcode me desaparecen todos los comandos menos los M3 y M5, adjunto una captura para que veas a que me refiero.
Miguel75 ya he hecho los cambios para que no tenga en cuenta el eje Z a la hora de comprobar si el archivo es correcto, también he añadido las extensión gco para que aparezca con los archivos de gcode y no tengas que seleccionar todos los archivos en la pantalla de abrir.
En cuanto a lo que comentas de abrir el gcode, parece que modifique una linea en la ultima modificación que corregía la conexión que omitía el resto de lineas, fue un error no haberlo detectado, pero como solo estuve enfocado en la conexión se me paso por alto abrir un archivo.
he borrado el ultimo archivo y he colocado uno nuevo con el mismo nombre.
En el setup, antes de llamar a nada pon un delay de 1s.
Tengo una ligera sospecha de por donde van los tiros.
Sin la librería fastIO no vais a conseguir mucha velocidad con microstepping.
hola fm.
He puesto un delay de 1 segundo como indicas y ya no me aparecen los caracteres extraños, incluso puedo mandar un texto al programa justo después del Serial.begin y aparece perfectamente. Si es cierto que el programa detecta que el firmware le manda algo nada mas establecer la conexión, aunque en el firmware no lo hago, pero debe ser una cadena vacía con lo que no tiene importancia.
he modificado el programa y espero que con lo que comentas y la modificación ya pueda conectar todo el mundo de forma correcta.
Hacía tiempo que no ponía nada aquí, pero no dejo de mirar a ver que novedades pones ngc1300, ahora ando en un par de cosas y tengo el láser otra vez averiado, así que la tengo un poco aparcada... tengo que ponerme con ella de nuevo, pero empezaré como tu, a utilizar como base un paper-duino y montar una solo placa, que por cierto ¿como llevas la que estabas proyectando?.
Hola Miguel75
Con respecto a la placa que lo integra todo, después de mucho pegarme con los programas de diseño conseguí meterlo todo en una sola cara, frese una placa, pero era la primera placa que intentaba fresar y no me quedo del todo bien, ademas se me rompió la fresa (hay que tener mucho cuidado con ellas). Hace un par de semanas pedí nuevas fresas y ahora estoy a la espera de recibir nuevas fresas para fresar las pistas y hacer taladros, en cuanto la tenga comento algo.
Te pongo unas imágenes de como es la placa, tanto de la cara de arriba como la de abajo.
Hola ngc1300, enhorabuena por la buena aportación que estás realizando.
Quería comentarte una dudilla, un poco tonta seguro, he acabado practicamente mi cnc y quería probarlo, estaba probando tu software y es super chulo, pero estoy intentando abrir ficheros de ejmplo gcode y siempre me da un error y no puedo cargarlos. sabes cual es el motivo. Los ficheros tienen una extensión .gcode ¿verdad? porque no me los reconoce...
Y si le doy a todas las extensiones, les doy todos los archivos y fuerzo a abrir cualquier fichero de los visto aquí y me da error me dice "El archivo no es valido"
¿Alguna sugerencia?
Esta mañana he sustituido la versión 2.0.3 por una nueva versión que debería solucionar los problemas a la hora de abrir archivos, aun así si tienes algún problema envíame el archivo y analizo a ver que esta ocurriendo.
De todas formas este error puede ocurrir por que yo analizo el archivo para comprobar que tiene gcodes, ya que un usuario añadió una incidencia de que se podía abrir cualquier archivo. para detectar esto yo compruebo que en el archivo aparezcan los códigos M, G, X, Y, hasta esta mañana el Z también, si alguno de los anteriores no aparece a excepción del Z el archivo lo toma como erróneo y no se puede abrir.
Esta tarde me he liado la manta a la cabeza y he desmontado la electrónica de cnc, con el shield que hice para el arduino no he conseguido hacer funcionar ni el firmware de fm ni tu programa ngc1300. He montado lo esencial en una proto con la configuración que traía el firmware y a probar.
Gracias por las modificaciones del eje z y la extensión de mis archivos ngc1300, respecto al software... bueno, solo puedo decir que es una pasada, aun me quedan cosas que probar pero de momento me gusta el funcionamiento.
Esta noche a ir diseñando la placa del paperduino... una pregunta, ¿con que lo conectas al pc?, yo había pensado en un "USB 2.0 to UART TTL 6PIN Connector Module Serial Converter CP2102" que tengo de hace tiempo guardado por ahí.