This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Drivers DRV8825 Ramps 1.4 No se mueven
#1
Buenas de nuevo. Estoy reviviendo una vieja prusa i3 Hephestos y vengo de este otro hilo:

https://www.spainlabs.com/foros/Tema-Pro...tras-dudas

El caso es que una vez montada y alimentada correctamente la electrónica, desde pronterface intento mover el motor X por ejemplo, quería probar solo con uno. Y nada, suena "tac" y ahí se queda. He probado también el motor "Y" por si acaso, y curiosamente lo mueve pero solo en una dirección.

Los drivers que utilizo son los DRV8825 y he probado a poner los 3 pines para tener 1/32 steps, y también a dejar solamente el pin derecho para tener 1/16.

Más pruebas que he realizado, mirar que la fuente entregue 12v exactos, que a la arduino le lleguen 5v, y los potenciómetros de los drivers he probado varias medidas 200mA, 400, 600ma, 1A, 1.5A pero en ningún caso se movió. 

Los motores que uso:

[Imagen: motor-1.jpg]

Adjunto la foto de la Ramps 1.4 por si alguien desea hacer alguna indicación.

Gracias de antemano, un saludo.

[Imagen: 800px-Rampsv14-wiring-psu.png]
[Imagen: planos-ramps-1-4.jpg]
  Responder
#2
Hola, esas intensidades que indicas para la regulación del driver ¿son con regulación por Vref o midiendo el consumo de la placa? Si es con el primer método, los valores por debajo de 1A no te servirán para nada y si es con el segundo, con los valores por encima de 0,6A vás a quemar el driver (si no lo has hecho ya).
Para solucionar el problema del movimiento de los motores, lo primero que tienes que comprobar es la asignación de fases (orden de los hilos en el conector).
  Responder
#3
(02-06-2021, 10:40 AM)Simemart escribió: Hola, esas intensidades que indicas para la regulación del driver ¿son con regulación por Vref o midiendo el consumo de la placa? Si es con el primer método, los valores por debajo de 1A no te servirán para nada y si es con el segundo, con los valores por encima de 0,6A vás a quemar el driver (si no lo has hecho ya).
Para solucionar el problema del movimiento de los motores, lo primero que tienes que comprobar es la asignación de fases (orden de los hilos en el conector).

Hola de nuevo @Simemart, pues lo que hago es lo que he visto en videos, cogen el negativo de multímetro y lo ponen en la entrada de 12v de la ramps sobre un tornillo de polaridad negativa. Entonces el positivo se pone sobre el potenciometro del driver. Ahí he probado varias cosas, de serie me venian a tope y daban creo que 2.4A los tuve que bajar al maximo y luego ir aumentando.

Espero no haber quemado nada, en principio no olió nada a quemado ni el driver presenta nada raro a simple vista.  Icon_redface
  Responder
#4
La forma en la que lo estás haciendo es midiendo el voltaje de referencia (Vref), por lo que no hay problema de quemar el driver, a parte de que no me acordaba que los DRV8825 tienen una protección que limita la corriente a 3A.
Supongo que las intensidades que indicas las habrás calculado por la fórmula Imax = Vref / (5 * Rs), donde Vref es el voltaje que mides en el potenciómetro y Rs la resistencia de senseo: en los DRV8825 suele ser R100 (0,1 Ohms) y entonces la Imax es el doble del Vref.
Para esos motores, es posible que tengas que subir de esos 1,5A que indicas pero, en todo caso y antes de realizar esta regulación, tienes que comprobar que tengas bien conectadas las fases.
  Responder
#5
(02-06-2021, 02:19 PM)Simemart escribió: La forma en la que lo estás haciendo es midiendo el voltaje de referencia (Vref), por lo que no hay problema de quemar el driver, a parte de que no me acordaba que los DRV8825 tienen una protección que limita la corriente a 3A.
Supongo que las intensidades que indicas las habrás calculado por la fórmula Imax = Vref / (5 * Rs), donde Vref es el voltaje que mides en el potenciómetro y Rs la resistencia de senseo: en los DRV8825 suele ser R100 (0,1 Ohms) y entonces la Imax es el doble del Vref.
Para esos motores, es posible que tengas que subir de esos 1,5A que indicas pero, en todo caso y antes de realizar esta regulación, tienes que comprobar que tengas bien conectadas las fases.

