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
Problema 3DTouch Trianglelab - no completa todos los puntos
#1
Buenas noches,

Primero de todo, presentarme. Mi nombre es Juan y soy de Valencia. Sigo el foro de cerca y gracias a él estoy configurando mi Ender 3 Pro con algunas modificaciones (empezando...)
Ya he cambiado la placa a una MKS Gen L + 4 TMC 2208 Standalone y he flasheado el último Marlin 2.0 Bugfix. He configurado para un 3D Touch y todo funciona OK. El caso es que lo unico que me hace es medirme 6 puntos de la rejilla 3 x 3 que tengo configurada... Creo que será problema de límites pero he intentado configurarlo a base de tutoriales pero al final me he rendido por que no he conseguido nada...

Tengo activado el Autolevel Bilinear, el Z Safe Homing, Los valores Min_probe_edge_xxx (han desaparecido los antiguos de los limites del bltouch y ahora están en configuration_adv)
El offset del BL Touch es -40 en eje X y -10 en Eje Y. Eje Z -2.7. El tamaño de la cama es de 235 x 235 en marlin para la ENDER 3 PRO y no he tocado nada del código de abajo como indicaban en algunos sitios.

Código:
// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 200

Si obtengo los datos en el pronterface

RECV: echo:  G29 W I0 J0 Z0.20250
[INFO] RECV: echo:  G29 W I1 J0 Z0.17500
[INFO] RECV: echo:  G29 W I2 J0 Z0.30750
[INFO] RECV: echo:  G29 W I0 J1 Z0.04250
[INFO] RECV: echo:  G29 W I1 J1 Z-0.02250
[INFO] RECV: echo:  G29 W I2 J1 Z0.08000
[INFO] RECV: echo:  G29 W I0 J2 Z0.00000
[INFO] RECV: echo:  G29 W I1 J2 Z0.00000
[INFO] RECV: echo:  G29 W I2 J2 Z0.00000

Se me quedan 3 puntos sin medir siempre...


Os pongo un video de lo que ocurre. Por favor no dudeis en pedirme el código que haga falta... ya que no he conseguido saber que es.

Video

Gracias!
  Responder
#2
Hola @Juanolo, bienvenido al foro.
Es difícil que sea un problema de límites, ya que ahora los configura el propio firmware, utilizando el valor MIN_PROBE_EDGE o bien utilizando los valores indicados para LEFT, RIGHT, FRONT y REAR (si se configuran).
En todo caso, habría que ver los archivos de configuración, por si hay algo en ellos que provoque ese comportamiento.
  Responder
#3
Hola!

Gracias por contestar tan rápido.

Adjunto los archivos de configuracion y configuración_adv... Al seguir varios videos, no se si habré metido la mano en algo que no tocaba que ahora mismo no se!


Archivos adjuntos
.zip   Configuraciones_Juanolo.zip (Tamaño: 62.6 KB / Descargas: 24)
  Responder
#4
Hola, viendo los archivos que adjuntas, lo único que se me ocurre que pueda estar causando ese comportamiento, es que no esté funcionando bien la subdivisión de los puntos de la rejilla.
Como indican en el comentario, es algo experimental y lo tienes activado por tener descomentada la línea #define ABL_BILINEAR_SUBDIVISION, en el archivo Configuration.h.
Prueba a cometar esa línea para ver si tiene algún efecto sobre el problema.
Aparte de lo anterior, en esa configuración veo lo siguiente:
no tienes activada (supongo que a propósito) la cama caliente, pues no has definido un tipo de sensor para ella;
estás usando los valores de PID para el fusor que trae definidos por defecto Marlin (Ultimaker), por lo que supongo que no habrás realizado un PID Autotune para el tuyo;
3000 mm/s² para las aceleraciones de impresión y desplazamiento son, en mi opinión, algo excesivas, aunque si te va bien con ellas nada que decir.
En todo caso, no te olvides de que si cambias la aceleración de la impresión, tendrás que ajustar también la distancia del Junction Deviation, ya que lo estás usando en lugar del Jerk.
Para el valor de aceleración que tienes ahora mismo, esa distancia equivale a un jerk para XY de 9,87.
  Responder
