Purpose

Advances in mechanical and computer engineering, along with the growth of open source software, have enabled 3D printers become mainstream enough to be used by hobbyists. 3D printers have the potential to revolutionize many fields by providing a quick and cheap prototyping platform. However, in order to effectively use them, printers must be configured properly. Configuration presents one of the biggest obstacles to working with 3D printers-- an obstacle this project will make easier to overcome.

Though there are many open source tools to power 3D printing technology, such as MachineKit, it is difficult for the typical user to get these tools to work. To add to the issue, builders must have a solid foundation in Mechanical Engineering, Real-time systems, and a MachineKit/LinuxCNC expert. The current process is very difficult for newcomers; along with building a printer, it requires setting up a complicated hardware configuration, along with correctly and tediously editing several “.hal” and “.ini” files in order for the printer to work properly. In addition to 3D printer software being difficult to configure, the text based adjustments allow more room for error. The result is a setup process that is needlessly difficult. The user must spend hours digging through documentation to readjust parameters. Combined with a lack of experience in programming or experience with Linux and having to do things in a slow BeagleBone Linux environment, the process can become especially unpleasant and/or difficult.

The team will create a software package that will allow hobbyists to configure and customize their own 3D printer and even other MachineKit powered devices with an easy to use graphical user interface (GUI). Using the software, it will be easier and more natural to properly configure a 3D printer. This will be accomplished by providing a GUI to sanely specify parameters. In addition to it being easier, it is also safer than working with plain text files. Remote communication will be added to the 3D printer hardware which will make it easy to change without having to tediously use the single board computer for small changes, especially in the prototyping stages.