Instalando o BL Touch e Sensor de Filamento na Ender 3 Pro (32 bits)

Instalando o BL Touch e Sensor de Filamento na Ender 3 Pro (32 bits) Deixe um comentário

A Ender 3-Pro é uma excelente opção para aqueles que estão iniciando no mundo da impressão 3D. Além de ter um baixo custo quando comparado a outros modelos, a impressora é relativamente simples de configurar, tem um boa qualidade e, pelo fato de ser uma das impressoras 3D mais vendidas no mundo, conta com uma grande comunidade de usuários, de forma que é extremamente fácil encontrar dicas para modificações e correção de problemas na internet.

A Creality atualizou a placa controladora da Ender 3 Pro para a versão 4.2.2, esta nova placa além de contar com um novo processador de 32 bits (o antigo era de 8 bits), possui um novo layout de conectores para permitir a fácil instalação de um sensor de autonivelamento e um detector de filamento, além de contar com um bootloader que permite a atualização do firmware de maneira extremamente simples através do cartão SD, sem necessidade de um programador ou arduino externo para subir o código.

Neste post veremos como instalar o sensor de nivelamento BL Touch e o detector de filamento em uma Ender 3-Pro (estas instruções se aplicam somente às placas controladoras v4.x.x de 32 bits).

Ender 3 Pro com BL Touch

Materiais Necessários para instalação do BL Touch

  • Ender 3 Pro (com placa controladora de 32 bits 4.2.2)
  • Sensor de Autonivelamento BL Touch
  • Detector de filamento / Chave fim de curso

A Placa de 32 bits

Originalmente tanto a Ender 3 quanto a Ender 3 Pro contavam com a placa controladora Creality 1.1.4, contendo um processador Atmega1284p de 8 bits. Embora fosse uma placa simples e de baixo custo, era extremamente difícil instalar upgrades ou atualizar o firmware destas placas.

A placa de 8 bits não possui conectores extras para instalação de módulos adicionais, como o sensor de filamento ou o BL Touch, sendo necessários circuitos adicionais para instalar estes hardwares. A memória também era um grande limitador, com apenas 128 KB de memória de programa, muitas vezes a adição de um upgrade exigia desabilitar algumas funções da impressora para poder liberar espaço para instalar os drivers necessários, fora o fato que a placa não contava com um bootloader para atualizar o firmware, qualquer modificação de software exigia abrir a impressora e conectar um gravador ISP ao microcontrolador para fazer o upload do novo código (ou modificar o firmware e usar uma parte da pouca memória disponível para instalar um bootloader).

Novas versões da Ender 3 Pro agora contam com uma nova placa, série 4.x.x, com melhorias significativas em comparação à sua antecessora. A nova placa possui um processador de 32 bits, com muito mais memória para upgrades, conectores para os upgrades mais comuns e um bootloader que permite a atualização do firmware através do cartão SD. Obviamente essa nova placa tem uma grande margem de manobra para aqueles que querem atualizar ou customizar o firmware da Ender 3 e adicionar novas funções à impressora 3D. Veremos neste post como instalar dois dos upgrades mais comuns: o BL touch e o sensor de filamento.

BL Touch

O BL Touch é um pequeno sensor, no formato de uma pequena seringa, com um ponta (ou agulha) capaz de se recolher e estender e medir, com alta precisão, a distância percorrida. Ao instalá-lo junto ao cabeçote é possível medir a distância relativa entre o bico e a mesa de impressão.

Com uma série de medidas ao longo da extensão da superfície é possível calcular a inclinação da mesa em relação ao bico, junto com qualquer desnível que a mesa de possa ter, e ajustar o sistema de coordenadas para corrigir estes desníveis e inclinações e garantir que o bico esteja sempre a uma distância constante da mesa, efetivamente fazendo um nivelamento por software ao invés de um nivelamento manual.

BL Touch

Deve-se ter em mente que o nivelamento automático por software não substitui o nivelamento manual, periodicamente será necessário realinhar a mesa manualmente para se obter a melhor qualidade de impressão. O sensor no entanto facilita esse processo, uma vez que pequenos desníveis podem ser corrigidos por software, além disso é possível utilizar uma ferramenta externa, como o Octoprint, para obter informações do sensor que podem auxiliar o processo de nivelamento manual.

Sensor de Filamento

