Você está na página 1de 27

Instalação do Klipper com Fluidd para Totós

V2.0

Data: janeiro 2023

Autor: José Elias

Facebook: https://www.facebook.com/jose.j.elias.ferreira/

Pagina Facebook: https://www.facebook.com/CyberJJEF

Thinginverse: https://www.thingiverse.com/joselias/designs

Introdução
Este pseudo manual tem como objetivo ajudar os totós como eu a instalarem o Klipper
nas suas impressoras FDM 3d.

Como referi em cima, eu próprio sou um totó nestas andanças, como tal, podem existir
erros, ou maneiras mais fáceis de fazer a instalação e configuração da solução. Este pseudo
manual não tem como objetivo ser perfeito ou completo, apenas dar uma ajuda aos outros
totós para não terem de perder uma semana para o conseguir colocar a funcionar.

O Que é o Klipper?

Antes de mais, o que é o Klipper? O Klipper, de um modo muito simples é um firmware


para impressoras 3d tal como o Marlin.

A grande diferença do Klipper para o Marlin é que necessita de hardware externo para
funcionar, neste caso, um Raspberry pi.

Enquanto o Marlin é instalado diretamente na board da impressora, e com isso ficar


limitado pela capacidade da própria board, o Klipper é instalado no Raspberry, que possui um
processador muito mais rápido e muito mais memoria ram/armazenamento que qualquer
board do mercado, o que o permite ser muito mais rápido e se poder expandir de forma
virtualmente ilimitada.

É necessário compreender que o Klipper é constituído por três elementos básicos de


software. (é por mais, mas para nós totós, basta perceber estes 3)

1. Um micro firmware que é instalado na board é tem como única função


cumprir/traduzir as ordens do Klipper que vem do Raspberry.
2. O Klipper propriamente dito, que traduz o gcode e adiciona funcionalidade e dá
ordens à impressora.
3. O front end, ou seja, os menus gráficos que usamos para controlar a impressora. Que
pode ser por exemplo o octoprint ou o fluidd3d

Material necessário para instalar o Klipper

1x Impressora FDM (Obvio )

1x Rapberry pi + alimentação (cumpram os requisitos de alimentação)

Com octoprint: raspberry pi 3b ou superior

Com Fluid com webcam: Raspberry pi 3b ou superior

Com fluid sem webcam: Raspberry pi zero ou superior

1x cartão micro SD de 16Gb classe 10 ou superior, recomendo um cartão de uma marca


reputada como Sandisk, Samsung e Kingston

1x cabo USB compatível com a impressor e com o raspberry

NOTA: É de extrema importância adicionar dissipadores de alumínio e uma fan ao raspberry


pi, pois estamos a falar de um equipamento que irá funcionar em muitos casos 24H/24 horas.
Instalação

NOTA IMPORTANTE: Antes de instalarem o klipper, tenham convosco o ficheiro de


instalação do Marlin, para caso aja problemas, conseguirem reverter o processo rapidamente,
guardem as configurações atuais do marlin.

Antes de instalarem o Klipper, procurem documentação sobre a vossa impressora e


board para perceberem alguns truques específicos da vossa impressora com o klipper.

Nem eu, nem o 3d Print Tuga nos responsabilizamos por qualquer


problema que aconteça.

Os passos que irei descrever são para a instalação do Klipper com o front end Fluidd.

O fluidd é um front end muito mais clean, rápido e estável do que o octoprint, dai ser o
que eu uso.

Antes de começarmos a instalar propriamente o Klipper, vamos necessitar de 4


softwares instalados no nosso PC.

1 – Balena Etcher – Este software irá permitir instalar a imagem do klipper no nosso cartão.

Download: https://www.balena.io/etcher/

1.1– Para utilizadores de Mac, devem usar este software:


https://www.raspberrypi.org/software/

