**NOTE: If you are hoping to get a quick overview of this project, please watch the videos list under Figure 1, Figure 2, and Figure 3.
[Figure 1: Demo of Automatic Infinite 3D Printer Mk. IV]
[Figure 2: Demo of Automatic Infinite 3D Printer Mk III]
[Figure 3: Purpose of Project with Automatic Infinite 3D Printer Mk III]
Even though 3D printing is a newly emerging technology, it has rapidly became mainstream in education, manufacturing and many other industries. 3D printers allow anyone to easily produce complex parts.
However, these machines have one critical flaw. After a 3D printer has finished printing a part, a person must physically go to the printer and remove the part from the print bed. A 3D printer cannot start its next print job, until the previous part is removed. This constraint cripples the productivity of 3D printers. If 3D printers could automatically eject their print jobs, then they could print out a constant stream of parts. The efficiency of the machine would drastically increase.
Many businesses already use 3D printers to manufacture products. Currently, their manufacturing capabilities are constrained by the need to manually remove/start print jobs. If this task was automated, it would be easier for more companies to complete volume manufacturing with 3D printers.
Personally, I work in a 3D printing lab that prints hundreds of parts for my fellow university students. From my position, it is obvious that this constraint significantly limits the number of print jobs our lab can complete per day.
[Figure 4: Problem Pitch Video]
The purpose of this project is to build a fully automated 3D Printer: The Automatic Infinite 3D Printer. The Automatic Infinite 3D Printer has a conveyor belt module that autonomously ejects finished print jobs from the printer. With this novel feature, the 3D Printer is able to print a constant stream of print jobs without human intervention. This is a breakthrough for the 3D printing industry. Automatic part ejection will improve the functionality and capability of 3D printers. Within the next decade, autonomous part ejectors will be as ubiquitous to 3D printers as paper ejectors are to paper printers.
Furthermore, the custom conveyor belt allows users to print infinitely in the y axis. This allows users to make a much wider variety of parts. The Automatic Infinite 3D Printer monitors print jobs with a computer vision program and a series of webcams. In the unlikely event that a print jobs fails, the machine will autonomously eject the failed print and restart the job.
I have built four successful prototypes of the Automatic Infinite 3D Printer (Mk. I, Mk. II, Mk. III, Mk. IV). The features of Mk. IV are detailed below. Mk I, Mk II, and Mk III are discussed in the Previous Prototypes section.
Over the past few years, people around the world have been empowered by rapid prototyping. Affordable CNC machines, allow anyone to easily put together a prototype. All of the cool hardware recently developed by makers, students, and startups is only possible because of easy access to these powerful machines. However, mass production still remain out of the reach of most people. Currently, makers can only mass produce by placing an order in an overseas factory. This process is expensive, time consuming and prone to error.
Building an affordable automatic 3D printer will open up whole new doors to hackers. An automatic 3D printer will allow any to wield the power of a factory. Once automatic 3D printers become mainstream, conveyor belt lines will not be exclusive to large companies. The technology will truly be democratized. Providing this tool to DIY enthusiasts will once again allow them to make amazing things.
This project will make it more feasible for tinkerers to transition from an idea to a bustling company. It will be easier for libraries, schools, and other organization to offer 3D printing services.
It will ensure that making once again reaches new heights.
Already, the 3D printing community seems excited about this project. My demo video for the Mk. III printer has received over 100 000 views.
I want hackers to easily be able to add this hack to their 3D printers. I am excited by the idea of makers setting up small scale factories. Making this technology easily accessible will lead to an explosion of what people can make with their 3D printers.
Therefore, the conveyor belt module is designed to be easily integratable with other 3D printers. All of the conveyor module components can be 3D printed. All of the electronics used are standard 3D printing electronics. This means that anyone with an opensource 3D printer is able to retrofit their machine with this mechanism.
[Figure 5: Iterative Design Process of the Automatic Infinite 3D Printer]
The iterative design process was critical for the success of this project. The Automatic Infinite 3D Printer has gone through four design revisions. As seen in Figure 8, the mechanism has changed drastically over the past months. In particular, design of the conveyor belt module received substantial attention. After presenting my project to industry experts at the McMaster Manufacturing Research Institute [Steven Remilli (P. Eng) and Brady Semple (P. Eng)], I received several helpful criticisms on how to improve the robustness of the module.
Answers to Judging Criteria Questions
- Is this a unique solution to a particular challenge facing the world today?
- 3D Printers have the potential to democratize manufacturing. Currently, mass production technology is only within the reach of large factories and businesses. Most hackers/makers lack the financial means and technological aptitude to use automation machinery. 3D printers are inexpensive and easy to use. Providing 3D printers with the ability to automatically eject/start print jobs would allow anyone to setup a small scale factory. Empowering tinkerers with this ability is sure to generate exciting and innovative hacks.
- How thoroughly documented were the design process & design decisions?
- I understand that this project is more likely to succeed with the help of the hacker community. Therefore, I am being completely transparent during project development. I am posting all notes, designs, and software online so that others can critique and improve my work.
- How easily can this design be implemented by other people in future projects?
- The project is completely open source. This will make it easy for others to incorporate my automatic print job ejection mechanism into other 3D printers. Furthermore, I am committed to making my automatic print job ejection mechanism into a single modular unit that can be easily attached to any 3D printer.
- How complete is the project?
- At this point, I have completed four successful prototypes of the Automatic Infinite 3D Printer, an intuitive user interface software application, and computer vision system. All four prototypes are able print a consistent stream of parts automatically. My third and fourth prototypes also have the unique property of an infinite build volume. My software UI provides allows users to easily send print jobs to the printer. The printer's custom computer vision system detects failed print jobs and increases the machine's level of autonomy. By my no means is this project complete, but I am satisfied by my progress to date. In my fifth prototype, my key goal is to raise the machining standards and tolerances of the mechanism. Being a university engineering student, I do not have the largest budget to spend on this project. I am hoping to use the Hackaday Prize money to pay for expenses. Moreover, I would like to focus on the computer vision system which is a recent addition to the project.
Features of the Automatic Infinite Printer Mk IV
Automatic Part Ejector
The Automatic Infinite 3D Printer has an integrated conveyor belt. The conveyor belt provides the y-axis movement and ejects finished print jobs.
[Figure 6: Automatic Infinite 3D Printer Mk. 3 Ejecting Print]
[Figure 7: Timelapse of Automatic Infinite 3D Printer Mk. III and UI Demonstration]
The Automatic Infinite 3D Printer has an easy to use software application. The application allows users to easily manage the print queue. Users can add/remove parts to/from the print queue, while the printer is running.
[Figure 8: Print Queue Handle Interface]
[Figure 9: Print Queue Handle Interface with Print Jobs]
[Figure 10: Print Queue Handle Interface Settings Menu]
Infinite Build Volume
[Figure 11: 3D Printing a Child Size Cricket]
The 3D Printer can be reoriented to print at a 45 deg angle. By printing at an angle, the 3D printer obtains infinite movement in the Y-Axis. This allows the 3D printer to produce extremely long parts.
**NOTE: The 3D printer is more than capable of printing an adult size cricket bat. However, at this stage of the project I only had 24 hours before the contest deadline. A full scale cricket bad would take just under 48 hours to print. I had to scale the bat down to ensure that I could submit the project on time.**
Part Failure Detection with Computer Vision Techniques
Like all other 3D printers, the Automatic Infinite 3D printer has a small chance of failing while printing a part. Most often, print failure is caused by the print catching on the extruder and detaching from the bed during the print process. Therefore, the Automatic Infinite 3D Printer has an automated system that detects if a part has detached from the print bed.
This system has only recently been added to the machine and is still being tinkered with. Also, the system can only detect part failure when the printer is in infinite printing mode.
[Figure 12: Demonstrating of Frame Differencing with OpenCV]
Currently, the printer uses a frame difference algorithm to detect if the part has detached from the print bed. Essentially, the program compares subsequent video frames to determine if there was any movement in the select region.
Figure 12 demonstrates a Python program that uses frame differencing to detect hand movement. If the algorithm detects that the printjob is moving in the X-axis, it will flag the printer and kill the print job. The algorithm is not highly accurate and requires the part to move a considerable amount to trigger the system. As seen in the demo video, other alternatives using Canny Edge detection are being explored.
Key Objectives While Completing this Project
This machine is intended for mass production purpose. Ideally, the machine would run 24/7 outputting a constant stream of print jobs. Of course, scheduled breaks would have to be programmed into operation to prevent overheating. But the machine should reflect its name. The Automatic Infinite 3D Printer should be able to print a wide variety of parts, for long periods of time, without breaking down.
There were over 250 000 3D printers sold last year. There are multiple common 3D printer designs each with their own pros and cons. Every 3D printer would benefit from an automatic part ejector. Ideally this project would produce an automatic part ejector that could be easily integrated into a variety of 3D printer designs. The automatic part ejector used in the Automatic Infinite 3D printer should be modular so that it is easy for other 3D printers to incorporate the mechanism.
Easy to Use
I3D should have an intuitive software application that allows users to manage the print job queue. Users should have the ability to edit/delete/add print jobs while the 3D printer is running. Additionally, the Automatic Infinite 3D printer should be simple to maintain and recalibrate.
*NOTE: The working name for this project was previously the WorkHorse 3D Printer. The name was changed to the Automatic Infinite 3D Printer so that it would be easier for readers to understand the purpose of the project.*
Schematics and Input/Output Requirements
The Automatic Infinite 3D Printer follows a standard opensource configuration. All components of the machine run on a 24V DC circuit. The machine has an input of 110V.
Automatic Infinite 3D Printer Mk II is a Cartesian 3D printer with a conveyor belt for the bed. The conveyor belt provides both the y axis movement and ejection system. A major upgrade in Mk. II is the simplicity of the new design. Many features of Mk. I have been simplified with more elegant solutions.
[Figure 13: Automatic Infinite 3D Printer Mk. II]
[Figure 14: Printing Queue of Parts Automatically]
Automatic Infinite 3D Printer Mk. 1 is a Delta 3D Printer with an automatic conveyor belt. Whenever the printer finishes a print job, the conveyor belt rolls the part away and the printer begins another print job.
[Figure 15: Automatic Part Ejection Demonstration]
[Figure 16: UI Interface Demonstration]
Use of Funds
I hope to use the Hackaday Funds to build a fifth prototype Automatic Infinite 3D Printer. With additional funding, I will be able to place an emphasis on high quality manufacturing. My main focus on the fourth prototype will be to improve the manufacturing quality and engineering tolerance of the machine. Additionally, I would like to further explore the computer vision component of the project and using computer vision to automate 3D printing. I would also like to simplify the design of the Automatic Infinite 3D Printer so that it is easier for others to replicate. I hope that the Automatic Infinite 3D Printer will soon become part of the Rep Rap community.
Open Source and Licencing
The Automatic Infinite 3D Printer is open source. The Print Queue Software is distributed under the MIT Permissive Free Software License. All CAD files are available on GrabCAD.
Wohlers Associates. (2017). Wohlers Report 2017. Fort Collins, CO. [Electronic]. Available: https://wohlersassociates.com
**NOTE: No Gerber files were needed during this project since I do not have access to a PCB mill, all circuits remained breadboard based**