คอนโทรลเลอร์เครื่องพิมพ์ 3 มิติต้องทำสิ่งต่างๆมากมายอย่างรวดเร็วมาก การแสดงกลศาสตร์การเคลื่อนไหวและการเปลี่ยนแปลงการคำนวณขณะที่การส่งหลายพันแม่นยำตรงกันพัขั้นตอนต่อที่สองคือจริงๆยากจริงๆ 8 บิต AVR ของไมโครคอนโทรลเลอร์ที่ใช้ในตัวควบคุมเครื่องพิมพ์ 3D รุ่นเก่านั้นเป็นโปรเซสเซอร์ Mr Coffee ในช่วงปลายปี 1990 พวกเขาใช้เวลาอย่างเต็มที่ในการประมวลผลเพียงแค่ใช้ฟังก์ชั่นการพิมพ์ขั้นพื้นฐานในเครื่องพิมพ์แบบง่าย ๆ (เช่นคาร์ทีเซียน) และการเพิ่มภาระการคำนวณเพิ่มเติมจะทำให้พวกเขาชะงักและทำให้การทำงานช้าลง
"แต่เครื่องพิมพ์ 8 บิตของฉันทำงานได้ดี" คุณพูด ไม่เลย ประสิทธิภาพการพิมพ์ของคุณถูก จำกัด ไม่ว่าคุณจะเข้าใจหรือไม่ก็ตาม ตัวแบ่งส่วนข้อมูลจะซ่อนข้อบกพร่องด้านประสิทธิภาพของเฟิร์มแวร์จำนวนมากโดยอัตโนมัติจากคุณ ตัวอย่างเช่นการปฏิบัติมาตรฐานของการชะลอความเร็วในการพิมพ์ลงอย่างมากในขอบเขตส่วนใหญ่เป็นผลมาจากโปรเซสเซอร์ 8 บิตที่มีทรัพยากรไม่เพียงพอสำหรับสองสิ่ง:
- ทำการคำนวณการเร่งความเร็วศูนย์กลางสำหรับเส้นโค้งในส่วนของ gcode หลาย ๆ
- ติดตามการส่ง / การประมวลผล gcode และการวางแผนการเคลื่อนไหวสำหรับ gcode ที่มีเซ็กเมนต์ที่เล็กมากเช่นในรูปแบบอินทรีย์หรือส่วนโค้งที่ราบรื่น
เมื่อนำเสนอด้วยชุดของส่วนที่เล็กมากในส่วนโค้งเรียบหรือโค้งที่ซับซ้อนเฟิร์มแวร์ 8 บิตน่าจะทำให้หายใจไม่ออกในอัตราการประมวลผลคำสั่งที่จำเป็นและแนะนำการพูดติดอ่างกับการพิมพ์ การหยุดชั่วครู่สั้น ๆ อย่างไม่น่าเชื่อนี้ช่วยให้แรงดันตกค้างในเครื่องอัดรีดสามารถผลักพลาสติกออกมาได้บางส่วน ดังนั้นตัวแบ่งส่วนข้อมูลส่วนใหญ่จะกำจัดเส้นโค้งและรหัส gcode ออกโดยอัตโนมัติด้วยความละเอียดที่ลดลงเพื่อแบ่งเบาภาระให้กับเฟิร์มแวร์ แก้ไขปัญหาใช่มั้ย
แต่มีปัญหาอื่น - อัลกอริธึมการควบคุมการเคลื่อนไหว GRBL ซึ่งเป็นพื้นฐานสำหรับตัวควบคุมเครื่องพิมพ์ 3D โอเพ่นซอร์สที่สำคัญทั้งหมดได้รับการออกแบบด้วยทางลัดและแฮ็กจำนวนมากเพื่อให้ตัวประมวลผล 8 บิตทำงานเร็วพอ ตัวอย่างเช่นอัลกอริทึมพื้นฐานดูเฉพาะการเปลี่ยนแปลงความเร็วหรือความเร็วที่มุมระหว่างสองเซ็กเมนต์และใช้สิ่งนั้นเพื่อตัดสินใจว่าเมื่อใดที่จะชะลอตัว / เร่งตามทิศทางของการเคลื่อนไหว มันไม่ได้คำนวณหรือพิจารณาการเร่งความเร็วของศูนย์กลาง / รัศมี นี่เป็นแฮ็คที่มีประสิทธิภาพจริง ๆ เมื่อพิมพ์แบบจำลองที่มีความละเอียดต่ำ แต่มีความคลาดเคลื่อนบนกราฟที่ราบรื่นและมีเซ็กเมนต์เล็ก ๆ น้อย ๆ จำนวนมาก เฟิร์มแวร์ไม่ได้ตรวจจับการเปลี่ยนแปลงความเร็วที่เห็นได้ที่มุมของส่วนใดส่วนหนึ่งที่เกือบเป็นเส้นตรงภายในส่วนโค้งของเหลี่ยมเพชรพลอยและดังนั้นจึงไม่ช้าลงสำหรับเส้นโค้ง
ขอบเขตการพิมพ์ที่ไม่มีการเร่งความเร็วหมายถึงอัตราป้อนที่ได้รับคำสั่งต้องต่ำมากเพื่อให้ได้คุณภาพที่ดี เครื่องพิมพ์ส่วนใหญ่จะ จำกัด อยู่ที่ประมาณ 40 มม. / วินาทีหรือน้อยกว่าบนขอบเขตที่ซับซ้อนแม้ว่าจะสามารถทำงานได้ 80-120 มม. / วินาทีบน infill ที่มีความซับซ้อนต่ำก่อนที่จะ จำกัด ความเร็วอื่น ๆ
ระหว่างข้อ จำกัด อัตราการประมวลผลคำสั่งและข้อบกพร่องการวางแผนการเคลื่อนไหวที่ต้องการโดยตัวประมวลผลพลังงานต่ำความเร็วในการพิมพ์จะต้องต่ำกว่าในทางปฏิบัติมากกว่าที่จำเป็นโดยฟิสิกส์และฮาร์ดแวร์เครื่องพิมพ์อย่างเคร่งครัด ทั้งหมดนี้มาจากโปรเซสเซอร์ 8 บิต การแก้ปัญหาและแนวทางปฏิบัติที่ดีที่สุดในการจัดการกับปัญหานี้ได้รับการเจาะลึกลงไปในเครื่องมือและระบบนิเวศซึ่งผู้คนเพียงไม่กี่คนตระหนักว่ามีแม้แต่ปัญหา แต่เป็นข้อ จำกัด ที่สามารถเอาชนะได้: โปรเซสเซอร์ความเร็วสูงที่ใช้ตัววางแผนการเคลื่อนไหวที่เข้มงวดยิ่งขึ้นสามารถสร้างความเร็วในการพิมพ์โดยเฉลี่ยที่สูงขึ้นด้วยคุณภาพการพิมพ์ที่ดีขึ้น
ที่กล่าวว่าเฟิร์มแวร์ที่ใช้ ARM นั้นจะค่อยๆเคลื่อนไปยังผู้วางแผนการเคลื่อนไหวที่ก้าวหน้ากว่า นี่คือพื้นที่การพัฒนาที่ยิ่งใหญ่ในตอนนี้ที่จริงแล้วกำลังผลักดันการเปลี่ยนแปลงที่กำลังจะเกิดขึ้นจาก ARM ระดับล่างเช่น Cortex M3 ไปสู่โปรเซสเซอร์ที่เร็วยิ่งขึ้น จริงๆแล้วมันไม่ใช่ทั้งหมดที่ยากที่จะทำออกมาได้สูงสุดเนื่องจาก Arduino 84 MHz โดยการซ้อนทับกับฟีเจอร์เฟิร์มแวร์มากมาย
การใช้โปรเซสเซอร์ 8 บิตทำให้เครื่องพิมพ์ดังขึ้น ผู้บริโภคที่ใหญ่ที่สุดของเวลาตัวประมวลผลในเครื่องพิมพ์ 8 บิตทั่วไปคือการขัดจังหวะแบบสเต็ปซึ่งจะยิงจังหวะขั้นตอนเพื่อให้มอเตอร์เคลื่อนที่ เป็นเรื่องปกติสำหรับ> 60% ของรอบสัญญาณนาฬิกาทั้งหมดบน Atmega AVR เพื่อไปยังขั้นตอนการยิงพัลส์ เนื่องจากสิ่งนี้เกิดขึ้นเป็นอินเทอร์รัปต์งานประมวลผลอื่น ๆ ที่เครื่องพิมพ์ต้องดำเนินการ - เช่นการคำนวณการเร่งความเร็วและการควบคุมตัวทำความร้อน
หากไม่มีการออกแบบเฟิร์มแวร์อย่างระมัดระวังขั้นตอนพัลส์จะทำให้ "ทำงานได้ดี" อย่างสมบูรณ์เช่นฟังก์ชั่นการอัปเดตหน้าจอ LCD และการคำนวณการเร่งความเร็ว เพื่อให้อัตราการเคลื่อนไหวสูงขึ้นโดยไม่ต้องใช้ทรัพยากรตัวประมวลผลทั้งหมด 8 บิตเฟิร์มแวร์มีโหมดที่เรียกว่า "step doubling" ที่ยิงสองจังหวะ (หรือสี่หรือแปด) จังหวะพัลส์ต่อสเต็ปอินเตอเรเตอร์ ) สามารถใช้สเต็ปอินเทอร์รัปต์จำนวนมากเพื่อสร้างความเร็วในการเคลื่อนที่ที่เท่ากัน การปฏิบัตินี้จะขจัดคอขวดของโปรเซสเซอร์ แต่มันทำให้เกิดการเคลื่อนไหวของมอเตอร์ที่รุนแรงและดังขึ้นเพราะพัลส์ขั้นตอนจะถูกยิงด้วยการระเบิดมากกว่าที่จะเป็นความถี่คงที่ ผลที่ได้คือระดับไมโครสเต็ปของมอเตอร์จะตกไปที่โหมด coarser เมื่อสเต็ปเปอร์อินเตอร์รัคทำให้เกิดการดับเบิ้ลหรือควอดสี่เหลี่ยม ดังนั้นมอเตอร์จึงดังขึ้นแม่นยำน้อยลง
ผลข้างเคียงที่น่าสนใจคือถ้าคุณเปลี่ยนเครื่องพิมพ์ที่ใช้ Marlin จาก 1/16 microstepping เป็น 1/32 microstepping และให้ความเร็วในการพิมพ์เท่ากันเฟิร์มแวร์ก็จะเริ่มต้นเป็นสองเท่าลดระดับ microstepping ที่มีประสิทธิภาพของคุณกลับลงมาเป็น 1/16
เฟิร์มแวร์ที่ใช้ ARM นั้นใช้การเพิ่มเป็นสองเท่าในขั้นตอน แต่โดยทั่วไปแล้วอัตราขั้นตอนที่อนุญาตจะสูงขึ้นประมาณ 8 เท่าก่อนที่จะใช้การก้าวสองครั้ง / สี่เท่า นั่นอาจหมายถึงความเร็วที่สูงขึ้นและ / หรือการเคลื่อนไหวที่ราบรื่นขึ้น
ปัญหาอีกประการหนึ่งของ 8bit AVRs คือการขาดจุดลอยตัวของฮาร์ดแวร์และจำเป็นต้องใช้วงจรนาฬิกาจำนวนมากในการคำนวณที่มีความแม่นยำสูงหรือจัดการกับตัวเลขจำนวนมาก ฟังก์ชันการปรับระดับอัตโนมัติการคำนวณการเคลื่อนที่ด้วยจำนวนขั้นตอนที่สูงมากสำหรับเครื่องพิมพ์ขนาดใหญ่และฟังก์ชั่นขั้นสูงอื่น ๆ ใช้เวลานาฬิกาจำนวนมากในโปรเซสเซอร์ 8 บิต การออกแบบเฟิร์มแวร์ไม่ดีหรือการเพิ่มคุณสมบัติที่ต้องใช้รากที่สองและฟังก์ชันตรีโกณมิติเล็กน้อยจะทำให้โปรเซสเซอร์หยุดชะงัก ลักษณะการคืบและการขยายตัวของรหัสชนิดนี้ส่งผลกระทบต่อการทำงานของมาร์ลินอย่างจริงจังเมื่อเวลาผ่านไปเนื่องจากผู้คนต้องการ AVR รุ่นเก่ามากขึ้นเรื่อย ๆ
ในการเปรียบเทียบโปรเซสเซอร์ 32 บิตไม่เพียง แต่มีนาฬิกาที่เร็วขึ้นและรอบนาฬิกามากขึ้นเท่านั้น แต่ยังสามารถทำคณิตศาสตร์ที่ซับซ้อนมากขึ้นในรอบนาฬิกาน้อยลงเพราะมีฟังก์ชั่นการใช้งานฮาร์ดแวร์ที่ดูแลขั้นตอน 8 บิต โปรเซสเซอร์ต้องทำในซอฟต์แวร์
โปรเซสเซอร์ 8 บิตทำงานอย่างไร แน่นอนว่าพวกเขาทำงานได้ดีอย่างน่าประหลาดใจสำหรับสิ่งที่พวกเขาและสิ่งที่เราถามพวกเขา แต่พวกเขาจะ จำกัด ประสิทธิภาพและคุณสมบัติของเครื่องพิมพ์ 3 มิติที่ทันสมัยอย่างไม่ต้องสงสัย แม้แต่โปรเซสเซอร์ 32 บิตในปัจจุบันก็ยังได้รับการเพิ่มประสิทธิภาพสูงสุดด้วยเครื่องพิมพ์ความเร็วสูงและฟีเจอร์ที่หนักหน่วง โปรเซสเซอร์ 8 บิตมีอยู่แล้วสองชั่วอายุคนแล้วหลังสิ่งที่จะมีคุณสมบัติเป็นตัวควบคุมเครื่องพิมพ์ 3D "ทันสมัย"