Configurar o firmware Marlin e pô-lo a funcionar!

Configurar o firmware Marlin e pô-lo a funcionar!

  1. Primeiros passos
  2. Portas Seriais, Baudrate, Bluetooth, Nome Personalizado
  3. Driver de passo
  4. Sensorless Homing
  5. Microstepping e Stealthchop
  6. Controlo PSU
  7. Configurações térmicas - Termistor e Max/Min Temp
  8. Configurações PID
  9. Segurança - extrusão a frio e fuga térmica
  10. Configurações mecânicas - Corexy, impressora de fita, braço do robot
  11. Configurações de paragem final
  12. Configurações de movimento - aceleração, etc. também em conjunto com o Avanço Linear
  13. Sonda Z e nivelamento da cama
  14. Tamanho da cama
  15. M600
  16. Características adicionais - EEPROM, definições de pré-aquecimento, limpeza de bicos, temporizador de trabalhos de impressão, palavra-passe, idioma, suporte de cartões SD, sensibilidade do codificador, altifalantes, LCDs, neopixéis

Uma nota rápida antes de começarmos - mencionarei os números das linhas para que seja mais fácil encontrar a linha de firmware correcta. Dependendo do firmware que estás a usar ou dos ficheiros de configuração que está a usar, isto pode diferir um pouco, mas ainda assim é uma solução relativamente fácil para encontrar a linha certa.

Além disso, as declarações no Marlin são chamadas de definições, elas podem ser on, off ou on + valor selecionável. Aqueles que estão ligados são descomentados, o que significa que eles não têm um identificador de comentário, que é uma barra dupla. Basicamente, a barra dupla desliga tudo e permite que sejam escritos comentários se quiseres personalizar o teu firmware para que possa ser utilizado por ti ou por outros numa data posterior. Qualquer coisa escrita com um // no início da linha será completamente ignorada pelo firmware ao compilar.

1. Primeiros passos

Para editar o firmware do Marlin, é necessário o software correcto. Embora existam algumas opções, a maioria usaria o Visual Studio Code. Este software pode ser descarregado aqui gratuitamente, tanto para Windows, Linux e Mac.

Para fazer isso, também precisarás da extensão Platform IO. Quando o VS Code estiver instalado, vá para as extensões na barra de ferramentas à esquerda (o ícone com os 4 quadrados), procure Platformio e clique em Instalar. Também podes usar o plugin Auto-Build Marlin, que tornará as coisas um pouco mais rápidas se configurar a tua placa com o processador correcto, mas também podemos fazer isto à maneira antiga. Mostraremos como fazer isso mais adiante no texto

Depois de ter tudo junto, precisas obter o firmware do Marlin. Então vá até Marlin GitHub e baixe a última versão

Verás que existe uma versão de correcção de erros e uma versão normal. A versão de correcção de erros contém as últimas alterações ao firmware. É útil, mas também a menos estável, pois está constantemente a ser trabalhada. No entanto, a equipa Marlin é muito boa a identificar e corrigir bugs e erros, por isso gostamos de usar estas versões.

Clique em Code no canto superior direito para descarregar o firmware como um zip, descompacte a pasta zip e carregue o VS Code. Em seguida, vá para o arquivo e abra a pasta e o firmware Marlin.

Em seguida estão os arquivos de configuração, configurações específicas da impressora também podem ser encontradas no GitHub.

Estes são especialmente úteis se pretendes alterar o firmware apenas ligeiramente. Por exemplo, se tiveres uma impressora, digamos uma Ender 3, e tiveres acabado de actualizar o hotend e precisas alterar o termistor no firmware, podes simplesmente descarregar os ficheiros de configuração para essa impressora e colá-los na pasta Marlin que acabaste de descarregar. Dessa forma, todas as especificidades do firmware padrão da impressora já estão lá e só precisas alterar os valores do termistor.

Quando estiveres a preparar uma pasta de firmware para edição, há um ponto muito importante a considerar antes de começar a editar, que é escolher a placa-mãe e o modelo de processador correctos.

