Cách thiết lập Marlin cho máy in 3D

Khám phá bí mật ẩn bên trong chiếc máy in 3D.

Hẳn các bạn đều biết dòng máy in 3D reprap là 1 dự án mã nguồn mở vậy ai cũng có thể có được mã nguồn của phần mềm điều khiển hay còn gọi là firmware, và vì nó là mã mở nên bất kỳ ai am hiểu về mã nguồn cũng có thể chỉnh sửa và tạo ra phiên bản phần mềm firmware của riêng mình.

Hôm nay chúng ta sẽ thử cùng tìm hiểu xem có bao nhiêu phiên bản firmware như thế được phổ biến trong thế giới in 3D nhé.

Dưới đây mình xin liệt kê một số firmware mà mình biết và sưu tầm trên mạng.

1. Marlin

Tên : Marlin

Tác giả : Erik van der Zalm

Ngày phát hành: tháng 11 năm 2011

Tính năng tiêu biểu:

  • Hỗ trợ tốc độ cao trên mỗi trục
  • Bảo vệ quá nhiệt tự động ngắt
  • Hỗ trợ endstop[ công tắc hành trình]
  • Hỗ trợ giao tiếp thẻ nhớ SD
  • Hỗ trợ màn hình LCD [20×4 và 16×4]
  • Hỗ trợ giao diện LCD xử lý in độc lập không cần kết nối máy tính
  • Lưu trữ các thiết đặt trên EEPROM
  • Hiển thị nhiệt độ, tọa độ theo thời gian thực

Bo mạch tương thích

  • RAMPS
  • RAMBo
  • RUMBA
  • Sanguinololu
  • Ultimaker’s Electronics version 1.0-1.5
  • Generation_6_Electronics
  • Generation 7 Electronics
  • Duemilanove 328P
  • Melzi and Melzi v2.0
  • Azteeg X1, Azteeg X3, and Azteeg X3 Pro
  • Megatronics [Megatronics 1.0, Megatronics 2.0, and Megatronics 3.0]

Đường dẫn tải firmware :

//github.com/MarlinFirmware/Marlin

2. Sprinter

Tên : Sprinter

Tác giả : Kliment, caru, tonok, tesla893

Ngày phát hành: tháng 2 năm 2012

Tính năng tiêu biểu:

  • Hỗ trợ giao tiếp thẻ nhớ SD
  • Điều khiển motor bước đầu in
  • Kiểm soát tốc độ các trục
  • Kiểm soát nhiệt độ đầu in và bàn nhiệt

Bo mạch tương thích

  • RAMPS
  • Sanguinololu
  • Teensylu
  • Ultimaker’s Electronics phiên bản 1.0-1.5

Đường dẫn tải firmware :

//github.com/kliment/Sprinter.git

3. Sailfish

Tên : Sailfish

Tác giả : Jetty

Ngày phát hành: tháng 2 năm 2012

Tính năng tiêu biểu:

  • Hỗ trợ giao tiếp thẻ nhớ SD
  • Điều khiển motor bước đầu in
  • Kiểm soát tốc độ các trục
  • High step rate [20 KHz]
  • Kiểm soát nhiệt độ đầu in và bàn nhiệt

Bo mạch tương thích

  • Compatible Electronics
  • Gen 3 + 5D3G shield [rrmbv12]
  • Gen 4
  • MightyBoard

Đường dẫn tải firmware :

//github.com/jetty840/Sailfish-G3Firmware

4. GRBL

Tên : GRBL

Tác giả : Simen Svale Skogsrud

Ngày phát hành: tháng 5 năm 2014

Tính năng tiêu biểu:

  • Chỉ hỗ trợ cho các máy phay CNC với hệ lệnh Gcode

Bo mạch tương thích

  • Arduino UNO

Đường dẫn tải firmware :

//github.com/simen/grbl.git

….

Updating !

Nguồn: biên tập thietbiketnoi.com

Xem thêm:

  • Máy in 3D là gì ?
  • Máy in 3D SLS là gì ?
  • Máy in 3d SLA là gì ?

  • Trang chủ
  • Tin tức

Chỉnh firmware Marlin để bật chức năng cân bàn tự động [Auto Bed Leveling]

Bạn mở file configuration.h trong source code firmware marlin, sửa dòng code:

// #define ENABLE_AUTO_BED_LEVELING

thành:

#define ENABLE_AUTO_BED_LEVELING

Kiểm tra để chắc chế độ cân bàn 4 điểm được bật:

  #define AUTO_BED_LEVELING_GRID

Bạn chỉnh tiếp các thông số như hình dưới:
 

toạ độ inductive sensor so với hotend nozzle đối với Z-probe các số trên là 0

X_PROBE_OFFSET_FROM_EXTRUDER là toạ độ cảm biến trừ toạ độ đầu in theo trục X, theo số liệu đo ở trên là 50mm.

Y_PROBE_OFFSET_FROM_EXTRUDER là toạ độ cảm biến trừ toạ độ đầu in theo trục Y, theo số liệu đo ở trên là -50mm.

Z_PROBE_OFFSET_FROM_EXTRUDER là độ lệch của cảm biến và đầu in, số này luôn là số âm và không lớn hơn 4mm nếu dùng cảm biến tiệm cận inductive sensor 4mm như trên. Bạn có thể nhập vào số bất kỳ chúng ta sẽ tính lại sau. Đề xuất nhập vào -1.