Se você costuma imprimir várias peças em 3D de forma não supervisionada, provavelmente já passou pela situação de o filamento acabar no meio de uma impressão (ou ao menos não haver filamento suficiente para alcançar o hotend), se você tiver sorte (e um pouco de prática) é possível aproveitar a parte já impressa ao configurar o GCODE para imprimir apenas os layers faltantes e colar as duas partes, em outros casos porém será necessário descartar toda a parte já impressa, o que pode ser bastante frustrante e um desperdício de tempo e material caso seja um objeto com um tempo de impressão muito extenso.

O sensor de filamento é um pequeno dispositivo capaz de detectar se o material de impressão se esgotou e enviar à impressora um comando de pausa (geralmente acompanhado com um comando de alerta sonoro) para que você tenha tempo o bastante para trocar o filamento e resumir a impressão.

Sensor de filamento

 

Pode parecer um mecanismo complexo, mas os sensores de filamento são geralmente dispositivos extremamente simples, compostos apenas por uma chave fim-de-curso ou um botão que é mantido pressionado pelo filamento antes de passar pelo extrusor, caso o filamento acabe a chave é liberada e a placa controladora da impressora é informada que não há filamento o bastante para continuar com o trabalho atual.

 

Sensor de Filamento de impressão 3D

 

É possível encontrar sensores de filamento muito baratos na internet (visto a simplicidade do circuito), mas se você tiver uma chave fim de curso sobrando (dica: a instalação do BL touch torna desnecessária a chave fim de curso do eixo Z) é possível construir o seu próprio sensor com o auxílio de algumas peças em 3D, verifique o Thingiverse, há diversos modelos disponíveis para a Ender 3.

Instalação do BL Touch

A placa 4.x.x torna todo o processo de instalação extremamente simples em comparação aos antigos modelos. Antes de iniciar, imprima todas as peças e suportes necessários para a fixação dos sensores, o suporte do BL Touch está disponível no Thingiverse, você pode encontrá-lo neste link. Não entrarei em detalhes quanto ao sensor de filamento, pois existem diversas variações deste sensor disponíveis, seja um sensor oficial ou DIY, e cada uma requer suportes e locais de instalação diferenciados, após escolher um modelo, imprima as peças necessárias e siga as instruções de fixação que o acompanham.

Suporte do BL Touch

Fixe o BL Touch no suporte utilizando os parafusos e porcas que o acompanham o sensor, se o seu kit inclui molas, posicione-as entre a cabeça do parafuso e a base do sensor. As molas servem para dar um pouco mais de movimentação ao sensor e evitar que a sonda seja quebrada caso fique presa à mesa durante o processo de nivelação.

Montagem do Touch

Conecte o cabo ao sensor e fixe-o na parte esquerda do cabeçote, utilizando os parafusos presentes na própria impressora. O furo do suporte deve ficar sobre o parafuso da guia do eixo X.

Conexão dos cabos e sensores na impressora

Vamos agora conectar os cabos dos sensores à placa controladora. Para acessar a placa, comece removendo o parafuso localizado logo abaixo da mesa de impressão, utilize as chaves allen que acompanham a Ender.

Conexão dos cabos dos sensores à placa controladora

Com cuidado vire a impressora para obter acesso aos parafusos inferiores, tome cuidado para não danificar o cabo do fio do fim de curso do eixo X ao apoiar a impressora de lado, desconecte-o se achar necessário. Remova os três parafusos localizados na parte inferior da impressora, o painel inferior deve-se soltar dando acesso à placa controladora. Tome cuidado ao remover o painel pois o cooler da placa está fixado no painel.

Instalação BL Touch

Instalação BL Touch

O cabo do sensor deve ser instalado no soquete marcado na figura, diferentes modelos de BL Touch possuem fios de cores diferentes, portanto verifique a correspondência de cores do seu sensor e certifique-se de conectá-los aos pinos corretos da placa, veja a imagem:

Conexão dos pinos na placa

Vamos aproveitar que a placa já está exposta e conectar também o cabo do sensor de filamento, este deve ser conectado no soquete indicado abaixo. Tome cuidado com a pinagem deste soquete, pois encontrei informações inconsistentes a respeito da ordem dos fios. Para a minha Ender 3 – Pro com placa 4.2.2, a pinagem segue o padrão indicado na imagem:

Conexão dos pinos na placa

ertifique-se que os conectores estão conectados firmemente aos soquetes, caso escapem será necessário repetir todo o processo de desmontagem (a impressora pode se recusar a imprimir ou ser incapaz de descer o eixo Z nestes casos), opcionalmente pode-se utilizar cola quente ou fita isolante para melhorar a fixação.

Passe os cabos pela parte de trás da impressora, junto aos demais, reposicione o painel e coloque todos os parafusos nos locais corretos. Terminamos as modificações em hardware, vamos agora atualizar o firmware da impressora para reconhecer os novos sensores.