Se fores à página configuration.h no Explorer, no lado esquerdo, verás um comando na linha 70 que especifica qual placa-mãe está sendo usada. Para muitas placas existe apenas uma versão, mas algumas têm variantes ou algumas impressoras usaram placas diferentes no passado. É melhor abrir a impressora e verificar qual a placa que está instalada.

Para descobrir exactamente o nome da tua placa no firmware, volte ao explorador à esquerda, vá a src, core e boards.h. Esta é uma lista de todas as placas que o Marlin suporta. Então pressione CTRL F e digite a marca da tua placa, então, por exemplo, placas Creality Ender 3, digite Creality. Desça para saltar tudo o que tenha a ver com essa palavra-chave e encontrarás as placas Creality V4. Pode simplesmente utilizar a palavra Board_Creality_V4. Este é basicamente o mesmo processo para qualquer marca de placa-mãe, desde que seja suportada por essa versão do Marlin. Também encontrarás as variantes do processador para esta placa, para as placas da versão 4, vemos STM32F103RC e STM32F103RE aqui.

Note ambos, volte ao Configuration.h e copie a placa para a área após #define MOTHERBOARD. Agora também podes ir para a barra de ferramentas do explorer à esquerda e clicar na aba platform.io para ter certeza de que o modelo correto do processador está na linha default_envs no topo da página.

Ok, é isso, agora podemos editar o firmware. Existem duas páginas principais que iremos editar, a maioria delas em config.h, mas algumas também em config_adv.h.

2. Portas seriais, taxa de transmissão, Bluetooth, nome personalizado

Se fores para config.h, podemos começar por lá. Já terminamos com a placa-mãe, então vamos passar para a próxima definição: Serial Ports.

Quase todas as impressoras usam uma porta serial para se conectar a vários dispositivos. Na maioria dos casos, apenas uma é utilizada, mas se estiveres a ligar algo mais, como um ecrã táctil com um cartão SD ou uma porta USB, poderás ter de experimentar um pouco. Não vamos fazer isso aqui, por isso vamos esquecer isso por enquanto.

A taxa de transmissão é a velocidade de comunicação para estas portas. Ela pode variar, mas a maioria usa uma taxa de transmissão de 115200.

Encontrarás mais opções para portas seriais abaixo, mas podemos deixar a indefinida, pois provavelmente não precisas de nenhuma porta serial adicional.

A taxa de transmissão é a velocidade de comunicação para essas portas

Há também opções para conectividade Bluetooth, o que é raro para impressoras, e uma opção para alterar o nome da impressora, que é desligado por padrão. Pode ver este nome no ecrã LCD quando a máquina está ligada. Ative a opção e introduza um novo nome, se te apetecer.

3. Stepper driver

A seguir, temos os controladores de passo. Parece difícil, mas não é de todo. Todas as impressoras usam drivers de passo, eles controlam os motores. No passado, as impressoras usavam o A4988 ou outras variantes, o que significava que os motores eram bastante ruidosos. Atualmente, o TMC2208 ou o TMC2209 são instalados como controladores padrão na maioria das impressoras. No entanto, existem vários outros controladores com diferentes características e vantagens, como a divisão de passos, a corrente máxima ou a localização sem sensores, em que não são necessários interruptores de limite físicos para a localização dos eixos.

Podes definir facilmente o controlador que pretendes utilizar para cada acesso. Muitas vezes, a placa-mãe de uma impressora não especifica que controladores de passo são utilizados. Por vezes, uma placa utiliza controladores de passo incorporados, o que significa que não podem ser removidos. Neste caso, provavelmente não é indicado qual o controlador utilizado, mas por vezes existe uma marca na placa principal que pode indicar qual o controlador utilizado. As placas Creality V4, por exemplo, têm um pequeno código no conector do cartão SD. Se estiver escrito "T8", significa que é utilizado o controlador TMC2208. Algumas placas-mãe usam controladores amovíveis, o que tem a vantagem de poderem ser facilmente substituídos em caso de defeito - se isso acontecer com controladores integrados, a placa fica estragada e é preciso uma nova.

4. Sensorless Homing

