Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Perdido con autolevel
#1
Buenas noches compañeros.

Esto poniendo el sensor autolevel a mi anet a8 con este soporte https://www.thingiverse.com/thing:2517504 que queda a la derecha y hacia delante del nozle y no se que debo modificar en Marlin 1.1.5 para que al hacer home la cama avance hacia delante porque el sensor se queda fuera de la cama y no actua ya que queda en el aire.

Un saludo.
Citar
#2
Hola, lo primero que tienes que hacer es tomar una serie de medidas:

1) medir a que distancia del centro del agujero de la boquilla del extrusor (nozzle) queda el centro del sensor, en las direcciones X e Y de la impresora.

2) medir a que distancia (tambien en X e Y) queda el centro del agujero de la boquilla, de los bordes izquierdo y delantero de la cama, después de hacer home.

Tanto para el apartado 1) como para el 2), las medidas hay que ponerlas positivas si son hacia la derecha o hacia atrás y negativas si son hacia la izquierda o hacia delante.

En el apartado Z Probe Options del archivo configuration.h de Marlin, comprueba que está descomentada (sin // delante) la siguiente línea:

#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN, ya que conectamos el sensor al conector de fin de carrera del eje Z.

Más abajo en este mismo apartado, hay que poner los valores obtenidos en 1) en las lineas siguientes:

#define X_PROBE_OFFSET_FROM_EXTRUDER, la distancia en el eje X (positiva o negativa),

#define Y_PROBE_OFFSET_FROM_EXTRUDER, la distancia en el eje Y (positiva o negativa).

El valor para Z no se cambia (0).

Más abajo, en este mismo apartado, está la sección @section machine, donde tenemos que configurar los límites de la cama:

#define X_BED_SIZE, tamaño de la cama en X (220 de serie);

#define Y_BED_SIZE, tamaño de la cama en Y (220 de serie).

Un poco más abajo están los Travel Limits, que es donde se configuran las posiciones mínima y máxima que se pueden alcanzar. Aquí pondremos las medidas obtenidas en 2):

#define X_MIN_POS, la distancia en el eje X (positiva o negativa);

#define Y_MIN_POS, la distancia en el eje Y (positiva o negativa);

#define Z_MIN_POS, 0 para el eje Z;

#define X_MAX_POS, posición máxima a la que puede llegar el eje X y que se corresponde con el tamaño de la cama (es decir, X_BED_SIZE);

#define Y_MAX_POS, posición máxima a la que puede llegar el eje Y (Y_BED_SIZE);

#define Z_MAX_POS, posición máxima a la que puede llegar el eje Z (de serie 240);

Estos valores hay que tenerlos bien configurados para que funcionen correctamente las posiciones de la toma de datos del autolevel.

Una vez configurado lo anterior, en el apartado siguiente Bed Leveling, tienes que decidir que tipo de autolevel vas a utilizar entre los cinco que hay.
Yo solo he utilizado el LINEAR, los demás ni los he mirado aún. Lo siguiente es para este tipo.

Descomentas el seleccionado, en este caso quedaría así:

//#define AUTO_BED_LEVELING_3POINT

#define AUTO_BED_LEVELING_LINEAR

//#define AUTO_BED_LEVELING_BILINEAR

//#define AUTO_BED_LEVELING_UBL

//#define MESH_BED_LEVELING


Para el tipo LINEAR, hay que definir cuantos puntos tendrá la rejilla de medición:

#define GRID_MAX_POINTS_X, puntos en el eje X;

#define GRID_MAX_POINTS_Y, puntos en el eje Y.

El número de puntos totales de medición es el producto de esos dos valores.

En teoría, cuantos más puntos más preciso tendría que ser el autolevel. Pero yo he probado a poner más de 3 y no he notado mejoría. Al contrario, parece que lo hace mejor con 3x3.

Y por último, un poco más abajo hay que decirle donde queremos que se sitúen esos puntos, indicando los límites de la rejilla:

#define LEFT_PROBE_BED_POSITION, límite izquierdo de la rejilla de medición;

#define RIGHT_PROBE_BED_POSITION, límite derecho;