Montagem final BL Touch

Compilando Marlin2

Se você for instalar apenas o BL Touch, pode utilizar o firmware pré-compilado disponível no site da Creality. Caso deseje instalar também o sensor de filamento, ou adicionar suas próprias customizações ao firmware, será necessário baixar e compilar a versão mais recente do Marlin.

O Marlin é um firmware open source para impressoras 3D, utilizado em diversos modelos de impressoras, incluindo a Ender 3 e a Ender 3 Pro. Este firmware é responsável por monitorar os sensores, controlar os eixos, os mecanismos de aquecimento, além de interpretar os arquivos G-codes utilizados na impressão. A Ender 3 Pro utiliza uma versão customizada do Marlin, no entanto diversas funções mais modernas do firmware não estão presentes, possivelmente pois o antigo controlador da Ender 3 não possuía memória ou recursos necessários para suportar tais funcionalidades. Compilar e atualizar o firmware mais recente não só pode corrigir alguns bugs encontrados na versão de fábrica, mas também permite ativar diversos recursos úteis na calibração e uso da impressora.

Não entrarei em detalhes sobre o processo de compilação, pois isso deixaria este artigo extenso e existem ótimas referências disponíveis na internet, eu recomendo que assistam a este vídeo (em inglês) onde toda a configuração do ambiente de desenvolvimento é demonstrada. Vamos ver apenas as modificações que devem ser feitas nos arquivos do Marlin para ativar ambos os sensores e como instalar o firmware na impressora.

Após configurar o ambiente de de desenvolvimento no Visual Studio Code e platform.io e copiar os arquivos de configuração padrões da Ender 3 – Pro, precisamos modificar algumas linhas nos arquivos Configuration.h e Configuration_adv.h para ativar as novas funcionalidades, vamos começar ativando o BL Touch.

No arquivo Configuration.h, localize se certifique-se que as seguintes linhas estejam corretamente configuradas. Incluirei a numeração das linhas para facilitar a localização, mas tenha em mente que a contagem das linhas pode variar dependendo da versão disponível do Marlin, preferencialmente utilize a ferramenta de localização (CTRL + F):

/*

Linha 1007. Comente a macro abaixo para informar que estamos utilizando o soquete próprio para o BL Touch disponível na placa 4.2.2. Versões antigas da placa, que não possuem o soquete próprio, utilizam o pino reservado para a chave fim de curso do eixo Z.

*/

// #define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN

/*

Linha 1010. Descomente a macro abaixo para utilizar o BL Touch ao invés da chave fim de curso do eixo Z para realizar o procedimento de HOMING

*/

#define USE_PROBE_FOR_Z_HOMING

/*

Linha 1061. Descomente a macro para ativar o sensor BLTouch.

*/

#define BLTOUCH

/*

Linha 1156. Configure a distância em milímetros entre o sensor e o bocal da impressora, estes valores são fornecidos junto ao modelo do suporte do sensor.

Configure também a distância mínima entre a borda da mesa e a posição em que o sensor deve fazer a sondagem, se você utiliza uma mesa de vidro com presilhas para segurá-la, recomendo aumentar o valor para 20 mm.
*/

#define NOZZLE_TO_PROBE_OFFSET { -40, -12, 0}
 
// Most probes should stay away from the edges of the bed, but
// with NOZZLE_AS_PROBE this can be negative for a wider probing area.
#define PROBING_MARGIN 20

/*
Linha 1207. Indique o número de medições que o sensor deve fazer em cada posição, a primeira medição é mais rápida e imprecisa, todas as demais são mais precisas, porém mais lentas, tornando o procedimento mais demorado. Recomendo configurar duas medições.
*/

#define MULTIPLE_PROBING 2

/*
Linha 1511. Indique o tipo de autonivelamento utilizado pela impressora. Há cinco métodos disponíveis, cada um com suas vantagens e desvantagens, por hora selecione o método bilinear.
*/

//#define AUTO_BED_LEVELING_3POINT
//#define AUTO_BED_LEVELING_LINEAR
#define AUTO_BED_LEVELING_BILINEAR
//#define AUTO_BED_LEVELING_UBL
//#define MESH_BED_LEVELING

/*
Linha 1644. Ative o menu de auto nivelamento, isso irá adicionar uma nova tela no menu que permite ajustar o autonivelamento.
*/

#define LCD_BED_LEVELING

/*
Linha 1653. Ative o menu de nivelamento dos cantos, essa configuração é opcional, porém irá auxiliar quando for necessário fazer um nivelamento manual, posicionando o cabeçote da impressora sobre as molas de nivelamento.
*/