Eu gosto muito do homing sem sensor. Não é tão preciso como as paragens finais físicas, mas reduz a necessidade de cabos, e eu odeio cabos. Nem todos os controladores suportam o homing sem sensores, por exemplo, os muito populares controladores TMC2208 não podem utilizar esta funcionalidade. Os controladores TMC2209, por outro lado, podem fazê-lo.

Para que o sensorless homing funcione, são necessárias algumas alterações físicas na placa-mãe, mas não te preocupes, elas são realmente simples. Isso pode variar dependendo da placa-mãe, mas geralmente é simplesmente definir jumpers em determinados pinos. Veja o manual do SKR Mini E3.

Em termos de firmware, aqui está o que é necessário para obter o sensorless homing: Primeiro, HOMING_BUMP deve ser definido para 0 na linha 210 (configuration_adv.h) - isto é normalmente usado para paragens finais onde o eixo atinge a paragem final, move-se um pouco para trás, e depois atinge lentamente a paragem final novamente. Por defeito, este valor é de alguns mm, pelo que é necessário desativá-lo.

Na linha 1174, ENDSTOP_INTERRUPTS_FEATURE (configuration.h) deve ser undefined.

O próximo item é a energia. A coisa boa sobre essas placas-mãe em comparação com as mais antigas é que a corrente do motor em placas antigas de 8 bits não podia ser alterada pelo firmware. Tinhas que mudar o Vref na placa-mãe girando um pequeno trimpot que era muito sensível. Se rodares um bocadinho a mais, a corrente sobe para 1,5, apesar de só precisarmos de 0,8 (ou 800 mA) para a maioria dos motores xy. Podes encontrar as linhas para definir a corrente a partir do 2386 (configuration_adv.h).

A corrente de que necessita no teu firmware depende do driver de passo e do motor. Se tiveres um motor bastante médio como um motor 42-34, o valor da corrente aqui só precisa de ser 800. Se encontrares uma folha de dados técnicos do teu motor, poderás ver que a corrente máxima é de 1,5A ou 1500mA. Mas não introduza 1500 no firmware, isso é um valor de pico absoluto, não trabalhamos com valores de pico, isso acabaria mal. Estamos à procura do valor RMS, a raiz do valor quadrático médio da corrente. Calcular a corrente correcta não é assim tão fácil, mas existem calculadoras, como esta da ALL3DP.

A gestão da corrente é crucial quando se calibra o sensorless homing, pois pode ser necessário mexer um pouco nele para garantir que funciona de forma óptima.

MONITOR_DRIVER_STATUS está localizado na linha 3204 (configuration_adv.h) - este verifica periodicamente os drivers para determinar o seu estado. O Marlin pode reduzir automaticamente a corrente do driver se o driver reportar um aviso de temperatura excessiva. Por isso, active-o.

Também podes ativar TMC_DEBUG na linha 3317 (configuration_adv.h), onde podes ver mais informações sobre os drivers de passo.

Ok, agora podemos activar o SENSORLESS_HOMING na linha 3272 (configuration_adv.h), precisamos de o activar para X e Y e definir a sensibilidade de stall, isto é, a sensibilidade com que os controladores podem medir o stall, ou seja, quando o motor move a cabeça de impressão para um lado do seu eixo e atinge o fim. Se for demasiado baixa, não detectará nada e continuará a rodar o motor mesmo que a cabeça de impressão bata no lado, se for demasiado alta, "detectará" o stall a toda a hora, mesmo que a cabeça de impressão esteja simplesmente parada. Depois de fazer o flash do firmware, o LCD tem agora um menu onde se pode alterar os valores da sensibilidade ao stall e da corrente, pelo que só é necessário alterar os valores para que fique adequado. Os valores para o stall variam entre 0 e 255, pelo que a primeira tentativa deve situar-se no meio, à volta de 128. Ajusta o valor em conformidade e tenta de novo e de novo e de novo. Se ficares preso e, independentemente do valor que escolheres, não funcionar, então precisas de ajustar a amperagem, basta aumentá-la um pouco. SÓ UM BOCADINHO!!! Se for 800 miliamperes, aumente para 850 e tente novamente.

