Hoy voy a hacer un repaso por lo que ha sido mi experiencia (tortuosa) de instalar Klipper en una Tevo Tarantula Pro. La verdad, creo que no habia necesidad de sufrir tanto, asi que si a alguien le sirve este paso a paso, bienvenido sea.
No voy a ponerme a explicar que es, para que es y bla bla bla. Tenes una Raspberry Pi 4, y una Tevo Tarantula y tenes ganas de renegar (pero saltandote algunos momentos de oscuridad e incertidumbre), segui estos consejos:
Ultimo disclaimer. Asumo que sabes algo de informatica, no me voy a detener en tonteras
1. HACIENDO LA IMAGEN
https://www.raspberrypi.com/software/
Vamos a descargar el Imager, para realizar justamente la Imagen en una SD. Recomendado esas de alta transferencia de datos. Mi recomendacion: No cambies uuario y contrseña. Puedes elegir como interface Fluid o Mainsail. Yo elegi este ultimo. Si podes colocar la info de Wifi en este paso, metele. A mi nunca me funcionó escribiendolo desde el archivo de Wifi, ni siquiera usando Notepad++ . Asi mismo, si queres probar, se descarga de aca
https://notepad-plus-plus.org/downloads/v8.5.8/
2. ECHANDO A ANDAR EL TRASTE
Una vez que tenemos la SD en la raspberry y enciende, puede tardar unos 10 minutos, en mi caso se reinició unas 2 veces hasta que quedo ready para seguir con la cirugia. Desde Aca vamos a necesitar otro programa auxiliar, para saber en que IP esta trabajando. Podemos utilizar NetWatcher (https://www.nirsoft.net/utils/wnetwatcher.zip). apenas inicia, hace un scaneo de la red y nos dice que es lo que esta en ese momento conectado. Una vez que tenemos esa info, podemos utilizar el cmd de windows o Putty. Yo prefiero este ultimo. Descarga PUTTY. Una vez que tenemos esta info, vamos a conectarnos. En mi caso era 192.168.1.110. Nos va a pedir loguearnos. por linea general el usuario es pi y la clave de raspberry.Si cambiaste algo cuando hiciste la imagen, bueno, es eso. Ya estamos conectados, vamos a lo que sigue. Un onjunto de instrucciones para hacer la instalacion un poco mas llevadera: KIAUH (https://github.com/dw-0/kiauh)
Aqui voy a agregar los comandos que hay que tirar en la linea de comandos para instalar esta madre, son 3 pasos.
sudo apt-get update && sudo apt-get install git -ycd ~ && git clone https://github.com/dw-0/kiauh.git./kiauh/kiauh.sh Ya con esto estamos en condiciones de empezar la instalación de las partes. Por el momento nos van a instalar un par de cosas.
Nos aparece un menú bien rudimentario donde elegimos con números que deseamos hacer. Aquí buscaremos instalar Klipper, así que presionamos la opción 1, luego nos pregunta l version de Python que deseamos instalar, le damos a la recomendada. Luego nos pregunta cuantas instancias deseamos instalar, si es que queremos controlar una granja de impresoras. Esto ya es una decisión personal. Yo elegi 3 y luego me arrepentí, no pasa nada. Podemos asignar nombre a cada instancia. No sea pavo, dele nombres que sean referenciales. En fin, sigamos. Sigue instalar Moonraker, que sera el intermediario entre la PC y la Raspberry. Es la opcion 2 del menu de Kiauh. Instalamos tantas instancias de Moonraker como de Klipper. Sigue instalr la Interface. Yo elegí Mainsail, y también instale macros (carga y descarga de filamentos, comando m600, etc)
Una vez que tenemos toda esta ensalada, toca flashear la impresora. En este paso, que quede claro que la impresora va a quedar NULA,ya no va a hacer nada por ella misma, no hay arrepentimiento, solo queda volver a flashearla. dicho esto, sigo. En este punto ya deberíamos tener la impresora conectada a la Rasberry con una cable USB-B. Estamos frente a Kiauh, elegimos opción 4 (Advanced) y nuevo opción 4 (Build+Flash). Le damos enter y en esta ventana, no debemos tocar nada, nadita, simplemente presionamos "Q", luego "Y" para confirmar y empieza a compilar. Si tocaste algo en el paso anterior, el microcontrolador es el Atmega AVR y el modelo de procesador es Atmega 2560. La opción de conexión es USB. Nos pregunta si queremos flashear por USB, elegimos la opción y confirmamos. La maquina empieza a ser flasheada, cuando termine, notaremos que la Tevo ya quedo con la pantalla en blanco y no tendremos menu para comandar nada. Pero aun falta un poco mas.
Vuelta a Kiauh, vamos a la opción 4 y opción 5, para conocer la ID de la maquina, el puerto por donde se va a conectar, método de conexión USB y damos enter. Seria algo así como MCU #1: usb-1a86_USB_Serial-if00-port0
Copiamos esa dirección.
ingresamos a nuestro navegador web e introducimos la dirección ip de la Raspberry. Ya estamos en Klipper, en mi caso, Mainsail. Nos va a dar un error, como que no se conecto a la impresora. En el menú de opciones a la izquierda, vamos a la inferior, MACHINE y buscamos el archivo printer.cfg. Si no esta, lo creamos, en su interior borramos todo y agregamos el contenido de este enlace
https://github.com/Klipper3d/klipper/blob/master/config/printer-tevo-tarantula-pro-2020.cfg
Lo único que deberíamos tocar es el apartado del MCU (No, no es el Universo Cinematografico de Marvel). Aquí vamos a agregar la dirección que averiguamos hace una rato (MCU #1: usb-1a86_USB_Serial-if00-port0, por ejemplo). Guarda y reincia (Arriba a la derecha). Aquí si ya deberíamos estar funcionando.
Quiero agregar dos cosas!
1. Agrega entre corchetes una linea que diga [include mainsail.cfg]
2. Tiene la opción de activar el doble eje Z, a mi no me funcionó. [Actualizado] Si funcionó, el eje estaba alimentado "al revés" se soluciona agregando un cierre de admiración al controlador (!PC7)
3. Para los que tenemos BLTouch, debemos agregar esta linea
[bltouch]
sensor_pin: ^PD3
control_pin:PB5
x_offset: -55.6 #Distancia del nozzle al BLTouch
y_offset: -14.22 #Distancia del nozzle al BLTouch
#z_offset: 0
speed: 10.0
samples: 2
samples_result: median
sample_retract_dist: 3.0
samples_tolerance: 0.1
samples_tolerance_retries: 1
A mi SI me funcionó, hay que ver como esta conectada la maquina a nivel placa, pero si funciona.
Debemos tener en cuenta que nuestro eje Z no tiene final de carrera y también que para llevarla a 0, podríamos aprovechar y hacer que en vez de llevarla al medio de la cama, lo haga en un extremo.
Agregamos esta linea:
[safe_z_home]
home_xy_position: 10, 20 # Deberia ponerle el centro de la cama
speed: 250
z_hop: 10 # Move up 10mm
z_hop_speed: 25
En mi caso, la lleva al punto de origen (0,0)
[Actualizado]
BED MESH
Teniendo BLTouch podemos agregar la malla de cama, para nivelar. De esto, he he hecho mis observaciones aca. (Resolviendo Mesh Bed Leveling con Klipper)
[bed_mesh]
speed: 120
horizontal_move_z: 10
mesh_min: -50, 20 # El endstop esta a -55.6, asi que agregamos 1.5 hacia la cama, para que toque el borde extremo
mesh_max: 160, 210 # Ajusta hasta donde tu sonda va a tocar la cama, no el tamaño de la cama en si
probe_count: 3,3
mesh_pps: 2,2
algorithm: bicubic
Z-TILT
Podemos agregar Z-Tilt, para intentar compensar el desfase entre cada uno de los ejes. Mas adelante haré una guía de como logré achicar la diferencia entre los dos ejes, muy importante de solucionar.
[z_tilt]
z_positions:
-25, 115
255, 115
points:
30, 115
200, 115
speed: 100
horizontal_move_z: 10
retries: 5
retry_tolerance: 0.15
Consideraciones? Por supuesto!
Mi final de carrera en el eje X me ha dado muchos dolores de cabeza hasta que descubrí que se le puede dar un valor negativo. De ahí, tuve que modificar muchas configuraciones.
[stepper_x]
step_pin: PF0
dir_pin: !PF1
enable_pin: !PD7
microsteps: 16
rotation_distance: 40
endstop_pin: ^!PE5
position_endstop: -55.6 #Se le indica donde tenemos el final de carrera desde el borde de la cama
position_max: 230 #Posicion maxima de la cama
position_min: -55.6 #Claramente, esta es nuestra posición mínima
homing_speed: 30.0
Del resto, creo que no hay muchos problemas. Esto es lo que en mi caso, me dio mas dolores de cabeza. Quien dice que mas adelante no agregue mas información