Klipper A-Z phần 4: Hiệu chỉnh cơ bản - PID, E-steps và Bed leveling
Bài này mình sẽ hướng dẫn bạn chi tiết ba quy trình hiệu chỉnh quan trọng: PID tuning cho nhiệt độ ổn định, calibration rotation distance (tương đương E-steps) cho lượng dùn filament chính xác, và bed leveling để có lớp in đầu hoàn hảo.
Danh sách bài viết:
- Giới thiệu Klipper
- Chuẩn bị phần cứng và cài đặt Klipper
- Flash firmware và tạo file printer.cfg
- Hiệu chỉnh cơ bản
- Input Shaper và Pressure Advance
- Tạo macro Klipper cơ bản
- Khắc phục sự cố và bảo trì hệ thống
PID Tuning - Điều khiển nhiệt độ chính xác
Tại sao cần PID Tuning?
PID (Proportional-Integral-Derivative) là thuật toán điều khiển nhiệt độ tinh vi giúp hotend và bàn nhiệt duy trì nhiệt độ ổn định. Không giống như phương pháp bật tắt đơn giản, PID điều chỉnh công suất đầu ra một cách mượt mà để tránh dao động nhiệt độ.
Dấu hiệu cần PID tuning:
- Nhiệt độ vượt quá hoặc thấp hơn target 5-10°C khi đun nóng
- Dao động nhiệt độ liên tục trong quá trình in
- Thời gian đun nóng quá lâu hoặc không ổn định
- Chất lượng in bị ảnh hưởng do nhiệt độ không đều
Chuẩn bị trước khi PID Tuning
Đối với hotend:
- Đảm bảo hotend và bed ở nhiệt độ phòng
- Lắp đặt silicone sock (phần silicone bọc hotend) nếu có (để cách nhiệt tốt hơn)
- Home máy in và đặt nozzle ở giữa bàn in, cách bed khoảng 5cm
- Bật quạt part cooling 100% nếu thường xuyên sử dụng:
M106 S255
Đối với bàn in:
- Đảm bảo bed ở nhiệt độ phòng
- Lắp đặt kính hoặc tấm PEI như khi in thực tế
- Home máy in và đặt nozzle ở giữa bàn
- Bật quạt part cooling 100%:
M106 S255
Thực hiện PID Tuning cho Hotend
Bước 1: Mở giao diện Klipper (Mainsail/Fluidd) và truy cập console
Bước 2: Chạy lệnh tự động điều chỉnh PID cho hotend:
PID_CALIBRATE HEATER=extruder TARGET=215Lưu ý: Thay đổi TARGET phù hợp với filament bạn sử dụng nhiều nhất:
- PLA: 210-215°C
- PETG: 235-240°C
- ABS: 240-250°C
- ASA: 250-260°C
Bước 3: Quan sát quá trình calibration trong tab Temperature
Bước 4: Khi hoàn tất, console sẽ hiển thị kết quả tương tự:
// PID parameters: pid_Kp=22.857 pid_Ki=1.714 pid_Kd=76.307
// To use these parameters, update the printer config file with:
// control = pid
// pid_Kp = 22.857
// pid_Ki = 1.714
// pid_Kd = 76.307Bước 5: Lưu cấu hình:
SAVE_CONFIGThực hiện PID Tuning cho bàn nhiệt
Bước 1: Chạy lệnh PID calibration cho bed:
PID_CALIBRATE HEATER=heater_bed TARGET=60Lưu ý: Điều chỉnh TARGET theo nhu cầu:
- PLA: 60-65°C
- PETG: 70-80°C
- ABS: 80-90°C
Bước 2: Quá trình tương tự như hotend nhưng mất nhiều thời gian hơn do bàn nhiệt to hơn
Bước 3: Lưu kết quả:
SAVE_CONFIGCập nhật PID thủ công (nếu cần)
Nếu SAVE_CONFIG không hoạt động, bạn có thể cập nhật thủ công trong printer.cfg:
[extruder]
control = pid
pid_Kp = 22.857
pid_Ki = 1.714
pid_Kd = 76.307
[heater_bed]
control = pid
pid_Kp = 54.027
pid_Ki = 0.770
pid_Kd = 948.182Calibration Rotation Distance (E-steps)
Hiểu về Rotation Distance
Trong Klipper, rotation_distance thay thế khái niệm E-steps của Marlin. Đây là khoảng cách (tính bằng mm) mà trục di chuyển khi stepper motor quay một vòng đầy đủ.
Công thức chuyển đổi từ E-steps:
rotation_distance = (full_steps_per_rotation × microsteps) / steps_per_mmVí dụ với BMG Extruder (E-steps = 415):
rotation_distance = (200 × 16) / 415 = 7.711Cách làm
Bước 1: Chuẩn bị
- Đảm bảo extruder có filament và hotend đã được làm nóng
- Để min_extrude_temp = 0 nếu test ở nhiệt độ phòng:
[extruder]
min_extrude_temp: 0Bước 2: Đánh dấu filament
- Dùng bút lông đánh dấu trên filament cách đầu vào extruder khoảng 70mm
- Dùng thước cặp đo chính xác khoảng cách từ extruder body đến vạch:
<initial_mark_distance>
Bước 3: Thực hiện đùn nhựa bằng dòng lệnh
G91 ; Relative positioning
G1 E50 F60 ; Extrude 50mm tốc độ chậmQuan trọng: Dùng tốc độ chậm (F60) để tránh áp suất cao làm sai lệch kết quả
Bước 4: Đo kết quả
- Đo lại khoảng cách từ extruder body đến vạch:
<subsequent_mark_distance> - Tính khoảng cách thực tế:
actual_extrude_distance = initial_mark_distance - subsequent_mark_distanceBước 5: Tính rotation_distance mới
new_rotation_distance = current_rotation_distance × actual_extrude_distance / 50Bạn có thể sử dụng công cụ ở đây để tính cho nhanh: https://www.service-uplink.de/esteps_cal/calculator.php
Bước 6: Cập nhật cấu hình
- Mở printer.cfg và cập nhật giá trị rotation_distance trong section [extruder]
- Chạy
SAVE_CONFIGđể áp dụng - Lặp lại test để kiểm tra độ chính xác
Sử dụng lệnh tạm thời
Để test nhanh mà không cần restart:
SET_EXTRUDER_ROTATION_DISTANCE EXTRUDER=extruder DISTANCE=7.711Bed Leveling - Cân bằng bàn in
Paper Test - Phương pháp cơ bản