#define LEVEL_BED_CORNERS

/*
Linha 1714. Ative o homing seguro do eixo Z, como iremos utilizar o sensor ao invés da chave fim de curso para localizar a origem, devemos garantir que o sensor esteja sobre a mesa e consiga medir o ponto que o bocal atinja a posição zero do eixo, caso contrário, arriscamos danificar a impressora.
*/

#define Z_SAFE_HOMING

Agora no arquivo Configuration_adv.h, localize e configure as seguintes linhas:

/*
Linha 788. Configure o delay da medição, o sensor precisa de um tempo mínimo para reconhecer o comando de medição, configure inicialmente para 500 ms e, se necessário, aumente este valor.
*/

#define BLTOUCH_DELAY 500

/*
Linha 1828. Ative e configure os Baby Steps, essa configuração permite fazer com que os eixos deem pequenos passos ignorando os fim de cursos dos eixos, útil para realizar a calibração da distância entre a ponta do sensor e o bocal.
*/

#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
  //#define INTEGRATED_BABYSTEPPING         // EXPERIMENTAL integration of babystepping into the Stepper ISR
  //#define BABYSTEP_WITHOUT_HOMING
  //#define BABYSTEP_ALWAYS_AVAILABLE       // Allow babystepping at all times (not just during movement).
  //#define BABYSTEP_XY                     // Also enable X/Y Babystepping. Not supported on DELTA!
  #define BABYSTEP_INVERT_Z false           // Change if Z babysteps should go the other way
  //#define BABYSTEP_MILLIMETER_UNITS       // Specify BABYSTEP_MULTIPLICATOR_(XY|Z) in mm instead of micro-steps
  #define BABYSTEP_MULTIPLICATOR_Z  40       // (steps or mm) Steps or millimeter distance for each Z babystep
  #define BABYSTEP_MULTIPLICATOR_XY 1       // (steps or mm) Steps or millimeter distance for each XY babystep
 
  //#define DOUBLECLICK_FOR_Z_BABYSTEPPING  // Double-click on the Status Screen for Z Babystepping.
  #if ENABLED(DOUBLECLICK_FOR_Z_BABYSTEPPING)
    #define DOUBLECLICK_MAX_INTERVAL 1250   // Maximum interval between clicks, in milliseconds.
                                            // Note: Extra time may be added to mitigate controller latency.
    //#define MOVE_Z_WHEN_IDLE              // Jump to the move Z menu on doubleclick when printer is idle.
    #if ENABLED(MOVE_Z_WHEN_IDLE)
      #define MOVE_Z_IDLE_MULTIPLICATOR 1   // Multiply 1mm by this factor for the move step size.
    #endif
  #endif
 
  //#define BABYSTEP_DISPLAY_TOTAL          // Display total babysteps since last G28
 
  #define BABYSTEP_ZPROBE_OFFSET          // Combine M851 Z and Babystepping
  #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
    //#define BABYSTEP_HOTEND_Z_OFFSET      // For multiple hotends, babystep relative Z offsets
    //#define BABYSTEP_ZPROBE_GFX_OVERLAY   // Enable graphical overlay on Z-offset editor
  #endif
#endif

Com essas configurações, a Ender 3 deve ser capaz de reconhecer e utilizar o sensor de autonivelamento. Antes de compilar e carregar o firmware para a impressora, vamos ver as configurações que devem ser feitas para ativar o sensor de filamento.

No arquivo Configuration.h, faça as seguintes configurações:

/*
Linha 1411. Ative e configure o sensor de filamento. Atente-se para as macros FIL_RUNOUT_STATE e FIL_RUNOUT_PULLUP/PULLDOWN, estas devem ser configuradas de acordo com o estado padrão do seu sensor. O exemplo abaixo é destinado a um sensor que retorna um sinal lógico baixo (0) caso esteja sem filamento:
/*

#define FILAMENT_RUNOUT_SENSOR
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
  #define FIL_RUNOUT_ENABLED_DEFAULT true // Enable the sensor on startup. Override with M412 followed by M500.
  #define NUM_RUNOUT_SENSORS   1          // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each.
 
  #define FIL_RUNOUT_STATE     HIGH       // Pin state indicating that filament is NOT present.
  //#define FIL_RUNOUT_PULLUP             // Use internal pullup for filament runout pins.
  #define FIL_RUNOUT_PULLDOWN

/*
Caso o estado padrão do seu sensor seja sinal lógico alto (1), utilize as seguintes configurações:
*/