Buenas de nuevo @Simemart, conseguí moverlo por fin! Tenia las fases cambiadas  Facepalm La verdad es que pensé que el cable vendría ya bien al tener el mismo código de colores que vi en otros montajes con la ramps y me fie de los colores. 

Aprendí a hacerlo con el multímetro, posición en Ohm y un polo a cada cable. Donde diese medición es que esos don van parejos (misma bobina). Así que con una regleta provisionalmente conecte a la ramps, conecte el pc por el pronterface y moví el eje X por fin. El driver DRV8825 lo tengo en 600mA solamente.

Eso sí solo se mueve en una dirección y está invertida. Leí que eso es cosa de cambiar el marlin el valor 

define INVERT_X_DIR false -> por un true 

Y luego ir probando el resto de motores no?

Pero lo que no entiendo es porque solo se mueve en un sentido el motor. 

Mañana continuaré trasteándole. Gracias por darme la pista de las fases y toda la ayuda  Clap
  Responder
#6
El sentido de giro del motor se puede cambiar de dos formas: en Marlin como indicas o bien invirtiendo el conector en la RAMPS.
Sobre el movimiento en una sola dirección, si Marlin desconoce la posición actual (por no haberse realizado aun el homing), no permite realizar movimientos en sentido negativo desde la posición donde se encuentre inicalmente: si quieres mover el motor en ambos sentidos, tienes que moverlo primero una distancia en sentido positivo y después debería dejarte moverlo esa misma distancia en el otro sentido.
  Responder
#7
(02-06-2021, 09:19 PM)Simemart escribió: El sentido de giro del motor se puede cambiar de dos formas: en Marlin como indicas o bien invirtiendo el conector en la RAMPS.
Sobre el movimiento en una sola dirección, si Marlin desconoce la posición actual (por no haberse realizado aun el homing), no permite realizar movimientos en sentido negativo desde la posición donde se encuentre inicalmente: si quieres mover el motor en ambos sentidos, tienes que moverlo primero una distancia en sentido positivo y después debería dejarte moverlo esa misma distancia en el otro sentido.

Hola @Simemart, tengo una duda y no queria abrir otro hilo, no se si es mejor así.

El caso es que para calcular los pasos me surge una duda. He encontrado esta fórmula:

[Imagen: pasos-calculo.png]

Y mi pregunta es... Tengo en los drivers los 3 pines puenteados (que tampoco sé si es la mejor opción) Es decir, los motores tendrían 1/32.
Lo recomendable es 1/16 ?

Las varillas que tengo del eje Z son dos varillas metrica 8 que le cambié. Originalmente traía metrica 5 y estaban muy deterioradas, así que ya puestos preferí comprar de métrica 8.

Una vez ajustado el valor DEFAULT_AXIS_STEPS_PER_UNIT, como ajusto la aceleración correctamente?

Perdón si ya es preguntar demasiado cuando encima el hilo es de electrónica. Ya me decís si es mejor abrir un hilo nuevo al respecto.

Gracias, un saludo.
  Responder
#8
Hola, para estas impresoras con electrónicas de 8 bits, es mejor configurar los drivers a 16 micropasos, aunque no pasa nada con que estén a 32.
Ya que tuviste que cambiar las varillas roscadas M5, por un poco más de dinero podrías haber puesto unos husillos T8-8, que habrían sido una mejora considerable.
Con las M8 mejoras ligéramente respecto a las M5, pero seguirás teniendo que limitar la velocidad del eje.
Sobre las aceleraciones, tampoco conviene poner mucha: con 650 mm/s² para DEFAULT_ACCELERATION y 1000 mm/s² para las otras dos, debería ser suficiente.
  Responder
