Autonomous Infinite 3D Printing: WorkHorse 3D

The WorkHorse 3D Printer is an autonomous 3D printer that automatically ejects and starts print jobs.

Similar projects worth following
3D printing has the potential to democratize manufacturing and fabrication. However the capabilities of 3D printers are limited by requirement of human operation. The need of manual part removal prevents 3D printers from being used for mass production purposes. Therefore, the purpose of this project is to build a 3D printer that can print a constant stream of parts without user interaction. The finished machine is capable of independently ejecting and starting print jobs. Such a machine would allow any small business, organization, and person to leverage the power of a factory.

The Problem

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 prints, 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 product. Currently, their manufacturing capabilities are constrained by the constant need to manually remove/start print jobs If this task was automated, it would be easier for more companies to use 3D printing for volume manufacturing.

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 1: Problem Pitch Video]

The Solution

The purpose of this project is to build a fully automated 3D Printer: The WorkHorse 3D Printer. The WorkHorse 3D Printer will have some sort of manipulator that autonomously ejects finished print jobs from the printer. With this novel feature, the WorkHorse 3D Printer will be able to print a constant stream of print jobs without human intervention. This will be a breakthrough for the 3D printing industry. Automatic part ejection will improve the functionality and capability of 3D printers. Within the next few years, autonomous part ejectors will be as ubiquitous to 3D printers as paper ejectors are to paper printers.  

Features of WorkHorse 3D Printer(Mk 1 and Mk 2, Mk 3 in Progress!)

Automatic Part Ejector

Currently, the WorkHorse 3D Printer 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 2: Automatic Part Ejection Demonstration]

[Figure 3: UI Interface Demonstration]

[Figure 4: WorkHorse 3D Printer Mk. 2]

[Figure 5: Printing Queue of Parts Automatically]

Software interface

The WorkHorse 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 7: WorkHorse Print Queue Handle Interface]

[Figure 8: WorkHorse Print Queue Handle Interface with Print Jobs]

[Figure 9: WorkHorse Print Queue Handle Interface Settings Menu]

Key Objectives


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 WorkHorse 3D Printer should be able to print a wide variety of parts, for long periods of time, without breaking down.

Modular Design

There were over 250 000 3D printers sold last year[1]. There are multiple common 3D printer designs each with their own pros and cons. Every 3D printer would benefit from an automatic part ejector....