#define BACK_PROBE_BED_POSITION, límite trasero;

#define FRONT_PROBE_BED_POSITION, límite delantero;

Hay que tener en cuenta que el sensor tiene que poder llegar a esos valores, en función de los límites que hayamos indicado de la cama y de la distancia entre sensor y boquilla. Sino, Arduino nos dará un error de fuera de límites al compilar el firmware.

Y eso sería todo. Configurado así debería funcionarte correctamente.

Para que lo tengas más claro, te pondré un ejemplo con la cama original de la A8.

Vamos a configurar un autolevel LINEAR, con nueve puntos de medición situados a 20 mm de los bordes de la cama.

Supongamos que el centro del sensor está a 30 mm a la derecha y a 10 mm hacia delante, del centro del agujero de la boquilla del extrusor.

Supongamos que al hacer home, el centro del agujero de la boquilla del extrusor queda a 33 mm a la izquierda del borde izquierdo de la cama y 10 mm por delante del borde delantero.

Sería algo así:

resim

En el archivo configuration.h habría que tener las siguientes líneas:

#define X_PROBE_OFFSET_FROM_EXTRUDER 30

#define Y_PROBE_OFFSET_FROM_EXTRUDER -10

#define Z_PROBE_OFFSET_FROM_EXTRUDER 0

#define X_BED_SIZE 220

#define Y_BED_SIZE 220

#define X_MIN_POS -33

#define Y_MIN_POS -10

#define Z_MIN_POS 0

#define X_MAX_POS X_BED_SIZE

#define Y_MAX_POS Y_BED_SIZE

#define Z_MAX_POS 240

#define AUTO_BED_LEVELING_LINEAR

#define GRID_MAX_POINTS_X 3

#define GRID_MAX_POINTS_Y 3

#define LEFT_PROBE_BED_POSITION -10

#define RIGHT_PROBE_BED_POSITION 170

#define BACK_PROBE_BED_POSITION 210

#define FRONT_PROBE_BED_POSITION 30


Saludos.
Citar
#3
Impresionante!!! Sois unos maquinas.
Citar
#4
Mil gracias Simemart....en cuanto tenga tiempo me vuelvo a poner con el tema y te cuento que tal todo
Citar
#5
Bueno, para no andar abriendo más post sobre el tema del autolevel quisiera preguntar por aquí una duda, recientemente me llego este que aún no me he decidido a colocar. Se puede saber si vale el mismo? Es que lo he enchufado al conector de la placa pero no veo que prende el led rojo al acercarlo a algo de metal. Se necesita si o si, tener el firmware para el autolevel preinstalado?
Citar
#6
Pués es un poco contradictoria la información de eBay.
En la descripción pone que la alimentación es 6-36V, sin embargo en la foto se ve que está marcado en el cuerpo BN (brown-marrón)10-30V.
No creo que te funcione con los 5V escasos del conector de fín de carrera. ¿Que pone tu sensor?
Puedes probarlo, SIN CONECTARLO A LA IMPRESORA, alimentándolo con 12V y ver si se enciende el led. Conecta el cable marrón al positivo y el cable azul al negativo.
Si quieres probar si funciona la señal, un ventilador de 12V te sirve perfectamente. Conecta marrón del sensor+rojo del ventilador al positivo, negro del ventilador al negro del sensor, azul del sensor al negativo. Si está bien, al acercar algo metálico al sensor, se encenderá el led y comenzará a girar el ventilador.
No hace falta tener el firmware con el autolevel para que funcione el sensor. Cuando lo hace, se comporta igual que el interruptor mecánico de final de carrera.
Si funciona con los 12V y quieres utilizarlo, tendrás que poner un divisor de voltaje, para que transforme los 12V que dará la señal del sensor a los 5V que admite la placa.
Si no sabes como, preguntas.
Citar
#7
(Ayer, 01:46 AM)Simemart escribió: Pués es un poco contradictoria la información de eBay.
En la descripción pone que la alimentación es 6-36V, sin embargo en la foto se ve que está marcado en el cuerpo BN (brown-marrón)10-30V.
No creo que te funcione con los 5V escasos del conector de fín de carrera. ¿Que pone tu sensor?
Puedes probarlo, SIN CONECTARLO A LA IMPRESORA, alimentándolo con 12V y ver si se enciende el led. Conecta el cable marrón al positivo y el cable azul al negativo.
Si quieres probar si funciona la señal, un ventilador de 12V te sirve perfectamente. Conecta marrón del sensor+rojo del ventilador al positivo, negro del ventilador al negro del sensor, azul del sensor al negativo. Si está bien, al acercar algo metálico al sensor, se encenderá el led y comenzará a girar el ventilador.
No hace falta tener el firmware con el autolevel para que funcione el sensor. Cuando lo hace, se comporta igual que el interruptor mecánico de final de carrera.
Si funciona con los 12V y quieres utilizarlo, tendrás que poner un divisor de voltaje, para que transforme los 12V que dará la señal del sensor a los 5V que admite la placa.
Si no sabes como, preguntas.