#9
(06-06-2021, 10:10 PM)Simemart escribió: Hola, para estas impresoras con electrónicas de 8 bits, es mejor configurar los drivers a 16 micropasos, aunque no pasa nada con que estén a 32.
Ya que tuviste que cambiar las varillas roscadas M5, por un poco más de dinero podrías haber puesto unos husillos T8-8, que habrían sido una mejora considerable.
Con las M8 mejoras ligéramente respecto a las M5, pero seguirás teniendo que limitar la velocidad del eje.
Sobre las aceleraciones, tampoco conviene poner mucha: con 650 mm/s² para DEFAULT_ACCELERATION y 1000 mm/s² para las otras dos, debería ser suficiente.

Creo que te refieres a estos husillos que trae la varilla, las compré por Amazon y venían con la pieza.

[Imagen: IMG-20210606-234136.jpg]
  Responder
#10
Vale, esos son husillos T8-8 (8 mm de diámetro y 8 mm de paso) y son los que yo te recomendaba, me confundió que dijeses que eran de métrica: esos husillos son de rosca ACME.
En todo caso, eso no cambia mi recomendación sobre las aceleraciones y los micropasos.
  Responder
#11
(06-06-2021, 11:22 PM)Simemart escribió: Vale, esos son husillos T8-8 (8 mm de diámetro y 8 mm de paso) y son los que yo te recomendaba, me confundió que dijeses que eran de métrica: esos husillos son de rosca ACME.
En todo caso, eso no cambia mi recomendación sobre las aceleraciones y los micropasos.

Hola @Simemart, le puse esa aceleración y en principio se mueven bien. Y los motores conseguí moverlos ya en ambas direcciones  Mola . El problema que tengo es al establecer el origen. Instalé la última Release de Marlin 1, tenía miedo de instalar el 2 así de primeras. El caso es que si desactivo motores, y los muevo hacia los finales de carrera cada eje y luego pulso "Ajustar Desfases" debería establecerse ahí el origen no?

O que estaré haciendo mal ? Por que realmente no funciona, me permite mover los motores mas allá de lo indicado y luego al pulsar "Llevar a origen" no me lleva a los endstops. En marlin el origen en realidad es el centro (BED_SIZE / 2), pero es que tampoco me lleva al centro.

Sería buena idea fijarme parámetro por parámetro e intentar compararlos con Marlin 2 e instalarle este último, por aquello de que es mas moderno y tiene mas opciones en el menú ?
  Responder
#12
Estás haciendo varias cosas mal y tienes algunas ideas erroneas, como por ejemplo que el origen en Marlin esté en el centro de la cama o que puedas configurar nada si mueves los ejes a mano (Marlin no se entera de esos movimientos en absoluto).
Puedes utilizar cualquiera de las versiones de Marlin, aunque es cierto que la 2 está más evolucionada que la 1, cuyo desarrollo se abandonó ya hace bastante tiempo.
En todo caso, si quieres puedes probar primero con la 1 hasta configurar de forma correcta la impresora, pues es algo más sencilla de compilar y grabar en la placa utilizando el IDE de Arduino y una vez te funcione bien todo, trasladar la configuración a Marlin 2, aunque tendrás que utilizar otro IDE para ello (como PlatformIO en Virtual Studio Code, por ejemplo).
Para configurar tanto el homing como los offsets, lo primero que tienes que hacer es comprobar que están asignados los ejes y colocados los finales de carrera de forma correcta: el X debe ser el que se desplaza de izquierda a derecha y debe tener el interruptor de final de carrera en la parte izquierda; el eje Y se corresponde con el movimiento de la cama y el interruptor debe estar en la parte trasera de la impresora; el eje Z se mueve de abajo a arriba y debe tener el interruptor en la parte de abajo (doy por sentado que en este eje tienes interruptor y no sensor).
Una vez tengas bien lo anterior, comprueba que los ejes se mueven en el sentido correcto: en sentido contrario a donde se encuentran los interruptores cuando el eje se mueve en sentido positivo (antes de hacer el homing, Marlin no te dejará moverlos en sentido negativo). Si no lo hacen así, varía el valor de los parámetros INVERT_X_DIR, INVERT_Y_DIR y/o INVERT_Z_DIR, de false a true o viceversa hasta conseguirlo.
Ya solo tendrás que asegurarte de tener configurado en Marlin la dirección del homing de los ejes en -1 (X_HOME_DIR, Y_HOME_DIR y Z_HOME_DIR) para que puedas realizar el homing.
Configura también de forma correcta el tamaño de la cama en los parámetros X_BED_SIZE e Y_BED_SIZE, los parámetros X_MIN_POS, Y_MIN_POS y Z_MIN_POS a 0 y deshabilita el Z Safe Homing (si lo tienes habilitado y no tienes sensor).
Para configurar los offsets, si cuando se pare el cabezal de impresión después de realizar el homing, la boquilla se sale de la cama en X y/o Y, tendrás que configurar en los parámetros de Marlin correspondientes (X_MIN_POS y/o Y_MIN_POS), la distancia a la que quede el centro de la boquilla del borde de la cama en cada uno de ellos, pero con signo negativo.
Es decir, si al parar el cabezal después de hacer el homing, la boquilla está fuera de la cama 10 mm en el eje X y 5 mm en el Y, la configuración sería X_MIN_POS -10 e Y_MIN_POS -5.
  Responder