#5
(03-11-2019, 12:28 PM)Simemart escribió: Hola, viendo los archivos que adjuntas, lo único que se me ocurre que pueda estar causando ese comportamiento, es que no esté funcionando bien la subdivisión de los puntos de la rejilla.
Como indican en el comentario, es algo experimental y lo tienes activado por tener descomentada la línea #define ABL_BILINEAR_SUBDIVISION, en el archivo Configuration.h.
Prueba a cometar esa línea para ver si tiene algún efecto sobre el problema.
Aparte de lo anterior, en esa configuración veo lo siguiente:
no tienes activada (supongo que a propósito) la cama caliente, pues no has definido un tipo de sensor para ella;
estás usando los valores de PID para el fusor que trae definidos por defecto Marlin (Ultimaker), por lo que supongo que no habrás realizado un PID Autotune para el tuyo;
3000 mm/s² para las aceleraciones de impresión y desplazamiento son, en mi opinión, algo excesivas, aunque si te va bien con ellas nada que decir.
En todo caso, no te olvides de que si cambias la aceleración de la impresión, tendrás que ajustar también la distancia del Junction Deviation, ya que lo estás usando en lugar del Jerk.
Para el valor de aceleración que tienes ahora mismo, esa distancia equivale a un jerk para XY de 9,87.

Gracias!

El apartado que comentas del ABL, ya ocurría el problema antes de descomentarlo... lo descomenté por si hacía algo, pero no cambió nada, se me olvidó volverlo a comentar. De todas maneras... lo he probado de nuevo comentado y sigue sin funcionar... Es como si detectara que el 6º punto es el último y se queda ahí. También si hago la autonivelación mediante la LCD de la ender, se queda en el punto 6/9 también.

Crees que debería volver a coger una versión fresca de Marlin y volver a flashearlo? que cosas me recomiendas que solo toque para el BLTOUCH para la MKS Gen L... Los tutoriales que he visto han sido una mezcla entre 3DMaker, Teaching Tech y 3DMN y alguno más... por lo que a lo mejor he mezclado demasiadas cosas... pero cada uno añadía algún parámetro "necesario" a su parecer...

Por otro lado, gracias por los apuntes! no, no he realizado el PID autotune... (novato yo) y respecto a la aceleración para una ender 3 pro, cuál me recomiendas? y que Junction Deviation para esa aceleración?

Respecto a la cama caliente, aunque parezca mentira, ya he estado imprimiendo con ella, lo activo por software. Debo activarla en Marlin?

Saludos
  Responder
#6
Pues es muy raro ese comportamiento y no se me ocurre nada en este momento que pueda explicarlo. Seguiré pensando en ello.
Sobre la aceleración todo depende de los resultados que se obtengan. Si los movimientos son suaves en los cambios de dirección (sin golpes fuertes que creen vibraciones) puede que te vayan bien esos.
Normalmente, sobre 1000 mm/s² suele ser un valor suficiente para impresión y desplazamiento, aunque varia dependiendo de la máquina concreta.
Según indican los desarrolladores de esta funcionalidad, la fórmula para convertir jerkXY a distancia de junction Deviation es: distancia = 0,4 * jerkXY² / aceleración de impresión.
Por lo tanto, dado que la aceleración está en relación inversa, si cambiases a 1000 mm/s² (3 veces menos), para mantener la configuración que tienes ahora, la distancia debería ser el triple: 0,013 * 3 = 0,039.
Sobre activar o no la cama en el firmware, no estoy del todo seguro que sea lo mismo hacerlo por software, sobre todo en relación con la supervisión de las temperaturas. Quizá sea lo  mismo.
En todo caso, me parece que es mucho más sencillo tenerla activada en el firmware e indicar en el programa de corte si queremos que caliente o no.