Também podes utilizar a definição IMPROVE_HOMING_RELIABILITY um pouco mais abaixo na linha 3291, que é exactamente o que parece.

No caso de estares a perguntar, a localização sem sensor no eixo Z é complicada, especialmente em impressoras que usam fusos para o movimento Z, o que a maioria das impressoras faz. Para evitar problemas aqui, não ative a localização sem sensor para o eixo Z.

5. Microstepping e Stealthchop

Na linha 2838 existe outra função de driver X_MICROSTEPS (configuration_adv.h). Os drivers de passo movem-se em passos, normalmente 1,8 graus por passo, o que é muito preciso, mas será que isto pode ser mais preciso? Para além de obter outro motor que tenha uma medida mais pequena por passo, podes utilizar o microstepping, que diz ao controlador para sinalizar o motor para se mover menos de 1,8 graus, o que é bastante útil para uma definição muito precisa. A predefinição é 16, mas pode ir mais alto, o que, obviamente, significa que o número de passos necessários para mover um motor numa determinada distância também muda. É por isso que o Marlin tem esta maravilhosa função chamada Interpolate na linha 2833 (configuration_adv.h) que, se for definida como verdadeira, irá automaticamente "interpolar" cada valor de passo do motor para que não tenha de alterar nada manualmente. Assim, se alterares o microstepping de 16 para 32, tens de ajustar os passos de todos os motores para atingir o novo valor. Se activar a interpolação, isto acontece automaticamente.

O próximo item é STEALTHCHOP na linha 3140 (configuration_adv.h). Ligue-o, torna tudo super silencioso - também deve verificar CHOPPER_TIMING CHOPPER_DEFAULT logo abaixo dele. O mais provável é ter uma impressora de 24 V, por isso defina-a para 24 V. É claro que a capacidade de usar o Stealthchop também depende do teu driver, mas felizmente a maioria pode lidar com isso hoje em dia.

6. Controlo da PSU

De volta ao Configuration.h, na linha 388 encontramos o controlo PSU (configuration.h), que pode ser interessante se quisermos desligar automaticamente a nossa impressora depois de terminar um trabalho de impressão.

7. Configurações térmicas - Termistor e Max/Min Temp

A seguir estão as configurações térmicas na linha 430 (configuration.h), e este é provavelmente o tutorial de firmware mais solicitado de todos. Para muitas pessoas, a atualização do Hotend é a primeira mudança que fazem. Assim, se tiveres uma Ender 3 e quiseres actualizar para um hotend Revo, o que deves fazer? Bem, há duas coisas a mudar, a primeira é o termistor. A maioria das impressoras utiliza um termistor de 100k, para o qual o tipo de sensor no Marlin é "1". No entanto, o Revo e muitos outros termístores usam o número 5, que também é um termístor de 100k, mas da Semitec. Como pode ver, existem algumas marcas que utilizam este tipo de termístor. Mas talvez queira fazer um upgrade para algo mais forte como um PT1000? Depende do PT1000, mas a maioria usa o sensor número 1047 com um pull up de 4,7 ohm.

Podes fazer o mesmo para temp_sensor_bed na linha 536 (configuration.h).

A outra parte da actualização do hotend é o HEATER_0_MAXTEMP na linha 611 (configuration.h). Os hotends de PTFE são geralmente limitados a 260C, que é dado como 275C no Marlin. Não sei bem porque é que isto foi feito, mas independentemente da temperatura que colocar aqui, a temperatura real da tua impressora será 15C mais baixa. Assim, se tiver uma extremidade quente de 300C, deve introduzir pelo menos 315C como valor máximo.

Na linha 597 encontrará também HEATER_0_MINTEMP, que desligará automaticamente o aquecedor quando atingir esta temperatura. A propósito, se tens uma impressora que desliga o aquecedor ou apresenta um erro de mintemp e não sabe bem porquê, pode ser porque a impressora está num ambiente demasiado frio. Recebemos muitas perguntas sobre isso no inverno, pois muitas pessoas mantêm suas impressoras na garagem e isso pode acontecer facilmente.