#13
Hola de nuevo @Simemart, he hecho todo lo que dijiste, y me temo que no funciona.
Para hacer el homing algo pasa raro. Cada vez que le digo, "llevar a origen" me mueve los 3 ejes cada vez un poco mas lejos. Y si le sigo dando los sigue alejando.
He mirado también este video:

https://www.youtube.com/watch?v=8MQRxBIS...kersMashup

Pero haciendo las indicaciones de este buen hombre cuando llego a la parte de M428 me salta un error: Err: Too Far!
Indicando que los ejes están en negativo demasiado lejos de la posición inicial entiendo...

La verdad es que a veces desespera, pero bueno, cada día me pongo con ella un poco solamente. Así no sale por la ventana Lengua
  Responder
#14
Si al ordenar el homing los ejes se mueven en sentido contrario a donde se encuentran los interruptores de final de carrera, seguramente sea porque están mal configurados en Marlin y los detecta siempre activados.
El comando M428 sirve para asignar los offsets de los ejes en función de la posición actual, pero no se puede utilizar si esa posición está a más de 20 mm de la posición del final de carrera o del punto 0 del eje: en todo caso, tampoco es posible utilizarlo si antes no se define la posición mediante el homing.
La forma más rápida de poder darte una indicación de lo que debes cambiar, es que adjuntes los dos archivos de configuración que estás utilizando (Configuration.h y Configuration_adv.h): para ello, inclúyelos en un archivo comprimido y adjúntalo al mensaje en la pantalla que sale al pulsar el botón Vista previa del mensaje.
  Responder
#15
(10-06-2021, 11:14 PM)Simemart escribió: Si al ordenar el homing los ejes se mueven en sentido contrario a donde se encuentran los interruptores de final de carrera, seguramente sea porque están mal configurados en Marlin y los detecta siempre activados.
El comando M428 sirve para asignar los offsets de los ejes en función de la posición actual, pero no se puede utilizar si esa posición está a más de 20 mm de la posición del final de carrera o del punto 0 del eje: en todo caso, tampoco es posible utilizarlo si antes no se define la posición mediante el homing.
La forma más rápida de poder darte una indicación de lo que debes cambiar, es que adjuntes los dos archivos de configuración que estás utilizando (Configuration.h y Configuration_adv.h): para ello, inclúyelos en un archivo comprimido y adjúntalo al mensaje en la pantalla que sale al pulsar el botón Vista previa del mensaje.

Buenas @Simemart, de acuerdo te paso los ficheros que tengo. Yo solo he retocado el Configuration.h el otro está tal cual estaba creo.