P.S.: ¿Has probado a configurar otro número de puntos para la rejilla? Por ejemplo, 3x2 para ver si hace los 3 últimos en el fondo de la cama. O 4x4, para ver si se para siempre después de hacer 6 medidas.
  Responder
#7
Hola! Si que he probado a cambiar los puntos pero nada... es como si del 6 al 7 dijera aquí me quedo... no se es como si entendiera que no tiene mas hueco para moverse...

El caso es que no es algo que le pase a mucha gente y seguro que será una tontería... o algo de código que genere algún tipo de incongruencia...
  Responder
#8
Vale, se queda siempre en el punto 6 pero, ¿hace las mediciones siempre en los mismos puntos o los realiza en los puntos que corresponderían, pero se para en el sexto?
Es decir, cuando configuras la rejilla de 3x3, hace las primeras 6 medidas donde corresponden y regularmente espaciadas en el eje X (3 en el borde delantero y 3 en el centro de la cama).
Si configuras 4x4 ¿las hace 4 en el borde delantero, las otras 2 antes del centro de la cama y regularmente espaciadas en X?
En todo caso, si solo hace 6 mediciones independientemente de los puntos que se configuren, es algo que no había oido nunca y no parece que pueda ser un tema de límites.
Parece un problema de corrupción del código del firmware, por lo que te recomiendo que lo cambies, descargándolo de su página oficial.
Si con la versión 2.0 continúa el problema, puedes probar a instalar la 1.1.9-bugfix.
  Responder
#9
Hola!

Siempre hace la mediciones en el mismo punto! Es decir los 6 primeros puntos los hace bien pero son los 3 últimos puntos que corresponden a la parte trasera de la cama caliente...

Intentaré poner una versión limpia del Marlon tocando lo mínimo... a ver que ocurre y os digo!

Gracias!
  Responder
#10
Hola de nuevo!

Sigo sin poder hacer el autolevel completo... He puesto una versión nueva, configurado lo indispensable... pero se sigue quedando en el 6 punto... Así como antes con una configuración de 3x3 se quedaba en la segunda linea 6 punto, si pongo una de 6x6 se queda en la primera linea delante, es decir en el 6 punto de ese 6x6 y si pongo 2x2 la maquina solo hace los 2 puntos de delante.... la verdad no se que hacer Triste la maquina la tengo parada... se os ocurre algo? Creo que tiene relación con el tamaño de la cama y el desplazamiento/limites pero no se que tocar más

Aquí os pongo el código del debug de pronterface con el M111 S32

Código:
LTouch STOW requested
BLTouch Command :90
bltouch.stow_proc() end
 current_position= X225.00 Y60.00 Z2.85 : sync_plan_position
 current_position= X225.00 Y60.00 Z2.85 : <<< do_probe_move
 current_position= X225.00 Y60.00 Z2.85 : <<< run_z_probe
>>> do_blocking_move_to X225.00 Y60.00 Z7.85
<<< do_blocking_move_to
echo:busy: processing
<<< probe_at_point
>>> probe_at_point(50.00, 50.00, raise, 0, probe_relative)
 current_position= X225.00 Y60.00 Z7.85 :
>>> do_blocking_move_to X90.00 Y60.00 Z7.85
<<< do_blocking_move_to
echo:busy: processing
 current_position= X90.00 Y60.00 Z7.85 : set_probe_deployed
deploy: 1
 current_position= X90.00 Y60.00 Z7.85 : >>> run_z_probe
 current_position= X90.00 Y60.00 Z7.85 : >>> do_probe_move