#define FIL_RUNOUT_STATE     LOW       // Pin state indicating that filament is NOT present.
  #define FIL_RUNOUT_PULLUP             // Use internal pullup for filament runout pins.
  //#define FIL_RUNOUT_PULLDOWN

No arquivo Configuration_adv.h, faça as seguintes configurações:

/*
Linha 2353. Ative as opções avançadas de pausa
*/

#define ADVANCED_PAUSE_FEATURE

Instalando o firmware na Ender 3

Umas das principais vantagens da placa 4.x.x é a inclusão de um bootloader que simplifica o processo de atualização do firmware, basta copiar o arquivo .bin localizado na pasta .pio/build/STM32F103RET6_creality para o cartão SD e inseri-lo na impressora. Ao ligá-la, o bootloader irá detectar automaticamente o arquivo .bin e irá atualizar o firmware automaticamente.

Atualização do firmware

O bootloader da Ender 3 possui uma “trava” que salva o nome do último arquivo .bin instalado e o ignora caso detectado no cartão SD, por isso é importante utilizar um nome de arquivo diferente do anterior cada vez que for atualizar a impressora, garanta também que há apenas um arquivo .bin no cartão SD, caso contrário a impressora tentará atualizar o firmware toda vez que for reiniciada.

Calibração

Após atualizar o firmware, precisamos verificar se a impressora reconhece os sensores. Selecione a opção auto-homing no menu do LCD e observe que a impressora agora se desloca para o centro da mesa durante o homing do eixo Z, a ponta do BL touch será projetada e a impressora lentamente irá abaixar o eixo Z, antes que o bocal atinja a mesa, com cuidado use o dedo para retrair a ponta do sensor, isso deve fazer com que a impressora acredite que atingiu a mesa e irá parar, caso não pare, desligue a impressora e verifique as conexões, caso contrário, corre-se o risco de danificar a impressora. Selecione novamente a opção de auto-homing e verifique se a impressora parou na posição correta.

Faça um alinhamento manual da mesa de impressão, não é necessário um alinhamento perfeito, pois o sensor irá compensar pequenas variações, ao término selecione auto-homing novamente e siga para a calibração do Z-offset.

Calibração da impressora 3D

Idealmente o sensor é ativo quando o bocal está na posição 0, logo acima da mesa de impressão, porém normalmente existe uma pequena diferença entre a posição desejada e a que o sensor ativa, precisamos compensar essa diferença através do Z-offset.

Selecione auto-homing e após a impressora parar no centro da mesa, mova o eixo Z, através dos controles do menu, até que a impressora esteja na posição Z 0, verifique se há algum espaço entre o bocal e a mesa, se sim entre no menu de configurações avançadas, BL touch, Z-Offset e reduza ou aumente o valor até que o bocal esteja na posição desejada, pode-se utilizar uma folha de papel, assim como no nivelamento, para encontrar a posição. Não se esqueça de salvar as configurações, caso contrário elas serão perdidas após o reinício.

Calibração da Impressora 3D com BL Touch

Modificação no GCODE

Modificação no GCODE
Para que a impressora realize o auto nivelamento antes de qualquer impressão, é necessário adicionar um comando extra no GCODE, logo após o comando de homing (o comando de homing irá apagar os dados do último nivelamento.

No caso do CURA, vá em configuração da impressora e em Start G-code adicione o comando G29 (auto nivelamento) após o comando G28 (homing).

Modificação no GCODE

Seleção da Impressora no CURA

 

Ajustes no CURA para utilizar GCODE

 

Resultados

BL Touch funcionando na impressora 3D

Apesar de não remover a necessidade da nivelação manual, a inclusão do sensor de auto nivelamento pode auxiliar muito para garantir uma primeira camada perfeita em sua impressora 3D. A inclusão do sensor é ainda mais interessante em impressoras com mesas magnéticas ou de metal, que naturalmente possuem imperfeições e desníveis, porém mesmo em mesas de vidro, o sensor auxilia no processo de nivelamento, uma vez que não é mais necessário ser tão rigoroso no nivelamento manual (o software irá corrigir pequenos desníveis automaticamente) e pode oferecer informações muito úteis para auxiliar o processo manual.

O sensor de filamento também é muito útil em casos de impressões não supervisionadas com pouco filamento restante no carretel, no caso em que o material acabe, a impressora irá pausar a impressão automaticamente, permitindo a troca do material e a posterior continuação do processo de impressão.

Gostou do artigo? Deixe seu comentário logo abaixo.

 

 

 

Faça seu comentário

Acesse sua conta e participe