domingo, 11 de febrero de 2018

Como instalar en nuestra impresora 3d el sensor autolevel BLTouch

COMO INSTALAR AUTOLEVEL BLTOUCH EN PRUSA I3

         Esta vez voy a intentar explicar mi experiencia sustituyendo el sistema autolevel con servo que tenia montado en mi prusa i3 por el nuevo sensor BLtouch subministrado por www.3dpenedes.com . Aquí podéis ver unas fotos del antiguo sistema que consistía en un  servo  SG90 al cual se le unía una pequeña pieza a modo de brazo donde en la punta tenia un final de carrera que permitía medir las distancias y corregir posibles desviaciones en la cama.







Y este es el nuevo sensor :


Bueno pues al lio, si ya tenias el sistema montado como yo solo tienes que seguir el siguiente esquema:




   Como indica en la figura cortamos el cable que da señal y VCC al servo y lo conectamos color con color al sensor ademas de los dos cables del final de carrera que iran conectados al cable blanco/negro del mismo.

A partir de hay montamos nuestro soporte para el sensor segun nuestras necesidades, puedes encontrar modelos listos para imprimir para tu extrusor en www.thingiverse.com o diseñarlo tu mismo con fue mi caso con herramientas libres como FreeCad. 
En la siguiente foto podemos ver mi modelo diseñado en Freecad y el resultado final ya montado en mi extrusor .


En un primer momento decidi hacer el soporte para poner unos muelles y asi regular la altura del sensor para ponerlo dos mm por encima de la punta del hottend con mas facilidad pero al final lo sustitui por una arandelas y la medida fue correcta igualmente. Las dos formas creo que son validas si consigues los dos milimetros que marcan en el siguiente esquema.

Una vez instalado y conectado todo entramos en https://github.com/MarlinFirmware/Marlin para bajarnos la ultima version de Marlin, en estos momentos la 1.1.8 que simplifica bastante la configuracion del sensor BLTouch

Copiamos nuestros datos de la version original de nuestro marlin que tendremos guardada a buen recaudo o simplemente configuramos este nuevo firmware para nuestra impresora siguiendo este fantastico tutorial de staticboards www.staticboards.es/blog/marlin-instalacion-configuracion/ y una vez lo tengamos todo ok pasamos a configurar nuestro Bltouch.

1.- Abrimos nuestro configuration.h
     
1.1 Buscamos esta linea //#define BLTOUCH y la des-comentamos (quitamos las dos barritas de la izquierda)
1.2 Buscamos estas lineas :

#define X_PROBE_OFFSET_FROM_EXTRUDER 10 // X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER 10 // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle]

Ahora tenemos que medir la distancia que hay desde la punta del hotten hasta la punta del sensor, tanto de derecha
a izquierda como de arriba a bajo siguiendo el gráfico que encontraras aquí abajo o en el propio firmare.

Valor de medida X seria derecha/izquierda
Valor de medida Y seria delante/detrás
Valor de medida Z seria arriba/abajo

+-- BACK ---+

* | |
* L | (+) P | R <-- probe (20,20)
* E | | I
* F | (-) N (+) | G <-- nozzle (10,10)
* T | | H
* | (-) | T
* | |
* O-- FRONT --+
* (0,0)

Hay que tener en cuenta que si tu sensor queda a la izquierda del hottend o por delante de el el valor de la medida sera una valor negativo.

1.3 Ahora buscamos esta linea:

//#define AUTO_BED_LEVELING_LINEAR y la des comentamos (quitamos las dos barritas de la izquierda y ya esta)

1.4 Ahora buscamos estas lineas:

#define LEFT_PROBE_BED_POSITION 15
#define RIGHT_PROBE_BED_POSITION 170
#define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 170
Aqui ponemos el valor máximo donde queremos que nuestro sensor haga la prueba, veréis que hay que cumplir unas reglas de posición. En caso de que no las cumpláis el propio firmware al compilarlo te indica que valor no tiene concordancia.

Estas son las reglas a cumplir:

LEFT_PROBE_BED_POSITION - X_PROBE_OFFSET_FROM_EXTRUDER >= XMIN
RIGHT_PROBE_BED_POSITION - X_PROBE_OFFSET_FROM_EXTRUDER <= XMAX
FRONT_PROBE_BED_POSITION - Y_PROBE_OFFSET_FROM_EXTRUDER >= YMIN
BACK_PROBE_BED_POSITION - Y_PROBE_OFFSET_FROM_EXTRUDER <= YMAX

Una vez tengamos esto configurado lo compilamos y mandamos a nuestro arduino Mega y si todo esta correcto hacemos lo siguiente.

Para hacernos con un control mas fácil de nuestra impresora abrimos nuestro laminador preferido y hacemos subir el eje Z hasta 120mm.
Seguidamente mandamos el GCODE G28 y la punta del sensor se deberia desplazar al centro de la cama. Seguidamente el sensor sacara el embolo hacia afuera y el Z empezara a bajar. Tocamos con el dedo en embolo y comprobamos que la impresora hace dos intentos y se para.

Como curiosidad si al hacer esta prueba el eje Z en vez de bajar a tocar la cama una vez que haga la medida vuelve a subir es la problema de polaridad de los cables Blanco/negro del sensor.

Si todo ha ido bien y nos ha detectado el sensor al tocarlo volvemos a hacer un G28.
Una vez que este posicionado en el centro hacemos un 
M851 Z0 con lo que le marcamos a la maquina que la posición en la que esta pertenece a Z0.00
M500       grabamos en la eprom
M501       activamos los parámetros de la eprom
M503       verificamos que los parámetros estén grabados

G28 Z0    hacemos homming de Z
G1 F60 Z0  movemos en noozle a la posición 0.00 
M211 S0  desactiva los topes por software por lo que podremos bajar en nozzle por debajo de 0

Asi que ponemos un folio y vamos bajando poco a poco hasta sentir que el papel roza levemente la punta del hottend sin llegar a clavarse.

Apuntamos el valor y lo introducimos con el siguiente comando:

M851 Zxxx(sustituir las xxx por el valor reflejado en la anterior medición respetando el signo positivo o negativo)

M211 S1  activamos  los topes por software 
M500       grabamos en la eprom
M501       activamos los parametros de la eprom
M503       verificamos que los parametros esten grabados

Ahora verificamos que todo este ok con un G28 y seguidamente bajamos el nozzle a la posicion 0 con el comando G1 F60 Z0. Verificar  otra vez el con el folio que deveria notar que pasa rozando sin clavarse, si es asi todo estará ok.

Recuerda poner en tu start gcode los comando:
G28 ; homing de todos los ejes X Y Z
G29 ; medición en 9 puntos de la cama y calculo de la desviación

Este tutorial es la suma de varios que he encontrado por Internet sin los que no podría haber echo absolutamente nada asi que desde aquí gracias a sus creadores.

Las fuentes son :



Si localizáis cualquier error por favor no dudéis en comentarlo para rectificación
Espero que os sirva
Un saludo
Obsesión Tecnológica