Bộ điều khiển máy in 3D phải làm rất nhiều thứ rất, rất nhanh. Thực hiện các tính toán động học và động lực học trong khi gửi hàng ngàn xung bước được đồng bộ hóa chính xác mỗi giây thực sự rất khó khăn . Dòng vi điều khiển 8 bit AVR được sử dụng trong các bộ điều khiển máy in 3D cũ hơn về cơ bản là bộ xử lý Mr Coffee cuối những năm 1990. Chúng hoàn toàn, tối đa hóa tối đa thời gian của bộ xử lý, chỉ thực hiện các chức năng in cơ bản trong các máy in đơn giản (ví dụ Cartesian) và thêm tải tính toán bổ sung sẽ làm chúng chậm lại và gây chậm, nói lắp, tạm dừng, v.v.
"Nhưng máy in 8 bit của tôi hoạt động tốt," bạn nói. Không, nó không. Hiệu suất in của bạn bị giới hạn bởi nó, cho dù bạn có nhận ra hay không. Máy cắt giờ tự động che giấu rất nhiều thiếu sót về hiệu năng của phần sụn từ bạn. Ví dụ, thực tiễn tiêu chuẩn về việc làm chậm đáng kể tốc độ in trên chu vi phần lớn là kết quả của bộ xử lý 8 bit có tài nguyên không đủ cho hai điều:
- Thực hiện tính toán gia tốc hướng tâm cho các đường cong trên nhiều phân đoạn mã
- Theo kịp với truyền / xử lý gcode và lập kế hoạch chuyển động cho gcode với nhiều phân đoạn rất nhỏ, chẳng hạn như trong các mô hình hữu cơ hoặc các cung tròn trơn tru
Khi được trình bày với một loạt các phân đoạn rất nhỏ trong một đường cong mượt mà hoặc đường cong phức tạp, phần sụn 8 bit có thể sẽ bị nghẹt với tốc độ xử lý lệnh được yêu cầu và đưa ra tình trạng nói lắp vào bản in. Những lần tạm dừng cực kỳ ngắn này cho phép áp suất dư trong máy đùn đẩy ra một số nhựa thừa, tạo ra một chút zit trên bản in. Vì vậy, hầu hết các máy thái sẽ tự động xác định các đường cong và gcode đầu ra với độ phân giải giảm để giảm tải cho phần sụn. Vấn đề được giải quyết, phải không?
Nhưng có một vấn đề khác - thuật toán điều khiển chuyển động GRBL nằm dưới tất cả các bộ điều khiển máy in 3D nguồn mở chính được thiết kế với rất nhiều phím tắt và hack để cho phép bộ xử lý 8 bit thực hiện đủ nhanh. Ví dụ, thuật toán cơ bản chỉ xem xét sự thay đổi tốc độ hoặc vận tốc ở góc giữa hai phân đoạn và sử dụng thuật toán đó để quyết định khi nào nên giảm tốc / tăng tốc theo hướng chuyển động. Nó không tính toán hoặc xem xét gia tốc hướng tâm / hướng tâm nào. Đây là một cách hack thực sự hiệu quả khi in các mô hình hình hộp, độ phân giải thấp, nhưng nó thất bại thảm hại trên các đường cong mượt mà với nhiều phân đoạn nhỏ. Phần sụn không phát hiện bất kỳ thay đổi vận tốc đáng kể nào ở góc của bất kỳ hai đoạn gần tuyến tính nào trong đường cong mặt, và do đó không làm chậm đường cong.
In chu vi phức tạp không tương thích có nghĩa là tốc độ tiến dao được chỉ huy phải rất thấp để có chất lượng tốt. Hầu hết các máy in được giới hạn ở khoảng 40mm / giây hoặc ít hơn trên các vành đai phức tạp, mặc dù có thể chạy có lẽ 80-120mm / giây khi nạp vào độ phức tạp thấp trước khi đạt các giới hạn tốc độ khác.
Giữa các giới hạn tốc độ xử lý lệnh và các thiếu sót của trình hoạch định chuyển động được yêu cầu bởi các bộ xử lý công suất thấp, tốc độ in phải thấp hơn nhiều trong thực tế so với yêu cầu nghiêm ngặt của vật lý và phần cứng máy in. Tất cả điều này đến từ bộ xử lý 8 bit. Các cách giải quyết và thực tiễn tốt nhất để giải quyết vấn đề này đã bị cuốn sâu vào các công cụ và hệ sinh thái mà rất ít người nhận ra thậm chí còn có vấn đề. Nhưng đó là một giới hạn thực sự có thể vượt qua: bộ xử lý tốc độ cao chạy bộ lập kế hoạch chuyển động nghiêm ngặt hơn có thể tạo ra tốc độ in trung bình cao hơn với chất lượng in tốt hơn .
Điều đó nói rằng, các phần mềm dựa trên ARM chỉ đang dần chuyển sang các nhà hoạch định chuyển động tiên tiến hơn. Đây là một lĩnh vực phát triển lớn hiện đang thực sự thúc đẩy sự thay đổi sắp tới từ các ARM cấp thấp như Cortex M3 sang các bộ xử lý thậm chí còn nhanh hơn. Thực sự không khó để tối đa hóa Arduino 84 MHz bằng cách chồng chất lên một loạt các tính năng phần sụn.
Việc sử dụng bộ xử lý 8 bit cũng làm cho máy in trở nên LOUDER. Người tiêu dùng lớn nhất về thời gian xử lý trong một máy in 8 bit thông thường là ngắt bước tạo ra các xung bước để làm cho động cơ chuyển động. Nó khá điển hình cho> 60% tất cả các chu kỳ xung nhịp trên một Atmega AVR để đi đến các xung bước bắn. Bởi vì điều này xảy ra dưới dạng gián đoạn, các tác vụ xử lý khác mà máy in phải thực hiện - như tính toán gia tốc và điều khiển bộ gia nhiệt - bị nén vào khoảng trống ngắn giữa các sự kiện ngắt bước.
Nếu không có thiết kế phần sụn cẩn thận, các xung bước sẽ hoàn toàn "lấn át" các chức năng khác như cập nhật màn hình LCD và tính toán gia tốc. Để cho phép tốc độ chuyển động cao hơn mà không cần sử dụng tất cả tài nguyên bộ xử lý, các phần mềm 8 bit có chế độ gọi là "nhân đôi bước", tạo ra hai (hoặc bốn hoặc tám) bước xung trên mỗi bước gián đoạn để một nửa (hoặc một phần tư hoặc một phần tám ) vì nhiều ngắt bước có thể được sử dụng để tạo ra cùng tốc độ chuyển động. Cách thực hành này làm tắc nghẽn bộ xử lý, nhưng nó gây ra chuyển động động cơ mạnh hơn và to hơn vì các xung bước được bắn theo cụm thay vì tần số không đổi. Trong thực tế, mức độ vi bước của động cơ được giảm chức năng xuống chế độ thô hơn khi ngắt bước kích hoạt các bước kép hoặc bốn bước. Vì vậy, các động cơ trở nên to hơn, ít chính xác hơn,
Một tác dụng phụ thú vị là nếu bạn chuyển đổi máy in dựa trên Marlin từ bước micro 1/16 sang bước micro 1/32 và giữ nguyên tốc độ in, phần sụn sẽ đơn giản bắt đầu tăng gấp đôi, giảm mức bước vi hiệu quả của bạn xuống ngay 1/16.
Các phần mềm dựa trên ARM cũng sử dụng nhân đôi bước, nhưng tốc độ bước cho phép thường cao hơn ~ 8 lần trước khi sử dụng bước kép / quad. Điều đó có nghĩa là tốc độ cao hơn và / hoặc chuyển động mượt mà hơn.
Một vấn đề khác với các máy 8 bit là thiếu điểm nổi phần cứng và cần dành nhiều chu kỳ xung nhịp cho các tính toán có độ chính xác cao hoặc xử lý số lượng rất lớn. Động học Delta, chức năng tự động cân bằng, tính toán di chuyển với số bước cực cao cho máy in lớn và các chức năng nâng cao khác đều mất rất nhiều chu kỳ xung nhịp trên bộ xử lý 8 bit. Thiết kế phần sụn kém hoặc bất cẩn thêm một tính năng yêu cầu thêm một số căn bậc hai và chức năng trig hoàn toàn có thể làm hỏng bộ xử lý. Kiểu creep và mã hóa tính năng này đã ảnh hưởng nghiêm trọng đến hiệu suất của Marlin theo thời gian khi mọi người hỏi ngày càng nhiều hơn về bộ máy AVR cũ.
So sánh, bộ xử lý 32 bit không chỉ có xung nhịp nhanh hơn và chu kỳ xung nhịp nhiều hơn, nó cũng có thể thực hiện phép toán phức tạp hơn nhiều trong ít chu kỳ xung nhịp hơn, bởi vì nó có chức năng phần cứng chuyên dụng, đảm nhiệm nhiều bước 8 bit bộ xử lý phải làm trong phần mềm.
Bộ xử lý 8 bit có hoạt động không? Chắc chắn, họ làm việc tốt đáng ngạc nhiên cho những gì họ là và những gì chúng ta yêu cầu họ. Nhưng họ chắc chắn giới hạn hiệu suất và tính năng của máy in 3D hiện đại. Ngay cả thế hệ bộ xử lý 32 bit hiện nay cũng đã được tối đa hóa bằng máy in tốc độ cao và các tính năng nặng về toán học. Bộ xử lý 8 bit đã chậm hơn hai thế hệ so với bộ điều khiển máy in 3D "hiện đại".