Cara Kalibrasi Steps Per MM Mesin CNC dengan Akurat
Apa Itu Steps Per MM dan Kenapa Harus Dikalibrasi?
Salah satu parameter paling penting dalam mesin CNC adalah steps per mm.
Steps per mm menentukan berapa banyak pulsa step yang harus dikirim controller ke driver motor agar sebuah axis bergerak sejauh 1 milimeter.
Secara sederhana:
Controller tidak tahu 1 mm itu sejauh apa secara mekanis.
Controller hanya tahu:
“Saya mengirim sekian pulsa ke driver.”
Jumlah pulsa itulah yang kemudian diterjemahkan oleh:
-
motor stepper,
-
microstepping driver,
-
pulley dan belt,
-
leadscrew,
-
ballscrew,
-
atau sistem transmisi lainnya
menjadi gerakan linear.
Karena itu nilai steps/mm harus benar.
Jika tidak, semua ukuran hasil cutting akan ikut salah.
Misalnya software CAM memerintahkan:
X = 100 mm
tetapi mesin sebenarnya hanya bergerak:
98 mm
maka part yang seharusnya berukuran 100 mm akan menjadi lebih kecil.
Sebaliknya jika mesin bergerak:
103 mm
hasil cutting akan terlalu besar.
Masalah seperti ini sangat umum pada mesin CNC rakitan yang langsung menggunakan parameter default tanpa pengecekan.
Bagaimana Controller Mengubah Step Menjadi Gerakan?
Alurnya secara sederhana seperti ini:
G-code
↓
Controller
↓
STEP pulse
↓
Driver stepper
↓
Motor berputar
↓
Belt / leadscrew / ballscrew bergerak
↓
Axis berpindah
Controller tidak mengukur langsung berapa milimeter axis bergerak.
Pada sistem open-loop seperti GRBL/grblHAL dengan stepper biasa, controller mengasumsikan setiap pulse menghasilkan gerakan sesuai perhitungan.
Karena itu nilai steps/mm menjadi penghubung antara dunia elektronik dan mekanik.
Parameter Steps Per MM di GRBL / grblHAL
Pada konfigurasi standar GRBL, parameter utama adalah:
$100 = X steps/mm
$101 = Y steps/mm
$102 = Z steps/mm
Contoh:
$100=80.000
$101=80.000
$102=400.000
Artinya:
-
X membutuhkan 80 pulse per mm
-
Y membutuhkan 80 pulse per mm
-
Z membutuhkan 400 pulse per mm
Pada beberapa build grblHAL atau mesin multi-axis, axis tambahan bisa mempunyai parameter berbeda sesuai konfigurasi firmware.
Formula Dasar Steps Per MM
Secara teori:
Steps/mm =
(Motor steps per revolution × Microstepping)
÷
Jarak linear per satu putaran motor
Bagian yang berubah tergantung sistem transmisinya.
Untuk:
-
belt → gunakan jarak belt per putaran pulley
-
leadscrew → gunakan lead screw
-
ballscrew → gunakan lead ballscrew
Bedakan Pitch dan Lead
Ini penting terutama untuk screw.
Pitch adalah jarak antar ulir.
Lead adalah jarak maju nut dalam satu putaran screw.
Pada single-start screw:
Pitch = Lead
Tetapi pada multi-start screw:
Lead bisa beberapa kali lebih besar dari pitch
Contoh T8:
Pitch = 2 mm
4-start
Lead = 8 mm
Artinya satu putaran screw menggerakkan nut sejauh:
8 mm
Jadi untuk menghitung steps/mm, gunakan:
lead
bukan hanya pitch ulir.
Contoh 1 — Leadscrew T8 Lead 8 mm
Misalnya:
Motor = 200 steps/rev
Microstep = 1/16
Lead screw = 8 mm/rev
Maka:
Steps/mm = (200 × 16) ÷ 8
Hasilnya:
Steps/mm = 400
Jadi parameter teoritis:
$100=400
jika axis X menggunakan sistem tersebut.
Contoh 2 — Ballscrew SFU1605
SFU1605 biasanya mempunyai lead:
5 mm/rev
Jika motor:
200 steps/rev
dan driver:
1/16 microstep
maka:
Steps/mm = (200 × 16) ÷ 5
=
640 steps/mm
Jadi nilai teoritisnya:
640
Contoh 3 — Belt GT2 20T
Untuk sistem belt, kita terlebih dahulu menghitung jarak belt yang bergerak dalam satu putaran pulley.
Misalnya:
GT2 pitch = 2 mm
Pulley = 20 tooth
Maka:
2 mm × 20 tooth
=
40 mm/rev
Motor:
200 steps/rev
Microstepping:
1/16
Maka:
Steps/mm = (200 × 16) ÷ 40
=
80 steps/mm
Ini adalah nilai yang sangat umum pada mesin CNC belt drive menggunakan:
GT2 + pulley 20T + motor 1,8° + microstep 1/16.
Contoh 4 — Belt HTD 3M
Misalnya pulley:
20T
dan belt mempunyai pitch:
3 mm
Maka jarak per putaran:
20 × 3
=
60 mm
Dengan motor 200 step/rev dan microstep 1/16:
Steps/mm = 3200 ÷ 60
=
53,333 steps/mm
Jadi sistem belt yang berbeda dapat menghasilkan nilai steps/mm yang sangat berbeda.
Kenapa Nilai Teoritis Bisa Tidak Sama dengan Hasil Aktual?
Secara ideal, perhitungan teoritis harus menghasilkan gerakan yang tepat.
Tetapi mesin nyata tidak selalu ideal.
Beberapa faktor dapat menyebabkan perbedaan:
-
toleransi pitch belt,
-
toleransi lead screw,
-
pulley tidak presisi,
-
diameter efektif pulley berubah,
-
coupling fleksibel,
-
belt stretch,
-
backlash,
-
mounting kurang rigid,
-
frame flex,
-
atau kesalahan pengukuran.
Karena itu setelah menghitung nilai teoritis, lakukan kalibrasi aktual.
Tetapi ada satu catatan penting:
jangan menggunakan steps/mm untuk “menutupi” masalah mekanis.
Kalibrasi steps/mm hanya untuk memperbaiki scale error yang konsisten.
Apa Itu Scale Error?
Misalnya kamu memerintahkan:
100 mm
dan mesin bergerak:
99 mm
Kemudian:
200 mm
mesin bergerak:
198 mm
dan:
300 mm
mesin bergerak:
297 mm
Kesalahannya selalu sekitar:
1%
Ini adalah pola yang cocok dengan error steps/mm.
Tetapi jika hasilnya:
100 mm → 99,5 mm
200 mm → 200,3 mm
300 mm → 297 mm
error-nya tidak konsisten.
Kemungkinan masalah bukan hanya calibration.
Cara Kalibrasi Steps Per MM Secara Aktual
Untuk kalibrasi yang baik, ukur gerakan axis, bukan langsung ukuran part hasil cutting.
Kenapa?
Karena hasil cutting dipengaruhi juga oleh:
-
diameter tool,
-
runout spindle,
-
tool deflection,
-
backlash,
-
CAM compensation,
-
climb/conventional cutting.
Kalibrasi steps/mm sebaiknya dilakukan terhadap gerakan mekanis mesin terlebih dahulu.
Alat yang Dibutuhkan
Beberapa pilihan alat:
-
digital caliper,
-
dial indicator,
-
steel ruler,
-
meteran presisi untuk travel panjang,
-
gauge block jika tersedia.
Untuk travel sekitar 100–150 mm, digital caliper sangat praktis.
Untuk travel 300–1000 mm, steel ruler atau measurement fixture biasanya lebih mudah.
Dial indicator sangat bagus untuk mengecek gerakan pendek dan repeatability.
Step 1 — Periksa Mekanik Terlebih Dahulu
Sebelum mengkalibrasi:
-
pastikan pulley terkunci,
-
coupling tidak slip,
-
belt tidak terlalu longgar,
-
screw tidak macet,
-
bearing tidak oblak,
-
rail bergerak lancar,
-
tidak ada lost step.
Kalibrasi pada mesin dengan mekanik bermasalah hanya akan menghasilkan angka yang menyesatkan.
Step 2 — Lakukan Homing
Lakukan homing agar mesin mempunyai referensi yang jelas.
Pada GRBL/grblHAL:
$H
Jika mesin tidak menggunakan homing, kamu tetap dapat melakukan calibration secara relatif, tetapi penggunaan homing membantu menjaga prosedur tetap konsisten.
Step 3 — Cek Nilai Steps Per MM Saat Ini
Gunakan:
$$
Lalu cari:
$100
$101
$102
Contoh:
$100=400.000
$101=400.000
$102=800.000
Catat nilai awal.
Jangan langsung mengubah parameter tanpa mencatat setting sebelumnya.
Step 4 — Tentukan Jarak Pengujian
Semakin panjang jarak pengukuran, biasanya error pengukuran relatif semakin kecil.
Contoh:
Jika error membaca caliper sekitar:
0,1 mm
pada perjalanan:
10 mm
error relatifnya:
1%
Tetapi pada perjalanan:
200 mm
error yang sama hanya:
0,05%
Karena itu untuk axis X/Y, gunakan jarak seperti:
100–300 mm
jika travel mesin memungkinkan.
Untuk Z yang travel-nya pendek, gunakan jarak yang aman seperti:
20–50 mm atau lebih sesuai kemampuan mesin.
Step 5 — Gunakan Incremental Move
Misalnya ingin menguji X sejauh 100 mm.
Gunakan mode incremental:
G91
G1 X100 F500
Artinya:
bergerak +100 mm dari posisi sekarang.
Setelah test selesai, sebaiknya kembalikan ke absolute mode:
G90
Hal ini penting agar mode G91 tidak tertinggal dan menyebabkan command berikutnya menjadi incremental tanpa sengaja.
Step 6 — Ukur Jarak Aktual
Misalnya command:
100 mm
tetapi hasil pengukuran:
98,50 mm
Artinya mesin bergerak kurang jauh.
Berarti nilai steps/mm harus dinaikkan.
Formula Kalibrasi Aktual
Gunakan:
Steps/mm baru =
Steps/mm lama × Jarak diperintahkan
÷
Jarak aktual
Contoh:
Steps/mm lama = 400
Command = 100 mm
Aktual = 98,5 mm
Maka:
400 × 100 ÷ 98,5
=
406,09 steps/mm
Maka ubah:
$100=406.09
Kenapa Rumus Ini Bekerja?
Karena mesin bergerak terlalu pendek.
Nilai sekarang:
400 steps/mm
ternyata belum cukup menghasilkan 1 mm sebenarnya.
Jadi controller perlu mengirim sedikit lebih banyak pulse.
Hasil koreksi:
406,09 steps/mm
Sebaliknya jika mesin bergerak terlalu jauh, hasil perhitungan akan menurunkan nilai steps/mm.
Contoh Mesin Bergerak Terlalu Jauh
Misalnya:
Steps lama = 400
Command = 100 mm
Aktual = 102 mm
Maka:
400 × 100 ÷ 102
=
392,16
Nilai baru:
$100=392.16
Step 7 — Ulangi Pengukuran
Jangan percaya satu kali pengukuran.
Lakukan minimal:
3 kali
Misalnya:
Test 1 = 99,92 mm
Test 2 = 99,95 mm
Test 3 = 99,90 mm
Rata-rata:
99,923 mm
Hasil yang konsisten jauh lebih penting daripada satu pengukuran yang kebetulan tepat.
Step 8 — Ulangi untuk X, Y, dan Z
Kalibrasikan setiap axis secara terpisah.
Jangan berasumsi:
X = Y
hanya karena keduanya menggunakan komponen yang sama.
Secara teori mungkin sama.
Tetapi toleransi mekanik bisa membuat hasil aktual sedikit berbeda.
Parameter:
$100 → X
$101 → Y
$102 → Z
Haruskah X dan Y Berbeda?
Jika X dan Y menggunakan:
-
motor sama,
-
driver microstep sama,
-
pulley sama,
-
belt sama,
maka secara teori steps/mm harus sama.
Jika setelah kalibrasi kamu mendapat:
X = 80,05
Y = 80,10
perbedaan kecil masih masuk akal.
Tetapi jika:
X = 80
Y = 87
jangan langsung menyimpannya.
Ada kemungkinan:
-
pulley Y berbeda,
-
microstep driver berbeda,
-
belt salah,
-
pulley slip,
-
mekanisme macet,
-
atau metode pengukuran salah.
Perbedaan besar harus dicari penyebabnya.
Jangan Kalibrasi Berdasarkan Satu Jarak Saja
Cara yang lebih baik adalah menguji beberapa jarak.
Misalnya:
Command 50 mm
Command 100 mm
Command 200 mm
Jika hasilnya:
50 → 49,75
100 → 99,50
200 → 199,00
error sangat konsisten:
-0,5%
Ini indikasi kuat steps/mm perlu dikoreksi.
Tetapi jika:
50 → 49,7
100 → 100,1
200 → 198,3
ada kemungkinan masalah lain.
Bedakan Steps/mm dengan Backlash
Steps/mm memengaruhi skala gerakan.
Backlash memengaruhi perubahan arah.
Contoh:
Mesin diperintah maju:
100 mm
hasil:
100 mm
Kemudian balik:
-100 mm
tetapi tidak kembali persis ke titik awal.
Ini lebih mungkin backlash daripada steps/mm.
Jangan mengoreksi backlash dengan mengubah steps/mm.
Bedakan Steps/mm dengan Lost Step
Misalnya mesin awalnya bergerak tepat:
100 mm
tetapi setelah jogging agresif beberapa kali, posisinya berubah.
Ini bukan masalah scale calibration.
Kemungkinan motor mengalami:
lost step / missed step.
Penyebab bisa:
-
current terlalu rendah,
-
acceleration terlalu tinggi,
-
max speed terlalu tinggi,
-
axis macet,
-
cutting terlalu berat.
Kalibrasi steps/mm tidak akan memperbaiki lost step.
Bedakan Steps/mm dengan Belt Slip
Pulley yang longgar juga dapat menghasilkan hasil pengukuran aneh.
Contoh:
Test pertama:
99,8 mm
Test kedua:
97 mm
Test ketiga:
100,2 mm
Jika error berubah-ubah, curigai:
-
pulley slip,
-
coupling slip,
-
belt lompat,
-
lost step,
-
atau metode ukur tidak konsisten.
Error steps/mm biasanya lebih repeatable.
Belt Drive Memang Bisa Membutuhkan Koreksi
Secara teori GT2 20T pada 1/16 menghasilkan:
80 steps/mm
Tetapi pada mesin nyata kamu mungkin mendapatkan:
80,05
atau:
79,95
Koreksi kecil seperti ini masuk akal.
Namun jika harus mengubah:
80 → 90
itu terlalu besar untuk dianggap sekadar toleransi belt.
Periksa hardware terlebih dahulu.
Kalibrasi Ballscrew: Jangan Terlalu Cepat Mengubah Nilai
Ballscrew berkualitas baik biasanya mempunyai lead yang cukup konsisten.
SFU1605 teoritis pada 1/16:
640 steps/mm
Jika hasil aktual sangat jauh, misalnya perlu:
675 steps/mm
periksa dulu:
-
apakah ballscrew benar-benar 1605,
-
microstep driver,
-
motor 1,8° atau 0,9°,
-
coupling,
-
missed step,
-
setting elektronik.
Jangan langsung menganggap ballscrew mempunyai error 5%.
Motor 0,9° Mengubah Perhitungan
Tidak semua motor stepper mempunyai:
1,8°
Ada motor:
0,9°
Motor 0,9° mempunyai:
400 full steps/rev
bukan 200.
Misalnya SFU1605:
400 × 16 ÷ 5
=
1280 steps/mm
Jadi sebelum menghitung, cek spesifikasi motor.
Microstepping Juga Harus Benar
Misalnya perhitungan menggunakan:
1/16
tetapi driver sebenarnya berada pada:
1/8
maka steps/mm akan berbeda dua kali lipat.
Contoh belt GT2 20T:
1/16:
80 steps/mm
1/8:
40 steps/mm
Jika mesin bergerak setengah dari jarak command, salah setting microstep adalah salah satu hal pertama yang perlu diperiksa.
Apakah Semakin Tinggi Steps/mm Semakin Akurat?
Tidak.
Steps/mm adalah resolusi command, bukan jaminan akurasi mekanik.
Misalnya sistem memiliki:
640 steps/mm
maka satu pulse secara teoritis setara:
1 ÷ 640
=
0,0015625 mm
Tetapi bukan berarti mesin mempunyai akurasi:
±0,0015 mm.
Akurasi nyata dibatasi oleh:
-
backlash,
-
screw error,
-
microstep non-linearity,
-
frame flex,
-
bearing,
-
spindle runout,
-
endmill,
-
cutting force,
-
thermal expansion.
Jadi jangan memakai nilai steps/mm untuk mengklaim akurasi mesin.
Resolution, Accuracy, dan Repeatability Itu Berbeda
Ini konsep penting.
Resolution
Perubahan command terkecil yang dapat diberikan.
Misalnya:
1 step = 0,002 mm
Accuracy
Seberapa dekat posisi aktual terhadap posisi yang diperintahkan.
Command:
100 mm
aktual:
99,95 mm
Repeatability
Seberapa konsisten mesin kembali ke posisi yang sama.
Mesin bisa mempunyai resolution sangat tinggi tetapi accuracy buruk.
Atau accuracy cukup baik tetapi repeatability jelek karena backlash atau loose component.
Cara Kalibrasi yang Lebih Presisi Menggunakan Dial Indicator
Untuk axis Z atau gerakan pendek, dial indicator sangat berguna.
Misalnya pasang dial indicator sejajar dengan arah gerak X.
Zero indicator.
Kemudian command:
G91
G1 X10 F200
Jika indicator menunjukkan:
9,92 mm
kamu dapat menghitung correction.
Tetapi travel dial indicator biasanya pendek, sehingga lebih cocok untuk:
-
repeatability,
-
backlash,
-
short-distance calibration.
Untuk scale error panjang, gunakan measurement range yang lebih jauh.
Jangan Menggunakan Endmill sebagai Titik Ukur jika Bisa Dihindari
Mengukur posisi dari ujung endmill dapat menambahkan error akibat:
-
spindle runout,
-
tool tidak lurus,
-
diameter flute,
-
kesalahan membaca posisi.
Lebih baik gunakan bagian mekanis yang stabil seperti:
-
carriage,
-
gantry plate,
-
spindle body,
-
blok referensi khusus.
Tujuannya mengukur gerakan axis, bukan geometri endmill.
Kalibrasi Saat Cutting vs Tanpa Beban
Kalibrasi steps/mm dilakukan sebaiknya tanpa cutting load.
Tujuannya mengukur hubungan:
command → gerakan mekanis
Setelah itu barulah lakukan test cutting.
Jika gerakan mekanis sudah benar tetapi hasil part masih meleset, cari faktor lain:
-
tool diameter,
-
runout,
-
backlash,
-
CAM stock allowance,
-
deflection.
Contoh Kasus: Command 100 mm, Hasil 98 mm
Misalnya:
Current steps/mm = 80
Command = 100 mm
Actual = 98 mm
Hitung:
80 × 100 ÷ 98
=
81,6327
Set:
$100=81.633
Kemudian test ulang.
Jika sekarang:
99,95 mm
hasilnya sudah sangat baik.
Contoh Kasus: Command 500 mm
Menggunakan perjalanan lebih panjang biasanya memberi calibration lebih baik.
Misalnya:
Current = 80
Command = 500 mm
Actual = 498,5 mm
Maka:
80 × 500 ÷ 498,5
=
80,2407
Set:
$100=80.241
Kesalahan 1,5 mm dalam 500 mm terlihat besar, tetapi sebenarnya hanya sekitar:
0,3%
Pengukuran panjang membantu melihat scale error lebih jelas.
Berapa Toleransi yang Bagus?
Tidak ada satu angka yang cocok untuk semua CNC.
Untuk CNC router hobby berbahan:
-
aluminium extrusion,
-
HDPE,
-
belt,
-
leadscrew,
hasil gerakan sekitar:
±0,1 mm per 100 mm
sudah cukup baik untuk banyak pekerjaan kayu, acrylic, PCB ringan, dan produksi hobby.
Mesin yang lebih rigid dengan ballscrew dan linear rail dapat ditargetkan lebih baik.
Tetapi jangan mengejar angka calibration jauh lebih tinggi daripada kemampuan mekanis mesin.
Kalibrasi sampai:
0,001 mm
tidak berarti banyak jika backlash mesin:
0,2 mm
Kapan Steps Per MM Harus Dikalibrasi Ulang?
Lakukan pengecekan ulang jika mengganti:
-
motor stepper,
-
driver,
-
microstep setting,
-
pulley,
-
belt type,
-
leadscrew,
-
ballscrew,
-
coupling,
-
gearbox.
Kalibrasi ulang juga layak dilakukan jika:
-
ukuran cutting tiba-tiba berubah,
-
mesin selesai overhaul,
-
belt diganti,
-
pulley pernah longgar,
-
atau firmware/settings di-reset.
Jangan Lupa Simpan Setting
Setelah calibration selesai, simpan data seperti:
X = 80.050 steps/mm
Y = 80.025 steps/mm
Z = 400.210 steps/mm
Simpan juga parameter lain.
Misalnya screenshot atau backup:
$$
Ini sangat membantu jika controller:
-
diganti,
-
firmware di-flash ulang,
-
EEPROM ter-reset,
-
atau mesin perlu direstorasi.
Checklist Kalibrasi Steps Per MM
Sebelum calibration:
✓ Mekanik lancar
✓ Pulley terkunci
✓ Belt tidak slip
✓ Coupling tidak slip
✓ Microstep sudah benar
✓ Tidak ada missed step
Kemudian:
✓ Hitung nilai teoritis
✓ Masukkan nilai awal
✓ Gerakkan axis
✓ Ukur jarak aktual
✓ Hitung correction
✓ Test ulang
✓ Ulangi 3 kali
✓ Test beberapa jarak
✓ Kalibrasi X, Y, dan Z
Setelah itu lakukan:
✓ Test repeatability
✓ Test backlash
✓ Test cutting
Kesimpulan
Steps per mm adalah parameter yang menentukan hubungan antara:
pulse dari controller
dan
jarak gerakan mekanis CNC.
Formula dasarnya:
Steps/mm =
Motor steps/rev × Microstepping
÷
Jarak per putaran
Untuk belt:
Jarak per putaran =
Pitch belt × jumlah tooth pulley
Untuk leadscrew atau ballscrew:
Jarak per putaran =
Lead screw
Setelah mendapatkan nilai teoritis, lakukan pengukuran aktual.
Jika perlu koreksi:
Steps/mm baru =
Steps/mm lama × jarak diperintahkan
÷
jarak aktual
Tetapi ingat:
kalibrasi steps/mm hanya memperbaiki scale error yang konsisten.
Jangan menggunakan steps/mm untuk menutupi:
-
backlash,
-
lost step,
-
belt slip,
-
coupling slip,
-
frame flex,
-
atau masalah mekanis lainnya.
Urutan yang benar adalah:
Mekanik sehat
↓
Microstep benar
↓
Hitung steps/mm teoritis
↓
Ukur gerakan aktual
↓
Koreksi steps/mm
↓
Test repeatability
↓
Test backlash
↓
Test cutting
Jika semua langkah ini dilakukan dengan benar, ketika controller memerintahkan:
100 mm
mesin benar-benar bergerak sedekat mungkin dengan:
100 mm.
Dan dari sinilah fondasi akurasi dimensi mesin CNC mulai dibangun.