BLTouch DEPLOY requested
BLTouch Command :10
bltouch.deploy_proc() end
>>> do_blocking_move_to X90.00 Y60.00 Z0.70
<<< do_blocking_move_to
echo:busy: processing
echo:busy: processing
BLTouch STOW requested
BLTouch Command :90
bltouch.stow_proc() end
 current_position= X90.00 Y60.00 Z2.87 : sync_plan_position
 current_position= X90.00 Y60.00 Z2.87 : <<< do_probe_move
 current_position= X90.00 Y60.00 Z2.87 : <<< run_z_probe
>>> do_blocking_move_to X90.00 Y60.00 Z7.87
<<< do_blocking_move_to
echo:busy: processing
<<< probe_at_point
>>> probe_at_point(34475.00, 50.00, raise, 0, probe_relative)
 current_position= X90.00 Y60.00 Z7.87 :
 current_position= X90.00 Y60.00 Z7.87 : set_probe_deployed
deploy: 0
do_probe_raise(10.00)
>>> do_blocking_move_to X90.00 Y60.00 Z12.70
<<< do_blocking_move_to
echo:busy: processing
>>> do_blocking_move_to X90.00 Y60.00 Z12.70
<<< do_blocking_move_to
 current_position= X90.00 Y60.00 Z12.70 : > probing complete
<<< G29

