Aziz Bench

Calculadora de passos por mm

Passos por mm e rotation_distance do Klipper para correias, fusos trapezoidais e de esferas, a calibração dos e-steps da extrusora e a frequência de passos que a sua placa precisa gerar. Com as linhas prontas para Marlin e Klipper.

Passos por mm
80passos/mm
2 mm × 20 dentes = 40 mm por volta · 200 passos completos × 1/16
rotation_distance
40 mm
Um micropasso
12,5 µm
Frequência de passos a 200 mm/s
16 kHz
Uma volta do motor
40 mm por volta20 dentes80 passos/mm
O que você está configurando
Motor e driver

200 para um motor de 1,8°, 400 para um de 0,9°: o ângulo está na etiqueta ou no datasheet.

Como estão configurados no driver, por jumpers ou no firmware. A maioria das placas trabalha em 1/16.

Deixe 1 e 1 se a polia ou o fuso estiverem no eixo do motor. Para uma polia de 16 dentes no motor acionando uma de 80, use 80 e 16.

Correia e polia
mm

A polia do motor, ou a da última engrenagem. Muitas vezes o número vem gravado na lateral.

Eixo e velocidade
Eixo
mm/s

O movimento mais rápido que você planeja neste eixo. Ele define a frequência de passos que a placa precisa gerar.

A frequência de passos que o Marlin assume para cada driver quando MAXIMUM_STEPPER_RATE não está definido.

Resultados

Curso por volta40 mm: passo 2 mm × 20 dentes
Micropassos por volta3.200 = 200 passos completos × 16
Passos por mm80 = 3.200 ÷ 40 mm
Resolução12,5 µm por micropasso, 200 µm por passo completo
Frequência de passos16.000 passos/s (16 kHz) a 200 mm/s
Limite do driver5 MHz para os drivers TMC2xxx: 0,32% usados, velocidade máxima de 62.500 mm/s até onde o driver permite

Configurações do firmware

Marlin
M92 X80
M500

M500 grava o valor na EEPROM. No Configuration.h ele vai em DEFAULT_AXIS_STEPS_PER_UNIT.

Klipper · printer.cfg
[stepper_x]
microsteps: 16
rotation_distance: 40

Edite a seção no printer.cfg e depois envie RESTART.

Bom saber

Micropassos aumentam a resolução, não a precisão. Cada um segura só sin(90° ÷ micropassos) do torque de passo completo (9,8% em 1/16), e os motores costumam ser especificados com ±5% de um passo completo, aqui 10 µm.

Não corrija X, Y ou Z medindo peças impressas: a documentação do Klipper desaconselha isso. Com correias e fusos o valor calculado é exato, então uma peça com a medida errada tem outra causa.

O processador pode chegar ao limite antes do driver. Por isso o Marlin envia os passos em rajadas em frequências altas, e o Klipper publica testes de frequência de passos para cada processador.

Texto simples, para suas anotações ou um post em fórum.

Como os passos por mm são calculados

Um motor de passo gira um ângulo fixo a cada passo: 1,8° na maioria dos motores, ou seja, 200 passos completos por volta, ou 0,9° e 400 passos. O driver divide cada passo completo em micropassos, normalmente 16. Os passos por mm são os micropassos de uma volta divididos pela distância que essa volta faz o eixo andar.

passos/mm = passos completos por volta × micropassos × relação ÷ curso por volta
correia: curso por volta = passo da correia × dentes da polia
fuso:    curso por volta = passo da rosca × entradas (o avanço)

Exemplo: uma correia GT2 (passo de 2 mm) em uma polia de 20 dentes avança 40 mm por volta. Com um motor de 1,8° em 1/16 são 200 × 16 ÷ 40 = 80 passos/mm, e cada micropasso move o eixo 12,5 µm.

Configurações comuns

TransmissãoCurso por volta1,8° · 1/160,9° · 1/16Passo completo (1,8°)
Correia GT2, 16 dentes32 mm1002000,16 mm
Correia GT2, 20 dentes40 mm801600,2 mm
Correia GT2, 36 dentes72 mm44,44488,8890,36 mm
T8 (Tr8x8)8 mm4008000,04 mm
Tr8x22 mm1.6003.2000,01 mm
Barra roscada M81,25 mm2.5605.1200,0063 mm
Fuso de esferas SFU16055 mm6401.2800,025 mm
Fuso de esferas SFU161010 mm3206400,05 mm

Em 1/16 de micropasso, sem redução. Em 1/32 os passos por mm dobram, em 1/8 caem pela metade.

Passo, avanço e entradas de um fuso

O passo é a distância entre dois filetes; o avanço é quanto a castanha anda em uma volta. Em um fuso de uma entrada, como uma barra roscada ou um Tr8x2, os dois são iguais. Um fuso T8 (Tr8x8) tem passo de 2 mm e quatro entradas, então avança 8 mm: olhe a ponta e você vai ver quatro filetes separados. Fusos de esferas são identificados pelo diâmetro e pelo avanço: um SFU1605 tem 16 mm de diâmetro e 5 mm de avanço.

A rotation_distance do Klipper

O Klipper não usa passos por mm. Ele pede a rotation_distance, a distância que o eixo percorre em uma volta completa do motor (ou da última engrenagem, quando gear_ratio está definido), junto com microsteps e full_steps_per_rotation. Para uma correia é passo × dentes; para um fuso, o avanço. Para converter um valor antigo: rotation_distance = passos completos × micropassos ÷ passos/mm.

