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, Mk 2 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]

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

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

[Figure 7: 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. 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 WorkHorse...

Read more »

  • Mass Production Test with Y-Axis Conveyor Belt

    Swaleh Owais6 days ago 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

  • First Autonomous Print Queue Test

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

      I finally was able to use the machine to autonomously print a series of jobs. 

      I manually stitched together the G-code of different 3D parts as one file. Before the printer starts a new print, the print head homes itself by hitting all of the end stops. This turns the conveyor motor on and ejects the previous part.

      [Figure 1: Autonomously Printing Series of Parts]

      I uploaded the collated file to the 3D printer and successfully printed a series of parts.

      Two things should be improved with the system. 

      1. A person should be able to print a series of jobs without manually stitching the G-code files together. There should be some software application that allows users to make a queue of files to print. The software application should allow users to still edit/add/delete files from the queue after the queue has been sent to the printer.
      2. The G-code should be optimized for mass production printing. Right now the G-code forces the printer to cool down after every part is finished and then reheat for the next job. This drastically increases the total print time.

View all 19 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

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