2- PuTTY – O PuTTY permite-nos aceder remotamente por SSH ao Sistema operativo Linux
que ficará instalado do Raspberry.

Download: https://www.putty.org/

3- WinSP – O WinSP permite aceder ao file system do Linux de forma fácil e clean com um
ambiente gráfico idêntico ao do explorador do Windows.

Download: https://winscp.net/eng/download.php
4 – Notpad++ - Para editar ficheiro localmente sem o desformatar

Download: https://notepad-plus-plus.org/downloads/v8.1/

Instalado estes 4 softwares, vamos então começar com a instalação do Klipper, mas
antes recomendo a visualização deste vídeo do Nero3dp que eu segui para fazer a minha
instalação: https://youtu.be/gfZ9Lbyh8qU

Vamos então começar;

Aqui têm o manual oficial de instalação do fluid: https://docs.fluidd.xyz/installation/fluiddpi

Fazer download do firmware em: https://github.com/cadriel/FluiddPI/releases/latest

Após terem feito o download, deverão inserir o SD card no PC, abir o software balenaEtcher.

Clicar em “ flash from file”

Escolher o ficheiro que acabaram de fazer download


Clicar em “Select a Target” (Confirmem bem se estão a escolher o cartão de memoria)

E clicar em “flash”

Quando a imagem tiver acabado de instalar no cartão, irão ver uma mensagem como esta:
Feito isto, temos a nossa imagem do Klipper instalado no cartão, vamos então partir
para a configuração do wireless.

Abrimos a aplicação que instalamos chamada Notepad+++, clicamos em “ficheiro”,


abrir e na partição chamada “boot” escolhemos o ficheiro “fluiddpi-wpa-supplicant.txt”

De Seguida, procuramos dentro do ficheiro por estas linhas:

## WPA/WPA2 Secure

#network={

# ssid=”put your ssid here”

# psk= “put password here”

#}

Deverão apagar todos os “#” destas linhas e colocar o nome da vossa rede wireless e password
conforme indicado.

Nota: a Linha WPA/WPA2 deverá ficar com um cardinal.

No final, deverão ficar com algo parecido com esta imagem, mas com os dados da vossa rede

#WPA/WPA2 secured