A documentação do Klipper observa que quase todas as impressoras têm uma rotation_distance inteira em X, Y e Z, por exemplo 32, 40 ou 8. Um valor com casas decimais costuma indicar um passo ou um número de dentes errado, a não ser que as peças sejam MXL ou em polegadas.

Calibrando a extrusora

  1. Aqueça o hotend até a temperatura de impressão, para o filamento derreter sem esforço.
  2. Faça uma marca no filamento 120 mm acima do ponto em que ele entra na extrusora.
  3. Extrude devagar. Marlin: M83 e depois G1 E100 F100. Klipper: G91 e depois G1 E50 F60, e informe 50 mm como comprimento pedido.
  4. Meça de novo da entrada até a marca: 120 menos essa distância é o comprimento extrudado de fato.
  5. Informe os valores acima e salve o novo: M92 E… e M500 no Marlin, rotation_distance no Klipper.
  6. Repita o teste se a diferença passou de uns 2 mm.

Micropassos: resolução não é precisão

Mais micropassos deixam o movimento mais suave e silencioso, não mais preciso. Cada micropasso segura só uma parte do torque, sin(90° ÷ micropassos): cerca de 20% em 1/8 e 5% em 1/32, como explica a Monolithic Power Systems, então um pouco de atrito basta para o eixo parar entre dois micropassos. Os motores NEMA 17 mais comuns são especificados com ±5% de um passo completo. Drivers como o TMC2209 interpolam internamente para 256 micropassos, então 1/16 na entrada de passos é suficiente para um movimento suave.

Altura de camada no eixo Z

Com um fuso T8 e um motor de 1,8°, um passo completo move o Z 0,04 mm. Alturas iguais a um número inteiro de passos completos (0,12, 0,16, 0,2, 0,24 mm…) deixam o bico onde o motor segura melhor. A calculadora da Prusa explica que, se os motores forem desligados em um micropasso, o eixo pode pular para o passo completo mais próximo.

Frequência de passos e velocidade máxima

Cada milímetro por segundo custa passos por segundo: 200 mm/s a 80 passos/mm são 16.000 passos por segundo. Se nada mais for definido, o Marlin assume 5 MHz para os drivers TMC2xxx, 500 kHz para o A4988, 250 kHz para o DRV8825, 150 kHz para o TB6600 e 15 kHz para o TB6560. Muitas vezes o limite real é o processador com o firmware, não o driver: o Marlin envia os passos em rajadas em frequências altas, e o Klipper publica testes de frequência de passos para cada processador. Reduzir os micropassos é a forma mais simples de baixar a frequência.

Calculadora de Vref para drivers de motor de passo →

Fontes: documentação do Klipper (Rotation distance), documentação do Marlin (M92, configurações de movimento) e código do planejador, calculadora RepRap da Prusa, Monolithic Power Systems sobre micropassos, página do produto TMC2209, página da Bondtech sobre a BMG, datasheet de fusos de esferas da Sorotec e datasheet de um motor 17HS4401.

Perguntas frequentes

Quantos passos por mm tem uma correia GT2 com polia de 20 dentes?

80 com um motor de 1,8° em 1/16 de micropasso, 160 com um motor de 0,9°. No Klipper é rotation_distance: 40 com microsteps: 16. Uma polia de 16 dentes dá 100 passos/mm, rotation_distance 32.

Quantos passos por mm tem um fuso T8?

Um T8 (Tr8x8) avança 8 mm por volta, então um motor de 1,8° em 1/16 dá 400 passos/mm e a rotation_distance é 8. Um Tr8x2 de uma entrada dá 1.600 passos/mm, rotation_distance 2.

Como calibrar os e-steps?

Marque o filamento 120 mm acima da extrusora, extrude 100 mm devagar com o hotend na temperatura e meça o que sobra até a marca. Novo valor = atual × 100 ÷ milímetros extrudados de fato: por exemplo, 93 × 100 ÷ 95 = 97,89. Salve com M92 E97.89 e M500.

Devo corrigir os passos por mm de X e Y depois de medir um cubo impresso?

Não. Com correias e fusos o valor calculado é exato, e a documentação do Klipper desaconselha corrigir X, Y ou Z medindo impressões. Se uma peça sai com a medida errada, confira a extrusão, a tensão das correias e as configurações do fatiador.

Mais micropassos deixam a impressora mais precisa?

Deixam o movimento mais suave, não mais preciso. Um micropasso segura só sin(90° ÷ micropassos) do torque de passo completo, cerca de 5% em 1/32, e os motores costumam ser especificados com ±5% de um passo completo. Além disso, multiplicam a frequência de passos que a placa precisa gerar.

Como converter passos/mm na rotation_distance do Klipper?

rotation_distance = passos completos por volta × micropassos ÷ passos/mm. Com um motor de 1,8° (200 passos) em 1/16: 3.200 ÷ 80 = 40. Para uma extrusora a 415 passos/mm sem gear_ratio: 3.200 ÷ 415 = 7,711. Se você definir gear_ratio, o valor muda: para uma Bondtech BMG com gear_ratio: 50:17, é 22,679, como na documentação do Klipper.

Quais alturas de camada combinam com um fuso T8?

Com um motor de 1,8° um passo completo move o Z 0,04 mm, então 0,04, 0,08, 0,12, 0,16, 0,20, 0,24, 0,28 e 0,32 mm são números inteiros de passos completos. Com um motor de 0,9° o passo completo é de 0,02 mm.