Gracias por responder compi, la verdad que es un placer contar con alguien que siempre esta por aquí ayudando a los que se inician en este mundo. Pues si, el chino pone esos datos, pero al recibir el sensor leo que va desde 10 a 30V. Lo he conectado en la placa de la anet para comprobar si funcionaba pero no prende el led. Lo acabo de probar en 12V y si prende el led, pero resulta que en el vídeo donde un chino muestra como se conecta, parece ser el mismo. También, en esta web aparece como el original para la anet aunque aclaran que aunque no sea de 5V puede funcionar o no. Al parecer el que me llego no va, por lo que tendré que ir a por un divisor de voltaje como comentas.
Citar
#8
Ok. Hay sensores de 6-36V que funcionan con 5V y otros que no. Pero uno de 10-30V no creo que funcione nunca. Está muy lejos de su voltaje mínimo.
Para hacer el divisor de voltaje, necesitas un montaje como este:

resim

Pela un poco la funda del cable del sensor, para poder cortar los cables dejando una cuarta en el conector.
El cable marrón que viene del sensor lo conectas directamente junto con el positivo de alimentación de la placa. El marrón que queda en el conector lo quitas.
En los otros dos, tienes que soldar los componentes tal y como pone el esquema.
Los diodos zener tienen una raya que indica el cátodo y tienes que ponerla hacia el cable negro.

resim
Citar
#9
(Ayer, 09:54 AM)Simemart escribió: Ok. Hay sensores de 6-36V que funcionan con 5V y otros que no. Pero uno de 10-30V no creo que funcione nunca. Está muy lejos de su voltaje mínimo.
Para hacer el divisor de voltaje, necesitas un montaje como este:

resim

Pela un poco la funda del cable del sensor, para poder cortar los cables dejando una cuarta en el conector.
El cable marrón que viene del sensor lo conectas directamente junto con el positivo de alimentación de la placa. El marrón que queda en el conector lo quitas.
En los otros dos, tienes que soldar los componentes tal y como pone el esquema.
Los diodos zener tienen una raya que indica el cátodo y tienes que ponerla hacia el cable negro.

resim


Pues mira, acabo de probar así de loco y vale aunque no prenda el led. He subido hasta arriba el eje Z y enchufado el sensor y al realizar un home acerco el sensor a la cama o a algo metálico y se detiene correctamente por lo que en este caso creo que funciona correctamente, no? 



Citar
#10
Pués si actúa es que funciona.
Pero que no se encienda el led con 5V y sí con 12V, puede indicar que está muy al límite del voltaje mínimo necesario para funcionar y podría fallarte en alguna ocasión la detección.
Tendrás que vigilarlo ya que, si falla la detección, te chocará la boquilla contra la cama. Veo que tienes muelles, lo que amortiguaría algo el choque.
Citar
#11
Buenas Señores.
No había tenido tiempo de probar hasta hoy.

Al hacer homing siempre me quedaba la sonda fuera, lo cual solucione activando:

#define Z_SAFE_HOMING

Que obliga a hacer el home de Z en el centro de la cama.

Luego establecí los margenes para el autolevel:

#define LEFT_PROBE_BED_POSITION 10
#define RIGHT_PROBE_BED_POSITION 150
#define FRONT_PROBE_BED_POSITION 60
#define BACK_PROBE_BED_POSITION 210

Asi me toma los puntos del autolevel correctamente dentro de la cama.

El problema lo tengo con OFFSET del sensor, con las medidas de mi soporte deberia quedar asi, ya que queda a 6cm a la derecha y 5.5cm por delante del nozzle

#define X_PROBE_OFFSET_FROM_EXTRUDER 60

#define Y_PROBE_OFFSET_FROM_EXTRUDER -55

Pero al compilar me da este error:

In file included from C:\Users\Ulises\AppData\Local\Temp\arduino_build_255401\sketch\MarlinConfig.h:39:0,

from C:\Users\Ulises\AppData\Local\Temp\arduino_build_255401\sketch\G26_Mesh_Validation_Tool.cpp:27:

SanityCheck.h:741: error: static assertion failed: LEFT_PROBE_BED_POSITION can't be reached by the Z probe.

static_assert(LEFT_PROBE_BED_POSITION >= MIN_PROBE_X, "LEFT_PROBE_BED_POSITION can't be reached by the Z probe.");

^

SanityCheck.h:744: error: static assertion failed: BACK_PROBE_BED_POSITION can't be reached by the Z probe.

static_assert(BACK_PROBE_BED_POSITION <= MAX_PROBE_Y, "BACK_PROBE_BED_POSITION can't be reached by the Z probe.");

^

Usando librería LiquidCrystal con versión 1.0.7 en la carpeta: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal
exit status 1
static assertion failed: LEFT_PROBE_BED_POSITION can't be reached by the Z probe.

Pues resulta que he dejado en el firmware todos los offset del sensor en "0", he cargado el firmware, ajuste el Offset de Z a mano desde el menu del lcd y va todo fantastico y maravilloso ;P
Citar
#12
Efectivamente, no me dí cuenta de que en Marlin el archivo configuration.h para las Anet no trae el autolevel configurado y está comentada la definición para el Z Safe Homing. Yo tengo Skynet cargado y trae uno para autolevel con todo configurado por defecto, de ahí mi olvido.
El Z Safe Homing indica el punto en que se debe hacer el home del Z. Por defecto es el centro de la cama, si se definen X_MAX_POS e Y_MAX_POS con el tamaño de la cama (asigna la mitad de esos valores), pero se puede definir donde se quiera.
Lo de los errores al compilar ya te lo indiqué en #2. Te lo pongo otra vez, que igual se te paso por alto:
"Hay que tener en cuenta que el sensor tiene que poder llegar a esos valores, en función de los límites que hayamos indicado de la cama y de la distancia entre sensor y boquilla. Sino, Arduino nos dará un error de fuera de límites al compilar el firmware."
En tu caso no puede llegar ni al límite izquierdo, ní al trasero. Además de los datos que aportas, necesitaría las medidas del apartado 2) para explicarte el porqué.
Y sobre tu última frase, con eso de que va todo "fantástico y maravilloso", ¿quieres decir que sí compila sin errores?.
Por supuesto, le estás diciendo que el sensor está encima de la boquilla. Así puede llegar a las posiciones que le marcas (ya que estan dentro de los límites de la cama).
Pero las mediciones que está tomando el autolevel están falseadas, ya que no las está tomando donde el firmware cree, sino a 60 mm a la derecha y a 55 mm hacia delante.
Citar


Temas similares...
Tema Autor Respuestas Vistas Último mensaje
  Autolevel Anet A8 manur315 14 290 28-09-2017, 11:26 AM
Último mensaje: wekoyote
  que autolevel poner carlos martinez-yllescas 8 791 24-08-2017, 05:42 PM
Último mensaje: joseslo
  anet a6 y autolevel albper 7 2,963 14-08-2017, 06:16 AM
Último mensaje: el_becario
  Autolevel Anet A6 drakonian01 3 599 11-07-2017, 10:46 PM
Último mensaje: drakonian01
  Problema con autolevel Jozila 6 631 02-07-2017, 10:51 PM
Último mensaje: Ordosario