Network={

Ssid=3dprinttuga”

Psk=”as5emdirecto”

Gravem o ficheiro e podem fechar o Notepad++


Agora podemos retirar o cartão Micro SD do PC e colocar no Raspberry pi e ligar o
Raspberry PI.

Esperamos 2/3 minutos para o Raspberry arrancar e agora necessitamos de aceder ao


Klipper.

Para isso, abram o vosso browser no pc, e escrevam: http://fluiddpi.local

Nota:

É possível não conseguirem aceder ao fluidd através do nome, vai depender se têm ou não o
protocolo Bonjour instalado no vosso pc.

Caso não conseguiam aceder pela resolução do nome, devem aceder ao vosso router e ver
qual o endereço de ipv4 que foi atribuído pelo dhcp ao vosso raspberry pi.

Outra maneira de descobrirem o IP do vosso Raspberry é usando um network scanner como


por exemplo o Free IP Scanner, download aqui:

https://www.eusing.com/ipscan/free_ip_scanner.htm

Para usar o Free IP scanner, basta fazer o download e abrir o software.

Clicam em “Skip” na janela do Support Free IP scâner

E de seguinda em “Start Scanning”

Este processo de scan pode demorar vários minutos.

Finalmente procuram o IP address do fluidd

Deverão encontrar uma linha onde vêm “fluiddpi.lan” com o IP adress atras, é esse ip que
deverão colocar no browser.
Finalmente podem aceder ao fluidd através do vosso Browser.

NOTA: Não liguem o cabo USB por enquanto

De seguida será necessário instalar a parte do firmware que fica na board da impressora.

Mas antes disso, devem clicar em “configurar” e de seguida em “Config Exemples”.

Deverão escolher a vossa impressora dessa longa lista, caso tenham uma board diferente na
impressora, façam download do ficheiro da board e da impressora.

Selecionem o ficheiro(s) corretos da vossa impressora / board e download.


Depois clicar em “Config”, depois no sinal ( +) , e “envio”

NOTA: Caso tenham feito o download do ficheiro da board e da impressora, escolher o


ficheiro da board.

Após fazerem o upload do ficheiro para o fluidd, clicar no ficheiro e fazer “renomear”.

Renomear o ficheiro para “printer.cfg”

Agora temos de nos conectar ao Raspberry através do software Putty que coloquei em cima
o link.

Abram a aplicação, coloquei o endereço ” fluiddpi.local “ ou o Endereço ip e cliquem em


“open”
Irá abrir uma janela de terminal, a pedir login e password

O login por defeito é: “pi” e a password é “raspberry”

Escrever:

cd ~/klipper/

make menuconfig

Irá abrir um menu idêntico a este:


De seguida, devemos voltar ao Browser, há janela do fluid e editar o ficheiro printer.cfg

Dentro do ficheiro, as primeiras linhas são com as instruções para configurar a board.

Neste exemplo, da creality ender 5 deveremos escolher:

Micro-controller Architeture – atmega AVR

E no Processador model devemos escolher - atmega1284p

Noutras boards, é necessário escolher mais opções alem destas duas, mas essa informação
esta no ficheiro printer.cfg
Após terem escolhido as opções, clicar em “escape” e depois em “Y” para guardar a
configuração.

De seguida, escrever:

Make

E irá ser compilado o ficheiro que se tem de colocar na board, quando terminado, deverão
ter uma imagem assim:

Agora chegou a hora de ligar o cabo USB à impressora.

Depois do cabo estar devidamente ligado ao Raspberry e à impressora, necessitamos de


saber qual a porta serial que está a ser usada na conexão, para isso escrever:

ls /dev/serial/by-id/*
Deverá aparecer uma resposta parecida com isto:

/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0

Guardem esta linha, pois vão precisar dela no futuro.

Agora valos flashar a board:

Para isso escrevemos

sudo service klipper stop

Neste momento será pedida novamente a password, que é “raspberry” por defeito.

Depois escrevemos:

make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0

A serial port deverá ser a que obtiveram em cima.

É possível que obtenham um erro durante esse processo, pois nem todas as boards suportam
o update por USB, por exemplo as SKR não suportam este procedimento, no entanto, as que
não suportam, têm essa informação no cabeçalho do ficheiro printer.cfg

De seguida, escrever:

sudo service klipper start

Para os que não conseguirem flashar a board diretamente por USB, deverão abrir o software
WINSCP.

Clicar em nosso site, no nome do anfitrião colocar “fluiddpi.local” ou o ip do fluidd, o


username ( pi) e a password (raspberry) e fazer conectar.

Entrar na pasta Klipper, depois na pasta OUT, escolham o ficheiro klipper.bin, botão do lado
direito do rato e descarregar.

Coloquem um cartão de memoria no pc, não interessa o tamanho nem a velocidade, e gravem
o ficheiro para lá.
Depois renomeiem o ficheiro do cartão de “klipper.bin” para firmware.bin

Desliguem a impressora e o cabo usb, coloquem o cartão na impressora e liguem a


impressora.

Ela irá instalar o firmware na board.

De seguida, deverão voltar a ligar o cabo USB, desligar o Raspberry da corrente e voltar a ligar
para garantir que todos os serviços arrancam.

Abram o browser, e acedam ao fluidd através dele.

Voltem a editar o ficheiro printer.cfg

Procurem a linha que diz [MCU] e coloquem a linha abaixo, sendo que o endereço da porta
serial será o que foi devolvido pelo klipper em cima.

[mcu]
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0

Depois cliquem em Salvar e Reiniciar.

Se tudo correr bem, deverão ter o klipper ligado à impressora.


Caso tenham uma board diferente da original que veio com a impressora, será necessário
fazerem uma compilação dos dois ficheiros (o da impressora e o da board) usando a parte
das configurações da board como os pins do ficheiro da board e o resto das configurações
da impressora.

PID Tunning

Para o Pid Tunning, basta colocarem o seguinte comando

Hotend

PID_CALIBRATE HEATER=extruder TARGET=200

Bed

PID_CALIBRATE HEATER=heater_bed TARGET=60

Depois os valores que ele der no final, dentro do ficheiro printer.cfg procuram por:

[extruder] e colocam os valores do hotend que obtiveram

pid_Kp: 27.337
pid_Ki: 1.804
pid_Kd: 103.539

procuram por [heater_bed] e novamente colocam os valores do pid da bed que obtiveram:

pid_Kp: 71.668
pid_Ki: 1.064
pid_Kd: 1206.718
Input Shape (Resonance Compensation)

O input shape é a função mais cobiçada do klipper, pois permite cancelar a vibrações
produzidas pela impressora, e com isso, aumentar a aceleração e a velocidade de
impressão.

O Input shape pode ser calibrado de duas maneiras, através de um acelerómetro ligado ao
raspberry ou manualmente através da impressão de um objeto e de uma formula
matemática.

Para calibrar manualmente deverá :

1. Fazer download desde SLT : https://www.klipper3d.org/prints/ringing_tower.stl


2. Fazer slice do STL com as seguintes definições:
• L ayer height de 0.2
• Infill 0%
• Top Layer 0
• 2 perímetros de parede
• Velocidade de 100 mm/sec nas paredes externas. (colocar tudo a 100mm/s)
• Desligar qualquer tipo de "dynamic acceleration control"
• Não rodar o SLT na mesa do Slicer.
3. No printer.cfg, na secção [printer] aumentar o valor do max_accel para 7000
4. No printer.cfg, na secção [printer] adicionar a seção max_accel_to_decel para 7000
5. No printer.cfg, na secção [printer] confirmar que o valor do square_corner_velocity é 5
6. Salvar e fazer restart
7. No fluid, na consola, colocar os seguintes comandos:
• SET_PRESSURE_ADVANCE ADVANCE=0

• SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0

• TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL


START=1250 FACTOR=100 BAND=5

8. Imprimir o gcode gerado em cima.


9. Caso a meio da impressão começarem a ver que a impressora esta a salta passos
derivado à alta aceleração, podem parar a impressão.
10. A peça tem o eixo correspondente na parte de trás (X e Y) para se poder identificar o
eixo correto.
11. Marcar a segunda onda e a última onda visível, e contar o número de ondas, que no
exemplo em baixo são 6 ondas a contar da inicial.

12. medir a distância entre a primeira onda e a última.

13. Aplicar a seguinte formula: velocidade de impressão (100) X numero de ondas (6)/
distancia entre a primeira e ultima linha(12.14mm), ou seja, neste exemplo seria
100 * 6 / 12.14 ≈ 49.4 Hz.
14. Realizar esta forma para o eixo X e para o eixo Y
15. No printer.cfg adicionar as seguintes funções com os valores obtidos:

[input_shaper]
shaper_freq_x: ... # frequency for the X mark of the test model
shaper_freq_y: ... # frequency for the Y mark of the test model
shaper_type: mzv

Toda a informação sobre o inputshape pode ser consultado neste link:


https://www.klipper3d.org/Resonance_Compensation.html
Pressure advance

O Pressure advance permite calibrar a pressão do filamento feito pelo extrusor consoante a
velocidade de aceleração e desaceleração e do próprio filamento.

Isso significa que deveremos testar os vários tipos de filamento que usamos para obter um
valor de pressure advance para cada um, ou seja, um valor para PLA, outro valor para PetG,
outro para ABS e por ai adiante.

Toda a configuração do pressure advance pode ser encontrada neste link:

https://www.klipper3d.org/Pressure_Advance.html

Recursos Adicionais

Kiauh

O Kiauh é um script que nos permite de uma forma fácil instalar e configurar recursos
do Klipper.

Com o Kiauh, entre outras coisas podemos mudar o nome ao raspberry, atualizar o
klipper, instalar outro frontend como o Mainsail, fazer backup, etc etc etc.

Toda a informação e instalação do Kiauh neste link: https://github.com/th33xitus/kiauh


Sensores de Temperatura da Board e do Raspberry

Estas funções são muito uteis, pois permitem controlar a temperatura da Board e do
raspberry na secção de temperaturas do fluid.

Para isso, basta adicionar no printer.cfg as seguintes secções:

#############################

[temperature_sensor raspberry_pi]
sensor_type: temperature_host
min_temp: 10
max_temp: 100

[temperature_sensor mcu_temp]
sensor_type: temperature_mcu
min_temp: 0
max_temp: 100
Firmware Retraction

Mais uma fantástica inovação do Klipper, podermos configurar a retração diretamente


no firmware.

Esta funcionalidade permite-nos ajustar a distância de retração e a velocidade de


retração em tempo real durante a impressão.

Para adicionar o firmware retration deveremos colocar no printer.cfg as a seguinte


função:

[firmware_retraction]
retract_speed: 30
unretract_extra_length: 0
retract_length: 1

Sendo os valores que colocamos em cada uma das linhas a retração que já temos
configurado no slicer.

NOTA: Ao activarem o firware_retration deverão desabilitar a retração no slicer, caso


contrário ele irá somar os dois valores.
Configurações do Autolev da substancia 3d

Isto é apenas um exemplo, deverá ser alterado para a vossa board e impressora

Primeiro é necessário editar o printer.cfg e procurar a secção:

[stepper_z]

Na seção [Stepper_Z] deverão substituir o pin do endstop_pin: por probe:z_virtual_endstop.

NOTA: Guardem o pin que estava no endstop, pois vão ter de o colocar mais à frente na
secção [probe]

Ainda na secção [stepper_Z] deverão comentar com o sinal # a linha position_endstop: 0

No final, deverão ter algo parecido com este exemplo:

[stepper_z]
step_pin: PB0
dir_pin: !PC5
enable_pin: !PB1
microsteps: 128
rotation_distance: 4
endstop_pin:probe:z_virtual_endstop
position_min: -6
#position_endstop: 0
position_max: 300

De seguida, deverão adicionar as secções [bed_mesh] e [probe] que estão em baixo.

Na secção probe, na linha pin, deverão colocar o pin que tinham no end stop do Z.

[bed_mesh]
speed: 150 # velocidade a que a printer faz o mesh
horizontal_move_z:5 # distancia a que a cama desce
mesh_min: 25, 25 # posição da primeira mesh
mesh_max: 200, 200 # posição da ultima mesh
probe_count: 5,5 # numero de medições no X e no Y
mesh_pps: 2,2
algorithm: bicubic
bicubic_tension: 0.2
fade_start: 1
fade_end: 10
fade_target: 0
[probe]
pin: PC2 # pin da board do end stop do Z
x_offset: -30.0
y_offset: -15

speed:40
samples:2
sample_retract_dist:2.0
samples_result:average
####################################################################
###########
############### Probe Z Off set#####################################
###########
####################################################################
###########
z_offset: 2.840 # Z off set já configurado
Macros Importantes
Macro Start Print e End Print

O Start e end Script deverão ser colocados no slicer no Start g-code e end g-code
substituindo tudo o que lá se encontra.

Um exemplo de start e end print pode ser encontrado em baixo

############################### Start Print and End Print###########


###################################
[gcode_macro START_PRINT]
gcode:
G92 E0
G90
SET_GCODE_OFFSET Z=0.0
# Home the printer
G1 E-3 F500
G28
BED_MESH_CALIBRATE # equivalente ao G29
BED_MESH_PROFILE SAVE=p1
G1 Z10 F3000

[gcode_macro END_PRINT]
gcode:
# Turn off bed, extruder, and fan
M140 S0
M104 S0
M106 S0
# Move nozzle away from print while retracting
G91
G28 X Y
#G1 X-240 Y-225 E-10 F300
# Raise nozzle by 30mm
G1 Z30 F3000
G90
# Disable steppers
M84

Macro M600

A Macro M600 permite-nos substituir o filamento a meio da impressão, basta definir a layer
a que temos de trocar o filamento no slicer e quando a impressão chegar a essa posição, a
impressão para, remove o filamento, fica à espera que se coloque o novo filamento para
depois prosseguir com a impressão.

Para o M600 precisamos de mais algumas macros, como o unload, o load filamento, park,
pause e resume.

Todas essas macros encontram-se em baixo.

M600

[gcode_macro M600]
gcode:
M117 Filament Change
{% set X = params.X|default(5) %}
{% set Y = params.Y|default(5) %}
{% set Z = params.Z|default(30) %}
[gcode_macro M600]
PAUSE_MACRO
UNLOAD
SET_IDLE_TIMEOUT TIMEOUT=52000
PAUSE_MACRO

[gcode_macro PAUSE_MACRO]
gcode:

PAUSE
PARK_MACRO
G92 E0

UNLOAD

########################################### Macro UNLOAD ###########


####################
[gcode_macro UNLOAD]
gcode:
G91
G1 E5.0 F300
G1 E3.0 F1600
G1 E-15 F300
G1 E-
100 F1000 #This is a partial unload for the E5, but you need to adju
st the default setting for max extrusion from 50

PARK_MACRO

########################################### Macro Park_Macro #######


########################
[gcode_macro PARK_MACRO]

gcode:
{% set X = params.X|default(5) %}
{% set Y = params.Y|default(8) %}
{% set Z = params.Z|default(30) %}
M117 PARKING..
G91
G1 E-3.14 F1500
G1 Z{Z}
G90
G1 X10 Y10 F3000
PURGE

####################MACRO PURGE ####################################


#############
[gcode_macro PURGE]
gcode:
M117 PURGING..
G91
G1 E50 F250
G90

LOAD_FILAMENT

######################## MACRO LOAD FILAEMNT #######################


###########
[gcode_macro LOAD_FILAMENT]
gcode:
M117 LOADING...
G91
G1 E70 F600
G1 E100 F250
#G4 P900
#G1 E45.0 F250
G90
G92 E0

RESUME_MACRO

######################### MACRO RESUME #############################


###############
[gcode_macro RESUME_MACRO]
gcode:
M117 RESUMING...
#G1 E-0.2 F200
RESUME
SET_IDLE_TIMEOUT TIMEOUT=7200
Macros para definição de Pressure advance

Tal como escrevi em cima, deveremos calibrar o pressure advance para cada tipo de
filamento, sendo assim, necessitamos de uma forma fácil de activar o pressure advance
consoante o filamento que vamos usar.

Com estas macros, podemos através do fluid mudar o valor do pressure advance rápida e
facilmente.

Podemos então encontrar aqui os exempos que devemos adicionar no printer.cfg

Os valores, deverão ser substituídos pelos que obtiveram com o teste de pressure advance.

################# Pressure advand ##########

[gcode_macro Set_press_Adv_to_PLA]
gcode:
SET_PRESSURE_ADVANCE ADVANCE=0.0754

[gcode_macro Set_press_Adv_to_PETG]
gcode:
SET_PRESSURE_ADVANCE ADVANCE=0.0645

[gcode_macro Set_press_Adv_to_TPE]
gcode:
SET_PRESSURE_ADVANCE ADVANCE=0.0725

FIM

Você também pode gostar