y este el del 3 x 3 y cambiando la opción de PROBE_Y_FIRST (ahora si que llega a detrás de la cama, pero sigue quedándose en 6 punto, esta vez el punto central linea del frente de la máquina

Código:
>>>g29
SENDING:G29
 current_position= X157.00 Y127.00 Z12.70 : >>> G29
Machine Type: Cartesian
Probe: BLTOUCH
Probe Offset X-40.00 Y-10.00 Z-2.70 (Left-Front & Below Nozzle)
Auto Bed Leveling: BILINEAR
(disabled)
 current_position= X157.00 Y127.00 Z12.70 : set_probe_deployed
deploy: 1
do_probe_raise(10.00)
>>> do_blocking_move_to X157.00 Y127.00 Z12.70
<<< do_blocking_move_to
reset_bed_level
>>> probe_at_point(50.00, 50.00, raise, 0, probe_relative)
 current_position= X157.00 Y127.00 Z12.70 :
>>> do_blocking_move_to X90.00 Y60.00 Z12.70
<<< do_blocking_move_to
 current_position= X90.00 Y60.00 Z12.70 : set_probe_deployed
deploy: 1
 current_position= X90.00 Y60.00 Z12.70 : >>> run_z_probe
 current_position= X90.00 Y60.00 Z12.70 : >>> do_probe_move
BLTouch DEPLOY requested
BLTouch Command :10
bltouch.deploy_proc() end
>>> do_blocking_move_to X90.00 Y60.00 Z0.70
<<< do_blocking_move_to
echo:busy: processing
echo:busy: processing
echo:busy: processing
BLTouch STOW requested
BLTouch Command :90
bltouch.stow_proc() end
 current_position= X90.00 Y60.00 Z2.88 : sync_plan_position
 current_position= X90.00 Y60.00 Z2.88 : <<< do_probe_move
 current_position= X90.00 Y60.00 Z2.88 : <<< run_z_probe
>>> do_blocking_move_to X90.00 Y60.00 Z7.88
<<< do_blocking_move_to
echo:busy: processing
<<< probe_at_point
>>> probe_at_point(50.00, 117.00, raise, 0, probe_relative)
 current_position= X90.00 Y60.00 Z7.88 :
>>> do_blocking_move_to X90.00 Y127.00 Z7.88
<<< do_blocking_move_to
echo:busy: processing
 current_position= X90.00 Y127.00 Z7.88 : set_probe_deployed
deploy: 1
 current_position= X90.00 Y127.00 Z7.88 : >>> run_z_probe
 current_position= X90.00 Y127.00 Z7.88 : >>> do_probe_move
BLTouch DEPLOY requested
BLTouch Command :10
bltouch.deploy_proc() end
>>> do_blocking_move_to X90.00 Y127.00 Z0.70
<<< do_blocking_move_to
echo:busy: processing
BLTouch STOW requested
BLTouch Command :90
bltouch.stow_proc() end
 current_position= X90.00 Y127.00 Z2.74 : sync_plan_position
 current_position= X90.00 Y127.00 Z2.74 : <<< do_probe_move
 current_position= X90.00 Y127.00 Z2.74 : <<< run_z_probe
>>> do_blocking_move_to X90.00 Y127.00 Z7.74
<<< do_blocking_move_to
echo:busy: processing
<<< probe_at_point
>>> probe_at_point(50.00, 184.00, raise, 0, probe_relative)
 current_position= X90.00 Y127.00 Z7.74 :
>>> do_blocking_move_to X90.00 Y194.00 Z7.74
<<< do_blocking_move_to
echo:busy: processing
 current_position= X90.00 Y194.00 Z7.74 : set_probe_deployed
deploy: 1
 current_position= X90.00 Y194.00 Z7.74 : >>> run_z_probe
 current_position= X90.00 Y194.00 Z7.74 : >>> do_probe_move
BLTouch DEPLOY requested
BLTouch Command :10
bltouch.deploy_proc() end
>>> do_blocking_move_to X90.00 Y194.00 Z0.70
<<< do_blocking_move_to
echo:busy: processing
echo:busy: processing
BLTouch STOW requested
BLTouch Command :90
bltouch.stow_proc() end
 current_position= X90.00 Y194.00 Z2.64 : sync_plan_position
 current_position= X90.00 Y194.00 Z2.64 : <<< do_probe_move
 current_position= X90.00 Y194.00 Z2.64 : <<< run_z_probe
>>> do_blocking_move_to X90.00 Y194.00 Z7.64
<<< do_blocking_move_to
echo:busy: processing
<<< probe_at_point
>>> probe_at_point(117.00, 184.00, raise, 0, probe_relative)
 current_position= X90.00 Y194.00 Z7.64 :
>>> do_blocking_move_to X157.00 Y194.00 Z7.64
<<< do_blocking_move_to
 current_position= X157.00 Y194.00 Z7.64 : set_probe_deployed
deploy: 1
 current_position= X157.00 Y194.00 Z7.64 : >>> run_z_probe
 current_position= X157.00 Y194.00 Z7.64 : >>> do_probe_move
BLTouch DEPLOY requested
BLTouch Command :10
bltouch.deploy_proc() end
>>> do_blocking_move_to X157.00 Y194.00 Z0.70
<<< do_blocking_move_to
echo:busy: processing
echo:busy: processing
BLTouch STOW requested
BLTouch Command :90
bltouch.stow_proc() end
 current_position= X157.00 Y194.00 Z2.61 : sync_plan_position
 current_position= X157.00 Y194.00 Z2.61 : <<< do_probe_move
 current_position= X157.00 Y194.00 Z2.61 : <<< run_z_probe
>>> do_blocking_move_to X157.00 Y194.00 Z7.61
<<< do_blocking_move_to
echo:busy: processing
<<< probe_at_point
>>> probe_at_point(117.00, 117.00, raise, 0, probe_relative)
 current_position= X157.00 Y194.00 Z7.61 :
>>> do_blocking_move_to X157.00 Y127.00 Z7.61
<<< do_blocking_move_to
 current_position= X157.00 Y127.00 Z7.61 : set_probe_deployed
deploy: 1
 current_position= X157.00 Y127.00 Z7.61 : >>> run_z_probe
 current_position= X157.00 Y127.00 Z7.61 : >>> do_probe_move
BLTouch DEPLOY requested
BLTouch Command :10
bltouch.deploy_proc() end
>>> do_blocking_move_to X157.00 Y127.00 Z0.70
<<< do_blocking_move_to
echo:busy: processing
echo:busy: processing
BLTouch STOW requested
BLTouch Command :90
bltouch.stow_proc() end
 current_position= X157.00 Y127.00 Z2.72 : sync_plan_position
 current_position= X157.00 Y127.00 Z2.72 : <<< do_probe_move
 current_position= X157.00 Y127.00 Z2.72 : <<< run_z_probe
>>> do_blocking_move_to X157.00 Y127.00 Z7.72
<<< do_blocking_move_to
echo:busy: processing
<<< probe_at_point
>>> probe_at_point(117.00, 50.00, raise, 0, probe_relative)
 current_position= X157.00 Y127.00 Z7.72 :
>>> do_blocking_move_to X157.00 Y60.00 Z7.72
<<< do_blocking_move_to
 current_position= X157.00 Y60.00 Z7.72 : set_probe_deployed
deploy: 1
 current_position= X157.00 Y60.00 Z7.72 : >>> run_z_probe
 current_position= X157.00 Y60.00 Z7.72 : >>> do_probe_move
BLTouch DEPLOY requested
BLTouch Command :10
bltouch.deploy_proc() end
>>> do_blocking_move_to X157.00 Y60.00 Z0.70
<<< do_blocking_move_to
echo:busy: processing
echo:busy: processing
BLTouch STOW requested
BLTouch Command :90
bltouch.stow_proc() end
 current_position= X157.00 Y60.00 Z2.87 : sync_plan_position
 current_position= X157.00 Y60.00 Z2.87 : <<< do_probe_move
 current_position= X157.00 Y60.00 Z2.87 : <<< run_z_probe
>>> do_blocking_move_to X157.00 Y60.00 Z7.86
<<< do_blocking_move_to
echo:busy: processing
<<< probe_at_point
>>> probe_at_point(117.00, 17135.00, raise, 0, probe_relative)
 current_position= X157.00 Y60.00 Z7.86 :
 current_position= X157.00 Y60.00 Z7.86 : set_probe_deployed
deploy: 0
do_probe_raise(10.00)
>>> do_blocking_move_to X157.00 Y60.00 Z12.70
<<< do_blocking_move_to
echo:busy: processing
>>> do_blocking_move_to X157.00 Y60.00 Z12.70
<<< do_blocking_move_to
 current_position= X157.00 Y60.00 Z12.70 : > probing complete
<<< G29



Saludos
  Responder
#11
Hola, si siempre hace 6 puntos y no pasa de ahí, es como si no tomase el número de puntos de la configuración. ¿Como estás iniciando el proceso del autolevel?
  Responder
#12
Hola!

Lo inicio desde pronterface o el LCD. Primero G28 y luego G29... Los códigos que te he puesto arriba no hay nada raro?

He cambiado ahora el apartado que define el Kinematic sobre los limites del probing y me lo hace muy pequeñito pero sigue quedándose en el 6... que faena!!
  Responder
#13
Buenas tardes.

Primero de todo, disculpar el retraso en la contestación. Al ver que no conseguía solucionarlo lo dejé por un tiempo. Volví a instalar todo con la nueva versión estable de Marlin y ahora funciona de categoría.

Gracias por la ayuda!
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  problema 3dtouch marlin ender Csants 4 0 14-08-2023, 10:34 AM
Último mensaje: Csants
  Tutorial sensores BLTOUCH y 3DTOUCH mashirito 162 269,780 02-08-2023, 08:54 PM
Último mensaje: Leotathabe
  CONSULTA Los filamentos de las paredes laterales no se adhieren con los adyacentes Anje 8 1,918 20-05-2020, 10:00 PM
Último mensaje: Simemart
  Guía completa: Configurar Marlin 2.0.x desde cero y no morir en el intento Peter13 5 4,706 04-01-2020, 10:34 PM
Último mensaje: Peter13
Información GUIA DEFINITIVA de impresion 3d, todos tus problemas resueltos jukillo 19 89,953 31-12-2019, 04:38 AM
Último mensaje: Leonardo Corona