Greenonline và tôi đã dành buổi tối này để hack / đảo ngược kỹ thuật Ender3 để giải quyết vấn đề này. Greenonline cũng đã viết về điều này trong blog của mình .
Bước 1 - Nhận phần sụn
Để làm điều này, về cơ bản có hai cách:
- Tìm phần sụn sẵn sàng để sử dụng
- Làm của riêng bạn
Biến thể 1 sẽ sử dụng các tệp .hex được cung cấp trước từ Creality hoặc một số nhà sản xuất khác. Biến thể 2 có nghĩa là tự viết các cài đặt hoặc sử dụng phần mềm Repetier để ghi các tệp cho bạn. Trong trường hợp của Ender 3, con chip đã sử dụng phần mềm Repetier bị loại một cách đáng buồn, do đó, tự viết nó là lựa chọn duy nhất.
Để tự viết firmware hoặc sử dụng firmware Repetier, bạn cần cài đặt cũ. Để có được những thứ này, hãy kết nối máy in qua USB, kết nối nó với một phần mềm như máy chủ Repetier và gửi M503
để nhận tất cả các cài đặt.
Bây giờ, hoặc hack chúng vào firmware Repetier hoặc sử dụng một Marlin.ino
IDE trống và Arduino để tùy chỉnh nó. Trong trường hợp sau, bạn cần đặt thư mục Marlin-?.?.X.ZIP/Marlin-?.?.X/Marlin
vào Arduino
thư mục trong Documents (Windows) hoặc Home (Mac). Bây giờ hãy mở Marlin.ino
trong Arduino IDE . Thiết lập chương trình cơ sở mới với các cài đặt cơ sở này hoặc điều chỉnh khi cần.
Bước 2 - Điều chỉnh
Bây giờ chúng tôi có các tệp Cấu hình của chúng tôi (cuối cùng chúng tôi đã bỏ qua bước 1 và lấy một cái phù hợp ( tiếng Đức! ) Từ Christian , một nhà sản xuất người Đức còn được gọi là "Chaos-Drucker"), trước tiên chúng tôi cần điều chỉnh chúng khi cần để phù hợp với nhu cầu của chúng tôi và sau đó biên dịch chúng đúng cách (bước tiếp theo!). Là một cơ sở thay thế ( tiếng Anh! ) Để làm việc, phần mềm TH3D cũng có sẵn, được cung cấp bởi Hooglands và nhóm tại TH3D.
Vì vậy, chúng ta hãy mở của bạn Marlin.ino
với Arduino và tìm ra X_MIN_POS
( CTRL
+ F
> X_MIN_POS
> Tìm kiếm tất cả các bản phác thảo).
Trong các cấu hình, chúng tôi đã lấy tệp phác thảo Configuration.h
chứa các dòng 786-789 (có thể khác nhau) :
// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS -10
#define Y_MIN_POS -15
#define Z_MIN_POS 0
Điều chỉnh những điều này cho đến khi đạt được vị trí mong muốn - Repetier Host có thể giúp bạn xác định đúng vị trí.
Bước 3 - Biên dịch
Bước khó nhất với Ender3 là lấy mã để thực sự biên dịch, vì nó sử dụng ATmega1284P 16Bit không được hỗ trợ bởi Arduino nguyên bản. Mặc dù MightyCore hỗ trợ chip này, nhưng nó không biên dịch với thư viện phần cứng này. Tuy nhiên, Christian đã nhận ra rằng Sanguino đặt thành ATmega 1284P 16bit không hoạt động. Chúng thuộc các thư mục được trích xuất vào Arduino/hardware
thư mục, thường là trong Tài liệu của bạn (nếu bạn sử dụng Windows) hoặc Home (trên mac). Bây giờ, chúng tôi đã thiết lập Tools>Board:> Sanguino
vàTools>Processor:>ATmega1284 or ATmega1284P (16 MHz)
Nó cũng bắt buộc phải cài đặt U8glib.h cho Arduino . Để thực hiện việc này, hãy tải xuống zip từ github, sau đó trong phần mềm Arduino Sketch>Include Library>Add .ZIP Library...
và chọn toàn bộ kho zip để tự động cài đặt.
Với các cài đặt này, chúng tôi có thể biên dịch các cài đặt.
Bước 4 - Bắt máy
Hầu hết mọi người sẽ đọc về bootloader và flash ngay bây giờ, và thực sự đó là một lựa chọn. Nhưng như tôi vừa tìm ra cách cài đặt firmware từ .hex và vì vậy tôi tự hỏi: Chúng ta có thể tạo các tệp .hex từ cài đặt của mình không? Và vâng, Arduino hỗ trợ điều này .
Vì vậy, trong Arduino IDE nhấn Ctrl
+ Alt
+ S
(hoặc Sketch > Export Compiled Binary
). Điều này sẽ dẫn đến hai tệp:
Marlin.ino.sanguino.hex
Marlin.ino.with_bootloader.sanguino.hex
Trong số hai, đây Marlin.ino.sanguino.hex
là một trong những thú vị cho "nhấp nháy trực tiếp" thông qua CURA. Sử dụng tệp này với quy trình bắt đầu từ Bước 2 tại đây hoặc sử dụng một trong các giải pháp của Greenonline để flash firmware - không cần bộ tải khởi động!