Con respecto a lo que decías de marlin 2 y Visual Studio, eso lo hice en su momento y no me funcionó con mi placa. La única versión de marlin 2 que cargaba era la 2.0.7 de ahí para arriba no me dejaba. Por eso al final dije mira, voy a la ultima versión estable de la 1 que funcione con el arduino IDE y tiré por esta.

Pero si, a futuro al menos la 2.0.7 se la pienso poner. 

A ver si te sirven los ficheros, gracias por tu ayuda  Angel


Archivos adjuntos
.zip   Configuration.zip (Tamaño: 47.78 KB / Descargas: 7)
  Responder
#16
Vamos con las modificaciones en el archivo Configuration.h:

- Cambia las siguientes líneas que marcan la lógica de los finales de carrera:
  #define X_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
  #define Y_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
  #define Z_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.


- Activa la función S Curve, modificando la siguiente línea:
  #define S_CURVE_ACCELERATION

- Activa el uso de la memoria EEPROM, pues el ATMega2560 tiene memoria suficiente para ello y te evitará estar compilando continuamente cuando quieras modificar algún parámetro, para lo que tienes que cambiar la siguiente línea:
  #define EEPROM_SETTINGS // Enable for M500 and M501 commands

- No tienes definido el uso del lector de tarjetas SD. Si no hay algun motivo para no usarlo, actívalo cambiando la siguiente línea:
  #define SDSUPPORT

En el archivo Configuration_adv.h:

- Activa el Steep Smoothing, modificando la siguiente línea:
  #define ADAPTIVE_STEP_SMOOTHING

- Desactiva el uso de comandos de arcos, pues Marlin no los utiliza y si está activado solo sirve para consumir memoria flash, cambiando la siguiente línea:
  //#define ARC_SUPPORT              // Disable this feature to save ~3226 bytes

Compila y graba en la placa.
Como ahora tienes activada la memoria EEPROM, siempre que cambies el firmware de la placa o cuando modifiques el valor de algún parámetro por pantalla, tendrás que refrescar los valores almacenados en ella, utilizando las opciones del menú Control>Restaurar memoria, seguido de Control>Guardar memoria) o enviando los comandos M502 y M500.
En esa electrónica (Arduino Mega + RAMPS) no hay ningún problema para instalar la última versión de Marlin 2 (siempre es la bugfix-2.0.x y ya va por la 2.0.9, así que olvídate de la 2.0.7), utilizando PlatformIO en Virtual Studio Code: es lo que yo tengo en mis dos impresoras y que te recomiendo hagas.
  Responder
#17
@Simemart conseguí hacer una primera impresión!  Sisi1

No salió del todo bien, pues hubo una línea que se saltó. No entiendo muy bien que pudo pasar pero la verdad es que para ser la primera impresión que hace estoy bastante contento.

[Imagen: cubo1.jpg]

[Imagen: cubo-abierto.jpg]

Ahora me imagino que será un tema de parámetros de impresión en Cura e ir probando.

Lo que he notado es:

Que la cama tarda mucho en calentar. 3 o 4 minutos
El eje Y cuando termina de imprimir y entrega la pieza llega hasta el final y quiere todavía seguir unos milímetros mas con lo cual hace tope y suena
Los pasos del extrusor los tenia mal calibrados (esto era de esperar)
Los drivers calientan un montón si no les pongo un ventilador. Tendré que dedicarle uno de 12v solo para la placa, que lo tenía puesto para el mosfet prioritariamente. (tenía mas miedo de este)

En cuanto pueda imprimiré piezas para sustituir de la hephestos original destartalada y adecentarla poco a poco.

Sin tu ayuda esto no se hubiese dado, asique una vez mas, muchas gracias.  Number_one
  Responder