Chuẩn bị:
- Cắt một mảnh giấy nhỏ cỡ tấm thẻ ATM
- Đảm bảo nozzle và bed sạch, không có nhựa dư
- Bed và nozzle ở nhiệt độ phòng
Quy trình:
- Home máy in:
G28 - Tắt stepper motors:
M84 - Di chuyển nozzle thủ công đến các góc bed
- Điều chỉnh vít bed sao cho giấy có cảm giác "cào" nhẹ khi kéo
Auto Bed Leveling với BLTouch/CR Touch
Cài đặt và kết nối BLTouch
Kết nối phần cứng:
[bltouch]
sensor_pin: ^PC14 ; Z endstop pin với pullup
control_pin: PA1 ; Servo control pin
x_offset: -44 ; Khoảng cách từ nozzle đến probe (trục X)
y_offset: -6 ; Khoảng cách từ nozzle đến probe (trục Y)
z_offset: 2.0 ; Khoảng cách kích hoạt probe (sẽ hiệu chỉnh)
speed: 2
samples: 3
sample_retract_dist: 5.0Sử dụng probe làm Z endstop:
[stepper_z]
endstop_pin: probe:z_virtual_endstop
position_min: -2 ; Cho phép di chuyển âm khi calibrateKiểm tra và test BLTouch
Test cơ bản:
BLTOUCH_DEBUG COMMAND=pin_down ; Hạ probe pin
BLTOUCH_DEBUG COMMAND=pin_up ; Nâng probe pin
QUERY_PROBE ; Kiểm tra trạng tháiTest với ngón tay:
- Đặt toolhead xa bed
- Chạy
G28hoặcPROBE - Khi nozzle bắt đầu hạ xuống, dùng ngón tay chạm nhẹ vào probe pin
- Máy in phải dừng ngay lập tức
Hiệu chỉnh Z Offset
Nhập lệnh sau vào console:
PROBE_CALIBRATEKlipper sẽ:
- Probe tại vị trí hiện tại
- Di chuyển đầu in đến vị trí vừa đo
- Bắt đầu probe, màn hình mainsail sẽ hiện lên hướng dẫn để bạn điều chỉnh
- Sử dụng phương pháp paper test để điều chỉnh
ACCEPTđể lưu giá trịSAVE_CONFIGđể lưu vào file cấu hình
Tạo và sử dụng Bed Mesh
Cấu hình bed mesh:
[bed_mesh]
speed: 120
horizontal_move_z: 5
mesh_min: 35, 6 ; Điểm góc mesh (nên cách mép bàn in một khoảng nhỏ an toàn, tránh để 0, 0)
mesh_max: 240, 198 ; Điểm góc đối diện
probe_count: 5, 3 ; Số điểm probe (X, Y)Tạo mesh:
G28 ; Home trước
BED_MESH_CALIBRATE ; Tạo mesh mớiSử dụng mesh:
BED_MESH_PROFILE LOAD=default ; Load mesh đã lưuKiểm tra chất lượng mesh:
PROBE_ACCURACY ; Test độ lặp lại của probeKết quả tốt: standard deviation < 0.005mm
Test Print và điều chỉnh
Hiệu chỉnh lớp đầu tiên
Sau khi hoàn tất các hiệu chỉnh trên, thực hiện test print:
File test đơn giản: In một hình vuông 100x100mm, layer height 0.2mm, speed chậm (30-40 mm/s)
Dấu hiệu cần điều chỉnh:
- Under-extrusion: Các đường in không dính nhau, có khoảng trống, cần canh lại e-step hoặc tăng flow
- Over-extrusion: Nhựa bị thừa, tràn ra ngoài, cần canh lại e-step hoặc giảm flow
- Đầu in quá cao: Nhựa không dính bed, bị cuộn tròn, hạ đầu in xuống từ từ, mỗi lần khoảng 0.025 cho đến khi lớp đều
- Đầu in quá sát bàn: Nozzle cào vào bed, layer bị mỏng, nâng đầu in lên từ từ, mỗi lần khoảng 0.025 cho đến khi lớp đều
Kết luận
Việc hiệu chỉnh PID, rotation distance và bed leveling là nền tảng cho chất lượng in 3D tốt. Dành thời gian thực hiện cẩn thận các bước này sẽ giúp bạn có những bản in chất lượng cao và ổn định. Ở bài tiếp theo, chúng ta sẽ tìm hiểu các tính năng nâng cao của Klipper như Input Shaper và Pressure Advance để khai thác tối đa sức mạnh của firmware này.
Bài tiếp theo: Input Shaper và Pressure Advance