Na linha 623 tem um thermal overshoot (configuration.h) que permite temperaturas acima do valor maxtemp antes de desligar a máquina. O overshoot pode ocorrer se o seu aquecedor não estiver calibrado, o que nos leva à linha 633 e ao ajuste do PID (configuration.h)

8. Definições do PID

Isto sincroniza o aquecedor e o termistor para que o aquecimento seja preciso. A coisa mais importante aqui é a linha 659, que dá os valores por defeito para proporcional, integral e derivativo. Não é necessário alterar nada aqui, mas quando se muda de aquecedor é boa ideia fazer um ajuste PID, que essencialmente calibra o aquecedor ou o termístor para que a temperatura não flutue demasiado quando a impressora está a funcionar. Por isso, recomendo que o faça depois de uma actualização do Hotend. Há várias formas de o fazer, mas uma forma fácil é activá-lo no menu do LCD, na linha 803. Outro método seria ligar a impressora ao computador através de USB e utilizar um programa de terminal como o Pronterface.

Neste terminal podes introduzir comandos gcode. O comando correcto para a sintonização do PID é "M303 E0 S210 C10 U".

Aqui M303 é o comando para iniciar o processo de votação.

E0 refere-se ao aquecedor utilizado (E0 é a predefinição para quase todas as impressoras de extrusor único).

S210 refere-se à temperatura de 210C, que é adequada para PLA, mas pode alterá-la se quiser usar principalmente outros filamentos.

C7 indica a frequência de execução do teste. Quanto mais vezes executar o teste, mais preciso ele é, mas descobrimos que não são necessárias mais de 7 tentativas.

O teste pode ser executado quantas vezes quiser

Depois de ter introduzido este comando, o teste é efectuado e os valores de Kp, Ki e Kd são apresentados.

Depois de ter estes valores, pode introduzi-los no terminal utilizando o comando M301, tal como M301 P30 I3 D60.

Em seguida, salve as configurações com um comando M500, e pronto.

O controlo PID da cama e da caixa é mais do que isso. A configuração do PID para a sua cama não é tão necessária quanto a do seu hotend. Os hotends são alterados com muito mais frequência do que o termistor da cama, mas está lá quando é necessário ligá-lo.

9. Segurança - extrusão a frio e fuga térmica

O próximo ponto importante é a proteção contra fuga térmica na linha 827 (configuration.h), que deve definitivamente ser ativada! Esta protecção irá desligar a impressora se a temperatura subir acima do nível esperado. Talvez o termistor se tenha deslocado e não o saibas. Sem ele, a temperatura continua a subir e o valor do termístor quase não se altera. Isto é ruim. LIGUE-O!

Existe também uma função para evitar a extrusão a frio na linha 816 (configuration.h). Esta função impede a ativação do motor da extrusora quando a temperatura é inferior ao valor introduzido. Por defeito, é definido aqui um valor de 170. O filamento que utiliza normalmente na tua impressora dirá qual o valor a utilizar aqui. Por exemplo, se imprimes principalmente PETG, deves definir uma temperatura de cerca de 220C <10. definições mecânicas - corexy, impressora de fitas, braço de robot.

De seguida, temos as definições mecânicas e, uma vez que vamos utilizar uma configuração Corexy, isto é muito importante. Aqui precisamos de definir o Corexy.

Existem outras cinemáticas aqui como delta, impressora de fita ou se tiveres um braço robótico, isso também é possível.

11. Configurações de Endstop e Limiar de Ruído de Endstop

De seguida vêm as definições de paragem final na linha 1071 (configuration.h). É simplesmente aqui que as paragens finais são ativadas.

Aqui está outra pequena função para o Endstop Noise Threshold. Há muito tempo atrás tive de usar esta função quando quis ligar cabos extra longos a uma impressora de modo a que toda a electrónica ficasse fora da caixa. Por alguma razão, os cabos longos causaram erros a serem detectados durante a localização, mas esta função salvou o meu dia.

12. Configurações de movimento - Aceleração, Passos, Taxa de alimentação, Jerk, Desvio de junção, Avanço linear

