This project was started from 2 design requests. The first began as a request to take an old Stratasys Uprint 3D printer and reversibly retrofit it with a new control system (AJ Quick). Some hurdles were solved through the design of PCBs involving level shifters for communication with some of the existing electronics hardware. The second followed along when an old Stratasys Uprint SE plus was scrapped at work due to heat rotted Gates timing belts. (Jeremy) This printer is essentially a 3D printer in an oven with a CNC milled print head and survivalist step motors designed to function at higher temperatures. He acquired the printer and replaced the belts to get a functioning 3D printer. However, these systems use proprietary filaments with EEPROM encoders and heavily restricted slicing software to print models. The price of the filament is exorbitant for an at home tinkerer and maker (up to $300 for a roll of filament). While the community has developed ways to reprogram the EEPROMs the printer still had to be controlled by the proprietary slicer software. Not to mention that the Uprint SE plus EEPROMs pose additional challenges that may have been resolved by now. Others went another route to get these types of printers to function, yet usually the extruder ended up being replaced.

Thus the challenge began to find a way with commercially available and preferably open source hardware to take over the controls of this powerful dinosaur of a printer without removing any of the hardware. AJ Quick's work on wiring pinout diagrams would prove helpful in figuring out what connections needed to be made where to enable full control of the printer. Between the time of AJ's initial work and the acquisition of the Uprint by Jeremy, updated open source 3D printer control and expansion boards were made by Duet3D that allowed for 5V signaling and PWM output getting rid of the need for level shifters. 

A Duet 2 WIFI and DueX5 expansion board were purchased. These two boards were mounted on the inside of the electronics cabinet on the Uprint using the standoffs from the previous control board. These boards enabled control of all signaling and X, Y, Z motor control. Yet, the extruder motor is not driven by a heavy stepper motor. It is driven by a DC servo motor. The Duet 2 WIFI allows for external motor drivers to by controlled through Step Dir outputs. A GeckoDrive G320X was also purchased. Following the pinout diagrams slowly the Uprint was taken control of like a slowly creeping mind controlling disease. First the X, Y, and Z strepper motors were directly taken control of by the Duet 2 WIFI board and tested making sure to connect the correct wires to each phase of the steeper motor (Phase A and Phase B determined by a continuity check on the existing Molex connectors coming from the motors to the I/I board and the back of the PDB board). Wires were run through the housing and connected to the Duet 2 WIFI using proper crimps for the connectors. The steps/mm was then calibrated by using a digital caliper. Then the optical endstop outputs from the PDB were fed into the Duet and range of motion was constrained for X, Y, and Z and motor directions were resolved using AJ's pinout diagrams as a guide. 

Safety alarm outputs were wired from the Uprint to the DueX5 expansion board to shut down the heaters when any of the head, chamber, or head thermostat alarms are triggered. This was then programmed in the Duet Web Control Software to shut down the heaters and motors while leaving the cooling fans operational to prevent overheating and thermal runaway. There are 2 power enable relays in the PDB of the Uprint one controls power to the 120V DC power supply and one controls the motor power (in our case only the extruder motor due to the bypassing of the PDB for the X, Y, and Z motors). These relays were wired to the DueX5 PWM outputs. Additionally signaling to the door lock was also connected to prevent opening the door and letting out the heat from the chamber during printing. This is also useful for preventing small children from touching the hot metal parts or destroying the print mid-print. 

Next thermocouple outputs were tackled. The I/O and Power Distribution Board (PDB) sends out a 10 mV/ degree C output on the touch points of the PDB. The pinout output was wired to the DueX5 thermistor inputs. However in testing it was not possible to obtain an accurate calibration. One forum post suggested using a voltage divider to take the 5 V signal down to 3.3 V using a 1k ohm and a 2 k ohm resistor. This allowed the Duet to read the correct voltages at room temperature and almost boiling water temperature for an initial 2 point calibration. This was done for all 3 thermocouples (2 for the dual extruders and 1 for the heater chamber). Now it was time to take control of the heaters.

The heaters turned out to be easier to control with others attempting to do the same thing by signaling an SSR to switch the power to the 120 V DC heaters. (Robert Cowan). The PDB has built in SSRs and AJ Quick's pinout diagrams helped here. First the 120V DC power supplies were enabled through a 5V PWM signal from the DueX5 board. Then the extruder heaters were tested at 100 C. Corrections were applied to the temperature ranges and then higher temperatures were calibrated using the touch points voltages as a reference. This was done up to 300 C for each extruder. Lower temperatures were then checked and additional corrections to the temperature factors were applied. High and low temperatures were iteratively checked until accurate temperatures were obtained at 100 C and 300 C. Once the ranges were accurate and well defined the extruders were cooled to room temperature. PID heater tuning was then performed using the automated PID tuning in the Duet Web Control Software. The chamber heater was then tested. The rise time is much slower so heater timeouts had to be increased to prevent greater failure errors. PID tuning was also performed using a couple hours to complete due to the slow temperature rise and fall times of the insulated chamber. 

The extruder motor was then tested following the directions on the Geckodrive website. The encoders were first connected through the PDB, the power enable and motor enable pins were turned on to allow communication with the encoders. The motor was slowly turned to test the encoders and everything looked good with the encoders reading out of range when the motor was turned. Next the step and dir signals from the Duet we're tested with some initial guesses on the correct signaling settings from the Duet. Everything checked out fine. Finally the motor was powered by connecting the phase signals to the motor. The motor worked! The correct directions were fixed in the software and the extruder was now fully functioning! This is the first time this has been done using a GeckoDrive on one of these systems!

The extruder extrusion steps setting was then calibrated using the white dissolvable support material. A 100 mm mark was made at the end of the PTFE tube at the Y shaped filament connector on the back of the printer. 10 mm of filament were extruded and the actual distance extruded was measured and the ratio of actual/expected distance was multiplier by the initial extruder e steps.

At this point it was discovered that there is a retractable Z-probe on the back of the print head. X-Y movements were determined that would press on the slider to lift and drop the z-probe. With the probe down the XY offsets were determined by centering the nozzle tip on a taped down piece of paper with a small ink spot in the center. The head was then moved until the center of the Z-probe was on the same spot. The difference in X and Y was then calculated and applied to the Z-probe. XY movements were figured out that would allow the Z-printer to be lifted and dropped. X-homing, Y-homing, and Z-homing was then figured out with what movements to apply to minimize risk of breaking the Z-probe slider arm. Yet, some damage was done and movements were adjusted to account for a now shorter slider arm. Mesh bed leveling was then applied. Only 2/3 of the bed can be probed due to the position of the Z-probe relative to the head and the maximum movement allowed in the instrument. Further methods will need to be developed to interpolate the plane fit of the bed to the front regions nearest the door.

During mesh bed leveling it became very apparent that the removable build plates are not flat with very large deviations across the plate. This explains why the default print settings on the Uprint involve a very thick raft of the dissolvable support filament as the first few layers. A removable magnetic Ender 3 (not metal) build plate was purchased and attached. This helped with adhesion, yet the bed was still warped. Mirror glass was then purchased at a local hardware store and cut at home. The Ender 3 build plate was double stick taped to the bottom of the mirror glass. This resolved the bed uniformity issues.

This printer uses a toggle head with two extruders at a slight angle relative to each other leaving one of the extruders lifted slightly from the print surface when the other is oriented perpendicular to the print bed surface. In this orientation a roller clamps the filament against the hub of the extruder motor. When a slider is pressed in on the side of the print head the other extruder is rotated down to be perpendicular to the print bed and the first one is tilted out of the way. Now the other filament is clamped against the extruder hub. This posed a challenge as only one extruder motor is present, yet the rotation direction had to be switched to get both filaments to extruder forward. A tool swapping codes for each extruder were designed to retract a small amount of filament, wipe the tip, put the tool on standby, disable the motor, move the head to toggle to the second extruder, re-enable the extruder motor with the direction switched and set the tool active, one at temperature the tip is wiped again and the tool is ready to print. This is what is covered in the tool* g-codes. The nozzle distance positions were measured similar to the probe offset measurements and applied. However, on updating the firmware some of the multi tool offset handling was changed and needs to be recalibrated. This will be done soon.

3D printers can often suffer from what is called print ringing after sharp corners. This is especially prevalent in printers with heavy print heads of which this printer is one of the heaviest for a relatively small build space. The glass fiber reinforced Gates timing belts and rigid assembly help, yet ringing can still be a problem based on print acceleration settings. One additional tool made possible through the use of the Duet software is what is called input shaping in which different frequency impulses can be applied to counteract mechanical vibrations during print moves. An LIS3DH accelerometer was purchased (less than $10 through Amazon). This would require mounting the accelerometer the print head and have wires ran to the Duet in the back of the printer. At this point an idea from a home improvement project came to mind, what if we used a Cat5e Jack to run an Ethernet cable from the accelerometer to the Duet with the 7 required wires through the twisted pairs in the Ethernet cable. These cables are designed for high speed data transfers with low losses/interference. 2 jacks were purchased from a local hardware store (Home Depot) and the wires were hooked up to the accelerometer as well as to the temp daughterboard connections on the Duet 2 WIFI. The accelerometer was mounted on the print head using an existing screw for a cable clamp on the back of the print head and some double stick foam tape. The accelerometer was mounted tightly to the print head to ensure accurate measurements of the print head vibrations. 

An input shaper plugin from Duet3D's website was installed and print moves were tested with no input shaping. A resonance peak was found around 35 Hz. Different input shaping models were applied and tested at different frequencies. The best was found to be EI3 with a damping factor of 0.01 and a frequency of 60 Hz. This cut the resonance frequency amplitude by half or more! The optimum settings were added to the config.g code.

Now that all the movements are calibrated and extruder temperatures can be accurately controlled, it is time to test the print capability. The extruder uses a roughy 2" stainless steel extruder tube with a 0.4 mm nozzle at the end with the tube completely surrounded by a copper heater block. Stratasys calls this a liquifier tube. The first thing to do was figure out the Max flow rate. Different extrusion speeds were tested with good results up to 30 mm/s possibly further! This results in a Max Flow Rate = 30mm/s * 3.14 * (1.75mm/2)2 = 72.1 mm3/S2. The Max Print Speed = Volumetric Limit / ( Layer Height * Extrusion Width). This results in a Max Print Speed = 72/(0.2*0.4) = 800 mm/s! In other words, it should be nearly impossible to reach the volumetric limit of the extruder. So much for volcano hotends! 

The print speed was tested, see attached videos and images. PrusaSlicer 2.5 was used for model slicing. Some minor additional g-codes were added to help with chamber temperatures and these recommended files will be uploaded to the project asking with the Duet configuration g-codes and macros. The printer was tested at speeds from 90 mm/s to 300 mm/s. As the speeds were increased toward 300 mm/s it started to become apparent that the printer was becoming acceleration limited. This may be able to be tuned further to increase actual print speeds, yet in practice with detailed models these speeds will never be reached. Regardless, it is very apparent from the rounded corner box print that the extruder can out extrude the print movements as predicted from the above calculations! Incredibly the surface finish is totally acceptable!!!

The print quality was then tested with a detailed model from Thingiverse.  

https://www.thingiverse.com/thing:4038181 

The print quality is fantastic with very little stringing even with a relatively large z-hop of 0.4 mm! This will be refined further.

Some attention must be spent on the use of materials. While the Stratasys ABS filament can be used, it is also possible to run other filaments through this printer. The examples shown in this project use Hatchbox ABS which is a couple years old and stored in open air. As can be seen from the models printed here, these 3rd party materials print beautifully at a significant reduction in price! $23 per kg versus $330 ($185 on sale) per 56 cu in a factor of 10 reduction in price! PLA can also be printed, yet temperature control is still being resolved for best prints. Carbon fiber nylon will also be tested in the future. Swaps from PLA to ABS were smooth just run the extruder up to 300C and load the filament. 

The material bay has also been hacked with additional wires, yet during recent testing after a motor jam an IC was shorted and will be replaced. Once working again this too will be uploaded to the project, yet it won't be posted in time for the competition.

Due to difficulties controlling the existing LED lights in the chamber, a remote controlled LED strip was added and wired to the 5V power supply in the electronics cabinet. This adds a fun come change effect bringing out some modern vibes for the maker space!

The next thing to be added to the system will be a PanelDue to enable control and modification of printer settings without the need for a separate computer running the Duet Web Control wepage. Since the DWC software is web based it is also possible to control the printer from one's phone. The PanelDue is purely for convenience in microstepping the z stage for that perfect first layer. 

Now it may come to the question of some, can this only be done for the Stratasys Uprint printers? The answer is that the Dimension 1200 series printers also have very similar pinout diagrams. It may even be possible with the 768 series with the dual DC servo motors in the print head. All one would need to do is buy a second Geckodrive G420X servo motor driver and connect it to the second step and dir outputs on the CONN_LCD pins of the Duet 2 WIFI board.

The cost of this retrofit is worth it. The Duet 2 WIFI ($170), DueX5 ($105), Geckodrive G320X ($130) plus around $100 for wires, connectors, crimping tools, accelerometer, etc... In total the retrofit costs around $500 to bring a Jurassic 3D printer back to life in the modern age. The original cost of the Stratasys Uprint SE plus is around $15900 without delivery and shipping. Used ones can be found on eBay for anywhere between $800 and $4000. While there are not many 3D printers yet with heated chambers due to the recent expiration of some of Stratasys's patents. Modern (and lighter) 3D printers with enclosed chambers cost anywhere from $1,300 to $4,000. So if you can find one of these used Stratasys printers this may be a cost effective route to get a fantastic 3D printer for printing difficult or exotic filaments, if you don't mind a bit of tinkering with little to no soldering required!