Aziz Bench

Calcolo dei passi per mm

Passi per mm e rotation_distance di Klipper per cinghie, viti trapezie e a ricircolo di sfere, la calibrazione degli e-steps dell’estrusore e la frequenza di passo che la scheda deve generare. Con le righe pronte per Marlin e Klipper.

Passi per mm
80passi/mm
2 mm × 20 denti = 40 mm per giro · 200 passi interi × 1/16
rotation_distance
40 mm
Un microstep
12,5 µm
Frequenza di passo a 200 mm/s
16 kHz
Un giro del motore
40 mm per giro20 denti80 passi/mm
Cosa stai configurando
Motore e driver

200 per un motore da 1,8°, 400 per uno da 0,9°: l’angolo è sull’etichetta o nel datasheet.

Il valore impostato sul driver, con i jumper o nel firmware. Quasi tutte le schede lavorano a 1/16.

Lascia 1 e 1 se la puleggia o la vite è montata direttamente sull’albero del motore. Se una puleggia da 16 denti sul motore ne muove una da 80, inserisci 80 e 16.

Cinghia e puleggia
mm

La puleggia sul motore, o sull’ultimo ingranaggio. Spesso il numero è stampato sul fianco.

Asse e velocità
Asse
mm/s

Il movimento più veloce che prevedi su questo asse. Determina la frequenza di passo che la scheda deve generare.

La frequenza di passo che Marlin considera per ogni driver quando MAXIMUM_STEPPER_RATE non è impostato.

Risultati

Corsa per giro40 mm: passo 2 mm × 20 denti
Microstep per giro3200 = 200 passi interi × 16
Passi per mm80 = 3200 ÷ 40 mm
Risoluzione12,5 µm per microstep, 200 µm per passo intero
Frequenza di passo16.000 passi/s (16 kHz) a 200 mm/s
Limite del driver5 MHz per i driver TMC2xxx (in uso: 0,32 %); per il driver la velocità massima è 62.500 mm/s

Impostazioni del firmware

Marlin
M92 X80
M500

M500 salva il valore nella EEPROM. In Configuration.h va in DEFAULT_AXIS_STEPS_PER_UNIT.

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

Modifica la sezione in printer.cfg, poi invia RESTART.

Da sapere

I microstep aumentano la risoluzione, non la precisione. Ognuno dispone solo di sin(90° ÷ microstep) della coppia a passo intero (9,8 % a 1/16), e i motori hanno di solito una tolleranza di ±5 % di un passo intero, qui 10 µm.

Non correggere X, Y o Z misurando i pezzi stampati: la documentazione di Klipper lo sconsiglia. Con cinghie e viti il valore calcolato è esatto, quindi se un pezzo esce fuori misura la causa è un’altra.

Il processore può arrivare al limite prima del driver. Per questo Marlin, a frequenze alte, invia i passi a raffiche, e Klipper pubblica i benchmark della frequenza di passo per ogni processore.

Testo semplice, per i tuoi appunti o un forum.

Come si calcolano i passi per mm

Un motore passo-passo ruota di un angolo fisso a ogni passo: 1,8° sulla maggior parte dei motori, cioè 200 passi interi per giro, oppure 0,9° e 400 passi. Il driver divide ogni passo intero in microstep, di solito 16. I passi per mm sono i microstep di un giro divisi per la distanza che un giro fa percorrere all’asse.

passi/mm = passi interi per giro × microstep × rapporto ÷ corsa per giro
cinghia: corsa per giro = passo della cinghia × denti della puleggia
vite:    corsa per giro = passo del filetto × principi (l’avanzamento)

Esempio: una cinghia GT2 (passo 2 mm) su una puleggia da 20 denti avanza di 40 mm per giro. Con un motore da 1,8° a 1/16 fanno 200 × 16 ÷ 40 = 80 passi/mm, e ogni microstep sposta l’asse di 12,5 µm.

Configurazioni comuni

TrasmissioneCorsa per giro1,8° · 1/160,9° · 1/16Passo intero (1,8°)
Cinghia GT2, 16 denti32 mm1002000,16 mm
Cinghia GT2, 20 denti40 mm801600,2 mm
Cinghia GT2, 36 denti72 mm44,44488,8890,36 mm
T8 (Tr8x8)8 mm4008000,04 mm
Tr8x22 mm160032000,01 mm
Barra filettata M81,25 mm256051200,0063 mm
Vite a sfere SFU16055 mm64012800,025 mm
Vite a sfere SFU161010 mm3206400,05 mm

A 1/16 di microstep, senza riduzione. A 1/32 i passi per mm raddoppiano, a 1/8 si dimezzano.

Passo, avanzamento e principi di una vite

Il passo è la distanza tra due filetti; l’avanzamento è quanto si sposta la chiocciola in un giro. Su una vite a un principio, come una barra filettata o una Tr8x2, coincidono. Una vite T8 (Tr8x8) ha passo 2 mm e quattro principi, quindi avanza di 8 mm per giro: guardala in punta e vedrai quattro filetti separati. Le viti a ricircolo di sfere si indicano con diametro e avanzamento: una SFU1605 ha 16 mm di diametro e 5 mm di avanzamento.

La rotation_distance di Klipper

Klipper non usa i passi per mm. Chiede rotation_distance, la distanza che l’asse percorre in un giro completo del motore (o dell’ultimo ingranaggio, se è impostato gear_ratio), insieme a microsteps e full_steps_per_rotation. Per una cinghia è passo × denti, per una vite il suo avanzamento. Per convertire un vecchio valore: rotation_distance = passi interi × microstep ÷ passi/mm.