A seguir estão as configurações de movimento em 1194 (configuration.h) e a primeira coisa são os passos padrão. Como mencionado anteriormente, os motores de passo rodam em passos a cada 1,8 graus (a menos que tenha um motor de 0,9 graus). Quando o motor faz rodar uma correia, um parafuso de avanço ou uma engrenagem, tem de dar um determinado número de passos para fazer com que a peça se mova a quantidade desejada. Na maioria das vezes, isto precisa de ser alterado nas actualizações da extrusora, onde tudo o que precisa de fazer é alterar o número nesta linha. Normalmente, os fabricantes fornecem os passos da extrusora (ou esteps), mas estes podem precisar de ser ajustados, pelo que fazemos uma calibração de esteps. Há muitos vídeos sobre isso.

Esteps e, na verdade, todos os valores de stepping não precisam de ser configurados no firmware, podes simplesmente editar o teu gcode de arranque para inserir um novo valor com um comando M92. Esta é a forma mais fácil de atualizar a extrusora, não é necessário atualizar o firmware na maioria dos casos, basta utilizar o gcode no fatiador ou através do Pronterface, como já mostrámos. Na verdade, isto pode ser feito para todos os valores na categoria de definições de movimento com M203 para o avanço máximo, M201 para a aceleração máxima, m204 para a aceleração predefinida e M205 para as definições de solavancos. Por exemplo, se quiser alterar os passos da extrusora para uma nova extrusora Bondtech, só tem de escrever M92 E415 no código G de arranque (M92 é o comando para alterar os passos de um motor e E indica que se trata do motor da extrusora), e já está. Por isso, estes valores não estão gravados na pedra e podem ser alterados muito facilmente sem alterar o firmware.

A propósito, se estiveres interesse nos comandos gcode em geral e nos parâmetros utilizados com eles, podes consultar o site do Marlin, que tem uma lista de todos os comandos gcode, alguns dos quais podem ser muito úteis. Aqui está um exemplo do gcode de aceleração de lançamento do M204.

Jerk é uma função que limita a taxa de mudança de aceleração de um eixo, especialmente quando a cabeça de impressão está estacionária e, de repente, começa a se mover, mas também quando gira 90 graus. É um recurso relativamente antigo no firmware que ainda é usado por muitas impressoras, mas as impressoras mais novas, especialmente aquelas com firmware Klipper, usam algo chamado desvio de junção, então vamos dar uma olhada nisso.

Quanto às alterações de firmware, é muito simples: vá para a linha 1288 e defina o desvio de junção. Também certifique-te de que classic_jerk não está definido na linha 1265 (configuration.h). Essa é a parte do firmware feita, mas ainda precisas descobrir o valor do desvio de junção. Por defeito, está definido para 0,013 mm, mas isso depende inteiramente da tua impressora. Felizmente, é um teste simples, basta imprimir um modelo em que cada camada tem um valor ligeiramente diferente para o desvio da junção e depois verificar qual a camada que imprime melhor. Se notar muito zumbido, o valor é demasiado alto. Mas também não deve ser demasiado baixo, porque isso tornaria o processo mais lento.

A TeachingTech tem um óptimo guia e calculadora.

Seguinte é a aceleração da curva S na linha 1301 (configuration.h), que reduz a vibração e, tal como a função jerk, é relativamente antiga e foi arquivada a favor de novas funções. Uma delas é o Linear Advance, o que é? Bem, é utilizada para controlar a velocidade do volume extrudido à medida que a aceleração muda. Já reparaste que quando imprimes cantos de 90 graus, a impressão fica um pouco curvada? É isso que o Linear Advance foi concebido para corrigir.

Em termos de firmware, é semelhante ao Junction Deviation. Vá para a linha 2205 em configuration_adv.h e o encontrará (configuration_adv.h). Tudo o que tens de fazer é remover o comentário para que fique definido. Depois tens de o calibrar para encontrar o valor correto. Chamamos-lhe o valor k, por defeito é 0,22.

