OBJECTIVE //  When Design Concepts exchanged their old FDM for a newer model, I found out that Stratasys only took out the extruder head and control boards of the old machine, a process that they thought rendered the machine useless. Fools. My plan was to restore it using a CNC controller (TinyG) that I had lying around and a knock off Makerbot extruder, but while I was working on a client project, I discovered a more exciting potential use for it. We were working with a material that is extruded as a paste and then cured with heat, which made it difficult to produce functional prototypes, so it seemed like a perfect opportunity to try an build a syringe based rapid prototyping machine.


...............(1)   Stratasys Prodigy (Stripped of extruder head and control boards)

...............(2) TinyG CNC Controller

...............(3) Simplify3D

...............(4) Custom FDM parts

...............(5) Medical Syringe

...............(6) Miscellaneous Hardware


The project started out with the goal of replacing the missing components using a 6 axis cnc controller called the TinyG and an extruder nozzle I got online. I got a recommendation to use Simplify3D to slice parts, generate toolpaths, produce GCode and stream to teh machine, which was a very good program. Unfortunately, the configuration of the CNC controller and software weren't perfectly compatible. The software outputs 'E' commands and the controller accepts 'A' commands, which seems like an easy thing to fix in the software, but since it is open source, I had to fix this in the Atmel chip's firmware.

The process of implementing this simple change in the firmware was more difficult than I expected. I located where the commands are handled, and as expected there was simply a switch table for each different motion command. But for some reason, though the commands are handled properly when they are done individually, it gets hung up when streaming a whole file. This problem has still yet to be fixed but I've been using a work around Python script preprocessor that does the conversion before it's streamed by the driver software.

Additionally, the system of flow control dictated by the software requires an 'ok' message to know when to send the next command. This different than the controller's hardware that can either use XON/XOFF or RTS/CTS. This required me to implement a simple serial verification message whenever the controller has completed a block of code, and it seems to be an appropriate fix.

The syringe system was not the initial intent but when I saw the opportunity for something someone novel, I jumped at the chance, and spent a long weekend making it happen. The parts I designed use a lead screw and stepper motor to move the plunger, so from a software side, it was just a matter of scaling the output to the 'A' axis. After printing the parts, I soon realized that I forgot to restrain the motion of the plunger so it didn't twist with the stepper, but a quick electrical tape addition gave it enough friction against the inside of the syringe.

For testing reasons, I used BBQ sauce, in part because it was similar consistency to the dough material that I wanted to use, but mainly because it was the best thing I could find at the gas station.



  1. BBQ sauce isn't as smooth as you'd think. It was just a bit too viscous to extrude through my setup consistently; I think it was just slightly fibrous and caused clogs which resulted in explosions of BBQ onto everything that had already been extruded. Not ideal.

  2. I forgot to key the stopper so that the screw twisting wouldn't just twist the stopper as well. Fortunately the rotational friction between the stopper and the syringe was enough to drive the stopper down. There is definitely pretty low failure threshold so the syringe mechanism was pretty limited, though it did everything I needed it to.