Các thông số còn lại không quan trọng, bạn có thể nhập như tôi.

Chỉnh các điểm cân bàn tự động

Chúng ta cần biết khổ in của máy in 3D, ở đây tôi sử dụng máy in 3D 3DMaker Starter, có khổ in là X 200mm, Y 180mm. Tôi sẽ cài đặt để cân bàn ở toạ độ như sau:

toạ độ cân bàn tự động trên máy in 3D kích thước X200mm x Y180mm

Khi đầu phun tại vị trí X = 10mm thì cảm biến nằm ở vị trí X = 60mm. Nhập vào LEFT_PROBE_BED_POSITION 60

Khi đầu phun ở vị trí X = 150mm thì cảm biến nằm ở vi trí X = 200mm vẫn trong phạm vi in được. Nhập vào RIGHT_PROBE_BED_POSITION 200

Khi đầu phun tại vị trí Y = 60mm thì cảm biến nằm ở vị trí Y = 10mm trong phạm vị in được. Nhập vào vào FRONT_PROBE_BED_POSITION 60

Khi đầu phun tại vị trí Y = 180mm thì cảm biến nằm ở vị trí Y = 130mm trong phạm vị in được. Nhập vào vào BACK_PROBE_BED_POSITION 130

Kết quả cài đặt như sau:

Lưu ý: cân bàn Z-probe các số là 0

AUTO_BED_LEVELING_GRID_POINTS chỉ ra số điểm trên mặt bàn cần cân [2^2].

Do sử dụng cảm biến NPN kích cực dương, nên cần chỉnh Z_MIN_ENDSTOP_INVERTING là true, như sau:

const bool Z_MIN_ENDSTOP_INVERTING = true;

nếu bạn dùng cảm biến PNP thì sửa lại thành false.

Sau khi chỉnh xong, bạn nạp firmware Marlin vào board Arduino hoặc board mạch chuyên dụng cho máy in 3D.

Tinh chỉnh thông số Z Probe bằng Pronterface

Vào phần mềm pronterface và kết nối với máy in 3D của bạn.

Gõ lệnh G28 trong box command line để về home các trục X, Y, Z.

Tiếp theo gõ lệnh G29 để thực thi lệnh cân bàn tự động.

Sau khi cân bàn xong bạn cần di chuyển đầu phun tới vị trị hiện tại của cảm biến tiệm cận. Ta đã biết cảm biến tiệm cận nằm cách đầu phun theo hướng X, Y là 50mm và -50mm nên ta sẽ dịch chuyển đầu phun theo trục X, Y lần lượt là 50mm và -50mm bằng cách sử dụng giao diện trên Pronterface.

Sau khi cân bàn xong gõ tiếp dòng lệnh M114 để xem tọa độ hiện tại của đầu in, bạn sẽ nhận được kết quả tra về tương tự:

ok C: X:60.00 Y:150.00 Z:1.00 E:0.00

Bạn cần lưu ý giá trị Z:1.00 đây là giá trị mà bạn nhập vào Z_PROBE_OFFSET_FROM_EXTRUDER ở trên.

Bạn sẽ thấy đầu phun cách khá xa mặt bàn, và không phải là 1mm. 

Tiếp theo ta cần tắt chế độ kiểm tra endstop để có thể di chuyển đầu phun xuống thấp hơn nữa. Gõ lệnh M120 để tắt kiểm tra endstop.

Bây giờ bạn cần sử dụng pronterface để di chuyển trục Z xuống từng 0.1mm. Đến khi nào bạn thấy đầu phun gần chạm mặt bàn và cách mặt bàn vừa đủ 1 tờ giấy A4 đi qua thì ngưng. Đánh tiếp lệnh M114 để xem toạ độ Z hiện tại.

ok C: X:60.00 Y:150.00 Z:0.20 E:0.00

chúng ta thấy giá trị Z bây giờ là 0.2. Vậy ta cần điều chỉnh lại thông số Z_PROBE_OFFSET_FROM_EXTRUDER = giá trị cũ - 0.2, tức là 1 - 0.2 = 0.8, vậy sửa lại trong file configuration.h:

#define Z_PROBE_OFFSET_FROM_EXTRUDER -0.8

Nạp lại firmware Marlin vào board lần nữa. Sau đó bạn có thể làm lại bước trên nếu cần.

Chỉnh GCODE start và end để bật chức năng cân bàn tự động

Start Gcode

Bạn thêm đoạn gcode sau vào trong file start.gcode để thực thi trước khi bắt đầu in:

G28 ; Homing X, Y, Z to 0.

G29 ; Auto bed leveling.

M120 ; Disable endstops check

Lệnh G28 để về home cả 3 trục.
Lệnh G29 thực thi chức năng cân bàn tự động.
Lệnh M120 để tắt chức năng kiểm tra endstop, để có thể di chuyển trục Z xuống thấp hơn endstop cảm biến tiệm cận.

End Gcode

Thêm đoạn gcode sau vào end.gcode để được thực thi sau khi đã in xong:

M121 ; Enable endstops check

Lệnh M121 dùng để bật lại chức năng kiểm tra endstop, dừng khi chạm endstop

Chủ Đề