La documentazione di Klipper fa notare che quasi tutte le stampanti hanno una rotation_distance intera su X, Y e Z, per esempio 32, 40 o 8. Un valore con i decimali di solito indica un passo o un numero di denti sbagliato, a meno che le parti non siano MXL o in pollici.

Calibrare l’estrusore

  1. Porta l’hotend alla temperatura di stampa, così il filamento fonde e scorre liberamente.
  2. Fai un segno sul filamento 120 mm sopra il punto in cui entra nell’estrusore.
  3. Estrudi piano. Marlin: M83, poi G1 E100 F100. Klipper: G91, poi G1 E50 F60, e inserisci 50 mm come lunghezza richiesta.
  4. Misura di nuovo dall’ingresso al segno: 120 meno quella distanza è la lunghezza effettivamente estrusa.
  5. Inserisci le misure qui sopra e salva il nuovo valore: M92 E… e M500 su Marlin, rotation_distance su Klipper.
  6. Ripeti la prova se l’errore superava i 2 mm circa.

Microstep: risoluzione non vuol dire precisione

Più microstep rendono il movimento più fluido e silenzioso, non più preciso. Ogni microstep dispone solo di una parte della coppia, sin(90° ÷ microstep): circa il 20 % a 1/8 e il 5 % a 1/32, come spiega Monolithic Power Systems, quindi basta un po’ di attrito per fermare l’albero tra due microstep. I motori NEMA 17 più diffusi hanno una tolleranza di ±5 % di un passo intero. Driver come il TMC2209 interpolano internamente a 256 microstep, quindi 1/16 sull’ingresso di passo basta per un movimento fluido.

Altezza degli strati sull’asse Z

Con una vite T8 e un motore da 1,8°, un passo intero sposta Z di 0,04 mm. Le altezze multiple del passo intero (0,12; 0,16; 0,2; 0,24 mm…) mettono l’ugello dove il motore tiene meglio. Il calcolatore di Prusa spiega che se i motori si spengono su un microstep, l’asse può saltare al passo intero più vicino.

Frequenza di passo e velocità massima

Ogni millimetro al secondo costa passi al secondo: 200 mm/s a 80 passi/mm fanno 16.000 passi al secondo. Se non è impostato altro, Marlin considera 5 MHz per i driver TMC2xxx, 500 kHz per l’A4988, 250 kHz per il DRV8825, 150 kHz per il TB6600 e 15 kHz per il TB6560. Spesso il limite vero è il processore con il firmware, non il driver: Marlin invia i passi a raffiche alle frequenze alte, e Klipper pubblica i benchmark della frequenza di passo per ogni processore. Ridurre i microstep è il modo più semplice per abbassare la frequenza.

Calcolo della Vref dei driver passo-passo →

Fonti: documentazione di Klipper (Rotation distance), documentazione di Marlin (M92, impostazioni di movimento) e codice del planner, calcolatore RepRap di Prusa, Monolithic Power Systems sui microstep, pagina prodotto del TMC2209, pagina Bondtech del BMG, datasheet delle viti a sfere di Sorotec e datasheet di un motore 17HS4401.

Domande frequenti

Quanti passi per mm servono con una cinghia GT2 e una puleggia da 20 denti?

80 con un motore da 1,8° a 1/16 di microstep, 160 con un motore da 0,9°. In Klipper è rotation_distance: 40 con microsteps: 16. Una puleggia da 16 denti dà 100 passi/mm, rotation_distance 32.

Quanti passi per mm servono con una vite T8?

Una T8 (Tr8x8) avanza di 8 mm per giro, quindi un motore da 1,8° a 1/16 dà 400 passi/mm e la rotation_distance è 8. Una Tr8x2 a un principio dà 1600 passi/mm, rotation_distance 2.

Come si calibrano gli e-steps?

Fai un segno sul filamento 120 mm sopra l’estrusore, estrudi piano 100 mm con l’hotend in temperatura e misura quanto resta fino al segno. Nuovo valore = attuale × 100 ÷ millimetri effettivamente estrusi: per esempio 93 × 100 ÷ 95 = 97,89. Salvalo con M92 E97.89 e M500.

Devo correggere i passi per mm di X e Y dopo aver misurato un cubo stampato?

No. Con cinghie e viti il valore calcolato è esatto, e la documentazione di Klipper sconsiglia di correggere X, Y o Z misurando le stampe. Se un pezzo esce della misura sbagliata, controlla invece estrusione, tensione delle cinghie e impostazioni dello slicer.

Più microstep rendono la stampante più precisa?

Rendono il movimento più fluido, non più preciso. Un microstep dispone solo di sin(90° ÷ microstep) della coppia a passo intero, circa il 5 % a 1/32, e i motori hanno di solito una tolleranza di ±5 % di un passo intero. In più moltiplicano la frequenza di passo che la scheda deve generare.

Come converto i passi/mm nella rotation_distance di Klipper?

rotation_distance = passi interi per giro × microstep ÷ passi/mm. Con un motore da 1,8° (200 passi) a 1/16: 3200 ÷ 80 = 40. Per un estrusore a 415 passi/mm senza gear_ratio: 3200 ÷ 415 = 7,711. Se imposti gear_ratio il valore cambia: per un Bondtech BMG con gear_ratio: 50:17 è 22,679, come nella documentazione di Klipper.

Quali altezze di strato vanno bene con una vite T8?

Con un motore da 1,8° un passo intero sposta Z di 0,04 mm, quindi 0,04; 0,08; 0,12; 0,16; 0,20; 0,24; 0,28 e 0,32 mm sono multipli del passo intero. Con un motore da 0,9° il passo intero è di 0,02 mm.