Read more »

  • Revisions for WorkHorse 3D Printer Mk3

    Swaleh Owais12 hours ago 0 comments

    I am currently developing a third iteration of the WorkHorse 3D Printer.

    In this revision, I am placing a special emphasis on building an industry grade machine. NO MORE DUCT TAPE! I am still working on the new design, but I am quite happy with how I simplified many of the components.

    To pay for the high quality machine, I am hoping to be able to use the Hackaday Funding.

    So if I am lucky enough to have a judge read this post, I implore them to consider the below details while selecting the top 20 candidates.

    • 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 two successful prototypes of the WorkHorse 3D Printer and a robust software application. Both prototypes were able eject a consistent stream of print jobs automatically. My software application provides users with a simple interface to send print jobs to the printer. By my no means is this project complete, but I am satisfied by my progress to date. I strongly believe that my next prototype will exhibit the drastic usefulness of automatic 3D print job ejectors. 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. I would know exactly how to spend the prize money, since I already have a refined parts list for building Mk. 3. 

    Also, I would like to thank everyone that liked my Hackaday entry for helping support this project.

    During the robotics module contest, I will attempt to turn my mechanism into an independent module.

    My next post will be on the CAD and design changes for Mk. 3.

  • Mass Production Test with Y-Axis Conveyor Belt

    Swaleh Owais04/15/2018 at 01:44 0 comments

         I printed a queue of parts on my integrated conveyor. The parts all printed and ejected successfully, but there were still some issues.

    [Figure 1: Printing Queue of Jobs with 3D Printer]

        I am currently printing on a roll of duct tape. While the print surface is fine, duct tape cannot withstand the high temperature of the nozzle. If the hot end touches the duct tape, the tape melts and fuses with the extruded plastic. This adhesion makes it more difficult for the part to be ejected later on.

    [Figure 2: Duct Tape Belt Damaged by Hot End]

        I plan on replacing the belt with a stainless steel shim.

  • Using Conveyor Belt as Y-Axis

    Swaleh Owais04/13/2018 at 06:53 0 comments

    I am now focused on simplifyng the design of the printer.

    I have moved from a Delta Design to a Cartesian Design. I am using the motion of the conveyor belt as the y axis. This design change reduces the number of motors needed for the mechanism.

    [Figure 1: Integrating Conveyor Belt Demo]

  • Revisions and Improvements for WorkHorse 3D Printer Mk. 2

    Swaleh Owais04/08/2018 at 02:09 0 comments

    I am now working on the second iteration of the WorkHorse 3D Printer. The new prototype will have several fundamental changes that should greatly improve the effectiveness of the design.

    I will be switching from a Delta design to a Cartesian design. I will replace the y axis linear actuator with a conveyor belt. The conveyor belt will be controlled by stepper motors that will provide y movement. This modification will simplify the design and reduce the number of separate mechanisms.

    Additionally, I will improve the software application and provide a G-code tool path viewer to users. I will also add a widget that allows users to send single lines of G-code through the interface.

  • Print Test with Software Application

    Swaleh Owais04/08/2018 at 02:01 0 comments

    I have ran my first test prints with the software application. The application successfully completed several print jobs autonomously.

    [Figure 1: Print Queue Test with Software Application]

  • WorkHorse 3D Printer Queue Handling Software

    Swaleh Owais04/08/2018 at 01:58 0 comments

    I have finished the first draft of the software application.

    The software application has an intuitive UI that allows users to add/edit/delete print jobs from a queue. The queue can be sent to the 3D printer via USB communication.

    The front end is a simple desktop app made with Electron.

    [Figure 1: UI Interface Main Menu with Print Jobs]

    [Figure 2: UI Interface Settings Menu]

    [Figure 3: UI Interface Main Menu]

    [Figure 4: Using Software Interface - Sending Print Jobs]

    [Figure 5: Using Software Interface - Finished Print Jobs]

    The back end is a python module that provides serial communication.

  • Sending G-code to 3D Printer with Python

    Swaleh Owais04/08/2018 at 01:39 0 comments

    I have wrote a simple python script that runs 3D print jobs.

    The code is quite simple. First, it establishes a serial connection to the 3D printer, with the Serial library. The program then sends the G-code file line by line to the 3D printer.

    The program has callbacks to check for sending errors.

  • Serial Communication with 3D Printers

    Swaleh Owais04/08/2018 at 01:35 0 comments

    It turns out 3D printers are configured to accept raw G-code.

    After connecting to a 3D printer via serial port, you literally send the exact G-code that you want the printer to follow. No additional parsing is required.

    This means I can literally just send the G-code of a file line by line to a 3D printer.

  • Building Software Application For WorkHorse 3D Printer

    Swaleh Owais04/08/2018 at 00:31 0 comments

      I am now developing a software application that will allow users to make a queue of print jobs for the WorkHorse 3D Printer. 

      The software application should have an intuitive interface that allows users to add/edit/delete jobs from the print queue. 

      The software should provide helpful real time metrics on the print jobs, such as print time, material usage, and G-code position.

      The project has three main components.

      1. I need a software module that will parse the G-code file. The module will read the G-code line by line and send the code to the 3D printer.
      2. I need some means of communicating with the 3D printer. Most likely, I will have a USB connection that allows a computer to communicate via serial port.
      3. I need an easy to use UI that has a sleek modern design. 

  • Autonomous Print Queue Improvements

    Swaleh Owais04/07/2018 at 21:39 0 comments

    I have added the shear to the front of the conveyor to ensure all parts are successfully removed. Additionally, I have cutout unnecessary lines from the G-code.

    [Figure 1: WorkHorse 3D Printer Part Ejection]

    The WorkHorse 3D Printer has successfully printed over 100 parts at this point

View all 20 project logs

Enjoy this project?



Reagan Susanto wrote 3 days ago point

This is great. Do you have any reason why the conveyor belt needed to be in that length? 

  Are you sure? yes | no

Swaleh Owais wrote 2 days ago point

Thanks a lot!

There's no particular need for the conveyor belt to be that long.

On Mk 3, I plan on reducing the conveyor belt length to 18 inches.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates