Project Information

Learn about our project and its objectives.

Download our project archive
Our client, Dr. Tom Daniels, wanted to repurpose an old three-axis positioning system into a 3D printer. While building a DIY (do it yourself) printer is a challenging task in itself, molding this positioning system into a 3D printer was a great undertaking. The large size of the positioning system allows for a large print area, a positive in terms of printing, but a headache in terms of design. The positioning system we were given was over twenty years old, making interfacing between the software and the hardware much more difficult since it was a fairly outdated piece of machinery in terms of today.

Download Project Proposal

The goal of this project was to construct a fully functional 3D printer. This goal is fairly vague on the surface, so it is important to define the terms of a fully functional printer, which are as follows:

-The printer is able to load three dimensional models

-The printer is able to print the loaded models

-The models are printed to optimum accuracy, which is only limited by the positioning system’s minimum step size

-The printer is durable, meaning that it will remain fully functional after multiple prints without needing constant upkeep and modification

-The entire system is user friendly to the point where individuals with no prior knowledge of 3D printing will be able to successfully print their desired model(s)

Along with this set of guidelines, it was important that we allow for the system to undergo future expansion and/or modification. This particular positioning system has been used in prior projects before us, and it is likely that at some point the positioning system will be repurposed for another use. With this in mind, we wanted to ensure that no modifications done to the positioning system would hinder any further efforts or opportunities for it to be used elsewhere in the future.

System Overview

Learn about the key components of our custom 3D printing system.

When we first started this project, we quickly learned that it would require a new system to mount the three axis positioning system. Seen below is the positioning system before any construction or modification took place. The way the positioning system was mounted was extremely unstable, and the orientation in which it was mounted was very counterintuitive in terms of 3D printing devices. To solve this issue, we decided to design a custom bench and mount the system on its side. The design was completed in SketchUp, which allowed us to get a precise materials estimate as well as dimensions to make construction simple and organized. We decided to construct the bench using a combination of wood and metal brackets to maintain a good balance between strength and value. The bench was constructed in the workshop of our client Dr. Daniel’s, and was then relocated back to the design lab to mount the positioning system.

While mounting the system on its side provided the most convenient orientation, mounting it this way put stress on the z-axis (vertical axis). In addition, we knew we would have problems if the system were to lose power while running, making the axis free fall and damage items below its range of motion. We solved this issue redundantly: 1.) a counter weight system holds the axis steady if the printer endures a power loss, or if the leadscrew to the stepper motor shaft coupling breaks 2.) a battery backup system (UPS) was connected to the stepper drivers and Arduino Microcontroller in order to maintain a brief period of movement after the loss of power.

The large printing area of our system required us to include a heated bed in order to prevent warping of the material due to rapid cooling. Going into our design, we aimed to keep the temperature of the heated bed at around 80-90 degrees celsius. To do this, we ordered an 8” x 8” silicon heating element that provides around 100 degrees celsius of constant heat when in full operation. It was also important that the heating element we chose would operate at 12 volts DC, which is our supply voltage. We chose this heating element due to its low cost and high performance, as well as its superior heat distribution. We needed to add an external relay to support the high power consumption (192 W) of the heating element.

Once the silicon heating element was obtained, we went about finding the best way to house the unit, along with finding the best way to transfer the heat to our printing surface from a thermodynamics standpoint. We chose aluminum as our printing surface because of its high thermal conductivity, along with being fairly cheap as opposed to other solutions. Our goal was to sandwich the heating element between the heating surface (aluminum) and a piece of wood that could be easily leveled. On top of the aluminum, a thin layer of kapton tape is used to promote adhesion to the printing surface. For safety reasons and also to get the maximum amount of heat transfer to the printing surface, we decided to put a layer of high temperature insulation between the heating element and the wood.

Once the heating portion of our design was complete, we went to finding a way to mount the heated bed to our bench in a way that would allow us to easily level the system. To do this, we mounted the heated bed to an additional, larger piece of wood that would have the ability to house leveling screws. Three leveling screws were added, which include knobs so that the system can be leveled on the fly without the need for tools. These leveling screws were mounted to the bench by three aluminum, custom made brackets that were threaded to eliminate the screws slipping and moving around from constant use. The diagram for our design is pictured below, along with a photo of the design implemented onto the bench.

The extruder (also can be thought of as the printer head) that was chosen was the QU-BD MBE Extruder v9. This particular extruder was chosen because of its low cost, and the ability to dual extrude. Dual extrusion allows the printer to create multi-color objects, or print multiple types of materials i.e. support material, which dissolves in a liquid solution and allows the printing of complex overhangs and hollow spaces. Upon ordering this particular extruder, we were aware that others were having jamming issues, as the plastic would melt, and then become stuck inside of the stock stainless steel barrel. When the extruders arrived, we assembled them and quickly got to work running material through them in order to determine if they were fully functional. After running some plastic, we quickly realized that we were encountering this same jamming issue, and the extruders would have to be modified to ensure that they would be fully functional.

To combat the jamming issue, we milled a custom stainless steel barrel from an M6 bolt and lined the interior of the barrel with high temperature PTFE tubing. This tubing provides enough insulation to ensure that the plastic material doesn’t reach its melting point until reaching the nozzle of the extruder, eliminating any premature melting. Boring out this this threaded guide was no easy task, as the diameter of the hole was very close to the exterior (drilling a 4mm hole into a 6mm bolt), not to mention the heat and distortion issues of working with stainless steel. After many failed attempts on a drill press, we eventually succeeded by using a lathe and stainless steel rated tools. Pictured below is the modification taking place early in the process, using a drill press and a smaller diameter bit.

The safety circuit is a very important part of our 3D printing system that takes advantage of the magnetic sensors housed within the positioning system. The safety circuit prevents the positioning system from overstepping its bounds, and jamming itself up against the ends of the unit, which can damage the system immensely. When we received the project initially, the positioning system already had a safety circuit system in place, but the logic was fairly rough, and all of the components were scattered about on three breadboards. We saw this as a major disadvantage, and decided to redesign the system from the ground up, including new logic and a clean design.

Beginning with the design, we took a look at the old logic, which used various logic gates. This takes up a large footprint on a PCB, especially when trying to route to different parts of the board. After studying the operation of the magnetic sensors, we realized that using NAND gates would allow the system to operate as desired, and also cut down on the cost of the system in its entirety. In addition to this reduction, the complexity of the circuit was also reduced greatly, as we now only needed to consider the NAND gate specifications. This eliminated the need to ensure compatibility between different logic gates. The schematic for the revised safety circuit can be seen below. Once this schematic was designed, we were able to construct the necessary circuit using Eagle software, and sent the plans off to be fabricated. Once the naked PCB was fabricated, we soldered/surface-mounted the necessary components, and the circuit was complete. Pictured below is our final safety circuit, along with a CAD rendering of the safety circuit before it was sent off to be fabricated.

The operation of the safety circuit is simple, if the positioning system reaches the end and trips the magnetic sensor, the system will discontinue moving and avoid harm (send a disable signal to the stepper drivers if it is going the wrong direction.) Along with this discontinuation, there are various LEDs housed within the safety circuit that indicate which magnetic sensor has been tripped. This allows for ease of use, along with maximum awareness of which axis is to blame for the stopping of movement. Shown below is the safety circuit in different stages of development:

Within our 3D printing system, there are many components that require a fairly high draw of power, so this had to be considered when designing our power supply along with a means of distributing this power. The stepper drivers simply operated off of 120 volts AC, meaning that they could be joined together and connected to a wall outlet. The other components and devices driving our 3D printing system needed a constant and reliable 12 volts DC to operate correctly. Among these components were three separate heating elements, two for the extruders, and one for the heated bed. We estimated that these components alone would draw 20-30 amps depending on their mode of operation, meaning we would need a power supply capable of handling such large amounts of current. Shown below is a diagram of the entire system:

Our solution to this problem was to modify a preexisting server supply to output a constant 12 volts DC. The power supply is capable of handling a maximum of 47 amps, giving us plenty of room to expand our project in the future if desired. The modification involved a series of jumpers, which were soldered in place on the interior of the unit, allowing for reliability as well as being safe from getting pulled out of place. The power supply itself runs on 120 volts AC, and can therefore be plugged into a wall outlet for operation.

Once our power supply was finished being constructed, we needed to figure out a way to route all components requiring 120 volts AC (a wall outlet) to a singular point. The solution to this problem was a UPS, or universal power supply. This power supply acts much in the same way as a power strip, and has enough ports to accommodate the four that we require. The feature that sets this UPS apart from others is the fact that it has an onboard battery backup system. The stepper drivers are all routed to this battery backup system, and if power is lost, will help to decrease risk of injury or destruction of the print (as described in the bench design).

The axis system we were provided with at the beginning of the project is a custom Parker Position Systems solution manufactured in 1992. It was bundled with the existing stepper motors and stepper drivers we are currently using. It was very difficult locating the specifications of these old custom parts. After calling Parker support, we obtained the correct gear pitch and maximum speed and acceleration specifications. This allowed us to calculate exact movement values (stepper steps per distance) for use in the firmware. Unfortunately, the provided speed and acceleration figures for the mechanical system were much too high for our drive system. Initially, this caused damage to the couplers connecting the drive shaft and the stepper motors. We also received the stepper driver specifications from Parker’s support team. Using these specifications, we managed to tweak the firmware settings to work with these old stepper drivers by requiring a minimum high/low signal of 10 us during movements (step clock edges.)

Finding a good firmware solution also posed a problem. The firmware interprets movement and printing commands in GCODE and sends the correct output to the various heaters and motors. Initially, we tried the Sprinter and Marlin firmware with no success, as many of the systems of our printer were unresponsive. The third we tried was Repetier, which worked after heavy configuration.

We used an open source software called Slic3r to create machine friendly commands from 3D CAD files. Because every 3D printer has different construction and capabilities, there are over 120 different settings that you can configure. We spent hours dialing in these settings to get the right balance between speed and accuracy.

Download Slic3r Configuration Download Customized Firmware

Documentation + Media

About Us

Learn About our Team

CTO/Founder
Andrew Speer

Andrew Speer

Electrical Engineer

CTO/Founder
Cheng Song

Cheng Song

Electrical Engineer

Team Leader
Jake Meyer

Jake Meyer

Electrical Engineer

CTO/Founder
Kyle Lichtenberg

Kyle Lichtenberg

Electrical Engineer

CTO/Founder
Ross Friedman

Ross Friedman

Electrical Engineer