#18
Bueno, eso ya parece bien encaminado, ahora solo te falta hacer algunos retoques.
La cama es normal que tarde ese tiempo en calentar, sobre todo si no está bien aislada por debajo: tiene mucha superficie de disipación y si es una antigua de 12V, no suelen tener mucha potencia.
Sobre lo que indicas del eje Y, seguramente se debe a que no tienes bien configuradas las medidas.
¿Has configurado los offsets como te indiqué? Porque una vez los tengas correctos, tienes que comprobar si los ejes se pueden mover hasta el otro extremo de la cama sin chocar con nada ya que, si no lo pueden hacer, tendrás que cambiar el valor del tamaño de la cama que tienes configurado al valor máximo al que pueda llegar el eje.
Ten en cuenta que este valor no tiene porqué ser la medida de la cama, sino lo que se puede mover en ella realmente el cabezal de impresión.
En este tipo de impresoras suele ser habitual que se pueda llegar a todos los puntos de la cama, pero quizá tengas algo mal montado.
Si los drivers calientan tanto, quizá los tengas regulados a mucha intensidad: sería conveniente revisarlos y dejarlos en el mínimo que permita que los ejes se muevan de forma correcta.
Sobre el defecto que se ve en la impresión que has realizado, puede que no sea de configuración en CURA sino algo mecánico, pues parece como si hubiese dejado de extruir en esa/s capa/s: revisa el impulsor del filamento, no sea que se atasque en algún momento y deje de empujar.
  Responder
#19
Buenas de nuevo! @Simemart

-Lo del eje Y está solucionado era un tema de dimensiones de la cama y ajustar mejor el final de carrera.
-El asunto de los drivers los tengo a 450ma (consultando por el poteciómetro) a excepción del eje Z que lo tengo a 830ma. 
También me olvidé de decir que el motor del extrusor no es igual que los demás. Paso una foto:

[Imagen: IMG-20210613-183211.jpg]

Si le pongo un ventilador a la placa no se calientan prácticamente. Supongo que con eso valdría no? al no tener un valor de voltaje muy alto.
-El problema esta en la extrusión. Al imprimir a ratos sale filamento y a ratos directamente deja de salir. 
¿Será un atasque en el noozle? ¿Será que no he configurado aún el PID?

El caso es que quería imprimir una pieza y después de la primera capa ya directamente no extruía nada.
Pensé que igual era por darle una capa inicial muy fina en Cura, y la puse al mismo grosor que la pieza. Pero da igual.
Decirte que el filamento que tengo puesto lleva abierto un montón de tiempo, y vivo en zona húmeda.

Es Pla+ de SUNLU. 1.75mm
  Responder
#20
No entiendo muy bien como mides esas intensidades que dices tener configuradas en los drivers, ¿son los valores calculados mediante la fórmula, a partir del Vref que mides en el potenciómetro? Porque en ese caso los valores son muy bajos, incluso el del eje Z.
Quizá el problema del extrusor sea ese, pues ese motor admite un máximo de 0,9A, bastante menos que los que tienes en los otros ejes, por lo que también dá menos fuerza y si su driver lo tienes regulado muy bajo, seguramente no pueda con la tarea, mucho menos siendo un implulsor tipo Bowden sin reductora, como creo ver en esa foto.
La humedad del filamento no suele generar atascos, sino que se manifiesta en la calidad de la impresión (queda como con pequeños huecos) y en un ruido como de ligero petardeo debido a la explosión de las burbujas de humedad dentro de la boquilla (de ahí los huecos en la pieza impresa).
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  no se mueven Y ni Z despues de G29 RocaDiesel 7 829 26-10-2021, 12:25 PM
Último mensaje: RocaDiesel
Gran sonrisa Impresora corexy con drivers tb6600 en un solo eje Daniel Peña 2 720 25-05-2021, 08:00 PM
Último mensaje: grafisoft
  drivers tmc2208 josesete 2 816 01-04-2021, 11:11 PM
Último mensaje: josesete
  Placa MKS SGEN L V1.0 + drivers 2225 superlulilan 3 1,916 14-12-2020, 09:49 PM
Último mensaje: jukillo
  CONSULTA hay diferencias entre drivers de ramps como por ejemplo entre el DRV882 y el TB6600? cerverus 1 778 21-09-2020, 01:21 PM
Último mensaje: Simemart