Passos por milímetro, do zero
Um motor de passo gira um ângulo fixo a cada passo completo: 1,8° em quase todos os motores de impressora, ou seja, 200 passos completos por volta (os de 0,9° têm 400). O driver divide cada passo completo em micropassos, normalmente 16, então o firmware manda 3.200 passos para uma volta do eixo do motor. Divida isso pela distância que o eixo da impressora anda em uma volta e você tem os passos por milímetro.
passos/mm = passos completos por volta × micropassos × relação ÷ deslocamento por volta
correia: deslocamento por volta = passo da correia × dentes da polia
fuso: deslocamento por volta = passo da rosca × entradas (o avanço)
Nada nessa cadeia precisa ser medido com régua: o passo, o número de dentes e as entradas fazem parte do nome das peças. Por isso os eixos de correia e de fuso são calculados, não calibrados, e só a extrusora, que agarra um filamento macio com engrenagens dentadas, é medida.
Correias, fusos e extrusoras com redução
| Transmissão | Deslocamento por volta | Passos/mm em 1/16 (1,8°) | rotation_distance do Klipper |
|---|---|---|---|
| Correia GT2, polia de 20 dentes | 2 mm × 20 = 40 mm | 80 | 40 |
| Correia GT2, polia de 16 dentes | 2 mm × 16 = 32 mm | 100 | 32 |
| Fuso T8 (Tr8x8, 4 entradas) | 2 mm × 4 = 8 mm | 400 | 8 |
| Fuso Tr8x2 (uma entrada) | 2 mm | 1.600 | 2 |
| Bondtech BMG, engrenagens 50:17 | 22,679 mm por volta da engrenagem | 415 | 22,679 com gear_ratio: 50:17, ou 7,711 sem |
As linhas de correias e fusos vêm da nossa calculadora de passos por mm (16 dentes, T8, BMG); o valor da BMG é o da Bondtech.
Conte os dentes da polia (o número costuma vir gravado nela) e olhe a ponta do fuso: um T8 mostra quatro filetes separados, então o passo de 2 mm vira um avanço de 8 mm. Nas extrusoras com redução, quem engana é a relação anunciada: a BMG é vendida como 3:1, mas as engrenagens são 50:17, ou seja, 2,94:1. Por isso a Bondtech indica 415 passos/mm, cerca de 2% a menos do que um 3:1 de verdade daria.
| Extrusora (exemplos) | Valor do fabricante | O que colocar |
|---|---|---|
| Bondtech BMG (e clones tipo BMG) | Engrenagens 50:17, 415 passos/mm em 1/16 | gear_ratio: 50:17 e rotation_distance 22,679, ou 415 passos/mm no Marlin |
| LDO Orbiter v2.5 | 690 passos/mm em 1/16, rotation_distance 4,637, como na v2.0 | Do jeito que está, depois calibre: a Rat Rig avisa que na v2.5 os valores podem mudar um pouco. A folha da v2.0 da LDO dá 0,85 A RMS para o motor dela |
| FYSETC Sherpa Mini (rev. 1.5) | Redução de 6,25:1, 870 passos/mm | 870 passos/mm no Marlin e depois calibrar |
Valores iniciais da página da BMG na Bondtech, da página da Orbiter v2.5 na Rat Rig, da folha de configuração de firmware da Orbiter v2.0 da LDO e da página da Sherpa Mini na FYSETC. Os clones costumam copiar a relação, nem sempre o diâmetro da engrenagem: calibre mesmo assim.
Digite a correia, a polia, o fuso ou a redução: a calculadora dá os passos/mm, a rotation_distance, a frequência de passos na sua velocidade máxima e as linhas para Marlin e Klipper.Abrir a calculadora de passos por mm
Marlin e Klipper: onde vai cada número
O Marlin guarda passos por unidade. M92 X80 Y80 Z400 E415 define os valores, M92 sozinho mostra os atuais (M503 nas versões antigas) e M500 grava na EEPROM, se o firmware foi compilado com EEPROM_SETTINGS, como quase todos os de impressora. Os valores compilados são DEFAULT_AXIS_STEPS_PER_UNIT no Configuration.h; M502 restaura esses valores.
O Klipper não usa passos por mm. Cada seção [stepper_…] leva rotation_distance (o deslocamento por volta), microsteps e, quando não forem os padrões, full_steps_per_rotation (200; 400 para um motor de 0,9°) e gear_ratio. Para converter um valor antigo do Marlin: rotation_distance = passos completos × micropassos ÷ passos/mm, ou seja, 200 × 16 ÷ 80 = 40. Com gear_ratio: 50:17, a rotation_distance é o deslocamento da última engrenagem: por isso a da BMG fica em torno de 22,68, e não 7,71.
Calibrar a extrusora
As engrenagens da extrusora mordem o filamento, então o avanço real depende do filamento e da pressão. Parta do valor do fabricante e depois meça:
- Aqueça o hotend até a temperatura de impressão e carregue o filamento.
- Marque o filamento 120 mm acima do ponto onde ele entra na extrusora e meça a marca com precisão usando um paquímetro.
- Extrude devagar. Marlin:
M83e depoisG1 E100 F100. O procedimento do Klipper:G91e depoisG1 E50 F60(para 50 mm basta uma marca a uns 70 mm). Não use o botão de extrusão da tela ou do app: ele é rápido demais e a pressão distorce o resultado. - Meça de novo da entrada da extrusora até a marca. Extrudado = marca antes − marca depois.
- Marlin: novos passos/mm = antigos × pedidos ÷ extrudados. Klipper: nova rotation_distance = antiga × extrudados ÷ pedidos, arredondada para três casas decimais.
- Salve e repita se o primeiro resultado errou por mais de uns 2 mm.
Exemplo com uma extrusora tipo BMG a 415 passos/mm: a marca de 120 mm termina em 22,4 mm, então entraram 97,6 mm em vez de 100. Marlin: 415 × 100 ÷ 97,6 = 425,2 passos/mm, gravados com M92 E425.205 e M500. Klipper, com gear_ratio: 50:17: 22,679 × 97,6 ÷ 100 = 22,135. O erro passou de 2 mm, então repita o teste com o valor novo.
Digite o valor atual e as duas distâncias da marca: a calculadora dá os novos passos/mm e a rotation_distance.Calibrar a extrusora
A corrente do motor: nominal, RMS e de pico
A corrente impressa num motor de passo, 2,0 A em muitos NEMA 17 de 48 mm, é a corrente por fase para a qual ele foi projetado com as duas fases ligadas, como em passo completo. Com micropasso as duas bobinas recebem duas senoides, e os drivers são ajustados de dois jeitos diferentes:
- A4988 e DRV8825 definem um limite de corrente: o pico da senoide. Cada bobina recebe então cerca de 71% desse valor em RMS.
- TMC2208, TMC2209 e TMC5160 são ajustados em corrente RMS: tanto o
run_currentdo Klipper quanto oX_CURRENTdo Marlin são RMS (o comentário do Marlin manda multiplicar por 1,414 para ter o pico).
Quanta corrente usar? A Watterott, que fabrica os SilentStepStick originais, recomenda começar com metade da corrente nominal e subir de 0,1 A em 0,1 A se o motor perder passos; a documentação da Voron usa 70% da nominal como RMS, ou o limite do driver, se for menor. O Klipper diz o mesmo sem números: toda a corrente que o motor aguentar sem ficar quente demais para encostar a mão. Para um motor de 2,0 A, isso vai de 1,0 a 1,4 A RMS.
Essa corrente circula mesmo com o motor parado. Numa bobina de 1,6 Ω, 1,2 A RMS dão 2,3 W por fase, cerca de 4,6 W nas duas: um motor que segura a posição a impressão inteira foi feito para trabalhar quente.
| Motor (exemplos) | Corrente nominal | Torque de retenção | Resistência, indutância | Comprimento |
|---|---|---|---|---|
| StepperOnline 17HS19-2004S1 | 2,0 A por fase | 59 N cm | 1,6 Ω, 3,0 mH | 48 mm |
| LDO-42STH48-2004AC | 2,0 A por fase | 59 N cm | 1,6 Ω ±20%, 3,0 mH ±20% | 48 mm |
| Moons’ MS17HD6P4200 | 2,0 A por fase | 63 N cm | 1,3 Ω, 2,9 mH | 48,3 mm |
Todos de 1,8°, segundo a página da StepperOnline, o desenho da LDO e a página do produto da Moons’. São exemplos, não recomendações de compra. Em qualquer alternativa, confira a corrente nominal por fase, a indutância (quanto menor, mais torque sobra em velocidade com 24 V), o eixo e os pares de fios de cada bobina no conector.
A Vref de A4988, DRV8825 e TMC2209
Num driver ajustado pelo potenciômetro, a corrente depende só de duas coisas: a tensão de referência Vref e o valor dos resistores shunt ao lado do chip, marcados R068 (0,068 Ω), R100 ou R110.
A4988 I limite (pico) = Vref ÷ (8 × Rs)
DRV8825 I limite (pico) = Vref ÷ (5 × Rs)
TMC2208/9 I RMS = (Vref ÷ 2,5 V) × 0,325 V ÷ (Rs + 0,02 Ω) ÷ √2
(Rs 0,110 Ω: I RMS = Vref ÷ 1,41; acima de 2,5 V a Vref não acrescenta nada)
Para o nosso motor de 2,0 A queremos cerca de 1,2 A RMS nas bobinas, 60% da nominal: um pouco abaixo dos 1,4 A a partir dos quais o datasheet do TMC2209 pede cuidado especial com o calor. Em cada driver, isso dá:
| Driver | Resistores shunt | Ajuste | Vref | Refrigeração nessa corrente |
|---|---|---|---|---|
| TMC2209 | 0,110 Ω | 1,2 A RMS (60%) | 1,7 V | Dissipador e ventoinha: acima de cerca de 1 A RMS, segundo a Watterott |
| A4988 | 0,068 Ω (Pololu) | limite de 1,7 A (85%) ≈ 1,2 A RMS | 0,92 V | Dissipador e fluxo de ar: acima de cerca de 1 A por fase, segundo a Pololu |
| DRV8825 | 0,100 Ω (Pololu) | limite de 1,7 A (85%) ≈ 1,2 A RMS | 0,85 V | Dissipador e fluxo de ar: acima de cerca de 1,5 A por fase, segundo a Pololu |
Valores da nossa calculadora de Vref; cada link abre a calculadora com esses ajustes. Repare nas porcentagens: 85% num A4988 dão a mesma corrente nas bobinas que 60% num TMC2209.
Subir para 70% no TMC2209, 1,4 A RMS, pede 1,98 V, e só num módulo feito para isso: a FYSETC diz que os SilentStepStick dela só podem ser usados até 1,2 A RMS, e a documentação da Voron recomenda no máximo 1,4 A para um TMC2209 no formato stepstick, bem refrigerado. Com resistores de 0,110 Ω, um TMC2209 não passa de 1,77 A RMS, por mais que você gire o potenciômetro.
| Driver (exemplos) | Características | Para este motor |
|---|---|---|
| Pololu A4988 (#1182) | 0,068 Ω, 8–35 V, até 1/16; cerca de 1 A por fase sem refrigeração, 2 A com | Funciona com 0,92 V, dissipador e fluxo de ar; barulhento, e só 1/16 |
| Pololu DRV8825 (#2133) | 0,100 Ω, 8,2–45 V, até 1/32; cerca de 1,5 A por fase sem refrigeração, 2,2 A com | Funciona com 0,85 V e refrigeração |
| BIGTREETECH TMC2209, FYSETC Silent2209 | 0,110 Ω; chip de 2 A RMS e 2,8 A de pico; máximo ajustável de 1,77 A RMS; UART | Serve para 1,2 A RMS com dissipador e ventoinha; silencioso, corrente no firmware |
| BIGTREETECH TMC5160T Pro | Só SPI, 0,075 Ω, 3,1 A RMS, 4,4 A de pico, 8–56 V | Dá a este motor toda a corrente nominal com folga; a escolha para motores maiores |
Segundo as páginas dos fabricantes: Pololu, BIGTREETECH (bttwiki), FYSETC. Os clones variam: leia a marcação dos resistores na sua placa. Um TMC2208 (1,4 A RMS) fica melhor no Z e na extrusora.
Escolha o driver, leia os resistores shunt e digite a corrente do motor: a calculadora dá a Vref, a corrente de pico e RMS e a refrigeração necessária.Abrir a calculadora de Vref
Medir e ajustar a Vref com segurança
- Desligue tudo e desconecte o motor do driver que você vai ajustar. A FYSETC pede isso expressamente; a Pololu explica que o motor não precisa estar conectado para definir o limite.
- Alimente a placa pela fonte principal, não só pelo USB. Só com o USB a leitura pode sair errada, e num DRV8825 ou num TMC você pode não ler nada: o DRV8825 só gera a referência com a alimentação dos motores ligada e SLEEP e RESET em nível alto.
- Ponta preta do multímetro num pino GND, ponta vermelha no centro do potenciômetro ou no ponto de teste Vref da placa.
- Gire aos poucos com uma chave de fenda de cerâmica ou de plástico: uma ponta de metal pode fechar curto entre o potenciômetro e um pino vizinho. O sentido que aumenta a Vref muda de uma placa para outra, então fique de olho no multímetro.
- Desligue, espere a placa descarregar, conecte o motor e só então ligue de novo.
- Movimente o eixo por alguns minutos e encoste no motor e no driver: morno está bom; se esquentar a ponto de não dar para manter o dedo, é corrente demais.
UART e SPI: a corrente no firmware
Um TMC2209 numa placa preparada para UART, como os drivers integrados de uma BIGTREETECH SKR Mini E3 V3.0 ou os soquetes de uma BTT Octopus com os jumpers de UART no lugar, recebe a corrente do firmware. O Marlin passa o driver para a referência interna, então o potenciômetro não faz nada; o Klipper define a corrente pela configuração. Um módulo TMC5160 nem tem potenciômetro: o ajuste é por SPI.
No Klipper: run_current: 1.2 na seção [tmc2209 stepper_x] (ampères RMS), com sense_resistor no padrão 0.110 ou no valor do seu módulo (0.075 para o TMC5160T Pro). O Klipper desaconselha o hold_current. No Marlin: X_CURRENT 1200 no Configuration_adv.h (mA RMS) com X_RSENSE 0.11, ou com a impressora ligada M906 X1200 e M500.
Passos perdidos, calor, micropassos e modos
| Sintoma | Causa provável | O que fazer |
|---|---|---|
| Camadas deslocadas em alta velocidade, rangidos | Corrente baixa demais, aceleração ou velocidade altas demais, correia frouxa | Suba a corrente em 10%, baixe a aceleração, confira a tensão das correias e os parafusos de fixação das polias |
| Deslocamentos depois de alguns minutos de impressão | O driver superaquece e desliga por um instante | Baixe a corrente, coloque dissipador e ventoinha nos drivers; o Klipper avisa dos erros de superaquecimento dos TMC |
| Motor pelando | Corrente alta demais para o motor | Baixe 10 a 20% e confira se ele não perde passos |
| A extrusora estala, subextrusão | Corrente da extrusora baixa demais, ou hotend frio ou entupido | Confira primeiro a temperatura e depois suba um pouco a corrente da extrusora |
| Todas as medidas erradas na mesma proporção | Os micropassos do firmware não batem com os pinos do driver | Iguale microsteps (ou X_MICROSTEPS no Marlin) aos jumpers ou ao ajuste por UART |
Segundo a documentação do Klipper sobre os TMC: o driver se desliga sozinho quando esquenta demais, e um motor quente demais perde torque e precisão.
- Micropassos: trazem suavidade, não precisão. 16 é o usual; os drivers TMC interpolam isso internamente para 256 (
interpolate: Trueé o padrão do Klipper), o que segundo o Klipper custa cerca de 0,006 mm num eixo com rotation_distance 40. Para a máxima precisão, o Klipper sugere spreadCycle,interpolate: Falsee 64 ou 128 micropassos. - StealthChop ou SpreadCycle: o StealthChop é quase silencioso; o SpreadCycle dá mais torque e precisão e aguenta melhor a velocidade. Um TMC2209 no modo standalone começa em StealthChop, o Klipper usa SpreadCycle por padrão, e o Marlin já vem com o StealthChop ligado em todos os eixos. Escolha um por eixo: o Klipper avisa que trocar de modo em movimento dá resultados ruins.
- Refrigeração: acima de cerca de 1 A RMS os drivers pedem um dissipador bem colado e uma ventoinha soprando em cima. Já o motor esquenta por natureza: ele recebe corrente mesmo parado.
Exemplo completo: a impressora inteira
Uma impressora cartesiana com motores de 1,8°, de 2,0 A no X e no Y, drivers TMC2209 com 16 micropassos, correias GT2 em polias de 20 dentes, um fuso T8 no Z e uma extrusora tipo BMG. Das seções anteriores: X e Y com 80 passos/mm, Z com 400, E calibrado em 425,2; 1,2 A RMS no X e no Y, ou seja, 1,7 V no potenciômetro no modo standalone. Os motores do Z e da extrusora recebem a própria corrente, de acordo com a corrente nominal de cada um.
Klipper (acrescente o uart_pin e os outros pinos da configuração de exemplo da sua placa):
[stepper_x]
microsteps: 16
rotation_distance: 40
[tmc2209 stepper_x]
run_current: 1.2
sense_resistor: 0.110
[stepper_z]
microsteps: 16
rotation_distance: 8
[extruder]
microsteps: 16
rotation_distance: 22.135
gear_ratio: 50:17
Marlin, compilado no Configuration.h e no Configuration_adv.h, ou enviado uma vez e gravado com M500:
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 425.205 }
#define X_CURRENT 1200
#define X_RSENSE 0.11
M92 X80 Y80 Z400 E425.205
M906 X1200 Y1200
M500
Erros comuns
- Calibrar X e Y com um cubo impresso. Calcule esses valores; calibre só a extrusora.
- Usar a relação anunciada da extrusora. O “3:1” de uma BMG é 50:17: coloque a relação real ou parta dos passos/mm do fabricante.
- Tratar um ajuste de TMC como pico. 2,0 A RMS num TMC são toda a corrente nominal de um motor de 2,0 A, sem folga, e mais do que um módulo de 0,110 Ω consegue ajustar (1,77 A).
- Ajustar a Vref só com o USB. A leitura pode sair errada, e num DRV8825 ou num TMC você pode não ler nada: ligue a fonte principal.
- Supor o valor dos resistores shunt. Clones do mesmo driver vêm com R050, R068, R100 ou R110: leia os da sua placa.
- Girar o potenciômetro de um driver em UART. Não muda nada; altere
run_currentouX_CURRENT. - Micropassos que não batem. Jumpers em 1/32 e firmware em 1/16 cortam cada movimento pela metade.
Segurança
- Desligue antes de mexer na fiação. Conectar um motor, um módulo driver ou um jumper com a placa ligada pode destruir o driver.
- Fontes ligadas na tomada. Quase toda impressora tem uma fonte de 127/220 V com bornes de parafuso: mantenha a tampa no lugar e o aterramento ligado, e mexa no lado de baixa tensão só com o plugue fora da tomada.
- Calor. Um motor muito quente pode amolecer as peças de plástico presas nele, como avisa a documentação do Klipper, e queimar os dedos. Drivers sem refrigeração desligam ou queimam: a ventoinha da placa faz parte do projeto.
- Peças em movimento. Teste os novos ajustes de corrente com as mãos longe das correias e das polias, e deixe o botão de emergência ou o interruptor ao alcance.
Perguntas frequentes
Quantos passos/mm para uma correia GT2 com polia de 20 dentes?
80 com um motor de 1,8° em 16 micropassos (rotation_distance 40 no Klipper). Uma polia de 16 dentes dá 100 (rotation_distance 32), e um fuso T8, 400 (rotation_distance 8).
Como calibro os passos da extrusora?
Marque o filamento 120 mm acima da extrusora, extrude 100 mm devagar com o hotend na temperatura e meça o que sobrou. Novo valor = antigo × 100 ÷ milímetros realmente extrudados: 415 × 100 ÷ 97,6 = 425,2. No Klipper, a rotation_distance é corrigida ao contrário: antiga × extrudados ÷ pedidos.
Que Vref usar num TMC2209 com motor de 2 A?
Com resistores shunt de 0,110 Ω, Vref = corrente RMS × 1,41: 1,7 V para 1,2 A RMS, 1,98 V para 1,4 A num módulo feito para isso. Acima de cerca de 1 A RMS o módulo precisa de dissipador e ventoinha.
A corrente nominal do motor é de pico ou RMS?
É a corrente por fase com as duas fases ligadas. Use como teto RMS num TMC e comece com 50 a 70% dela; num A4988 ou DRV8825 a Vref define o pico, então a mesma porcentagem dá cerca de 30% menos corrente.
A Vref importa se o TMC2209 está em UART?
Não. O Marlin passa o driver para a referência interna e usa X_CURRENT ou M906; o Klipper usa run_current. O potenciômetro é ignorado.
O motor precisa estar conectado enquanto meço a Vref?
Não precisa: a FYSETC manda desconectar, e a Pololu diz que não é necessário. O que importa é nunca conectar nem desconectar o motor com o driver ligado.
Por que meu motor perde passos?
Corrente baixa demais, aceleração alta demais, correia ou polia frouxa, ou um driver que superaquece e desliga. Se só acontece depois de um tempo, é calor: melhore a refrigeração ou baixe a corrente.
StealthChop ou SpreadCycle?
StealthChop para imprimir em silêncio em velocidades moderadas, SpreadCycle para torque e precisão em alta velocidade. O Klipper usa SpreadCycle por padrão; um TMC2209 standalone começa em StealthChop.
Fontes
- Documentação do Klipper: Rotation distance
- Documentação do Klipper: drivers TMC
- Documentação do Klipper: referência de configuração, [tmc2209]
- Documentação do Marlin: M92, passos por unidade
- Documentação do Marlin: M906, corrente dos motores
- Código do Marlin: Configuration_adv.h (X_CURRENT, X_RSENSE, StealthChop)
- Analog Devices (Trinamic): datasheet do TMC2209, rev. 1.08
- Texas Instruments: datasheet do DRV8825, descrição detalhada
- Pololu: placa driver A4988 (#1182)
- Pololu: placa driver DRV8825 (#2133)
- Pololu: como ajustar o limite de corrente das placas driver
- BIGTREETECH: módulo TMC2209
- BIGTREETECH: TMC5160T Pro V1.0
- FYSETC: Silent2209 (Vref, micropassos)
- Watterott: perguntas frequentes dos SilentStepStick
- Documentação da Voron: calcular a corrente dos drivers
- StepperOnline: 17HS19-2004S1
- LDO Motors: desenho do LDO-42STH48-2004AC
- Moons’: MS17HD6P4200
- Bondtech: extrusora BMG
- Rat Rig: extrusora LDO Orbiter v2.5
- LDO: configuração de firmware da Orbiter v2.0
- FYSETC: extrusora Sherpa Mini
- BIGTREETECH: SKR Mini E3 V3.0
- BIGTREETECH: Octopus