Calibrar o valor k é semelhante a calibrar o valor do Desvio de Junção, imprimimos algo com valores diferentes e vemos qual funciona melhor. Felizmente, Marlin tem uma calculadora absolutamente brilhante que podes usar para resolver tudo isso.

13. Sonda Z, nivelar a cama, mudar a direção de rotação do motor

Na linha 1311 chegamos ao nivelamento da cama e das sondas Z (configuration.h). Esta é uma seção muito extensa, uma vez que existem muitos métodos diferentes de nivelamento, não só os add-ons de nivelamento automático, mas também muitas outras coisas. Se quiseres ler sobre firmware para o BLTouch ou dispositivos semelhantes, recomendo o vídeo da TeachingTech, que fala sobre como fazer com que um BLTouch funcione em praticamente qualquer dispositivo.

Precisas de inverter a direção do seu motor? Por vezes, isto é necessário para atualizações de extrusoras ou alterações de drivers de passo. Existem muitas funções no Marlin que requerem inversão de direção, mas não tens de o fazer agora. Quando compilar e fizer o flash do seu firmware, tente mover um motor e veja se ele funciona na direção certa. Se precisares de mudar a direção, vá à linha 1698 e mude INVERT_[X/Y/Z]_DIR para false ou true.

14. Sensores de tamanho da cama e de excentricidade do filamento

O próximo item na linha 1753 (configuration.h) é o tamanho da cama. As camas devem ter um pouco de margem de manobra, pois não queremos que nosso modelo imprima muito perto da borda da cama, então podemos definir nosso min_position para 0, que será o ponto onde a parada final ou o homing sem sensor irá parar este eixo quando auto-homing. Talvez o ponto de paragem final já esteja a uma distância razoável da borda da cama, ou talvez nem sequer esteja na cama. Neste caso, precisa de espaço livre, por isso, basta editar a min_position em mm para incluir o espaço livre e, em seguida, mover o carro para o lado oposto da base até ao ponto que não quer que ultrapasse, e essa é a max_position, que é o ponto ao qual todo o curso é limitado.

A seguir temos os sensores de runout do filamento na linha 1818 (configuration.h). A maneira mais fácil de configurar um sensor de runout é usar um batente normal com um pequeno rolo no final. Este rolo é muito importante porque se puxares o filamento para fora, a tira de metal vai dobrar-se ou mesmo partir-se, tornando o interruptor inutilizável ou pouco fiável. Existem outras opções, como um opto-sensor, que considero muito mais fiável. Nunca tive um problema com o sensor na Prusa MK3, mas os sensores de paragem final são fáceis de adicionar, são baratos e com o design correcto podem funcionar muito bem. Por isso, se quiser usar um, descomente filament_runout_sensor na linha 1830, deve ter #define FIL_RUNOUT_ENABLED_DEFAULT activado e definido como true e só precisa de 1, a não ser que tenha uma extrusora dupla, por isso defina #define NUM_RUNOUT_SENSORS para 1, deve definitivamente ter o comando M600 activado (mais sobre isso um pouco mais tarde), por isso mude para a linha 1877 (configuration.h).

Também precisas de ir a ADVANCED_PAUSE_FEATURE na linha 2752 (configuration_adv.h) e remover o sinal de comentário. Há muitos outros ajustes que podem ser feitos aqui, e Marlin colocou alguns comentários muito úteis e fáceis de entender ao lado deles. Altere-os como achar melhor e adapte-os à tua impressora.

Tudo o que precisas de fazer agora é ligar a placa. Dependendo da tua placa, também podes alterá-la, se quiseres. Para verificar onde está o pino padrão, podes ir para SRC, PINS e teu modelo de processador, selecione-o e pressione CTRL F e digite FIL_RUNOUT_PIN, para nós em um BTT SKR e3 Mini V3.0 o pino é PC15, vá para o Google e digite o nome da tua placa e o diagrama de pinagem e veja onde está esse pino

15. M600

Nós já mencionamos o comando M600. É uma funcionalidade de firmware infelizmente subutilizada mas muito útil, nomeadamente a mudança do filamento durante a impressão. Se quiseres imprimir as primeiras camadas numa cor, as seguintes noutra e depois continuar a mudar de cor, pode fazê-lo com esta função. Veja este crachá que fizemos com o comando M600.

Portanto, já ativámos o M600 e a função de pausa avançada, agora precisamos de ativar a função de estacionamento da cabeça de impressão. Por isso, vá à linha 2362 (configuration.h) e active "nozzle park". Pode alterar a posição aqui, se quiseres, e também a velocidade em "feed rate" e "minimum z feed rate"

Agora vá para a linha 824 e ative Extrude max length (configuration.h). Isto irá extrair novo filamento até este comprimento, o que é suficiente para remover o filamento antigo e mudar completamente a cor. Este valor depende do facto de ter um cabo Bowden ou um Direct Drive. Se tiver um cabo Bowden com um longo tubo de PTFE, este valor deve ser bastante elevado, se tiver um Direct Drive pode ser baixo

Depois, volte à função de pausa avançada em configuration_adv.h e certifique-se de que PARK_HEAD_ON_PAUSE está descomentada para que o bocal fique estacionado em conformidade (configuration_adv.h)

16. Funções adicionais - EEPROM, definições de pré-aquecimento, limpeza de bicos, palavras-passe, idioma, sensibilidade do codificador, LCDs, neopixéis

O próximo item é a EEPROM na linha 2291 e deve definitivamente ser activada (configuration.h) - é como a função de memória na tua impressora. Assim, se alterares alguma coisa, basicamente qualquer coisa com um comando Gcode, podes guardá-lo com um comando M500 e será preservado. Sem essa função, a impressora será reiniciada com as definições de firmware que definiu no seu computador. Isto torna-a muito cómoda.

A seguir estão as constantes de pré-aquecimento na linha 2335 (configuration.h). Como na EEPROM, elas devem estar lá por padrão, mesmo que às vezes os valores não sejam tão bons. Eu gosto que estes valores sejam um pouco mais altos do que a temperatura de impressão actual, mas isso é apenas uma questão menor. Por defeito, apenas as temperaturas do PLA e do ABS estão predefinidas, mas se não usar nenhuma delas ou precisar de muitas predefinições, podem ser adicionadas até 10.

A seguir está a função clean nozzle na linha 2374 (configuration.h). Isto é útil para uma impressora dual-extruder, mas também pode ser útil para uma impressora single-extruder se você quiser que a primeira camada seja perfeita.

A próxima coisa é a senha na linha 2498 (configuration.h) - podes não querer que teu filho, por exemplo, ou colegas de quarto dentro de casa que não conhecem limites, usem a impressora. A proteção por senha pode ser útil nesse caso, mas se és o(a) único(a) com acesso à impressora, uma senha é realmente inútil.

A próxima coisa é a senha na linha 2498 (configuration.h)

Também temos configurações para suporte a LCD na linha 2529 (configuration.h). Se o inglês ou o chinês não são a tua língua materna, isso não é um problema, tens algumas para escolher aqui. Se o teu controlador usa uma roda codificadora, podes alterar a sensibilidade na linha 2602 (configuration.h). Mais abaixo, nas definições do controlador, pode seleccionar o teu controlador, talvez um com suporte de cartão SD ou um com ecrã táctil.

Também pode actualizar a sua impressora com neopixels, que são LEDs que pode ligar à tua impressora para criar uma melhor iluminação ou um espectáculo de luzes. Essas configurações podem ser encontradas na linha 3450 (configuration.h)

Finalmente, há um recurso novo e muito legal chamado Input Shaping. Este é um novo recurso no Marlin que podes compensar as vibrações que podem causar defeitos desagradáveis na sua impressão. Nós já criamos um vídeo e guia para ajudar-te a configurá-lo.

Esta lista não cobre de forma alguma tudo, mas apenas dá uma visão geral das alterações que são frequentemente feitas em geral. Se tiveres algum problema com uma parte específica do firmware do Marlin ou gostarias de ver esta lista expandida, por favor, nos avise. Iremos expandir este guia no futuro para te ajudar com quaisquer alterações que desejes fazer.